开发者

Java EE Application Design

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:

  • P开发者_StackOverflowrimary 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.


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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