软件体系结构 (software architecture)

94
软软 软软软 (Software Architecture) 软软软软软软软 软软软 Service-Oriented Architecture (SOA)

Upload: trudy

Post on 19-Jan-2016

47 views

Category:

Documents


2 download

DESCRIPTION

软件体系结构 (Software Architecture). 面向服务的软件体系结构 Service-Oriented Architecture (SOA). 内容. SOA 的背景 什么是 SOA 相关技术 如何构建 SOA 系统 SOA 与其它技术的关系. 新方法的商业驱动力. Heterogeneity. Change. cutting costs & maximizing the utilization of existing technology. Better More competitive More responsive. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 软件体系结构 (Software Architecture)

软件体系结构(Software Architecture)

面向服务的软件体系结构Service-Oriented

Architecture (SOA)

Page 2: 软件体系结构 (Software Architecture)

内容

• SOA 的背景• 什么是 SOA

• 相关技术• 如何构建 SOA 系统• SOA 与其它技术的关系

Page 3: 软件体系结构 (Software Architecture)

新方法的商业驱动力

• 企业压力之下的两个基本的主题– 异构– 变化

cutting costs&

maximizing the utilization of existing technology

BetterMore competitiveMore responsive

Conflict

Heterogeneity Change

Page 4: 软件体系结构 (Software Architecture)

随需而变On Demand e-Business

• 对 SOA 的需求来源于需要使业务系统变得更加灵活,以适应业务中的改变。通过允许强定义的关系和依然灵活的技术实现, IT 系统既可以利用现有系统的功能,又可以准备在以后做一些改变来满足它们之间交互的需要。– 横向的改变– 纵向的改变– 内部改变– 利用灵活的结构进行新的改变

Page 5: 软件体系结构 (Software Architecture)

企业应用的发展

Page 6: 软件体系结构 (Software Architecture)

体系结构的发展

Page 7: 软件体系结构 (Software Architecture)

• 为了减少异构性、互操作性和不断改变的要求的问题,这样的体系结构应该提供平台来构建具有下列特征的应用程序服务– 松散耦合 – 位置透明 – 协议独立

Page 8: 软件体系结构 (Software Architecture)

候选解决方案• 面向对象的分析和设计

– 通过封装对象的某些方面,以简化复杂业务场景的分析

– 为了降低复杂性,可以抽象对象的某些特征,这样就可以只捕获重要或本质的方面。

• 基于构件的开发– 通过内聚一些更细粒度的对象来提供定义良好的功能– 一旦组织在更高层次上实现了基于完全独立的功能构件的体系结构,就可以将支持企业的应用程序划分成一组粒度越来越大的构件。可以将构件看作是打包、管理和公开服务的机制

Page 9: 软件体系结构 (Software Architecture)

候选解决方案• 面向服务的设计

– 服务通常实现为粗粒度的可发现软件实体,它作为单个实例存在,并且通过松散耦合的基于消息通信模型来与应用程序和其他服务交互

Page 10: 软件体系结构 (Software Architecture)

候选解决方案• 分层应用系统体系结构

Page 11: 软件体系结构 (Software Architecture)

对新型体系结构的要求• 不同系统和不同编程语言的互操作性?———一种适合各种系统和编程语言的通信协议被要求。

• 一种与平台无关的、清晰明确的描述语言– 为了使用其他提供者提供的服务,不仅需要对提供者的系统进行访问,而且那些服务的接口必须用一种语法清晰,平台无关的语言描述。

• 服务的查找和获得– 为了能够在系统设计时特别是运行时方便地进行集成,我们需要一种机制用来查找和获得有效的服务,这些服务应该基于他们的功能或者调用方式被很好地分类了。

Page 12: 软件体系结构 (Software Architecture)

内容

• SOA 的背景• 什么是 SOA

• 构成 SOA 的技术• 如何构建 SOA 系统• SOA 与其它技术的关系

Page 13: 软件体系结构 (Software Architecture)

定义• 面向服务的体系结构( service-oriented

architecture , SOA )是一个构件模型,它将应用程序的不同功能单元(称为服务)通过定义良好的接口和契约联系起来– 接口是采用中立的方式进行定义的,它应该独立于实现服务的硬

件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。

• 服务( service )是封装成用于业务流程的可复用构件的应用程序函数。它提供信息或简化业务数据从一个有效的、一致的状态向另一个状态的转变– 用于实现特定服务的流程并不重要,只要它响应命令并为请求提

供高质量的服务就可以了

Page 14: 软件体系结构 (Software Architecture)

SOA 的特点• 松耦合

– 在该体系架构中,客户端不和任何服务器相关联,它只和服务相联系,所以客户端和服务器的集成不影响客户端应用程序。

