CN103019712A - 集成应用 - Google Patents

集成应用 Download PDF

Info

Publication number
CN103019712A
CN103019712A CN2012105148133A CN201210514813A CN103019712A CN 103019712 A CN103019712 A CN 103019712A CN 2012105148133 A CN2012105148133 A CN 2012105148133A CN 201210514813 A CN201210514813 A CN 201210514813A CN 103019712 A CN103019712 A CN 103019712A
Authority
CN
China
Prior art keywords
equipment
client application
web
original
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2012105148133A
Other languages
English (en)
Inventor
J.科里基
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Skype Ltd Ireland
Original Assignee
Skype Ltd Ireland
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Skype Ltd Ireland filed Critical Skype Ltd Ireland
Publication of CN103019712A publication Critical patent/CN103019712A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44557Code layout in executable memory
    • G06F9/44563Sharing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

用于将与服务提供方相关联的客户端应用与在设备的设备平台上实施的至少一个web应用实例集成的方法、计算机程序产品和设备,所述客户端应用。客户端应用相应的至少一个用户接口模块被嵌入至少一个web应用实例中,其中至少一个用户接口模块使用基于web的技术来实施。客户端应用的原有部分以集中的方式在设备上实施,其中客户端应用的原有部分被安装在设备上并且使用设备平台原有的技术来实施。客户端应用的控制模块以集中的方式在设备上实施,其中控制模块使用基于web的技术来实施。

Description

