首页> 中国专利> 基于云计算的HTML5应用的打包、安装、卸载、运行方法及系统

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

摘要

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

著录项

  • 公开/公告号CN104216700A

    专利类型发明专利

  • 公开/公告日2014-12-17

    原文格式PDF

  • 申请/专利权人 侯金涛;

    申请/专利号CN201310407905.6

  • 发明设计人 侯金涛;

    申请日2013-09-10

  • 分类号G06F9/44(20060101);G06F9/445(20060101);

  • 代理机构

  • 代理人

  • 地址 523000 广东省深圳市罗湖区东门路文锦路交叉口怡泰大厦B座2314

  • 入库时间 2023-12-17 03:00:17

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-08-19

    未缴年费专利权终止 IPC(主分类):G06F 9/44 专利号:ZL2013104079056 申请日:20130910 授权公告日:20170503

    专利权的终止

  • 2017-05-03

    授权

    授权

  • 2017-04-05

    著录事项变更 IPC(主分类):G06F9/44 变更前: 变更后: 申请日:20130910

    著录事项变更

  • 2015-01-07

    实质审查的生效 IPC(主分类):G06F9/44 申请日:20130910

    实质审查的生效

  • 2014-12-17

    公开

    公开

说明书

技术领域

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

背景技术

随着互联网的飞速发展,浏览器不再仅仅用来表示Web内容, 随着HTML5的技术的问世,Web进入了一个成熟的应用平台,在HTML 5平台上,视频,音频,图像,动画,以及人机交互和人网交互都被标准化,这让具有无需安装、开发成本低、跨平台和跨终端、迭代更新容易等优势的HTML5应用使其有很大的可能性成为未来的天下。然而遗憾的是,必须有服务器在云端提供服务才能让HTML5应用优势得以充分体现,这便导致了我们在使用各种在线应用的同时,还要登陆不同网络平台。此外,对于更多的个人开发者,昂贵服务器成本让人望而却步。

针对目前网络平台只能保存数据和文件却不能自由安装、定制第三方应用等不足,研发一种基于云计算的HTML5应用的打包、安装与卸载、运行与关闭的方法及系统,让开发者(尤其对于个人开发者)可以通过打包应用后以安装包文件的形式派发给用户,既降低技术难度,又减少了服务器成本;让用户把应用安装在云端服务器上,使用时立即加载到本地运行,不仅可以节省了本地硬盘的空间,还能起到一次安装,到处可用的作用。此外,还可让用户在一个网络平台上统一管理和使用各种HTML5应用,满足不同用户各种需求,也减少了因为使用不同的应用而登录不同的平台而导致的麻烦。

发明内容

为了迎合互联网技术及云计算领域的发展需求,针对目前网络平台只能保存数据和文件却不能自由安装、定制第三方应用等不足,提供一种基于云计算的HTML5应用(以下简称应用)的打包、安装与卸载、运行与关闭的方法及系统,使应用由本地移到云端,实现让用户在基于云计算的操作系统或者同一网络平台上通过简单、便捷的方法对应用进行管理与运行,让应用起到一次安装,到处可用的作用。本发明是通过以下技术方案来实现的:

      一种基于云计算的HTML5应用的打包、安装、卸载、运行、关闭的方法及系统,该系统包括服务端,及与所述服务端进行交互的一个以上的客户端。

进一步地,所述客户端包括:收发模块,用于与服务器进行通讯和指令派发;应用包管理中心,用于对应用包信息进行管理和监控接收用户操作指令;程序文件上传模块,用于在创建应用包或安装应用时,上传程序文件;应用配置模块,用于在创建应用包或安装应用对应用进行常规设置;应用调用模块,用于根据应用包信息并调用相关模块实现应用在客户端运行;程序文件加载模块,用于应用在运行时加载主页或主程序代码,并通过密令生成一个让应用程序能够自行加载扩展的应用程序文件的url路径;控件创建模块,用于在应用运行时创建如窗口、任务栏等相关交互界面控件。

为了让应用程序不受其他程序的Javascript代码或CSS样式干扰,以及让应用可以调用客户端系统的方法和加强应用功能,所述客户端还包括API及运行空间设置模块,用于通过创建iframe元素让应用能独立运行的运行空间,并在运行空间中设置一系列的全局函数或对象,使应用在运行时得以调用客户端的API方法。

