1.10 探讨传统企业IT系统架构
传统企业的IT系统有其自身的特点,不是照抄照搬互联网企业的IT架构就能解决其问题的,但是可以借鉴相关的成功经验。
1.10.1 从架构角度解决企业应用痛点
通过调研发现,企业应用系统面临的三个主要痛点如下:
●灵活性差。
●交付时间长,动辄三个月或者半年,甚至一年。
●性能差,用户体验不好。
企业应用的痛点与解决方案如表1.1所示。
表1.1
针对灵活性差,通过降低耦合度来解决也是软件工程中的一个基本原则。这样的问题反映出软件设计及开发水平不高的现实。很多时候,开发人员分不清程序和软件的区别,还只停留在功能实现的低水平上。这不单是靠优化架构就能解决的,还要靠提高整体开发水平来解决。
针对交付时间长,可以考虑从提高重用和组件化等方面着手,不断积累企业应用组件库。这好比烧砖建房,从实际需求出发,逐步建立并不断更新有限的砖块规格集合,未来所有的房屋都使用标准件来搭建。
针对性能差的问题,可以在组件化的基础上逐步适度地进行服务化及分布式部署,这是因为不是所有的应用系统都适合服务化。有了这样的基础,对系统的扩展,包括水平扩展和垂直扩展,都会变得容易,分布式部署也会水到渠成。
1.10.2 企业应用系统架构服务化迁移步骤
通过对前面的痛点及解决方案的分析,可以总结出好的企业应用系统架构的三要素与三步走策略,如图1.8所示。
●组件化。
●服务化。
●分布式。
图1.8
组件化是服务化的基础,服务化是和多进程/多线程相关的,是以降低应用部署粒度和降低耦合度为基础的。“对象”“组件”“服务”三者之间的关系如图1.9所示。
而分布式部署的基础是进程/线程间的通信。要理解 RPC(远程过程调用),最好先理解IPC。
图1.9
1.10.3 企业应用系统架构服务化参考模型
针对企业应用系统架构的服务化,提出通用的概念模型(如图1.10所示),考虑了多种逻辑和物理架构。该模型是结合企业应用,并基于多层分布式体系结构而进行实例化的,其具体解释说明如下:
●应用组装层只能调用服务,不能直接访问基础能力提供者。
●开放服务之间没有依赖关系。
●私有服务层用来实现基本的逻辑处理。
●基本能力通过私有服务暴露。
●私有服务能够相互调用,调用关系必须是树形结构的,避免形成调用环。
●对于开放服务需要由注册机构管理,例如:哪些服务可用、怎样调用、使用状态如何,以及服务终止、版本更新等。
希望该模型能够覆盖企业的全部应用,包括基于Package的二次开发系统(如SAP、Oracle),基于SaaS的云应用(如salesforce.com),以及基于Java/.Net自开发的一些应用。在实践中逐步完善这个模型,希望能为企业架构的优化助力。
图1.10