Java EE 应用程序设计
我有一个关于 Java EE 架构的具体问题。我有一个需要多个组件的应用程序:
- Web 服务和持久层(cxf/hibernate)
- 管理/配置控制台(Struts2/JSP?)
- 一个或多个用户“应用程序”(也许 Vaadin?)
注意,Web 服务将提供为用户应用程序提供服务。
Web 服务已构建为 cxf/glassfish 应用程序(Eclipse 动态应用程序)并且运行良好。
管理应用程序和用户应用程序是否应该开发为完全独立的应用程序(EJB 或?),还是构成具有 Web 服务的“单个”应用程序的一部分。我不确定我是否解释得足够好 - 但我对这种设计很陌生,并且正在尝试以结构良好的方式解决该解决方案。例如,我可以想象,采用单独服务(应用程序)的方法可能会导致:
- 主要 Web 服务(执行常见的数据持久性操作)
- 身份验证服务
- 管理 应用程序服务
- 第一个用户应用程序服务
- 第二个用户应用程序服务
每个用户应用程序都可能具有共同和独特的数据持久性要求。
I have a specific question about Java EE architecture. I have an application that requires several components:
- A web service and persistence layer (cxf/hibernate)
- A management / configuration console (Struts2/JSP?)
- One or more user "applications" (Maybe Vaadin?)
Note, the web service will provide services to the user applications.
The web service has been built as a cxf/glassfish application (Eclipse dynamic we app) and is working well.
Should the management and user applications be developed as entirely separate applications (EJB's or ?) or form part of a "single" application with the web service. I am not sure if I am explaining this well enough - but I am new to this sort of design and am trying to approach the solution in a well structured way. For example I could imagine that taking an approach of separate services (applications) could result in:
- Primary web service (does common data persistence stuff)
- Authentication service
- Management App service
- First user App service
- Second user App service
Each of the user apps is likely to have both common and unique data persistence requirements.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
要决定如何拆分您的实现,您应该通过不同的视图来考虑您的系统。在软件架构中,有一个非常有用的方法,称为4+1架构视图模型(http: //en.wikipedia.org/wiki/4%2B1_architectural_view_model)。使用物理视图,您将能够决定是否需要在不同的机器上安装不同的组件,这将帮助您定义您的开发视图,这将为您提供问题的答案 ->如何从开发的角度拆分系统的不同组件。一旦有了开发视图,您就可以定义组件如何通信(流程视图)......等等。
这些观点一直对我有帮助,我希望你觉得它有用。
To decide how to split your implementation, you should consider your system through different views. In software architecture, there is a very useful method which is called the 4+1 architectural view model (http://en.wikipedia.org/wiki/4%2B1_architectural_view_model). Using the Physical view you will be able to decide if you may need to install the different components in different machines, and this will help you to define your development view, that will give you the answer to your question -> how to split the different components of your system in a development point of view. Once you have the development view, you can define how the components communicate (process view)... and so on.
This views have always helped me, I hope you find it useful.