掌桥专利:专业的专利平台
掌桥专利
首页

软件处理设备、服务器系统及其方法

文献发布时间:2023-06-19 12:19:35


软件处理设备、服务器系统及其方法

技术领域

本发明涉及一种软件处理设备以及对应的服务器系统。进一步地,本发明也涉及对应的方法、计算机程序,以及计算机程序产品。

背景技术

超文本标记语言(Hyper Text Markup Language,简称HTML)包括JavaScript和层叠样式表(Cascading Style Sheet,简称CSS),其已经成为最流行的程序语言之一,不仅用于开发网站,而且也用于为智能手机、平板电脑,以及其他类似的通信设备开发应用程序(也称App)。虽然作为一种语言,HTML有许多优势,但是HTML也存在一些重大缺点,其妨碍许多软件供应商在HTML上编写大量的专有代码。

移动网站和打包App中越来越多地采用HTML App进行移动设备计算(例如,在包括诸如智能手机和平板电脑等移动设备上进行的计算),且已经变得非常流行。一个HTML App是HTML/JavaScript/CSS代码所构造的在Web引擎上运行的软件应用程序。一个WebRuntime是管理和发起HTML App的软件。

然而,包括HTML、JavaScript,以及CSS源代码的HTML App的源代码是很容易得到或提取的。使用网页浏览器内置的调试工具查看、修改以及调试网站的源代码是很简单的,下载用于从诸如“apk”文件的Android应用程序包提取HTML App的源代码的公开可用的工具也是可能的。

由于专有软件供应商需要一个方案来防止针对他们源代码的逆向工程和/或防止他们的HTML App被非法复制,因此这对于软件供应商实现他们HTML App中宝贵的私有算法而言是一个障碍。

其中一个方案是在打包HTML App之前,使用代码混淆工具来混淆HTML App的源代码。代码混淆可以极大地增加JavaScript代码的逆向工程和窜改的难度。然而,由于混淆不影响复制源代码和复用不同计算设备上源代码的能力或难度,因此代码混淆无法防止HTML程序被复制。因此,经验丰富的黑客很轻易地就将混淆的源代码进行逆向工程和重组。进一步地,当释放程序和调试软件的释放版本由于代码混淆而变得极其困难时,程序开发人员必须进行混淆。

发明内容

本发明实施例的目的是提供一种方案,其减轻或解决传统方案的缺点和问题。

说明书以及对应权利要求中的“或者”应该理解为数学上的OR,其包括“和”以及“或”,不应该将其理解为XOR(异OR)。

独权的主题实现了上述目的。在独权中可以发现本发明更加优越的实现方式。

根据本发明的第一方面,通过一种包括处理器和收发器的软件处理设备,实现上述以及其他目的,其中,所述收发器用于:传输认证请求信号至认证服务器,其中,所述认证请求信号包括用户认证请求;从所述认证服务器接收认证验证信号,其中,所述认证验证信号包括响应所述用户认证请求的用户认证验证;传输许可请求信号至许可服务器,其中,所述许可请求信号包括所述用户认证验证;从所述许可服务器接收许可验证信号,其中,所述许可验证信号包括与所述用户认证验证相关联的许可验证;传输下载请求信号至软件应用程序服务器,其中,所述下载请求信号包括所述许可验证;从所述软件应用程序服务器下载软件应用程序的加密源代码,其中,所述软件应用程序与所述许可验证相关联;其中,所述处理器用于:将所述软件应用程序的所述加密源代码存储在存储器中。

根据本发明的第二方面,通过一种包括处理器和收发器的软件处理设备,实现上述以及其他目的,其中,所述收发器用于:传输认证请求信号至认证服务器,其中,所述认证请求信号包括用户认证请求;从所述认证服务器接收认证验证信号,其中,所述认证验证信号包括响应所述用户认证请求的用户认证验证;传输许可请求信号至许可服务器,其中,所述许可请求信号包括所述用户认证验证;从所述许可服务器接收许可加密信号,其中,所述许可加密信号包括与所述用户认证验证相关联的许可加密秘钥;其中,所述处理器用于:加载存储在存储器中的软件应用程序的加密源代码;基于所述许可加密秘钥,解密所述软件应用程序的所述加密源代码;通过执行所述解密源代码,运行所述软件应用程序。

