软件架构:构建软件架构SOA

news2024/11/13 15:17:37

     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的一个中心思想就是让企业应用彻底摆脱面向技术的解决方案的束缚,轻松应对企业商业服务变化、发展的需要。企业IT架构环境中单个应用程序是无法包容业务用户的(各种)需求的,即使是一个大型的ERP解决方案,仍然不能满足这个需求在不断膨胀、变化的缺口。对市场快速做出反应,商业用户只能通过不断开发新应用、扩展现有应用程序来艰难地支撑其现有的业务需求。通过将注意力放在服务上,应用程序能够集中起来提供更加丰富、目的性更强的商业流程。其结果就是,基于SOA的企业应用系统通常会更加真实地反映出与业务模型的结合。


  服务是从业务流程的角度来看待技术的——这是从上向下看的。这种角度同一般的从可用技术所驱动的商业视角是相反的。因为服务的优势很清楚,它们会同业务流程结合在一起,能够更加精确地表示业务模型、更好地支持业务流程。相反,我们可以看到,以应用程序为中心的企业应用模型,迫使业务用户将其能力局限为应用程序的能力。


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


  有利于企业业务的集成
  传统的应用集成方法,如:点对点集成、企业消息总线或EAI、基于业务流程的集成等,都很复杂、昂贵,而且不灵活。这些集成方法难于快速适应基于企业现代业务变化不断产生的需求。


  基于SOA的应用开发和集成可以很好地解决其中的许多问题。它描述了一套完善的开发模式来帮助客户端应用连接到服务上。这些模式定制了系列机制用于描述服务、通知及发现服务、与服务进行通信。


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


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


  与传统的企业应用集成架构的主要区别在于,基于SOA的企业应用系统使用基于标准的服务,并包括过程/数据服务、编排和组合。基于标准的服务成了应用间的集成点。服务的编排和组合增加了服务的灵活性、重用性和集成性。


  两种粒度实现SOA服务
  可以按基于服务的功能及发送和接收的数据数量来定义服务,如细粒度服务、粗粒度服务或组合服务。


  在SOA中服务粒度有两种相关的意思,即服务是如何实现的,服务使用和返回了多少数据或多少消息。细粒度服务执行了最小的功能,发送和接收少量的数据。粗粒度服务执行了较大的业务功能,并交换了更多的数据。


  细粒度服务是供粗粒度服务或组合服务使用的,而不是由终端应用直接使用的。如果应用是使用细粒度服务建立的,则应用将不得不调用网络上多个服务,并且发生在每个服务上的数据量较少,因而会对对系统整体性带来影响。所以,粗粒度服务的用户不能直接调用他所使用的细粒度服务。然而,由于粗粒度服务可能使用多个细粒度服务,因此它们不能提供粒度级的安全和访问控制。


  组合服务可以使用粗粒度服务和细粒度服务进行组装。数据数量不是粗粒度服务和组合服务之间的区别。粗粒度服务例子,如创建新客户,在这一过程的操作是:需要通过一些外部服务验证对客户进行验证,并在CRM应用系统中创建客户记录。组合服务例子可以是提供一个新的DSL线,这需要一个服务调用来验证订单、创建或验证客户,确认产品库存及为数据线分配资源。


  通过一组有效设计和组合的粗粒度服务,业务专家就能够有效地组合出新的业务流程和应用程序了。


  成就商务自主
  作为面向服务的计算架构,SOA简化了IT的计算环境,其兼容性、互通性以及最终实现的商务自主的能力,满足了高度动态的商务环境(Dynamic Business),实现了IT对业务从数月到分秒的响应。专家指出,SOA的最终价值在于让IT和业务同步,在规划上以面向提供弹性的业务服务为目标。从CIO到负责规划的架构设计师,都需要和业务部门之间有充分的沟通。因此,SOA的建立,将会是一个为期数年的承诺,基础建设和标准必需逐步实施。
  在中间件领域,SOA架构日益成为中间件软件供应商争夺的新焦点,谁都希望自己能够先于竞争对手提供最优的SOA技术实现平台,BEA也不例外。从技术上来说,Web服务、组件技术的采用将有助于SOA的进一步普及;从业务上来说,企业用户要求性价比更高的应用系统,SOA恰恰适应了这样的趋势。


       在美国旧金山举办的BEA第九届技术年会eWorld上,来自全球的BEA技术精英将会在现场尽情体验到BEA的技术专家在现场带来的在BEA WebLogic Platform 8.1上的SOA系统设计模式和最佳实践,即有关如何构建SOA系统的技术准则,BEA要让全球的企业用户的信息系统都能够最大化地享受到SOA带来的商业价值。


       GartnerGroup预计,SOA将成为占有绝对优势的软件工程实践方法,它将结束传统的整体软件体系架构长达40年的统治地位(可能性:70%)。Gartner建议,主流企业现在就应该在理解和应用SOA开发技能方面进行投资。总之,如何把握,如何运用到自身的企业建设中,SOA已经给出了一个很好的基础

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/509267.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Flowable】Flowable任务分配和流程变量

