技术架构
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
技术架构
他,40余载银行IT路,风雨兼程,踏歌而行;他,是中国银行业IT发展史的亲历者和见证人;他,是“宇宙行”开发体系的奠基人和建设者;他,友朋遍四方,桃李满天下;他,就是中国工商银行开发中心前总经理,梁礼方。蒙梁老准允,优智汇独家开辟《金语梁言》专栏,我们将以各种形式发表梁老对中国金融IT业的思考与见解,并接受广大“梁(凉)粉”的提问,梁老将抽取其中具有代表性的问题,在专栏中答疑解惑。我们期待,《金语梁言》对于转型中的中国金融IT业具有启示和借鉴作用。
上期回顾关于系统架构,在此前的文章里,已经分别论述了:应用架构、程序架构、数据架构。本章将论述应用系统架构的又一个维度:技术架构。本章所说的技术架构,指的是在一个可以独立部署的应用系统里,应用、应用平台、基础设施之间的关系。技术架构探讨的是应用系统的纵向架构,而此前论述的应用架构探讨的是应用系统的横向架构。信息系统架构的其中一个维度,是系统的技术架构。本文所说的技术架构,指的是在一个可以独立部署的应用系统里,应用、应用平台、基础设施之间的关系。也就是说,技术架构探讨的是应用系统的纵向架构,而此前论述的应用架构探讨的是系统的横向架构。不同的银行,规模有大有小,其信
息系统的规模也不尽相同。但它们的信息系统均由不同的子系统或各种各样的应用组成。尽管在银行业里,什么才能称之为信息系统的“系统”、“应用”,没有一个公认的标准,但各银行在对信息系统进行分类管理时,这种被分类的“系统”或“应用”的数量,通常会有一、两百个。这些不同的系统、不同的应用,建设与投产时间有先后,使用的技术、基础设施、平台、编程语言等都会不一样。在大部分中小银行,许多系统都是通过外购然后客户化建设而成,这些外购的系统,系统提供厂商也不完全一样。面对这些五花八门的百多两百个系统,要充分了解并熟悉其技术架构,以便能承担起对系统维护与完善的职能,对大多数银行的科技部门而言,都是一个不堪重负的任务。尽管一个银行的信息系统,有一、两百个系统或应用,实际上,类似的系统、应用,如果其内部运作模式相似,使用的技术相似,完全可以整合在相同的基础设施、应用平台、运行环境上运行。一些银行就进行过技术架构整合的探讨与规划。其结果是,所有的系统,如果经过适当的改造,可以全部整合到最多不超过十种的不同技术架构中。也就是说,最多只需要建立十种不同的基础设施、平台的组合,就可以满足一个银行信息系统里所有的系统或应用建设的需要。如果真的能实现技术架构的整合,这是一个多麽令人兴奋的前景啊!那么应该如何实现能够整合的技术架构呢?理想的技术架构框架是,把应用、平台、
基础设施相对独立地拆分为以下几层:一、系统层系统层也叫基础设施层。包括系统级的硬、软件两层。底层硬件包括主机、各种服务器、PC、存储设备、网络设备等。第二层系统软件包括各种操作系统、数据库等。系统层的主流硬、软件产品,基本都是由世界上屈指可数的几个厂家提供。二、平台层平台层通常也包括两层。下层是中间件或技术平台。中间件通常指的是厂家在系统层的基础上提供的平台软件。例如比较有名的交易平台软件有IBM的CICS;BEA的Tuxedo等。又例如IBM的电子商务软件平台WebSphere。也有一些中间件是由第三方软件公司开发的。而技术平台通常指的是用户自己开发的平台软件。第二层是基于中间件之上的开发框架与运行环境生成平台。包括各种生成环境与工具:如建模工具、可视化开发工具、第四代开发语言等。当然,也有一些平台层会把中间件或技术平台与开发运行环境捆绑在一块,不分成两层。三、应用层应用层包含所有的应用。处于整个技术架构框架的最上层。整个技术架构框架如下图:
图:系统的技术架构
四、分层技术架构的要求构建上述技术架构时,要注意以下几点:1、应用与系统隔离三层架构之间,控制与数据均不能跨层穿透流动。也就是说,应用层只能与平台层打交道、系统层也只能与平台层打交道。应用层不能与系统层直接打
交道。2、层间松耦合在构建各层时,在设计上要注意层间松耦合。应用对平台要松耦合;平台对系统要松耦合。3、技术架构与运行实体信息系统最多不超过十种技术架构,并不表示信息系统最多不超过十个相对独立的运行实体。从处理能力、存储容量、安全性考虑,不同的系统尽管技术架构完全一样,也不一定都要统一在一个相对独立的运行实体里运行。也就是说,尽管技术架构只有几种,但独立运行的系统也许有几十到上百个。五、分层技术架构的优点采取了上述的技术架构,所有应用均植根于平台之上,而平台基本屏蔽了所有系统的基础设施、环境、技术特征。所以,有以下优点:1、提高开发效率平台为应用的开发、维护运行提供较好的界面,应用开发人员可以完全仅专注于业务本身,无需在其他技术细节上有过多的投入,效率会大为提高。2、提高质量由更专业的技术人员去开发与维护平台,平台的技术质量会较高,从而整个系统的技术质量会更高。3、软件重用类似的应用可以使用相同的平台,不同的平台与不同的基础设施最多只需要几种组合,使得整个信息系统的平台种类数量大为减少。实现软件行业孜孜以求的软件重用的梦想。软件维护的开销大为减少,节省信息系统的开发与维护资源。4、应用可持续发展做到应用与平台松耦合、平台与系统松耦合。最终实现软件与硬件的松耦合。应用可以低成本的在不同的基础设施、技术环境上移植、重用。提高了软
件的适应能力与适用范围,提高了软件可持续发展的能力。
5、为基础设施架构的发展提供广阔空间当前,基础设施技术也在快速发展。包括UNIX服务器、PC服务器的性能大幅提升;包括新的操作系统、新的数据库;包括新的云运行环境。所有这些,都给现在的基础设施架构师们在规划基础设施架构时带来新的要求与挑战:某应用系统应该用大机、还是UNIX服务器、还是PC服务器;数据库应该用传统的关系数据库、专用数据库,还是用分布式数据库;系统上云还是不上云;等等。无论如何,如果我们做到应用与基础设施松耦合,那么,基础设施架构师们在决策尝试使用新基础设施架构时,他们无需太纠结,负担也不会太重,因为,转换成本相对低,也相对容易。