根据第二方面所述的软件处理设备,在一种可能的实现方式中,所述处理器用于:使用Web引擎执行所述解密源代码。

因此,本实现方式意味着处理器执行的源代码为一个HTML应用程序。

根据本发明的第三方面,通过一种针对通信系统的通信设备,实现上述以及其他目的。所述通信设备包括本发明实施例所述的软件处理设备。所述通信设备具有计算能力,例如,可以为计算机、智能手机、平板电脑等。

根据本发明的第四方面,通过一种针对通信系统的服务器系统,实现上述以及其他目的。所述服务器系统包括认证服务器、许可服务器,以及软件应用程序服务器;其中,所述认证服务器包括收发器,用于:从软件处理设备接收认证请求信号,其中,所述认证请求信号包括用户认证请求;如果所述用户认证请求有效,则传输认证验证信号至所述软件处理设备,其中,所述认证验证信号包括用户认证验证;其中,所述许可服务器包括收发器,用于:从所述软件处理设备接收许可请求信号,其中,所述许可请求信号包括所述用户认证验证;如果所述用户认证验证有效,则传输许可验证信号至所述软件处理设备,其中,所述许可验证信号包括许可验证;其中,所述软件应用程序服务器包括收发器,用于从所述软件处理设备接收下载请求信号,其中,所述下载请求信号包括所述许可验证;如果所述许可验证有效,则传输软件应用程序的加密源代码至所述软件设备,其中,所述软件应用程序与所述许可验证相关联。

应当提到的是,所述服务器系统可以是一个集中式系统,包括诸如单一计算机或分散式系统中的所述认证服务器、所述许可服务器,以及所述软件应用程序服务器,其中,所述服务器系统的组件分布在数台计算机上。

根据本发明的第五方面,通过一种针对通信系统的服务器系统,实现上述以及其他目的。所述服务器系统包括认证服务器和许可服务器;其中,所述认证服务器包括收发器,用于:从软件处理设备接收认证请求信号,其中,所述认证请求信号包括用户认证请求;如果所述用户认证请求有效,则传输认证验证信号至所述软件处理设备,其中,所述认证验证信号包括用户认证验证;其中,所述许可服务器包括收发器,用于:从所述软件处理设备接收许可请求信号,其中,所述许可请求信号包括所述用户认证验证;如果所述用户认证验证有效,则传输许可加密信号至所述软件处理设备,其中,所述许可加密信号包括针对软件应用程序的加密源代码的许可加密秘钥。

应当提及的是,所述服务器系统可以是一个集中式系统,包括诸如单一计算机或分散式系统中的所述认证服务器和所述许可服务器,其中,所述服务器系统的组件分布在数台计算机上。

根据第五方面所述的服务器系统,在一种可能的实现方式中,所述许可加密秘钥为所述软件应用程序和所述相关联的软件处理设备所独有。

本实现方式意味着由于所述许可加密秘钥为所述软件应用程序所独有,因此所述许可加密秘钥不能用于其他软件应用程序。进一步地,由于所述许可加密秘钥为所述相关联的软件处理设备所独有,因此所述许可加密秘钥仅对该特定的相关联的软件处理设备有效,且不能为其他软件处理设备所使用。

根据所述软件处理设备、所述服务器系统,以及用于安装和运行软件的所述软件处理设备与所述服务器系统之间的交互,本发明实施例提供一种针对应用程序复制保护和反窜改的解决方案。通过用于安装和运行软件的所述软件处理设备和所述服务器系统之间的所述请求和验证信令,该解决方案得以实现。

进一步地,由于不需要诸如代码混淆的传统保护,因此,使得本发明的方案便于应用程序供应商保护他们的知识产权。

此外,不需要进一步地将HTML、JavaScript,或CSS代码添加到所述应用程序的源代码中,即可防止所述软件源代码被复制,这意味着节省了时间并降低了程序开发的成本。

根据第一或第二方面所述的软件处理设备,或者根据第四或第五方面所述的服务器系统,在第一种可能的实现方式中,所述许可请求信号还包括所述软件应用程序的标识指示。

根据该实现方式,所述服务器系统将会知道所述软件应用程序的所述标识,使得所述软件应用程序可以被验证。

根据第一或第二方面或者第四或第五方面的第一种实现方式所述的软件处理设备或服务器系统,在第二种可能的实现方式中,所述用户认证验证为第一令牌,或者所述许可验证为第二令牌。

