一.8匕b司so3soa是什么么意思

,SOA)而该公司预计2008年至2010年,采用SOA体系构架的企业将分别达到70%80%

SOA究竟soa是什么么呢?可以说他是一种信息系统集成思想理解SOA关键是理解这个“S”,即Service服务可以说是一种即超越具体技术,又包容具体技术的一种业务功能(SOA是一种较系统应用层面的通常是分布式多系统应用层面上,而非独立的单个系统上嘚)怎么才算是SOA呢,或者说SOA包括哪些基本要素和目标呢目前有哪些技术可以来实现SOA呢?接下来将一一说明

或其它技术都可以实现。

EJB需求RMI传输协议WebService需要SOA传输协议,JMS需求JMS传输协议等要解决不同传输协议的透明化、集中处理,其实现在也有相应的解决方案在后面会逐┅介绍当前流行的一些解决方案。

,SOA)而该公司预计2008年至2010年,采用SOA体系构架的企业将分别达到70%80%

SOA究竟soa是什么么呢?可以说他是一种信息系统集成思想理解SOA关键是理解这个“S”,即Service服务可以说是一种即超越具体技术,又包容具体技术的一种业务功能(SOA是一种较系统应用層面的通常是分布式多系统应用层面上,而非独立的单个系统上的)怎么才算是SOA呢,或者说SOA包括哪些基本要素和目标呢目前有哪些技术可以来实现SOA呢?接下来将一一说明

或其它技术都可以实现。

EJB需求RMI传输协议WebService需要SOA传输协议,JMS需求JMS传输协议等要解决不同传输协议嘚透明化、集中处理,其实现在也有相应的解决方案在后面会逐一介绍当前流行的一些解决方案。

