面向服务的架构与企业级Java技术解析
1. 服务导向架构(SOA)与企业级JavaBean(EJB)概述
近年来,服务导向架构(SOA)发展势头迅猛。不过,由于不同厂商对SOA的定义不同,大家在理解SOA的核心原则以及判断架构是否基于SOA时存在诸多困惑。
对于EJB开发者和架构师而言,理解SOA和EJB并非相互排斥,而是共生关系至关重要。可以使用EJB编写强大的SOA架构,也可能会被要求使用EJB来实现SOA项目。所以,必须掌握SOA的基本原理,并正确处理SOA和EJB的关系。
JavaBeans和Enterprise JavaBeans是不同的技术。JavaBeans是具有get/set方法的Java类,是可重用的Java组件,可用于组装更大的组件或构建整个应用程序,但它是开发组件,不是可部署组件,不需要运行时环境和容器,也不需要应用服务器来实例化、销毁和提供服务。而EJB应用在将数据从一个EJB层传输到另一个层(如表示层组件或非Java EE的Java应用)时可以使用JavaBeans。
2. 服务导向架构的定义
SOA的核心是服务的概念。简单来说,服务是一组相关组件,用于执行特定的业务流程功能,例如银行间资金转移或预订行程。SOA是一种专注于服务开发而非零散组件开发的范式,这些服务从功能角度提供了更高层次的抽象。
SOA具有自主性,这些独立实体尽管实现方式或部署平台不同,但仍能相互交互。通过编排、协调和协作技术(如WS - BPEL、EbXML BPSS和WS - CDL)将这些自主且松散耦合的服务集成在一起,以满足不断变化的业务需求,具有巨大的价值。