IBM® 面向服务体系结构(Service-Oriented Architecture,SOA)编程模型使非程序员可以创建和重用 IT 资产,而不需要掌握 IT 技能。该模型包括组件类型,布线,模板,应用程序适配器,统一数据表示和企业服务总线(Enterprise Service Bus,ESB)。 SOA 编程模型系列 对于任何独立程序员来说,有效的掌握和应用飞速增长的软件技术、实践、工具和平台,变得越来越困难,当然更不用说非程序员了。然而,如果业务流程转换能够成功进行,很多的非程序员就可以使用现有的 IT 资产来进行他们的工作,而不用去学习繁琐的底层技术细节。本文描述了一个新的面向服务体系结构(SOA)编程模型,该模型实现了业务关系的分离,因此企业中具备不同技术水平和工作角色的人,即使不是专业的 IT 人员,也可以在软件开发生命周期每个阶段创建和使用 IT 资产。这可以显著提高随需应变企业的业务灵活性。 引言 IBM 产品逐渐应用了 SOA 和编程模型。程序员构建服务、使用服务,并且开发聚集服务的解决方案。我们在这里使用"程序员(programmer)"这个泛称,因为 SOA 编程模型的一个关键方面是将"编程"的概念扩展到非传统开发人员的工作角色和技能,比如业务分析员和脚本语言用户。 大多数关于 Web 服务的文章主要集中在服务接口和这些接口的使用方面。为了补充接口标准和最佳实践,IBM 引入了一个编程模型,来实现服务并将它们组合为解决方案。扩展 IBM 软件平台的范围,使之能够被更多的用户团体使用 -- 包括非传统的开发人员 -- 这个模型提供了新的组件类型与用户的角色、目标、技能和概念框架相匹配。这些组件类型使更直观的开发工具可以使用。另一个主要的主题是通过编程模型特性和功能的逐步透明化来增强可使用性。 我们介绍了实现这些目标的一些新的编程模型元素。我们介绍了如何利用它们来使您选择、开发、建议或管理的软件能够更加容易的开发、重用和消费。将软件构造为服务对于按需的企业来说更加有价值,因为不具备太多技能的开发人员可以将其"接入"到解决方案中,或者编入一个业务流程编排流中来满足快速变更的业务需求。不管你是大型企业或者小型业务的开发人员、独立软件供应商(ISV),还是应用程序提供者或者中间件供应商,你都可以通过这种方式构造你的软件,从而从中受益。那么,让我们立即开始应用 SOA 原理。 SOA 编程模型的亮点 让我们首先重点介绍 SOA 编程模型的几个主要特性。 服务数据对象(SDO)是 IBM SOA 中的一个基础概念。SDO 大大提高了开发人员的生产力,并且将你从如何访问特定后端数据源、应用程序和服务的技术细节中解脱出来。它们提供了简化的抽象,使程序员可以更多的集中在业务逻辑上。SDO 还提供了统一的消息表示来与服务交互,淘汰了用于数据表示的复杂技术迷宫,仅仅访问单个统一模型。 SOA 编程模型同样需要统一的范型来创建和访问业务逻辑。为了易于使用,服务应该隐藏实现技术之间的差别,并应该建立在比现有编程结构(比如 Enterprise Java™Bean(EJB))更高级别的抽象上。服务可以通过组装到模块(这些模块可以组成解决方案)中的组件来实现。通过组件公开的服务可以使用可定位的接口来调用。您可以使用 Web 服务描述语言(WSDL)、Java 或其他语言来描述接口。这个实现类型可以有对所需服务的待定引用,在将组件结合在一起执行之前,这些服务是满足需求的。 这个编程模型还引入了良好定义的组件类型,对程序员开发和部署到解决方案中的常用构件建模。例子包括"无格式旧 Java 对象"、业务流程执行语言(BPEL)流程、结构化查询语言(SQL)服务、Adaptive Business Objects、通过 Java 连接器体系结构(J2C)资源适配器访问的 CICS®程序、使用 SAP 业务应用程序编程