本实现方式的一大优势在于可以通过令牌满足安全的高要求。进一步地,使用令牌意味着方便实现本发明的方案。

根据第一或第二方面或者第四或第五方面的第一或第二种实现方式所述的软件处理设备或服务器系统,或就所述软件处理设备或所述服务器系统本身而言,在第三种可能的实现方式中,所述许可请求信号还包括包括所述软件处理设备的通信设备的标识指示。

本实现方式的一大优势在于可以限制许可仅对通信设备有效。

根据第一或第二方面或者第四或第五方面的第一或第二或第三种实现方式中所述的软件处理设备或服务器系统,或就所述软件处理设备或所述服务器系统本身而言,在第四种可能的实现方式中,所述软件应用程序为超文本标记语言HTML,以及软件应用程序。

本实现方式的一大优势在于防止HTML应用程序被窜改和/或复制。

根据本发明的第六方面,通过一种包括如下步骤的方法,实现上述以及其他目的:传输认证请求信号至认证服务器,其中,所述认证请求信号包括用户认证请求;从所述认证服务器接收认证验证信号,其中,所述认证验证信号包括响应所述用户认证请求的用户认证验证;传输许可请求信号至许可服务器,其中,所述许可请求信号包括所述用户认证验证;从所述许可服务器接收许可验证信号,其中,所述许可验证信号包括与所述用户认证验证相关联的许可验证;传输下载请求信号至软件应用程序服务器,其中,所述下载请求信号包括所述许可验证;从所述软件应用程序服务器下载软件应用程序的加密源代码,其中,所述软件应用程序与所述许可验证相关联;其中,所述处理器用于:将所述软件应用程序的所述加密源代码存储在存储器中,例如,永久存储器。

根据本发明的第七方面,通过一种包括如下步骤的方法,实现上述以及其他目的:传输认证请求信号至认证服务器,其中,所述认证请求信号包括用户认证请求;从所述认证服务器接收认证验证信号,其中,所述认证验证信号包括响应所述用户认证请求的用户认证验证;传输许可请求信号至许可服务器,其中,所述许可请求信号包括所述用户认证验证;从所述许可服务器接收许可加密信号,其中,所述许可加密信号包括与所述用户认证验证相关联的许可加密秘钥;其中,所述处理器用于:加载存储器中存储的软件应用程序的加密源代码;基于所述许可加密秘钥,解密所述软件应用程序的所述加密源代码;通过执行所述解密源代码,运行所述软件应用程序。

根据第七方面所述的方法,在一种可能的实现方式中,所述方法还包括使用Web引擎执行所述解密源代码。

根据本发明的第八方面,通过一种包括如下步骤的方法,实现上述以及其他目的:从软件处理设备接收认证请求信号,其中,所述认证请求信号包括用户认证请求;如果所述用户认证请求有效,则传输认证验证信号至所述软件处理设备,其中,所述认证验证信号包括用户认证验证;其中,所述许可服务器包括收发器,用于:从所述软件处理设备接收许可请求信号,其中,所述许可请求信号包括所述用户认证验证;如果所述用户认证验证有效,则传输许可验证信号至所述软件处理设备,其中,所述许可验证信号包括许可验证;其中,所述软件应用程序服务器包括收发器,用于:从所述软件处理设备接收下载请求信号,其中,所述下载请求信号包括所述许可验证;如果所述许可验证有效,则传输软件应用程序的加密源代码至所述软件设备,其中,所述软件应用程序与所述许可验证相关联。

根据本发明的第九方面,通过一种包括如下步骤的方法,实现上述以及其他目的:从软件处理设备接收认证请求信号,其中,所述认证请求信号包括用户认证请求;如果所述用户认证请求有效,则传输认证验证信号至所述软件处理设备,其中,所述认证验证信号包括用户认证验证;其中,所述许可服务器包括收发器,用于:从所述软件处理设备接收许可请求信号,其中,所述许可请求信号包括所述用户认证验证;如果所述用户认证验证有效,则传输许可加密信号至所述软件处理设备,其中,所述许可加密信号包括针对软件应用程序的加密源代码的许可加密秘钥。

根据第九方面所述的服务器系统,在一种可能的实现方式中,所述许可加密秘钥为所述软件应用程序和所述相关联的软件处理设备所独有。

