电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

下一代软件架构--SOA(面向服务架构)


发布日期:2018/8/9
 

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

更好支持商业流程

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

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

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

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

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

有利于企业业务的集成

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

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

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

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

下图提供了使用基于服务集成的企业应用的高级视图与传统的企业应用集成架构的主要区别在于该系统使用基于标准的服务并包括过程/数据服务编排和组合基于标准的服务成了应用间的集成点服务的编排和组合增加了服务的灵活性重用性和集成性

图示使用基于服务集成的企业应用

SOA服务粒度

可以按基于服务的功能及发送和接收的数据数量来定义服务如细粒度服务粗粒度服务或组合服务

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

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

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

下图描述了服务粒度的不同级别及它们之间的关系

图示服务粒度

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

SOA与Web服务

SOA不是一定需要 Web 服务来实现并且一个基于Web 服务开发出来的应用也不代表就是一个基于 SOA 构架应用Web 服务只是服务实现的一个典型是实现企业 SOA的一个组件(非必需组件)SOA 为基于服务的分布式系统提供了概念上的设计模式Web 服务则是基于标准的可经济实惠地实现 SOA的一项技术

SOA将IT资源透过服务这样一个在业务上有重要涵义的概念来提供共享把IT与业务的距离更加拉近了一步服务在涉及的层次上要比组件函数流程等更高而且往往在业务上可以找到与之直接对应的概念或实体例如报价订单服务打破了IT系统间的藩篱就像一家公司的各个部门平常各自扮演特定对内或对外服务的角色但彼此间如果能有效地通过共通的语言及文字进行良好的沟通便能协力达成更大更高的目标

随着SOA和Web服务的潮流带来了组合式应用(composite application)的开发方式和观念开始逐渐被大量应用在Portal(门户)和Integration(集成)上组合式Portal的做法就是通过Portal界面所提供的应用往往不是真的在Portal服务器上执行而是将Web服务即时抓过来再加以呈现同时汇总给Portal的使用者在整合方面也是采用组合式的方式通过高级工具来设定使系统得以灵活地配合任务的调整对各项以Web服务方式提供的服务进行不同形式的串联和协作同时快速地加以部署BEA发布了一个企业门户合理化(enterprise portal rationalizationEPR)战略这个战略用来平衡BEA WebLogic Platform的SOA能力凭借最好的行业实践和行业专家帮助客户解决多年来形成的散乱的portal和Web应用程序开发

如果说Web服务等技术是SOA的血肉那么正确的服务设计理念及系统运行平台则是SOA的灵魂SOA试图让IT能更快和业务同步在规划上以提供弹性的业务服务为目标从CIO到负责规划的系统分析人员需要和业务单位策略伙伴间有充分的沟通CIO必须认识到SOA的建立将是一个为期数年的承诺基础建设需要按部就班地进行资助的模式也必须在IT和各个业务部门间建立来陆续支援基础建设及各项业务服务的开发

在中间件领域SOA架构日益成为中间件软件供应商争

上一篇:在Jini,RMI和Applet中如何实现代码签名

下一篇:敏捷自动释放进程的6个提示