Speaker
Dr
荣强 曹
(中国科学院计算机网络信息中心)
Description
命令行接口(Command Line Interface, CLI)是计算机操作系统或者应用程序为用户提供的交互接口。由于占用资源少、操作速度快和通用性等方面的优点,命令行接口目前仍然是科学计算领域的重要交互界面。区别于图形化接口的简单易用性,命令行接口的学习门槛比较高,特别是访问由各类异构化资源组成的科学计算平台。从安全方面考虑,考虑到命令行接口的灵活性和强大功能,很计算资源不但要求命令行接口终端软件必须运行在指定的计算机或者必须通过VPN等安全网络进行连接,而且还要求用户使用复杂密码信息或者多因素认证完成登录操作。从资源异构方面考虑,计算资源上运行的不同作业管理系统提供了功能基本相同的命令行接口,但这些命令在语法和功能方面存在很多细节上的差别,用户必须学习多种命令行接口并区分这些细节方面的差异。
综合考虑以上问题,本文提出基于WEB页面的命令行接口工具WEBCLI,平滑CLI的尖锐学习曲线,融合图形化界面简单易用和上手快的优点,面向科学用户提供简单易用和安全的命令行服务。WEBCLI在前端WEB页面上模拟一个命令行窗口,该窗口通过web socket连接到后端WEB服务; 后端WEB服务调用SSH(Secure Shell)客户端连接远端的异构计算资源。与常见的基于WEB的SSH工具相比,用户通过WEBCLI输入的命令不会直接发送到远端的计算资源,而是由WEB服务接收并完成安全、易用和统用等方面的处理后再转发到计算资源并执行命令。
WebCLI是典型的浏览器和服务器体系结构,其后端WEB由4个相对独立的服务组成。命令组合服务旨在接受来自浏览器中运行的终端所输入的字符,组合为一个统用命令。WEBCLI提供一组简单易用的作业、数据、应用和资源等方面的命令,以屏蔽由各种作业管理系统和计算资源的定制要求引起的语法上的细微差别。在易于使用的方面,命令推荐服务旨在帮助用户根据个人历史命令、用户行为、全局数据和不同的偏好配置,编写和完成具有多个选项的复杂命令。在通用性方面,命令格式转发服务负责将统用格式的输入命令转变为远端计算资源所支持的格式,从而屏蔽不同作业管理系统和计算资源带来的差异。在安全方面,安全和风险服务旨在检查每个命令是否获得基于多级白名单和黑名单的执行权限。如果任何命例如删除命令将导致不可恢复的结果,它还会向用户显示警告。
基于Vert.x和xterm.js等相关开源软件,本文设计了和实现了WEBCLI的原型系统以验证技术方案的可行性和可用性。用户第一次使用WEBCLI时,所用的账号及凭证信息直接传输到远端的计算资源并验证是否登录成功,WEBCLI不会缓存和存储账号的敏感信息。若用户登录成功,WEBCLI会引导用户设置证书登录功能。此后,用户再次访问WEBCLI时,可以选择合适的证书并直接登录远端计算资源。证书数据受WEBCLI所在WEB平台的保护,每个用户只能访问和使用他们自己的证书。若远端资源不支持证书登录,用户只能每次输入账号和凭证信息登录远端服务,然后使用WEBCLI的简单、易用和通用的命令行服务。
基于Web服务和事件总线技术,针对命令接口的易用、安全和学习门槛高等问题,本文提出了一种简单有效的科学计算命令行接口解决方案,完成了验证性的原型系统。在原型系统的基础上,本文将完善WEBCLI的各项服务,形成WEBCLI在人工智能领域的典型示范,最终为人工智能计算与数据服务平台的初学者和专业用户提供易于使用的Web CLI。
Primary author
Dr
荣强 曹
(中国科学院计算机网络信息中心)
Co-authors
Mr
Boyu Liu
(Computer Network Information Center, Chinese Academy of Sciences)
Mr
Xiaoguang Wang
(Computer Network Information Center, Chinese Academy of Sciences)
Prof.
Yangang Wang
(Computer Network Information Center, Chinese Academy of Sciences)