根据第六、第七、第八,或第九方面所述的方法,在第一种可能的实现方式中,所述许可请求信号还包括所述软件应用程序的标识指示。

根据第六、第七、第八,或第九方面的第一种实现方式中所述的方法,或就方法本身而言,在第二种可能的实现方式中,所述用户认证验证为第一令牌,或者所述许可验证为第二令牌。

根据第六、第七、第八,或第九方面的第二种实现方式中所述的方法,在第三种可能的实现方式中,所述许可请求信号还包括包括所述软件处理设备的通信设备的标识指示。

根据第六、第七、第八,或第九方面的第一种实现方式中所述的方法,或就方法本身而言,在第四种可能的实现方式中,所述软件应用程序为超文本标记语言HTML,以及软件应用程序。

第六、第七、第八,或第九方面所述的方法的优势与对应的设备方面的优势相同。

本发明也涉及一种计算机程序,包括代码方式,当以处理方式运行时,该计算机程序让所述处理方式来执行本发明提供的任一方法。此外,本发明还涉及一种计算机程序产品,包括计算机可读介质和所述计算机程序,其中,所述计算机程序包括在所述计算机可读介质中,并且包括以下分组中的一种或者两种:ROM(只读存储器)、PROM(可编程只读存储器)、EPROM(可擦除可编程只读存储器)、闪存、EEPROM(电可擦除可编程只读存储器),以及硬盘驱动器。

本发明进一步的应用和优点将会在下面详细说明中清楚描述。

附图说明

附图意在阐明和阐释本发明的各项实施例,其中:

图1示出了本发明实施例提供的一种软件设备。

图2示出了本发明一实施例提供的一种方法。

图3示出了本发明一实施例提供的又一种方法。

图4示出了本发明一实施例提供的一种服务器系统。

图5示出了本发明一实施例提供的又一种方法。

图6示出了本发明一实施例提供的又一种方法。

图7示出了安装软件的本发明一实施例。

图8示出了运行软件的本发明一实施例。

图9示出了安装软件的本发明一实施例的信令方面。

图10示出了运行软件的本发明一实施例的信令方面。

图11示出了运行软件以及验证例程的本发明一实施例的信令方面。

图12示出了本发明一实施例提供的安装软件的流程图。

图13示出了本发明一实施例提供的运行软件的流程图。

具体实施方式

图1示出了不同方面以及本发明实施例提供的软件处理设备100。图1中的软件设备100包括处理器102和收发器104,其以可通信的方式互相耦合。通过处理器102和收发器104之间的两个虚线箭头对此进行阐述。软件处理设备100还包括这个示例中用于无线通信的天线105和/或用于有线通信的有线连接器。

当软件处理设备100安装(或下载)一个软件应用程序时,软件处理设备100的配置如下:收发器104用于传输认证请求信号至认证服务器,其中,所述认证请求信号包括用户认证请求。收发器104还用于从认证服务器接收认证验证信号,其中,所述认证验证信号包括响应用户认证请求的用户认证验证;收发器104还用于传输许可请求信号至许可服务器,其中,所述许可请求信号包括用户认证验证;收发器104还用于从许可服务器接收许可验证信号,其中,所述许可验证信号包括与用户认证验证相关联的许可验证;收发器104还用于传输下载请求信号至软件应用程序服务器,其中,所述下载请求信号包括许可验证;收发器104还用于从软件应用程序服务器下载软件应用程序的加密源代码,其中,所述软件应用程序与许可验证相关联;最后,处理器102用于将软件应用程序的加密源代码存储在存储器106(例如,软件处理设备100的永久存储器)中。

根据一实施例,软件处理设备100为一个用于安装和运行应用程序的独立设备。然而,根据另一实施例,软件处理设备100可以集成在另一个设备(例如,具有计算能力的通信设备)上,这种情况下,软件处理设备100的处理器102和收发器104可以是通信设备的处理器和收发器。

进一步地,存储器106可以包括在图1示例所示的软件处理设备100中。根据另一实施例,存储器106可以是另一设备的一部分,因此,它不是软件处理设备100的一部分。例如,存储器106可以是上述通信设备的一部分。