1.任务分配 (1).固定分配 固定分配就是我们前面介绍的,在绘制流程图或者直接在流程文件中通过Assignee来指定的方式 (2).表达式分配 Flowable使用UEL进行表达式解析。UEL代表Unified Expression Language,是EE6规范的一部分.Flowable支持两种UEL表…

基于云平台的光伏监控系统是怎样的?

摘要:针对国内光伏发电监控系统的研究现状,文中提出了基于云平台的光伏发电监控体系。构建基于B/S架构的数据实时采集与推送,以SSH(strutsspringhibernate)作为Web开发框架,开发基于云平台的光伏发电远程监控系统。在平台部署过程…

开关电源基础04:新型开关电源拓扑(2)-新型电源拓扑

说在开头:关于量子理论 我们再来回顾下量子理论对双缝干涉的解释:当电子通过狭缝,假如我们采用任其自然的观测方式,让它不受干扰地在空间中传播,这时候电子的波动性就占据了上风,它于是以某种方式同时穿过…

农业机器人技术栈

结构光 https://www.youtube.com/watch?vmSsnf5tqXnA 局部路径规划算法 光流法 统计像素 分辨前景背景 绿色是我们比较关注的 unet做图像分割 运动比较剧烈的是前景 特征点匹配 大豆农田点云建图 农田路况复杂 光流计算量比较大,可以捕捉运动比较大的物体 分割检…

ChatGPT直接访问,Edge浏览器-免费ChatGPT保姆级教程

人工智能大浪潮已经来临,对于ChatGPT,我觉得任何一个玩互联网的人,都应该重视起来,用起来。但是国内使用需要解决科学上网、注册、收费等繁琐问题。 所以,今天这篇文章就来推荐一个插件,无需任何繁琐操作&…

日撸 Java 三百行day48

文章目录 说明day48 堆排序1.基本思路2.代码 说明 闵老师的文章链接: 日撸 Java 三百行(总述)_minfanphd的博客-CSDN博客 自己也把手敲的代码放在了github上维护:https://github.com/fulisha-ok/sampledata day48 堆排序 1.基本…

【虚幻引擎】UE5 C++编译和打包失败的原因

一、出现The required library hostfxr.dll could not be found 错误 原因是缺少.NET Core3.1 解决办法一:可以去官网下载https://dotnet.microsoft.com/en-us/download/dotnet/3.1 解决方案二:打开Visual Studio Installer,选择单个组件&…

计算机Intel CPU体系结构分析

前段meldown漏洞事件的影响,那段时间也正好在读Paul的论文关于内存屏障的知识,其中有诸多细节想不通,便陷入无尽的煎熬和冥想中,看了**《计算机系统结构》、《深入理解计算机系统》、《大话处理器》**等经典书籍,也在g…