– 无论老的或者新的功能模块都可以被封装成服务构件被发布。

– 功能构件和它们的接口分离,所以新的接口可以非常方便地插入。

– 在复杂的应用程序里,业务过程的控制可以被隔离:引入一个业务规则引擎用来控制已经定义好的业务过程流。引擎根据工作流的状态调用各种不同的服务。

– 服务可以在运行时动态地合成进来。– 通过配置文件进行绑定,所以可以非常容易地适应各种新的需要

Page 15: 软件体系结构 (Software Architecture)

SOA 的特点• 明确定义的接口

– 服务交互必须是明确定义的– Web 服务描述语言( Web services

Description Language , WSDL )是受到广泛支持的方法,用于描述服务请求者所要求的绑定到服务提供者的细节

• 服务 • 调用操作的消息 • 构造这种消息的细节 • 关于向何处发送用于构造这种消息的处理细节的消息的信息

Page 16: 软件体系结构 (Software Architecture)

SOA 的特点• 无状态的服务设计

– 服务应该是独立的、自包含的请求,在实现时它不需要从一个请求到另一个请求的信息或状态

– 服务不应该依赖于其他服务的上下文和状态。当需要依赖时,它们最好定义成通用业务流程、函数和数据模型

Page 17: 软件体系结构 (Software Architecture)

SOA 的特点• 服务粒度作为设计要点

– 对于外部的使用推荐使用粗粒度的接口,而细粒度的接口可能用于企业内部

• 粗粒度接口可能是特定服务的完整处理,例如 SubmitPurchaseOrder ,在这里消息包括定义订购单所需的所有业务信息。细粒度接口可能具有用于以下方法的不同操作: CreateNewPurchaseOrder 、 SetShippingAddress 、 AddItem 等

– 虽然细粒度的接口为请求者应用程序提供了更多的灵活性,它同样也意味着交互的模式可能随着不同的服务请求者而不同。这可能使对于服务提供者的支持更加困难。粗粒度接口保证服务请求者将以一致的方式使用服务。

– SOA 不要求使用粗粒度接口,但是推荐使用它们作为外部集成的最佳实践

Page 18: 软件体系结构 (Software Architecture)

SOA 的特点• 服务质量需要重点考虑

– SOA 设计将跨越计算机系统,并且还可能跨越企业边界,因此不得不考虑在使用 Internet 时安全性功能和需求以及如何链接伙伴的安全域

– Internet 协议并不是为可靠性(有保证的提交和提交的顺序)而设计,但是不得不确保消息被提交并被处理一次。当这不可能时,请求者必须知道请求并没有被处理

Page 19: 软件体系结构 (Software Architecture)

Elements of SOA

Page 20: 软件体系结构 (Software Architecture)

功能性元素• 传输是一种机制,用于将来自服务使用者的服务请求传送给服务提

供者,并且将来自服务提供者的响应传送给服务使用者。 • 服务通信协议是一种经过协商的机制,通过这种机制,服务提供者

和服务使用者可以就将要请求的内容和将要返回的内容进行沟通。 • 服务描述是一种经过协商的模式,用于描述服务是什么、应该如何

调用服务以及成功地调用服务需要什么数据。 • 服务描述实际可供使用的服务。 • 业务流程是一个服务的集合,可以按照特定的顺序并使用一组特定

的规则进行调用,以满足业务要求。注意,可以将业务流程本身看作是服务,这样就产生了业务流程可以由不同粒度的服务组成的观念。

• 服务注册中心是一个服务和数据描述的存储库,服务提供者可以通过服务注册中心发布它们的服务,而服务使用者可以通过服务注册中心发现或查找可用的服务。服务注册中心可以给需要集中式存储库的服务提供其他的功能。

Page 21: 软件体系结构 (Software Architecture)

服务质量元素• 策略是一组条件和规则,在这些条件和规则之下,服务

提供者可以使服务可用于使用者。策略既有功能性方面,也有与服务质量有关的方面;因此,我们在功能和服务质量两个区中都有策略功能。

• 安全性是规则集,可以应用于调用服务的服务使用者的身份验证、授权和访问控制。

• 传输是属性集,可以应用于一组服务,以提供一致的结果。例如,如果要使用一组服务来完成一项业务功能,则所有的服务必须都完成,或者没有一个完成。

• 管理是属性集,可以应用于管理提供的服务或使用的服务。

Page 22: 软件体系结构 (Software Architecture)

SOA Collaborations

Page 23: 软件体系结构 (Software Architecture)

角色• 服务使用者:服务使用者是一个应用程序、一个软件模块或需要一个服务的另一个服务。它发起对注册中心中的服务的查询,通过传输绑定服务,并且执行服务功能。服务使用者根据接口契约来执行服务。

