简单或复合式的服务
在一些情况下,所需要的服务非常显而易见,在这种情况下服务非常简单。然而,服务也可能非常复杂。这意味着“超级服务”可能提供一个标准界面,就如同我们的客户定位服务一样。如果所有的用户信息都存储在同一个库中,这就方便了服务的查找。但如果有些客户信息在某台主机中,另一些在SAP中,其他的一些则散布在其他的应用中,而还有一部分存储在Oracle数据库中,那么情况会怎样?假设我们已经从主机、SAP、其他应用或者Oracle数据库中定位了这名客户,我们的新定位客户服务就能够使用所有这些现有的服务来定位客户了。现在, 因为我们的服务需要调用其他服务,这就变成了一项复合式服务。当一个自动化流程模型扩展成一项服务的时候,也可能成为复合式服务。
SOA中的自动化包含了多个层次范围
自动化可以在几个层上发生,很多SOA架构仅将目光锁定在一个层上,而自动化通常至少应用于SOA解决方案中的两个方面。
首先,也是最明显的一个方面是业务流程层。流程设计好了以后,其中的步骤就被连接起来,实现了自动化。因为这些流程通常是基于日常业务的,它们常常会需要和人进行交互。而另一个方面是非人类交互,或者叫系统交互。在过去几年中,集成工具在这一领域内大显身手。但是系统间的自动化提高了流程的整体效率,与人交互之间的各种问题比系统或应用间的交互更为重要。
服务应当符合统一标准
对于服务来说,采用标准化的方式进行通信是非常重要的。在SOA世界里,通信是由两部分组成的:首先是网络协议,例如,如果你想和你的老板沟通,最好的办法是了解他更愿意通过电话还是电子邮件;第二个部分是数据或语言,如果你使用HTTP或JMS作为通信机制,那么你必须使用同样的语言。例如,如果你的老板说法语而你说英语的话,你们之间的沟通就很容易出问题。服务需要的数据应该被清晰地定义,这样服务提供者和使用者就能够有效地进行沟通。
可以将服务外包
服务不同于产品,它的优点在于你不需要自己管理,也不需要象采购产品那样全盘购买。而服务是可以外包的,这意味着当你需要向某个政府部门提交合法性文档的时候,你并不一定需要自己完成它,很多不同的公司都在为各行各业提供服务。通过使用外包服务,你可以将精力集中在SOA策略最重要的核心部分——流程。
外包的缺点在于如果你的竞争对手也采用了同样的服务,你的竞争优势就会被削弱。另一个问题是性能,外部网络提供的服务对于你的业务流程来说,性能上会比内部服务差一些。
可以使用现有的系统或应用来建设服务
很多企业在考虑SOA的时候忽略了现有的系统,诸如主机应用等等,这是错误的。事实上,SOA的一个主要优点在于它允许企业重复利用主机和以前遗留下来的系统资源,因为核心业务逻辑和数据通常是存在于以前遗留下来的专用系统中。当然,主机并不是惟一遗留下来的数据源,小型机系统,例如AS/400、VAX或HP3000都可以用某种方式被服务激活。有很多不同的工具可以与这些专用系统进行通信,并将它们作为标准服务。
性能是SOA系统首要问题
在典型的SOA环境中,应用是相互独立的,将不同应用中的数据关联起来非常困难。而这对决策支持和报告系统来说意义重大,最大限度地提高性能的关键在于理解哪些应用或系统性能对业务来说最重要,一旦确认了哪些流程是重要的,你可以集中精力,在必要的领域内提高和改善性能。
SOA实施由四个部分构成
成功的SOA实施计划应该包含四个主要的组成部分,第一部分定义业务流程,明确为了支持业务流程需要哪些服务,哪些数据与此相关;第二部分是SOA结构和模式,这一部分制定规则,描述服务如何定义及实施,说明通用实施和使用模式,制定开发服务过程中应该遵循的原则和标准;第三部分是SOA基础架构,这一部分包括支持开发和实施服务及业务流程所需要的网络、服务器、存储、信息工具、集成工具和流程自动化工具等等;第四部分是SOA开发程序,这个程序确定了服务开发和流程实施的优先顺序,指导整个项目,产生新的服务和流程。
SOA实施的艰难路程
尽管它是一种进化的技术,尽管目前已经可以找到很多关于SOA的知识,但是因为种种原因,建立服务架构仍然非常困难。其中最直接的原因在于SOA需要高度沟通,而且要求整个企业都为变革做好准备。变化带来的问题解决之后,可能又会出现技术问题,包括建立合适的服务和消费模式,在技术方面培训并发展团队,逐步调整企业结构以适应SOA发展模式。尽管SOA技术组件可以在独立的环境中进行测试,但SOA覆盖整个企业,因此需要在服务架构的管理和控制计划方面多下工夫。
SOA的发展壮大已是一个不争的事实。通过这些基本的要点你应该能够对SOA的定义和实施有了较为清楚和正确的认识。
剖析实施关键来消除SOA误解
0
相关文章