|
深入理解SOA概念及其潜在优点作为一种技术,SOA是一个工具,虽然这种技术本身没有提供直接的价值,但是与EJB或者.NET组件相比,SOA是一种更为廉价的代码行服务开发方式。 本文关键字: SOA 8:服务可简单可复合 定义服务可能是一个艰巨的任务。在某些情况下,我们很清楚需要哪些服务; 很多时候,服务相当简单。例如一个查找客户的服务,可能需要使用一些标准来查找用户并为服务的使用者提供标准化的客户记录。 然而,服务也可以复合形式存在。这意味着“超级服务”可以提供一个标准的界面,就像我们刚才查找客户的服务所提供的那样。在前面的例子中,暗指所有的客户信息都存储在同一个资料库中,所以很容易进行查找。但如果一些客户资料存放在大型主机中,一部分存放在SAP中,一部分存放在其它应用程序中,而另外一部分存放在Oracle数据库中呢?让我们假定在每一种系统上已经建立了查找服务的界面。换句话说,我们拥有在大型主机、SAP、其他的应用程序和Oracle数据库上查找客户的服务。我们新的查找客户的服务可以使用所有这些现有的服务来查找客户。现在,因为我们的服务要调用其它服务,它变成一个复合式的服务。当一个自动化流程模型自己成为一项服务时,也会建立复合式服务。 9:SOA的自动化可能有很多层面 自动化可以发生在不同的层面,这是服务架构经常被忽视的一个特点。很多SOA架构的错误在于只看到某一个层面的自动化,然而,在一个SOA解决方案中,自动化至少可以应用到两个关键领域。 第一个也是最明显领域的是商业流程层,在设计流程的时候,其中的步骤已经进行了连接并形成自动化。因为这些流程通常是基于日常商业活动,往往与人类的交互活动有关。在人类交互流程中实现自动化是一个重要的自动化层面。 另外一个重要的自动化层面是没有人参与的系统交互层,过去几年来,集成工具已经应用到这一领域。通过对系统间任务进行自动化,往往可以提高流程的总体效率。 在这些层面上使用不同的工具也是很重要,应该对人类交互、程序或系统间的交互区别考虑,从而采取不同的策略。 10:服务应当遵循相同的界面标准(包括协议和数据) 使用标准化的方法进行通讯对于服务而言非常重要。在SOA世界中,通讯由两个组件构成。一个是服务进行通信的网络协议,就好比是人们每天使用的通讯媒介一样,例如,如果您想和老板通讯,最好搞清楚老板喜欢接电话还是电子邮件。 第二个组件是通讯的数据或者语言,一旦您同意将HTTP或者JMS作为通讯机制,就等于确定了您交流的语言,例如,您的老板说法语而您说英语,可能就会造成通讯困难。在服务领域,通常使用XML作为语言,但这并没有提供足够的信息。必需对服务需要的数据进行清晰定义并达成一致,这样服务提供商与服务用户就能进行有效的通讯。 11:可以将服务外包 服务的另外一个优点就是它们不必作为整体组件购买,不必在内部进行管理,也不必从头进行开发。相反,可以将服务外包。这意味着在您需要一项服务向政府部门提交法规遵从文件时,您不必自己建立这项服务。各类公司为几乎每个产业部门提供各种服务。利用服务外包,您可以将主要精力放在与最重要的SOA策略——流程——上面。 外包方式的一个不足之处在于,如果您的竞争对手使用了同样的服务,您可能会丧失一些竞争优势。 另外一个需要考虑的问题是性能,这依赖于很多因素,主要包括网络连接性、可用性和反应时间。采用外部网络的服务可能会使您商业流程的性能降级。 12: 服务可以在现有的系统和软件基础上建立 许多组织误认为SOA方式没有考虑到原有系统,如大型主机应用程序。实际上,SOA的一个最强大的价值就在于它允许组织重新利用大型主机和其它原有资产,这一点尤其重要,因为核心商业逻辑和核心商业数据通常保存在私有的原有系统中。通过服务来访问核心商业逻辑和数据,可以立即在自动化流程模型中重新利用这些资产。 当然,大型主机并不是唯一的原有数据源。微型计算机系统,如AS/400、VAX和HP3000等等,都可以以各种方式提供服务。很多工具都可以帮助与这些所有权系统进行通讯,并将它们的信息作为标准化的服务来传递。 13:性能是SOA系统的关键 尽管SOA为一个组织提供了很多利益,包括协调技术与商业,增强灵活性等; 它与性能有着密切的关系。因为在典型的SOA环境中,应用程序往往被高度细分,而程序之间的数据关联也很缓慢,在决策支持和报告系统中特别需要考虑这一点,以往这些系统只依赖少量数据源。 性能最大化的关键在于了解应用程序和系统性能在何处对于商业最重要。构建一个高性能的系统来支持一个并不需要它的商业流程是无益的。一旦确定关键流程,您只需要在有必要的地方改进并提升性能就行了。 14:SOA以四个组件为基础 一个成功的SOA交付计划有四个组件。第一个组件是定义商业流程,需要哪些服务来支持它们,以及哪些数据与它们相关。这是关于SOA的商业分析。 第二个组件是SOA的架构和模式,这是一组描述如何定义与实现服务的规则,指定通用的交付与使用模式,并制订开发服务需要遵循的原则与标准。 第三个组件是SOA的基础结构,这包括网络、服务器、存储设备、消息工具、整合工具以及流程自动化工具等等,它们支持服务与商业流程的开发与交付。 第四个组件是SOA的开发计划。该计划确定了服务开发与流程实现的先后次序,并且指导形成新服务与新流程项目。 15:建立SOA可能相当麻烦 尽管SOA是一个进化性技术,尽管在SOA领域已经具备相当丰富的知识储备,但由于各种原因,建立SOA仍然相当麻烦。最主要的原因在于SOA和其它变革一样:它需要大量的沟通与社会化,使组织为变革做好准备。 在克服了变革的困难之后,还可能有其它技术性问题。这些问题包括建立适当的服务交付和使用模式、培训技术开发团队、以及为支持SOA开发模式对组织进行的可能的结构变化。尽管SOA的技术组件可以在隔离的环境下进行测试和验证,SOA依然是一个全企业参与的方法,因而需要付出更多的努力来规划服务架构的控制与管理。 责编:刘沙 微信扫一扫实时了解行业动态 微信扫一扫分享本文给好友 著作权声明:畅享网文章著作权分属畅享网、网友和合作伙伴,部分非原创文章作者信息可能有所缺失,如需补充或修改请与我们联系,工作人员会在1个工作日内配合处理。 |
推荐博客 |
|