ISO9001是什么?ISO9000和ISO9001有何关系?

ISO 9000和ISO 9001是质量管理领域的两个重要标准。它们被用来确保组织能够提供符合客户要求的产品和服务,同时不断提高其业务效率和质量水平。本文将探讨ISO 9000和ISO 9001之间的关系,解释它们的区别以及为什么对企业非常重要。 什么是ISO9000和ISO90…

Windows安装Maven并配置环境

Windows下安装和配置Maven的步骤 介绍:步骤:步骤 1:下载Maven步骤 2:解压缩Maven分发包步骤 3:设置环境变量步骤 4:验证安装 结论: 介绍: Maven是一个非常流行的构建和项目管理工具…

Tunel技术是什么?

IPv4 用 32 位整数描述地址,最多只能支持 43 亿设备,显然是不够用的,这也被称作 IP 地址耗尽问题。为了解决这个问题,有一种可行的方法是拆分子网。拆分子网,会带来很多问题,比如说内外网数据交互&#xff…

银行业数字化运营体系(上):渠道触点矩阵建设

数字化运营体系是构建从获客、激活、留存、营收转化到转介的客户全生命周期的运营体系,推动线上产品和业务运营的数字化与智能化。 随着互联网技术的不断发展,移动设备已经成为人们日常生活中不可或缺的一部分,越来越多的用户在数字化渠道进行…

vmware 详细安装教程

一.VM是什么? VMware Workstation是一个“虚拟 PC”软件。它使你可以在一台机器上同时运行二个或更多 Windows、DOS、LINUX 系统。与“多启动”系统相比,VMWare 采用了完全不同的概念。多启动系统在一个时刻只能运行一个系统,在系统切换时需…

软考A计划-重点考点-专题六(数据库知识)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&am…

数据结构实验的实验报告--B树

访问【WRITE-BUG数字空间】_[内附完整源码和文档] 数据结构实验的实验报告–B树 环境及工具 环境:C 工具:AnyivewCL B 定义 一棵 m 阶 B 树(Balance Tree of order m), 或为空树,或满足下列的特性的 m 叉树:(本次实验采用链式存储结构) …

SSM框架学习-加载properties文件

1. 创建新的命名空间 将 xmlns"http://www.springframework.org/schema/beans" 复制修改为 xmlns:context"http://www.springframework.org/schema/context" 再添加进去 表示开辟一个新的命名空间,叫做context 在xsi:schemaLocation中&#xff…

为什么耳鸣越来越年轻化了

耳鸣是一种声幻觉,当出现耳鸣的情况的时候,很多人都表示,耳朵总觉得听到很多奇怪的声音,甚至有时候还能听到车鸣笛声、或是轮船鸣笛声,但是附近并没有汽车轮船。 耳鸣,是一种没有外界声源情况下&#xff0c…

MapReduce框架原理

从源码的角度 :map --> sort —> copy --> sort -->reduce   sort —> copy --> sort属于shuffle InputFormat数据输入 切片与MapTask并行度决定机制 1)问题引出 MapTask的并行度决定Map阶段的任务处理并发度,进而影响到整个Job的…

每日一个小技巧:1分钟告诉你视频转文字软件哪个好用

如果你曾经遇到过观看视频时无法边看边记笔记的尴尬,或是在听取讲座、会议录屏时错过关键词汇,那么这里有一个好的解决方法——使用视频转文字技术帮助你获取重要信息。通过这项技术,我们可以将视频中的内容转换成易于搜索和阅读的文字&#…

第一行代码 第八章 运用手机多媒体

第八章 运用手机多媒体 使用通知 通知(Notification)是Android系统中比较有特色的一个功能,当某个应用程序希望向用户发出一些提示信息,而该应用程序又不在前台运行时,就可以借助通知来实现。发出一条通知后&#xf…