中间层通常被称为应用层或者是服务器。这部分是归因于在这一层经常有服务器的这一事实。并不是所有的应用都有应用层的。对于小的web应用更是如此。许多小的工程选择放弃利用大的应用服务器,而和数据库或者是其他的一些数据存储直接进行交互。当一个应用服务器存在的时候,web层利用RMI的一些变种和他们进行交互。对于EJB服务存在于这一层的时候,交流的协议就是在IIOP基础上的RMI.
注:RMI overIIOP
Remote Method Invocation(RMI)允许调用远程对象上的方法。RMI的java实现是著名的java远程方法调用协议(JRMP),它已经存在一定的时间,它是为了java对java远程交流而特别设计的。
对于java版的RMI有一个问题,就是JVM必须同时在客户端和服务端运行,它才能用。对于许多用其他语言(像c++)写的被称为遗产的应用,java需要和这些系统进行交互。这样,RMI over IIOP就出现了。
Intenet Interoperability Protocol(IIOP)是为了让分布式的组件通过TCP/IP进行相互交互而设计的。IIOP是语言和平台对立的。
因此,通过运用在IIOP 上的RMI,java才能够与用其他的语言写的应用在各种各样的平台上进行交互。RMI/IIOP 正如被所写的那样,需要EJB服务器的支持,因此存在于EJB和J2EE的规格说明中。
当包含应用层的时候,它能够提供更多的扩展性,容错能力和很高的可得到的架构。当然,它依赖于很多不同的因素。其中主要的一个目的是把表现的职能从模型和事务规则中分离出来。现代,很多web应用都是用EJB服务器作为应用层。他们可能没有用到J2EE架构的各个方面,如EJBs,但是有很多由于存在J2EE服务器而引起的其他的很多利益。
企业信息系统层(EIS)
企业信息系统层包括在整个企业中所用到的数据和服务。它提供了对企业资源,包括数据库,大型机,用户关系管理应用(CRM),资源计划系统。
中间层通过利用针对这种资源的协议和在企业信息系统中的组件进行交互。例如,中间层通常利用JDBC驱动来和关系数据库进行交互。对于企业资源计划系统,尽管一些系统和其他的资源开始支持更像web服务的存取方式,但是私有的适配器仍然被使用。