论面向服务架构设计及其应用
摘要:
面向服务的体系结构,是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。
1、什么是SOA
面向服务的体系结构(Service-Oriented Architecture,SOA)是一个组件模型。
它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来;
接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和 编程语言;
构建在各种这样的系统中的服务可以一种统一和通用的方式进行交互。
2、为什么要使用SOA
传统的架构,软件包是被编写为独立的(self-contained)软件,即在一个完整的软件包中将许多应用程序功能整合在一起。实现整合应用程序功能的代码通常与功能本身的代码混合在一起。
我们将这种方式称作软件设计“单一应用程序“。与此密切相关的是,更改一部分代码将对使用该代码的代码具有重大影响,这会造成系统的复杂性,并增加维护系统的成本。而且还使重新使用应用程序功能变得较困难,因为这些功能不是为了重新使用而打的包。
缺点:代码冗余 不能重用 紧耦合 成本高
SOA旨在将单个应用程序功能彼此分开,以便这些功能可以单独用作单个的应用程序功能或“组件”。这些组件可以用于在企业内部创建各种其他的应用程序,或者如有需要,对外向合作伙伴公开,以便用于合作伙伴的应用程序。
SOA优点:代码重用 松耦合 平台独立 语言无关
3、SOA工作原理
SOA架构中有三种角色:
服务提供者:发布自己的服务,并且对服务请求进行响应。
服务注册中心:注册已经发布的web service,对其进行分类,并提供搜索服务。
服务请求者:利用服务中心查找所需要的服务,然后使用该服务。
SOA的三种操作:
发布操作:为了使服务可访问,需要发布服务描述以使服务使用者可以发现它。
查找操作:服务请求者定位服务,方法是查询服务注册中心来找到满足其标准的服务。
绑定操作:在检索到服务描述之后,服务使用者继续根据服务描述中的信息来调用服务。
4、构建SOA
一个SOA系统要具有以下六大关键要素——基础设施、已有资源、企业服务、流程模型、服务展现和系统工具(包括开发、测试和管理工具等)。
在基础设施和已有资源都已具备的基础上,开发和构建一个SOA系统要包括以下几方面的工作:
首先需要设计开发出符合标准的服务,这是整个SOA系统最核心的要素。
基于标准服务,借助流程编排工具和建模工具,组织构造流程,生成流程模型,更好地满足业务需求。
实际构建和开发SOA系统,具体包括服务和应用程序的开发,数据的访问、处理和管理,及对服务各种形式的展现等。
5、SOA的应用
从中可以看出使用SOA的优点:将身份验证这一功能模块发布成一种服务,其他的软件可以通过UUDI查找该服务,然后将该服务与服务的实现进行绑定。
1 参与分析和开发的软件系统开发项目所担任的主要工作
我需要定义单元服务注册,服务使用者,服务提供者,以及交互接口,主线等
2 面向服务架构的主要技术和标准
主要技术:Web service
标准:定义标准服务,其他都要基于标准服务
相关标准可参考
SOAP: 简单对象访问协议 (Simple Object Access Protocol)
WSDL: Web服务描述语言 WSDL (Web Services Description Language)
UUDI: 统一描述、发现和集成 (Universal Description, Discovery and Integration)
WSDL用来描述服务;UDDI用来注册和查找服务;而SOAP,作为传输层,用来在消费者和服务提供者之间传送消息。一个消费者可以在UDDI注册表(registry)查找服务,