接口的应用程序、Java 2 Enterprise Edition(J2EE)无状态会话 bean 和 MQSeries® 应用程序。 企业服务总线是多协议结构的一个关键角色,将服务组件编成无缝的交互,通过在消息路径中加入被称为中介的特别组件,来代理服务间的交互,而不用更改现有的端点,从而允许在核心级别上处理企业关注的内容 -- 比如审核、日志、路由、不匹配接口的适配、等价组件的增量替换、安全等。 新的流程语言缩小了 IT 概念和业务构件之间的间隙。很重要的一个是 BPEL。虽然流程可以通过业务分析员引入图形化工具来定义,但它也是一个可执行
程序。流程在按需业务转换中占有重要的地位,例如为扩展价值链描述长时间运行的可执行流程。通过扩展价值链,我们可以跨越多个供应商和 IT 域来进行业务安排,比如一个零售商和他的多个独立的供应商,保险公司及其众多的第三方理赔员,IT 外购状况等。业务状态机(business state machine)是业务分析师可以通过图形工具创建流程的另一个编程框架,并且在流程设计引擎中执行。状态机可以表示业务构件 -- 比如采购单、保险索赔等 -- 这些转换通过一些良好定义的状态来响应特定的生命周期"事件"。 需要重用的组件可以封装为具有可变店(points of variability)的
模板,可以在放入解决方案中时进行设计。这种适配成为我们的编程模型的第一部分,同时结合规则语言和相关的工具,为新型用户提供定制的能力。 另一个创新领域是新的解决方案模型,它让部署者、管理者和其它业务用户可以将组件组装成解决方案。在开发的时候,你可以将服务实现与托管服务的拓扑(系统架构师建模的部署拓扑)关联在一起。模型捕捉的系统需求和环境假设在早期的实现中进行校验,降低了应用程序生命周期的费用,并且极大的提高了可靠性和可计账性(accountability)。该模型的特性还包括现有应用程序的后期绑定、数据转换中介和适配器,可以通过企业服务总线来实现面向服务的交互。 总的来说,SOA 编程模型将开发和部署活动分割为不同的阶段,这些阶段可以发生在不同的时间,并且可以通过不同的个人使用不同的技能来实现。这就产生了关系的分离,使软件组件可以被重用。它也将软件体验划分为单独用户的业务角色、技能和任务。最终,它使软件生命周期可以适应按需企业的需要,因为它们通过针对业务灵活性重新设计 IT 流程来寻求更高的有效性。 编程模型的概念 编程模型通常是 IBM SOA 和 IBM 产品的核心。它定义了程序员可以构建和使用的概念和抽象。运行时产品,例如 WebSphere® Application Server,DB2®和 CICS,可以运行或托管编程模型构件。开发工具支持编程模型构件的建模和实现、组装到应用程序(解决方案),以及部署到运行时环境中。最后,系统管理产品、代理和设备支持对运行时和它们托管的编程模型构件的管理。 编程模型是什么?虽然目前没有公认的一般定义,但我们喜欢将它定义为: 程序员构建的一套部件类型。部件类型包括多种编程模型构件:超文本标记语言(HTML)文件、数据库存储过程、Java 类、可扩展标记语言(XML)Schema 定义、定义 MQSeries 消息的 C 结构,等等。 一系列角色,将具备相似技能和知识的开发和管理人员分组。用这种方式对开发人员分类有助于生产适应于角色的工具,使非程序员可以实现服务并将服务组装为解决方案。业务分析人员定义业务流程,销售专家定义顾客分类的策略并计算产品折扣。每一种角色包含: 角色所具备的技能。例如,用户界面开发人员开发界面,用来呈现应用程序或者解决方案的功能构件。假设这个角色了解正在开发的应用程序和它的业务目标,充分了解应用程序的用户及他们的任务,精通一些用户界面设计方法,能够通过为每个任务选择恰当的类型来创建易于使