• 服务提供者:服务提供者是一个可通过网络寻址的实体,它接受和执行来自使用者的请求。它将自己的服务和接口契约发布到服务注册中心,以便服务使用者可以发现和访问该服务。

• 服务注册中心:服务注册中心是服务发现的支持者。它包含一个可用服务的存储库,并允许感兴趣的服务使用者查找服务提供者接口。

Page 24: 软件体系结构 (Software Architecture)

操作• 发布:为了使服务可访问,需要发布服务描述以使服务使用者可以发现和调用它。

• 发现:服务请求者定位服务,方法是查询服务注册中心来找到满足其标准的服务。

• 绑定和调用:在检索完服务描述之后,服务使用者继续根据服务描述中的信息来调用服务。

Page 25: 软件体系结构 (Software Architecture)

SOA 带来的好处• 利用现有的资产

– SOA 提供了一个抽象层,通过这个抽象层,企业可以继续利用它在 IT 方面的投资,方法是将这些现有的资产包装成提供企业功能的服务。组织可以继续从现有的资源中获取价值,而不必重新从头开始构建。

• 更易于集成和管理复杂性– 在面向服务的体系结构中,集成点是规范而不是实现。这提供了

实现透明性,并将基础设施和实现发生的改变所带来的影响降到最低限度。通过提供针对基于完全不同的系统构建的现有资源和资产的服务规范,集成变得更加易于管理,因为复杂性是隔离的。当更多的企业一起协作提供价值链时,这会变得更加重要。

Page 26: 软件体系结构 (Software Architecture)

• 更快的响应和上市速度– 从现有的服务中组合新的服务的能力为需要灵活地响应苛刻的商

业要求的组织提供了独特的优势。通过利用现有的组件和服务,可以减少完成软件开发生命周期(包括收集需求、进行设计、开发和测试)所需的时间。这使得可以快速地开发新的业务服务,并允许组织迅速地对改变做出响应和减少上市准备时间。

• 减少成本和增加复用– 通过以松散耦合的方式公开的业务服务,企业可以根据业务要求

更轻松地使用和组合服务。这意味资源副本的减少、以及重用和降低成本的可能性的增加。

• 说到做到– 通过 SOA ,企业可以未雨绸缪,为未来做好充分的准

备。 SOA 业务流程是由一系列业务服务组成的,可以更轻松地创建、修改和管理它来满足不同时期的需要。

Page 27: 软件体系结构 (Software Architecture)

内容

• SOA 的背景• 什么是 SOA

• 相关技术– Web Services

– Enterprise Business Service ( ESB )• 如何构建 SOA 系统• SOA 与其它技术的关系

Page 28: 软件体系结构 (Software Architecture)

Web Services 产生背景 ( 一 )

•WWW 的发展–浏览器驱动 服务驱动

Brow

ser

Selfhelping Traveller

Selfhelping Travel Service

Page 29: 软件体系结构 (Software Architecture)

产生背景• 传统中间件难以适应 Internet

– 往往特定于端点( Endpoint )• UNIX RPC : 端点必须与 UNIX兼容• CORBA : 端点必须有 ORB 运行环境• RMI : 端点必须有 Java虚拟机• DCOM : 端点必须是 Windows 操作系统

– 难以穿越防火墙• 端口不固定• 消息采用二进制编码

– …

Page 30: 软件体系结构 (Software Architecture)

产生背景(四)• 软件产业的发展

– 市场模式:面向产品转变为面向服务– 销售策略:“软件即服务”( Software-as-

Service )

如何满足上述发展需求?

Page 31: 软件体系结构 (Software Architecture)

什么是 Web Services?(一)

• 一个能够使用 XML 消息通过网络来访问的Interface, 这个 Interface 描述了一组可访问的操作。– 由 SOAP+WSDL 包装的 Object– 适应松散耦合的网络环境,可通过 Web 访问,手段是

SOAP Message– 服务的行为、输入 /输出都可使用 WSDL 描述

WebService

Inte

rface

Invocation

SOAP

WSDLDescription

ServiceRequestor

Page 32: 软件体系结构 (Software Architecture)

什么是 Web Services?(二)

• e-Business驱动了 Web Service 的发展,而Web Service 的基石是 Web 技术、 IT 技术和对象技术的融合。– 高度可集成的、基于 Web 的对象– 通过 SOAP Message 实施的面向对象编程– 能够将你现有的企业应用使用 SOAP 包装、 WSDL 描述,从而发布企业的商务功能或商务数据

Page 33: 软件体系结构 (Software Architecture)

什么是 Web Services?(三)

