SOA面向服务架构详解
一、定义介绍
SOA(Service-Oriented Architecture,面向服务的架构)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。面向服务架构,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。
SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。SOA可以看作是B/S模型、XML(标准通用标记语言的子集)/Web Service技术之后的自然延伸。
SOA将能够帮助软件工程师们站在一个新的高度理解企业级架构中的各种组件的开发、部署形式,它将帮助企业系统架构者以更迅速、更可靠、更具重用性架构整个业务系统。较之以往,以SOA架构的系统能够更加从容地面对业务的急剧变化。
二、体系结构
松耦合的系统
最后,所有这些都必须处于一个信任和可靠的环境之中,以同预期的一样根据约定的条款来执行流程。因此,安全、信任和可靠的消息传递应该在任何 SOA 中都起着重要的作用。
三、体系结构作用
四、特性状况
基本特征
SOA的实施具有几个鲜明的基本特征。实施SOA的关键目标是实现企业IT资产的最大化作用。要实现这一目标,就要在实施SOA的过程中牢记以下特征:
(1)可从企业外部访问
(2)随时可用
(3)粗粒度的服务接口分级
(4)松散耦合
(5)可重用的服务
(6)服务接口设计管理
(7)标准化的服务接口
(8)支持各种消息模式
(9)精确定义的服务契约
SOA服务具有平台独立的自我描述XML文档。Web服务描述语言(WSDL, Web Services Description Language)是用于描述服务的标准语言。
SOA 服务用消息进行通信,该消息通常使用XML Schema来定义(也叫做XSD, XML Schema Definition)。消费者和提供者或消费者和服务之间的通信多见于不知道提供者的环境中。服务间的通讯也可以看作企业内部处理的关键商业文档。
在一个企业内部,SOA服务通过一个扮演目录列表(directory listing)角色的登记处(Registry)来进行维护。应用程序在登记处(Registry)寻找并调用某项服务。统一描述,定义和集成(UDDI, Universal Description, Definition, and Integration)是服务登记的标准。
每项SOA服务都有一个与之相关的服务品质(QoS, quality of service)。QoS的一些关键元素有安全需求(例如认证和授权),可靠通信(译注:可靠消息是指确保消息“仅且仅仅”发送一次,从而过滤重复信息。),以及谁能调用服务的策略。
五、新兴变革
随着全球信息化的浪潮,信息化产业不断发展、延伸,已经深入了众多的企业及个人,SOA系统架构的出现,将给信息化带来一场新的革命。
纵观信息化建设与应用的历程,尽管出现过XML(标准通用标记语言的子集)、Unicode、UML等众多信息标准,但是许多异构系统之间的数据源仍然使用各自独立的数据格式、元数据以及元模型,这是信息产品提供商一直以来形成的习惯。各个相对独立的源数据集成一起,往往通过构建一定的数据获取与计算程序来实现,这样的做法需要花费大量工作。信息孤岛大量存在的事实,使信息化建设的ROI(投资回报率)大大降低,ETL成为集中这些异构数据的有效工具。 ETL常用于从源系统中提取数据,将数据转换为与目标系统相兼容的格式,然后将其装载到目标系统中。数据经过获取、转换、装载后,要产生应用价值,还需另外的数据展现工具予以实现,如此复杂的数据应用过程,必定产生高昂的应用成本。
结构化的数据管理尚可通过以上方法,予以实现其集成应用。在非结构化的内容方面,这些具有挑战性的问题令人生畏。内容管理的应用方案基于不同的信息化应用系统,而且大部分是纵向的以组织部门为界限的。在内容管理市场中,经常使用来自不同厂商的产品来提供这些解决方案。即使是同一个厂商的产品,相互之间的功能也是经常重叠,并且无法集成。
随着信息化建设的深入,不同应用系统之间的功能界限已趋于模糊。同时企业资源计划系统和协同商务系统,又需要商业智能的分析展现数据提供用户操作依据。
在激烈竞争且多变的市场环境下,企业的管理模式很难固化,应用传统的信息化软件,当企业要做出一些改动时需要面对巨大的挑战。
SOA系统架构的出现,信息化变革
微软大中华区服务部总经理辛儿伦介绍说,从上世纪60年代应用于主机的大型主机系统,到80年代应用于PC的CS 架构,一直到90年代互联网的出现,系统越来越朝小型化和分布式发展。2000年WebService出现后,SOA被誉为下一代Web服务的基础框架,已经成为计算机信息领域的一个新的发展方向。
SOA的出现给传统的信息化产业带来新的概念,不再是各自独立的架构形式,能够轻松的互相联系组合共享信息。
可复用以往的信息化软件。基于SOA的协同软件提供了应用集成功能,能够将ERP、CRM、HR等异构系统的数据集成。
松散耦合方式,只要充分了解业务的进程,就可以不用编写一行代码,通过流程图实现一套我们自己的信息系统。就像已经给你准备好了砖瓦和水泥,只需要想好盖什么样的房子就可以轻松的盖起。加快开发速度,并且减少了开发和维护的费用。软件将所有的管理提炼成表单和流程,以记录管理的内容,指定过程的流转方向。
更简便的信息和数据集成。信息集成功能可以将散落在广域网和局域网上的文档、目录、网页轻松集成,加强了信息的协同相关性。同时,复杂、成本高昂的数据集成,也变成了可以简单且低成本实现的参数设定。创建了完全集成的信息化应用新领域。
在具体的功能实现上,SOA协同软件所实现的功能包括了知识管理、流程管理、人事管理、客户管理、项目管理、应用集成等,从部门角度看涉及了行政、后勤、营销、物流、生产等。从应用思想上看,SOA协同软件中的信息管理功能,全面兼顾了贯穿整个企业组织的信息化软硬件投入。尽管各种IT技术可以用于不同的用途,但是信息管理并没有任意地将信息分为结构化或者非结构化的部分,因此ERP等结构化管理系统并不是信息化建设的全部;同时,信息管理也没有将信息化解决方案划分为部门的视图,因此仅仅以部分为界限去构建软件应用功能的思想未必是不可撼动的。基于SOA的协同软件与 ERP、CRM等传统应用软件相比,关键的不同在于它可以在合适的时间、合适的地点并且有正当理由向需要它提供服务的任何用户提供服务。
六、为何选择SOA
简介介绍
一个使用SOA的企业,可以使用一组现有的应用来创建一个供应链复合应用(supply chain composite application),这些现有的应用通过标准接口来提供功能。
服务架构
基础结构
要运行,管理SOA应用程序,企业需要SOA基础,这是SOA平台的一个部分。SOA基础必须支持所有的相关标准,和需要的运行时容器。下图所示的是一个典型的SOA基础结构。
服务品质
安全质量
可靠信度
策略计划
控制能力
管理能力
其它的qos特性,比如合作方之间的沟通和通讯,多个服务之间的事务处理,都在WS-Coordination 和 WS-Transaction 标准中描述, 这些都是OASIS 的工作。
Web服务
SOA优势
发展效益
A. 平衡最初的旧系统投资(Leverage initial investment):
组织过去所投资的系统、软硬体,如果能再利用等于赋予其新的价值,这也替组织降低成本并增加竞争力。
B. 基础建设的便利性(Infrastructure Commoditization):
C. 快速的接近市场(Faster time-to-market):
服务的重复使用(再利用),来缩短过去的组织流程,更快速的提供服务来接近市场。
服务的重复使用,可降低开发成本。因为开发新系统的成本,大部份比更新旧有系统来的花费大。
F. 持续改善商业流程的循环(Continuous improvement cycle for business process)
G. 中心流程处理(Process-centric processing)
主要优势
一,SOA可通过互联网服务器发布,从而突破企业内网的限制,实现与供应链上下游伙伴业务的紧密结合。通过SOA架构,企业可以与其业务伙伴直接建立新渠道,建立新伙伴的成本得以降低。
二,SOA与平台无关,减少了业务应用实现的限制。要将企业的业务伙伴整合到企业的“大”业务系统中,对其业务伙伴具体采用什么技术没有限制。
三, SOA具有低耦合性特点,业务伙伴对整个业务系统的影响较低。在企业与各业务伙伴关系不断发生变化的情况下,节省的费用会越来越多。
四, SOA具有可按模块分阶段进行实施的优势。可以成功一步再做下一步,将实施对企业的冲击减少到最小。
五, SOA的实施可能并不具有成本显著性。这要分三种情况加以讨论:
(1) 当企业从零开始构建业务系统时,采用SOA架构与不采用SOA架构成本可看做是相同的。
(2) 当企业业务发展或发生企业重组等变化而原有系统不能满足需要,而需要重构业务系统时,采用SOA架构与不采用SOA架构成本可看做是相同的。
推动因素
绿色IT一直被列为头号的战略技术和2008年大多数机构的趋势。据IDC称,虚拟化的绿色的好处不仅是减少服务器占地面积,而是还包括减少碳排放量和耗电量。这些好处正在成为重要的好处。
据IDC对亚太地区绿色IT的调查,75%的受访者对于IT部门没有绿色IT政策。然而,80%以上的受访者认为他们的IT供应商的“绿色”在未来几年将更加重要。
虚拟化在这方面将发挥重要作用,一些企业将采用更环保的方法经营业务以便赢得政府部门的合同。其它机构正在采用虚拟化技术以便得到节省电源的好处和减少碳排放量的奖励。
同时,一些企业管理者和市场研究人士也对虚拟化的未来发展发表了看法:
尽管虚拟化有巨大的潜力,许多转销商不知道这种有潜力的新技术的实际状况。机构能够获得显著的能量和计算效率,同时提高技术的应用率和灵活性。
为了帮助你的客户认识到这些好处并且为你的企业建立强大的市场占有率,你需要了解这个强大的新技术的细节,了解需要采取什么有效手段识别和利用虚拟化的真正机会。
虚拟化正在用来解决范围日益广泛的商业目标和挑战,如服务器整合/保留、业务持续性、测试/开发优化、软件开发与发布以及桌面管理和安全。
分析师认为,虚拟化的下一个大事将是高可用性和灾难恢复工具。灾难恢复在历史上一直是非常难管理的。虚拟化将提供一个节省成本的和容易管理的灾难恢复解决方案。
*基于网络的基础设施,允许分散于各地且采用不同技术的资源协同工作
七、优点
服务导向架构并不是一种全新的解决方案;相反,SOA是技术与架构的自然进化。系统架构一直在不断进步,与商业保持高度一致。系统设计师与商家很早就认识到将技术与商业流程相协调的重要性,包括充分应用并合理化技术资源,以及为商业提供更好的支持。
SOA也在一定程度上源于早已有之的企业架构理论。企业架构对技术进行评估,但是更重要的是,它关注整个企业和全部的商业流程并提供了做出技术决策的背景信息。SOA工具则融合了互联网技术,如HTTP和XML,以及综合技术,如消息总线、转译技术和连接技术。
SOA面向服务架构详解相关推荐
- java调用webservice_笃学私教:Java开发网站架构演变过程-从单体应用到微服务架构详解...
原标题:笃学私教:Java开发网站架构演变过程-从单体应用到微服务架构详解 Java开发网站架构演变过程,到目前为止,大致分为5个阶段,分别为单体架构.集群架构.分布式架构.SOA架构和微服务架构.下 ...
- 【转载】SOA面向服务架构简述
在分布式系统中表现层和业务逻辑层 并不处于同一物理部署,所以我们必须存在分布式服务,以契约方式发布于网络中,我们的关注点在于服务,面向服务编程,这种通过组合业务逻辑暴露可用服务的架构叫做面向服务架构( ...
- SOA面向服务架构简述
在上篇中我们简单谈了下架构设计中服务层的简单理解,在这里我们将继续服务层的架构,在本节我们将重点在于分布式服务.在分布式系统中表现层和业务逻辑层 并不处于同一物理部署,所以我们必须存在分布式服务,以契 ...
- SOA面向服务架构:服务、服务实例、ARXML、服务接口调用、各参与方以及协议选择
1. 什么是服务 传统的汽车EE架构是基于信号的,使用can.lin等总线.随着车载以太网的普及和发展,面向服务架构越来越流行 服务由一组服务接口组成,代表了某个功能,比如蓝牙音乐服务 它有三种类型的 ...
- 漫谈SOA(面向服务架构)
面向服务架构的思想在整个软件的架构中已经不是什么新鲜的东西.我简单的认为服务化是模块化的延伸,所以服务化有着和模块化类似的优点和缺点.这里不再讨论这些服务定义服务与服务之间的通信协议(像WSDL等等) ...
- 【电信业务】【原则与规范】SOA 面向服务架构
面向服务的体系结构(service-oriented architecture,SOA) 从软件的基本原理定义: 是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和 ...
- SOA面向服务架构——SOA的概念
SOA的概念是Gartner 在1996年提出来的,并于2002年12月进一步提出SOA是"现代应用开发领域最重要的课题". 一.SOA的定义 SOA分为广义的SOA和狭义的SOA ...
- 2.SOA面向服务架构
摘要 2019年1月,我参与了某通讯公司的分布式大容量终端平台项目,我在项目中担任系统架构设计师,主要负责设计系统架构和技术选型.该平台为通信设备商.终端商.运营商建立了一个调度管理上万台真实终端的统 ...
- 自服务数据共享与服务架构详解
本文转自微信号EAWorld.扫描下方二维码,关注成功后,回复"普元方法+",将会获得热门课堂免费学习机会!本文转自微信号EAWorld.本文转自微信号EAWorld.扫描下方二维 ...
- SOA面向服务架构:通信逻辑与SOME/IP消息格式
针对某soa工具的总结,可以初步了解soa通信的逻辑,但并不表示所有项目的soa通信方式都是这样的.毕竟soa只是一种广泛的通信架构,并没有标准和统一的规范,比如,有的项目采用tcp,而有的项目使用的 ...
最新文章
- 数字证书采用公钥体制进行加密和解密。每个用户有一个私钥,用它进行 (46)。。。
- nginx win 启动关闭_windows下Nginx启动、关闭、重启bat工具
- UNITY调用安桌方法出现 JNI: Init'd AndroidJavaClass with null ptr!
- 输入和输出移位寄存器的同步串行模式
- openssl 证书管理
- Python 解释器
- 应用程序缓存_应用程序模块和实体缓存
- java开发课程表_展示Java开发人员课程包
- HTML下的list w3c,W3.CSS Lists (列表)
- 随机生成元素升序向量_使用random_shuffle()算法随机化序列元素
- oracle odi 目标数据存储: 临时目标数据存储未与连接关联,ODI知识模块--IKM Oracle Incremental Update...
- Exception Details: System.Data.OleDb.OleDbException: 操作必须使用一个可更新的查询。
- 楚留香pc端无法获取服务器信息,楚留香手游PC端无响应解决方法
- CentOS 8 下载安装stress实际操作以及实际应用,以及遇到的问题
- R语言频数统计函数和独立性检验函数
- 数据库和数据库软件的安装
- 华为无线通用软件开发 实习一面二面
- PythonStock(29)股票系统:涛动周期论 经济周期决定人生财富命运,下一步的研究方向,从宏观角度进行市场行情研究。
- linux cut,sed与awk的使用
- Vue项目中mockjs简单应用
热门文章
- stata软件meta分析模块安装教程
- 小学三年级计算机认识键盘教案,第8课 认识键盘大家庭 教案
- Ubuntu18.04安装中文字体SimHei
- 疑似APT组织响尾蛇的JavaScript脚本调试分析
- vb和python语言的区别大吗_vb语言为什么被淘汰
- c语言指针知识点小结,C语言指针知识点总结
- slice matlab,Matlab画图之slice命令
- OCR身份证识别免费试用,附带Java代码
- 慕课版软件质量保证与测试(第四章.课后作业)
- com.android.htcdialer+意外停止+htc,HTC刷机为什么会变砖 HTC刷机变砖修复方法介绍【教程】...