集成应用
技术领域
本发明涉及集成应用。特别地,本发明涉及将与服务提供方相关联的客户端应用与设备上的一个或多个web应用实例进行集成。
背景技术
服务提供方可以提供客户端应用以便在设备上使用。客户端应用可以被安装在设备上以便随后在设备的设备平台上使用。在一些情况下,服务提供方可以提供客户端应用,就其具有一些基于web的组件和一些原有组件的意义而言,所述客户端应用为混合应用,所述基于web的组件采用基于web的技术(例如,依据HTML 5标准)而所述原有组件则采用设备平台原有的技术(例如,C++)。客户端应用的原有部分允许客户端应用依据服务提供方所实施的技术进行工作。另一方面,客户端应用的基于web的组件允许客户端应用以简单方式与实施基于web的技术的其它应用进行集成。特别地,客户端应用的用户接口(UI)模块可以使用基于web的技术来实施,从而客户端应用的UI模块可以被嵌入基于web的应用中,诸如由不同于服务提供方的实体(这里称之为“合作伙伴”)所提供的(浏览器中执行的)web应用的实例。web浏览器的实例可以是指用户能够与之进行交互的web浏览器的任意单独接口,诸如web浏览器的窗口、标签或框架,或者诸如微软Internet Explorer和Google Chrome的来自不同提供商的不同web浏览器实例。每个web应用实例可以从服务提供方获取客户端应用的适当UI小部件并且能够在web应用实例中实施该UI小部件。例如,web应用实例可以从与服务提供方相关联的服务器加载JavaScript和层叠样式表(CSS)文件,其中JavaScript代码可以由web应用实例调用以在web应用实例内例示客户端应用的具体UI元素。
使得web技术在服务提供方的客户端应用中的比重最大化由此使得客户端应用的原有部分保持最小化会是有利的。基于web的技术与原有技术相比具有出众的升级能力。例如,JavaScript、CSS和HTML文件可以通过互联网动态下载,由此使得便于改变(例如,升级)客户端应用的基于web的部分。与之相比,改变客户端应用的原有部分将需要在设备上安装原有部分(使用例如C++的原有技术),这与通过互联网下载文件相比会更为困难。客户端应用的控制和状态模块以及客户端应用的原有部分可以被嵌入设备上的每个web应用实例。这允许客户端应用的控制和状态模块使用基于web的技术(而不是原有技术)。然而,通过将客户端应用的控制和状态模块嵌入设备上的每个web应用实例,就无法在客户端应用与来自多个合作伙伴的多个web应用实例的集成之间进行协调。每个合作伙伴在用户设备上形成单独的井仓(silo),这妨碍了客户端应用跨设备上来自多个合作伙伴的多个web应用实例的全局控制。此外,该方法仅在针对设备上服务提供方应用的原有部分的多个实例没有约束的情况下是适用的。可能存在将客户端应用的原有部分约束为仅在设备上例示一次的原因,这些原因包括资源约束或遗留考虑。例如,实际上在处理互联网通信服务的客户端应用的领域中发现了客户端应用的原有部分仅在设备上例示一次的约束。
发明内容
根据本发明的第一方面,提供了一种将与服务提供方相关联的客户端应用与设备的设备平台上实施的至少一个web应用实例进行集成的方法,该方法包括:将客户端应用相应的至少一个用户接口模块嵌入至少一个web应用实例,所述至少一个用户接口模块使用基于web的技术所实施;以集中方式在设备上实施客户端应用的原有部分,客户端应用的所述原有部分被安装在设备上并且使用设备平台原有的技术所实施;并且以集中方式在设备上实施客户端应用的控制模块,所述控制模块使用基于web的技术所实施。
有利地,控制模块(其可以是客户端应用的控制和状态模块)被集中实施在设备上由此允许在设备处对客户端应用进行集中的设备范围的控制,以使得客户端应用跨设备的表现能够进行协调。此外,控制模块在设备上使用基于web的技术实施,由此允许控制模块使用基于web的技术进行改变(例如,升级)。
针对如何在服务提供方所提供的混合web和原有客户端应用以及“合作伙伴”(即不同于服务提供方的实体)所提供的web应用之间实施客户端侧的web集成(也称作“混搭”)而言,本发明的实施例提供新颖且有所改进的解决方案。包括UI模块的混合客户端应用的元素可以被插入(也就是嵌入)合作伙伴的一个或多个web应用实例中。在设备上存在多于一个的web应用实例的情况下,混合客户端应用的元素可以与其它合作伙伴应用同时嵌入合作伙伴的web应用实例。实施例在服务提供方的客户端应用的原有部分一次仅能够在设备上例示一次的环境中是特别有用的。如以上所描述的,这样的约束可能有许多原因,包括资源约束或遗留考虑,并且该约束例如实际上能够在互联网通信服务的领域中找到。
在优选实施例中,服务提供方的客户端应用被划分为三个组成部分:
1. 用户接口模块(这里称作“UI小部件”),其以诸如单纯web技术的web技术所实施,例如采用HTML 5。多个这样的UI小部件可以被嵌入同时在设备上运行的各个合作伙伴web应用的多个实例中。
2. 应用的原有部分,其确切地被例示一次并且在单独的原有程序内运行,在这里被称作“中央应用后台程序”。
3. 集中的基于web的控制和状态模块,其利用诸如单纯web技术的web技术所构建,例如利用HTML 5。该控制和状态模块确切地被例示一次,为许多UI小部件的需要提供服务。其对UI小部件针对应用的原有部分的访问进行调解。其还始终独立于任意UI小部件而运行。
如以上所描述的,有利地,在实施例中能够实现两个通常矛盾的目标:
1. 服务提供方的客户端应用中web技术的比重最大化,由此使得客户端应用的原有部分保持很小。如以上所描述的,这允许基于web的技术内在的出众升级能力得以实施。客户端应用的基于web的部分的HTML 5加工品(artefact)可以按照需要从服务提供方的web服务器以JavaScript、CSS和HTML文件的形式被下载到设备。这允许服务提供方以类似于对web内容进行修正的方式容易地对客户端应用的基于web的部分(其包括客户端应用的控制模块)进行改变(例如,升级)。
2. 出于客户端应用表现跨设备的最终协调的原因,提供了集中的、设备范围的控制和状态模块。
一次仅可以在设备上实施客户端应用的原有部分的一个实例。类似地,一次仅可以在设备上实施客户端应用的控制模块的一个实例。
在优选实施例中,客户端应用的原有部分与客户端应用的控制模块在设备上使用集中程序来实施。
客户端应用的原有部分可以包括以下的至少一个:(i)服务提供方的原有的库,(ii)用于促成使用基于web的技术的设备上的组件之间的信令传送的远程过程调用枢纽(hub),和(iii)JavaScript引擎的实例。
控制模块可以经由互联网从服务提供方下载至设备。
该方法进一步包括经由基于web的通信升级控制模块。
控制模块可以促成至少一个用户接口模块和客户端应用的原有部分之间的访问。
可以针对每个web应用实例实施相应的浏览器插件,所述浏览器插件具有用于与客户端应用的控制模块和原有部分中的至少一个进行通信的远程过程调用(RPC)功能。远程过程调用功能可以促成用于在至少一个web应用实例以及客户端应用的控制模块和原有部分中的所述至少一个之间中继控制消息的传输控制协议(TCP)连接。控制消息可以使用发布-订阅通信进行中继。
在设备上可以实施多个web应用实例,其中每个web应用示例可以由客户端应用的控制模块所控制。
控制模块可以是客户端应用的控制和状态模块。
基于web的技术可以符合HTML 5标准。
根据本发明的第二方面,提供了一种用于将与服务提供方相关联的客户端应用与设备的设备平台上实施的至少一个web应用实例进行集成的计算机程序产品,该计算机程序产品记录于非瞬时的计算机可读介质上并且被配置为当在设备的处理器上执行时执行操作:将客户端应用相应的至少一个用户接口模块嵌入至少一个web应用实例,所述至少一个用户接口模块使用基于web的技术所实施;以集中方式在设备上实施客户端应用的原有部分,客户端应用的所述原有部分被安装在设备上并且使用设备平台原有的技术所实施;并且以集中方式在设备上实施客户端应用的控制模块,所述控制模块使用基于web的技术所实施。
根据本发明的第三方面,提供了一种被配置为将与服务提供方相关联的客户端应用与设备的设备平台上实施的至少一个web应用实例进行集成的设备,该设备被配置为:将客户端应用相应的至少一个用户接口模块嵌入至少一个web应用实例,所述至少一个用户接口模块使用基于web的技术所实施;以集中方式在设备上实施客户端应用的原有部分,客户端应用的所述原有部分被安装在设备上并且使用设备平台原有的技术所实施;并且以集中方式在设备上实施客户端应用的控制模块,所述控制模块使用基于web的技术所实施。客户端应用的原有部分和客户端应用的控制模块可以在设备上使用集中程序来实施。
附图说明
为了更好地理解本发明并且示出其如何生效,现在将通过示例参考以下附图,其中:
图1示出了根据优选实施例的系统;
图2表示第一现有技术部署中的web应用实例和客户端应用的集成;
图3表示第二有技术部署中的web应用实例和客户端应用的集成;
图4表示依据优选实施例的web应用实例和客户端应用的集成;
图5是根据优选实施例的将客户端应用与至少一个web应用实例进行集成的处理的流程图;
图6是客户端应用组件和web应用实例的组件之间的示例交互的第一消息序列图;和
图7是客户端应用组件和两个web应用实例的组件之间的示例交互的第二消息序列图。
具体实施方式
图1示出了设备102在其中进行操作的系统100。设备102能够通过系统100的网络112进行通信。设备102与用户104相关联并且包括用于处理设备102上的数据的处理器(CPU)106以及用于存储设备102上的数据的存储器108。设备102可以是固定或移动设备。设备102例如可以是移动电话、个人数字助理(PDA)、个人计算机(PC)(例如包括WindowsTM、Mac OS TM和Linux TM PC)、膝上计算机、电视、游戏设备或者能够连接至网络112的其它嵌入式设备。设备102被配置为从用户104接收信息并且向其输出信息。例如,设备102包括用于向用户104输出视觉数据的显示器110。显示器110可以包括允许用户104经由显示器110向CPU 106输入数据的触摸敏感屏幕。设备102可以包括图1中没有示出的提供与用户104之间的用户接口的另外组件。例如,设备102可以包括用于接收音频信号的麦克风;用于输出音频信号的输出器件210;和/或用于从用户104接收输入的键盘、小键盘、操纵杆或鼠标。设备102实施了能够在其上执行应用的设备平台。例如,设备平台可以被适配为适用于移动设备或适用于固定设备。设备平台描述了其中应用在设备102进行实施的环境并且可以包括:(i)在设备102上实施的操作系统,和/或(ii)特定类型的设备,例如具有小型屏幕的移动设备或者具有大型屏幕的固定设备。
网络112例如可以是互联网。如图1所示,系统100在网络112上包括三个服务器:服务器X 114、服务器Y 116和服务器Z 118。系统100被配置为使得设备102能够通过网络112与服务器114、116和118进行通信,以使得能够在设备102和服务器114、116和118之间传送数据。作为示例,服务器114具有web地址“x.com”,服务器116具有web地址“y.com”,并且服务器118具有web地址“z.com”。在这里所描述的优选实施例中,服务器114是服务提供方所操作的服务器,其能够提供客户端应用以便在设备102上进行安装,而服务器116和118则是允许设备102通过网络112下载网页以便在设备102的显示器110上进行显示的web服务器。
这里所描述的优选实施例涉及将服务提供方的客户端应用与关联于web服务器116和118的web应用实例进行集成。
现有技术中使用两种不同方法来在设备102上将混合服务提供方的客户端应用与web应用实例进行集成。
图2表示第一现有技术部署中的两个web应用实例204y和204z与客户端应用的集成。在该第一现有技术部署中,客户端应用的原有部分由web应用实例202中相应的插件210所保管。依据用于执行应用的已知技术,这里所指的应用在设备102的CPU 106上执行。如果应用要存储数据,则数据可以存储在设备102的存储器108中。
web浏览器202y与合作伙伴Y所操作的服务器Y 116相关联。web浏览器202y包括在设备102上实施的web应用实例204y。web浏览器202y还包括在设备102上实施客户端应用的原有部分(包括原有库212y)的实例的浏览器插件210y。类似地,web浏览器202z与合作伙伴Z所操作的服务器Z 118相关联。web浏览器202z包括在设备102上实施的web应用实例204z。web浏览器202z还包括在设备102上实施客户端应用的原有部分(包括原有库212z)的实例的浏览器插件210z
web应用实例204y和204z源于处于域y.com和z.com的web服务器116和118,并且经由网络112被下载到设备102。这些web应用实例204y和204z中的每一个在web浏览器的单独实例(202y和202z)中运行。通过web浏览器的实例,在这里表示窗口、标签或框架,包括各种浏览器提供商(例如,浏览器1:微软Internet Explorer,浏览器2:Google Chrome)的同时使用。每个web应用实例204y和204z构建服务提供方的适当UI小部件(分别为206y和206z)。UI小部件206是服务提供方的客户端应用的UI模块。UI小部件206源于处于域x.com的服务提供方的web服务器114。
在图2(以及以下所描述的图3和图4)中,我们利用白色表明设备102处实施的符合HTML 5标准的web组件,例如利用HTML、JavaScript和CSS工具所实施的那些组件。在图2(以及以下所描述的图3和图4)中,我们利用灰色表明需要在设备102上进行安装的服务提供方的原有组件。这些原有组件使用非HTML 5的工具所开发,例如使用C++。
服务器116上(也就是说,在域y.com)的动态内容被下载到浏览器202y上的web应用实例204y上,并且当该动态内容在设备102上执行时,其使得web应用实例204y从与服务提供方相关联的(处于域x.com的)服务器114下载JavaScript和CSS文件。来自服务器114(x.com)的所下载JavaScript代码指示web应用实例204y在web应用实例DOM(文档对象模型)内例示客户端应用的具体UI元素。这在图2中示出,借此UI小部件206y被例示在web应用实例204y中。如图2所示,客户端的控制和状态模块208y也在web应用实例204y内例示。
类似地,服务器118上(也就是说,在域z.com)的动态内容被下载到浏览器202z上的web应用示例204z上,并且当该动态内容在设备102上执行时,其使得web应用实例204z从与服务提供方相关联的(处于域x.com的)服务器114下载JavaScript和CSS文件。来自服务器114(x.com)的所下载JavaScript代码指示web应用实例204z在web应用实例DOM(文档对象模型)内例示客户端应用的具体UI元素。这在图2中示出,借此UI小部件206z被例示在web应用实例204y中。如图2所示,客户端的控制和状态模块208z也在web应用实例204z内例示。
从图2可以意识到的是,从(处于域x.com的)服务器114下载的客户端应用的基于web的部分是分层的并且UI模块206从控制和状态模块208划分出来。
通过将它们保管在服务提供方所提供的相应浏览器插件210y和210z中服务提供方的客户端应用的原有功能被使得可由web应用实例204y和204z上的web内容所访问。如以上所描述的,浏览器插件210y和210z被安装在设备102上并且使用设备102的设备平台原有的技术。
在图2所示的部署中,独立于客户端应用在浏览器202z上的实施,客户端应用独立地实施在浏览器202y上。这意味着无法在服务提供方的客户端应用与来自多个合作伙伴的浏览器202y和202z的集成之间进行协调。每个合作伙伴的集成在用户设备102上形成单独的井仓,从而无法提供客户端应用的设备范围的控制。
此外,图2所示的部署仅在没有针对服务提供方的客户端应用的原有部分的多个例示的约束的情况下适用。如以上所描述的,会有许多原因来实施这样的约束,例如在客户端应用与互联网通信服务相关时。
因此能够意识到的是,图2所示的部署存在问题。
图3表示第二现有技术部署中两个web应用实例304y和304z与客户端应用的集成。在该第二现有技术部署中,客户端应用的原有部分由在这里被称作中央应用后台程序316的中央程序所保管。依据用于执行应用的已知技术,这里所指的应用在设备102的CPU 106上执行。如果应用要存储数据,则该数据可以被存储在设备102的存储器108中。
web浏览器302y与合作伙伴Y所操作的服务器Y 116相关联。web浏览器302y包括在设备102上实施的web应用实例304y。web浏览器302y还包括RPC插件314y,其在浏览器插件314y中提供瘦远程过程调用(RPC)功能。类似地,web浏览器302z与合作伙伴Z所操作的服务器Z 118相关联。web浏览器302z包括在设备102上实施的web应用实例304z。web浏览器302z还包括RPC插件314z,其在浏览器插件314z中提供瘦远程过程调用(RPC)功能。设备实施了中央应用后台程序316,其上实施了服务提供方的客户端应用的原有部分以及控制和状态模块308。中央应用后台程序316能够使用插件314y和314z的RPC功能通过传输控制协议(TCP)连接与RPC插件314y和314z进行通信。中央应用后台程序316可以由服务提供方安装在设备102上并且使用设备102的设备平台的原有技术(例如,C++)。中央应用后台程序316使用控制和状态模块308提供客户端应用的设备范围的控制。
如以上关于图2所描述的,web应用实例304y和304z源于处于域y.com和z.com的web服务器116和118,并且经由网络112被下载到设备102。这些web应用实例304y和304z中的每一个在web浏览器的单独实例(302y和302z)中运行。通过web浏览器的实例,在这里表示窗口、标签或框架,包括各种浏览器提供商(例如,浏览器1:微软Internet Explorer,浏览器2:Google Chrome)的同时使用。每个web应用实例304y和304z构建服务提供方的适当UI小部件(分别为306y和306z)。UI小部件306是服务提供方的客户端应用的UI模块。UI小部件306源于处于域x.com的服务提供方的web服务器114。
在图3所示的部署中,并发的合作伙伴web应用实例304y和304z从(处于域x.com的)服务提供方的服务器114加载并例示UI web小部件306y和306z。然而,与图2中的部署相比,在中央应用后台程序316的单独的进程中,客户端应用的原有库这次集中保管在设备102中。浏览器(302y,302z)和中央应用后台程序316之间的通信使用TCP套接字(或者诸如命名管道的其它本地进程间通信(IPC)工具)来提供。
如通过观看图3所能够意识到的,图3所示的部署符合针对服务提供方的客户端应用的原有部分的多个例示的约束。在任意给定时刻,仅在设备102实施客户端应用的原有部分的一个实例(例如,原有库312)—其处于中央应用后台程序316上。
跨整个设备102对客户端应用的表现进行协调的客户端应用的组件被示为“控制器和状态”模块308。该控制器和状态模块308在设备2上具有集中位置,因为其存在于中央应用后台程序316中。然而,由于该集中位置,其还具有原有特性,例如其在非HTML 5的环境中开发,例如使用C++开发。因此,如以上所描述的,客户端应用的控制器和状态组件的升级并没有对诸如符合HTML 5标准的那些基于web的技术的升级能力加以利用。
因此能够意识到的是,图3所示的部署存在问题。
这里仅通过示例对本发明的优选实施例进行描述。图4表示依据优选实施例的web应用实例(404y,404z)与服务提供方的客户端应用的集成。图4所示的部署克服了与图2和3中所示的部署相关联的问题。
图4表示了优选实施例中两个web应用实例404y和404y与客户端应用的集成。客户端应用的原有部分由在这里被称作中央应用后台程序416的中央程序所保管。实际上,客户端应用的原有部分保管在中央应用后台程序416的原有分段418上。中央应用后台程序416还具有JavaScript引擎424,在其上实施了客户端应用的控制和状态模块408,其使用诸如符合HTML 5标准的基于web的技术所实施。在JavaScript引擎424上还实施了RPC插件422,其允许中央应用后台程序416的原有分段418和中央应用后台程序416的JavaScript引擎424之间的通信(例如,使用TCP连接)。这里所指的应用依据用于执行应用的已知技术在设备102的CPU 106上执行。如果应用要存储数据,则数据可以存储在设备102的存储器108中。
web浏览器402y与合作伙伴Y所操作的服务器Y 116相关联。web浏览器402y包括在设备102上实施的web应用实例404y。web浏览器402y还包括RPC插件414y,其在浏览器插件414y中提供瘦远程过程调用(RPC)功能。类似地,web浏览器402z与合作伙伴Z所操作的服务器Z 116相关联。web浏览器402z包括在设备102上实施的web应用实例404z。web浏览器402z还包括RPC插件414z,其在浏览器插件414z中提供瘦远程过程调用(RPC)功能。中央应用后台程序416的原有分段418能够使用插件414y和414z的RPC功能通过传输控制协议(TCP)连接与RPC插件414y和414z进行通信。中央应用后台程序416可以由服务提供方安装在设备102上并且原有分段418使用服务提供方的原有技术(例如,C++)。中央应用后台程序416使用控制和状态模块408提供客户端应用的设备范围的控制。
web应用实例404y和404z源于处于域y.com和z.com的web服务器116和118,并且经由网络112被下载到设备102。这些web应用实例404y和404z中的每一个在web浏览器的单独实例(402y和402z)中运行。通过web浏览器的实例,在这里表示窗口、标签或框架,包括各种浏览器提供商(例如,浏览器1:微软Internet Explorer,浏览器2:Google Chrome)的同时使用。每个web应用实例404y和404z构建服务提供方的适当UI小部件(分别为406y和406z)。UI小部件406是服务提供方的客户端应用的UI模块。UI小部件406源于处于域x.com的服务提供方的web服务器114。
在图4所示的部署中,并发的合作伙伴web应用实例404y和404z从(处于域x.com的)服务提供方的服务器114加载并例示UI web小部件406y和406z。在中央应用后台程序416的原有分段418中,客户端应用的原有库集中保管在设备102上。浏览器(402y,402z)和中央应用后台程序416的原有分段418之间的通信使用TCP套接字(或者诸如命名管道的其它本地进程间通信(IPC)工具)来提供。
如通过观看图4所能够意识到的,图4所示的部署符合针对服务提供方的客户端应用的原有部分的多个例示的约束。在任意给定时刻,仅在设备102实施客户端应用的原有部分的一个实例(例如,原有库412)—其处于中央应用后台程序416的原有分段418上。
跨整个设备102对客户端应用的表现进行协调的客户端应用的组件为控制和状态模块408。控制和状态模块408在设备102上具有集中位置,因为其存在于中央应用后台程序416中。有利地,控制和状态模块408在中央应用后台程序416的JavaScript引擎424上实施。以这种方式,控制和状态模块408能够使用诸如符合HTML 5标准的基于web的技术。因此,如以上所描述的,客户端应用的控制和状态模块408的升级能够利用基于web的技术的升级能力。
在图4中,我们利用白色表明设备102处实施的符合HTML 5标准的web组件,例如利用HTML、JavaScript和CSS工具所实施的那些组件。在图4中,我们利用灰色表明需要在设备102上进行安装的服务提供方的原有组件。这些原有组件使用非HTML 5的工具所开发,例如使用C++。
图4所示的部署提供了用于合作伙伴的web应用实例404和服务提供方的混合(也就是,web和原有)客户端应用之间客户端侧的集成的手段。图4所示的部署还提供了与多个合作伙伴(例如,两个web应用实例404y和404z)的并发集成。
在图4所示的示例中,web应用实例(404y和404z)在单独的web浏览器(402y和402z)中并发执行。“浏览器”的概念概括为包含浏览器窗口、标签或框架,包括共存的来自不同提供商的多个浏览器安装(例如,微软Internet Explorer和Google Chrome)。
就它们的职责被缩减为处理图形用户接口以便在显示器110上向用户104输出的意义而言,UI小部件406y和406z被最小化。客户端应用的所有其它功能都被委派给该中央应用后台程序416以便集中处理。如以上所描述的,该功能委派由浏览器(402y和402z)的特殊远程过程调用(RPC)插件(414y和414z)进行调解。插件414y和414z由服务提供方所提供,并且从(处于域x.com的)服务器114下载到浏览器402y和402z。插件414的职责被缩减为仅对中央应用后台程序416的原有分段418和UI小部件406之间两个方向的控制消息进行中继。
如以上所描述的,中央应用后台程序416被划分为两个部分:
1. 拥有三个实质性组成部分的原有部分:
     a. 服务提供方的原有库412;
     b. 允许跨设备102分布的多个web组件(例如,浏览器402)之间灵活且安全的信令传递的RPC枢纽420;和
     c. JavaScript引擎424的实例。
