您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 第7-8讲面向服务的架构(SOA_及其实现实例(Web服务)
第7-8讲:面向服务的架构(SOA)及其实现实例(Web服务)一.面向服务概述二.面向服务的架构(SOA)三.SOA实现实例:Web服务四.Web服务的主流实现技术:SOAP服务五.Web服务的另一种实现技术:REST服务六.服务虚拟化技术1一.面向服务概述1.什么是现代服务业2.软件产业中的服务3.服务的基本特征4.新的环境赋予服务不同于传统构件的新特点5.互联网服务的常见表现形式6.服务计算231.什么是现代服务业服务:是使用产品和资源创造价值的活动,它没有固定的表现形态,使用方法与具体的实现技术无关,其使用过程通常表现为一个多角色参与的、具有时效性的用户交互过程。现代服务业是指在工业化较发达阶段产生的,主要依托电子信息等高技术和现代管理理念、经营方式和组织形式而发展起来的服务部门。现代服务业的“三高三新”–技术含量高、人力资本含量高、附加值高–新技术、新业态、新方式4五大类现代服务业基于网络信息技术服务业网络信息咨询业、ISP、网络数据库等数字内容服务互联网出版业、网络游戏、数字图书馆等信息技术服务公共服务电子商务通信、信息技术服务、中介专业服务等社区服务、医疗、卫生、保健、教育、培训等金融支付、现代物流、现代农业、现代旅游、狭义的电子商务等5服务之IBM的故事IBM的转型–IBM从硬件制造、软件开发,向系统集成商转型以及整体解决方案的信息集成服务商转型–2002年收购了普华永道咨询公司,成立了业务咨询服务集团,2004年之后,IBM总收入中的一半以上来自服务。6服务之苹果的故事苹果公司东山再起凭借ipod,现占有音乐播放器一多半的市场份额。–苹果的iPod造型虽炫,但是功能设计并没多了不起,要模仿,其实也容易。–关键在苹果的iTunes平台,目前已经拥有500多万首歌曲。五大音乐唱片公司成为这个平台的音乐提供者,苹果同他们一起来抽成。7服务之亚马逊的故事亚马逊云平台–简单存储云:存储服务按照月租金的形式进行付费。–弹性计算云:建立在公司内部的大规模集群计算的平台之上,用户可以通过网络界面操作各个实例。2.软件产业中的服务在软件实现层面,服务通常对应一个定义良好的、可寻址以及可组合的软件组件,即服务组件。在软件系统的构建过程中,服务组件又常被狭义地简称服务。服务是沟通IT领域和业务领域的桥梁,服务的目的是使用互联网资源来创造价值。服务(Service):是自治、开放、自描述、实现无关的网络构件面向服务的编程范型(Service‐OrientedProgrammingParadigm):指以服务的创建、服务的管理、以及复用已有的服务组装形成应用为基本活动的编程范型。89服务WEBRPC单机软件实现技术的发展定制10软件形态的发展11软件使用方式的发展服务注册中心服务提供者服务消费者使用服务商品消费中心商品提供者商品消费者12软件提供方式的发展传统软件模式:–传统应用程序软件建立在高昂的前期许可费用和每年的支持成本之上。–由于需要配置额外的硬件服务器以及IT支持,用户数目的增加会增大开销。–一个典型的企业软件包需要硬件部署、服务器、备份以及与企业内外的用户数目相匹配的网络配置。–传统的应用程序软件往往是高度可定制的,但这是以财力和人工为代价的。13应用服务提供商应用服务提供商(ASP):指通过互联网提供软件应用程序或软件相关服务的企业。–ASP拥有并运行软件应用程序。–ASP拥有、运行并维护运行该应用程序的服务器。–ASP雇佣必要的人员维护该应用程序。–ASP使各个地方的客户都可以通过互联网,使用浏览器或某种“瘦客户端”使用该应用程序。–ASP采用按次计费或以月费/年费的形式向使用该应用程序的客户收费。ASP的例子:XToolsCRM和Salesforce14从面向对象到面向服务面向对象:使用现实世界中“对象”的概念对软件进行抽象,对应用领域的概念和关系的分析可以借鉴到软件设计中,并实现了对象级别上的代码复用。面向组件:将业务功能以组件进行封装,实现业务组件级别的复用。面向服务:将现实世界的“服务”的概念借鉴到软件领域,将业务级的应用抽象为服务,各个业务功能被封装为定义良好的接口,供使用者调用,实现了业务级别的复用。15面向服务“面向服务”表示一种分离系统关注面的方法,其实质是将一个比较大的问题分解成一系列较小的、互相关联的子问题,从而降低问题的复杂度,使得我们能够较从容地分析、解决和管理它。–“面向服务的架构”是一种架构模型,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。–在面向服务的基础上,还需要对业务流程进行梳理和整合,从而能够迅速地采用面向服务的架构来实现它。16面向服务的封装服务使用者服务接口服务实现新建服务遗留系统的封装服务组合17IT支持下的服务系统如何利用IT来更好的构建服务系统?–将现实中的服务所包含的具体业务功能/业务流程、资源等要素转换封装为软件的形式;–通过开放的标准/协议和Internet环境向外发布;–采用标准协议将这些服务集成起来,形成协同化的软件系统,以此向客户提供服务。18可IT化的服务要素可以被IT化为软件的服务要素:可直接将其映射为相应的软件规范–接口;–构件;–数据库;–遗留系统;19基于SOA的服务系统服务组合服务需求服务模型服务协调Internet、TCP/IP…Site1Site2Siten服务构件映射映射基础设施命名协议工作流引擎服务目录语义解释器业务环境服务系统IT环境3.服务的基本特征(1)用法与实现的分离服务的使用方法和它的具体实现技术是无关的。这个特征使得人们可以以一致的方法来访问采用不同技术实现的服务,从而使得跨平台集成实现技术异构的应用系统成为可能。(2)涉及多个角色服务不能脱离角色而独立存在,这也是服务与功能、接口及函数等概念最重要的区别。只有同时具有提供者和消费者,服务才能创造价值。只有通过中介,服务才能实现松耦合的应用构建。(3)有时间属性时间是服务的重要属性,这主要表现在两个方面:20一方面服务的调用过程可能会经历很长的一段时间,是一个长期的运转的过程;另一方面服务本身具有时效性,它的可用性将会随着时间的变化而变化。(4)整体上无明确形态服务是一个抽象的概念,它被广泛应用于各个领域中。因此,它并没有一个固定的形态,可能会随着使用环境的不同,而又着不同的表现形式。因此,不同形态的服务间的互操作就成为一个重要问题。(5)可寻址和可组合可寻址和可组合是服务的两个基本属性。服务是对可重用资源和业务逻辑的封装。可寻址性能够帮助服务在更大范围内被更多的用户所重用,从而创造更大的价值。可组合性则可以使得用户组合不同组织提供的服务,形成更为复杂的业务逻辑,产生增值效应,降低对应复杂业务需求的成本。214.新的环境赋予服务不同于传统构件的新特点开放性:服务的价值体现在共享和复用,因此遵循开放标准是服务的基本特性;自治性:服务的消费者存在广泛和多样的特点,因此服务只有保持自治性才能确保其满足不同需要的灵活性。这种自治性体现在服务消费者发出服务请求后,服务何时开始、在何地执行、如何执行都不受请求方控制;自描述性:在开放的环境下,服务消费者通过服务描述来认识服务、了解服务、使用服务。服务可以公布多样的服务描述,包括自己的能力、访问方式、协作方式等;实现无关性:服务本身提供的能力以及服务消费者获得服务的方式是和服务的实现无关的。也就是服务消费者无需知道服务的实现语言和实现平台就可以获得服务提供的能力。实现无关性降低了服务对服务消费者的要求,也就是放松了两者间的耦合。225.互联网服务的常见表现形式(1)网页网页是Web信息发布的主要形式。用户通过浏览器向服务器提交一个网页的地址信息,服务器返回一个HTML格式的文档,同时由浏览器解析并向用户显示文档的内容。这种通过超链接直接访问的网页资源通常又称为表层网。(2)深层网深层网是指隐藏在Web应用背后的信息资源,这些信息资源通常存储在应用的后台数据库中,无法用超链直接访问,深层网的资源容量是浅层网资源容量的500倍以上,蕴藏着巨大价值。但是由于这些隐藏的数据无法直接获取,且具有明显的异构性和动态性,因此对深层网数据进行加工再利用也是一项难度很大的工作。23(3)互联网开放APIAPI定义了软件模块间的交互接口,它本身是抽象的,而且与软件具体实现技术无关。API接口应该包含对软件模块的方法、数据结构、类以及通信协议的规范说明。通过API接口,程序员就能够明确应该如何使用软件模块提供的服务。到了互联网时代,网站同样需要将自身的数据和功能以API的形式提供出来,供第三方开发者使用,这种API常被称为开放API.开放平台是互联网企业通过公开应用程序编程接口等方式更好地整合并利用外部资源。平台商将服务打包成统一的、可识别的接口并开放出去,以使得第三方的服务以相应形式接入到平台之上,第三方开发者为平台提供产品和服务的同时能够与平台共享各种资源。24(4)企业应用系统服务为了实现企业内部和企业间不同应用系统之间的互联互通,企业应用系统也需要对外提供服务。主要实现方式包括:Web服务、JCA(JavaConnectionArchitecture)、JMS(JavaMessageService)。Web服务:是部署在Web上的软件构件,常见的Web服务包括REST服务和SOAP服务.JCA:提供了一个应用服务器和企业信息系统连接的标准Java解决方案,以及把这些系统整合起来实现最好的工作效率的方法。JMS:是访问企业消息系统的标准API,它便于消息系统中的Java应用程序进行消息交换,并且通过提供标准的产生、发送、接收消息的接口简化企业应用的开发。256.服务计算尽管服务计算已经成为当前学术界和工业界的新宠儿,但到目前为止还尚无统一的概念,并且,服务计算也在不断地发展,其定义和内涵也处于不断变化之中。不同专家和学者从不同角度出发,对服务计算有着不同的理解,下面列举几个有代表性的定义。从软件系统设计与开发的角度出发,认为“服务计算是一种以服务为基本元素进行应用系统开发的方式”。从服务技术的应用角度出发,认为“服务计算是集服务概念、服务体系架构、服务技术和服务基础设施于一体,指导如何使用服务的技术集合”。从分布式计算的角度出发,认为“服务计算是从面向对象和面向构件的计算演化而来的一种分布式计算模式,它使得分布在企业内部或跨越企业边界的不同商业应用系统能实现快捷、灵活的无缝集成与相互协作”26从学科的角度出发,认为“服务计算是一门跨越计算机与信息技术、商业管理与咨询服务的基础学科,其目标在于利用服务科学和服务技术消除商业服务和信息技术服务之间的鸿沟”.上述定义是在服务计算发展的不同时期形成的,其侧重点各不相同,但并无冲突。综合上述观点,服务计算是面向动态、多变、复杂的互联网环境而提出的一门以Web服务、面向服务的体系架构为基础支撑技术,以服务组合为主要软件开发方法,以面向服务的软件分析与设计原则为基本理念的新的计算学科。在服务计算的技术体系中,服务是最重要的核心概念。值得强调的是,这里所说的服务是指基于网络环境的具有自适应、自描述、模块化和良好互操作能力等特点的软件实体,而Web服务是符合这一要求的一种具体表现形式和功能载体。27服务计算作为一门独立的计算学科,是建立在一整套技术体系之上的,我们称其为服务计算技术体系。该技术体系为服务计算解决动态、多变、复杂的互联网环境下的系统设计、软件开发、应用整合、业务集成等问题提供了相应的解决方案.服务计算技术体系涵盖了服务建模、服务描述、服务开发、服务实现、服务管理、服务发现、服务组合、服务协作、服务流程、服务执行、服务监控、企业服务总线(EnterpriseServiceBus,ESB)等技术,这些技术分为如下图所示的自底向上的四个层次:服务资源层、服务汇聚层、服务应用层和服务系统层。计算技术体系如下图所示:28服务计算技术体
本文标题:第7-8讲面向服务的架构(SOA_及其实现实例(Web服务)
链接地址:https://www.777doc.com/doc-2111458 .html