“粗粒度”是指SOA中服务的接口应该比具体语言(,C#)上的接口要更大一些但这个“粗粒度”也不要“太粗”,“太粗”则表明抽象程度太高以至于远离了用户的实际操作,这僦反而不好了因为一切以现实的情况来衡量、设计、实现这才是最真实的、准确的(这一点不单是在SOA上,在javaC#等具体计算机语言上也是洳此)

位置和传输协议是SOA最根本区别于目前面向组件编程的地方。目前的服务组件如EJBWebServiceJMS或相应的组件包(如javabeandll等)的发布都是和特定應用服务器(如apache http server,iis,weblogic,tomcat,websphere,jboss等)客户端必须知道具体的应用服务器的URL才能调用相应的组件。在全球经济一体化的浪潮下各企业的服务集成以便提供哽多丰富的功能服务,这是必然的趋势

位置透明,就是不论服务组件的实际位置URL如何变化客户端的调用程序的URL都不需求改变。

传输协議透明是指不管服务组件使用的是何种传输协议,客户端的调用程序的传输协议都不需求改变这对于客户端来说是透明的。

目前组件嘚调用方式如下图:

       随着全球经济一体化的深入发展敏捷的、多渠道的、安全的、松散耦合的系统集成已经成为越来越多企业业务的需偠。

integration”翻译为中文“Java业务集成”。是SUN公司发布的一套基于JAVA应用组件进行集成的标准针对目前各个JAVA容器不能统一并满足要求而提出的SOA架構。其中最核心的部分包括以下几个方面:

SCA的目的就是为组件接口和传输协议解耦而出现实SCA组件将可以自由绑定各种传输协议,这为系統的集成打下了良好的基础

l         JBI是以请求消息和响应消息作为切入点,在集成时将消息和传输协议解耦形成一种和传输协议无关的标准消息服务,这样形成一种全新的区别于面有的应用服务器的集成容器是从容器的角度出发,一种全新的容器模型

SDO的英文全称是“Service Data Object”,翻譯为中文“服务数据对象”SDO要实现的是一个全新的,是一个“独立于具体技术”的数据对象

如果说SCA根本目标是要实现业务组件接口和傳输协议的解耦,那么SDO的根本就是是要实现数据与业务代码的解耦

随着WebService技术日益成熟和流行,许多企业的很多部门相应地创建了基于WebService的業务如何在不改变这些WebService正常运行的情况下,将这些WebService集成起来创造出新的业务计算模型、业务流程就成为一个比较突出的业务需求BPEL就是為将WebService业务流程串起来而出现的,简单地说BPEL就是通过流程编程将各种WebService集成起来提供了一个“集成了种WebService接口”的接口。

ServiceMix是一个完全实现JBI标准嘚开源项目通过理解ServiceMix,也可以更容易理解JBI思想

ServiceMix是一个轻量级的JBI容器,目前已经提供以支持它可以成为一个独立的服务总线提供者,吔可作为另外一服务总路线的提供者

CXFApache的一个开源项目,是原来开源项目CeltixXfire的结合产物它能够支持多种绑定,由于和Xfire集成因而其性能比较高。

l         服务模型:服务模型在CXF内代表服务包括两部分,第一部分是服务信息(ServiceInfo)包括类似与WSDL的服务模型及它的操作、绑定、端口。第二部分是服务本身包括服务信息(ServiceInfo)、绑定、服务拦截器、服务属性等。

l         绑定:绑定提供在传输层的顶部映射具体的格式和传输协议咜包括两部分,第一部分是绑定工厂它从服务模型的绑定信息创建一个绑定。第二部分是绑定它包括一个特别的拦截器,同时也实现叻createMessage()方法它是一个消息的实现。

Synapse服务总线是一个易用的、轻量级的基于XMLWebService的集成代码不需要重写任何程序,就可以直接将现胡的系统转囮为SOA系统

HttpCore的无阻塞的Http/Https传输,高性能地执行数千个连接

SDO服务数据对象不同于以往任何的数据对象它实现了数据和业务的分离。

l         支持连接斷开的模型(离线模型)使客户端能够在连接断开的情况下进行数据修改,并在客户端保存数据修改的历史记录这样可以利用修改的曆史记录更新数据源;

综上所述,其实SOA的概念算不上新颖技术新颖之处在于它能够混合搭配各种执行环境、令服务接口与服务实现、传輸协议的明确分离。使企业中各个系统(无论新的还是旧的)能够松散的集成运作达到共同完成业务的要求。

现在我们可以看到目的並不是SOA自身,而只是起点它是通向更优的IT计算的一套思想、规划与指导;它是一种基础设施的规划这种基础设施不但可以确保IT与业务嘚一致,还可以通过资产的重用、快速应用开发及多渠道服务应用从而为企业带来更灵活、敏捷的计算需求。

从面向过程的计算机到面姠对象的计算是一个意义重大的转变和提升从现在层出不穷的技术方案到SOA也有着更具重大意义转变和提升,因为SOA是一种思想不是指具體技术,但也同样包含具体技术的面向服务的构架----思想与技术的统一这为企业快速应用集成、自动化业务流程、支持多渠道服务打下了基础,同时也指明了IT领域计算的一种方向和趋势异构系统环境下的系统集成

}

B/S架构的软件是未来的发展方向洇为它有维护简单、操作简单、客户端不需任何安装、支持多种终端(如3G的手机)的优点:

? 用户不需要安装任何客户端,只需一台电脑一根网线,任何时间、任何地点都通过IE轻松登陆; 可以通过手机等其它移动设备登陆系统进行业务操作;跨越时空限制维护简单、升級方便,而且成本低廉;

降低总体拥有成本(TCO)和提高投资回报率(ROI)最大程度保护IT投资,降低IT建设风险;能够按照模块化的方式在現有系统的基础上灵活构建新的应用和服务,满足业务多变的需求;标准化的数据库访问方法保障系统的集成性和扩展性。

EAP技术平台的采用为以下功能的实现提供了技术保障和可行性:

插拔式组件安装:根据业务需求,选取相应业务模块组装成系统;设置个性化工作岼台:根据工作内容和个人爱好,设置工作平台的样式、常用功能、肤色等;定制单据:根据需要设置单据的编号方式、单据样式、自定義字段等;支持二次开发;支持自定义报表;支持自定义流程;

}

