版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
服务科学概论服务计算概述山东大学软件学院SSMEV4.02本章内容234面向服务的体系结构(SOA)服务组合WebService1服务计算产生和发展1.服务计算产生和发展服务计算产生及发展•2002年6月,美国拉斯维加斯举行国际互联网计算会议
(InternationalConferenceonInternetComputing)–张良杰承办Web服务计算(WebServicesComputing)专题讨论,首 次将服务与计算结合,强调Web服务在分布式计算和动态业务集成 中的重要作用•2003年6月,美国拉斯维加斯举行第一届Web服务国际会议(InternationalConferenceonWebServices)•2003年11月,IEEE成立服务计算技术社区(TechnicalCommunityofServicesComputing)•2004年5月,改名为服务计算技术指导委员会(TechnicalSteeringCommitteeforServicesComputing)–张良杰先生出任委员会的首任主席–致力于推动服务计算学科发展和相关标准制定–标志着服务计算正式成为一门独立的计算学科•2004年9月,服务计算技术指导委员会在上海召开第一届服务计算专题国际会议(IEEEInternaltionalConferenceonServicesComputing)服务科学?•50多年前,随着信息技术时代的到来,计算机科 学从电子工程和数学分离出来,成为一个独立的 学科•随着服务经济的到来,服务科学会不会也像计算 机学科一样,在不久的将来成为一门独立的学科 ?•服务科学可以将计算机科学、运筹学、产业工程 、数学、管理学、决策学、社会科学和法律学等 既定领域内的工作相融合,创建新的技能和市场 ,提供高价值的业务科学、工程与管理•科学–用来产生知识•工程–应用知识去产生价值•管理–改进产生和获取价值的流程服务计算的外延
服务管理服务质量和性能
优化
效率
质量
最优化方法
管理经验
管理
服务科学服务计算理论
建模
理论
实验
行为
规则
工程
服务工程服务系统的工程开发
规范、技术
方法、工具
自动化
度量性
以服务为中心
科学服务工程(ServicesEngineering)•面向服务软件的工程化开发•
–高效地开发高质量的软件制品
–软件开发的工业化:软件生产线面临的挑战
–
服务工程的数学理论
–
服务工程的设计方法
–
服务工程的模型驱动架构
–
服务工程的信任、安全、隐私
–
服务工程的Agent技术–服务计算应用的需求工程–普适应用的服务开发––––服务的分析与设计模式服务的可信性、可生存性、重构、测试、验证与校验服务的本体化与语义匹配………….汽车的组装软件的组装Internet/E-BusinessService-OrientedComputingMainframeComputingReturnonInvestmentInteroperability/FlexibilityTimetoMarketInfrastructureLeveragePeriodCharacteristics1980’s•Packaged&Custom MainframeApplications•Top-Down,Procedural Development•CentralizedComputing Models•Non-DistributedSolutions•EmergingPC-Based Technologies1990’s•Client-Server Applications•Object-Oriented Development•Enterprise-Centric Computing•InternetProliferation•E-Commerce Applications2000’s•EnterpriseWeb Applications&Suites•WebServices& SoftwareComponents•Next-Generation Integrations•Real-TimeApplication Assembly•RapidDeployment&Management
服务计算带来分布式计算演进大宽松粒度联接小紧密网络化技术
客户/服务器单机,主机
虚拟计算环境60年代70809020002010
函数函数调用Web服务SOAP,WSDL, UDDI简单服务
MOM,XML- RPC构件
J2EECORBA
对象消息传递服务计算带来中间件技术演进
趋势•数字化•网络化•智能化开发购买下载安装运行软件服务带来的便利
管理应用软件职责CustomerService(Client/Server)Integration(EAIPackages)Java
(ApplicationServers)
ERP
(Packages)
ContentRelationalDatabases
Logistics (Mainframes)
Legacy ApplicationsContent/Personalisation
(InteractionPackages)
Packaged Applications
软件提供商业务用户参与活动面临众多的IT技术面临众多的IT产品软件服务带来的便利安装(部署)运行管理
开发软件提供商业务
应用用户参与活动
购买软件运营商业务软件职责软件服务软件提供商什么是‚服务计算‛•荷兰科学家MikeP.Papazoulou–从软件系统设计与开发的角度出发,认为“服务计算是一种以服务为基本元素进行应用系统开发的方式”
•M.PapazoglouandD.Georgakopoulos.Introductiontoaspecialissueonserviceorientedcomputing,CommunicationofACM,2003:p.25-28什么是‚服务计算‛•华人科学家张良杰–从学科的角度出发,认为“服务计算是一门跨计算机与信息技术、商业管理与咨询服务的基础学科,其目标在于利用服务科学和服务技术消除商业服务和信息技术服务之间的鸿沟”什么是‚服务计算‛•北卡罗来纳州立大学MunindarP.Singh•南加州大学MichaelN.Huhns–从服务技术的应用角度出发,认为“服务计算是集服务概念、服务体系架构、服务技术和服务基础设施于一体,指导如何使用服务的技术集合”什么是‚服务计算‛•从分布式计算的角度出发,认为‚服务计算是从 面向对象和面向构件的计算演化而来的一种分布 式计算模式,它使得分布在企业内部或跨越企业 边界的不同商业应用系统能实现快捷、灵活的无 缝集成与相互协作‛–Orlowska,M.E.,Weerawarana,S.,Papazoglou,M.P.,andYang,J.FirstInternationalConferenceService-OrientedComputing(ICSOC2003),Trento,Italy,December15-18,2003.服务计算•它在形成自己独特的科学与技术体系的基础上有机整合了一系列最新技术成果–SOA(ServiceOrientedArchitecture,面向服务的体系架构)及Web服务–网格/效用计算(Grid&UtilityComputing)–业务流程整合及管理(BusinessProcessIntegration&Management)–第一部分解决的是技术平台和架构的问题;第二部分解决是服务交付的问题;第三部分则是业务本身的整合和管理。成熟度(Maturity)生产力成熟期
Plateauof productivity
复苏期
SlopeofEnlightenment幻觉破灭谷底期
Troughof Disillusionment
过热期PeakofInflated Expectations技术萌芽期Technology TriggerSOA技术20092008200720022003 2005未来
SOA/Web服务技术成熟度趋势Gartner新兴技术光环曲线(GartnerHypeCycleforEmergingTechnologies)
可见度
(Visibility)
服务科学与工程
提高服务生产力SOA软件产业现状•最活跃的SOA标准组织:
–W3C-WorldWideWeb Consortium–OASIS–WS-I–Webservices
Interoperability Organization–JCP–JavaCommunity Process–OSOA–OpenSOA Collaboration
最活跃的SOA相关公司:
•
OracleBEA
•
IBMMicrosoft•SUNSAP开源组织:
•
ObjectWeb
•
Apache(Axis)•JBoss学术界现状•刊物–IEEETransactiononServicesComputing(TSC)–InternationalJournalofWebServicesResearch(JWSR)–InternationalJournalofWebandGridServices(IJWGS)•会议–IEEEInternationalConferenceonServicesComputing(SCC)–IEEEInternationalConferenceonWebServices(ICWS)–IEEEWorldCongressonServices–InternationalConferenceonServiceOrientedComputing(ICSOC)学术界现状•荷兰大学的信息实验室–http://infolab.uvt.nl/–PapazoglouM.P.–面向服务计算(SOC)•美国卡内基梅隆大学的智能软件Agent实验室–语义Web服务–/~softagents/•美国亚利桑那大学–蔡维德•美国乔治亚大学的大规模分布式信息系统实验室–语义服务、服务组合等•澳大利亚新南威尔士大学服务计算研究组–.au/•国内–北航、中科院软件所、北京大学、浙江大学等2.面向服务的体系结构(SOA)山东大学软件学院SSMEV4.023什么是“SOA”从字面上看,SOA=Service(服务)+体系结构(Architecture)山东大学软件学院SSMEV4.024服务的含义从外特性上看,一个服务被定义为显式的、独立于服务具体实现技术细节的接口。从内特性上看,服务封装了可复用的业务功能,这些功能通常是大粒度业务,如业务过程、业务活动等。服务的实现可采用任何技术平台,如J2EE、.Net等。山东大学软件学院SSMEV4.025软件体系结构的发展与演化系统(程序)=算法+数据结构(1960’s)系统=子程序+子程序(1970’s)系统=对象+对象关联机制(1980’s)系统=软构件+连接件(1990’s)系统=服务+服务连接件(2000’s)简单复杂系统规模与复杂度封闭开放系统开放度细粗构件粒度构件连接件关注层面IT技术商务过程封闭开发个人企业内企业间全球为什么要引入SOA?Gartner首次提出SOA•早在1996年,Gartner就首次提出了SOA(Service- OrientedArchitecture,即面向服务的架构)的概念, 并预言SOA将成为下一代软件的革命性技术•但因为当时缺乏实现SOA的技术基础,SOA并没有立即引起企业用户和IT公司的重视•直到后来XML、SOAP、WSDL、UDDI等Web服务标准 逐渐成熟,SOA才真正成长为可部署的技术、产品和下一 代应用系统的方法论,开始被业界广泛接受,进入了部署 期。Gartner研究报告"ServiceOriented"Architectures,Part112April1996W.RoySchulteYefimV.Natis•大多数业务信息都存储在集中式的数据库中,在需 要时,向个人用户一次提供一个页面。糟糕的是, 这种页面只是一种数据的‚图画‛,而不是数据 本身,迫使开发人员去‚屏幕刮取‛所需的信息。•今天这种孤立的应用和Web网站创建的是功能和数据的孤岛。•解决这些问题是对下一代Internet的关键性挑战•解决方案的核心是可扩展的标注语言(eXtensible MarkupLanguage,orXML.)在以XML为基础 的技术(如SOAP、UDDI等)的帮助下创建一类 新的软件。比尔·盖茨:Microsoft.NETTodayJune14,2001比尔·盖茨:明日工作新世界2005年《计算机世界日报》•由于XML和丰富Webservices的出现,企业能够 日益与合作伙伴无缝分享信息和过程,并建立一 些虽然跨越多个机构但作为一个统一整体工作的 供应链。•我们将通过下一代生产力平台实现这个目标,这 个平台将建立于当今微软Office程序和服务系统 的扎实基础上。我们将使人们能够创建更有效的 专业文件,能够从任何地点获取工作信息,能够 更好地管理个人、团队和项目任务。•基于XMLWebservices标准的.NET开发平台可 以实现个人之间,个人与企业之间,和企业之间 的信息互连,这样就实现人们可以随时随地存取 和使用信息的梦想。各软件公司纷纷提出对策•Microsoft:微软宣布推出Windows.NETServerRC1,预见下一代平台技术浪潮•Sun:面向服务的体系结构因其固有的松散耦合 与互操作性,成为许多企业应用的自然选择。使 用J2EE提供的Web服务功能可以很容易地构 建能够访问现有业务流程的SOA系统•IBM:2001年开始,将动态电子商务(Dynamice-Business)的理念转向WebServices•Oracle:应用程序网格计算的特征和优点恰恰是面向服务体系结构(SOA)的特征和优点IT理念殊途同归•Veritas强调,在‚效用计算‛模式下,可用性将使数据 和应用‚永远在线‛,从而确保最终用户随时都可以获得 服务;•BEA指出‚流体计算‛能帮助企业将IT响应时间从几个 月缩短为几分钟,其最终目标是使实时的业务目标与企业 的每一步变化紧密结合在一起;•Microsoft比尔盖茨表示,在‚无缝计算‛的世界里,人 们可以实现在任何时候、任何地点、任何设备得到任何想 要的信息。•IT厂商理念虽然层出不穷,随需应变、效用计算、流体计 算、无缝计算、实时企业、动成长企业等等理念看似复杂 、毫不相干,但是他们骨子里却都透着面向服务、整合资 源、按需分配、敏捷响应共性。•面向服务架构(SOA)是实现上述理念的技术基础。山东大学软件学院SSMEV4.032(1)Internet环境下的企业交互现代企业已经不再是封闭的企业,市场分工的日益专业化使得企业之间可能存在大量频繁的交互行为,以发挥各自的竞争优势:供应链:供应商-制造商;客户关系管理:制造商-物流商-客户这种业务上的交互体现为企业业务流程的交互/互操作,同时一定需要企业信息系统的支持,因此体现为软件系统之间的集成与互操作。互操作(Interoperability):能够在异构的、分布式的系统之间交换和使用信息的能力;不仅是不同企业之间,甚至一个企业内部的各个部门之间都有可能存在大量的交互。山东大学软件学院SSMEV4.033企业价值链:多方协调与集成山东大学软件学院SSMEV4.034案例:主机厂——供应商的业务集成主机厂供应商SBMSBMSNAPSNAP采购计划内爆优化反馈供货计划可供货计划内爆优化剩余能力信息反馈信息合并采购计划合并后采购计划根据配额分解新采购计划新采购计划确认采购计划确定采购/供货计划ERP供货确认?外爆优化根据配额分解采购计划物料需求待确认采购计划BOM/库存ERP计划分析?修改配额?NYNYYNBOM/库存/订单供应商及其配额调整配额订单/采购计划发布剩余能力信息已确认采购计划山东大学软件学院SSMEV4.035(2)异构系统的集成与互操作不同企业所应用的软件系统是不同的(异构的):技术平台不同:J2EE-based、.Net-based软件体系结构不同:message-based、file-based、process-based数据格式不同:同样的“订单”对象,不同的属性集合…集成这些分布式的软件系统,在它们之间传递数据和消息,是一件非常困难的事情EJBCORBACOMCORBA山东大学软件学院SSMEV4.036案例:异构系统的集成山东大学软件学院SSMEV4.037(3)频繁变化的互操作与集成需求企业的业务是频繁变化的;企业间的协同关系也不是固定的,随着业务流程的变化而随之变化;企业的IT应用系统要能快速支持这种变化的需求山东大学软件学院SSMEV4.038示例:灵活可变的企业流程Change:CustomerOrderEntryChange:SharedService–Marketing,Billing,Receivables山东大学软件学院SSMEV4.039Change:SupplierHandlesInventory(VMI)Change:ShippingbyFedEx,DHLorUPS山东大学软件学院SSMEV4.040归纳:SOA所要解决的问题分布式企业间业务的协同。通过Internet连接在一起的异构企业应用软件系统的集成、交互与互操作。当业务(Business)发生变化时,IT系统能够快速响应。??
敏捷业务–SOA的首要目的;SOA–敏捷业务的实现之道(水平整合、灵活应变的业务流程;可重用、可组装的IT资产)做什么怎么做敏捷业务 可 重 用
IT
资 产
WS-Trustv1.3WS-SecurityV1.1SOAP V1.019992000SOAP V1.1200120022003200420052006200720082009
WS-PolicyV1.0
WS-PolicyAttachmentV1.0 WS-PolicyAssertionsV1.0
WS-Addressing V1.0 UDDIV1.0WSRMV1.0WSDLV1.1
UDDIV2.0WS-SecurityConversationV1.0 WS-SecurityPolicyV1.0 WS-TrustV1.0Web服务产生及发展
WS-ResourcePropertiesv1.2
WS-BaseNotificationv1.3
WS-Brokered Notificationv1.3 WS-Topicsv1.3WS-Reliability V1.1WS-CoordinationV1.2WS-BusinessActivityV1.2WS-AtomicTransactionv1.2
SOAPV1.2 WS-BPELV2.0WS-Transaction v1.1
WS-ResourceLifetimev1.2 WS-ServiceGroupv1.2 WS-BaseFaultsv1.2 WS-Resourcev1.2WS-RMV1.1WSDLV2.0WS-TransactionsWS-TrustV1.4
V1.0WS-SecurityPolicyV1.3
WSDM
PolicyV1.2BPEL4WSV1.1 WS-Security V1.0
SCAV1.0 SDOV2.0WS-Seurity V1.1SOA的典型特征与优势山东大学软件学院SSMEV4.044(1)分布式异构系统的集成与互操作*.java*.java*.java*.java函数调用(局域网)?(本机)山东大学软件学院SSMEV4.045(1)分布式异构系统的集成与互操作*.java*.java远程方法调用RMI/RPC.NetRemotingEJBCORBA*.java*.c?(局域网)山东大学软件学院SSMEV4.046(1)分布式异构系统的集成与互操作*.java*.cCORBA*.java*.cor*.java?(局域网)Internet山东大学软件学院SSMEV4.047(1)分布式异构系统的集成与互操作*.java*.cor*.javaSOAInternet虽然目前已经存在成熟的远程方法调用机制以实现异构系统的集成与互操作,但在Internet这样的分布式环境下,SOA才能实现这一目标山东大学软件学院SSMEV4.048(2)紧密耦合与松散耦合传统软件体系结构中的构件,通常都是紧密耦合通过函数调用的方式实现互操作;客户端需要了解被调用构件的位置和技术细节;缺陷:构件的维护和重复使用变得非常困难,因为一个构件中的修改就自动意味着其他构件中的修改。SOA则实现了完全的松散耦合:位置透明与具体的实现细节无关(通过接口调用)标准化的通讯协议(XML-based)具体实现机制:服务接口作为与服务实现分离的实体而存在,从而服务实现能够在完全不影响服务使用者的情况下进行修改山东大学软件学院SSMEV4.049(3)大数据量低频率访问对于.NET、EJB或者RPC这些传统的分布式计算模型而言,它们的服务提供都是通过函数调用的方式进行的,一个功能的完成往往需要通过客户端和服务器来回很多次函数调用才能完成。在局域网的环境下,这些调用给系统的响应速度和稳定性带来的影响都可以忽略不计,但是在Internet环境下这些因素往往是决定整个系统是否能正常工作的一个关键决定因素。SOA采用大数据量的方式一次性进行数据交换。山东大学软件学院SSMEV4.050(4)基于文本的消息传递在COM、CORBA这些传统的组件模型中,从服务器端传往客户端的是一个二进制编码的对象,在客户端通过调用这个对象的方法来完成某些功能。在Internet环境下,不同语言,不同平台对数据、甚至是一些基本数据类型定义不同,给不同的服务之间传递对象带来的很大困难。由于基于文本的消息本身不包含任何处理逻辑和数据类型,因此服务间只传递文本,双方不存在兼容性问题。山东大学软件学院SSMEV4.051(5)上下文相关与上下文无关传统的软件体系结构,在设计阶段就要考虑各构件之间如何进行交互,也就是说,一个构件的设计模型可能依赖于其他构件的设计模型,即“上下文相关”。在SOA中,在设计阶段,服务不需要了解它们将来可能被复用的环境,即独立于服务使用者的上下文。山东大学软件学院SSMEV4.052(6)小粒度复用与大粒度复用传统的软件体系结构中,被复用的软件体通常都是小粒度的,如函数、对象、构件等。在企业级应用环境下,这种小粒度软件体的复用效率过低。SOA中的服务是大粒度复用体,它更多的关注诸如业务过程/业务活动级别的复用,复用效率更高。另外,采用粗粒度服务接口的优点在于使用者和服务层之间不必再进行多次的信息交换。山东大学软件学院SSMEV4.053SOA的本质特征将“服务”(自治的、平台独立的计算实体,可被描述、发布、发现、动态组装)作为基本的构造单元;任何应用均可看作是一组协同运作的服务;从而,以快速的、低成本的、容易组合的方式去创建高度分布式的、协同的、动态变化的、跨越组织与计算平台边界的服务系统。山东大学软件学院SSMEV4.054SOA的革命性创造不再是构造新的应用或调用已有的应用来完成特定的业务,而是通过在网络上发现并调用可用的服务来组合成一个系统,且服务的提供者与服务的使用者是“松散耦合”的。这种观点体现了软件开发方式的一种根本性的变化,可使业务环境变得更加灵活和强大:以服务的形式提供独立的、可复用的、自动化的业务过程和功能;通过快速组合与松散耦合来改善效率与生产率;借助于开放的、强壮的、安全的基础平台,使企业能够快速向市场提供新的服务、快速的适应环境的变化。山东大学软件学院SSMEV4.055只要满足了这些条件之一,就可以应用SOA协同分布式环境异构交互可能频繁变化SOA的体系结构模式山东大学软件学院SSMEV4.057SOA的体系结构模式应用SOA来构造业务系统,既可以通过简单的WebService调用,也可以通过复杂的企业服务总线(ESB)将异构系统集成为业务过程。按照SOA应用场景的复杂度,将其体系结构模式分为10种:硬连线(Hard-wired)点对点的服务发布与调用(P2P)服务适配器(Serviceadaptor)服务代理(Serviceproxy)远程服务策略(Remoteservicestrategy)单点访问(Singlepointofaccess)虚拟服务提供者(Virtualprovider)服务集成器(Serviceintegrator)企业服务总线(Enterpriseservicebus)集成化的服务生态系统(Integratedserviceecosystem)1).“发布-查询-绑定”模式点对点的服务发布与调用(P2P)山东大学软件学院SSMEV4.059基本模式:发布-访问服务提供者服务注册中心服务客户端(1)注册(2)发现(3)绑定山东大学软件学院SSMEV4.060该模式中的操作发布(Publish):为了使服务可访问,需要发布服务描述以使服务使用者可以发现它。发现(Find):服务请求者定位服务,方法是查询服务注册中心来找到满足其标准的服务。绑定(Bind)和调用(invoke):在检索到服务描述之后,服务使用者继续根据服务描述中的信息来调用服务山东大学软件学院SSMEV4.061该模式实现机制:WebServiceWebService提供者WebService注册中心WebService客户端(1)WSDL(2)UDDI(3)SOAP2).服务适配器模式Serviceadaptor或ServiceWrapper山东大学软件学院SSMEV4.063服务适配器企业中存在若干遗留系统(legacysystem);这些系统采用较传统的技术开发,无法提供清晰的接口(interface);但其他系统仍然需要访问这些遗留系统的功能;——怎么办?通过构造适配器(adaptor),将遗留系统中的功能进行二次包装,从而开放出接口供其他系统使用。典型技术:Java2ConnectorWebSphereBusinessIntegrationAdaptor山东大学软件学院SSMEV4.064服务适配器3).远程服务策略
(Remoteservicestrategy)山东大学软件学院SSMEV4.066以上几种SOA模式的缺陷客户端为了使用服务,必须在自己的程序中写入调用服务的代码,即通过服务的URI地址来访问服务。这导致客户端与服务之间的耦合度过大,系统的灵活性受到限制。例如,客户端需要在多个候选服务之间进行灵活替换,以获得更好的QoS。——怎么办?将这种绑定关系从代码中抽取出来。山东大学软件学院SSMEV4.067远程服务策略①客户端直接绑定服务接口(WSDL/URI);②客户端通过“serviceregistry”来访问服务,当希望访问其他服务时,只要手工修改该registry即可——相当于一个配置文件;③客户端通过“servicebroker”来动态决定需访问那个服务;——完全动态的服务选择,很困难,需要用到服务语义的相关技术。4).服务集成器
(ServiceIntegrator)山东大学软件学院SSMEV4.069以上模式存在的问题如果客户端需要同时或连续调用多个服务的功能,它必须在自己的系统中分别写出多个调用;——非常麻烦;而且,对多个服务的调用次序也是容易发生变化的,需要频繁的修改;——难以做到;——怎么办?降低耦合度将remoteservicestrategy的思想进一步发挥,客户端不去逐一调用服务,而是首先将这些被调用的服务按逻辑关系集成起来,形成一个集成的、大粒度的服务;客户端只需调用这一个服务即可;当该服务执行时,集成器(integrator)依靠配置信息来分别调用一个个小粒度的服务;对这些配置信息进行修改,即可方便的做到变更。山东大学软件学院SSMEV4.070服务集成器(ServiceIntegrator)山东大学软件学院SSMEV4.071服务集成器(ServiceIntegrator)OperationalSystemsService-OrientedBusinessProcessComponent-basedPresentationQoS,Security,Management&Monitoring(InfrastructureService)IntegrationArchitecture(EnterpriseServiceBus)Object-orientedCICS/COBOLCRM,ERPBusinessIntelligenceProcessChoreographyCompositeServicesPortlets5432167EnterpriseComponents5).企业服务总线ESB
(EnterpriseServiceBus)山东大学软件学院SSMEV4.073问题SOA的重要目标就是要在分布式环境下实现多组织之间业务的交互与协同;因此独立存在的服务是没有意义的;即使采用上面的serviceintegrator,一个组织中存在的和使用的服务数量仍然是巨大的,它们之间的关系也很复杂。必须提供一种手段,能够将多方提供的服务集成在一起,并试图构造一种通用的服务基础设施来来管理它们。山东大学软件学院SSMEV4.074服务编排模式:总线服务客户端1服务客户端2服务客户端n服务提供者1服务提供者2服务提供者n总线山东大学软件学院SSMEV4.075企业服务总线(ESB)企业服务总线(EnterpriseServiceBus)是一个整合应用和服务的灵活的连接基础组织,支持实现多个服务的编排。山东大学软件学院SSMEV4.076企业服务总线(ESB)形状
=协议颜色
=数据类型ESB在请求者和服务之间实现了:转化请求者和服务之间的传输协议处理分离资源间的业务事件转换请求者和服务之间的消息格式路由服务间的消息山东大学软件学院SSMEV4.077ESB体系结构ESB网关Internet外部服务请求者外部服务提供者CAD服务PDMERP服务服务路由、中介、转换、日志等企业服务总线ESBHub适配器适配器适配器ESB命名空间ESB管理类服务适配器服务目录服务编排山东大学软件学院SSMEV4.078ESB体系结构ReliableAsynchronousSecureMessagingERP.NETWebServicesSOAP/HTTPSOAP/HTTPSOAP/HTTPJMSJCATransformation(XSLT)ConnectionLayerConnectionLayerCommunicationLayerC/C++LegacyApplicationJ2EE山东大学软件学院SSMEV4.079ESB对异构服务的集成山东大学软件学院SSMEV4.080(对比)传统的EAI方式:P2P的集成山东大学软件学院SSMEV4.081(对比)基于ESB的集成方式:Hub/Bus山东大学软件学院SSMEV4.082两种集成方式的对比:P2PvsESB3.WebService山东大学软件学院SSMEV4.084“对象”技术的演化TighterLooserCouplingGranularityScopeXML/HTTPMOMORBB2BMarket,
GlobalEnterpriseEcosystemsHomogeneous
ApplicationProgram典型的访问方法:WebServicesServicesComponentsObjects山东大学软件学院SSMEV4.085Web服务中的相关协议WSDL:Web服务描述语言用于服务接口的描述——Whatcantheservicedo?UDDI:统一描述、发现和集成协议服务使用者通过UDDI发现相应的服务并据此将服务集成在自身的系统中——Whatkindofservicesareneeded?SOAP:简单对象访问协议用户在服务客户端与服务提供者之间传递信息通过HTTP或JMS等各类基于文本的消息传递协议来运输山东大学软件学院SSMEV4.086WebServiceStandardsWSDL(WebServiceDescriptionLanguage)
anXML-basedlanguagefordescribingnetworkservicesWSDLdescriptionsofcapabilitiesandlocationsofserviceslikeaninterfacedescriptionlanguageforWebservicescommunicationusingSOAPordirectHTTPUDDI(UniversalDescription,Discovery,andIntegration)
providesaregistrymechanismforclientsandserverstofindeachotherusesSOAPforcommunicationSOAP(usedtobeSimpleObjectAccessProtocol)
aframeworkforexchangingXML-basedinformationinanetworkSource:山东大学软件学院SSMEV4.087Service的剖析ServiceConsumerInterfaceProxyServiceInterfaceServiceImplementationNewServiceWrappedLegacyCompositeService山东大学软件学院SSMEV4.088Service
ConsumersService
ProducersService通信通过接口,采用位置透明的、可互操作的协议进行调用,与客户端以“松散耦合”(looselycoupling)的方式绑定在一起。SOA中所有协议均是基于XML的文本文件山东大学软件学院SSMEV4.089服务描述Servicesaredescribedusingastandardizedinterface(metadata)Definestheservice,itsoperations,andinputandoutputparametersDefineshowtheserviceisreachedanditslocationInputandoutputsmaybesimpleparametersorXMLdocumentsAnexistingapplicationcanbegivenaservice‘façade’Thefaçade(门面)(e.g.anEJB)isthendescribedastheserviceWebServicesDescriptionLanguage(WSDL)isthestandardusedtodescribetheservice山东大学软件学院SSMEV4.090服务描述:WSDLWSDL(WebServicesDescriptionLanguage)isanXMLdocumentthatdescribesaService
usinganumberofkeyelements:APortTypedefineswhattheservicedoes,andisdescribedbyanumberofoperations.ForeachoperationthedatathatitreceivesandsendsisdescribedbyaMessageTheBinding
defineshowtheservice(asdescribedbythePort
Type)isinvokede.g.SOAP/HTTP,SOAP/JMS.ThePortspecifiestheaddresswheretheserviceislocated/WebServices/MobileCodeWS.asmx?op=getMobileCodeInfo/WebServices/MobileCodeWS.asmx?WSDL山东大学软件学院SSMEV4.091服务发布与访问UDDIWSDLWebService(J2EE,PL/SQL,
.NET,C/C++,
Legacy…)WebServiceClient(J2EE,.NET,
PL/SQL…)PointstodescriptionDescribesServiceFindsServiceInvokeswithXMLMessagesSOAPUDDI
RegistryPointstoservice4.服务组合
(ServiceComposition)山东大学软件学院SSMEV4.093主要内容服务组合(ServiceComposition)服务编排(ServiceOrchestration)服务协同(ServiceChoreography)编排vs协同服务组合方法山东大学软件学院SSMEV4.094SOA的哲理:集成集成(Integration)尽可能的集成(Integrationasfaraspossible)尽可能灵活的集成(Integrationasflexiblyaspossible)将小粒度服务集成为大粒度服务(composefine-grainedservicesintocoarse-grainedservice)将硬编码的集成变为动态可配置的集成(transformhard-codedintegrationintodynamicallyreconfigurableintegration)这是SOA的优势所在,也是我们追求的目标所在山东大学软件学院SSMEV4.095服务组合(servicecomposition)独立存在的服务具有较低的价值,只有多方提供的多个服务集成在一起,通过协同来完成共同的业务目标,服务和SOA才能体现出其优势。单个Web服务的功能或/和性能有限,难以满足一些业务应用的需求,从而需要解决服务组合问题。服务组合(ServiceComposition)是将已有服务组合为一个新服务的过程,以增加服务的可复用性、功能和性能。山东大学软件学院SSMEV4.096案例:“开设银行账户”山东大学软件学院SSMEV4.097服务组合的两大概念SOA中提出了两个概念:orchestration和choreography前者定义了如何将小粒度的服务按照特定的流程聚合为大粒度的服务;后者则定义了如何在多方的业务流程之间通过服务实现协同的动作编排。二者的本质上都是用来规划服务之间的协同。ServiceOrchestration
服务编排山东大学软件学院SSMEV4.099OrchestrationOrchestration的本意是“为管弦乐谱曲”:使用五线谱所提供的基本音符,构造一首完整的乐曲。山东大学软件学院SSMEV4.0100SOA中的Orchestration:服务编排/服务组合Orchestration:将多个小粒度的Web服务按照特定的业务逻辑规则构造为一个可执行的业务过程,同时又可以看作是一个大粒度的复合Web服务。执行时需要有中心控制机制;由一个组织所拥有;侧重点:如何使用已有的服务来构造新的服务。Composition≈Orchestration山东大学软件学院SSMEV4.0101SOA中的Orchestration:服务编排/服务组合山东大学软件学院SSMEV4.0102服务编排/组合的一个例子SubmitOrderCheckInventoryCheckCreditSend
Resultto
UserPortalSAPJavaWebAppMainframeFormulate
Fulfillment
OfferFormulateRejectionCan
Fulfill?TransformOrder/
CustomerDetermineDiscount山东大学软件学院SSMEV4.0103示例:“订单管理”的服务流程山东大学软件学院SSMEV4.0104服务编排的描述方法:BPEL(4WS)针对orchestration,出现了大量的服务协同建模标准,最典型的莫过于BPEL和BPEL4WS,在实践中得到了广泛的应用。BPEL:BusinessProcessExecutionLanguageBPEL4WS:BPELforWebServices面向Web服务的过程建模语言;由IBM、Microsoft和BEA共同提出;BPEL能够实现基于WSDL的WebServices之间的流程编排和服务协同,它提供了一种XML注释和语义,用于指定对WebServices进行编排并确定Web服务之间的业务流程,实现WebServices之间的协同。山东大学软件学院SSMEV4.0105BPEL的基本结构过程中的基本功能单元:活动<activity>活动之间的次序关系:先后次序<sequence>多分支<switch>循环<while>并发与同步<flow>非确定性选择<pick>过程的相关数据:容器<container>错误处理机制:<catching>、<handlingfaults>补偿机制:<compensationhandler>山东大学软件学院SSMEV4.0106BPEL的一个例子Determineif
CanFulfill10:00amHandleNegativeCreditExceptionDiscountServicestartendBPELFlow?CreditServiceInventory
ServiceGetDiscountSendCreditApplicationReceiveCreditResult03:00pmSendInventoryRequestReceiveInventoryResult<process></process><switch><variable><partnerLink><partnerLink><partnerLink><faultHandlers><receive><invoke><invoke><flow></flow>山东大学软件学院SSMEV4.0107BPEL的一个例子山东大学软件学院SSMEV4.0108BPEL运行时框架Enterprise-strengthinfrastructurefordesigning,deployingandmanagingBPELbusinessprocessesJ2EEApplicationServer(OracleAS10g)BPELConsoleMANAGEDEHYDRATECoreBPELEngineWSDLBindingBuilt-inIntegrationServices
JCAWebServiceJMSEmailXQueryXSLTUserTasksBPELJDeveloperBPELDesignerDESIGNOracleDBBPELServerBPELJComprehensiveBPEL1.1supportEasy-to-installanddeployFlexibleWSIF-basedbindingframeworkEasy-to-usemodelingtoolScalability,Fail-overOperation-friendlydeploymentunitUnparalleledmanagement山东大学软件学院SSMEV4.0109服务编排的运行模式(1):集中式的执行引擎CentralizedServiceOrchestration山东大学软件学院SSMEV4.0110服务编排的执行过程需要有一个中心控制引擎,负责调用各个离散的服务山东大学软件学院SSMEV4.0111服务编排的运行模式(2):基于Hub的分布式引擎Decentralizedserviceorchestrationwithhubsupport山东大学软件学院SSMEV4.0112服务编排的运行模式(3):无Hub的分布式引擎Decentralizedorchestrationwithouthub山东大学软件学院SSMEV4.0113三种模式的对比分析ServiceChoreography
服务协同山东大学软件学院SSMEV4.0115Choreography“编舞”:一支舞蹈需要由多个演员来协同完成,编舞者需要将各人的动作编排在一起,形成为一套完整的舞蹈。“交响乐编排”:一支交响乐曲需要整个乐队各乐手之间的配合才能演奏成功,乐团指挥就是起到在不同乐手之间的协调功能。山东大学软件学院SSMEV4.0116SOA中的Choreography:服务编舞/服务协同Choreography:将多个零散的、分别由多方提供的服务/业务流程按照彼此之间的协同关系组织起来,支持多方的交互行为。侧重于不同服务之间的消息传递的次序与规则,以保证期望的协同行为。无需中心控制;无需完全由一个组织所拥有;Collaboration≈Choreography山东大学软件学院SSMEV4.0117SOA中的Choreography:服务编舞/服务协同山东大学软件学院SSMEV4.0118服务协同的例子(1):企业采购山东大学软件学院SSMEV4.0119服务协同的例子(2):航空订票PlanTripSubmittoTravelAgentReceiveTicketsSelectAirlineOrderTicketsSendTicketsGetItineraryGetOrderReceiveConfirmationReserveSeatsConfirmFlightSendConfirmationTravelerAgentAirlineChargeCreditCard山东大学软件学院SSMEV4.0120服务协同模式的分类链式协同模式(Chained)chainedsubstitutive(CS)chainedadditive(CA)同步协同模式(Synchronized)parallelsynchronized(PS)嵌套协同模式(Nested)nestedsynchronous(NS)nesteddeferred(ND)nestedparallel(NP)山东大学软件学院SSMEV4.0121服务协同模式的分类:复合模式山东大学软件学院SSMEV4.0122服务协同模式的例子:采购过程山东大学软件学院SSMEV4.0123“服务协同”的描述语言:WS-CDLWS-CDL:WebServiceChoreographyDescriptionLanguage山东大学软件学院SSMEV4.0124WS-CDL的文档结构山东大学软件学院SSMEV4.0125“服务协同”的描述语言:WS-CDLChoreographyInteractionChannelinstancesStructuredActivitiesSequenceParallelChoiceRepetitionPerformConditionalsNon-observableObservableWorkunitsPackageParticipantsRolesRelationshipsChanneltypesExceptionsFinalizers山东大学软件学院SSMEV4.0126一个例子山东大学软件学院SSMEV4.0127MarketMaker视角的WS-CDLsendRequestQuotereceiveQuotesendAcceptQuotechoice{
receiveQuoteHasExpired
sequence{ receiveTradeAffirmation sendTradeAffirmed }}山东大学软件学院SSMEV4.0128MarketTaker的QuotationSystem视角的WS-CDL山东大学软件学院SSMEV4.0129MarketTaker的TradingSystem视角的WS-CDLreceiveRequestQuotesendQuotechoice{
sequence{ receiveAcceptQuote sendQuoteAcceptConfirmed receiveTradeAffirmation sendTradeAffirmed } noAction}山东大学软件学院SSMEV4.0130Orchestrationvs.Choreography山东大学软件学院SSMEV4.0131Orchestrationvs.Choreography山东大学软件学院SSMEV4.0132Orchestrationvs.Choreographyprovidedinterface...orchestrationchoreographyrequiredinterfaceAdaptation(execution)Adaptation(design)Adaptation(design)Internalservice/API山东大学软件学院SSMEV4.0133二者在SOA的标准协议栈中的位置SOAToolsAppDevFrameworkSOAP,WSDL,UDDIWS-IBasicProfile
WebServicePolicyWebServiceTransactionsWebServiceReliableMessagingJ2EE1.4WebServiceSecurityWebServiceOrchestrationWebServiceDistributedManagementWebServiceCoordinationWebServiceChoreographyTPM,Mainframe,LegacySysApplicationsDatabasesB2BPartnersJ2EEApplicationServer(OracleAS10g)山东大学软件学院SSMEV4.0134BPEL4WSvs.WS-CDLBPEL需要集中式的控制机制;递归式的服务组合;可执行的过程建模语言;需要调用Web服务;WS-CDL无需集中式的控制机制(分布在各个参与方);描述性语言,不可执行;无需调用Web服务;服务组合中的协调问题
(ServiceCoordination)山东大学软件学院SSMEV4.0136什么是“协调”(Coordination)?多个Web服务通过orchestration或choreography组合在一起并被客户端所调用时,它们之间存在着复杂的交互过程。每个服务不是独立与客户端发生交互,各服务之间需要共享若干信息,这些信息会影响到自身服务的执行策略。执行过程需要较长的时间;各参与方需要根据其他参与方的选择作出自己的决策;山东大学软件学院SSMEV4.0137什么是“协调”(Coordination)?Coordination:各参与者之间通过传递消息的而共享信息的过程;使用Coordination的目的:为了在多个参与者之间达成一致的结果;为了让参与者都接收到在应用领域中某些特定的消息。山东大学软件学院SSMEV4.0138Coordination的实例(1):分布式事务处理例如在实现分布式事务时,就需要由事务管理器在各个资源管理器之间相互协调,并且由两阶段提交协议(2PC)规定了具体的协调过程。山东大学软件学院SSMEV4.0139Coordination的实例(2):工作流管理为了控制工作流的运行,需要使用coordination与工作流中的各个活动打交道。山东大学软件学院SSMEV4.0140Coordination的实例(3):TravelAgencyService山东大学软件学院SSMEV4.0141服务协调器(Coordinator)的组成部分Activationservice:向客户端提供一个接口,用来创建协调上下文实例
(coordinationinstanceorcontext);Registrationservice:向客户端提供一个接口,允许客户端将自己注册到上下文环境中来;Asetofcoordinationprotocolservices:每个服务支持一种特定的协调协议。山东大学软件学院SSMEV4.0142服务协调器(Coordinator)的工作过程publicResultCompositionService(Parameterp)
{
Resulta=ServiceA(p);
Resultb=ServiceB(p);
Resultc=ServiceC(p);
returna+b+c;
}143WebServicesStandardStackTransportlayer:HTTP,SMTP,FTP,etc.XMLmessaginglayer:SOAP,WS-Addressing,WS-Notification,WS-Eventing,WS-Enumeration,WS-MessageDelivery,WS-Reliability,WSReliableMessaging,WS-ResourcesWS-TransferServicesDescriptionLayer:WSDL,WSCL,WSCI,WS-MetadataExchange,WS-PolicyWebServicescomposition:WSFL,BPEL4WSWS-CDLWS-CAFPublishinganddiscovery:UDDI,WSIL,WS-DiscoveryWebServicesTransaction:WS-CoordinationWS-TransactionWS-AtomicTransactionWS-BusinessActivityWebServicesManagement:WSDM,WS-ManageabilitySPML,WS-ProvisioningWebService
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024至2030年中国免烫防皱衬衣行业投资前景及策略咨询研究报告
- 2024年中国电动工具零件市场调查研究报告
- 2024八年级数学上册第四章图形的平移与旋转4图形变化的简单应用习题课件鲁教版五四制
- 2024年湖北客运考试口诀是什么内容
- 2024年呼和浩特客车从业资格证考试试题题库
- 2024年果洛客运从业资格摸拟考试
- 2024年贵阳客运从业资格证考试模拟试题题库
- 2024年泸州客运从业资格证理论考试答案
- 2024年北京客运旅客急救考试题及答案
- 2024年福州从业资格证客运考试题库
- 人教版2024新版七年级上册数学期中模拟测试卷(含答案解析)
- 2024中国石化校园招聘超1万人高频考题难、易错点模拟试题(共500题)附带答案详解
- GB/T 18029.8-2024轮椅车第8部分:静态强度、冲击强度及疲劳强度的要求和测试方法
- 中华民族共同体概论课件专家版9第九讲 混一南北和中华民族大统合(元朝时期)
- 电梯日管控、周排查、月调度内容表格
- 《战争与和平法》读书笔记思维导图
- (完整版)护士延续注册体检表
- (完整版)六宫格数独100题
- 产业投资基金可行性研究报告1
- 防火墙在企业局域网中的架设及配置方法
- 冰柜投放协议
评论
0/150
提交评论