• Web Service 是松散耦和的、可复用的软件模块,从语义上看,它封装了离散的功能,在 Internet上发布后能通过标准的 Internet 协议在程序中访问。

• Web Service 是自包含的、自描述的、模块化的应用程序,可以通过 Web 发布、定位和调用。

• Web Service 是互联网应用需求和技术发展的双重产物。 Web Service代表新一代的软件架构模式,就是通过互联网架构应用软件,服务即软件。

Page 34: 软件体系结构 (Software Architecture)

Web Services 的特点(一)• Web 服务是可复用的软件模块。 Web 服务是对软件开发中面向对象设计的发展和升华。基于构件的模型允许开发者复用其他人创建的代码模块,组成或扩展它们,形成新的软件。

• 这些软件是松散耦合的。传统的应用软件设计模式要求各个单元之间紧密连接,这种连接形成的复杂性要求开发者必须对连接的两端元素有完全的了解和控制能力,而且,这种连接一旦建立后,很难从中把一个元素取出,用另外一个元素代替。相反,松散耦合的系统,只需要简单的协调,并允许更加自由的配置。

Page 35: 软件体系结构 (Software Architecture)

Web Services 的特点(二)• 从语义上看, Web 服务封装了离散的功能。一个 Web 服

务就是一个自包含的“小程序”,完成单个的任务。 Web 服务的模块使用其他软件可以理解的方式描述输入和输出,其他软件知道它能什么,如何调用它的功能以及会返回什么样的结果。

• Web 服务可以在程序中访问。和 Web网站或桌面程序不同, Web 服务不是为直接与人类交互设计的,它们不需要有图像化的用户界面。 Web 服务是在代码级工作的,它们被其他软件调用,并与其他软件交换数据。不过 Web 服务最终的目的还是形成一个能够与用户交互的应用软件。

• Web 服务是在 Internet 上发布的。 Web 服务使用现有的并广泛使用的传输协议,比如 HTTP 。

Page 36: 软件体系结构 (Software Architecture)

Web Service 的基本结构

Page 37: 软件体系结构 (Software Architecture)

角色与操作

• 服务注册表– 服务的发布与定位– 类似电话簿

• 服务提供商– 提供服务– 将可用的服务发布到注册表中

• 服务用户– 通过注册表查找所需服务– 通过提供商与服务绑定,并使用服务

Page 38: 软件体系结构 (Software Architecture)

运行时情景:自助游

UDDI Registry

Personal Travel Assistant

1) Publish(upload) WSDL

2) Search for Web Service

3) Download WSDL

4) Invoke via SOAP

5) Respond via SOAP Selfhelping Travel Web

Service Provider

Page 39: 软件体系结构 (Software Architecture)

Web Services 的分类(一)•按用户与服务的相对位置划分

–内部服务:用户与服务属于同一个公司–外部服务:用户与服务分属不同公司

Page 40: 软件体系结构 (Software Architecture)

Web Services 的分类(二)

• 从功能划分– 面向内容的服务

• 提供数据为主,没有或极少量的计算• 如,收集、整理多个站点内容的信息联盟

– 基础服务• 为用户提供便于使用其它服务的信息• 如, Microsoft Passport, 移动设备定位服务

– 面向业务的服务• 提供业务逻辑与数据• 如, iCare, StoreBrand

Page 41: 软件体系结构 (Software Architecture)

Web Services 的开发生命周期

Web 服务的开发生命周期包括以下 4 个阶段:• 创建:创建阶段包括开发和测试Web 服务的实现、服务

接口说明的定义和服务实现说明的定义。• 安装:安装阶段包括把服务接口和服务实现的定义发送到

服务请求者或服务注册处那里,并把服务的可执行程序放到一个可执行的环境中(通常是 Web 应用服务器)。

• 运行:在运行阶段, Web 服务等待调用请求。这个时候,Web 服务已经完全配置好,可以被不同的服务请求者通过网络访问和调用。而服务的请求者这个时候可以进行查找服务和绑定操作。

• 管理:管理阶段对 Web 服务应用程序进行监督、检查和控制等。比如安全性管理、性能管理、服务质量管理等。

Page 42: 软件体系结构 (Software Architecture)

Web Services 的体系结构• Web Services 的技术架构• Web Services 的关键技术

Page 43: 软件体系结构 (Software Architecture)

Web Services 的技术架构

Internet: IPv4, IPv6

Transport: HTTP, FTP, SMTP

Messaging: SOAP

Service Description: WSDL

Service Discovery, Integration: UDDI

Workflow: WSFL

Routing, Reliability and Transaction

???

Managem

en

t

Qualit

y o

f Serv

ice

Secu

rity

Page 44: 软件体系结构 (Software Architecture)

Web Services 的技术架构(1/2)

