Java 客户端的业务逻辑
为什么人们说业务逻辑应该在服务器端代码(例如EJB)上实现,而不是在客户端应用程序代码上实现Java 客户端的业务逻辑,java,architecture,jakarta-ee,ejb,business-logic,Java,Architecture,Jakarta Ee,Ejb,Business Logic,为什么人们说业务逻辑应该在服务器端代码(例如EJB)上实现,而不是在客户端应用程序代码上实现 我想到的示例是基于EJB的体系结构上的业务对象验证。在将对象发送到要保存的服务器之前,是否真的必须将其委托给EJB,或者是否可以在客户端上运行它?有两个原因。首先,对于多个客户端,您可能具有相同的业务逻辑,因此将其分配给服务器是有意义的。其次,您很可能不信任客户端,这意味着服务器验证是必不可少的。可以在客户端进行验证,以节省到服务器的往返时间。但是服务器也应该执行相同的验证。理想情况下,您可以在客户端和
我想到的示例是基于EJB的体系结构上的业务对象验证。在将对象发送到要保存的服务器之前,是否真的必须将其委托给EJB,或者是否可以在客户端上运行它?有两个原因。首先,对于多个客户端,您可能具有相同的业务逻辑,因此将其分配给服务器是有意义的。其次,您很可能不信任客户端,这意味着服务器验证是必不可少的。可以在客户端进行验证,以节省到服务器的往返时间。但是服务器也应该执行相同的验证。理想情况下,您可以在客户端和服务器端重用相同的类 为什么人们说业务逻辑应该在服务器端代码(例如EJB)上实现,而不是在客户端应用程序代码上实现 这是我们从客户机/服务器(胖客户机)架构中学到的。有了这样的体系结构,您必须重新部署所有客户端来更改某些内容,这只是一种痛苦。服务器端应用程序和集中部署(使用瘦客户机或富客户机)不存在此问题,因此是首选 我想到的示例是基于EJB的体系结构上的业务对象验证。在将对象发送到要保存的服务器之前,是否真的必须将其委托给EJB,或者是否可以在客户端上运行它
验证是必须在服务器端执行的操作(“不要信任客户端”),并且也可以在客户端执行,以避免往返。我甚至没有提到多个客户端(GUI、命令行应用程序、批处理等)的情况。因为客户端代码通常用于显示信息,而不是真正定义应用程序的功能 主要是因为这使您可以灵活地添加其他客户端,而无需执行奇怪的操作(如复制/粘贴) 例如,假设您的客户机使用HTML,稍后您希望使用json添加新客户机 如果业务规则在客户端上,则必须将其复制到新客户端 现在,不要混淆验证规则和其他规则。这些也必须放在客户端