2. 由控制和状态模块408所构成的基于web的部分,其符合HTML 5标准,并且从(处于域x.com的)服务器114动态下载到设备102。
嵌入在中央应用后台程序416中的JavaScript引擎424允许客户端应用的控制和状态模块408集中位于设备102上(中央应用后台程序416上)并且使用基于web的技术来实施,即其是面向web的。这样的可嵌入JavaScript引擎424存在若干选择,包括Webkit浏览器以及Google的V8 JavaScript引擎。
如以上所描述的,优选实施例的控制和状态模块的HTML 5属性允许利用基于web的技术的以下益处:
1. 组件的web升级能力,由于其就像常规网页一样从服务提供方的web服务器114动态下载,因此要进行浏览器高速缓存形式的典型性能优化。
2. 使用HTML 5数据库进行状态存储。
3. 有力的应用开发工具,以及可在市场上获得的主流web开发人员技能。
为了以它们以协同方式一起工作的方式将设备102中实施的组件连接在一起,本发明提供了一些在设备102中提供的分布式计算设施。这些分布式计算设施包括:
1. RPC插件(414和422),在所有所涉及的浏览器402中,其包括:(i)用来加载合作伙伴web应用实例404的web浏览器402,即由用户104在设备102上安装的现成浏览器,诸如微软Internet Explorer或Google Chrome;和(ii)嵌入式JavaScript引擎424,其例如可以是Webkit。
2. RPC插件(424和422)和中央应用后台程序416的原有分段418之间的TCP连接。
3. 中央应用后台程序416所保管的RPC枢纽420。该RPC枢纽420使用RPC插件(414和422)和后台程序416之间的TCP连接,并且实施更高级的发布-订阅通信设施,允许JavaScript代码跨设备102相互通信。
在发布-订阅通信过程中,消息发送方(称作“发布方”)并不对要直接发送至具体接收方(称作“订阅方”)的消息进行编程。相反,所发布的消息被描述为类别,而如果有的话,并不了解会有什么样的订阅方。订阅方表现出对一个或多个类别的兴趣,并且随后仅接收(即,(多个)指定类别的)感兴趣的消息,而如果有的话,并不了解有什么样的发行方。
设备102中的组件使用诸如JavaScript对象概念(JSON)的结构数据格式通过TCP连接在RPC插件(414和422)和客户端应用的原有分段418之间交换控制消息。
设备102中的分布式计算设施允许两种类型的通信发生:
1. 集中的基于web的控制器(即,控制和状态模块408)能够访问原有库412的容量;和
2. 多个基于web的UI小部件(406)能够使用RPC枢纽420的发布-订阅能力与集中的基于web的控制器(即,控制和状态模块408)进行双向通信。
图5示出了依据图4所示并且在以上描述的部署的表示将客户端应用与设备102的设备平台上的web应用实例404进行集成的处理的流程图。在步骤S502,(多个)UI模块406被从服务器114下载并且嵌入(多个)应用实例404。UI模块406使用基于web的技术所实施。
在步骤S504,在中央应用后台程序416上实施客户端应用的原有部分。客户端应用的原有部分被安装在设备102上(例如,存储在存储器108中)并且使用设备平台原有的技术所实施。
在步骤S506,在中央应用后台程序406上实施控制和状态模块408。控制和状态模块408在中央应用后台程序416的JavaScript引擎424上使用基于web的技术所实施。
使用两个一般示例将本发明的操作属性解释清楚。图6示出了一个消息序列图,其示出了第一示例中设备102中的组件之间的消息通信。如图6所示的第一示例图示了用户104使用UI小部件406y所发起的交互的一般情形。该交互涉及基于web的控制器408以及客户端应用412的原有库。
依据图6的示图在第一示例中实施以下步骤:
1. 响应于一些用户动作,UI小部件406y在存在于UI小部件406y被加载的浏览器402y中的RPC插件414y上发起JavaScript调用。
2. 该调用的效果是通过TCP连接从RPC插件414y向位于中央应用后台程序416的原有分段418中的RPC枢纽420传输补充JSON消息。
3. RPC枢纽420将该消息中继至控制器408(即控制和状态模块408),这是由控制器408(根据发布-订阅协议)所订阅的通道所指示的,并且其由UI小部件406y所选择。
4. 指向控制器408的JSON消息被存在于中央应用后台程序416的JavaScript引擎424中的RPC插件422所接收并且随后被送至控制器408。
5. 控制器在其自己的RPC插件422上发起JavaScript调用,这使得向中央应用后台程序416的原有库412组件传输补充JSON消息。这等同于远程调用该原有库416的服务。
6. 原有库通过执行其自己的原有代码来实施来自控制器408的JSON消息中所包含的请求(即,使用原有技术实施)。
图7示出了一个消息序列图,其示出了第二示例中设备102中的组件之间的消息通信。该第二示例图示了由原有库412所发起的交互的一般情形。触发原有库412内的交互的事件的属性并不影响第二示例的消息传送序列。作为示例,该事件可以是接收到来自系统100的另一个元素的网络消息,该部件是位于网络112上某处的服务器或端点。
依据图7的示图在第二示例中实施以下步骤:
1. 在原有库412内发生事件。
2. 原有库412经由同处中央应用后台程序416中的RPC插件422向控制器408(即控制和状态模块408)传送补充JSON消息,即嵌入到运行控制器408的JavaScript引擎424中。
3. 控制器408的RPC插件422将事件消息经由JavaScript调用送至控制器408。
4. 控制器408基于JavaScript引擎424的HTML 5数据库中所保存的状态以及事件的内容运行以JavaScript进行编码的适当事务逻辑。控制器408进行需要传输至UI小部件406y和406z的某些决策和状态变换。
5. 控制器408(经由RPC插件422)传送指向RPC枢纽420的JSON消息,其包括在逻辑上选择通知实体的发布-订阅通道。
6. RPC枢纽420在将其与UI小部件406y和406z的RPC插件414y和414z相链接的TCP连接上中继消息,其通过在补充发布-订阅通道上进行订阅而表现出了对通知的兴趣。图7所示的示例示出了两个这样的接收通知的UI小部件406y和406z。可以有与406y和406z并发执行的其它UI小部件,但是其并没有订阅该特定通知。
7. RPC枢纽420在将其与和UI模块406y和406z同处一处的RPC插件414y和414z相链接的两个TCP套接字上发送消息。
8. 每个RPC插件414y和414z进而在UI小部件406y和406z上进行补充JavaScript调用,传递消息的内容。
9. 每个UI小部件406y和406z例如在设备102的显示器110上向用户104传递事件的适当图形表示。
这里关于图4描述的部署结合以上讨论的图2和3所示的现有技术部署的不同优点,而排除了他们的至少一些缺点。
特别地,图4所示的部署继承了图2所示的第一现有技术部署中所展现出的控制和状态模块的基于web的属性。然而,图4的部署并没有受到图2的部署的缺陷的影响,其中每个合作伙伴的应用集成在用户设备102上形成单独井仓。相反,在图4所示的部署中,基于web的控制和状态模块408具有设备上的集中位置。这是通过在中央应用后台程序406上实施JavaScript引擎由此允许基于web的模块(诸如控制和状态模块408)在中央应用后台程序406上集中实施而促成的。实现这一目的的同时仍然允许客户端应用的原有部分使用中央应用后台程序416的原有分段418在设备102上集中实施。
与图3所示的第二现有技术部署相比,图4所示的部署继承了控制和状态模块在用户设备上的集中位置,但是避免了针对该模块的原有实施方式的约束。相反,本发明提供了使得控制器和状态模块处于设备中央并且面向于web的能力,即使用HTML 5工具开发并且从web服务器(处于域x.com的服务器114)下载。
此外,本发明在回弹(resiliency)区域提供了一些非功能性优势。
图2所示的第一现有技术部署在插件210中执行客户端应用的原有部分,所述插件210处于运行合作伙伴的web应用204的浏览器202的进程之内。服务提供方的客户端应用的原有部分的崩溃使得浏览器202与其一起瘫痪。在这种情况下,在合作伙伴的web应用实例204中展现出了服务器提供方实施方式的问题,因此由于服务提供方实施方式中的问题而导致了合作伙伴web应用实例204的不良用户印象。与之相反,图4所示的部署并没有受到该问题的影响,因为仅在浏览器插件414中留下了客户端应用的非常瘦的远程过程调用(RPC)功能,而大部分原有代码被移动到了中央应用后台程序416的单独进程中。因此,如果客户端应用的原有代码崩溃,其并不会导致浏览器402崩溃,由此与图2所示的部署中客户端应用的原有代码崩溃时相比产生了web应用实例404更好的用户印象。
图3所示的第二现有技术部署将服务提供方的客户端应用的所有非UI代码在中央应用后台程序316中组合在一处。客户端应用的任意(非UI)组件的崩溃都会使得整个后台程序进程316瘫痪。与之相反,在图4所示的部署中,控制和状态模块408的代码在中央应用后台程序416中从原有库412独立出来,由此限制了每个单一组件崩溃的影响。换句话说,如果客户端应用的一部分(例如,控制和状态模块408)崩溃,其并不会导致客户端应用的其它的独立出来的部分(例如,原有库412)也崩溃,反之亦然。
因此,描述了一种用于将客户端应用与设备102上的web应用实例进行集成的部署,其提供了也能够使用基于web的技术来实施的集中的控制和状态模块416。这是通过在中央应用后台程序上实施JavaScript引擎424由此允许控制和状态模块408是集中且基于web的而实现的。
图4所示的组件(402至424)优选地以供设备102上的CPU 106执行的软件所实施。例如,该组件可以通过记录于非瞬时计算机可读介质上的计算机程序产品来提供,其被配置为当在设备102上的CPU 106上执行时执行这里所描述的方法。可替换地,图4所示的组件(402至424)以设备102上的硬件模块来实施。
设备102可以为能够在其上实施这里所描述的应用的任意适当类型。例如,设备102可以是移动电话、个人计算机、膝上计算机、电视,或者能够存储并执行这里所描述的应用并且还能够连接至网络112并与之通信的任意其它设备。
服务提供方的客户端应用可以是用于通过网络112例如与连接至网络112的其它用户设备进行通信的客户端应用。如对于本领域技术人员显而易见的,该客户端应用可以是用于在设备102执行其它功能。
此外,虽然已经参考优选实施例特别示出并描述了本发明,但是本领域技术人员将要理解的是,可以进行形式和细节方面的各种变化而并不背离如所附权利要求所确定的本发明的范围。

