您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 02-服务计算基础(分布式计算技术基础)
服务计算基础主讲:李伟刚liweigang@nwpu.edu.cn西北工业大学软件与微电子学院第二章分布式计算技术基础主要内容通信机制通信中间件中间件的同步方式中间件的异步方式耦合性第一节通信机制通信机制的异质性通信模式同步、异步(消息传递、发送/回调、发布/订阅、广播)多种运行时特性需要考虑安全、容错、负载平衡、事务处理、日志、审计产品的多样化通信模式1同步同步调用结果返回响应接收发送者接收者阻塞等待通信模式2异步:消息传递发出消息接收发送者接收者通信模式3异步:发送/回调接收消息响应接收发送者接收者继续执行发出消息通信模式4异步:发布/订阅发布者发布者订阅者订阅者订阅者主题/Topic通信模式5异步:广播发送者接收者接收者接收者发布消息第二节通信中间件中间件在分布式计算系统中,中间件是指位于操作系统和应用系统之间的软件层。它是独立组件之间的“粘合剂”目标隐藏组件的分布性隐藏组件的异构性提供统一、标准和高层的接口提供一组共用服务例子事务处理中间件数据转换中间件通信中间件常用通信中间件框架RPC给那些分布在不同计算机上的应用提供互相通信的途径,是当今多数中间件的基础分布式对象由ORB(ObjectRequestBroker)支持MOM基于消息队列,是大型企业通信基础结构的流行技术消息代理MOM的扩展同步异步第三节中间件的同步方式RPC(RemoteProcedureCall)①客户端调用客户端存根,存根把相关参数组装成一个或一组消息包,加入服务器端IP地址和执行此过程的进程ID号,形成一条消息;②客户端存根将消息发送至RPC运行时库;③客户端RPC运行时库将消息发送至传输层;ClientapplicationClientstubRPClibraryNetworkprotocolServerapplicationServerstubRPClibraryNetworkprotocolCallprocedureExecuteprocedure1235674RPC④消息由传输层传送至服务器端;⑤服务器端传输层将消息发送给服务器端RPC运行时库;⑥服务器端RPC运行时库将消息发送到Serverstub上的一个子程序,由它处理消息;⑦Serverstub的子程序拆解消息,解析出参数,并用本地调用方式执行过程。ClientapplicationClientstubRPClibraryNetworkprotocolServerapplicationServerstubRPClibraryNetworkprotocolCallprocedureExecuteprocedure1235674响应过程同理。RPC的贡献透明性允许程序可以象调用本地过程一样调用驻留在其他机器上的过程,调用者根本不知道被调用的过程是在另一台机器上运行的提出客户端和服务器的概念对分布式对象技术影响深远的概念有:接口定义语言IDL名称和目录服务动态绑定服务接口……RPC程序开发过程Step1定义过程接口Step2编译过程接口的定义客户端存根(stub)服务器存根(stub/skeleton)客户端存根必须和服务器代码一起编译和连接Step3编写和编译实现代码服务器端:实现过程的代码客户端:应用逻辑代码RPC的缺陷受限于相同的RPC运行环境需要了解一些网络细节以便定位服务器客户端发出请求的同时,要求服务器必须是活动的非面向对象编程分布式对象ClientapplicationClientproxiesORBNetworkprotocolServerapplicationServerskeletonsORBNetworkprotocolCallmethodExecutemethodCreate,locate,delete,invoke分布式对象思想“InteroperableObjectReferences”允许通过对象工厂和其他辅助对象,方便地远程创建、定位、删除和调用对象提供了一个OO的分布式平台,理想是处理异构(硬、软件、厂商)ORB支持位置透明,对客户端隐藏实现细节实现:CORBA,COM/DCOM,RMICORBA发展史CommonObjectRequestBrokerArchitectureOMG开发的标准,“toallowapplicationstocommunicatewithoneanothernomatterwheretheyarelocatedorwhohasdesignedthem”1991,CORBA1.1,IDL&APIwithinanORB1994,CORBAinteroperability&IIOP(InternetInter-ORBProtocol)1997,CORBA2.1,InteroperabilitywithCOM1998,CORBA2.2,InteroperabilitywithJava2002,CORBAComponentModelCORBA应用程序结构ObjectRequestBroker:enablesobjectstotransparentlymakeandreceiverequestsandresponsesinadistributedenvironment.Thecoreofthereferencemodel,“telephoneexchange”ObjectServices:acollectionofservices(interfacesandobjects)thatsupportbasicfunctionsforusingandimplementingobjects.e.g.Naming,LifeCycleServiceCommonFacilities:acollectionofservicesthatmanyapplicationsmayshare,butwhicharenotasfundamentalastheObjectServicese.g.e-mailfacilityApplicationObjects:productsofasinglevendoronin-housedevelopmentgroupthatcontrolstheirinterfaces.CORBA应用程序结构ObjectRequestBrokerApplicationObjectsDomainFacilitiesHorizontalCORBAFacilitiesDomainFacilitiesCORBA中间件体系架构InterfaceRepositoryImplementationRepositoryIDLCompilerClientObjectDynamicInvocationIDLStubORBInterfaceIDLSkeletonDynamicSkeletonObjectAdapterORBCoreGIOP/IIOPORB(ObjectRequestBroker)功能:提供一组服务逻辑定位远程对象,传输请求,等待结果返回并在结果返回时将它传给客户端实现对象位置透明与开发语言无关:接口翻译和语言绑定优点客户端不必知道与服务器对象通信、激活或保存服务器对象的机制不必知道服务器对象的位置、编程语言、操作系统以及其他非对象接口的系统信息ClientObjectObjectRequestBroker(ORB)IDL(InterfaceDefinitionLanguage)中性语言,语言映射模块化对象接口可描述对象支持的操作(方法)和属性可描述操作的异常定义可描述操作返回值的数据类型、操作的参数和对象的属性ClientObjectRequestBroker(ORB)IDLStubIDLSkeletonObjectCORBA请求响应过程ORBCOREInargsObjectClientObj.ref.Operation()Outargs+returnvalueIDLStub1CLocatetargetobject3C2CSendrequesttoserverWaitforrequesttocompleteImplementationRepository1SActivateserverIDLSkeleton2SActivateObject’sServant3SProcessRequest4SReturnRequest4CReturnControltoClientCORBA互操作ClientORB1IDLStubIDLSkeletonObjectClientIDLSkeletonObjectORB2IDLStubIIOPInteroperabilityusesInternetInter-ORBProtocolCORBA的缺陷对象粒度小,通信负荷大复杂,庞大,必须由精深技术专家使用实现厂商平台的私有化造成CORBA所追求的互操作性难以实现标准更新缓慢DCOMDCOMClientCOMRun-timeComponentCOMRun-timeSecurityproviderProtocolStackDCERPCSecurityproviderProtocolStackDCERPCDCOMnetworkprotocol实现Microsoft平台上对象间跨进程通信,用网络协议来代替本地进程之间的通信ObjectProxyStubDCOM的缺陷DCOM由单一开发者(微软)定义并控制,这大大限制了它的使用者的选择范围(比方说开发工具和风格)DCOM缺乏众多的平台支持,这极大程度地制约了代码的可重用性和DCOM应用的可扩展性本身的设计缺陷第四节中间件的异步方式MOM&MessageBroker路由消息的虚拟通道消息是信息的自包含(Self-contained)单元异步通信应用解耦消息系统支持多个消息客户的通信信道管理和关联点管理MessageserverMessagebroker消息消息头基本信息Destination,reply-to,messagetype,etc.消息属性应用定义的名-值对为客户或路由器过滤之用消息体文本,元数据,XML消息异步可靠性消息的自治性消息是自包含的、自治的实体生产者发送消息消息系统保证消息能被任何干系方收到异步可靠性消息存储和转发消息被队列化并确保传输仅一次至少一次至多一次消息排序消息被发送方发出,并以相同的顺序传给接收方异步可靠性消息确认消息系统监督消息处理进程,以便获悉消息是否能成功地被生产和消费可靠消息模型可靠发布/订阅持久消息持久订阅可靠消息模型可靠的点到点队列持久消息在队列中存储,直到它被消费者消费或超期一个非持久消息也会在队列中保存,直到它被消费或超期为止,但是不保证在失败恢复或消息服务器恢复后也如此可靠消息模型多步存储-转发每个消息服务器使用存储-转发和消息确认机制获取下一个服务器的消息,形成链条每个连接可以采用安全、认证机制,并可穿越防火墙可靠消息模型事务性接收和传送操作可以封装在一个本地事务中多个资源可以参与到两阶段提交事务中消息系统的难点多个物理队列形成逻辑队列,甚至构成队列网络,需智能路由引擎的支持需要提供QoS(QualityofService,服务质量等级)支持第五节耦合性耦合问题耦合?软件组件间的依赖程度企业越来越需要灵活地处理业务流程的更改以及与合作伙伴的交互方式松耦合降低了整体复杂性和依赖性,提高敏捷性。适应更改、减低风险耦合问题思考与讨论题通信模式分布式通信中间件的主要功能RPC的原理CORBA架构可靠消息模型如何运行?
本文标题:02-服务计算基础(分布式计算技术基础)
链接地址:https://www.777doc.com/doc-1575068 .html