• 网络层: Web 服务的基础是网络,因此网络层位于 Web服务技术架构的底层。 HTTP凭借其简单而广泛应用,成了 Web 服务实现中首选的网络协议。其他一些Internet 协议,比如 SMPT 和 FTP等,也可以用于 Web服务。而在局域网内,则可以使用 MQSeries 、 CORBA等应用范围不是很广的技术。

• XML的消息层:在网络层之上是基于 XML 的消息层,该层要求 XML 是消息协议的基础。目前, SOAP 是最好的 XML 消息协议。

• 服务说明层:其实是一堆说明文档。 WSDL 用于描述基于 XML 的服务,支持对可交互服务的最小限度的描述。 WSDL 定义服务交互的接口和机制。

Page 45: 软件体系结构 (Software Architecture)

Web Services 的技术架构(2/2)

• 服务发布层:服务发布是指让服务的请求者得到WSDL文档,这个操作可以在服务请求者生命周期的任何阶段执行。

• 服务发现层:它的发现机制对应于服务发布层的发布机制。任何允许服务请求者得到服务说明并在运行时刻让应用程序使用的机制都可以被看做服务发现。最简单的发现方法是静态发现。还使用本地 WSDL注册、私有 UDDI注册或 UDDI操作节点发现 Web 服务。

• 其他技术层面:为了满足当前电子商务的要求, Web 服务应用程序必须满足企业级的需求,包括安全性、管理和服务质量等。

Page 46: 软件体系结构 (Software Architecture)

Web Services 关键技术•SOAP (Simple Object Access Protocol)

–基于 XML 的 Web services 调用协议–类似 CORBA/IIOP, RMI/JRMP

•WSDL (Web Services Description Language)

–基于 XML 的 Web services 描述协议 –类似 CORBA/IDL, RMI/Remote Interface

•UDDI (Universal Description, Discovery and Integration)

–发布与定位 Web services 的注册表–类似 CORBA Naming & Trader, RMI Registry

Business

Rules

UDDI

WSDL

SOAP

XML

Web S

ervices Technical S

tack

Common

Network

Page 47: 软件体系结构 (Software Architecture)

SOAP 简介• 定义

– 一种基于 XML 的轻载协议,用于分布环境中结构化与类型化信息的交换。