Claims (11)

1. 一种将与服务提供方相关联的客户端应用与设备的设备平台上实施的至少一个web应用实例进行集成的方法,该方法包括:
将客户端应用相应的至少一个用户接口模块嵌入至少一个web应用实例,所述至少一个用户接口模块使用基于web的技术所实施;
以集中方式在设备上实施客户端应用的原有部分,客户端应用的所述原有部分被安装在设备上并且使用设备平台原有的技术所实施;并且
以集中方式在设备上实施客户端应用的控制模块,所述控制模块使用基于web的技术所实施。
2. 根据权利要求1的方法,其中一次仅在设备上实施客户端应用的原有部分的一个实例。
3. 根据权利要求1的方法,其中一次仅在设备上实施客户端应用的控制模块的一个实例。
4. 根据权利要求1的方法,其中客户端应用的原有部分与客户端应用的控制模块在设备上使用集中程序来实施。
5. 根据权利要求1的方法,其中客户端应用的原有部分包括以下的至少一个:(i)服务提供方的原有库,(ii)用于促成使用基于web的技术的设备上的组件之间的信令传送的远程过程调用枢纽,和(iii)JavaScript引擎的实例。
6. 根据权利要求1的方法,其中针对每个web应用实例实施相应的浏览器插件,所述浏览器插件具有用于与客户端应用的控制模块和原有部分中的至少一个进行通信的远程过程调用功能。
7. 根据权利要求6的方法,其中远程过程调用功能促成用于在至少一个web应用实例以及客户端应用的控制模块和原有部分中的所述至少一个之间中继控制消息的传输控制协议连接。
8. 根据权利要求7的方法,其中控制消息使用发布-订阅通信进行中继。
9. 一种用于将与服务提供方相关联的客户端应用与设备的设备平台上实施的至少一个web应用实例进行集成的计算机程序产品,该计算机程序产品记录于非瞬时的计算机可读介质上并且被配置为当在设备的处理器上执行时执行根据之前任一项权利要求的方法。
10. 一种被配置为将与服务提供方相关联的客户端应用与设备的设备平台上实施的至少一个web应用实例进行集成的设备,该设备被配置为:
将客户端应用相应的至少一个用户接口模块嵌入至少一个web应用实例,所述至少一个用户接口模块使用基于web的技术所实施;
以集中方式在设备上实施客户端应用的原有部分,客户端应用的所述原有部分被安装在设备上并且使用设备平台原有的技术所实施;并且
以集中方式在设备上实施客户端应用的控制模块,所述控制模块使用基于web的技术所实施。
11. 一种或多种其上存储计算机可执行指令的计算机可读存储媒体,所述指令当由计算设备执行时,使得所述计算设备实现如权利要求1-8中的任一个所述的方法。
CN2012105148133A 2011-12-05 2012-12-05 集成应用 Pending CN103019712A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/311,232 US20130145357A1 (en) 2011-12-05 2011-12-05 Integrating applications
US13/311,232 2011-12-05

