1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,面向服务的架构(,SOA,),1,什么是,SOA,为什么要使用,SOA,SOA,工作原理,构建,SOA,SOA,的应用,目录,2,什么是,SOA,面向服务的体系结构(,Service-Oriented Architecture,,,SOA,)是一个组件模型。,3,组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来;,接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和 编程语言;,构建在各种这样的系统中的服务可以一种统一和通用的方式进行交互。,
2、4,Web service,平台是一套标准,它定义了应用程序如何,在,Web,上实现互操作性。你可以用任何你喜欢的语言,,在任何你喜欢的平台上写,Web service,,只要我们可以通,过,Web service,标准对这些服务进行查询和访问。,Web service,是技术规范,,SOA,是设计原则。从本质上,讲,,SOA,是一种架构模式,而,web service,是利用一组标准,实现的服务。,Web service,是实现,SOA,的方式之一。用,web,service,实现,SOA,的好处是:可以实现一个中立平台,来获,取服务,获取更好的通用性。,Web Services,的目标是即
3、时装配、松散耦合以及自动,集成。,Web service,5,为什么要使用,SOA,传统的架构,软件包是被编写为独立的(,self-contained,),软件,即在一个完整的软件包中将许多应用程序功能整合在,一起。实现整合应用程序功能的代码通常与功能本身的代码,混合在一起。我们将这种方式称作软件设计,“,单一应用程序,“,。与此密切相关的是,更改一部分代码将对使用该代码的代,码具有重大影响,这会造成系统的复杂性,并增加维护系统,的成本。而且还使重新使用应用程序功能变得较困难,因为,这些功能不是为了重新使用而打的包。,缺点:代码冗余 不能重用 紧耦合 成本高,6,SOA,旨在将单个应用程序功能
4、彼此分开,以便这些,功能可以单独用作单个的应用程序功能或,“,组件,”,。这,些组件可以用于在企业内部创建各种其他的应用程序,,或者如有需要,对外向合作伙伴公开,以便用于合作伙,伴的应用程序。,SOA,优点:代码重用 松耦合 平台独立 语言无关,为什么要使用,SOA,7,商品消费,软件服务,8,SOA,工作流程,9,SOA,架构中有三种角色:,服务提供者:发布自己的服务,并且对服务请求进行响应。,服务注册中心:注册已经发布的,web service,,对其进行分类,并提供搜索服务。,服务请求者:利用服务中心查找所需要的服务,然后使用该服务。,SOA,角色,10,SOA,操作,SOA,的三种操作
5、:,发布操作:为了使服务可访问,需要发布服务描述以使服务使用者可以发现它。,查找操作:服务请求者定位服务,方法是查询服务注册中心来找到满足其标准的服务。,绑定操作:在检索到服务描述之后,服务使用者继续根据服务描述中的信息来调用服务。,11,SOAP:,简单对象访问协议,(Simple Object Access Protocol),WSDL:Web,服务描述语言,WSDL(Web Services Description,Language),UUDI:,统一描述、发现和集成,(Universal Description,Discovery and Integration),WSDL,用来描述服
6、务;,UDDI,用来注册和查找服务;而,SOAP,,作为传输层,用来在消费者和服务提供者之间传送,消息。一个消费者可以在,UDDI,注册表(,registry,)查找服,务,取得服务的,WSDL,描述,然后通过,SOAP,来调用服务。,SOA,的相关标准,WSDL,、,UUDI,、,SOAP,12,一个,SOA,系统要具有以下六大关键要素,基础设,施、已有资源、企业服务、流程模型、服务展现和系统,工具(包括开发、测试和管理工具等)。因此,在基础,设施和已有资源都已具备的基础上,开发和构建一个,SOA,系统要包括以下几方面的工作:,首先需要设计开发出符合标准的服务,这是整个,SOA,系统最核心的
7、要素。,基于标准服务,借助流程编排工具和建模工具,组织构造流程,生成流程模型,更好地满足业务需求。,实际构建和开发,SOA,系统,具体包括服务和应用程序的开发,数据的访问、处理和管理,及对服务各种形式的展现等。,如何构建,SOA,13,假设股票行业存在以下,6,个服务:,Country,(),输入参数:国家编码。输出项:国家名称和其他信息。,YellowPages,(),输入参数:公司名称;输出项:企业代码,所在国家等其他信息。,NewYorkStock,(),输入参数:公司代码,时间;输出项:该公司在纽约的股票价格,(美元)。,LondonStock,(),输入参数:公司代码,时间;输出项:
8、该公司在伦敦的股票价格。,USToRMB,(),输入参数:美元价格,时间;输出项:对应的人民币价格。,UKToRMB,(),输入参数:英镑价格,时间;输出项:对应的人民币价格。,使用,SOA,进行服务组合实例,14,用户想通过,“,跨国公司名称,”,和,“,时间,”,找出该,跨国公司在纽约的股票折合成人民币的价格以,及该公司所在国家的信息。,分析:,输入参数:跨国公司的名称、时间,如何实现对给定服务的组合,找出满足用户的信,息?,使用,SOA,进行服务组合实例,15,使用,SOA,进行服务组合实例,查询过程流程图,16,在石油企业内部,有许多不同的网站,进入每个网,站,都需要身份验证,不仅浪费
9、时间而且容易遗忘代,码,另外,网站维护人员对各种服务需要建立相应的用,户认证与信息管理系统,分布于个服务器中的用户数据,不仅浪费维护人员的时间,而且过于分散的用户数据不,利于统计和管理。用户的需求和管理要求促使用户趋于,统一,产生了统一者认证。,统一认证的实现是基于,SOA,的架构。,SOA,应用,统一认证,17,从中可以看出使用,SOA,的优点:将身份验证这一功能模块发布成一种服务,其他的软件可以通过,UUDI,查找该服务,然后将该服务与服务的实现进行绑定。,SOA,应用,统一认证,18,SOA,应用,HOTI,架构图,19,HOTI,应用架构流向图,20,登录服务的实现,Service,端
10、(服务提供者):编写服务的实,AuthorityBLH,,它实现了,BaseBLH,,该服务的每一种操作在该类中都有一个对应的方法,针对不同的操作名称,调用相应的方法。它是一个业务逻辑处理,与数据层通信,完成相应的数据操作。,Servicemanager,服务的注册与管理。服务的实现完成以后,要为服务定义服务名和操作名。例如登录组件的,serviceName=,Auhtority_Mgr,operationName=,“,query_AuthoritysWithUserID,”,。然后向,ServiceManager,进行注册。每一种服务都对应一个业务逻辑处理,XXXBLH,。,HOTI,的服
11、务调用,21,客户端(服务请求者):当用户点击登录时,想要调用,sevice,端的服务。必须在配置文件中给出服务的名称和操作名称。,。,Soap,代理根据用户的请求,将请求的消息转换成,soap,消息格式,创建连接,与服务端进行通信。,Service,端的,soap,引擎监听到请求,从,soap,消息中取出服务名和操作名。通过,servicemanager,找到该服务对应的业务逻辑处理,XXXBLH,,然后执行该业务逻辑,将返回的结果封装成,soap,消息,返回客户端。,HOTI,的服务调用,22,HOTI,的服务调用流程,23,HOTI,的服务调用,服务调用配置,24,HOTI,的服务调用,控制转发,25,服务端根据发布服务的操作类型来执行相应的业务操作。,HOTI,的服务调用,26,HOTI,的服务调用,身份验证的业务逻辑,27,具体业务操作的实现代码,HOTI,的服务调用,28,HOTI,的服务调用,数据访问接口,29,Thanks,!,30,
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100