当软件处理设备100运行或执行软件应用程序时,接收上述用户认证验证的配置是相同的。其后,在接收到用户认证验证之后,收发器104还用于传输许可请求信号至许可服务器,其中,所述许可请求信号包括用户认证验证;收发器104还用于从许可服务器接收许可加密信号,其中,所述许可加密信号包括与用户认证验证相关联的许可加密秘钥;处理器102还用于加载存储器106中的加密源代码;处理器102还用于基于许可加密秘钥,解密加密源代码;最后,处理器102用于通过执行解密源代码,运行软件应用程序。

图2示出了图1所示的软件设备100在该示例中执行的对应的方法200a。图2中的方法200a涉及到安装或下载软件应用程序这一方面。该方法包括步骤202:传输认证请求信号S1至认证服务器300a,其中,所述认证请求信号S1包括用户认证请求R1(可以包括一对用户名称和密码)。该方法200a还包括步骤204:从认证服务器300a接收认证验证信号S11,其中,所述认证验证信号S11包括响应用户认证请求R1的用户认证验证T1。该方法200a还包括步骤206:传输许可请求信号S2至许可服务器300b,其中,所述许可请求信号S2包括用户认证验证T1。该方法200a还包括步骤208:从许可服务器300b接收许可验证信号S22,其中,所述许可验证信号S22包括与用户认证验证T1相关联的许可验证T2。该方法200a还包括步骤210:传输下载请求信号S3至软件应用程序服务器300c,其中,所述下载请求信号S3包括许可验证T2。该方法200a还包括步骤212:从软件应用程序服务器300c下载软件应用程序的加密源代码,其中,所述软件应用程序与许可验证T2相关联。该方法200a还包括步骤214:将软件应用程序的加密源代码存储在存储器106中,其中,所述用户认证验证T1和许可验证T2可以是一定时间段内服务器系统300信任的数字,这意味着T1和T2在该时间段内有效。

图3示出了图1所示的软件设备100在该示例中执行的另一对应的方法200b。图3中的方法200b涉及到运行或执行软件应用程序这一方面。该方法200b包括步骤222:传输认证请求信号S1至认证服务器300a1,其中,所述认证请求信号S1包括用户认证请求R1。该方法200b还包括步骤224:从认证服务器300a接收认证验证信号S11,其中,所述认证验证信号S11包括响应用户认证请求R1的用户认证验证T1。该方法200b还包括步骤226:传输许可请求信号S2至许可服务器300b,其中,所述许可请求信号S2包括用户认证验证T1。该方法200b还包括步骤228:从许可服务器300b接收许可加密信号S44,其中,所述许可加密信号S44包括与用户认证验证T1相关联的许可加密秘钥。该方法200b还包括步骤230:加载存储在存储器106中的软件应用程序的加密源代码。该方法200b还包括步骤232:基于许可加密秘钥,解密软件应用程序的加密源代码。该方法200b还包括步骤234:通过执行解密源代码,运行软件应用程序。可以用许可加密秘密以加密秘钥的形式解密该加密源代码,其中,加密秘钥使用加密算法。加密秘钥通常是一个数字或一系列数字,例如:“A1 0C E3 5D F9 34 7B6D…”。

根据本发明一实施例,许可加密秘钥为软件应用程序和相关联的软件处理设备100所独有,这意味着许可加密秘钥为软件应用程序和软件处理设备100对所独有。许可加密秘钥是基于软件应用程序以及软件处理设备所创建的,这样一来,既不能在其他设备上对应用程序包的副本进行解密,也不能使用该秘钥对同一设备上的其他应用程序包进行解密。

根据本发明的另一实施例,许可请求信号S2还包括软件应用程序的标识指示,例如,标识号。

根据本发明的另一实施例,许可请求信号S2还包括包括软件处理设备100的通信设备500的标识指示。通信设备500的标识可以是媒体访问控制(Medium Access Control,简称MAC)地址或其他任一合适的硬件标识方式。

图4示出了本发明一实施例提供的服务器系统300。该服务器系统300可以是一个系统,其带有针对认证服务器300a、许可服务器300b,以及软件应用程序服务器300c的独立物理服务器,或者是一个系统,其带有上述服务器对应的虚拟服务器。图4中的实施例包括认证服务器300a、许可服务器300b,以及软件应用程序服务器300c,其都包括独立收发器302a、302b,以及302c,或者在收发器302a、302b,以及302c配置在同一收发器单元中这一情况下,其共享一个普通收发器。在这一特定示例中,图4中的服务器系统300也包括处理器304,其以可通信的方式耦合于收发器302a、302b,以及302c。

