- 作者:xiaoxiao
- 发表时间:2020-12-23 11:00
- 来源:未知
使用J2EE设计面向服务的体系结构框架
撰文/Naveen Balani
面向服务的体系结构(Service-Oriented Architecture,SOA)因其固有的松散耦合与互操作性,成为许多企业应用的自然选择。在本文中您将看到,使用J2EE 1.4提供的Web服务功能可以很容易地构建能够访问现有业务流程的SOA系统。在本文中,您将学习如何利用Java 2 Platform,Enterprise Edition (J2EE)设计和开发面向服务的体系结构(SOA)框架。通过采用SOA框架,企业可以最大程度地减少系统间的耦合,从而提高可重用性。本文从一个较高的层面概述了在SOA框架上进行的几次迭代过程,这个框架将满足一家虚拟企业的需求。这里开发的示例框架可以很容易地进行修改以适合您的商业需求。
SOA和Web服务简介SOA是一种分布式的软件模型。SOA的主要组件包括服务、动态发现和消息。
l 服务是能够通过网络访问的可调用例程。服务公开了一个接口契约,它定义了服务的行为以及接受和返回的消息。术语服务常与术语提供者互换使用,后者专门用于表示提供服务的实体。l 接口通常在公共注册中心或者目录中发布,并在那里按照所提供的不同服务进行分类,就像电话簿黄页中列出的企业和电话号码一样。客户(服务消费者)能够根据不同的分类特征通过动态查询服务来查找特定的服务。这个过程被称为服务的动态发现。l 服务消费者或者客户通过消息来消费服务。因为接口契约是独立于平台和语言的,消息通常用符合XML模式的XML文档来构造。
下面的图1说明了SOA中的不同角色。 基于Web服务实现SOAWeb服务建立在开放标准和独立于平台的协议的基础之上。Web服务通过HTTP使用SOAP(一种基于XML的协议),以便在服务提供者和消费者之间进行通信。服务通过WSDL(Web Services Definition Language)定义的接口来公开,WSDL的语义用XML定义。UDDI是一种语言无关的协议,用于和注册中心进行交互以及查找服务。所有这些特性都使得Web服务成为开发SOA应用程序的优秀选择。
使用J2EE 1.4平台开发SOA/Web服务框架1.4版的J2EE平台通过新的JAX-RPC 1.1 API提供了完整的Web服务支持,这种API支持基于Servlet和企业Bean的服务端点。JAX-RPC 1.1基于WSDL和SOAP协议提供了与Web服务的互操作性。J2EE 1.4平台也支持Web Services for J2EE规范(JSR 921),后者定义了Web服务的部署需求并利用了JAX-RPC编程模型。除了几种Web服务API之外,J2EE 1.4平台还声称支持WS-I Basic Profile 1.0。WS-I Basic Profile标准让Web服务克服了不同编程语言、操作系统和供应商平台之间的障碍,从而使多种应用程序之间能够交互(关于WS-I的更多信息,请参阅http://www.ibm.com/developerWorks/cn/webservices/ws-designsoa/#6。)这意味着除了平台独立性和完整的Web服务支持之外,J2EE 1.4还提供了跨平台的Web服务互操作性。在J2EE 1.4下,Web服务客户可以通过两种方式访问J2EE应用程序。客户可以访问用JAX-RPC API创建的Web服务;在后台JAX-RPC使用Servlet来实现Web服务。Web服务客户也可以通过Bean的服务端点接口访问无状态会话Bean。Web服务客户不能访问其他类型的企业Beans。第二种选择—公开无状态EJB组件作为Web服务—有很多优势: