同济大学计算机前沿技术概论第章服务计算与服务科学的发展.ppt
文本预览下载声明
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 新的等式下,体系结构研究变得重要。此时,才是真正的软件“工程” * * * * * * * * * * * * * * * * * 点对点的服务发布与调用(P2P) 服务提供者 服务注册中心 服务客户端 (1)注册 (2)发现 (3)绑定 发布(Publish):为了使服务可访问,需要发布服务描述以使服务使用者可以发现它。 发现(Find):服务请求者定位服务,方法是查询服务注册中心来找到满足其标准的服务。 绑定(Bind)和调用(invoke):在检索到服务描述之后,服务使用者继续根据服务描述中的信息来调用服务。 Web Service 提供者 Web Service 注册中心 Web Service 客户端 (1)WSDL (2)UDDI (3)SOAP WSDL:Web服务描述语言 用于服务接口的描述——What can the service do? UDDI:统一描述、发现和集成协议 服务使用者通过UDDI发现相应的服务并据此将服务集成在自身的系统中—What kind of services are needed? SOAP:简单对象访问协议 用户在服务客户端与服务提供者之间传递信息 通过HTTP或JMS等各类基于文本的消息传递协议来运输 WSDL Web Service (J2EE, PL/SQL,.NET,C/C++,Legacy …) Web Service Client (J2EE, .NET,PL/SQL …) Points to description Describes Service Finds Service Invokes with XML Messages SOAP UDDI Registry Points to service Service adaptor或Service Wrapper 企业中存在若干遗留系统(legacy system); 这些系统采用较传统的技术开发,无法提供清晰的接口(interface); 但其他系统仍然需要访问这些遗留系统的功能; ——怎么办? 通过构造适配器(adaptor),将遗留系统中的功能进行二次包装,从而开放出接口供其他系统使用。 典型技术: Java 2 Connector WebSphere Business Integration Adaptor 客户端为了使用服务,必须在自己的程序中写入调用服务的代码,即通过服务的URI地址来访问服务。 这导致客户端与服务之间的耦合度过大,系统的灵活性受到限制。 例如,客户端需要在多个候选服务之间进行灵活替换,以获得更好的QoS。 —怎么办? 将这种绑定关系从代码中抽取出来。 ① 客户端直接绑定服务接口(WSDL/URI); ② 客户端通过“service registry”来访问服务,当希望访问其他服务时,只要手工修改该registry即可——相当于一个配置文件; ③ 客户端通过“service broker”来动态决定需访问那个服务;—完全动态的服务选择,很困难,需要用到服务语义的相关技术。 如果客户端需要同时或连续调用多个服务的功能,它必须在自己的系统中分别写出多个调用;——非常麻烦; 而且,对多个服务的调用次序也是容易发生变化的,需要频繁的修改;——难以做到; —怎么办?降低耦合度 将remote service strategy的思想进一步发挥,客户端不去逐一调用服务,而是首先将这些被调用的服务按逻辑关系集成起来,形成一个集成的、大粒度的服务; 客户端只需调用这一个服务即可; 当该服务执行时,集成器(integrator)依靠配置信息来分别调用一个个小粒度的服务; 对这些配置信息进行修改,即可方便的做到变更。 SOA的重要目标就是要在分布式环境下实现多组织之间业务的交互与协同;因此独立存在的服务是没有意义的; 即使采用上面的service integrator,一个组织中存在的和使用的服务数量仍然是巨大的,它们之间的关系也很复杂。 必须提供一种手段,能够将多方提供的服务集成在一起,并试图构造一种通用的服务基础设施来来管理它们。 服务 客户端 1 服务 客户端 2 服务 客户端 n 服务 提供者 1 服务 提供者 2 服务 提供者 n 总线 企业服务总线(Enterprise Service Bus)是一个整合应用和服务的灵活的连接基础组织,支持实现多个服务的编排。 形状 = 协议 颜色 = 数据类型 ESB在请求者和服务间实现了: 转化请求者和服务之间的传输协议 处理分离资源间的业务事件 转换请求者和服务之间的消息格式 路
显示全部