基于云计算的html5应用的打包、安装、卸载、运行方法及系统的制作方法

文档序号:6510882阅读:270来源:国知局
基于云计算的html5应用的打包、安装、卸载、运行方法及系统的制作方法
【专利摘要】本发明的一种基于云计算的HTML5应用的打包、安装、卸载、运行方法及系统,所述系统包括服务端、及与所述服务端进行交互的多个客户端;所述客户端包括收发模块、程序文件上传模块、应用配置模块、应用调用模块、程序文件加载模块、控件创建模块、API接口模块和API及运行空间设置模块;所述服务端包括通信接口、数据中心、客户端代码存储模块、应用包解析模块、应用包创建模块、用户识别模块。具有功能包括创建应用包、安装应用到远程服务器上、卸载在远程服务器上的应用、在客户端中加载并运行应用、关闭在客户端运行的应用。本发明解决了让用户可将应用安装在远程服务器上,使用时立即加载到本地运行,即节省了本地空间又起到一次安装到处可用的作用。
【专利说明】基于云计算的HTML5应用的打包、安装、卸载、运行方法及 系统

【技术领域】
[0001] 本发明涉及一种基于云计算的HTML5应用的打包、安装、卸载、运行方法及系统, 尤其涉及一种应用基于浏览器或其他HTML5环境下的虚拟操作系统中的HTML5应用的打 包、安装、卸载、运行、关闭。

【背景技术】
[0002] 随着互联网的飞速发展,浏览器不再仅仅用来表示Web内容,随着HTML5的技术 的问世,Web进入了一个成熟的应用平台,在HTML 5平台上,视频,音频,图像,动画,以及人 机交互和人网交互都被标准化,这让具有无需安装、开发成本低、跨平台和跨终端、迭代更 新容易等优势的HTML5应用使其有很大的可能性成为未来的天下。然而遗憾的是,必须有 服务器在云端提供服务才能让HTML5应用优势得以充分体现,这便导致了我们在使用各种 在线应用的同时,还要登陆不同网络平台。此外,对于更多的个人开发者,昂贵服务器成本 让人望而却步。
[0003] 针对目前网络平台只能保存数据和文件却不能自由安装、定制第三方应用等不 足,研发一种基于云计算的HTML5应用的打包、安装与卸载、运行与关闭的方法及系统,让 开发者(尤其对于个人开发者)可以通过打包应用后以安装包文件的形式派发给用户,既降 低技术难度,又减少了服务器成本;让用户把应用安装在云端服务器上,使用时立即加载到 本地运行,不仅可以节省了本地硬盘的空间,还能起到一次安装,到处可用的作用。此外,还 可让用户在一个网络平台上统一管理和使用各种HTML5应用,满足不同用户各种需求,也 减少了因为使用不同的应用而登录不同的平台而导致的麻烦。


【发明内容】