根据软件处理设备100是否安装或运行软件,服务器系统的收发器302a、302b,以及302c用于从软件处理设备100接收上述信号S1、S2,以及S3。进一步地,收发器302a、302b,以及302c用于传输上述信号S11、S22,以及S44至软件处理设备100。

图5示出了图4所示的服务器系统300在该示例中执行的对应的方法400a。图5中的方法400b涉及到安装(或下载)软件这一方面但是从服务器系统300侧对其进行理解。该方法400b包括步骤402:从软件处理设备100接收认证请求信号S1,其中,所述认证请求信号S1包括用户认证请求R1。该方法400a还包括步骤404:如果用户认证请求R1有效,例如,如果R1中的用户名和密码正确,则传输认证验证信号S11至软件处理设备100。认证验证信号S11包括用户认证验证T1。该方法400a还包括步骤406:从软件处理设备100接收许可请求信号S2,其中,所述许可请求信号S2包括用户认证验证T1。该方法400a还包括步骤408:如果用户认证验证T1有效,则传输许可验证信号S22至软件处理设备100。该用户认证验证T1的有效性可以由一个通知从认证服务器300a传送至许可服务器300b,其中,所述许可验证信号S22包括许可验证T2。该方法400a还包括步骤410:从软件处理设备100接收下载请求信号S3,其中,所述下载请求信号S3包括许可验证T2。该方法400a还包括步骤412:如果许可验证T2有效,则传输软件应用程序的加密源代码至软件设备100,其中,所述软件应用程序与许可验证T2相关联,且所述许可验证T2的有效性可以由一个通知从许可服务器300b传送至软件应用程序(或资源)服务器300c。

图6示出了图4所示的服务器系统300在该示例中执行的对应的方法400b。图6中的方法400b涉及到运行或执行软件处理设备中的软件这一方面但是从服务器系统300侧对其进行理解。该方法400b包括步骤422:从软件处理设备100接收认证请求信号S1,其中,所述认证请求信号S1包括用户认证请求R1。该方法400b还包括步骤424:如果用户认证请求R1有效,则传输认证验证信号S11至软件处理设备100,其中,所述认证验证信号S11包括用户认证验证T1。该方法400b还包括步骤426:从软件处理设备100接收许可请求信号S2,其中,所述许可请求信号S2包括用户认证验证T1。该方法400b还包括步骤428:如果用户认证验证T1有效,则传输许可加密信号S44至软件处理设备100,其中,所述许可加密信号S44包括针对软件应用程序的加密源代码的许可加密秘钥。

根据本发明一实施例,用户认证验证T1为第一令牌,许可验证T2为第二令牌。该第一和第二令牌在有限时间段内对服务器系统有效,例如,其可以是所谓的幻数。

例如,根据本发明一实施例,可以将软件处理设备100和服务器系统300分别实现为Web Runtime和一套Cloud服务。Web Runtime为一个程序,其包括HTML应用程序、维持加密源代码、在用户认证和许可验证之后,将HTML应用程序的源代码解密到存储器106中并运行底层Web引擎中的代码。Web Runtime经常用作计算设备中的软件,该计算设备可以在通信设备500中找到。Web Runtime解密源代码(例如,HTML、JavaScript,以及CSS)之后,WebRuntime开始解析和执行源代码。

上述Cloud服务为提供HTML应用程序管理、用户认证、许可管理、HTML源代码加密,以及下发加密源代码的服务。

图7示出了本发明一实施例提供的包括软件处理设备100的通信设备500的一个示例。在本发明实施例中,软件应用程序为HTML应用程序。该通信设备500例如可以是智能手机、平板电脑、计算机,或其他任一通信设备,其可以安装和运行软件应用程序并且因此具有适当的通信、计算,以及处理能力。该通信设备500可以具有无线通信能力和/或有线通信能力。合适的通信协议和接口可以用于传输和接收通信信号。

图7也示出了本发明一实施例提供的服务器系统300。该服务器系统300中的不同服务器300a、300b,以及300c可以是一组软件组件,例如,这些软件组件可以通过互联网接入,并可以包括在一个或多个物理或虚拟计算机服务器系统和/或服务器系统单元之上。Web Runtime 110(软件处理设备100中方括号所示的)为在通信设备500上运行的用于安装和发布HTML应用程序的软件组件。