• SOAP 1.1: Userland, Microsoft, IBM, Lotus, DeveloperMentor – 自由的传输绑定 ( 不仅仅是 HTTP)– 自由的语言绑定 (比如 Java, C#)– 可插入的数据格式 ( 必须基于 XML)– 完全的中立 ( 中立、公开的标准 )– 独立于任何编程语言、对象模型、操作系统、平台

Page 48: 软件体系结构 (Software Architecture)

SOAP 消息

• 一条 SOAP 消息包括– 一个信封( SOAP envelope )– 一个消息头( SOAP Header )– 一个消息体( SOAP Body )

消息头

消息体

信封

Page 49: 软件体系结构 (Software Architecture)

数据封装概念

• SOAP 消息 (message):– 对等 SOAP 结点 (SOAP nodes) 间通讯的基本单位;

• SOAP条目:– 是一个句法上的结构,它用于包含一个逻辑上的单一元素,这一元素是需要被 SOAP结点处理的;

– 一个 SOAP条目是由该条目最外层元素的完整修饰名所标识的,这个完整修饰名是由一个局部名和一个命名空间 URI 组成的;

– 封装在 SOAP header 中的 SOAP条目成为Header条目,而封装在 SOAP body 中的SOAP条目为 Body条目。

Page 50: 软件体系结构 (Software Architecture)

SOAP 消息格式( 1 )• Request/Response Message

– Request 调用远端对象的某个方法– Response 返回该方法运行后的输出结果

User

SOAP Request

SOAP Response

ServiceProvider

WebService

Page 51: 软件体系结构 (Software Architecture)

SOAP 消息格式( 2 )• SOAP 定义了一个“ envelope” 对象

– 使用“ envelope” 包装消息自身– 消息可以采用自身特定的 XML词汇– 使用 namespace 来区分彼此

Message

Envelope

SOAP词汇集

自定义词汇

Page 52: 软件体系结构 (Software Architecture)

A SOAP Request Message

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://{soaporg}/envelope/"SOAP-ENV:encodingStyle="http://{soaporg}/encoding/">

<SOAP-ENV:Body> <m:QuoteStockPrice xmlns:m="Some-URI"> <Symbol>MSFT</Symbol> </m:QuoteStockPrice></SOAP-ENV:Body>

</SOAP-ENV:Envelope>

Page 53: 软件体系结构 (Software Architecture)

A SOAP Response Message

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://{soaporg}/envelope/"SOAP-ENV:encodingStyle="http://{soaporg}/encoding/">

<SOAP-ENV:Body> <m:QuoteStockPriceResponse xmlns:m="Some-URI">

<Price>78.2</Price> </m:QuoteStockPriceResponse></SOAP-ENV:Body>

</SOAP-ENV:Envelope>

Page 54: 软件体系结构 (Software Architecture)

SOAP 隐藏通讯的实现细节

User

SOAP Request

SOAP Response

ServiceProvider

HTTPServer

?

SOAPProcessor

用户只需要了解 SOAP 消息的格式,而对底层实现的细节可以无需关心

EJB? Corba? DCOM?

Page 55: 软件体系结构 (Software Architecture)

SOAP 成功的关键因素

Internet 环境下实现技术的多样性使得早期的分布式技术无法实现普遍的互相连接

DCOM – 需要每个连接点都使用 WindowsCORBA – 需要每个连接点都有 ORBRMI – 需要每个连接点都使用 Java

SOAP 是基于平台独立的选择- 简单的 XML 格式- 可以在任意平台采用任意技术- 可以使用开放源代码资源

Page 56: 软件体系结构 (Software Architecture)

WSDL 简介

• 使用 XML 进行描述– 类似 IDL, 不过是使用 XML格式

• 描述了服务的操纵信息– Service Interface

– Implementation Details

– Access Protocol

– Contact Endpoint

• WSDL 是早先技术的综合– IBM's NASSL

– Microsoft's SDL

Page 57: 软件体系结构 (Software Architecture)

WSDL 文档结构

• WSDL文档可以分为两部分。顶部分由抽象定义组成,而底部分则由具体描述组成。抽象部分以独立于平台和语言的方式定义 SOAP 消息,它们并不包含任何随机器或语言而变的元素。这就定义了一系列服务,截然不同的网站都可以实现。随网站而异的东西如序列化便归入底部分,因为它包含具体的定义。

• 1 、抽象定义  Types :独立于机器和语言的类型定义 Messages :包括函数参数(输入与输出分开)或文档描述 PortTypes :引用消息部分中消息定义来描述函数签名(操作名、输

入参数、输出参数)• 2 、具体定义 Bindings : PortTypes 部分的每一操作在此绑定实现 Services :确定每一绑定的端口地址

Page 58: 软件体系结构 (Software Architecture)

UDDI 简介

• Universal Description, Discovery and Integration• 为加速Web Service 的推广、加强 Web Service 的互操作能力而推出的一个计划– 基于标准的服务描述和发现的规范 (specification)

– 以资源共享的方式由多个运作者一起以 Web Service 的形式运作 UDDI商业注册中心

• 标准的服务描述与发布协议– 该描述信息包含了 WSDL 的服务描述信息(绿页)

• IT 业界和商业界的领导者的合作

Page 59: 软件体系结构 (Software Architecture)

角色与操作( 1 )• Service Provider

– 提供 e-Business Service– 通过 Service Registry 发

布 (Publish) 其提供的可用的 Service

ServiceProvider

ServiceRegistry

ServiceRequestor

Publ

ish

Page 60: 软件体系结构 (Software Architecture)

角色与操作( 2 )

• Service Registry– 为 Service 的发布和定位提供支持

– 类似电话黄页ServiceProvider

ServiceRegistry

ServiceRequestor

Publ

ish

Page 61: 软件体系结构 (Software Architecture)

角色与操作( 3 )

• Service Requestor– 通过 Service Registry 发

现 (Find) 需要的 Service– 绑定 (Bind) Service

Provider 提供的 Service, 并实施调用

ServiceProvider

ServiceRegistry

ServiceRequestor

Publ

ish Bind

Find

Page 62: 软件体系结构 (Software Architecture)

SOAP 和 WSDL 在 Web Services 中的应用• WSDL

– Publish 的内容、 Find 的返回结果和 Bind 的信息都是 WSDL 描述的服务信息

• SOAP– Service Registry 的访问

(Publish/Find) 、 Service的访问都是通过 SOAP Message 实现

ServiceProvider

ServiceRegistry

ServiceRequestor

Publ

ish Bind

Find

Page 63: 软件体系结构 (Software Architecture)

UDDI 解决的问题

一个中等规模的制造型企业需要和大约 400 个合作伙伴架构在线的交易关系,而每一个交易关系的连接可能都有其自身的标准和协议

更广泛的B2B

澳洲的一家花店想要将他能提供的服务加入到全球所有合适的 e-Marketplace 中去,但却不知道该如何寻找这些e-Marketplace

更智能地搜索

一家 B2B 的 e-Marketplace 无法顺利地获取行业内及行业外的相关供应商的供应目录数据,对于行业内的承运商等也同样如此。

更容易的资源汇聚

描述服务

发现服务

互相集成

Page 64: 软件体系结构 (Software Architecture)

UDDI Vision and Process

1. 从现有的标准 (standard) 开始• TCP/IP, HTTP, XML• Industry-specific schemas• Shared vision of open protocols

2. 通过 Web Service 的形式实施和拓展• Common web services “stack”• Shared implementation to avoid confusing customers• Public specs, open service, inclusive process

3. 将转变为一个标准实体组织• Manage design process for 3 revs• License control and IP to a 3rd party

Page 65: 软件体系结构 (Software Architecture)

服务描述信息Web Services Web Services How How UDDI UDDI

绿页Green Pages

黄页Yellow Pages

白页White Pages

电话簿中的白页:名字 号码。。。 。。。白 XX 34558550。。。 。。。北大信息学院 62757801。。。 。。。

电话簿中的黄页:类别 名字 号码。。。居民 白 XX 34558550。。。 院校 北大信息学院 62757801。。。

Page 66: 软件体系结构 (Software Architecture)

服务描述信息Web Services Web Services How How UDDI UDDI

绿页Green Pages

黄页Yellow Pages

白页White Pages

UDDI 的白页:服务提供商的信息,包括 -- 业务名称 -- 文本描述 -- 联系信息

业务名称:中青旅电子商务有限公司文本描述:由 XX 在京注册成立的高科技旅游电子商务服务公司。公司注册资金 XX ,业务范围 XX联系信息:公司地址: XX全国免费服务电话: 800-810-0138 传真: 86-10-85296198E-mail: [email protected]

Page 67: 软件体系结构 (Software Architecture)

服务描述信息Web Services Web Services How How UDDI UDDI

绿页Green Pages

黄页Yellow Pages

白页White Pages

UDDI 的黄页:服务的类属信息,三种标准分类法 -- 行业代码( NAICS ) -- 产品 / 服务代码( UN/SPSC ) -- 地理位置

行业代码: 旅游业

产品 / 服务代码:在线服务

地理位置: 北京

Page 68: 软件体系结构 (Software Architecture)

服务描述信息Web Services Web Services How How UDDI UDDI

绿页Green Pages

黄页Yellow Pages

白页White Pages

UDDI 的绿页:服务的技术信息,包括-- 如何与服务商建立连接-- 如何使用服务

http://www.cytsonline.com/SelfhelpingTravel.wsdl

Page 69: 软件体系结构 (Software Architecture)

UDDI 是如何工作的?

Harbour Metals 通过本地的 ASP创建了自身的站点

1.SydneyNet.com

Marketplaces 和 search engines查询了UBR, 缓存了 Harbour Metals 的技术数据

3. 客户和其他企业发现了Harbour Metals并开始与之进行 e-Commerce

4.

2.

ASP 将 Harbour Metals注册进了 UBR

UDDI Registry

Harbour Metal,Harbour Metal, 澳洲的一家铸铁企业澳洲的一家铸铁企业SydneyNet.com,SydneyNet.com, 澳洲的一个澳洲的一个 ASPASP

Page 70: 软件体系结构 (Software Architecture)

Registry 操作

IBM

Microsoft

HPother

other UDDI.org

queries

• Peer nodes(websites)– 商业实体可以在任意结点注册

– 不同的结点将会每天定期同步复制数据

– 在所有结点都会包含注册数据的全集

• 所有的结点都支持UDDI规范中定义的整套 SOAP API

• Compliance enforced by business contract

Page 71: 软件体系结构 (Software Architecture)

UDDI and SOAP

User/Client UDDI

SOAP Request

UDDISOAP Response

UDDI RegistryNode

HTTPServer

SOAPProcessor

UDDIRegistry Service

B2B DirectoryCreate, View, Update, and Deleteregistrations Implementation-

neutral

Page 72: 软件体系结构 (Software Architecture)

产品• .NET Web Services

• J2EE for Web Services• HP Web Services Platforms

Page 73: 软件体系结构 (Software Architecture)

.NET Web Services

Extension for Web Services

Page 74: 软件体系结构 (Software Architecture)

J2EE for Web Services

Business

Partner

or

other

system

J2EE

Firewall

2)Process XML

