王亚雄 张飞 王颖卓
摘 要:Web应用程序的易访问、表现标准化程度高、以及客户端的轻量化等特性,使得其客户端工具(浏览器)基本上已经成为所有主流操作系统的标准配置组件。这使得Web应用程序客户端应用的安装成本基本为零,理论上只要客户端设备能够访问网络就可以访问使用Web应用程序。本文通过实现一个支持HTTPS的Web服务器来转述和执行用户通过浏览器提交的命令以实现对AIX主机进行访问和控制。
关键词:AIX系统;Web应用程序;远程控制
中图分类号:TP277 文献标识码:A 文章编号:2096-4706(2019)12-0096-03
Abstract:Web applications are easy to access,highly standardized in performance,and lightweight in client,making their client tools (browsers)basically become standard configuration components of all mainstream operating systems. This makes the installation cost of Web application client application basically zero. In theory,as long as the client device can access the network,it can access and use the Web application. This paper implements a Web server supporting HTTPS to reproduce and execute commands submitted by users through browsers in order to access and control the AIX host.
Keywords:AIX system;Web application;remote control
0 引 言
AIX作为IMB开发的符合Open group的UNIX 98行业标准的服务器操作系统,自身虽然带有一个Web版本的高级系统管理接口(Advance System Management Interface—ASMI),但是该Web管理接口仅限于使用人员对AIX操作系统本身运行相关选项的管理和查看,同时相对过于简单的用户管理系统使得该系统在实际使用场合中有着极大的限制和不便。本系统通过利用AIX现有的一套完整的权限控制系统和命令执行系统来对其进行扩展,以弥补AIX自带ASMI的不足,方便AIX的使用人员对其进行远程操作和控制。
1 设计目标
本系统以一个搭建在AIX主机上的应用系统而存在,设计开发的主要目的在于帮助AIX用户安全方便地对AIX主机进行远程操作控制。因此用户管理的设计必须最大程度地保留从浏览器客户端登录的用户行为和直接使用AIX主机用户的行为一致;命令设计为单向命令执行方式,用以减少系统开发的复杂度。对必须进行交互操作的命令则采用客户端模拟的方式予以支持。
2 系统软件设计
2.1 系统的划分
本系统分为客户端子系统和服务器子系统两大子系统进行开发。客户端子系统运行在用户终端的浏览器上,采用图形化展现方式,通过HTTPS协议经由广(局)域网对AIX主机进行访问,是最终用户和AIX系统的交互入口;服务器系统运行在目标AIX主机上(服务器系统的可拆卸部分可以部署在HTTPS代理服务器上,详见后述),通过HTTPS协议接收来自主机以外的请求,并对发起请求的终端用户进行身份认证以及命令的接收、解析、执行和执行结果反馈等动作。相关的逻辑拓扑图如图1所示。
2.2 各系统的主要功能及相关实现技术介绍
2.2.1 客户端系统
(1)客户端系统设计为一个单页面的富客户端表现形态,所有的GUI部分渲染均在客户端浏览器内完成。渲染由第三方渲染库ExtJS完成,该库的最大特点是全部由JS实现,对主流浏览器的支持良好,浏览器无须下载其他额外的控件即可对其进行执行,此外该库的可定制程度很高,经笔者的实际测裁剪后整个应用(包括所有的图像资源和CSS控制文件)客户端的源代码大小可以控制在2M左右,大小是开发库源代码的1/20左右。如果采用gzip压缩技术则完全可以控制在700k以内,完全可以满足终端用户在复杂网络情况下的速度要求。
(2)客户端系统和服务器之间的数据交互方式设计为Ajax方式。采用该技术最大的特点是可以通过单一Web页面的局部刷新来更改页面的展现方式。从而避免了Web页面不能保存历史信息的缺点,使得客户端能够保留一些自有的相关性上下文而不必通过服务器来进行中转保存。从而降低對服务器状态的依赖,并可以利用自身的运算能力在减少服务器压力的同时对所保留的上下文数据进行分布式加工处理。
(3)页面展现和动作执行相分离,使得服务器端静态文件的分发和业务逻辑能够彻底分离,在必要时可以通过增加HTTPS代理服务器来进一步减轻AIX主机的负荷。
2.2.2 服务器系统
(1)服务器静态文件服务负责客户端请求的Web文件以及HTTPS相关认证文件的分发,该部分可以通过专业的HTTPS代理服务器进行处理。如果使用HTTPS代理服务器,则该部分可以不与目标AIX服务器部署在同一个物理机上。
(2)服务器的用户权限控制采用AIX自带的权限控制系统作为用户验证入口。足迹记录系统则利用AIX自带的histroy功能来进行记录以备后期查看和追踪。
(3)服务器的用户命令执行部分采用与HTTPS连接的socket套接字绑定的方式来保存用户命令執行环境的上下文,使得每一个不同的用户都在各自独立的session空间下执行命令。服务器和客户端相配合对每一个登录用户采用长连接的HTTPS传输方式进行交互。当客户端因为某种原因而使链接断掉则终端用户必须重新登录。
2.3 客户端和服务器之间的协作说明
客户端和服务器端之间的内容交互分为两大部分,第一部分为Web应用文件,在本系统中,由于客户端的展示页面为单一页面且是动态生成的,所以具体物理形态为一个JS(压缩)文件、一个CSS(压缩)样式文件、一个图片样式合集。第二部分为客户端和服务器之间的动作交互,是整个服务器业务逻辑的实现,在本系统中整个命令的提交方式采用Ajax方式进行提交。请求和回复的命令内容则采用JSON格式进行编解码。
3 系统的特点和技术特色
3.1 系统特点
(1)系统具有较高的数据一致性、完整性和可靠性,Ajax的交互数据格式采用了JSON格式进行编码,大大降低了客户端与服务器端交互时双方的编解码复杂度,同时又很好地兼顾了两者的可扩展性和数据的可读性。
(2)采用HTTPS链接保证了数据传输层的安全性,使用AIX自身的权限认证系统不仅降低了系统使用的复杂度,也使得Web应用程序和AIX系统权限控制很好地保持了一致。避免了新的权限控制系统的引入,降低了系统服务器的开发复杂度。
(3)使用方便,利用Web程序的标准化程度高的特点拓展了用户对AIX系统操作的终端类型,使得终端用户不仅可以在普通PC上对AIX主机进行远程控制和维护,也可以通过平板电脑、智能手机等非传统终端对AIX主机进行远程操作和控制。
3.2 技术特色
(1)采用了类RESTful的设计风格,通过适度的裁剪和改变。最大程度地简化Web客户端和服务器端的开发复杂度。
(2)服务器开发使用NodeJS,通过使用和前端开发相同的JS语言进行开发,最大程度地减小系统后期开发维护的成本。同时采用了多层次、高度模块化的插件设计开发风格,使得后期的功能扩展标准化、一致化。
(3)没有使用任何数据库,整个系统的架构都建立在AIX系统现有的功能上,不对AIX系统做任何额外功能扩展,最大程度减少对原有AIX系统的影响。
(4)命令执行系统采用fork、dup,system等系统命令组合,最大限度地降低了对AIX系统命令的二次封装。提高开发执行效率,避免引入二次封装带来的bug风险。
(5)不同用户隔离在不同的进程空间中进行远程操作,使得终端登录用户彼此独立,不相互影响。
(6)采用长连接socket套接字绑定技术,使得服务器界面与维护客户命令执行上下文。
4 结 论
本平台采用SENCHA公司的ExtJS4.0 GPLv3开源库作为客户端开发基线库,实现了一个基于Ajax方案的富客户端的远程控制系统。本平台实现的基本原则是:简单、安全、实用、复用性高。考虑到用户群体的特殊性,在系统设计时进行了一些必要的取舍,比如:不考虑高并发性、高负载性和高扩展性等平台系统所要考虑到的基本原则,而对系统数据传输的安全性和用户权限认证的时效性进行了更多的考虑。在具体开发中则采用了建模最小化、迭代功能增加、人员配置自由、在阶段性工作完毕前工作职能专一等渐近、有序、持续进化的敏捷开发原则。从投产后的实际反馈来看,较完满地实现了当初设计的各项指标。有效地提高了AIX开发维护人员的工作效率。
参考文献:
[1] [美]David Herron,著.Node Web Development [M].鄢学鵾,吴天豪,廖健,译.人民邮电出版社,2012.
[2] [巴西]Loiane Groner.Ext JS 4 First Look [M].Birming-ham:Packt Publishing,2012.
[3] [美]弗兰纳根,著.JavaScript权威指南 [M].淘宝前端团队,译.北京:机械工业出版社,2012.
[4] [美]Leonard Richardson,Sam Ruby. RESTful Web ServicesRestful Web Services [M].徐涵,胡伟,译.北京:电子工业出版社,2007.
[5] Martinez Cordero, Jose Eduardo,Shiv Dutta ,et al. IBM certification study guide eServer p5 and pSeries administration and support for AIX 5L version 5.3 [M]. [United States] IBM,International Technical Support Organization,2006.
[6] [美]Alistair Cockburn,著.敏捷软件开发 [M].第2版.北京:机械工业出版社,2008.
作者简介:王亚雄(1985.01-),男,汉族,湖北天门人,中级工程师,本科,研究方向:大数据开发;张飞(1981.05-),男,汉族,陕西西安人,中级工程师,本科,研究方向:大数据开发;王颖卓(1978.05-),男,汉族,江西赣州人,硕士,架构师,研究方向:大数据开发。