2010-05-24 86 views
5

可以使用pojos而不是EJB或Servlets ???在App Server远程中实现业务逻辑。主要思想是应用3层模型,其中客户端既可以是Web浏览器也可以是桌面应用程序,并且它们在App Server中共享业务逻辑。在Spring应用服务器中实现业务逻辑

这将是架构

浏览器-----> Web服务器--------> |应用服务器(业务逻辑通用)| -------> | RDBMS普通|
桌面应用程序(例如Swing) - > | App Server(商业逻辑通用)| -------> | RDBMS常见|

回答

5

您可以使用Spring而不是EJB。我推荐它!

但是,这两种方案都能以极好的方式处理企业功能,如事务处理和安全性。

使用Spring或没有,你仍然需要一个Servlet容器为你的网页。如果您配置Servlet容器的web.xml文件正确,Servlet容器可以启动Spring容器。

事务处理与春例如:

@Transactional 
public void execute(..) {..} 

并与EJB 3.X:

@TransactionAttribute 
public void execute(..) {..} 

正如你看到的,两种替代方案为您提供了企业添加功能声明。

它可能有一台服务器上所有的业务逻辑:

阅读HenryOS的评论后更新。

一个解决方案可以是在客户端(WEB服务器和胖Swing客户端)之间使用Web服务。这是一个非常好的松耦合解决方案。

如果您需要更多速度,可以考虑使用Google的Protocol Buffer或类似技术。

一个有趣的事情是,对于Web服务或协议缓冲区,您仍然需要在服务器上使用业务逻辑的Tomcat或Jetty之类的Web容器,因为它必须为客户端提供Web服务。所有Web服务框架(如Spring WS,CXF和Apache Axis 2)都使用Servlet。

说到层次,我会在WEB服务器上推荐两层,因为在将数据发送到业务服务器之前,您只能呈现和检索数据。在业务服务器上,我会推荐三层。处理Web服务的顶层,中间的业务层以及底层的针对数据库和其他企业系统的集成层。最后,如果您将CXF或Spring WS与JAXB一起使用,那么业务服务器上的所有类都可以写为POJO!它也适用于其他几个写得很好的Web服务框架。

我希望这能回答你的问题!

+0

首先是任何事情,thx为您的回应......并且我明白你说什么,但我的问题是否有没有servlets/JSP/EJB的业务逻辑是可能的..即只有pojos。 我想要在Web服务器中使用Servlet/JSP(Web浏览器的表示层),并且在另一个服务器(App Server)上使用由Application Client使用的业务逻辑公共(服务对象,数据访问对象和域对象)桌面(直接)和Web浏览器(通过到servlets/jsp) – HenryOS 2010-05-24 14:56:54

+0

非常感谢您的回复。 so .. to finish ..如果我需要为JSP/Servlet(在Web服务器上)或应用程序桌面客户端提供业务逻辑服务,则唯一方法是实现Web服务意味着servlet,因此应用服务器上实现Web容器??? – HenryOS 2010-05-24 16:44:52