6)Process data

Servlets

4)Perform

business logic,

call external

systems

3)Call EJB layer 1)SOAP request

7)SOAP response 5)Return data

EJBs

目前倾向于在 Web 容器中增加一个 SOAP Listener ,而处理逻辑由 Servlet 转发至 EJB

Page 75: 软件体系结构 (Software Architecture)

HP Web Services Platforms

Page 76: 软件体系结构 (Software Architecture)

技术发展趋势 IBM

• 第一阶段 (2001)– 动态业务集成,简单的事务处理

• 第二阶段 (2002-2004)– 基础设施增强,事务处理更复杂

• 第三阶段 (2004+)– 自适应系统

( Adaptive Systems )

Page 77: 软件体系结构 (Software Architecture)

内容• SOA 的背景• 什么是 SOA

• 相关技术– Web Services– Enterprise Business Service ( ESB )

• 如何构建 SOA 系统• SOA 与其它技术的关系

Page 78: 软件体系结构 (Software Architecture)

Why ESB

• 虽然 Web Service 可以实现 SOA ,• 但是 企业需要更加成熟和可管理的基础设施来实现 SOA ,以支持大量的交互。

• 并且 需要支持更多的集成模式,例如,基于事件的集成和基于消息的集成等。

Page 79: 软件体系结构 (Software Architecture)