第一、什么是C/S结构C/S (Client/Server)结构即夶家熟知的客户机和服务器结构。它是软件系统体系结构通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server 应用都可鉯进行同样的业务处理应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统通过现有应用系統中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向 

传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发┅级的开放性在特定的应用中无论是Client端还是Server端都还需要特定的软件支持。由于没能提供用户真正期望的开放环境C/S结构的软件需要针对鈈同的操作系统系统开发不同版本的软件, 加之产品的更新换代十分快已经很难适应百台电脑以上局域网用户同时使用。而且代价高 效率低。如我院使用的上海超兰公司“案件统计”管理软件就是典型的C/S体系结构管理软件

第二、什么是B/S结构B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起对C/S结构的一种变化或者改进的结构。在这种结构下用户工作界面是通过WWW浏览器来实现,极少部分事务逻輯在前端(Browser)实现但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量降低了用户的总体成本(TCO)。以目前的技术看局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用相对易于紦握、成本也是较低的。它是一次性到位的开发能实现不同的人员,从不同的地点以不同的接入方式(比如LAN, WAN, Internet/Intranet等)访问和操作共同的数據库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全 特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效

第三、管理软件主流技术
管理软件技术的主流技术与管理思想一样,也经历了三个发展时期首先,界面技术从上世纪DOS字苻界面到Windows图形界面(或图形用户界面GUI)直至Browser浏览器界面三个不同的发展时期。其次今天所有电脑的浏览器界面,不仅直观和易于使用更主要的是基于浏览器平台的任何应用软件其风格都是一样的,使用人对操作培训的要求不高而且软件可操作性强,易于识别;再者平台体系结构也从过去单用户发展到今天的文件/服务器(F/S)体系、客户机/服务器(C/S)体系和浏览器/服务器(B/S)体系。

C/S和B/S是當今世界开发模式技术架构的两大主流技术C/S是美国 Borland公司最早研发,B/S是美国微软公司研发目前,这两项技术以被世界各国所掌握国内公司以C/S和B/S技术开发出产品也很多。这两种技术都有自己一定的市场份额和客户群各家企业都说自己的管理软件架构技术功能强大、先进、方便,都能举出各自的客户群体都有一大群文人墨客为自己摇旗呐喊,广告满天飞可谓仁者见仁,智者见智

1、C/S架构软件的优势与劣势

(1)、应用服务器运行数据负荷较轻。最简单的C/S体系结构的数据库应用由两部分组成即客户应用程序和数据库服务器程序。二者可汾别称为前台程序与后台程序运行数据库服务器程序的机器,也称为应用服务器一旦服务器程序被启动,就随时等待响应客户程序发來的请求;客户应用程序运行在用户自己的电脑上对应于数据库服务器,可称为客户电脑当需要对数据库中的数据进行任何操作时,愙户程序就自动地寻找服务器程序并向其发出请求,服务器程序根据预定的规则作出应答送回结果,应用服务器运行数据负荷较轻

(2)、数据的储存管理功能较为透明。在数据库应用中数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的前台应鼡可以违反的规则,并且通常把那些不同的(不管是已知还是未知的)运行数据在服务器程序中不集中实现,例如访问者的权限编号鈳以重复、必须有客户才能建立定单这样的规则。所有这些对于工作在前台程序上的最终用户,是“透明”的他们无须过问(通常也無法干涉)背后的过程,就可以完成自己的一切工作在客户服务器架构的应用中,前台程序不是非常“瘦小”麻烦的事情都交给了服務器和网络。在C/S体系的下数据库不能真正成为公共、专业化的仓库,它受到独立的专门管理

(3)、C/S架构的劣势是高昂的维护成本且投資大。首先采用C/S架构,要选择适当的数据库平台来实现数据库数据的真正“统一”使分布于两地的数据同步完全交由数据库系统去管悝,但逻辑上两地的操作者要直接访问同一个数据库才能有效实现有这样一些问题,如果需要建立“实时”的数据同步就必须在两地間建立实时的通讯连接,保持两地的数据库服务器在线运行网络管理工作人员既要对服务器维护管理,又要对客户端维护和管理这需偠高昂的投资和复杂的技术支持,维护成本很高维护任务量大。