[0004] 为了迎合互联网技术及云计算领域的发展需求,针对目前网络平台只能保存数据 和文件却不能自由安装、定制第三方应用等不足,提供一种基于云计算的HTML5应用(以下 简称应用)的打包、安装与卸载、运行与关闭的方法及系统,使应用由本地移到云端,实现让 用户在基于云计算的操作系统或者同一网络平台上通过简单、便捷的方法对应用进行管理 与运行,让应用起到一次安装,到处可用的作用。本发明是通过以下技术方案来实现的: 一种基于云计算的HTML5应用的打包、安装、卸载、运行、关闭的方法及系统,该系统包 括服务端,及与所述服务端进行交互的一个以上的客户端。
[0005] 进一步地,所述客户端包括:收发模块,用于与服务器进行通讯和指令派发;应用 包管理中心,用于对应用包信息进行管理和监控接收用户操作指令;程序文件上传模块,用 于在创建应用包或安装应用时,上传程序文件;应用配置模块,用于在创建应用包或安装应 用对应用进行常规设置;应用调用模块,用于根据应用包信息并调用相关模块实现应用在 客户端运行;程序文件加载模块,用于应用在运行时加载主页或主程序代码,并通过密令生 成一个让应用程序能够自行加载扩展的应用程序文件的url路径;控件创建模块,用于在 应用运行时创建如窗口、任务栏等相关交互界面控件。
[0006] 为了让应用程序不受其他程序的Javascript代码或CSS样式干扰,以及让应用可 以调用客户端系统的方法和加强应用功能,所述客户端还包括API及运行空间设置模块, 用于通过创建iframe元素让应用能独立运行的运行空间,并在运行空间中设置一系列的 全局函数或对象,使应用在运行时得以调用客户端的API方法。
[0007] 所述系统不仅可以作为一个独立的系统来运行,还能作为一个组件应用到其他 Web应用或系统中,所述客户端还应包括API接口模块,用于提供为第三方应用或系统提供 一系列API接口命令来操作,进行应用的安装、卸载、运行、关闭以及应用包的生成。
[0008] 进一步地,所述服务端包括:通信接口,用于与客户端进行连接通信、建立会话 机制和指令派发;数据中心,用于对应用包信息及其程序文件进行管理,也用于处理来 自所述通信接口的各种请求并返回请求结果;客户端代码存储模块,用于存储客户端的 Javascript和CSS代码文件,并在客户端在浏览器运行时通过通信接口把客户端程序代码 传输到浏览器中运行;应用包解析模块,用于对应用包进行解压,分析配置文件,检测程序 文件,解密Javascript代码;应用包创建模块,用于根据接收到的程序文件及应用包配置 信息进行创建应用包的临时文件。
[0009] 所述服务端包括用户识别模块,用于对根据会话信息进行用户识别,并返回用户 编号,让所述数据中心得以根据用户编号对应用进行区分;用户识别模块还提供API接口, 使所述应用系统可以作为一个组件并与其它系统组合运行。
[0010] 所述服务端的运行环境还包括:数据库,存储用户应用包的基本信息、配置信息, 运行信息;文件系统,用于对应用程序文件进行储存、管理及读写。
[0011] 进一步地,该运行方法包括:创建应用包、安装应用到远程服务器上、卸载在远程 服务器上的应用、在客户端中加载并运行应用,关闭在客户端运行的应用。
[0012] 进一步地,所述创建应用包的实施过程包括以下步骤:(1)用户提交应用包创建 指令到所述应用包管理模块;(2)所述应用包管理模块调用所述应用程序上传模块向用户 展示上传应用程序文件的交互界面,用户选择并上传应用程序文件;(3)所述通信接口将 接收的到程序文件传递给所述应用包创建模块,所述应用包创建模块进行解压并遍历上传 的应用文件,所述应用包创建模块通过所述通信接口向客户和所述收发模块向所述应用配 置模块向用户发起进行应用配置的请求,并通过交互界面要求用户填写应用配置信息,然 后所述应用配置模块通过所述收发模块和所述通信接口向所述应用包创建模块发送应用 配置信息;(4)所述应用包创建模块进行应用配置文件的创建,Javascript文件代码的加 密以及临时应用包的创建;(5)所述应用包创建模块通过所述通信接口和所述收发模块向 所述应用包管理模块返回应用包信息;(6)述应用包管理模块向用户展示下载应用包的交 互界面并向用户指示进行应用包的下载。
[0013] 所述Javascript代码的加密方式包括:无密匙加密、有密匙加密和不加密三种方 式;其加密算法不对第三方公开,通过Javascript代码加密后的应用包,仅限在所述系统 中运行。
[0014] 所述配置文件包括以下应用包信息:发行商、命名空间、应用类型、默认运行方式、 应用图标文件路径、应用描述、界面设置信息、应用程序版本、应用包版本等,其文件格式为 XML 或 JS0N。
[0015] 所述创建的应用包文件只在所述服务端保存一段有限时间(如:24小时),逾期后 将被系统自动删除; 所述应用包为由HTML、CSS、JS、XML、JS0N、图片文件、音频文件、视频文件、浏览插件文 件等文件通过ZIP、RAR、7Z等格式进行压缩的压缩文档;在所述压缩文档中,必须包含一个 主页或主程序文件包配置文件。
[0016] 进一步地,所述安装应用到远程服务器上的实施过程包括以下步骤:(1)用户 提交应用包创建指令到所述应用包管理模块;(2)所述应用包管理模块调用所述应用程序 上传模块向用户展示上传应用程序文件的交互界面,用户选择并上传应用程序文件;(3) 所述通信接口调用所述用户登录管理模块通过SESSION会话机制进行服务端的用户识别; (4)所述应用包分析模块解压应用包,然后进行分析及解密;(5)向客户端返回请求并调用 所述应用配置模块与用户交互完善配置信息,然后将配置信息通过所述收发模块和通信接 口提交到所述数据中心;(6)所述数据中心利用数据保存应用包信息和利用文件系统存储 程序文件;(7)所述数据中心通过通信接口向客户端返回新的应用信息;(8)所述应用包管 理模块通过交互界面向用户提示应用包安装完成信息。
[0017] 除上述由所述系统创建的应用包以外,所述系统还支持安装由用户自行创建的未 对Javascript文件进行加密的应用包。
[0018] 进一步地,所述卸载在远程服务器上的应用的实施过程包括以下步骤:(1)用户 提交应用包卸载指令到所述应用包管理模块;(2)所述应用包管理模块通过所述收发模块 向服务端发送要卸载的应用包APP ID和应用包卸载请求;(3)所述通信接口调用所述用 户登录管理模块通过SESSION会话机制进行服务端的用户识别;(4)所述数据中心删除数 据库中相应的应用包信息以及程序文件;(5)所述数据中心通过通信接口向客户端返回应 用包卸载结果信息;(6)所述应用包管理模块通过交互界面向用户提示应用包卸载结果信 肩、。
[0019] 进一步地,所述在客户端中加载并运行应用的实施过程包括以下步骤:(1)用户 提交应用运行指令和要运行应用的命名空间到所述应用包管理模块;(2)所述应用包管理 模块根据命名空间获取应用包信息;(3)所述应用包管理模块通过所述收发模块向服务端 发送要运行应用的APP ID和应用运行请求;(4)所述通信接口调用所述用户登录管理模 块通过SESSION会话机制进行服务端的用户识别;(5)所述数据中心根据APP ID从数据 库中检索出相应的应用包信息并进行检测;(6)所述数据中心创建应用程序文件加载密令 及程序文件加载任务记录;(7)所述数据中心读取返回主页/程序代码的代码内容并将其 与加载密令通过所述通信接口返回到客户端;(8)所述应用调用模块调用所述控件创建模 块进行创建支持应用运行的相关控件;(9)所述应用调用模块调用所述API及运行空间设 置模块进行创建运行空间并设置系统API ;(10)所述应用调用模块将主业/程序代码通过 document, write的方法将代码写入到运行空间中的文档内进行运行解析主页代码或运行 主程序;(11)应用在HTML5环境下运行时将自动想服务端发起加载扩展文件的请求,所述 通信接口通过URL分析然后读取相应的程序文件内容并向客户端返回;(12)运行HTML5应 用。
[0020] 在所述客户端中运行应用的实施过程中,为了方便用户对应用的识别与调用,除 通过APP ID以外还可采用命名空间作为程序运行的标识。
[0021] 所述加载密令的作用为进行客户端识别以及加强应用源代码的保护。
[0022] 进一步地,所述运行空间用于避免应用中的Javascript代码和CSS样式与其他应 用或客户端程序的Javascript代码和CSS样式出现冲突而造成错误;减少应用不必要的权 限以提高安全性;使应用在运行过程中,能够在HTML5环境下自行加装扩展的程序文件。 通过〈iframe〉元素下contentWindow模拟,对contentWindow下的原有全局变量进行重新 设置,以提高安全性。然后通过设置〈iframe〉元素 src值为以http://域名/package/密 令/命名空间/格式的URL,并以其作为HTML5应用的BaseURL ;在HTML5的环境下,应用 可根据BaseURL+与应用主页的相对文件路径(如:http://域名/package/密令/命名空 间/xxx. js)进行程序文件的加载。
[0023] 进一步地,所述关闭在客户端运行的应用的实施过程包括以下步骤:(1)用户提 交关闭运行指令和要关闭应用的命名空间到所述应用包管理模块;(2)所述应用程序调用 模块通过API向应用程序触发关闭事件,让应用程序执行关闭前的处理;(3)所述应用程序 调用模块分别所述API及运行空间和调用所述控件创建模块对运行空间及相关控件进行 删除。
[0024] 本发明的基于云计算的HTML5应用的打包、安装、卸载、运行方法及系统,该系统 包括服务端,及与所述服务端进行交互的一个以上的客户端;所述服务端包括通信接口、数 据中心、客户端代码存储模块、应用包解析模块、应用包创建模块、用户识别模块、数据库、 临时应用程序文件和应用程序文件;所述客户端包括收发模块、程序文件上传模块、应用配 置模块、应用调用模块、程序文件加载模块、控件创建模块、API接口模块和API及运行空 间设置模块。本发明解决了目前网络平台只能保存数据和文件却不能自由安装、定制第三 方应用等不足,让开发者(尤其对于个人开发者)可以通过打包应用后以安装包文件的形式 派发给用户,降低技术难度,减少服务器成本;让用户可把应用安装在远程服务器上,使用 时立即加载到本地运行,不仅可以节省了本地硬盘的空间,还能起到一次安装,到处可用的 作用,实现让用户在基于云计算的操作系统或者同一网络平台上通过简单、便捷的方法对 HTML5应用进行管理与运行。

【专利附图】

【附图说明】
[0025] 为了易于说明,本发明由下述的较佳实施例及附图作以详细描述。
[0026] 图1为本发明基于云计算的HTML5应用的打包、安装、卸载、运行方法及系统的系 统结构示意图。
[0027] 图2为本发明基于云计算的HTML5应用的打包、安装、卸载、运行方法及系统的实 施客户端初始化的流程示意图。
[0028] 图3为本发明基于云计算的HTML5应用的打包、安装、卸载、运行方法及系统的实 施创建应用包的流程示意图。
[0029] 图4为本发明基于云计算的HTML5应用的打包、安装、卸载、运行方法及系统的实 施应用包安装的流程示意图。
[0030] 图5为本发明基于云计算的HTML5应用的打包、安装、卸载、运行方法及系统的实 施应用包卸载的流程示意图。
[0031] 图6为本发明基于云计算的HTML5应用的打包、安装、卸载、运行方法及系统的实 施在客户端中运行应用的流程示意图。
[0032] 图7为本发明基于云计算的HTML5应用的打包、安装、卸载、运行方法及系统的实 施关闭在客户端运行的应用的流程示意图。