Why ESB

Page 80: 软件体系结构 (Software Architecture)

What is ESB

• A new architecture that exploits Web services, messaging middleware, intelligent routing, and transformation.

—— Roy Schulte of Gartner

通过起到中间件的中间层作用而实现面向服务架构( SOA )的软件基础设施

Page 81: 软件体系结构 (Software Architecture)

ESB Capabilities

• supports multiple integration paradigms– Service-oriented architectures in which applications

communicate through reusable services with well-defined, explicit interfaces. Service-oriented interactions leverage underlying messaging and event communication models.

– Message-driven architectures in which applications send messages through the ESB to receiving applications.

– Event-driven architectures in which applications generate and consume messages independently of one another.

Page 82: 软件体系结构 (Software Architecture)

ESB 提供的服务• Communication middleware supporting a variety of

communication paradigms (such as synchronous, asynchronous, request/reply, one-way, call-back), qualities of service (such as security, guaranteed delivery, performance, transactional), APIs, platforms, and standard protocols

• A mechanism for injecting intelligent processing of in-flight service requests and responses within the network

• Standard-based tools for enabling rapid integration of services

• Management system for loosely-coupled applications and their interactions

Page 83: 软件体系结构 (Software Architecture)

ESB Capabilities

• Centralizes control and distributes processing– Common depiction of the ESB

Page 84: 软件体系结构 (Software Architecture)

Hub-and-spoke Integration

Page 85: 软件体系结构 (Software Architecture)

Hub variation: Bus

Page 86: 软件体系结构 (Software Architecture)

ESB Implementation

Page 87: 软件体系结构 (Software Architecture)

The role of the ESB and other SOA components

Page 88: 软件体系结构 (Software Architecture)

The role of the ESB and other SOA components

• The Business Service Directory, which provides a taxonomy and details of available services to systems that participate in an SOA.

• The Business Service Choreography, which is used to orchestrate sequences of service interactions into short or long-lived business processes.

• The ESB Gateway, which is used to provide a controlled point of external access to services where the ESB does not provide this natively. Larger organizations are likely to keep the ESB Gateway as a separate component. An ESB Gateway can also be used to federate ESBs within an enterprise.

Page 89: 软件体系结构 (Software Architecture)

• SOA 的背景• 什么是 SOA

• 相关技术– Web Services

– Enterprise Business Service ( ESB )• 如何构建 SOA 系统• SOA 与其它技术的关系

Page 90: 软件体系结构 (Software Architecture)

构建 SOA 的四个阶段

Page 91: 软件体系结构 (Software Architecture)

构建 SOA 的四个阶段• 第一个层次是最简单的,因为它只需创建单独的服务。

• 在第二个层次中,不仅可以创建服务,而且可以开始将业务功能集成到 SOA 中。这涉及多个层次的集成,其中包括应用程序集成、信息集成、流程集成和整个系统集成。

• 第三个层次可以实现整个企业的业务功能的集成。• 而采用 SOA 的第四个层次集中于转换业务模型和构建新的业务模型,以使之成为按需就绪的模型。

Page 92: 软件体系结构 (Software Architecture)

内容• SOA 的背景• 什么是 SOA

• 相关技术– Web Services

– Enterprise Business Service ( ESB )• 如何构建 SOA 系统• SOA 与其它技术的关系

Page 93: 软件体系结构 (Software Architecture)

与其它技术的结合• 面向对象与构件技术

– SOA 服务可以是一个简单对象、复杂对象、对象的集合、包含许多对象的流程、包含其他流程的流程,甚至还可以是输出单一结果的应用程序的整体集合。

• 与编程语言的结合– 可以用任何编程语言来实现服务,只要这种编程语言可以生成 Web 服务并且可以与 WSDL 结合在一起使用就可以了。

Page 94: 软件体系结构 (Software Architecture)