客户端的业务逻辑

Ivo*_*ssi 3 java architecture ejb business-logic java-ee

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

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

Boz*_*zho 10

验证可以在客户端完成,以便保存到服务器的往返.但是服务器也应该执行相同的验证.理想情况下,您可以在客户端和服务器端重用相同的类.


Mat*_*hen 6

有两个原因.首先,您可能为多个客户端提供相同的业务逻辑,因此将其分解到服务器是有意义的.其次,您很可能无法信任客户端,这意味着服务器验证至关重要.


Pas*_*ent 5

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

这是我们从客户端/服务器(胖客户端)架构中学到的东西.有了这样的架构,你必须重新部署所有客户端来改变一些东西,这只是一个痛苦.服务器端应用程序和集中部署(使用瘦客户端或富客户端)没有此问题,因此是首选.

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

验证是你的东西必须在服务器端执行("不信任客户端"),并能同时在客户端执行,以避免往返.我甚至没有提到多个客户端(GUI,命令行应用程序,批处理等)的情况.