其次传统的C/S结构的软件需要针对不同的操作系统系统开发不同版本的軟件,由于产品的更新换代十分快代价高和低效率已经不适应工作需要。在JAVA这样的跨平台语言出现之后B/S架构更是猛烈冲击C/S,并对其形荿威胁和挑战

2、B/S架构软件的优势与劣势

(1)、维护和升级方式简单。目前软件系统的改进和升级越来越频繁,B/S架构的产品明显体现着哽为方便的特性对一个稍微大一点单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了所有的客户端只是浏览器,根本不需要做任何的维护无论用户的规模有多大,有多少分支机構都不会增加任何维护升级的工作量所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可实现远程维护、升级和共享。所以客户机越来越“瘦”而服务器越来越“胖”是将来信息化发展的主流方向。今后软件升级和维护会越来越容易,而使用起来会越来越简单这对用户人力、物力、时间、费用的节省是显而易见的,惊人的因此,维护和升级革命的方式是“瘦”客户机“胖”服务器。

(2)、成本降低选择更多。大家都知道windows在桌面电脑上几乎一统天下浏览器成为了标准配置,但在服务器操作系统上windows並不是处于绝对的统治地位 现在的趋势是凡使用B/S架构的应用管理软件,只需安装在Linux服务器上即可而且安全性高。所以服务器操作系统嘚选择是很多的不管选用那种操作系统都可以让大部分人使用windows作为桌面操作系统电脑不受影响,这就使的最流行免费的Linux操作系统快速发展起来Linux除了操作系统是免费的以外,连数据库也是免费的这种选择非常盛行。

比如说很多人每天上“新浪”网只要安装了浏览器就鈳以了,并不需要了解“新浪”的服务器用的soa是什么么操作系统而事实上大部分网站确实没有使用windows操作系统,但用户的电脑本身安装的夶部分是windows操作系统

(3)、应用服务器运行数据负荷较重。由于B/S架构管理软件只安装在服务器端(Server)上网络管理人员只需要管理服务器僦行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器网絡管理人员只需要做硬件维护。但是应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题后果不堪设想。因此许多单位嘟备有数据库存储服务器,以防万一

Web服务作为炙手可热的技术,如何应用到企业的IT系统和商业流程之中、并给企业带来直接的经济效益一直备受国内外企业管理者的高度关注和推崇。而在近两年出现了一种技术架构被誉为下一代Web服务的基础架构,它就是SOA(Service-oriented architecture面向服务架构)。1996年Gartner最早提出SOA。2002年12月Gartner提出SOA是”现代应用开发领域最重要的课题”,还预计到2008年SOA将成为占有绝对优势的软件工程实践方法,主鋶企业现在就应该在理解和应用SOA开发技能方面进行投资

SOA并不是一个新事物,IT组织已经成功建立并实施SOA应用软件很多年了BEA、IBM、等厂商看箌了它的价值,纷纷跟进SOA的目标在于让IT变得更有弹性,以更快地响应业务单位的需求实现实时企业(Real-Time Enterprise,这是Gartner为SOA描述的愿景目标)而BEA嘚CIO Rhonda早在2001年6月就提出要将BEA的IT基础架构转变为SOA,并且从对整个企业架构的控制能力、提升开发效率、加快开发速度、降低在客户化和人员技能嘚投入等方面取得了不错的成绩

SOA是在计算环境下设计、开发、应用、管理分散的逻辑(服务)单元的一种规范。这个定义决定了SOA的广泛性SOA要求开发者从服务集成的角度来设计应用软件,即使这么做的利益不会马上显现SOA要求开发者超越应用软件来思考,并考虑复用现有嘚服务或者检查如何让服务被重复利用。SOA鼓励使用可替代的技术和方法(例如消息机制)通过把服务联系在一起而非编写新代码来构架应用。经过适当构架后这种消息机制的应用允许公司仅通过调整原有服务模式而非被迫进行大规模新的应用代码的开发,使得在商业環境许可的时间内对变化的市场条件做出快速的响应

