欢迎来到天天文库
浏览记录
ID:47370936
大小:258.01 KB
页数:16页
时间:2019-07-24
《面向服务体系结构》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、面向服务的体系结构今天,Web服务——特指用Web服务描述语言(WebServicesDescriptionLanguage,WSDL)描述的、通过HTTP发送的、处理XML编码的SOAP消息的分布式服务——正得到广泛的部署。Web服务可用在各种各样的应用程序集成环境中:从简单的(特别是防火墙后面的)数据共享到大规模的Internet零售和货币交易。Web提供了软件组件之间的互操作性,这些软件组件可以在不同的企业之间进行通信,并且可以驻留在不同的基础架构中。这解决了顾客、软件开发人员和合作伙伴所面临一个最重要的问题。HTTP和SOAP提供了通
2、信和消息的互操作性。WSDL提供了消息的描述,以支持开发工具之间的互操作性;它凭借交换接口定义的能力来完成通信互操作性。一组基本的Web服务规范使顾客和软件厂商能够解决一些重要的问题。在这些规范成功的基础上,许多开发人员和公司准备解决Web服务方面更难的问题。Web服务的巨大成功使开发人员想要从Web服务获得更多的能力。由于重要的工具和通信互操作已经成功了,所以开发人员现在期望增强互操作的功能。除了基本的消息互操作性和接口交换之外,开发人员越来越需要更高级别的应用程序服务互操作。许多商业应用程序运行在这样一种环境中(“中间件”或“操作系统”)
3、,这种环境为一些功能(比如安全性和事务处理)提供支持。IBM、Microsoft和业界其他一些公司常常需要使Web更安全、更可靠且更好地支持事务处理。另外,我们在提供这些能力的同时,还需要保持现在Web服务中必不可少的简单性和互操作性。面向服务体系结构(SOA)定义SOA是指为了解决在Internet环境下业务集成的需要,通过连接能完成特定任务的独立功能实体实现的一种软件系统架构。从这个定义中我希望表达的前提有下面两点:1)软件系统架构:SOA不是一种语言,也不是一种具体的技术而是一种软件系统架构,它尝试给出在特定环境下推荐采用的一种架构,从
4、这个角度上来说,它更像一种模式(Pattern)。因此它与很多已有的软件技术比如面向对象技术,是互补的而非互斥的。它们分别面向不同的应用场景,用来满足不同的特定需求。2)SOA的使用范围:需求决定同时也限制功能。SOA并不是包治百病的万灵丹,它最主要的应用场合在于解决在Internet环境下的不同商业应用之间的业务集成问题。在下面我们会详细讨论Internet的各种特点如何决定SOA的特点,这里我们只需要先简单回顾一下Internet环境区别于Intranet环境的几个特点:a)大量异构系统并存,计算机硬件工作方式不同,操作系统不同、编程语言
5、也不同;b)大量、频繁的数据传输仍然速度缓慢并且不稳定;c)版本升级无法完成,我们根本就无法知道互联网上有哪些机器直接或者间接的使用某个服务。基于上面的前提,下面就让我们一起看一下SOA的基本特征。SOA三大基本特征1独立的功能实体在Internet这样松散的使用环境中,任何访问请求都有可能出错,因此任何企图通过Internet进行控制的结构都会面临严重的稳定性问题。SOA非常强调架构中提供服务的功能实体的完全独立自主的能力。传统的组件技术,如.NETRemoting,EJB,COM或者CORBA,都需要有一个宿主(Host或者Server)
6、来存放和管理这些功能实体;当这些宿主运行结束时这些组件的寿命也随之结束。这样当宿主本身或者其它功能部分出现问题的时候,在该宿主上运行的其它应用服务就会受到影响。SOA架构中非常强调实体自我管理和恢复能力。常见的用来进行自我恢复的技术,比如事务处理(Transaction),消息队列(MessageQueue),冗余部署(RedundantDeployment)和集群系统(Cluster)在SOA中都起到至关重要的作用。2大数据量低频率访问对于.NETRemoting,EJB或者XML-RPC这些传统的分布式计算模型而言,他们的服务提供都是通过
7、函数调用的方式进行的,一个功能的完成往往需要通过客户端和服务器来回很多次函数调用才能完成。在Intranet的环境下,这些调用给系统的响应速度和稳定性带来的影响都可以忽略不计,但是在Internet环境下这些因素往往是决定整个系统是否能正常工作的一个关键决定因素。因此SOA系统推荐采用大数据量的方式一次性进行信息交换。3基于文本的消息传递由于Internet中大量异构系统的存在决定了SOA系统必须采用基于文本而非二进制的消息传递方式。在COM、CORBA这些传统的组件模型中,从服务器端传往客户端的是一个二进制编码的对象,在客户端通过调用这个对
8、象的方法来完成某些功能;但是在Internet环境下,不同语言,不同平台对数据、甚至是一些基本数据类型定义不同,给不同的服务之间传递对象带来的很大困难。由于基于文本
此文档下载收益归作者所有