Publications (1)

Publication Number Publication Date
CN103019712A true CN103019712A (zh) 2013-04-03

Family

ID=47472017

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2012105148133A Pending CN103019712A (zh) 2011-12-05 2012-12-05 集成应用

Country Status (4)

Country Link
US (1) US20130145357A1 (zh)
EP (1) EP2771787A1 (zh)
CN (1) CN103019712A (zh)
WO (1) WO2013086049A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104808606A (zh) * 2014-01-29 2015-07-29 西门子公司 在工业自动化系统之内提供功能的方法和工业自动化系统
US10078314B2 (en) 2014-01-29 2018-09-18 Siemens Aktiengesellschaft Method for providing functions within an industrial automation system, and industrial automation system

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9910833B2 (en) * 2012-11-13 2018-03-06 International Business Machines Corporation Automatically rendering web and/or hybrid applications natively in parallel
US20150052256A1 (en) * 2013-08-15 2015-02-19 Unisys Corporation Transmission of network management data over an extensible scripting file format
US9948749B2 (en) 2015-06-05 2018-04-17 Apple Inc. Method and system for rendering content using templates
CN106325957A (zh) * 2016-08-31 2017-01-11 广州品唯软件有限公司 一种插件加载方法及设备
US11227027B2 (en) * 2018-09-06 2022-01-18 Salesforce.Com, Inc. Managing accessibility on customer web pages
US10873635B2 (en) * 2018-09-24 2020-12-22 Salesforce.Com, Inc. Multi-channel session connection management mechanism
US10963538B2 (en) * 2019-07-31 2021-03-30 Salesforce.Com, Inc. Client application for web application execution

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090172657A1 (en) * 2007-12-28 2009-07-02 Nokia, Inc. System, Method, Apparatus, Mobile Terminal and Computer Program Product for Providing Secure Mixed-Language Components to a System Dynamically
US20100169795A1 (en) * 2008-12-28 2010-07-01 Nortel Networks Limited Method and Apparatus for Interrelating Virtual Environment and Web Content
CN101771993A (zh) * 2008-12-31 2010-07-07 中国移动通信集团公司 基于移动网络实现聚合应用的系统及其方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8069435B1 (en) * 2003-08-18 2011-11-29 Oracle America, Inc. System and method for integration of web services
US7945774B2 (en) * 2008-04-07 2011-05-17 Safemashups Inc. Efficient security for mashups
US9009657B2 (en) * 2008-04-20 2015-04-14 Microsoft Technology Licensing, Llc Component-oriented architecture for web mashups
US20100180330A1 (en) * 2009-01-09 2010-07-15 Microsoft Corporation Securing Communications for Web Mashups
US8918517B2 (en) * 2009-06-16 2014-12-23 Microsoft Corporation Publish/subscribe mashups for social networks

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090172657A1 (en) * 2007-12-28 2009-07-02 Nokia, Inc. System, Method, Apparatus, Mobile Terminal and Computer Program Product for Providing Secure Mixed-Language Components to a System Dynamically
US20100169795A1 (en) * 2008-12-28 2010-07-01 Nortel Networks Limited Method and Apparatus for Interrelating Virtual Environment and Web Content
CN101771993A (zh) * 2008-12-31 2010-07-07 中国移动通信集团公司 基于移动网络实现聚合应用的系统及其方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HEIKO PFEFFER: "An Underlay System for Dynamic and Distributable Web Applications", 《HTTPS://OPUS4.KOBV.DE/OPUS4-TUBERLIN/FRONTDOOR/INDEX/INDEX/DOCID/2476》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104808606A (zh) * 2014-01-29 2015-07-29 西门子公司 在工业自动化系统之内提供功能的方法和工业自动化系统
US10078314B2 (en) 2014-01-29 2018-09-18 Siemens Aktiengesellschaft Method for providing functions within an industrial automation system, and industrial automation system

