基于SOA的企业架构整合
2014-05-05  作者:安斯泰来制药 IT总监牛晓峰 

 

   安斯泰来制药是一家总部位于日本的公司,在德国、英国和爱尔兰,在北美和日本都有研发中心,中国不久也将建立研发中心。安斯泰来的药品主要有几类,第一,免疫系统药物,第二,是泌尿系统。现有的是肿瘤类药物,未来会向神经科,综合症做一些新的研发。现在公司的主要产品是免疫用药,很多器官移植的患者,必须通过终身服用这类药物维持生命。

 

 

安斯泰来制药 IT总监牛晓峰


   如果从行业的发展来看SOA,就会发现,我们正处在一个不断变化的社会环境中。互联网的高速推广,智能手机的大规模普及,导致很多原有的企业应用,在模式上发生了巨大的变化。各行各业都在经历着行业互联的过程,给企业IT带来了包括安全和数据交换在内的一些挑战。

   另外,企业员工之间会有大量的互动,应用会轻量化。移动终端带来的变革,就是要把最短的时间都利用起来,形成碎片化的应用模式,这是一种巨大的挑战。有了外部的压力,必然带来潜在的变革,促使IT去思考我们在业务链价值中的定位。


   当前阶段,我们的各种应用和系统,正在慢慢的转向服务化。用户也好、业务也好,已经习惯了一些老的应用。新兴的移动平台,或者新的应用,包括在线销售等等,未来都不再是一个系统,而是一种服务。有服务,就会有标准化。这些在未来的IT系统里,会起到非常重要的指导作用。


   从关注系统到关注业务,这是一种非常重大的变化。另外,作为业务系统的执行者和流程的承载着,我们要考虑用户得登录多少次,才能完成一个复杂的业务。也就是说,要在传统的设计思路之外,加入一条并行的线路,要以人为本来设计系统的流程。


   在一个复杂的环境里,利用单一的用户身份登录和使用复杂的系统,完成复杂的任务,这方面SOA能够起到很大的作用。SOA可以实现服务的标准化和异构化。对于Oracle, SAP就是一个异构的环境,在操作系统级别,有NT和Linux,在数据库级,有Oracle, MySQL、SQL Server 和Sybase,等等,可能有很多平台。我们知道SOA支持服务的利用,能够借此大量降低成本,简化应用和业务流程。从业务的角度,SOA有利用对流程重新进行编排,引导IT从关注系统到关注人。与此同时,它还使跨业务单元、跨企业、甚至是跨媒体的沟通和互联成为可能。


   从业务的角度,SOA 是如何展开的?一般而言,企业会有一个业务战略,其次是IT的战略规划。基于这些规划,未来企业中的用户,可以选择通过某种登录方式,登录到一个站点上,有可能是个网站,或者APP、HTML5应用。APP登录后,各种功能的设计,会围绕登录者每天的工作来展开,而不是像以前一样,按照系统本身的功能来展开,这跟以前非常不一样。


   作为一个医药代表,他要到电子邮件系统、日历和,CRM系统的客户拜访规划中,安排自己的工作。这样的系统其实比较庞大,因为要对各种功能进行集成。所以我们把Exchange、CRM以及日程管理等功能,都作成了Web Service,注册到了SOA下面。这样基本能够满足用户看日程的要求。
看日程的同时,也要看客户,包括客户的相关信息。这些也都要能够通过Web Service,从CRM中获取出来。通过这种方式,他不需要登录CRM,就可以在外部的APP中,完成他今天的日程和计划管理。计划做完以后,就要去拜访客户。拜访过程中,会通过一些交互的方式,形成一个拜访报告,记录到系统中。


   事实上,SOA就是把现有的服务打散,形成碎片化,重新进行分配和组合。服务要有标准,否则做到最后,面临的成百上千的服务,就无法进行管理。另外,服务也要有生命周期,这种生命周期要与业务的发展保持一致。SOA是一个非常好的工具,除了整合以来,还会带来额外的收益,把服务打散,重新按照业务的逻辑,编排新的逻辑,这些在老的系统中也完全能够实现。


   SOA架构可帮助企业对现有应用和云服务进行整合。举个例子,我们的经销商直连系统和在线差旅系统,都是基于云部署来做的。也就是说我的经销商作为数据的管理者,来提供云服务,我们之间是Web Service 和密钥的加密,在进行通讯,这在云上是能够完成的。


   在线差旅也一样,是第三方提供的一个网站,作为SaaS服务。我们这边其实不是SaaS,是传统的结构,SOA和我SaaS之间建立了一个桥梁,而且这个桥梁是可信的,这就解决了我未来进行云部署时,苦于没有办法建立新连接的问题。当然这两个其实都是用户通过SOA,完成日常管理的例子。具体的实现有很多中,可以用Web Service 和SOA,也可以通过其它方式。


   SOA架构另一个最大的价值,就是敏捷应变的能力。原则上讲,你你在哪里做无所谓,做成BS结构,或者CS结构,甚至App都可以,对你来讲是一样的。只要考虑我是调用一种服务,而不用考虑如何去做接口,项目开发的周期就快了很多。