【具体实施方式】
[0033] 本实施例中,参照图1所示,一种基于云计算的HTML5应用的打包、安装、卸载、运 行方法及系统,该系统包括服务端、及与所述服务端进行交互的一个以上的客户端。
[0034] 所述客户端包括:收发模块、应用包管理中心、程序文件上传模块、应用配置模块、 应用调用模块、程序文件加载模块、控件创建模块、API和运行空间设置模块、API接口模 块。
[0035] 所述收发模块,用于与服务器进行通讯和指令派发。其功能实施方法为当接收到 其他模块的通信请求时,所述收发模块将请求命令和用户会话信息一起通过Ajax技术向 服务端发送相关请求,并将接收到的反馈信息其通信请求模块。当接收到来自服务端的反 馈信息时,根据指令将请求传递到不同的模块中处理。信息传递格式为JS0N或XML。
[0036] 所述应用包管理模块,用于监控接收用户操作指令及对应用包信息进行管理。其 功能实施方法为在系统初始化时,通过所述收发模块向服务端发起已安装的应用包信息加 载请求,然后将应用包信息存于内存中。所述应用包管理模块还提交一个图形交互界面,以 便用户管理或运行应用,此外,也能接收通过所述API接口模块输入的操作指令,当接收到 操作指令时,便根据指令对应用包信息进行检测,然后配合其他模块或服务端进行处理。 [0037] 所述程序文件上传模块,用于在创建应用包时,上传程序文件。其功能实施方法 有两种方案:方案一为通过设置一个由于选择本地文件的〈input type=" file"〉文件控 件,并对该控件设置文件选取的事件监控,然后以HTML5的File API读取文件内容后通过 所述收发模块将文件内容上传到服务端。方案二为通过设置一个用于输入远程文件地址的 〈input type="url">地址控件和一个用于提交地址的〈button〉按钮控件,并对〈button〉 按钮控件设置点击的事件监控,然后读取〈input type=" url " >地址控件的内容后通过所 述收发模块发送到服务端。上述远程文件地址为HTTP协议或FTP协议的URL。
[0038] 所述应用配置模块,用于在创建应用包或安装应用对应用进行常规设置。其功能 实施方法为通过在图形交互界面中显示应用包信息设置表单,并指引用户按要求输入。当 用户提交表单时,对提交的信息进行检查,若输入错误,则提示错误信息;若输入正确,则通 过所述收发模块将应用包设置信息发送到服务端。
[0039] 所述应用调用模块,用于根据应用包信息并调用相关模块实现应用在客户端运 行。其功能实施方法为当接收到来自所述应用包管理模块的应用包信息及运行请求时,根 据应用包信息的命名空间判断要运行的应用是否在运行中,若要运行的应用已经在运行, 则切换到该应用的交互界面上,并完成应用的运行。若要运行的应用没有在运行,则依次调 用所述程序文件加载模块、所述控件创建模块、所述API和运行空间设置模块为应用创建 运行的各种环境,然后通过document, write的方法将从所述程序文件加载模块中返回的 主页或主程序代输入到由所述API和运行空间设置模块创建的运行空间中并运行。
[0040] 所述程序文件加载模块,用于应用在运行时加载主页或主程序代码,并通过密令 创建一个让应用程序能够自行加载扩展的应用程序文件的url路径;其功能实施方法为首 先通过所述收发模块向服务端发起加载主页或主程序代码和一个用于加载扩展应用程序 文件的密令,根据返回的密令,创建一个符合服务端解析并且包含应用命名空间和密令的 url路径(如:http://域名/package/密令/命名空间/),然后将主页或主程序代码和url 路径返回给所述应用调用模块。
[0041] 所述控件创建模块,用于在应用运行时创建如窗口、任务栏等相关交互界面控件。 其功能实施方法为通过Javascript对D0M的控制,创建控件的相关元素并利用CSS设置样 式,然后通过对相关元素设置事件(Events)进行用户输入的监控,使用户可以通过操作相 关控件进行对应用进行切换、退出等操作。
[0042] 所述API及运行空间设置模块,用于设置应用运行空间以及为应用设置一些运行 空间内的全局对象及方法,使应用可以调用本发明的方法以及其他系统的提供的方法。其 功能实施方法为通过创建一个〈iframe〉元素,并且让应用代码在〈iframe〉元素内运行, 这样可使应用程序中的Javascript变量和CSS样式不受其他应用干扰。然后在该运行 空间(〈iframe〉元素的contentWindow)下设置一些可以对其他系统及应用进行操作的 Javascript全局变量、对象和方法,应用运行过程中,可直接对这些变量、对象和方法进行 访问与操作,实现对其他系统及应用进行操作的功能。
[0043] 所述API接口模块,用于提供为第三方应用或系统提供一系列API接口命令来操 作本发明进行应用的安装、卸载、运行、关闭以及应用包生成。其功能实施方法为在客户端 初始化,所述API接口模块在Javascript作用域中创建一个全局对象,并在该对象中设置 一系列的公共方法。使在相同Javascript作用域下的第三方应用或系统通过调用所述全 局对象执行本发明安装、卸载、运行、关闭以及应用包生成等操作。
[0044] 所述服务端包括:通信接口、数据中心、客户端代码存储模块、应用包解析模块、应 用包创建模块、用户识别模块。
[0045] 所述通信接口,用于与客户端进行连接通信、建立会话机制和指令派发;其功能实 施方法为通过Nginx或Apache等HTTP/HTTPS代理服务器实现与客户端进行HTTP/HTTPS协 议的通信。通信时建立SESSION会话机制,向客户端派发SESSION ID (唯一的会话编码), 用于其它模块进行客户端或用户识别。当接收到请求时,根据指令将请求传递到不同的模 块中处理。
[0046] 所述数据中心,用于对应用包信息及其程序文件进行管理,也用于处理来自所述 通信接口的各种请求并返回请求结果。其功能实施方法为通过数据库和文件系统对应用包 信息和程序文件进行存储、更新、删除等操作来实现对应用包进行管理。每一条应用包信息 记录中,都有一个用户编号的字段,用于进行用户识别。
[0047] 所述客户端代码存储模块,客户端代码存储模块,用于存储客户端的Javascript 和CSS代码文件,并在客户端在浏览器运行时通过通信接口传输到浏览器中运行;其功能 实施方法为在需运行客户端的应用的HTML页面中,添加〈script〉和〈link〉标签,让浏览 器进行加载,或者通过Ajax的方式加载代码文本,并使用evel函数运行javascript代码, 通过创建〈style〉元素,应用CSS样式。在加载时,所述客户端代码存储模块会根据请求来 源和信息进行分析,返回不同版本的客户端代码,如适用于PC的客户端或适用于智能手机 的客户端。若加载请求中没有指定要加载的版本,则通过HTTP_USER_AGENT对浏览器进行 判断,自动分配最合适的版本。
[0048] 所述应用包创建模块,用于根据接收到的程序文件及应用包配置信息进行创建应 用包的临时文件。其功能实施方法为根据应用包配置信息,创建一个应用配置文件,其文件 格式为XML或JS0N,如:package, xml、package, json。然后加密程序文件中的Javascript 代码。最后讲配置文件和程序文件打包成一个临时压缩文件,并将该文件路径信息通过所 述通信接口返回到客户端中。
[0049] 所述应用包解析模块,用于对应用包进行解压,分析配置文件,检测程序文件,解 密Javascript代码。其功能实施方法为尝试对应用包进行解压,并将解压所得的文件放在 临时文件夹中后删除应用包。然后分析配置文件,若配置文件不存在或信息不完善,则通过 所述通信接口向客户端返回完善应用包配置信息的请求。然后将配置信息及解压所得的临 时文件夹目录路径传递给所述数据中心进行处理。
[0050] 所述用户识别模块,用于对根据会话信息进行用户识别,并返回用户编号。其功能 实施方法为通过SESSION ID (唯一的会话编号)作为标识创建一个有效时间为30分钟(有 效时间可按需求设置)的用户登录状态的信息记录,此信息记录保存了用户信息和用户登 录状态。每次客户端与服务端进行通信时,所述用户识别模块通过SESSION ID检索相应的 用户登录状态的信息记录,通过判断其是否存在和信息内容实现客户端与服务端通信时保 持用户登陆状态。此外,所述用户识别模块还提供API接口,使本发明可以作为一个组件并 与其它系统组合运行。
[0051] 参照图2所示,为本发明基于云计算的HTML5应用的打包、安装、卸载、运行方法及 系统中所述客户端初始化的流程示意图,通过以下步骤进行实施: 步骤一:加载客户端的Javascript和CSS代码并运行,可通过以下两种方法实现: 1、在需运行客户端的应用的HTML页面中,添加〈script〉和〈link〉标签,让浏览器进 行加载。
[0052] 2、通过Ajax的方式加载代码文本,并使用evel函数运行javascript代码,通过 创建〈style〉元素,应用CSS样式。
[0053] 在以上过程中,所述客户端代码存储模块会根据请求来源和信息进行分析,返回 不同版本的客户端代码,如适用于PC的客户端或适用于智能手机的客户端。若加载请求中 没有指定要加载的版本,则通过HTTP_USER_AGENT对浏览器进行判断,自动分配最合适的 版本。
[0054] 若客户端运行在基于HTML5的Native应用中(如智能手机中通过安装的本地应 用),此忽略次步骤。
[0055] 步骤二:加载应用包信息,此步骤又分成以下几个小步骤进行: 1、所述应用包管理模块通过所述收发模块向服务端发起加载应用包信息的请求。
[0056] 2、所述通信接口在接收到请求后,进行SESSION会话的检测,然后传递SESSION ID (唯一的会话编号)到所述用户识别模块中进行用户识别,并返回用户编号。
[0057] 3、所述通信接口将由所述用户识别模块返回的用户编号和获取应用包信息指令 一起发送到所述数据中心。
[0058] 4、所述数据中心在接收到请求后,从数据库中读取该用户编号下的所有应用包信 息,并按需求将其转换成JS0N或XML格式。然后将数据通过所述通信接口返回客户端中。
[0059] 5、所述收发模块在接收到返回的数据后,传递给应用包管理中心并保存。
[0060] 步骤三:创建图形交互界面和API接口,此步骤又分成以下几个小步骤进行: 1、通过所述应用包管理模块创建图形交互界面的相关HTML元素及控件,并对其设置 事件(Events)进行用户输入的监控。
[0061] 2、通过所述API接口模块在Javascript作用域中创建一个全局对象,并在该对象 中设置一系列的公共方法。
[0062] 结束。
[0063] 参照图3所示,为本发明基于云计算的HTML5应用的打包、安装、卸载、运行方法及 系统中创建应用包的流程示意图,通过以下步骤进行实施: 准备工作:用户须将所有程序文件以及应用图标文件打包到一个压缩文档中,并且在 压缩文档中保留程序的文件的相对目录和路径,支持ZIP、RAR、7Z等主流的压缩格式。
[0064] 步骤一:收到创建应用包指令,可通过以下两种方式接收: 1、用户通过由所述应用包管理模块创建的图形交互界面中直接输入创建应用包指令。
[0065] 2、用户对第三方应用或系统进行操作,第三方应用或系统通过所述API接口模块 向所述应用包管理中发起创建应用包指令。
[0066] 步骤二:选择并上传应用程序文件,此步骤有两种方案可供选择。
[0067] 方案一:上传本地程序文件,通过以下几个小步骤进行: 1、应用包管理中心向所述程序文件上传模块发出上传应用程序文件的指令,使其向用 户展示上传本地应用程序文件的交互界面。
[0068] 2、用户通过点击"选择文件"的按钮进行选择在本地计算机上应用程序文件的压 缩文档。
[0069] 3、所述程序文件上传模块通过HTML5的File API读取所选压缩文档内容,并将文 档内容和创建应用包指令通过所述收发模块上传到服务端。
[0070] 4、所述通信接口将接收到的应用程序文件压缩文档的内容传递给所述应用包创 建模块进行处理。
[0071] 5、所述应用包创建模块首先新建一个空白文件,然后将接收到的应用程序文件压 缩文档的内容写入到该空白文件中。
[0072] 方案二:上传远程程序文件,通过以下几个小步骤进行: 1、应用包管理中心向所述程序文件上传模块发出上传远程应用程序文件的指令,使其 向用户展示远程应用程序文件的交互界面。
[0073] 2、用户通过输入远程文件的HTTP或FTP地址:可直接在地址控件中输入,然后点 击按钮控件进行下一步操作;也可以通过选择网盘中的文件(存储于云端服务器上的文件, 可以通过API接口模块设置,在选择文件时调用,返回网盘文件的地址并自动输入到地址 控件中)进行输入,然后点击按钮控件进行下一步操作。
[0074] 3、所述程序文件从地址控件中读取地址信息,然后将地址信息和创建应用包指令 通过所述收发模块上传到服务端。
[0075] 4、所述通信接口将接收到的远程应用程序文件地址传递给所述应用包创建模块 进行处理。
[0076] 5、所述应用包创建模块通过HTTP协议或FTP协议将远程程序文件下载在到服务 器中。
[0077] 步骤三:遍历分析上传的程序文件,此步骤又分成以下几个小步骤进行: 1、所述应用包创建模块对上传将应用程序文件压缩文档解压到临时文件夹后删除。
[0078] 2、所述应用包创建模块对上述临时文件夹进行遍历,读取其所有子文件信息和子 文件夹信息。
[0079] 3、所述应用包创建模块从上述遍历结果中,对主页(default, html)或主程序 (default, js)文件进行检测,若不存在则通过通信接口向客户端返回错误信息。
[0080] 4、所述应用包创建模块创建一个以SESSION ID作为客户端识别标识的应用包创 建任务记录,用于保存当前任务状态以及应用包的相关信息。
[0081] 5、所述应用包创建模块将读取的文件、文件夹信息按要求转为为XML或JS0N格式 并通过通信接口返回到客户端中。
[0082] 步骤四:与用户交互完善应用包配置信息,此步骤又分成以下几个小步骤进行: 1、所述收发模块将返回的信息传递给所述应用包管理模块。
[0083] 2、所述应用包管理模块调用所述应用设置模块向用户展示应用配置输入表单的 交互界面。
[0084] 3、所述应用设置模块根据返回压缩包结构和文件、文件夹信息向用户展示应用包 结构的树状列表,并指示用户从中选出图标文件。
[0085] 4、所述应用设置模块通过交互界面向用户展示表单填写指引并指导用户填写配 置信息。
[0086] 5、所述应用设置模块将用户填写的应用包配置信息通过所述收发模块发送到服 务端。
[0087] 6、所述通信接口将接收到的应用包配置信息传递给所述应用包创建模块进行处 理。
[0088] 7、所述应用包创建模块根据SESSION ID从应用包安装任务记录中检索出相应的 记录,通过记录信息使客户端和服务端的应用包创建操作在不同的通信之间得以持续。
[0089] 步骤五:仓ll建配置文件和加密Javascript代码,此步骤又分成以下几个小步骤进 行: 1、所述应用包创建模块据根据应用包配置信息创建一个应用配置文件。
[0090] 2、所述应用包创建模根据设置要求在程序文件中提取Javascript文件(.js后缀 的文件)并读取其代码内容,加密代码并替换原代码,以达到保护程序源码的效果。
[0091] 步骤六:生成临时应用包和清除相关文件,此步骤又分成以下2个小步骤进行: 1、所述应用包创建模块创建一个压缩文档,然后将上述存放程序文件的临时文件中的 所有文件和目录和所述生成配置文件添加到压缩文档中。
[0092] 2、所述应用包创建模块清除在应用包创建过程中生成的临时文件。
[0093] 步骤七:向客户端返回新建应用包信息,此步骤又分成以下几个小步骤进行: 1、所述应用包创建模块将应用包创建成功信息和新的应用包信息(如:文件名称,文件 大小,路径,下载地址等)通过所述通信接口返回到客户端中。
[0094] 2、所述收发模块在收到由服务端返回的信息后,提交到应用包管理中心。
[0095] 3、所述收发模块通过图形交互界面向用户展示应用包创建成功信息、生成的应用 包的相关信息和应用包"下载"按钮。
[0096] 步骤八:用户通过点击图形界面中的"下载"按钮进行应用包文件下载。
[0097]结束。
[0098] 在上述创建应用包实施流程中,所生成的文件有效期为1天(默认情况下,也可按 需求调整有效期),逾期后将被系统自动删除; 在上述创建应用包实施流程中,所述Javascript代码的加密方式包括:无密匙加密、 有密匙加密和不加密三种方式。其加密算法不对第三方公开,通过加密后的应用包,仅限在 本发明中运行。
[0099] 在上述创建应用包实施流程中,所述配置文件中,包括以下应用包信息:发行商、 命名空间、应用类型、默认运行方式、应用图标文件路径(相对于应用包)、应用描述、界面 设置信息、应用程序版本、应用包版本等。其文件格式为XML或JS0N,如:package, xml、 package, json〇
[0100] 在上述创建应用包实施流程中,所述应用包为由HTML、CSS、JS、XML、JSON、图片 文件(GIF、PNG、JPG、BMP)、音频文件(OGG、MP3、WAV)、视频文件(OGG、MPEG4、FLV)、浏览插 件文件(SWF、XAP)等文件通过ZIP、RAR、7Z等格式进行压缩的压缩文档。在所述压缩文档 中,必须包含一个主页(default, html)或主程序文件(default, js)和图标文件(PNG格式, 包括 16X16、32X32、48X48、57X57、72X72、92X92、114X114、256X256 等多个尺寸,建 议将所有图标文件放在一个文件夹中,如:icons/)和所述应用包配置文件(package, xml、 package, json),同时保留程序目录结构。在程序中的相关文件调用,应使用相对路径。
[0101] 在本发明中,默认采用ZIP格式对应用程序进行压缩并以ZAP (Zipped Application Package)作为应用包的后缀,默认对Javascript进行无密匙加密,默认以 XML格式作为配置文件的格式。
[0102] 参照图4所示,为本发明基于云计算的HTML5应用的打包、安装、卸载、运行方法及 系统中安装应用到远程服务器上的流程示意图,通过以下步骤进行实施: 步骤一:收到安装应用包指令,可通过以下两种方式接收: 1、用户通过由所述应用包管理模块创建的图形交互界面中直接输入安装应用包指令。
[0103] 2、用户对第三方应用或系统进行操作,第三方应用或系统通过所述API接口模块 向所述应用包管理中发起安装应用包指令。
[0104] 步骤二:选择并上传应用包文件,此步骤有两种方案可供选择。
[0105] 方案一:上传本地应用包文件,通过以下几个小步骤进行: 1、应用包管理中心向所述程序文件上传模块发出上传应用包文件的指令,使其向用户 展示上传本地应用包文件的交互界面。
[0106] 2、用户通过点击"选择文件"的按钮进行选择在本地计算机上应用包。
[0107] 3、所述程序文件上传模块通过HTML5的File API读取所选应用包文件内容,并将 文件内容和创建应用包指令通过所述收发模块上传到服务端。
[0108] 方案二:上传远程应用包文件,通过以下几个小步骤进行: 1、应用包管理中心向所述程序文件上传模块发出上传应用程序文件的指令,使其向用 户展示远程应用程序文件的交互界面。
[0109] 2、用户通过输入远程文件的HTTP或FTP地址:可直接在地址控件中输入,然后点 击按钮控件进行下一步操作;也可以通过选择网盘中的文件(存储于云端服务器上的文件, 可以通过API接口模块设置,在选择文件时调用,返回网盘文件的地址并自动输入到地址 控件中)进行输入,然后点击按钮控件进行下一步操作。
[0110] 3、所述程序文件从地址控件中读取地址信息,然后将地址信息和创建应用包指令 通过所述收发模块上传到服务端。
[0111] 步骤三:在服务端中进行用户识别,此步骤又分成以下几个小步骤进行: 1、所述通信接口在应用安装的收请时,将SESSION ID传递给所述用户识别模块进行用 户识别。
[0112] 2、所述用户识别模块根据SESSION ID用户登录状态的信息记录中检索出相应的 信息,若存在记录并且信息记录中的登陆状态标记为已登陆,则读取其User ID (用户编 号)。
[0113] 3、所述用户识别模块将User ID返回给所述通信接口。
[0114] 步骤四:接收并保存应用包文件,所述通信接口将接收到的应用包文件的内容/ 地址和应用包安装指令以及由所述用户识别模块返回的User ID传递给所述应用包解析模 块,此时,按照步骤二中选择的方案进行操作: 若步骤二中选择了方案一,所述应用包解析模块新建一个空白文件,然后将接收到的 应用包文件的内容写入到该空白文件中。
[0115] 若步骤二中选择了方案二,所述应用包解析模块根据接收到的远程应用包文件地 址通过HTTP协议或FTP协议将远程应用包文件下载到服务器中。
[0116] 步骤五:解析应用包,此步骤又分成以下几个小步骤进行: 1、所述应用包解析模块解压应用包文件并将解压所得的文件保存到一个临时文件夹 中。
[0117] 2、所述应用包解析模块删除应用包文件。
[0118] 3、所述应用包解析模块遍历临时文件夹中下的子文件与子文件夹,检测符合以下 要求: (1)是否存在配置文件(package, xml 或 package, j son )。
[0119] (2)是否存在主页或主程序文件(default, html或default, js)。
[0120] 4、所述应用包解析模块读取并分析配置文件,检测其信息是按规定设置在以下必 要信息:命名空间、应用类型、发行商、应用描述、应用程序版本。
[0121] 5、通过所述应用包解析模块从配置文件中得出Javascript文件是否被加密,若 被加密则从程序文件中提取Javascript文件(.js后缀的文件)并读取其代码内容,解码代 码并替换原代码。
[0122] 若应用包不符合上述3、4中的规定,则停止执行并清除安装过程中产生的文件, 然后返回错误信息。
[0123] 7、所述应用包解析模块将检测结果和从配置文件中读取的应用包配置信息传递 给所述数据中心,然后进行下一步骤。
[0124] 步骤六:与用户交互完善配置信息(非必要步骤),用于在安装过程中进行对应用 环境进行重新设置,若忽略此步骤,则默认方式进行,此步骤又分成以下几个小步骤进行: 1、所述数据中心创建一个以SESSION ID作为客户端识别标识的应用包安装任务记录, 用于保存任务状态、应用包配置信息、由应用包解压所得的程序文件信息。
[0125] 2、所述数据中心通过收发接口向客户端返回进行应用包配置的请求。
[0126] 3、所述收发模块将返回的信息传递给所述应用包管理模块。
[0127] 4、所述应用包管理模块调用所述应用设置模块向用户展示应用配置输入表单的 交互界面。
[0128] 5、所述应用设置模块通过交互界面向用户展示表单填写指引并指导用户填写配 置信息。
[0129] 6、所述应用设置模块将用户填写的应用包配置信息通过所述收发模块发送到服 务端。
[0130] 7、通过步骤三的方法重新进行用户识别。
[0131] 8、所述通信接口将接收到的应用包配置信息传递给所述数据中心进行处理。
[0132] 9、所述数据中心根据SESSION ID从应用包安装任务记录中检索出相应的记录,通 过记录信息使客户端和服务端的应用包安装操作在不同的通信之间得以持续。
[0133] 步骤七:保存应用包信息及程序文件,此步骤又分成以下几个小步骤进行: 1、所述数据中心根据由配置文件所得的命名空间对数据库进行检索,若已经存在该命 名空间下的应用,则删除原有的数据库信息以及程序文件。
[0134] 2、所述数据中心为当前安装的应用注册一个唯一的APP ID,用于日后对应用进行 管理与运行时进行识别。
[0135] 3、所述数据中心将由所述步骤五中由应用包解压所的文件移至保存程序文件的 目录下。
[0136] 4、所述数据中心将应用包的基本信息、应用包配置信息和程序文件信息保存到数 据库中。
[0137] 步骤八:向客户端返回新的应用信息,此步骤又分成以下几个小步骤进行: 1、所述数据中心将新的应用包信息通过通信接口返回到客户端中。
[0138] 2、所述收发模块将返回的新应用包信息传递给所述应用包管理模块。
[0139] 4、所述应用包管理模块将新应用包信息保存,并更新图形交互界面中的应用管理 列表。
[0140] 步骤九:所述应用包管理模块通过图形交互界面向用户提示应用包安装结果信 肩、。
[0141] 结束。
[0142] 在上述创建应用包实施流程中,除上述由本发明创建的应用包以外,本发明还支 持安装由用户自行创建的未对Javascript文件进行加密的应用包。在创建时,必须遵守以 下规则: 1、采用ZIP、RAR、7Z格式对程序文件进行打包压缩。
[0143] 2、程序文件中必须包含主页(default, html)或主程序文件(default, js)。
[0144] 3、应用包中必须包含采用标准格式的应用包配置文件(package, xml、package, json),存于应用包的主目录下,文件中必须设置以下项内容:发行商、命名空间、应用类型、 应用描述、应用程序版本。
[0145] 4、应用包可包含中应用的图标,由多个尺寸的PNG格式的图标文件组成并存放在 icons/ (相对路径)目录中,同时以尺寸作为图标文件名称,如:16.png,32.png等。
[0146] 参照图5所示,为本发明基于云计算的HTML5应用的打包、安装、卸载、运行方法及 系统中卸载在远程服务器上的应用包的流程示意图,通过以下步骤进行实施: 步骤一:收到卸载应用包指令,可通过以下两种方式接收: 1、用户通过由所述应用包管理模块创建的图形交互界面中直接输入卸载应用包指令。
[0147] 2、用户对第三方应用或系统进行操作,第三方应用或系统通过所述API接口模块 向所述应用包管理中发起卸载应用包指令。
[0148] 步骤二:向服务端发出卸载应用的请求,由所述应用包管理模块通过所述收发模 块向服务端发送要卸载的应用包APP ID和应用包卸载的请求。
[0149] 步骤三:在服务端中进行用户识别,此步骤又分成以下几个小步骤进行: 1、所述通信接口在应用安装的收请时,将SESSION ID传递给所述用户识别模块进行用 户识别。
[0150] 2、所述用户识别模块根据SESSION ID用户登录状态的信息记录中检索出相应的 信息,若存在记录并且信息记录中的登陆状态标记为已登陆,则读取其User ID (用户编 号)。
[0151] 3、所述用户识别模块将User ID返回给所述通信接口。
[0152] 步骤四:删除应用配置信息及程序文件,此步骤又分成以下几个小步骤进行: 1、所述通信接口将接收到的APP ID和应用包卸载指令以及由所述用户识别模块返回 User ID传递给所述数据中心。
[0153] 2、所述数据中心通过以APP ID作为标识从数据库中检索相关的应用包信息,然后 判断该应用包信息中的User ID是否与从所述用户识别模块中所得的User ID -致。若没 有检索出结果或User ID不一致,则通过所述通信接口向返回错误信息。
[0154] 3、所述数据中心根据由数据库中读取的应用包信息中获取当前应用下的所有应 用程序文件路径,并根据文件路径删除当前应用下的所有应用程序。
[0155] 4、所述数据中心通过以APP ID作为标识删除数据库的应用包信息。
[0156] 步骤五:向客户端返回应用卸载结果信息,此步骤又分成以下几个小步骤进行: 1、所述数据中心将应用卸载结果信息通过通信接口返回到客户端中。
[0157] 2、所述收发模块将返回的应用卸载结果信息传递给所述应用包管理模块。
[0158] 3、所述应用包管理模块对应用卸载结果信息进行判断,若卸载成功,根据APP ID 从保存的应用包信息中删除相关记录,并更新图形交互界面中的应用管理列表。
[0159] 步骤六:所述应用包管理模块通过图形交互界面向用户提示应用包卸载结果信 肩、。
[0160] 结束。
[0161] 参照图6所示,为本发明基于云计算的HTML5应用的打包、安装、卸载、运行方法及 系统中在客户端中加载并运行应用的流程示意图,通过以下步骤进行实施: 步骤一:收到运行应用指令,可通过以下两种方式接收: 1、用户通过由所述应用包管理模块创建的图形交互界面中直接输入运行应用指令和 要运行的应用的命名空间。
[0162] 2、用户对第三方应用或系统进行操作,第三方应用或系统通过所述API接口模块 向所述应用包管理中发起运行应用指令和要运行的应用的命名空间。
[0163] 步骤二:据命名空间获取应用包信息,所述应用包管理模块对存储的应用包信息 数组进行遍历并对比命名空间,若不存在相应的应用包信息,则表示该命名空间下的应用 未安装。若存在相应的应用包信息,则读取其信息并进入下一步。
[0164] 步骤三:所述应用包管理模块通过所述收发模块向服务端发送APP ID和应用运 行指令。
[0165] 步骤四:在服务端中进行用户识别,此步骤又分成以下几个小步骤进行: 1、所述通信接口在应用安装的收请时,将SESSION ID传递给所述用户识别模块进行用 户识别。
[0166] 2、所述用户识别模块根据SESSION ID用户登录状态的信息记录中检索出相应的 信息,若存在记录并且信息记录中的登陆状态标记为已登陆,则读取其User ID (用户编 号)。
[0167] 3、所述用户识别模块将User ID返回给所述通信接口。
[0168] 步骤五:服务端应用信息检测,此步骤又分成以下几个小步骤进行: 1、所述通信接口将接收到的APP ID和程序文件加载指令以及由所述用户识别模块返 回User ID传递给所述数据中心。
[0169] 2、所述数据中心通过以APP ID作为标识从数据库中检索相关的应用包信息,然后 判断该应用包信息中的User ID是否与从所述用户识别模块中所得的User ID -致。若没 有检索出结果或User ID不一致,则通过所述通信接口向返回错误信息。
[0170] 3、所述数据中心通从数据库中读取相应的应用包信息。
[0171] 步骤六:创建应用程序文件加载密令,此步骤又分成以下2个小步骤进行: 1、所述数据中心随机生成一个由英文字母与数字组成的16位字符串并将其作为密 令。
[0172] 2、所述数据中心创建一个以密令作为客户端识别标识的应用程序加载任务记录, 用于应用命名空间以及应用包信息。
[0173] 步骤七:返回加载密令以及主页/程序代码,此步骤又分成以下2个小步骤进行: 1、所述数据中心根据由数据库中读取的应用包信息中,获取应用中应用主页/程序文 件的保存路径,然后根据路径读取主页/程序文件的代码内容。
[0174] 2、所述数据中心将主页/程序文件的代码内容和加载密令通过通信接口返回到 客户端。
[0175] 3、所述收发模块将返回的信息传递给所述应用包管理模块。
[0176] 步骤八:根创建支持应用运行的相关控件,此步骤又分成以下2个小步骤进行: 1、所述应用包管理模块向所述应用调用模块传递应用包信息并发起应用运行的请求。
[0177] 2、所述应用调用模块从应用包信息中提取应用界面设置信息,然后根据界面设置 调用所述控件创建模块进行包括应用窗口(必要)、任务栏按钮(选要)、通知图标(选要)、应 用控制菜单(选要)等控件的创建。
[0178] 步骤九:创建运行空间并设置系统API,此步骤又分成以下几个小步骤进行: 1、所述API及运行空间设置模块通过D0M创建一个〈iframe〉兀素并通过sandbox属 性控制其权限,然后将其作为子元素添加到由步骤八创建的窗口控件下。
[0179] 2、设置当前应用的BaseURL,通过所述API及运行空间设置所述 〈iframe〉元素的 src值为http://当前域名/package/密令/命名空间/。
[0180] 3、所述API及运行空间设置模块在该运行空间(〈iframe〉元素的contentWindow) 下设置一些可以对其他系统及应用进行操作的Javascript全局变量、对象和方法。
[0181] 步骤十:解析主页代码或运行主程序,所述应用调用模块将主业/程序代码通过 document, write的方法将代码写入到运行空间(〈iframe〉元素的contentWindow)中的文 档内即可运行解析主页代码或运行主程序。
[0182] 步骤十一:通过加载密令加载扩展文件,此步骤又分成以下几个小步骤进行: 1、当应用主业或主程序运行后,HTML5环境会根据程序设计自动对其他程序文件进行 加载,被加载的程序文件URL为BaseURL+程序文件与应用包的相对,如:http://当前域名 /package/密令/命名空间/xxx. js。
[0183] 2、所述通信接口,通过rewrite技术,以正则识别所有http://当前域名/ package/密令/命名空间/文件名格式的URL,然后分析该URL并提取密令、命名空间和 文件名。
[0184] 3、所述通信接口将分析URL所得的密令、命名空间和文件名传递给所述数据中 心。
[0185] 4、所述数据中心以密令作为标识,从应用程序加载任务记录中检索出相应的记 录,若无记录或记录中的命名空间与URL分析中提取的命名空间不一致,则通过所述通信 接口返回错误信息。
[0186] 5、所述数据中心从应用程序加载任务记录中检索出于从URL分析所得的文件名 一致应用程序文件信息,然后根据该应用程序文件信息中的文件实际保存路径去读取该文 件的内容。
[0187] 6、所述数据中心通过所述通信接口将读取的程序文件内容返回到客户端中。
[0188] 步骤十二:运行HTML5应用。此步骤由应用程序在HTML5环境下自行进行。
[0189] 结束。
[0190] 在上述运行应用实施流程中,为了方便用户对应用的识别与调用,除通过APP ID 以外,本发明亦可采用命名空间作为程序运行的标识。
[0191] 在上述运行应用实施流程中,所述加载密令的作用为进行客户端识别以及加强应 用源代码的保护。尽管通过SESSION ID也能起到客户端识别的作用,但由于SESSION ID是 保存在浏览器或运行本发明应用的COOKIE中,因此也能被在同一域名下运行的应用访问, 这就导致在客户端运行的应用可以轻易地伪装客户端去下载其他应用的程序文件。
[0192] 参照图7所示,为本发明基于云计算的HTML5应用的打包、安装、卸载、运行方法及 系统中关闭在客户端运行的应用流程示的意图,通过以下步骤进行实施: 步骤一:收到关闭应用指令,可通过三种方式接收: 1、用户通过由所述应用包管理模块创建的图形交互界面中直接输入关闭应用指令。
[0193] 2、用户对第三方应用或系统进行操作,第三方应用或系统通过所述API接口模块 向所述应用包管理中发起关闭应用指令。
[0194] 3、用户通过对支持应用运行的相关控件进行操作实现输入关闭应用指令,如:点 击应用窗口的关闭按钮。
[0195] 步骤二:触发应用程序的关闭事件,所述应用程序调用模块通过API向应用程序 触发关闭事件,让应用程序执行关闭前的处理。
[0196] 步骤三:销毁应用运行空间及相关控件,此步骤又分成以下几个小步骤进行: 1、所述应用程序调用模块调用所述API及运行空间设置模块对〈iframe〉元素的 contentWindow下的所有变量、方法和对象进行删除或将其设为null,然后删除〈iframe〉 元素。
[0197] 2、所述应用程序调用模块调用所述控件创建模块对相关控件的HMTL元素进行删 除,然后删除相关的控件对象或将其设置为null。
[0198] 结束。
[0199] 本发明的基于云计算的HTML5应用的打包、安装、卸载、运行方法及系统,该系统 包括服务端,及与所述服务端进行交互的一个以上的客户端;所述服务端包括通信接口、数 据中心、客户端代码存储模块、应用包解析模块、应用包创建模块、用户识别模块、数据库、 临时应用程序文件和应用程序文件;所述客户端包括收发模块、程序文件上传模块、应用配 置模块、应用调用模块、程序文件加载模块、控件创建模块、API接口模块和API及运行空 间设置模块。本发明解决了目前网络平台只能保存数据和文件却不能自由安装、定制第三 方应用等不足,让开发者(尤其对于个人开发者)可以通过打包应用后以安装包文件的形式 派发给用户,降低技术难度,减少服务器成本;让用户可把应用安装在云端服务器上,使用 时立即加载到本地运行,不仅可以节省了本地硬盘的空间,还能起到一次安装,到处可用的 作用,实现让用户在基于云计算的操作系统或者同一网络平台上通过简单、便捷的方法对 HTML5应用进行管理与运行。
[0200] 上述实施例,只是本发明的一个实例,并不是用来限制本发明的实施与权利范围, 凡与本发明权利要求所述内容相同或等同的技术方案,均应包括在本发明保护范围内。
【权利要求】
1. 一种基于云计算的HTML5应用的打包、安装、卸载、运行方法及系统,其特征在于:该 系统包括服务端,及与所述服务端进行交互的一个以上的客户端。
2. 根据权利要求1所述的基于云计算的HTML5应用的打包、安装、卸载、运行方法及 系统,其特征在于:所述客户端包括:收发模块,用于与服务器进行通讯和指令派发;应用 包管理中心,用于对应用包信息进行管理和监控接收用户操作指令;程序文件上传模块,用 于在创建应用包时,上传程序文件;应用配置模块,用于在创建应用包或安装应用对应用进 行常规设置;应用调用模块,用于根据应用包信息并调用相关模块实现应用在客户端运行; 程序文件加载模块,用于应用在运行时加载主页或主程序代码,并通过密令创建一个让应 用程序能够自行加载扩展的应用程序文件的url路径;控件创建模块,用于在应用运行时 创建如窗口、任务栏相关交互界面控件; 所述客户端还包括API及运行空间设置模块,用于通过iframe元素创建让应用能独立 运行的运行空间,并在运行空间中设置一系列的全局函数或对象,使应用在运行时得以调 用客户端预算的API方法; 所述系统不仅可以作为一个独立的系统来运行,还能作为一个组件应用到其他Web应 用或系统中,所述客户端还应包括API接口模块,用于提供为第三方应用或系统提供一系 列API接口命令来操作,进行应用的安装、卸载、运行、关闭以及应用包的生成。
3. 根据权利要求1所述的基于云计算的HTML5应用的打包、安装、卸载、运行方法及系 统,其特征在于:所述服务端包括:通信接口,用于与客户端进行连接通信、建立会话机制 和指令派发;数据中心,用于对应用包信息及其程序文件进行管理,也用于处理来自所述通 信接口的各种请求并返回请求结果;客户端代码存储模块,用于存储客户端的Javascript 和CSS代码文件,并在客户端在浏览器运行时通过通信接口传输到浏览器中运行;应用包 解析模块,用于对应用包进行解压,分析配置文件,检测程序文件,解密Javascript代码; 应用包创建模块,用于根据接收到的程序文件及应用包配置信息进行创建应用包的临时文 件; 所述服务端包括用户识别模块,用于对根据会话信息进行用户识别,并返回用户编号, 让所述应用包管理模块得以根据用户编号对应用进行区分;用户识别模块还提供API接 口,使所述应用系统可以作为一个组件并与其它系统组合运行; 所述服务端的运行环境还包括:数据库,用户存储应用包的基本信息、配置信息、运行 信息;文件系统,用于对应用程序文件进行储存、管理及读写。
4. 根据权利要求1所述的基于云计算的HTML5应用的打包、安装、卸载、运行方法及系 统,其特征在于:该运行方法包括:创建应用包、安装应用到远程服务器上、卸载在远程服 务器上的应用、在客户端中加载并运行应用、关闭在客户端运行的应用。
5. 根据权利要求4所述的基于云计算的HTML5应用的打包、安装、卸载、运行方法及系 统,其特征在于:所述创建应用包的实施过程包括以下步骤:(1)用户提交应用包创建指令 到所述应用包管理模块;(2)所述应用包管理模块调用所述应用程序上传模块向用户展示 上传应用程序文件的交互界面,用户选择并上传应用程序文件;(3)所述通信接口将接收 的到程序文件传递给所述应用包创建模块,所述应用包创建模块进行解压并遍历上传的应 用文件,所述应用包创建模块通过所述通信接口向客户和所述收发模块向所述应用配置模 块向用户发起进行应用配置的请求,并通过交互界面要求用户填写应用配置信息,然后所 述应用配置模块通过所述收发模块和所述通信接口向所述应用包创建模块发送应用配置 信息;(4)所述应用包创建模块进行应用配置文件的创建,Javascript文件代码的加密以 及临时应用包的创建;(5)所述应用包创建模块通过所述通信接口和所述收发模块向所述 应用包管理模块返回应用包信息;(6)所述应用包管理模块向用户展示下载应用包的交互 界面并向用户指示进行应用包的下载; 所述Javascript代码的加密方式包括:无密匙加密、有密匙加密和不加密三种方式; 其加密算法不对第三方公开,通过Javascript代码加密后的应用包,仅限在所述系统中运 行; 所述配置文件包括以下应用包信息:发行商、命名空间、应用类型、默认运行方式、应用 图标文件路径、应用描述、界面设置信息、应用程序版本、应用包版本,其文件格式为XML或 JSON; 所述创建的应用包文件只在所述服务端保存一段有限时间(如:24小时),逾期后将被 系统自动删除; 所述应用包为由HTML、CSS、JS、XML、JSON、图片文件、音频文件、视频文件、浏览插件文 件通过ZIP、RAR、7Z格式进行压缩的压缩文档;在所述压缩文档中,必须包含一个主页或主 程序文件包配置文件。
6. 根据权利要求4所述的基于云计算的HTML5应用的打包、安装、卸载、运行方法及系 统,其特征在于:所述安装应用到远程服务器上的实施过程包括以下步骤:(1)用户提交应 用包创建指令到所述应用包管理模块;(2)所述应用包管理模块调用所述应用程序上传模 块向用户展示上传应用程序文件的交互界面,用户选择并上传应用程序文件;(3)所述通 信接口调用所述用户登录管理模块通过SESSION会话机制进行服务端的用户识别;(4)所 述应用包分析模块解压应用包,然后进行分析及解密;(5)向客户端返回请求并调用所述 应用配置模块与用户交互完善配置信息,然后将配置信息通过所述收发模块和通信接口提 交到所述数据中心;(6)所述数据中心利用数据保存应用包信息和利用文件系统存储程序 文件;(7)所述数据中心通过通信接口向客户端返回新的应用信息;(8)所述应用包管理模 块通过交互界面向用户提示应用包安装完成信息; 所述系统还支持安装由用户自行创建的未对Javascript文件进行加密的应用包。
7. 根据权利要求4所述的基于云计算的HTML5应用的打包、安装、卸载、运行方法及系 统,其特征在于:所述卸载在远程服务器上的应用的实施过程包括以下步骤:(1)用户提交 应用包卸载指令到所述应用包管理模块;(2)所述应用包管理模块通过所述收发模块向服 务端发送要卸载的应用包APP ID和应用包卸载请求;(3)所述通信接口调用所述用户登录 管理模块通过SESSION会话机制进行服务端的用户识别;(4)所述数据中心删除数据库中 相应的应用包信息以及程序文件;(5)所述数据中心通过通信接口向客户端返回应用包卸 载结果信息;(6)所述应用包管理模块通过交互界面向用户提示应用包卸载结果信息。
8. 根据权利要求4所述的基于云计算的HTML5应用的打包、安装、卸载、运行方法及系 统,其特征在于:所述客户端中运行应用的实施过程包括以下步骤:(1)用户提交应用运行 指令和要运行应用的命名空间到所述应用包管理模块;(2)所述应用包管理模块根据命名 空间获取应用包信息;(3)所述应用包管理模块通过所述收发模块向服务端发送要运行应 用的APP ID和应用运行请求;(4)所述通信接口调用所述用户登录管理模块通过SESSION 会话机制进行服务端的用户识别;(5)所述数据中心根据APP ID从数据库中检索出相应的 应用包信息并进行检测;(6)所述数据中心创建应用程序文件加载密令及程序文件加载任 务记录;(7)所述数据中心读取返回主页/程序代码的代码内容并将其与加载密令通过所 述通信接口返回到客户端;(8)所述应用调用模块调用所述控件创建模块进行创建支持应 用运行的相关控件;(9)所述应用调用模块调用所述API及运行空间设置模块进行创建运 行空间并设置系统API ;(10)所述应用调用模块将主业/程序代码通过document, write的 方法将代码写入到运行空间中的文档内进行运行解析主页代码或运行主程序;(11)应用 在HTML5环境下运行时将自动想服务端发起加载扩展文件的请求,所述通信接口通过URL 分析然后读取相应的程序文件内容并向客户端返回;(12)运行HTML5应用; 所述客户端中运行应用的实施过程中,为了方便用户对应用的识别与调用,除通过APP ID以外还可采用命名空间作为程序运行的标识; 所述加载密令的作用为进行客户端识别以及加强应用源代码的保护。
9. 根据权利要求8所述的基于云计算的HTML5应用的打包、安装、卸载、运行方法及系 统,其特征在于:所述运行空间用于避免应用中的Javascript代码和CSS样式与其他应用 或客户端程序的Javascript代码和CSS样式出现冲突而造成错误;减少应用不必要的权限 以提高安全性;使应用在运行过程中,能够在HTML5环境下自行加装扩展的程序文件;通 过〈iframe〉元素下contentWindow模拟,对contentWindow下的原有全局变量进行重新设 置,以提高安全性,然后通过设置〈iframe〉元素 src值为以http://域名/package/密令 /命名空间/格式的URL,并以其作为HTML5应用的BaseURL ;在HTML5的环境下,应用可根 据BaseURL+与应用主页的相对文件路径(如:http://域名/package/密令/命名空间/ XXX. js)进行程序文件的加载。
10. 根据权利要求4所述的基于云计算的HTML5应用的打包、安装、卸载、运行方法及系 统,其特征在于:关闭在所述客户端运行的应用的实施过程包括以下步骤:(1)用户提交关 闭运行指令和要关闭应用的命名空间到所述应用包管理模块;(2)所述应用程序调用模块 通过API向应用程序触发关闭事件,让应用程序执行关闭前的处理;(3)所述应用程序调用 模块分别所述API及运行空间和调用所述控件创建模块对运行空间及相关控件进行删除。
【文档编号】G06F9/445GK104216700SQ201310407905
【公开日】2014年12月17日 申请日期:2013年9月10日 优先权日:2013年9月10日
【发明者】侯金涛 申请人:侯金涛
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1