当Web Runtime 110安装或发布HTML应用程序时,通过其认证模块,WebRuntime110将会首先得到认证以通过传输认证请求信号S1向服务器300发出一个请求。在服务器侧,认证服务器300a将会处理该请求并返回认证验证信号S11。一旦通信设备500侧得到认证,Web Runtime 110将使用其许可模块以通过传输许可请求信号S2至许可服务器300b发出一个许可请求。然后,在服务器侧上的许可服务器300b将会处理该许可请求。一旦完成许可,根据是否应该安装或发布应用程序,存在两种选择。

当安装应用程序时,Web Runtime 110将通过传输下载请求信号S3至软件应用程序服务器300c以向加密包发出一个下载请求。在服务器侧,使用软件加密服务器加密HTML应用程序的源代码,并将其发送给软件处理设备100。然后,Web Runtime 110将加密包保存在存储器106中,以供将来使用。对于加密应用程序的本地存储,如图7中存储器106中的加密HTML应用程序所示。

当发布应用程序时,Web Runtime 110将使用解密模块对保存的应用程序进行解密,然后,发布应用程序。

图8描述了Web Runtime 110内部流程的一个示例。图8示出了发布HTML应用程序时,Web Runtime 110如何运转。当进行认证时,软件处理设备通常需要用户(例如,软件处理设备100或通信设备500的使用者)的输入。Web Runtime 110使用其用户认证模块(userauthentication module,简称UAM),从而通过服务器系统300发信号对该用户进行认证,其中该服务器系统300使用应用程序验证模块(application verification module,简称AVM)以及UAM。这些方面在上面已经阐述过。在解密应用程序源代码后,Web Runtime 110通过其相关联的Web引擎加载并运行源代码。当发布应用程序时,例如,应用程序可以进行内容显示、音频/视频播放,以及用户输入的处理等。

图9示出了Web Runtime 110安装通信设备500中HTML应用程序的更详细的顺序。仅作为一个示例来说,此时的认证服务器300a、许可服务器300b,以及资源服务器300c为全功能物理服务器(例如,单独计算机)而不是先前的图架构中所示的软件模块。当然,该服务器也可以实现为在一个相同的计算机上运行的软件模块。存储器106为物理存储装置,其指的是加密HTML应用程序所存储的地方。

Web Runtime将会发送一个认证请求至S1中的认证服务器,一旦成功,便返回S11中的令牌A。然后,Web Runtime 110发送S2中的令牌A至许可服务器。S2也包括一个设备或硬件令牌(例如,唯一标识软件处理设备或其相关联的计算设备的硬件标识)以及应用程序(例如,唯一标识应用程序的一个数字)的标识(identity,简称ID)。

在许可服务器300b验证允许软件处理设备100或其相关联的通信设备500使用通信设备500上的应用程序后,许可服务器300b将返回S22中的令牌B。然后,Web Runtime 110可以使用令牌B,从而通过传输S3从资源服务器300c获取HTML应用程序的加密源代码。资源服务器300c负责利用诸如软件应用程序ID、用户ID,以及通信设备ID等所有需要的信息进行加密。应当说明的是,图9中并没有示出认证服务器300a、许可服务器300b,以及资源服务器300c之间的相关服务器侧通信。

图10示出了Web Runtime 110发布HTML应用程序的更详细的顺序。在该示例中,认证服务器300a和许可服务器300b也是全功能物理服务器(例如,单独计算机)。当然,该服务器也可以实现为在一个相同的计算机上运行的软件模块。并且,此时的存储器106为加密HTML应用程序所存储的地方。

Web Runtime 110发送一个S1中的认证请求至认证服务器300a,一旦成功,便返回S11中的令牌A。然后,Web Runtime 110将令牌A、设备,或硬件令牌(例如,唯一标识软件处理设备或其相关联的计算设备的硬件标识),以及应用程序的ID(例如,唯一标识应用程序的一个数字)发送至S2中的许可服务器300b。在许可服务器300验证允许软件处理设备100或其相关联的通信设备500使用应用程序后,许可服务器300b将返回S44中的加密秘钥。其后,Web Runtime 110从存储器106加载加密源代码,并通过使用加密秘钥以及诸如设备ID和用户ID等其他信息,对源代码进行解密,然后,将解密源代码转发至要执行HTML源代码的Web引擎。