SOA也不仅仅是一种开发的方法论–它还包含管理。例如应用SOA后,管理者可以方便的管理这些搭建在服务平台上的企业应用而不是管理单一的应用模块。其原理是通过分析服务之间的相互调用,SOA使得公司管理人员方便嘚拿到什么时候、什么原因、哪些商业逻辑被执行的数据信息这样就帮助了企业管理人员或应用架构师迭代地优化他们的企业业务流程、应用系统。

SOA的一个中心思想就是使得企业应用摆脱面向技术的解决方案的束缚轻松应对企业商业服务变化、发展的需要。企业环境中單个应用程序是无法包容业务用户的(各种)需求的即使是一个大型的ERP解决方案,仍然不能满足这个需求在不断膨胀、变化的缺口对市场快速做出反应,商业用户只能通过不断开发新应用、扩展现有应用程序来艰难的支撑其现有的业务需求通过将注意力放在服务上,應用程序能够集中起来提供更加丰富、目的性更强的商业流程其结果就是,基于SOA的企业应用系统通常会更加真实地反映出与业务模型的結合服务是从业务流程的角度来看待技术的–这是从上向下看的。这种角度同一般的从可用技术所驱动的商业视角是相反的服务的优勢很清楚:它们会同业务流程结合在一起,因此能够更加精确地表示业务模型、更好地支持业务流程相反我们可以看到以应用程序为中惢的企业应用模型迫使业务用户将其能力局限为应用程序的能力。

企业流程(enterprise process)是流经企业框架的空气它赋予业务模型里的组件以生命,并更加清晰地定义了它们之间的关系流程定义了同业务模型进行交互操作的专门方法。例如会计可能是企业服务系统的一个组件–泹是将发票寄给客户却是一个业务流程。服务被定义用来支持业务流程因而贯穿整个流程始终的是:各种服务组件在流程和逻辑实现过程中的装配操作。理解业务流程是定制服务的关键所在

传统的应用集成方法(点对点集成、企业消息总线或中间件的集成(EAI)、基于业務流程的集成)都很复杂、昂贵,并且不灵活这些集成方法难于快速适应基于企业现代业务变化不断产生的需求。基于面向服务架构 (SOA) 的應用开发和集成可以很好的解决其中的许多问题

SOA 描述了一套完善的开发模式来帮助客户端应用连接到服务上。这些模式定制了系列机制鼡于描述服务、通知及发现服务、与服务进行通信

不同于传统的应用集成方法,在 SOA 中围绕服务的所有模式都是以基于标准的技术实现嘚。大部分的通信中间件系统如 RPC、CORBA、DCOM、EJB 和 RMI,也同样如此可是它们的实现都不是很完美的,在权衡交互性以及标准定制的可接受性方面總是存在问题SOA 试图排除这些缺陷。因为几乎所有的通信中间件系统都有固定的处理模式如RPC 的功能、CORBA 的对象等等。然而服务既可以定義为功能,又可同时对外定义为对象、应用等等这使得 SOA 可适应于任何现有系统,并使得系统在集成时不必刻意遵循任何特殊定制

SOA 帮助企业信息系统迁移到”leave-and-layer”架构之上,这意味着在不用对现有的企业系统做修改的前提下系统可对外提供 Web 服务接口,这是因为它们已经被鈳以提供 Web 服务接口的应用层做了一层封装所以在不用修改现有系统架构的情况下,SOA 可以将系统和应用迅速转换为服务SOA 不仅覆盖来自于咑包应用、定制应用和遗留系统中的信息,而且还覆盖来自于如安全、内容管理、搜索等 IT 架构中的功能和数据因为基于 SOA 的应用能很容易哋从这些基础服务架构中添加功能,所以基于SOA的应用能更快地应对市场变化为使企业业务部门设计开发出新的功能应用

}

我要回帖

更多关于 so3 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信