扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
引言
如果您需要以一种逻辑格式来表示面向服务的体系结构 (SOA),以便利益相关者可以更好地使用各种构件,在他们的体系结构和设计工作中利用 SOA 统一建模语言 (UML) 组件,那么本文可以为您提供相应的帮助。了解如何利用 SOA 体系结构模式的服务组件(采用 UML 节点的形式)以创建 SOA 场景。以一种与产品无关*的方式了解 SOA 模式及其相关联的服务,其中使用 UML 表示 SOA 的组件、连接以及与 SOA 体系结构模式的交互。
逻辑 SOA 参考体系结构
在图 1 中,采用一种与 UML 产品无关的方式表示 SOA 模式。在它最简单的形式中,SOA 模式由分离的企业服务总线(Enterprise Service Bus,ESB)组成,该总线可以连接请求者和提供者,并在它们之间提供交互的服务。
图 1. 逻辑 SOA 参考体系结构
这个 SOA 模式由 ESB 基础结构、服务交互点 (SIP) 或端点组成,如表 1 所示。
表 1. 服务交互点
服务 | 所提供的功能 |
交互服务 | 使用门户,或者其他相关的 Web 技术,向使用者或者用户提供内容和数据的能力和功能。 |
流程服务 | 根据业务流程和业务流,管理消息流和多个服务之间的交互的控制功能。 |
信息服务 | 联合、复制和转换不同数据源的功能。 |
合作伙伴服务 | 将合作伙伴电子数据交换 (EDI) 和遗留系统集成到共同的企业体系结构中的功能。 |
业务应用程序服务 | 业务应用程序服务调用服务使用者的功能。 |
应用程序和数据访问服务 | 将核心应用程序与外部数据存储库以及打包的应用程序进行集成的功能。 |
ESB 用作 SOA 模型的连接入口点,并且提供了下列服务:
• 请求和响应服务
• 转换
• 基于内容的路由
• 自定义的日志记录
• 优化
• 监视
ESB 还提供了各种服务的通用连接和虚拟化。为了满足最新业务应用程序的需求,ESB 充分利用了服务组件体系结构 (SCA) 编程模型。
在图 2 中,您可以看到,ESB 支持最新的 SCA 编程模型,并提供了一个缺省的消息传递引擎,该引擎构建于 Java™ Message Service (JMS) 规范的基础之上。这个 ESB 使用了一个中介组件(模块),该组件基于 SCA 模块,以便为服务请求者和服务提供者之间的消息提供中介。从而可以定制 ESB 中的中介服务,以形成复杂的中介模式,这种中介模式采用与具体位置和标识无关的方式来实现虚拟化。它们还可以提高服务质量 (QoS) 需求,如性能、消息的加密/解密,以及可靠且安全的内容交付及事务。
图 2. 企业服务总线
这个中介组件由以下三个组件组成:
消息模型
以正在考虑的消息的元模型为基础(ESB 应该能够支持服务提供者和服务请求者之间的、不同类型的消息模型流,从而创建一个与消息-模型无关的交换。)
中介流
包含一些接口,用以调用中介流,以便在服务请求者和服务提供者之间执行中介,并提供对外部服务的引用(中介流支持以下几种中介模式:监视器、修改器、验证器、缓存、路由器、发现克隆等等。)
通信协议
提供对不同通信协议的支持,如 MQ、Java Message Service (JMS)、HTTP 和远程方法调用 (RMI),以连接服务提供者和服务使用者(这些通信协议支持多种交互模式,如请求/响应、发布/订阅、同步/异步。)
ESB 使用服务注册中心和存储库组件作为动态查找机制,以提供关于服务端点的信息。因此,注册中心和存储库服务可以优化对服务元数据的访问,以及服务交互和策略的管理。它还支持其他标准的注册中心和存储库的集成和联合。在其最基础的状态下,它是由服务元数据构件文档组成的,如 XML 模式定义语言 (XSD) 或者 Web 服务描述语言 (WSDL) 文件。通过服务存储库存储并管理这些服务元数据文件。
交互服务
图 3 中显示了具有 ESB 的服务集成点的交互服务。这些交互服务节点可以作为用户的 SOA 入口点。这些交互服务为 SOA 提供表示层,其中对相关的接口进行了抽象,并聚合了最终用户和 SOA 应用程序之间的各个信息源。
交互服务可以分为三类主要的服务:
用户接口服务
由使用仪表板进行决策制定和可视化操作的门户应用程序组成。
用户交互服务
由可视化、协作、组合应用程序、警报和表格组成。
部署服务
包含移动设备、浏览器和富客户端。
交互服务使用支持的模板组件以简单地创建组合应用程序。这些组合应用程序:
• 为外包的或者内部的服务应用程序提供基础。
• 支持富客户端和移动设备最终用户客户端。
• 提供高度自定义和动态的数据,这将提供实时的可见性,以便将结果与基础业务流程度量关联起来。
• 作为仪表板进行使用,为用户提供该项目的关键性能指标 (KPI) 的实时视图。
图 3. 交互服务
组合应用程序中的每个部分都可能包含预先构建的、具有特定功能和相关联的工作流的 Portlet。交互服务还可以具有内置的筛选功能、基于浏览器的配置向导、交互的 Web 窗体、搜索、Web 2.0 技术和协作。例如,协作服务组件是一个完全集成的、基于门户的协作环境,该环境包括电子邮件、日历和日程安排、即时消息传递、Web 会议、文档以及 Web 内容管理。
流程服务
图 4 显示了用于在 SOA 域内执行其功能的流程服务和组件。流程服务使用业务流程和中介模块来实现它的业务流需求。流程服务使用 SCA 编程模型对使用和产生业务数据的业务服务进行建模。
图 4. 流程服务
可以使用业务流程执行语言 (BPEL) 来定义业务流程。业务流程是在预定义的序列中调用以实现业务目标的一组业务相关的活动、规则和条件。业务规则是一种通过业务功能的外部化来实现和实施业务策略的手段。外部化支持从应用程序的其他方面独立地管理业务规则。这种独立性支持动态业务规则更新功能,从而提供了更加灵活的业务。
SCA 组件由接口、引用和实现组成。服务组件可以包含使用 Java 编写的接口或者 WSDL 端口类型。业务流程类型组件由流程实现类型组成,这个流程实现类型可以通过 Java 接口或者 WSDL 端口类型接口实现一个或者多个 SCA 接口。流程运行的时间可能很长,也可能很短;运行时间很短的流程称为微流。运行时间很长的业务流程可以与多个合作伙伴进行交互,并且通过执行标准的、无状态的 Web 服务调用来进行交互。
可以通过 Web 服务接口与各个合作伙伴发生交互。BPEL 基于 WSDL 和 XML 模式构建。可以按 BPEL 规范定义的那样,使用一个用于语法扩展的 XML 模式,以及应用于语义约束的一组全面的规则,来完成对流程模型的验证。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者