冯俊池,安丰亮,董 超,尹党辉
(后勤科学与技术研究所,北京 100071)
在信息化领域,自主国产产品代替国外商用产品已成为国家战略安全的需要[1]。随着国产处理器芯片、BIOS等硬件技术以及国产操作系统、数据库、中间件等软件技术的不断发展和成熟稳定,应用系统向国产化平台迁移已具备了基础条件。Web应用系统是目前广泛使用的软件系统类型之一,通过研究Web应用系统在现有非国产化商用平台与国产化平台之间的迁移适配,探索国产化平台应用迁移方法和模型,可以为Web应用的迁移提供指导方法,同时,也为其他类型应用的迁移适配提供借鉴和支持。
国内自主可控关键软硬件技术已取得了重大突破[2],基础软硬件产品的可用性已得到很大提升。
在处理器领域,国产自主通用处理器形成了多种指令集架构的系列化处理器产品,产品主频普遍达到1.0~2.5 GHz。国产处理器主要有飞腾、龙芯和申威三大系列。龙芯处理器采用类MIPS指令集,目前已发展到龙芯3系列处理器,最新产品为龙芯3A3000/3B3000,4核64位,主频1.35~1.5 GHz;飞腾处理器包括FT-1000、FT-1000A、FT-1500A等系列处理器,最新产品为FT-2000/64,兼容ARM v8指令集,64核,主要面向高性能服务器领域,主频1.5~2.0 GHz;申威处理器已发展到第三代,其代表产品为申威1610,兼容Alpha指令集,集成16个64位RISC结构的申威处理器核心,最高工作频率1.6 GHz。
在操作系统领域,形成了面向服务器、桌面等领域的国产操作系统。国产通用操作系统主要有中标麒麟、中科方德等,均支持国产主流处理器,提供简单易用的图形化桌面环境、丰富的应用软件和完善的开发环境。其中,中标麒麟操作系统基于开源Linux,对其内核和核外环境进行了安全、高可用等增强改进,全面对国际主流x86处理器,以及国产处理器,比如龙芯、飞腾、申威系列等进行支持,支持Java、C、C++等多种编程和脚本语言,支持Qt、Eclipse等多种集成开发环境。
在数据库领域,形成了以达梦、人大金仓、神通、南大通用等为代表的国产数据库产品。产品部分性能已经与国外主流产品持平,支持SQL通用数据库查询语言,提供标准的ODBC、JDBC等数据访问接口,支持目前的主流硬件平台,并稳定运行于Windows、Linux、中标麒麟和Unix等主流操作系统平台。
国产中间件主要有东方通、中创和金蝶等,完整支持J2EE规范,支持多层结构应用的部署、运行。现已开展了与国产操作系统、数据库的兼容性测试,产品达到实用化水平,并被大量应用于金融、通信、政府等行业领域。
随着国产软硬件单品的不断发展,国产整机产品基本满足当前的使用需求[3],现已形成了涵盖多种形态的计算机整机产品,综合性能得到大幅提升,整机功能、性能与国外同类产品相当。国产计算机经优化适配后,可用于办公应用和管理信息系统等中低端应用。
Web应用系统由现有非国产化商用环境向国产化环境迁移时,涉及到多种软硬件平台、编程语言和实现模式等多个方面,存在指令集兼容性、插件兼容性、数据库迁移[4]等诸多问题,而且软硬件各版本之间也需要考虑兼容性[5],因此,需要针对应用本身和运行环境的多个方面进行具体分析,确定迁移内容和方法。
将Web应用系统拆解为细粒度的迁移对象,对迁移对象建立迁移规则,描述迁移对象迁移前后的环境以及策略,迁移规则的集合即Web应用系统的迁移模型。
迁移规则采用五元组的形式表示,即迁移对象、源环境、目标对象、目标环境和迁移策略。相关概念如下:①迁移对象是迁移前保障应用系统能够正常运行的必要部件,包括应用系统的内部组件、运行容器、依赖软硬件环境等。②源环境。迁移对象所依赖的非国产化环境,是迁移对象的子集。③目标对象。在国产化环境下替代迁移对象,完成相同功能的部件。④目标环境。目标对象所依赖的国产化环境,是目标对象的子集。对于CPU等底层基础环境,当其作为迁移对象时,源环境和目标环境可以为空。⑤迁移策略。由源环境中的迁移对象转换到目标环境中的目标对象所需采取的策略,包括直接使用、同等替代、适应性修改、重新编译源码[6]、数据迁移等。其中,直接使用的情况,是指在2个环境下迁移对象均可以正常使用;同等替代,是指目标对象可以替代迁移对象在国产环境中发挥同样的作用;适应性修改,是指迁移对象需要修改后才能适用于国产环境;重新编译源码,是指迁移对象在源码级别可移植,针对国产环境编译后使用;数据迁移,是指需要将数据通过手动或自动方式迁移,主要指数据库内的数据。
迁移模型中的迁移规则涵盖了从基础软硬件到上层应用的所有迁移对象,从迁移对象的层次描述了迁移的方法和策略,同时,以迁移对象为级别的迁移规则复用性强,在不同应用迁移时可直接使用。
在迁移过程中,从硬件到软件,迁移对象主要包括CPU、操作系统、中间件和应用系统等,其中,应用系统是分解确定迁移对象的重点。通过对Web应用系统的软件技术架构的分析,从不同类型的结构中进行综合,将Web应用系统进行层次划分,用来更清晰地确定应用系统层面的迁移对象。在开发过程中,Web应用一般采用三层架构实现[7],分别为数据访问层、业务逻辑层和表示层。数据访问层用于与数据库进行交互,执行数据的添加、删除、修改等操作;业务逻辑层主要用来实现业务规则,针对具体问题进行处理;表示层为用户提供交互式操作界面,显示数据和接收用户输入的数据。针对国产化迁移,需要进一步细分Web应用系统。通过对常见的Web应用系统的分析,列举可能用到的技术框架以及组件,将Web应用主要分为视图展示层、展示框架层、应用逻辑层、应用框架层、应用容器层、数据框架层、数据访问层和数据存储层8个层次。
视图展示层,负责用户前端视图的显示和交互,通常采用 Html、Javascript、CSS、Flash、Java Applet等技术实现。展示框架层,包含与前端界面和视图相关的框架以及组件等。展示框架层和视图展示层主要考虑与浏览器的兼容性。应用逻辑层是Web应用中实现业务逻辑的部分,主要集中在业务规则的制订、业务流程的实现等与业务需求有关的设计方面,通常采用Java、Servlet、PHP、ASP等语言或技术。应用框架层应用逻辑层所采用的框架和组件,比如Spring、Struts等框架。应用容器层是Web应用程序的运行环境,主要包括Tomcat、IIS、WebLogic等Web服务器。数据框架层,是在应用业务逻辑与数据存储之间的数据交互中所采用的框架,包括各种ORM框架等。数据访问层,负责数据的访问和存储,实现对数据的增删改查等操作,包括数据库访问驱动以及各种数据库操作语句等。数据存储层是应用系统的数据存储位置,包括各种结构化和非结构化数据库、文件系统等。
通过对Web应用系统建立迁移模型并进行分析化简,即可得到需要迁移的内容和方法。建立迁移规则库,可在不同应用迁移时复用。生成应用迁移模型的步骤是:①将应用系统按层次分解,确定每一层次的迁移对象。②分析每一层次的迁移对象,并添加到迁移对象集合中,从最底层的迁移对象开始遍历。③如果当前迁移对象已遍历,执行步骤⑤;如果未遍历,标记其已遍历,检查迁移规则库中是否相同的迁移规则可复用,如有,执行步骤④,否则,分析生成迁移规则,将其加入迁移规则库,执行步骤④。④将迁移规则加入迁移模型。⑤如果源环境不为空,将其作为当前迁移对象,执行步骤③;否则,将迁移对象集合的下一迁移对象作为当前迁移对象,执行步骤③。如果迁移对象集合为空,输出迁移模型,终止。
输出的迁移模型包含了所有迁移对象所对应的迁移规则,通过筛选除去迁移策略为直接使用或同等替代的迁移规则,得到的即是迁移过程中需要改造的内容和方法。
以某信息管理系统为例,其迁移前和迁移后的软硬件运行环境如表1所示。
表1 软硬件运行环境表
该应用所用到的技术框架如表2所示。
表2 技术框架
建立迁移模型如下:
通过筛选化简除去直接使用和同等替代的迁移对象后,得到的迁移规则如下:
该信息管理系统在迁移过程中的内容和方法是:①将Oracle数据库中的数据迁移到达梦数据库;②针对应用程序中的特定于Oracle的SQL语句做适应性修改;③针对应用程序中的特定于IE 8的Javascript代码做适应性修改;④将其他迁移对象直接或将替代对象应用于国产化环境。
针对Web应用系统向国产化软硬件平台迁移的问题,提出了应用迁移模型和方法;针对Web应用系统提出了适用于迁移的层次化结构,基于层次化结构分析应用的迁移对象并确定迁移规则,大大提高了迁移工作的效率和准确度。对于其他类型的应用,通过改变迁移对象的层次,迁移模型和方法同样适用。如果将迁移对象国产化后的效果加入迁移规则中,比如保持一致、性能损失、友好度降低等非功能效果,则可对迁移产生的影响进行自动化分析。
参考文献:
[1]赵斌,杨明华,柳伟,等.基于龙芯处理器的自主可信计算机研究[J].计算机技术与发展,2015(4):126-130.
[2]万俊伟,赵辉,鲍忠贵,等.自主可控信息技术发展现状与应用分析[J].飞行器测控学报,2015,34(4):318-324.
[3]纪静,屈涛,金达,等.自主可控计算机设计与实现[J].计算机工程与应用,2013,49(15):36-39.
[4]张春瑞,赵成坤,吴川,等.银行管理信息系统服务器国产化过程中的ETL应用迁移[J].计算机系统应用,2015, 24(10):264-270.
[5]许国锋,许鹏文,邹红霞.国产自主可控技术在军队院校办公自动化中的应用[J].四川兵工学报,2014,35(3): 130-132.
[6]刘晓楠,赵荣彩,庞建民.软件移植、二进制翻译和国产处理器发展[J].信息工程大学学报,2014,15(5):613-616.
[7]Jaewon Oh,Woo Hyun Ahn,Taegong Kim.MVC architecture driven restructuring to achieve client-side web page composition[C]//The 7th IEEE International Conference on Software Engineering&Service Science.Washington:IEEE Computer Society,2017:45-53.