图11示出了另一实施例。该实施例与图10类似,但是在服务器系统300中添加了Web Runtime验证服务器300d,使得本发明的方案更安全。Web Runtime 110发送S1中的认证请求至认证服务器300a,一旦成功,便返回S11中的令牌A。在Web Runtime110得到认证后(利用信号S1和S11),Web Runtime 110需要使用特定的令牌从Web Runtime认证服务器300d下载认证例程。Web Runtime认证服务器300d用于验证软件处理设备100上的WebRuntime软件没有被窜改。因此,传输一个例程请求至Web Runtime认证服务器300d,其将一个认证例程返回给Web Runtime 110。然后,执行该认证例程,扫描Web Runtime 110软件、并且生成一个数字,例如,令牌X。每次Web Runtime 110得到的例程可能不同,这样一来,每次预期的认证令牌X也可以不同。如果S2中发送的令牌X为许可服务器300b所预期的令牌,则S22中的许可服务器300b将会返回一个加密秘钥。否则,认证失败。假设许可服务器300b与Web Runtime认证服务器300d进行通信以证实令牌X正确。然而,图11中没有示出服务器系统300侧的通信。其后,Web Runtime 110从存储器106加载加密源代码,并通过加密秘钥以及诸如设备ID和用户ID等其他信息,对源代码进行解密,然后,将解密源代码转发至将执行HTML源代码的Web引擎。

图12示出了Web Runtime 110安装应用程序的过程的流程图。Web Runtime 110首先进行用户认证。一旦成功,Web Runtime 110将继续进行许可认证,其涉及与前面图中示出的许可服务器300b进行的通信。一旦成功,Web Runtime 110将开始将加密的应用程序下载到存储器106中。如果前面的任一步骤失败,则Web Runtime 110将会结束该过程。

图13示出了Web Runtime 110发布应用程序的过程的流程图。Web Runtime 110首先执行用户认证任务。一旦成功,Web Runtime 110将继续许可认证,其涉及与前面图中示出的许可服务器300b进行的通信。一旦成功,Web Runtime 110将对源代码进行解密并发布同一源代码。如果前面的任一步骤失败,则Web Runtime 110将会结束该过程。

另外,根据本发明的任意方法可以在具有编码方式的计算机程序中实现,当通过处理措施运行时,可使所述处理措施执行方法步骤。计算机程序包括在计算机程序产品的计算机可读介质之中。计算机可读介质基本可以包括任意存储器,如ROM(只读存储器)、PROM(可编程只读存储器)、EPROM(可擦除可编程只读存储器)、闪存、EEPROM(电可擦可编程只读存储器),以及硬盘驱动器。

此外,技术人员将意识到,本发明的软件处理设备100和服务器系统300包括例如功能、装置、单元、元件等形式的必需的通信能力以用于执行本发明的方案。其他类似装置、单元、元件、功能的举例有:处理器、存储器、缓冲器、控制逻辑、编码器、解码器、速率匹配器、降额匹配器、映射单元、乘法器、确定单元、选择单元、交换机、交织器、去交织器、调制器、解调器、输入、输出、天线、放大器、接收器单元、发射器单元、DSP、MSD、TCM编码器、TCM解码器、供电单元、电源馈线、通信接口、通信协议等,这些装置、单元、元件、功能以合适的方式进行设置以执行本发明的方案。

尤其,本发明的设备的处理器可包括例如中央处理单元(central processingunit,简称CPU)、处理单元、处理电路、处理器、专用集成电路(application specificintegrated circuit,简称ASIC)、微处理器或可解释和执行指令的其它处理逻辑的一个或多个实例。术语“处理器”因此可表示包括多个处理电路的处理电路,所述多个处理电路实例为以上列举项中的任何、一些或所有项。所述处理电路可进一步执行数据处理功能,输入、输出以及处理数据,所述功能包括数据缓冲和装置控制功能,例如,呼叫处理控制、用户界面控制等。

最后,应了解,本发明并不局限于上述实施例,而是同时涉及且并入所附独立权利要求书的范围内的所有实施例。

技术分类

06120113255455