Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 客户端的业务逻辑_Java_Architecture_Jakarta Ee_Ejb_Business Logic - Fatal编程技术网

Java 客户端的业务逻辑

Java 客户端的业务逻辑,java,architecture,jakarta-ee,ejb,business-logic,Java,Architecture,Jakarta Ee,Ejb,Business Logic,为什么人们说业务逻辑应该在服务器端代码(例如EJB)上实现,而不是在客户端应用程序代码上实现 我想到的示例是基于EJB的体系结构上的业务对象验证。在将对象发送到要保存的服务器之前,是否真的必须将其委托给EJB,或者是否可以在客户端上运行它?有两个原因。首先,对于多个客户端,您可能具有相同的业务逻辑,因此将其分配给服务器是有意义的。其次,您很可能不信任客户端,这意味着服务器验证是必不可少的。可以在客户端进行验证,以节省到服务器的往返时间。但是服务器也应该执行相同的验证。理想情况下,您可以在客户端和

为什么人们说业务逻辑应该在服务器端代码(例如EJB)上实现,而不是在客户端应用程序代码上实现


我想到的示例是基于EJB的体系结构上的业务对象验证。在将对象发送到要保存的服务器之前,是否真的必须将其委托给EJB,或者是否可以在客户端上运行它?

有两个原因。首先,对于多个客户端,您可能具有相同的业务逻辑,因此将其分配给服务器是有意义的。其次,您很可能不信任客户端,这意味着服务器验证是必不可少的。

可以在客户端进行验证,以节省到服务器的往返时间。但是服务器也应该执行相同的验证。理想情况下,您可以在客户端和服务器端重用相同的类

为什么人们说业务逻辑应该在服务器端代码(例如EJB)上实现,而不是在客户端应用程序代码上实现

这是我们从客户机/服务器(胖客户机)架构中学到的。有了这样的体系结构,您必须重新部署所有客户端来更改某些内容,这只是一种痛苦。服务器端应用程序和集中部署(使用瘦客户机或富客户机)不存在此问题,因此是首选

我想到的示例是基于EJB的体系结构上的业务对象验证。在将对象发送到要保存的服务器之前,是否真的必须将其委托给EJB,或者是否可以在客户端上运行它


验证是必须在服务器端执行的操作(“不要信任客户端”),并且也可以在客户端执行,以避免往返。我甚至没有提到多个客户端(GUI、命令行应用程序、批处理等)的情况。

因为客户端代码通常用于显示信息,而不是真正定义应用程序的功能

主要是因为这使您可以灵活地添加其他客户端,而无需执行奇怪的操作(如复制/粘贴)

例如,假设您的客户机使用HTML,稍后您希望使用json添加新客户机

如果业务规则在客户端上,则必须将其复制到新客户端

现在,不要混淆验证规则和其他规则。这些也必须放在客户端