SOA与面向服务开发-笔记

来源:互联网 发布:淘宝网店怎么注销 编辑:程序博客网 时间:2024/05/17 22:32

SOA

一套用于实现应用间互操作以及重用IT资产的方法。SOA本质上是在方法论层面,是通向更优的IT环境的一套规划和指导,是一种基础设施的规划。这种基础设施不但可以确保IT与业务一致,而且可以通过资产的重用、快速应用开发,及多渠道服务减少开销。

          特点面向服务、互操作、松耦合

          目标1)促进IT能力与业务目标的配合与协调。2)提供一种机动的IT基础设施,允许不同的应用交换数据和参与业务流程。

          早期用于实现SOA的技术(如CORBAJ2EEMQ)都是与某一特定技术平台相关的;没有为进行服务层数据建模或数据处理提供强大的支撑;不支持服务合成、服务编制与编排;不能扩展为支持更多传输协议和更多数据编码系统。

 

XML:一种跨企业的、公共的、中立的数据格式。

 

Web服务:基于XML技术,用于传递消息,描述服务,发现服务以及其他扩充功能。

Web服务不同于像J2EECORBANET框架那样的中间件系统,Web服务是基于XML的接口技术,是非可执行的,没有执行环境,需依赖其他技术来创建执行环境。

基本的Web服务规范为已有应用和新应用之间的数据共享提供了互操作解决方案;扩展的Web服务规范则提供了包括可靠性、事务性以及安全性在内的集成解决方案。

          Web服务平台(基于API、规范、标准等的平台):定义了用于所有服务的标准和运行时基础设施,以便这些服务能够以一致的,与下层技术无关的方式进行交互和互操作。

Web服务平台要素:

1)服务契约

2)服务注册与查询

3)多协议和多传输支持

4)服务层安全、通信、服务质量、服务管理

 

面向服务的开发:

        面向过程----面向对象---面向组件---面向服务

          特点:重用、效率、与技术松耦合、职责划分。

          面向服务提供了一种与面向对象不同的思考角度与方式。

面向服务的开发使用户能够专注于业务问题本身的描述,而先前的开发方法则要求更关注于特定执行环境技术的使用,面向服务的开发比先前技术更面向业务问题的解决。

SOA是利用面向服务开发之优点的最好方式。

 

什么是服务?

          定义:对应于真实的业务活动或可识别的业务功能的IT资产。

服务是由它与其他服务交换的消息而不是由一个方法的型构来定义的。

与过程、对象或组件相比,服务为促进业务需求与技术能力的配合与协调提供了更理想的抽象层次;服务为创建可重用的、粗粒度的业务功能提供了更理想的抽象层次。

          目的:服务时用来解决应用间的互操作问题,以及用于组合新应用或应用系统,而不是为应用创建具体的逻辑。

          执行:服务的执行是根据服务所支持的一种或多种消息交换模式进行消息交换。

          服务策略:服务使用权限;服务的使用代价;服务的可靠性等级、服务的安全等级;服务的性能等级。

          服务契约:是实现互操作与集成的手段;明确定义了服务的功能和非功能属性。实现了服务的外部访问接口与技术实现的分离。

          服务特征

                    松耦合:接口耦合、技术耦合、流程耦合。

                    定义良好的服务契约:服务契约是进行服务共享与重用的基础。

 

BPM:(业务流程管理)用于自动化业务操作的方法与技术。是一套软件系统、工具和方法的统称。独特之处在于显式地将业务流程逻辑从其它应用程序代码中分离出来。

          业务流程是现实世界中的一种活动,由一系列在逻辑上相关的任务组成。

          关注如何识别、建模、开发、部署和管理上述业务流程。

          流程建模:目标是在设计阶段之初获取业务需求,供后续的开发过程使用。

          流程执行:导入流程模型,然后执行和管理所有业务流程实例。

 

Web的成功经验:

          一种简单的文档标记语言:提供了强大的互操作性。

          一个轻量级的文档传递协议:提供了有效的、统一的数据传递机制。

 

构建Web服务中间件平台的技术要素:服务协议栈处理、多传输协议支持、服务消息可靠传递、服务安全、服务性能、服务监控和管理、服务可用性(自动重启、负载均衡、热部署等)

          多传输协议支持:框架层面的设计。

          服务性能HTTP非阻塞式报文解析;SOAP按需解析;分阶段消息处理框架(事件驱动、多线程架构、混合架构);反馈驱动的自适应线程调度算法。

          流程执行:面向数据的流程模型;流程的性能隔离执行(两阶段安全执行机制)

          协议处理的正确性验证:正确性定义、协议处理模型、模型验证。

0 0