j2ee( 三 )


· JNDI
由于J2EE应用程序组件一般分布在不同的机器上 , 所以需要一种机制以便于组件客户使用者查找和引用组件及资源 。在J2EE体系中 , 使用JNDI(Java Naming and Directory Interface)定位各种对象 , 这些对象包括EJB、数据库驱动、JDBC数据源及消息连接等 。JNDI API为应用程序提供了一个统一的接口来完成标准的目录操作 , 如通过对象属性来查找和定位该对象 。由于JNDI是独立于目录协议的 , 应用还可以使用JNDI访问各种特定的目录服务 , 如LDAP、NDS和DNS等 。
· JTA
JTA(Java Transaction API)提供了J2EE中处理事务的标准接口 , 它支持事务的开始、回滚和提交 。同时在一般的J2EE平台上 , 总提供一个JTS(Java Transaction Service)作为标准的事务处理服务 , 开发人员可以使用JTA来使用JTS 。
· JCA
JCA(J2EE Connector Architecture)是J2EE体系架构的一部分 , 为开发人员提供了一套连接各种企业信息系统(EIS , 包括ERP、SCM、CRM等)的体系架构 , 对于EIS开发商而言 , 它们只需要开发一套基于JCA的EIS连接适配器 , 开发人员就能够在任何的J2EE应用服务器中连接并使用它 。基于JCA的连接适配器的实现 , 需要涉及J2EE中的事务管理、安全管理及连接管理等服务组件 。
· JMX
JMX(Java Management Extensions)的前身是JMAPI 。JMX致力于解决分布式系统管理的问题 。JMX是一种应用编程接口、可扩展对象和方法的集合体 , 可以跨越各种异构操作系统平台、系统体系结构和网络传输协议 , 开发无缝集成的面向系统、网络和服务的管理应用 。JMX是一个完整的网络管理应用程序开发环境 , 它同时提供了厂商需要收集的完整的特性清单、可生成资源清单表格、图形化的用户接口;访问SNMP的网络API;主机间远程过程调用;数据库访问方法等 。
· JAAS
JAAS(Java Authentication and Authorization Service)实现了一个Java版本的标准Pluggable Authentication Module(PAM)的框架 。JAAS可用来进行用户身份的鉴定 , 从而能够可靠并安全地确定谁在执行Java代码 。同时JAAS还能通过对用户进行授权 , 实现基于用户的访问控制 。
· JACC
JACC(Java Authorization Service Provider Contract for Containers)在J2EE应用服务器和特定的授权认证服务器之间定义了一个连接的协约 , 以便将各种授权认证服务器插入到J2EE产品中去 。
· JAX-RPC
通过使用JAX-RPC(Java API for XML-based RPC) , 已有的Java类或Java应用都能够被重新包装 , 并以Web Services的形式发布 。JAX-RPC提供了将RPC参数(in/out)编码和解码的API , 使开发人员可以方便地使用SOAP消息来完成RPC调用 。同样 , 对于那些使用EJB(Enterprise JavaBeans)的商业应用而言 , 同样可以使用JAX-RPC来包装成Web服务 , 而这个Web Servoce的WSDL界面是与原先的EJB的方法是对应一致的 。JAX-RPC为用户包装了Web服务的部署和实现 , 对Web服务的开发人员而言 , SOAP/WSDL变得透明 , 这有利于加速Web服务的开发周期 。
· JAXR
JAXR提供了与多种类型注册服务进行交互的API 。JAXR运行客户端访问与JAXR规范相兼容的Web Servcices , 这里的Web Services即为注册服务 。一般来说 , 注册服务总是以Web Services的形式运行的 。JAXR支持三种注册服务类型:JAXR Pluggable Provider、Registry-specific JAXR Provider、JAXR Bridge Provider(支持UDDI Registry和ebXML Registry/Repository等) 。
· SAAJ
SAAJ(SOAP with Attachemnts API for Java)是JAX-RPC的一个增强 , 为进行低层次的SOAP消息操纵提供了支持 。
下面我们通过假设一个企业应用的J2EE实现 , 来了解各种组件和服务的应用 。假设应用对象是计算机产品的生产商/零售商的销售系统 , 这个销售系统能够通过自己的网站发布产品信息 , 同时也能将产品目录传送给计算机产品交易市场 。销售系统能够在线接受订单(来自自己的Web网站或者来自计算机产品交易市场) , 并随后转入内部企业管理系统进行相关的后续处理 。
参见图3 , 这个企业应用可以这种方式架构 。该企业应用的核心是产品目录管理和产品定购管理这两个业务逻辑 , 使用EJB加以实现 , 并部署在EJB容器中 。由于产品目录和定购信息都需要持久化 , 因此使用JDBC连接数据库 , 并使用JTA来完成数据库存取事务 。
然后使用JSP/Servlet来实现应用的Web表现:在线产品目录浏览和在线定购 。为了将产品目录发送给特定的交易市场 , 使用JMS实现异步的基于消息的产品目录传输 。为了使得更多的其它外部交易市场能够集成产品目录和定购业务 , 需要使用Web Services技术包装商业逻辑的实现 。由于产品定购管理需要由公司内部雇员进行处理 , 因此需要集成公司内部的用户系统和访问控制服务以方便雇员的使用 , 使用JACC集成内部的访问控制服务 , 使用JNDI集成内部的用户目录 , 并使用JAAS进行访问控制 。由于产品订购事务会触发后续的企业ERP系统的相关操作(包括仓储、财务、生产等) , 需要使用JCA连接企业ERP 。

推荐阅读