所述系统不仅可以作为一个独立的系统来运行,还能作为一个组件应用到其他Web应用或系统中,所述客户端还应包括API接口模块,用于提供为第三方应用或系统提供一系列API接口命令来操作,进行应用的安装、卸载、运行、关闭以及应用包的生成。

 进一步地,所述服务端包括:通信接口,用于与客户端进行连接通信、建立会话机制和指令派发;数据中心,用于对应用包信息及其程序文件进行管理,也用于处理来自所述通信接口的各种请求并返回请求结果;客户端代码存储模块,用于存储客户端的Javascript和CSS代码文件,并在客户端在浏览器运行时通过通信接口把客户端程序代码传输到浏览器中运行;应用包解析模块,用于对应用包进行解压,分析配置文件,检测程序文件,解密Javascript代码;应用包创建模块,用于根据接收到的程序文件及应用包配置信息进行创建应用包的临时文件。

    所述服务端包括用户识别模块,用于对根据会话信息进行用户识别,并返回用户编号,让所述数据中心得以根据用户编号对应用进行区分;用户识别模块还提供API接口,使所述应用系统可以作为一个组件并与其它系统组合运行。

    所述服务端的运行环境还包括:数据库,存储用户应用包的基本信息、配置信息,运行信息;文件系统,用于对应用程序文件进行储存、管理及读写。

  进一步地,该运行方法包括:创建应用包、安装应用到远程服务器上、卸载在远程服务器上的应用、在客户端中加载并运行应用,关闭在客户端运行的应用。

  进一步地,所述创建应用包的实施过程包括以下步骤:(1)用户提交应用包创建指令到所述应用包管理模块;(2)所述应用包管理模块调用所述应用程序上传模块向用户展示上传应用程序文件的交互界面,用户选择并上传应用程序文件;(3)所述通信接口将接收的到程序文件传递给所述应用包创建模块,所述应用包创建模块进行解压并遍历上传的应用文件,所述应用包创建模块通过所述通信接口向客户和所述收发模块向所述应用配置模块向用户发起进行应用配置的请求,并通过交互界面要求用户填写应用配置信息,然后所述应用配置模块通过所述收发模块和所述通信接口向所述应用包创建模块发送应用配置信息;(4)所述应用包创建模块进行应用配置文件的创建,Javascript文件代码的加密以及临时应用包的创建;(5)所述应用包创建模块通过所述通信接口和所述收发模块向所述应用包管理模块返回应用包信息;(6)述应用包管理模块向用户展示下载应用包的交互界面并向用户指示进行应用包的下载。

     所述Javascript代码的加密方式包括:无密匙加密、有密匙加密和不加密三种方式;其加密算法不对第三方公开,通过Javascript代码加密后的应用包,仅限在所述系统中运行。

     所述配置文件包括以下应用包信息:发行商、命名空间、应用类型、默认运行方式、应用图标文件路径、应用描述、界面设置信息、应用程序版本、应用包版本等,其文件格式为XML或JSON。

  所述创建的应用包文件只在所述服务端保存一段有限时间(如:24小时),逾期后将被系统自动删除;

         所述应用包为由HTML、CSS、JS、XML、JSON、图片文件、音频文件、视频文件、浏览插件文件等文件通过ZIP、RAR、7Z等格式进行压缩的压缩文档;在所述压缩文档中,必须包含一个主页或主程序文件包配置文件。

 进一步地, 所述安装应用到远程服务器上的实施过程包括以下步骤:(1)用户提交应用包创建指令到所述应用包管理模块;(2)所述应用包管理模块调用所述应用程序上传模块向用户展示上传应用程序文件的交互界面,用户选择并上传应用程序文件;(3)所述通信接口调用所述用户登录管理模块通过SESSION会话机制进行服务端的用户识别;(4)所述应用包分析模块解压应用包,然后进行分析及解密;(5)向客户端返回请求并调用所述应用配置模块与用户交互完善配置信息,然后将配置信息通过所述收发模块和通信接口提交到所述数据中心;(6)所述数据中心利用数据保存应用包信息和利用文件系统存储程序文件;(7)所述数据中心通过通信接口向客户端返回新的应用信息;(8)所述应用包管理模块通过交互界面向用户提示应用包安装完成信息。

 除上述由所述系统创建的应用包以外,所述系统还支持安装由用户自行创建的未对Javascript文件进行加密的应用包。

