技术开发 频道

SOA与大型主机在碰撞中融合

【IT168 专稿】

    不可否认,目前为止最关键的任务仍然是在主机上处理完成的。主机仍然是商业界的主宰。

    可惜的是,许多公司已经着手搭建一个可称为“偶然架构”的架构,而这些公司的系统都已经拥有超过10年的寿命。这个架构就像一碗意大利面条,每一根面条代表一个系统,而所有这些面条的每一个交错点都代表了这些系统之间的一个集成点。这个偶然架构是利用了RPC、FTP消息队列以及许多其它集成技术经历多年时间才发展起来的。但是,这个架构非常复杂,而且很难进行简单的替换或重写操作。

    那么,你为什么还要关心这个早已过时、难以操作并且脆弱、简陋的主机系统呢?因为你是一个Java/J2EE开发员,你每天都要和Web服务、BPEL过程管理器和ESB打交道。而《软件开发》杂志的一次调查表明,“……47%的SOA应用中都有主机应用的踪影。”这意味着在一个SOA项目中,你大概有50%的几率要和旧主机系统打交道。

    SOA很容易被炒过头,而且经常被IT供应商们捧作软件架构的“圣杯”。然而,在这个“旧资产现代化”的环境下,SOA集成架构可以把一个旧系统引入到互联网、Web2.0以及所有以网络为基础的最新的IT架构中。然后,用不了多久,你就可以通过网页来访问一个旧系统了。这正是SOA相对其它旧系统集成技术的最大优势。你的上市时间是以周为单位的,而不是月或年。我们现在生活在一个关注时间短且需要获得即时满足的时代里;我们不再需要早报,因为我们从网络上得到所需的信息。我们的现代化旅程要能够反映这些变化。因此许多旧资产的现代化项目选择了SOA集成作为第一阶段。

    旧资产的SOA集成:主机上的集成点

    开始之前,我们先来看看SOA利用主机系统的几种方式。我们可以使用各种各样的旧组件。旧组件是指主机上的具体的逻辑、显示和数据,是业务用户需要访问的部分。我们不能只看集成点,还要了解选择旧组件或访问方式的原因:

    · 呈现层——即通常所说的“绿屏”。这是一个体积庞大的非智能终端机,是与主机系统进行双向交互的唯一方式。包括主机3270或VT220(DEC)传输设备、iSeries传输设备(5250)等。

    为什么应用、数据等上面要有呈现层?因为这些应用源都是无法使用的。也可能是其它原因,比如由于安全或限制性因素造成的无法直接访问,或者应用中没有相应的流程或SQL。SOA只是运行主机应用并将显示、菜单和字段以服务的形式呈现出来。这种做法很简洁,速度也很快,而且最重要的是很方便。

    · 应用——应用服务的实现并不是简单地把处理过程封装为Web服务。这包括系统性能的各个方面,也包括CICS/IMS事务、Natural事务、IDMS与ADS/O会话、COBOL程序和批处理程序等。它也包括业务规则、数据验证逻辑和其它事务的一部分的业务处理过程。

    为什么要集成以应用为基础的旧系统?应用是大部分系统的核心。它包括显示、业务逻辑、业务规则、工作流、安全和旧系统的整体性能。主机系统上的事务是IT用户与系统交互的方式。因此,当你想重复利用旧系统上的既有功能,使用应用层就是最合理的一种方式。这种方式使你可以利用当前应用所有的行为(规则、事务处理流程、逻辑和安全)而无需在开放的系统上重新创建。

    · 数据——旧系统上的数据可以是相关的或无关的。大多数情况下,旧系统上会有一个无关的数据存储,比如关键字文件、网络数据库或分级文件系统。在对旧系统上的数据进行读写操作的时候,SOA集成层将使用SQL这种简单易行的方式来访问所有的数据源。这一点很重要,因为许多企业可能更倾向于使用基于SQL的集成而不是基于SOA的数据集成。IT架构决定了在开放系统数据库中使用SQL语句比引入一套完整的SOA设施要简单得多。

    为什么是数据?因为这是准确性的根源。它是你所需要的信息的储存之处。如果你使用了另外三个组件的任何一个,那么它们最终必然导致你需要一个数据存储。因此,让你所有的服务都以数据为基础就是顺理成章的了。有时候,安全和加密等方面的原因可能会使这里无法实现。还有时候,你需要先实现业务逻辑、业务规则、或者转换才能继续数据方面的工作。但是,如果上面这些还无法进行,那么直接开始数据源的工作也是个不错的选择。

    · 其它——存储程序和SQL大多分布式应用访问数据存储的方式。存储程序也为应用性能、代码重用、应用逻辑封装、安全和集成提供了很大方便。

    为什么要使用存储程序和SQL?因为你在转向分布式、开放的系统和关系数据库,而这些技术在这个环境下的表现相当不错。当然也要受到人力和技能方面的影响。你的开放系统开发人员必须熟悉存储程序,并能熟练地开发它们。

0
相关文章