Also Published As

Publication number Publication date
WO2013086049A1 (en) 2013-06-13
EP2771787A1 (en) 2014-09-03
US20130145357A1 (en) 2013-06-06

Similar Documents

Publication Publication Date Title
CN103019712A (zh) 集成应用
US11144711B2 (en) Webpage rendering method, device, electronic apparatus and storage medium
US10033533B2 (en) Mobile solution for signing and retaining third-party documents
US7756905B2 (en) System and method for building mixed mode execution environment for component applications
US20110113090A1 (en) Dynamic mobile client
US8966508B2 (en) Method for executing hybrid web application and apparatus therefor
CN101855618A (zh) 用于在应用执行期间改变执行环境的方法和系统
CN105045887A (zh) 混合模式跨域数据交互的系统及其方法
US20140330899A1 (en) Data Infrastructure For Providing Interconnectivity Between Platforms, Devices, and Operating Systems
US9300610B2 (en) System and method for selecting a file stored on a cloud server
WO2017059727A1 (zh) 数据自适应显示方法、终端设备及服务器
US20150271269A1 (en) Increased interoperability between web-based applications and hardware functions
CN103155530A (zh) 包括将脚本命令下载至用户终端的网络-电信融合
CN101876998B (zh) 一种实现数据编辑的方法和系统
CN112764746B (zh) 数据处理方法、装置、电子设备及存储介质
US20180074799A1 (en) Integration for next-generation applications
CN103425473A (zh) 一种开放式微博的实现方法和系统
CN102523271A (zh) 一种终端及其通信方法、系统
KR101553539B1 (ko) 동적 링크 제공 방법 및 이를 수행하는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
KR101435114B1 (ko) 인터넷 웹페이지 로딩 방법, 이를 수행하는 사용자 단말 및 기록매체
KR101123029B1 (ko) 웹보관소파일형식을 통해 웹정보를 전송하는 이동통신시스템 및 그 제어방법
JP2024519677A (ja) 情報インタラクション方法、装置及び電子機器
KR102020045B1 (ko) 하이브리드 웹 어플리케이션 실행 방법 및 하이브리드 웹 어플리케이션 실행 장치
Yang The development of mobile end web system development based on HTML5+ CSS3+ java framework
Brodt Location-based mashups for nokia internet tablets

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20130403