Java 如何在J2EE中为大规模应用程序创建基于模块的应用程序?

Java 如何在J2EE中为大规模应用程序创建基于模块的应用程序?,java,jakarta-ee,module,large-scale,Java,Jakarta Ee,Module,Large Scale,我们将使用J2EE开发大规模应用程序。该应用程序包含许多模块,很少有模块不直接与客户端通信。(即,它将在单独的线程中处理,如SNMP侦听器、作业调度、轮询等) 因此,我们计划将应用程序拆分为基于模块的应用程序,并在不同的服务器上运行,并与主要j2ee应用程序集成,以向用户展示结果 有谁能帮助我创建基于模块的应用程序,并运行可以在不同服务器上运行的应用程序吗?您首先要做的是,您应该对模块的分层视图有一个清晰的逻辑概念。例如,考虑到将有一个基于安全性的模块,它应该总是在顶部,其他核心特征模块将依赖于

我们将使用J2EE开发大规模应用程序。该应用程序包含许多模块,很少有模块不直接与客户端通信。(即,它将在单独的线程中处理,如SNMP侦听器、作业调度、轮询等)

因此,我们计划将应用程序拆分为基于模块的应用程序,并在不同的服务器上运行,并与主要j2ee应用程序集成,以向用户展示结果

有谁能帮助我创建基于模块的应用程序,并运行可以在不同服务器上运行的应用程序吗?

您首先要做的是,您应该对模块的分层视图有一个清晰的逻辑概念。例如,考虑到将有一个基于安全性的模块,它应该总是在顶部,其他核心特征模块将依赖于更高级别的模块。在这种方式中,您必须清楚地了解模块的级别。
First thing you have to do is you should have a clear logical idea about hierarchical view of the modules. For example consider you will be having a security based module which should be always on top, other core featuring module will depend on the higher level modules.In such a way you must have a clear view about the level of modules. 

Have a building script like ANT for each module separately to build/jar that module, have a global level ANT to call all the individual modules as per the order.

Here, we have a similar architecture which has more than 10o different modules (both dependent on others and independent). Having these kind of structure you can able to skip any module that you don't wish, in a very simple manner.

Sample Global Ant script
--------------------------

<target name="build.projects">
    <ant dir="${security.module}" antfile="build.xml" target="build.project" />
    <ant dir="${core.module}" antfile="build.xml" target="build.project" />
    <ant dir="${Resource.module}" antfile="build.xml" target="build.project" />
    <ant dir="${SNMP.module}" antfile="build.xml" target="build.project" />
    <ant dir="${util.module}" antfile="build.xml" target="build.project" />
</target>

and the Individual one..

<project name="security.module" default="all" basedir=".">
    <target name="build.project" depends="-Properties, create.output, compile, jars" />
</project>
为每个模块分别使用一个构建脚本(如ANT)来构建/jar该模块,并使用一个全局级别的ANT来按照顺序调用所有单独的模块。 在这里,我们有一个类似的体系结构,它有超过100个不同的模块(既依赖于其他模块,又独立于其他模块)。有了这种结构,你可以用一种非常简单的方式跳过任何你不想要的模块。 示例全局Ant脚本 -------------------------- 还有个人的。。
是的,我知道maven和ant提供了基于模块的应用程序。我的问题是,如果每个模块都在单独的服务器上运行,那么如何与模块进行b/w通信使用基于JMX MBean的通信。参考让我知道更多的帮助。谢谢你宝贵的信息。我刚刚听说带osgi的ApacheCxf也适合用于这种情况。我可以知道哪一个是最好的吗?这取决于您需要在不同服务器之间进行通信的案例数/次数。如果它是最小的,就像req/response一样,那么MBean将节省您的大部分时间。ApacheCXF上的更多内容(如果您有大量列表,请使用它)也可以跨基于Webservice(SOAP/XML格式)的java和.net服务器(跨平台)使用。最后,这一切取决于设计和要求。