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