进一步地,所述卸载在远程服务器上的应用的实施过程包括以下步骤:(1)用户提交应用包卸载指令到所述应用包管理模块;(2)所述应用包管理模块通过所述收发模块向服务端发送要卸载的应用包APP ID和应用包卸载请求;(3)所述通信接口调用所述用户登录管理模块通过SESSION会话机制进行服务端的用户识别;(4)所述数据中心删除数据库中相应的应用包信息以及程序文件;(5)所述数据中心通过通信接口向客户端返回应用包卸载结果信息;(6)所述应用包管理模块通过交互界面向用户提示应用包卸载结果信息。

 进一步地, 所述在客户端中加载并运行应用的实施过程包括以下步骤:(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以外还可采用命名空间作为程序运行的标识。

  所述加载密令的作用为进行客户端识别以及加强应用源代码的保护。

 进一步地,所述运行空间用于避免应用中的Javascript代码和CSS样式与其他应用或客户端程序的Javascript代码和CSS样式出现冲突而造成错误;减少应用不必要的权限以提高安全性;使应用在运行过程中,能够在HTML5环境下自行加装扩展的程序文件。 通过<iframe>元素下contentWindow模拟,对contentWindow下的原有全局变量进行重新设置,以提高安全性。然后通过设置<iframe>元素src值为以 http://域名/package/密令/命名空间/ 格式的URL,并以其作为HTML5应用的BaseURL;在HTML5的环境下,应用可根据BaseURL+与应用主页的相对文件路径(如:http://域名/package/密令/命名空间/xxx.js)进行程序文件的加载。

  进一步地,所述关闭在客户端运行的应用的实施过程包括以下步骤:(1)用户提交关闭运行指令和要关闭应用的命名空间到所述应用包管理模块;(2)所述应用程序调用模块通过API向应用程序触发关闭事件,让应用程序执行关闭前的处理;(3)所述应用程序调用模块分别所述API及运行空间和调用所述控件创建模块对运行空间及相关控件进行删除。

本发明的基于云计算的HTML5应用的打包、安装、卸载、运行方法及系统,该系统包括服务端,及与所述服务端进行交互的一个以上的客户端;所述服务端包括通信接口、数据中心、客户端代码存储模块、应用包解析模块、应用包创建模块、用户识别模块、数据库、临时应用程序文件和应用程序文件;所述客户端包括收发模块、程序文件上传模块、应用配置模块、应用调用模块、程序文件加载模块、控件创建模块、API接口模块和API及运行空间设置模块。本发明解决了目前网络平台只能保存数据和文件却不能自由安装、定制第三方应用等不足,让开发者(尤其对于个人开发者)可以通过打包应用后以安装包文件的形式派发给用户,降低技术难度,减少服务器成本;让用户可把应用安装在远程服务器上,使用时立即加载到本地运行,不仅可以节省了本地硬盘的空间,还能起到一次安装,到处可用的作用,实现让用户在基于云计算的操作系统或者同一网络平台上通过简单、便捷的方法对HTML5应用进行管理与运行。

附图说明

为了易于说明,本发明由下述的较佳实施例及附图作以详细描述。

 图1为本发明基于云计算的HTML5应用的打包、安装、卸载、运行方法及系统的系统结构示意图。

图2为本发明基于云计算的HTML5应用的打包、安装、卸载、运行方法及系统的实施客户端初始化的流程示意图。

图3为本发明基于云计算的HTML5应用的打包、安装、卸载、运行方法及系统的实施创建应用包的流程示意图。

图4为本发明基于云计算的HTML5应用的打包、安装、卸载、运行方法及系统的实施应用包安装的流程示意图。

图5为本发明基于云计算的HTML5应用的打包、安装、卸载、运行方法及系统的实施应用包卸载的流程示意图。

图6为本发明基于云计算的HTML5应用的打包、安装、卸载、运行方法及系统的实施在客户端中运行应用的流程示意图。

图7为本发明基于云计算的HTML5应用的打包、安装、卸载、运行方法及系统的实施关闭在客户端运行的应用的流程示意图。

具体实施方式

本实施例中,参照图1所示,一种基于云计算的HTML5应用的打包、安装、卸载、运行方法及系统,该系统包括服务端、及与所述服务端进行交互的一个以上的客户端。

所述客户端包括:收发模块、应用包管理中心、程序文件上传模块、应用配置模块、应用调用模块、程序文件加载模块、控件创建模块、API和运行空间设置模块、API接口模块。

所述收发模块,用于与服务器进行通讯和指令派发。其功能实施方法为当接收到其他模块的通信请求时,所述收发模块将请求命令和用户会话信息一起通过Ajax技术向服务端发送相关请求,并将接收到的反馈信息其通信请求模块。当接收到来自服务端的反馈信息时,根据指令将请求传递到不同的模块中处理。信息传递格式为JSON或XML。

所述应用包管理模块,用于监控接收用户操作指令及对应用包信息进行管理。其功能实施方法为在系统初始化时,通过所述收发模块向服务端发起已安装的应用包信息加载请求,然后将应用包信息存于内存中。所述应用包管理模块还提交一个图形交互界面,以便用户管理或运行应用,此外,也能接收通过所述API接口模块输入的操作指令,当接收到操作指令时,便根据指令对应用包信息进行检测,然后配合其他模块或服务端进行处理。

所述程序文件上传模块,用于在创建应用包时,上传程序文件。其功能实施方法有两种方案:方案一为通过设置一个由于选择本地文件的<input type=”file”>文件控件,并对该控件设置文件选取的事件监控,然后以HTML5的File API读取文件内容后通过所述收发模块将文件内容上传到服务端。方案二为通过设置一个用于输入远程文件地址的<input type=”url”> 地址控件和一个用于提交地址的<button>按钮控件,并对<button>按钮控件设置点击的事件监控,然后读取<input type=”url”>地址控件的内容后通过所述收发模块发送到服务端。上述远程文件地址为HTTP协议或FTP协议的URL。

所述应用配置模块,用于在创建应用包或安装应用对应用进行常规设置。其功能实施方法为通过在图形交互界面中显示应用包信息设置表单,并指引用户按要求输入。当用户提交表单时,对提交的信息进行检查,若输入错误,则提示错误信息;若输入正确,则通过所述收发模块将应用包设置信息发送到服务端。

所述应用调用模块,用于根据应用包信息并调用相关模块实现应用在客户端运行。其功能实施方法为当接收到来自所述应用包管理模块的应用包信息及运行请求时,根据应用包信息的命名空间判断要运行的应用是否在运行中,若要运行的应用已经在运行,则切换到该应用的交互界面上,并完成应用的运行。若要运行的应用没有在运行,则依次调用所述程序文件加载模块、所述控件创建模块、所述API和运行空间设置模块为应用创建运行的各种环境,然后通过document.write的方法将从所述程序文件加载模块中返回的主页或主程序代输入到由所述API和运行空间设置模块创建的运行空间中并运行。

所述程序文件加载模块,用于应用在运行时加载主页或主程序代码,并通过密令创建一个让应用程序能够自行加载扩展的应用程序文件的url路径;其功能实施方法为首先通过所述收发模块向服务端发起加载主页或主程序代码和一个用于加载扩展应用程序文件的密令,根据返回的密令,创建一个符合服务端解析并且包含应用命名空间和密令的url路径(如:http://域名/package/密令/命名空间/),然后将主页或主程序代码和url路径返回给所述应用调用模块。

所述控件创建模块,用于在应用运行时创建如窗口、任务栏等相关交互界面控件。其功能实施方法为通过Javascript对DOM的控制,创建控件的相关元素并利用CSS设置样式,然后通过对相关元素设置事件(Events)进行用户输入的监控,使用户可以通过操作相关控件进行对应用进行切换、退出等操作。

所述API及运行空间设置模块,用于设置应用运行空间以及为应用设置一些运行空间内的全局对象及方法,使应用可以调用本发明的方法以及其他系统的提供的方法。其功能实施方法为通过创建一个<iframe>元素,并且让应用代码在<iframe>元素内运行,这样可使应用程序中的Javascript变量和CSS样式不受其他应用干扰。然后在该运行空间(<iframe>元素的contentWindow)下设置一些可以对其他系统及应用进行操作的Javascript全局变量、对象和方法,应用运行过程中,可直接对这些变量、对象和方法进行访问与操作,实现对其他系统及应用进行操作的功能。

所述API接口模块,用于提供为第三方应用或系统提供一系列API接口命令来操作本发明进行应用的安装、卸载、运行、关闭以及应用包生成。其功能实施方法为在客户端初始化,所述API接口模块在Javascript作用域中创建一个全局对象,并在该对象中设置一系列的公共方法。使在相同Javascript作用域下的第三方应用或系统通过调用所述全局对象执行本发明安装、卸载、运行、关闭以及应用包生成等操作。

所述服务端包括:通信接口、数据中心、客户端代码存储模块、应用包解析模块、应用包创建模块、用户识别模块。

所述通信接口,用于与客户端进行连接通信、建立会话机制和指令派发;其功能实施方法为通过Nginx或Apache等HTTP/HTTPS代理服务器实现与客户端进行HTTP/HTTPS协议的通信。通信时建立SESSION会话机制,向客户端派发SESSION ID(唯一的会话编码),用于其它模块进行客户端或用户识别。当接收到请求时,根据指令将请求传递到不同的模块中处理。

所述数据中心,用于对应用包信息及其程序文件进行管理,也用于处理来自所述通信接口的各种请求并返回请求结果。其功能实施方法为通过数据库和文件系统对应用包信息和程序文件进行存储、更新、删除等操作来实现对应用包进行管理。每一条应用包信息记录中,都有一个用户编号的字段,用于进行用户识别。

所述客户端代码存储模块,客户端代码存储模块,用于存储客户端的Javascript和CSS代码文件,并在客户端在浏览器运行时通过通信接口传输到浏览器中运行;其功能实施方法为在需运行客户端的应用的HTML页面中,添加<script>和<link>标签,让浏览器进行加载,或者通过Ajax的方式加载代码文本,并使用evel函数运行javascript代码,通过创建<style>元素,应用CSS样式。在加载时,所述客户端代码存储模块会根据请求来源和信息进行分析,返回不同版本的客户端代码,如适用于PC的客户端或适用于智能手机的客户端。若加载请求中没有指定要加载的版本,则通过HTTP_USER_AGENT对浏览器进行判断,自动分配最合适的版本。

所述应用包创建模块,用于根据接收到的程序文件及应用包配置信息进行创建应用包的临时文件。其功能实施方法为根据应用包配置信息,创建一个应用配置文件,其文件格式为XML或JSON,如:package.xml、package.json。然后加密程序文件中的Javascript代码。最后讲配置文件和程序文件打包成一个临时压缩文件,并将该文件路径信息通过所述通信接口返回到客户端中。

所述应用包解析模块,用于对应用包进行解压,分析配置文件,检测程序文件,解密Javascript代码。其功能实施方法为尝试对应用包进行解压,并将解压所得的文件放在临时文件夹中后删除应用包。然后分析配置文件,若配置文件不存在或信息不完善,则通过所述通信接口向客户端返回完善应用包配置信息的请求。然后将配置信息及解压所得的临时文件夹目录路径传递给所述数据中心进行处理。

所述用户识别模块,用于对根据会话信息进行用户识别,并返回用户编号。其功能实施方法为通过SESSION ID(唯一的会话编号)作为标识创建一个有效时间为30分钟(有效时间可按需求设置)的用户登录状态的信息记录,此信息记录保存了用户信息和用户登录状态。每次客户端与服务端进行通信时,所述用户识别模块通过SESSION ID检索相应的用户登录状态的信息记录,通过判断其是否存在和信息内容实现客户端与服务端通信时保持用户登陆状态。此外,所述用户识别模块还提供API接口,使本发明可以作为一个组件并与其它系统组合运行。

参照图2所示,为本发明基于云计算的HTML5应用的打包、安装、卸载、运行方法及系统中所述客户端初始化的流程示意图,通过以下步骤进行实施:

步骤一:加载客户端的Javascript和CSS代码并运行,可通过以下两种方法实现:

1、在需运行客户端的应用的HTML页面中,添加<script>和<link>标签,让浏览器进行加载。

2、通过Ajax的方式加载代码文本,并使用evel函数运行javascript代码,通过创建<style>元素,应用CSS样式。

在以上过程中,所述客户端代码存储模块会根据请求来源和信息进行分析,返回不同版本的客户端代码,如适用于PC的客户端或适用于智能手机的客户端。若加载请求中没有指定要加载的版本,则通过HTTP_USER_AGENT对浏览器进行判断,自动分配最合适的版本。

若客户端运行在基于HTML5的Native应用中(如智能手机中通过安装的本地应用),此忽略次步骤。

步骤二:加载应用包信息,此步骤又分成以下几个小步骤进行:

1、所述应用包管理模块通过所述收发模块向服务端发起加载应用包信息的请求。

2、所述通信接口在接收到请求后,进行SESSION会话的检测,然后传递SESSION ID(唯一的会话编号)到所述用户识别模块中进行用户识别,并返回用户编号。

3、所述通信接口将由所述用户识别模块返回的用户编号和获取应用包信息指令一起发送到所述数据中心。

4、所述数据中心在接收到请求后,从数据库中读取该用户编号下的所有应用包信息,并按需求将其转换成JSON或XML格式。然后将数据通过所述通信接口返回客户端中。

5、所述收发模块在接收到返回的数据后,传递给应用包管理中心并保存。

步骤三:创建图形交互界面和API接口,此步骤又分成以下几个小步骤进行:

1、通过所述应用包管理模块创建图形交互界面的相关HTML元素及控件,并对其设置事件(Events)进行用户输入的监控。

2、通过所述API接口模块在Javascript作用域中创建一个全局对象,并在该对象中设置一系列的公共方法。

结束。

参照图3所示,为本发明基于云计算的HTML5应用的打包、安装、卸载、运行方法及系统中创建应用包的流程示意图,通过以下步骤进行实施:

准备工作:用户须将所有程序文件以及应用图标文件打包到一个压缩文档中,并且在压缩文档中保留程序的文件的相对目录和路径,支持ZIP、RAR、7Z等主流的压缩格式。

步骤一:收到创建应用包指令,可通过以下两种方式接收:

1、用户通过由所述应用包管理模块创建的图形交互界面中直接输入创建应用包指令。

2、用户对第三方应用或系统进行操作,第三方应用或系统通过所述API接口模块向所述应用包管理中发起创建应用包指令。

步骤二:选择并上传应用程序文件,此步骤有两种方案可供选择。

方案一:上传本地程序文件,通过以下几个小步骤进行: 

1、应用包管理中心向所述程序文件上传模块发出上传应用程序文件的指令,使其向用户展示上传本地应用程序文件的交互界面。

2、用户通过点击“选择文件”的按钮进行选择在本地计算机上应用程序文件的压缩文档。

3、所述程序文件上传模块通过HTML5的File API读取所选压缩文档内容,并将文档内容和创建应用包指令通过所述收发模块上传到服务端。

4、所述通信接口将接收到的应用程序文件压缩文档的内容传递给所述应用包创建模块进行处理。

5、所述应用包创建模块首先新建一个空白文件,然后将接收到的应用程序文件压缩文档的内容写入到该空白文件中。

方案二:上传远程程序文件,通过以下几个小步骤进行:

1、应用包管理中心向所述程序文件上传模块发出上传远程应用程序文件的指令,使其向用户展示远程应用程序文件的交互界面。

2、用户通过输入远程文件的HTTP或FTP地址:可直接在地址控件中输入,然后点击按钮控件进行下一步操作;也可以通过选择网盘中的文件(存储于云端服务器上的文件,可以通过API接口模块设置,在选择文件时调用,返回网盘文件的地址并自动输入到地址控件中)进行输入,然后点击按钮控件进行下一步操作。

3、所述程序文件从地址控件中读取地址信息,然后将地址信息和创建应用包指令通过所述收发模块上传到服务端。

4、所述通信接口将接收到的远程应用程序文件地址传递给所述应用包创建模块进行处理。

5、所述应用包创建模块通过HTTP协议或FTP协议将远程程序文件下载在到服务器中。

步骤三:遍历分析上传的程序文件,此步骤又分成以下几个小步骤进行: 

1、所述应用包创建模块对上传将应用程序文件压缩文档解压到临时文件夹后删除。

2、所述应用包创建模块对上述临时文件夹进行遍历,读取其所有子文件信息和子文件夹信息。

3、所述应用包创建模块从上述遍历结果中,对主页(default.html)或主程序(default.js)文件进行检测,若不存在则通过通信接口向客户端返回错误信息。

4、所述应用包创建模块创建一个以SESSION ID作为客户端识别标识的应用包创建任务记录,用于保存当前任务状态以及应用包的相关信息。

5、所述应用包创建模块将读取的文件、文件夹信息按要求转为为XML或JSON格式并通过通信接口返回到客户端中。

步骤四:与用户交互完善应用包配置信息,此步骤又分成以下几个小步骤进行:

1、所述收发模块将返回的信息传递给所述应用包管理模块。

2、所述应用包管理模块调用所述应用设置模块向用户展示应用配置输入表单的交互界面。

3、所述应用设置模块根据返回压缩包结构和文件、文件夹信息向用户展示应用包结构的树状列表,并指示用户从中选出图标文件。

4、所述应用设置模块通过交互界面向用户展示表单填写指引并指导用户填写配置信息。

5、所述应用设置模块将用户填写的应用包配置信息通过所述收发模块发送到服务端。

6、所述通信接口将接收到的应用包配置信息传递给所述应用包创建模块进行处理。

7、所述应用包创建模块根据SESSION ID从应用包安装任务记录中检索出相应的记录,通过记录信息使客户端和服务端的应用包创建操作在不同的通信之间得以持续。

步骤五:创建配置文件和加密Javascript代码,此步骤又分成以下几个小步骤进行:

1、所述应用包创建模块据根据应用包配置信息创建一个应用配置文件。

2、所述应用包创建模根据设置要求在程序文件中提取Javascript文件(.js后缀的文件)并读取其代码内容,加密代码并替换原代码,以达到保护程序源码的效果。

步骤六:生成临时应用包和清除相关文件,此步骤又分成以下2个小步骤进行:

1、所述应用包创建模块创建一个压缩文档,然后将上述存放程序文件的临时文件中的所有文件和目录和所述生成配置文件添加到压缩文档中。

2、所述应用包创建模块清除在应用包创建过程中生成的临时文件。

步骤七:向客户端返回新建应用包信息,此步骤又分成以下几个小步骤进行:

1、所述应用包创建模块将应用包创建成功信息和新的应用包信息(如:文件名称,文件大小,路径,下载地址等)通过所述通信接口返回到客户端中。

2、所述收发模块在收到由服务端返回的信息后,提交到应用包管理中心。

3、所述收发模块通过图形交互界面向用户展示应用包创建成功信息、生成的应用包的相关信息和应用包“下载”按钮。

步骤八:用户通过点击图形界面中的“下载”按钮进行应用包文件下载。

结束。

在上述创建应用包实施流程中,所生成的文件有效期为1天(默认情况下,也可按需求调整有效期),逾期后将被系统自动删除;

在上述创建应用包实施流程中,所述Javascript代码的加密方式包括:无密匙加密、有密匙加密和不加密三种方式。其加密算法不对第三方公开,通过加密后的应用包,仅限在本发明中运行。

在上述创建应用包实施流程中,所述配置文件中,包括以下应用包信息:发行商、命名空间、应用类型、默认运行方式、应用图标文件路径(相对于应用包)、应用描述、界面设置信息、应用程序版本、应用包版本等。其文件格式为XML或JSON,如:package.xml、package.json。

在上述创建应用包实施流程中,所述应用包为由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格式,包括16×16、32×32、48×48、57×57、72×72、92×92、114×114、256×256等多个尺寸,建议将所有图标文件放在一个文件夹中,如:icons/)和所述应用包配置文件(package.xml、package.json),同时保留程序目录结构。在程序中的相关文件调用,应使用相对路径。

在本发明中,默认采用ZIP格式对应用程序进行压缩并以ZAP(Zipped Application Package)作为应用包的后缀,默认对Javascript进行无密匙加密,默认以XML格式作为配置文件的格式。

参照图4所示,为本发明基于云计算的HTML5应用的打包、安装、卸载、运行方法及系统中安装应用到远程服务器上的流程示意图,通过以下步骤进行实施:

步骤一:收到安装应用包指令,可通过以下两种方式接收:

1、用户通过由所述应用包管理模块创建的图形交互界面中直接输入安装应用包指令。

2、用户对第三方应用或系统进行操作,第三方应用或系统通过所述API接口模块向所述应用包管理中发起安装应用包指令。

步骤二:选择并上传应用包文件,此步骤有两种方案可供选择。

方案一:上传本地应用包文件,通过以下几个小步骤进行: 

1、应用包管理中心向所述程序文件上传模块发出上传应用包文件的指令,使其向用户展示上传本地应用包文件的交互界面。

2、用户通过点击“选择文件”的按钮进行选择在本地计算机上应用包。

3、所述程序文件上传模块通过HTML5的File API读取所选应用包文件内容,并将文件内容和创建应用包指令通过所述收发模块上传到服务端。

方案二:上传远程应用包文件,通过以下几个小步骤进行:

1、应用包管理中心向所述程序文件上传模块发出上传应用程序文件的指令,使其向用户展示远程应用程序文件的交互界面。

2、用户通过输入远程文件的HTTP或FTP地址:可直接在地址控件中输入,然后点击按钮控件进行下一步操作;也可以通过选择网盘中的文件(存储于云端服务器上的文件,可以通过API接口模块设置,在选择文件时调用,返回网盘文件的地址并自动输入到地址控件中)进行输入,然后点击按钮控件进行下一步操作。

3、所述程序文件从地址控件中读取地址信息,然后将地址信息和创建应用包指令通过所述收发模块上传到服务端。

步骤三:在服务端中进行用户识别,此步骤又分成以下几个小步骤进行:

1、所述通信接口在应用安装的收请时,将SESSION ID传递给所述用户识别模块进行用户识别。

2、所述用户识别模块根据SESSION ID用户登录状态的信息记录中检索出相应的信息,若存在记录并且信息记录中的登陆状态标记为已登陆,则读取其User ID(用户编号)。

3、所述用户识别模块将User ID返回给所述通信接口。

步骤四:接收并保存应用包文件,所述通信接口将接收到的应用包文件的内容/地址和应用包安装指令以及由所述用户识别模块返回的User ID传递给所述应用包解析模块,此时,按照步骤二中选择的方案进行操作:

若步骤二中选择了方案一,所述应用包解析模块新建一个空白文件,然后将接收到的应用包文件的内容写入到该空白文件中。

若步骤二中选择了方案二,所述应用包解析模块根据接收到的远程应用包文件地址通过HTTP协议或FTP协议将远程应用包文件下载到服务器中。

步骤五:解析应用包,此步骤又分成以下几个小步骤进行:

1、所述应用包解析模块解压应用包文件并将解压所得的文件保存到一个临时文件夹中。

2、所述应用包解析模块删除应用包文件。

3、所述应用包解析模块遍历临时文件夹中下的子文件与子文件夹,检测符合以下要求:

         (1)是否存在配置文件(package.xml或package.json)。

  (2)是否存在主页或主程序文件(default.html或default.js)。

4、所述应用包解析模块读取并分析配置文件,检测其信息是按规定设置在以下必要信息:命名空间、应用类型、发行商、应用描述、应用程序版本。

5、通过所述应用包解析模块从配置文件中得出Javascript文件是否被加密,若被加密则从程序文件中提取Javascript文件(.js后缀的文件)并读取其代码内容,解码代码并替换原代码。

若应用包不符合上述3、4中的规定,则停止执行并清除安装过程中产生的文件,然后返回错误信息。

7、所述应用包解析模块将检测结果和从配置文件中读取的应用包配置信息传递给所述数据中心,然后进行下一步骤。

步骤六:与用户交互完善配置信息(非必要步骤),用于在安装过程中进行对应用环境进行重新设置,若忽略此步骤,则默认方式进行,此步骤又分成以下几个小步骤进行:

1、所述数据中心创建一个以SESSION ID作为客户端识别标识的应用包安装任务记录,用于保存任务状态、应用包配置信息、由应用包解压所得的程序文件信息。

2、所述数据中心通过收发接口向客户端返回进行应用包配置的请求。

3、所述收发模块将返回的信息传递给所述应用包管理模块。

4、所述应用包管理模块调用所述应用设置模块向用户展示应用配置输入表单的交互界面。

5、所述应用设置模块通过交互界面向用户展示表单填写指引并指导用户填写配置信息。

6、所述应用设置模块将用户填写的应用包配置信息通过所述收发模块发送到服务端。

7、通过步骤三的方法重新进行用户识别。

8、所述通信接口将接收到的应用包配置信息传递给所述数据中心进行处理。

9、所述数据中心根据SESSION ID从应用包安装任务记录中检索出相应的记录,通过记录信息使客户端和服务端的应用包安装操作在不同的通信之间得以持续。

步骤七:保存应用包信息及程序文件,此步骤又分成以下几个小步骤进行:

1、所述数据中心根据由配置文件所得的命名空间对数据库进行检索,若已经存在该命名空间下的应用,则删除原有的数据库信息以及程序文件。

2、所述数据中心为当前安装的应用注册一个唯一的APP ID,用于日后对应用进行管理与运行时进行识别。

3、所述数据中心将由所述步骤五中由应用包解压所的文件移至保存程序文件的目录下。

4、所述数据中心将应用包的基本信息、应用包配置信息和程序文件信息保存到数据库中。

步骤八:向客户端返回新的应用信息,此步骤又分成以下几个小步骤进行:

1、所述数据中心将新的应用包信息通过通信接口返回到客户端中。

2、所述收发模块将返回的新应用包信息传递给所述应用包管理模块。

4、所述应用包管理模块将新应用包信息保存,并更新图形交互界面中的应用管理列表。

步骤九:所述应用包管理模块通过图形交互界面向用户提示应用包安装结果信息。

结束。

在上述创建应用包实施流程中,除上述由本发明创建的应用包以外,本发明还支持安装由用户自行创建的未对Javascript文件进行加密的应用包。在创建时,必须遵守以下规则:

1、采用ZIP、RAR、7Z格式对程序文件进行打包压缩。

2、程序文件中必须包含主页(default.html)或主程序文件(default.js)。

3、应用包中必须包含采用标准格式的应用包配置文件(package.xml、package.json),存于应用包的主目录下,文件中必须设置以下项内容:发行商、命名空间、应用类型、应用描述、应用程序版本。

4、应用包可包含中应用的图标,由多个尺寸的PNG格式的图标文件组成并存放在icons/(相对路径)目录中,同时以尺寸作为图标文件名称,如:16.png,32.png等。

参照图5所示,为本发明基于云计算的HTML5应用的打包、安装、卸载、运行方法及系统中卸载在远程服务器上的应用包的流程示意图,通过以下步骤进行实施:

步骤一:收到卸载应用包指令,可通过以下两种方式接收:

1、用户通过由所述应用包管理模块创建的图形交互界面中直接输入卸载应用包指令。

2、用户对第三方应用或系统进行操作,第三方应用或系统通过所述API接口模块向所述应用包管理中发起卸载应用包指令。

步骤二:向服务端发出卸载应用的请求,由所述应用包管理模块通过所述收发模块向服务端发送要卸载的应用包APP ID和应用包卸载的请求。

步骤三:在服务端中进行用户识别,此步骤又分成以下几个小步骤进行:

1、所述通信接口在应用安装的收请时,将SESSION ID传递给所述用户识别模块进行用户识别。

2、所述用户识别模块根据SESSION ID用户登录状态的信息记录中检索出相应的信息,若存在记录并且信息记录中的登陆状态标记为已登陆,则读取其User ID(用户编号)。

3、所述用户识别模块将User ID返回给所述通信接口。

步骤四:删除应用配置信息及程序文件,此步骤又分成以下几个小步骤进行:

1、所述通信接口将接收到的APP ID和应用包卸载指令以及由所述用户识别模块返回User ID传递给所述数据中心。

2、所述数据中心通过以APP ID作为标识从数据库中检索相关的应用包信息,然后判断该应用包信息中的User ID是否与从所述用户识别模块中所得的User ID 一致。若没有检索出结果或User ID不一致,则通过所述通信接口向返回错误信息。

3、所述数据中心根据由数据库中读取的应用包信息中获取当前应用下的所有应用程序文件路径,并根据文件路径删除当前应用下的所有应用程序。

4、所述数据中心通过以APP ID作为标识删除数据库的应用包信息。

步骤五:向客户端返回应用卸载结果信息,此步骤又分成以下几个小步骤进行:

1、所述数据中心将应用卸载结果信息通过通信接口返回到客户端中。

2、所述收发模块将返回的应用卸载结果信息传递给所述应用包管理模块。

3、所述应用包管理模块对应用卸载结果信息进行判断,若卸载成功,根据APP ID从保存的应用包信息中删除相关记录,并更新图形交互界面中的应用管理列表。

步骤六:所述应用包管理模块通过图形交互界面向用户提示应用包卸载结果信息。

结束。

参照图6所示,为本发明基于云计算的HTML5应用的打包、安装、卸载、运行方法及系统中在客户端中加载并运行应用的流程示意图,通过以下步骤进行实施:

步骤一:收到运行应用指令,可通过以下两种方式接收:

1、用户通过由所述应用包管理模块创建的图形交互界面中直接输入运行应用指令和要运行的应用的命名空间。

2、用户对第三方应用或系统进行操作,第三方应用或系统通过所述API接口模块向所述应用包管理中发起运行应用指令和要运行的应用的命名空间。

步骤二:据命名空间获取应用包信息,所述应用包管理模块对存储的应用包信息数组进行遍历并对比命名空间,若不存在相应的应用包信息,则表示该命名空间下的应用未安装。若存在相应的应用包信息,则读取其信息并进入下一步。

步骤三:所述应用包管理模块通过所述收发模块向服务端发送APP ID和应用运行指令。

步骤四:在服务端中进行用户识别,此步骤又分成以下几个小步骤进行:

1、所述通信接口在应用安装的收请时,将SESSION ID传递给所述用户识别模块进行用户识别。

2、所述用户识别模块根据SESSION ID用户登录状态的信息记录中检索出相应的信息,若存在记录并且信息记录中的登陆状态标记为已登陆,则读取其User ID(用户编号)。

3、所述用户识别模块将User ID返回给所述通信接口。

步骤五:服务端应用信息检测,此步骤又分成以下几个小步骤进行:

1、所述通信接口将接收到的APP ID和程序文件加载指令以及由所述用户识别模块返回User ID传递给所述数据中心。

2、所述数据中心通过以APP ID作为标识从数据库中检索相关的应用包信息,然后判断该应用包信息中的User ID是否与从所述用户识别模块中所得的User ID 一致。若没有检索出结果或User ID不一致,则通过所述通信接口向返回错误信息。

3、所述数据中心通从数据库中读取相应的应用包信息。

步骤六:创建应用程序文件加载密令,此步骤又分成以下2个小步骤进行:

1、所述数据中心随机生成一个由英文字母与数字组成的16位字符串并将其作为密令。

2、所述数据中心创建一个以密令作为客户端识别标识的应用程序加载任务记录,用于应用命名空间以及应用包信息。

步骤七:返回加载密令以及主页/程序代码,此步骤又分成以下2个小步骤进行:

1、所述数据中心根据由数据库中读取的应用包信息中,获取应用中应用主页/程序文件的保存路径,然后根据路径读取主页/程序文件的代码内容。

2、所述数据中心将主页/程序文件的代码内容和加载密令通过通信接口返回到客户端。

3、所述收发模块将返回的信息传递给所述应用包管理模块。

步骤八:根创建支持应用运行的相关控件,此步骤又分成以下2个小步骤进行:

1、所述应用包管理模块向所述应用调用模块传递应用包信息并发起应用运行的请求。

2、所述应用调用模块从应用包信息中提取应用界面设置信息,然后根据界面设置调用所述控件创建模块进行包括应用窗口(必要)、任务栏按钮(选要)、通知图标(选要)、应用控制菜单(选要)等控件的创建。

步骤九:创建运行空间并设置系统API,此步骤又分成以下几个小步骤进行:

1、所述API及运行空间设置模块通过DOM创建一个<iframe>元素并通过sandbox属性控制其权限,然后将其作为子元素添加到由步骤八创建的窗口控件下。

2、设置当前应用的BaseURL,通过所述API及运行空间设置所述<iframe>元素的src值为http://当前域名/package/密令/命名空间/ 。

3、所述API及运行空间设置模块在该运行空间(<iframe>元素的contentWindow)下设置一些可以对其他系统及应用进行操作的Javascript全局变量、对象和方法。

步骤十:解析主页代码或运行主程序,所述应用调用模块将主业/程序代码通过document.write的方法将代码写入到运行空间(<iframe>元素的contentWindow)中的文档内即可运行解析主页代码或运行主程序。

步骤十一:通过加载密令加载扩展文件,此步骤又分成以下几个小步骤进行:

1、当应用主业或主程序运行后,HTML5环境会根据程序设计自动对其他程序文件进行加载,被加载的程序文件URL为BaseURL+程序文件与应用包的相对,如:http://当前域名/package/密令/命名空间/xxx.js 。

2、所述通信接口,通过rewrite技术,以正则识别所有http://当前域名/package/密令/命名空间/文件名 格式的URL,然后分析该URL并提取密令、命名空间和文件名。

3、所述通信接口将分析URL所得的密令、命名空间和文件名传递给所述数据中心。

4、所述数据中心以密令作为标识,从应用程序加载任务记录中检索出相应的记录,若无记录或记录中的命名空间与URL分析中提取的命名空间不一致,则通过所述通信接口返回错误信息。

5、所述数据中心从应用程序加载任务记录中检索出于从URL分析所得的文件名一致应用程序文件信息,然后根据该应用程序文件信息中的文件实际保存路径去读取该文件的内容。

6、所述数据中心通过所述通信接口将读取的程序文件内容返回到客户端中。

步骤十二:运行HTML5应用。此步骤由应用程序在HTML5环境下自行进行。

结束。

在上述运行应用实施流程中,为了方便用户对应用的识别与调用,除通过APP  ID以外,本发明亦可采用命名空间作为程序运行的标识。

在上述运行应用实施流程中,所述加载密令的作用为进行客户端识别以及加强应用源代码的保护。尽管通过SESSION ID也能起到客户端识别的作用,但由于SESSION ID是保存在浏览器或运行本发明应用的COOKIE中,因此也能被在同一域名下运行的应用访问,这就导致在客户端运行的应用可以轻易地伪装客户端去下载其他应用的程序文件。

参照图7所示,为本发明基于云计算的HTML5应用的打包、安装、卸载、运行方法及系统中关闭在客户端运行的应用流程示的意图,通过以下步骤进行实施:

步骤一:收到关闭应用指令,可通过三种方式接收:

1、用户通过由所述应用包管理模块创建的图形交互界面中直接输入关闭应用指令。

2、用户对第三方应用或系统进行操作,第三方应用或系统通过所述API接口模块向所述应用包管理中发起关闭应用指令。

3、用户通过对支持应用运行的相关控件进行操作实现输入关闭应用指令,如:点击应用窗口的关闭按钮。

步骤二:触发应用程序的关闭事件,所述应用程序调用模块通过API向应用程序触发关闭事件,让应用程序执行关闭前的处理。

步骤三:销毁应用运行空间及相关控件,此步骤又分成以下几个小步骤进行:

1、所述应用程序调用模块调用所述API及运行空间设置模块对<iframe>元素的contentWindow下的所有变量、方法和对象进行删除或将其设为null,然后删除<iframe>元素。

2、所述应用程序调用模块调用所述控件创建模块对相关控件的HMTL元素进行删除,然后删除相关的控件对象或将其设置为null。

结束。

本发明的基于云计算的HTML5应用的打包、安装、卸载、运行方法及系统,该系统包括服务端,及与所述服务端进行交互的一个以上的客户端;所述服务端包括通信接口、数据中心、客户端代码存储模块、应用包解析模块、应用包创建模块、用户识别模块、数据库、临时应用程序文件和应用程序文件;所述客户端包括收发模块、程序文件上传模块、应用配置模块、应用调用模块、程序文件加载模块、控件创建模块、API接口模块和API及运行空间设置模块。本发明解决了目前网络平台只能保存数据和文件却不能自由安装、定制第三方应用等不足,让开发者(尤其对于个人开发者)可以通过打包应用后以安装包文件的形式派发给用户,降低技术难度,减少服务器成本;让用户可把应用安装在云端服务器上,使用时立即加载到本地运行,不仅可以节省了本地硬盘的空间,还能起到一次安装,到处可用的作用,实现让用户在基于云计算的操作系统或者同一网络平台上通过简单、便捷的方法对HTML5应用进行管理与运行。

上述实施例,只是本发明的一个实例,并不是用来限制本发明的实施与权利范围,凡与本发明权利要求所述内容相同或等同的技术方案,均应包括在本发明保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号