CN101939736B - 远程计算设备的开发富互联网应用的系统和方法 - Google Patents
远程计算设备的开发富互联网应用的系统和方法 Download PDFInfo
- Publication number
- CN101939736B CN101939736B CN200880104954.XA CN200880104954A CN101939736B CN 101939736 B CN101939736 B CN 101939736B CN 200880104954 A CN200880104954 A CN 200880104954A CN 101939736 B CN101939736 B CN 101939736B
- Authority
- CN
- China
- Prior art keywords
- application
- rich internet
- user interface
- server
- internet 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/168—Implementing security features at a particular protocol layer above the transport layer
Abstract
一种开发远程计算设备富互联网应用(RIAs)的系统,利用认证的应用播放器通过单个安全认证的中介体服务器唤起服务器端网络服务,所述系统包括集成开发环境(IDE)。IDE包括:包括图形组件的工具框,配置被拖放到实现所述RIA处理流的UI状态;以及网络服务描述语言(WSDL)集成器,用于产生接入网络服务的网络服务调用,以处理来自所述UI状态的输入并产生输出结果。
Description
相关共同待审申请的交叉引用
本申请要求于2007年8月31日提交的、名称为“远程计算设备的开发富互联网应用的系统和方法”的美国临时申请系列号No.60/969428的权益,其与本申请均被转让,其内容通过引用整体包含于此。
本申请还是于2007年5月30日提交的、名称为“远程计算设备中播放富互联网应用的系统和方法”的美国申请系列号No.11/755079的部分继续申请,其与本申请均被转让,其内容通过引用整体包含于此。
技术领域
本申请涉及开发富互联网应用(RIAs)的系统和方法,具体地,涉及一种设计运行于远程计算设备的开发RIA的集成开发环境(IDE)。
背景技术
桌上应用提供丰富的用户界面体验,桌上应用对于开发和使用允许用户响应所连接的其它设备并与之交互的本地硬件和软件资源而言不复杂和困难。桌上应用的一个例子是微软的OutlookTM,一种设计用于检查电子邮件、管理日程表和联系信息的应用。另一方面,基于网络(web)的应用是HotmailTM,一种用于检查电子邮件的网站。基于网络的应用易于部署和管理,甚至也可以部署在偶尔连接到网络的移动设备上。智能客户端应用是组合桌上应用和基于网络的应用的最佳功能。它们使用本地硬件和软件资源,并提供丰富的用户界面体验。它们是互联网或任何其它网络上交换数据的连接应用。它们也能够离线运行并能易于部署和更新。智能客户端应用处于对立面以取代桌面计算设备上的传统的基于网络的应用,并最终取代远程移动设备,因为计算机用户习惯于丰富的媒体体验并期望即使当他们在移动设备上使用基于网络的应用时仍具有类似的丰富体验。当我们使用术语“桌上应用”时,我们特指包括使用传统的桌上方法的开发用于桌上的应用和开发用于远程设备的应用二者。
富互联网应用(RIA)是智能客户端网络应用(web-application),具有传统的桌上应用的功能,但是向网络客户端传输用户界面所需的处理,同时在应用服务器上保持后台的大量数据。
远程移动设备包括移动电话机、个人数据助理(PDAs)、销售点(POS)设备、平板电脑(tablet)、寻呼机和膝上电脑等等。远程移动设备通常是低功率的,仅通常经由有限的带宽连接而偶尔连接到服务器。移动设备具有非常有限的存储和处理能力,并常常脱离它们的覆盖区域或因其他原因而不能连接到网络。而且,移动设备易于丢失和/或被偷,并且通常运行在不同的平台和操作系统上。用于远程移动设备的应用(即,远程移动应用)由于不同的平台和操作系统而难于开发和部署。在部署时,移动应用还难于认证和控制。由于远程设备的移动性和易于丢失和/或被偷、以及它们通常基于有效于桌上环境的假设和/或方法而被开发,它们固有地是不安全的。
历史上,经过高级培训的程序员已经进行了移动应用开发。但是,越来越多的外行人也试图开发移动应用,但是,当前可用的开发语言和环境使得此任务对于非经过高级培训的程序员而言是困难的。移动设备的断续连接性使得下载和部署应用成为易于出错的过程,当应用变得越丰富越庞大,则该过程变得越易于出错。此外,移动设备常常需要使用特定于该设备的机制来安装上述应用并且超越了获得实际字节代码所需的努力。诸如移动付费应用的高价值应用常常不得不由中立第三方来认证以追求最佳安全实践。无线应用的认证处理极其漫长,包括诸如服务器软件、客户端软件、通信协议等等的引用的所有组件的认证。在某些情况中,认证可能持续几年,使得开发周期的大多数时间均消耗在等待之中。一旦在移动设备中布置了应用,则难于对其进行控制,因为不能假定该设备处于单个物理位置和/或处于“经常坐于那个位置的人”的控制之下。部署在移动设备上的应用由于设备的移动性和易于丢失而固有地是不安全的。在丢失的移动设备上存储的数据会被没有打算去了解的人截获,并且设备自身易于被截获。设计企业桌上应用以在实际企业内包含的、作为企业网络上的逻辑节点的实际桌上计算机上运行。它们的物理安全性包含于企业的物理安全性之中,并且它们的网络活动受限于企业网络管理员选择强加于它们的任何限制。另一方面,移动应用运行于企业的物理边界之外,并且是公共网络上的逻辑网络节点,因此典型地不受关于它们可能接触的其他网络节点的任何限制。因此,移动设备在运行于为桌上计算机开发的应用或使用传统的桌上方法开发的应用时实际上是不安全的。
理想地,设计运行在移动设备上的富互联网应用(RIAs)必须解决所有这些局限。而且,期望作为独立平台的应用允许企业将其部署在自身的移动设备和自身的桌上机器以及其他设备上。现有的用于递送RIAs的客户端应用对于蜂窝电话而言太大,并且现有的智能客户端解决方案需要编程知识,其排除了许多潜在的开发者。现有的智能客户端解决方案包括如下:
·J2ME,即Java 2 Micro Edition,是设计运行在蜂窝电话机、个人数字助理(PDA)以及其他移动设备上的Java虚拟机(JVM)的简化版本。但是,当联网时J2ME解决方案不安全,因为J2ME不解决如何限制设备免于杂乱的/危险的网络互联性的问题。J2ME是一种可能的技术和平台。JVM类型解决方案需要定制客户端编程、网络编程和服务器端集成。
·.NET Compact Framework,其是.NET Framework的一种版本,设计运行在诸如PDA和移动电话机的移动设备上。.NET Framework是微软提供的主要产品,适于通过为视窗平台创建的大多数新应用所使用。类似于J2ME,它是一种可能的技术和平台,但是当联网时缺少安全性。
·AJAX,异步JavaScript和XML,是用于向浏览器提供RIA的技术集合。AJAX应用在开发和部署上复杂,并且不能接入控制。而且,AJAX调用可以在任何地点进行,这使得其不适合企业。
·FLEX,是简化的XML语言,被解释成Flash并与服务器组件集成。FLEX能够调用任何URL、定向或非定向网络服务,并且因此不与任何网络服务标准绑定或兼容,因此牺牲了安全性。
·Flash Lite,是设计运行于蜂窝电话机、个人数字助理(PDAs)以及其他移动设备的Macromedia Flash Player的简化版本。Flash解决方案当联网时不是固有地安全,因为Flash不解决如何限制设备免于杂乱的/危险的网络互联性的问题。Flash也是一种可能的技术和平台,在其上可以运行应用播放器。
·LAZSLO,一种包括Lazslo服务器的用于RIA的开发平台。LAZSLO缺乏安全性,仅着重和解决单方面问题,即,如何向多个设备类型递送相同的应用。
·无线应用协议(WAP)浏览器-类型应用,WAP是一种使用用于提供到移动设备的互联网接入的无线通信的应用的开放国际标准。WAP站点是以无线标记语言(WML)编写的站点,并且经由WAP浏览器接入。基于WAP的解决方案具有受限的离线能力,使得带宽要求与UI的混杂成比例,需要定制服务器端集成,并遭受无身份的开放端点网络应用的安全攻击。相对于它们能接入的客户端外设,它们也具有严重的限制。
因此,需要一种用于开发包括桌上计算机和移动设备的各种设备的RIA的方法,来克服上述安全性、接入控制、计算能力、带宽和平台问题。
发明内容
本发明涉及一种开发远程计算设备的富互联网应用的方法和系统,远程计算设备利用认证的播放器通过单个安全认证的服务器中介体唤醒服务器端网络服务。通常,一方面,本发明体现为一种开发富互联网应用(RIA)的方法,通过驻留在远程计算设备中的应用播放器配置运行在远程计算设备上。该方法包括:提供授权RIA的集成开发环境(IDE)。该IDE包括:工具框,用于向用户界面(UI)状态添加图形组件;网络服务描述语言(WSDL)集成器,用于处理和操纵网络服务和用于向用户界面状态的图像组件添加逻辑的工具。接着,开发RIA处理流并通过产生一个或多个UI状态借助IDE实现RIA处理流。接着,从工具框向UI状态拖放一个或多个图形组件,并设置每一个图形组件的一个或多个属性值。接着,通过WSDL集成器产生一个或多个用于接入一个或多个网络服务的网络服务调用。配置网络服务以接收来自UI状态的输入,处理该输入并产生输出。通过将远程计算设备连接到中介体服务器接入网络服务,并且中介体服务器经由单个安全且接入受控的网络连接来接入网络服务。
本发明该方面的实施可以包括一个或多个下列的特征。RIA处理流包括输入UI状态、处理UI状态、输出UI状态和错误UI状态。图形组件可以是显示内容的标签、输入内容的文本框、或者用于经由网络服务调用启动处理的选择器。图像组件的属性可以是:名称、水平和垂直位置坐标、高度、宽度、长度、持续性、可见性、文本格式、数字格式、对齐、式样、与选择器相关的密钥(key)、或选择器的目标状态。该方法可以还包括:向UI图形组件添加逻辑。配置IDE以提供RIA的状态图、RIA的分值(score)图、RIA的代码图和RIA的脚本图。状态图显示UI状态的可视图像,一次一个状态;分值图显示列有每个状态的图形组件的表格;代码图显示与每个状态相关的代码;脚本图显示与单个图形组件相关的脚本;并且配置RIA被授权在任意各图中。RIA包括扩展标记语言(XML)格式。该方法可以还包括:将RIA提交到测试服务器,通过测试服务器调试和验证应用,将网络服务调用转换成全局唯一标识符(GUIDs),将RIA格式变换成计算设备的格式,并将RIA部署到远程计算设备。RIA处理流可以包括多于一个的输入UI或输出UI状态。
通常,在另一方面,本发明体现为一种开发富互联网应用(RIA)的系统,通过驻留在远程计算设备中的应用播放器配置运行在远程计算设备上。该系统包括:集成开发环境(IDE)。IDE包括:工具框;网络服务描述语言(WSDL)集成器,配置用于产生接入一个或多个网络服务的一个或多个网络服务调用,以处理来自UI状态的输入。IDE工具框包括:图形组件,配置被拖放到实现RIA处理流的UI状态;以及用于设置每一个图形组件的一个或多个属性值的工具。通过将远程计算设备连接到中介体服务器接入网络服务,并且中介体服务器经由单个安全且接入受控的网络连接来接入网络服务。
本发明的优点可以是下列的一个或多个。本发明提供从远程计算设备到企业网络服务的安全接收受控的信道。与通过网络的所有通信相比,本发明通过单个安全认证服务器中介体提供网络服务安全性、网络服务接入控制、设备接入控制和验证、链接安全性、审计以及接入控制的粒度。甚至在通过网络传输期间,所有的数据仍是安全的。该系统提供商业活动的审计和跟踪,从而有利于设备与外界的交互。该系统为各个网络服务调用等级提供接入控制的粒度。而且,应用播放器的使用而不是试图在客户端设备上直接运行RIA提供了独立于RIA的平台,甚至在离线时仍能使能功能,并缩短了应用认证处理的长度。通过系统集成开发环境(IDE),可以容易地开发应用。创建有效的RIA的许多挑战是提供满意体验的用户界面。本发明包括了用于RIA开发的拖放图形用户界面,其将安全的设备的不可知的开发扩展至广大的各种编程人员,甚至是那些未经软件工程师培训的人员。
附图说明
图1是实际企业系统的概略图;
图2是图1的系统体系结构的详细图;
图3是应用播放器体系结构的详细图;
图4是在远程计算设备上播放RIA的方法的流程图;
图5是将远程计算设备连接到网络服务的中介体服务器的概略图;
图6A是通过本发明的IDE开发RIA的系统的框图;
图6B是通过本发明的IDE开发RIA的方法的流程图;
图7是UI设计过程的流程图;
图8是调试和公布RIA的过程的流程图;
图9A描述根据本发明的RIA的输入UI状态;
图9B描述根据本发明的RIA的输出UI状态的处理;
图10A描述根据本发明的RIA的输入UI状态的状态图;
图10B描述根据本发明的RIA的分值图;
图10C描述根据本发明的UI状态的代码图;
图11A描述IDE的工具框;
图11B描述IDE的图形组件的属性表;
图12描述新RIA应用的IDE屏幕;
图13描述RIA的输入和输出UI状态;
图14描述根据本发明的典型RIA处理流;
图15A描述RIA的输入和输出UI状态;
图15B描述RIA的处理和错误UI状态;
图16描述WSDL集成器屏幕;
图17描述具有输入和输出数据的WSDL集成器屏幕;
图18描述RIA的输入UI状态的IDE屏幕;
图19描述用于处理图18的RIA的UI状态的IDE屏幕;
图20和图21描述图18的RIA的输出UI状态的IDE屏幕;
图22描述图18的RIA的错误UI状态的IDE屏幕;
图23描述向高速缓冲代理公布企业资源;以及
图24描述向高速缓冲代理公布网络资源。
具体实施方式
本发明提供用于开发被设计运行在移动设备上的富互联网应用(RIAs)的系统和方法。该系统包括提供下列功能的一组工具:将移动设备安全地连接到网络服务、审计移动设备的活动、限制设备对授权功能的接入以及提供用于移动设备的用户界面(UI)。该组工具包括:集成开发环境(IDE)、应用仿真器、应用播放器1110,如图2和图5所示;以及服务器3000,如图1和图5所示。IDE用于开发定向于网络服务的应用,以便它们能够运行在移动设备上。仿真器用于在发布用于移动设备上的RIAs之前在桌上计算机上测试该开发的准备用于移动设备的RIAs。应用播放器用于在移动设备上运行应用,以及服务器用于在移动设备和网络服务之间提供安全连接。服务器还提供应用管理和审计。
参照图1和图5,系统100包括一个或多个客户端设备1000,经由网络连接520与服务器3000交互。服务器3000经由网络服务接口层5000B与企业应用5000A联系。服务器3000还经由网络服务接口层5000B与应用所利用的其他网络服务5000C联系。网络服务接口层5000B经由单个安全接入受控的连接550连接到服务器3000。
通常客户端设备1000是其上执行应用用户界面的手持远程通信设备。手持通信设备的例子包括移动电话机、个人数字助理(PDA)、支付模块以及便携式计算机等等。在另一个实施例中,客户端设备1000是非手持设备,诸如个人计算机、服务器或任何其它计算设备。
服务器3000是通过其企业应用5000A与客户端设备1000进行通信的单个的安全服务器。客户端设备1000能够仅与服务器3000进行联系,并且服务器3000控制在企业应用5000A(以及其潜在的敏感或专有数据)与希望使用它的那些客户端设备之间的通信。这使能了客户端设备和应用的验证以及来自客户端设备1000的网络请求的加密和安全传输。
参照图2、图3和图5,远程客户端设备1000包括其中执行应用播放器1110的操作系统或被管理的代码环境1100。在一个示例中,应用播放器1110以C编写,并且通过诸如视窗CE的操作系统来执行。在另一个例子中,应用播放器1110以C#编写,并且通过诸如Compact.NET的被管理代码环境来执行,被管理代码环境通过操作系统来执行。被管理代码环境1100与设备驱动器1200联系,以及可选地与安全支付模块1200B联系。设备驱动器1200是允许播放器1110接入诸如读卡器或打印机之类的外部设备的任何硬件接入层模块。应用层1110与浏览器配置组件1400以及具有其相关离线应用数据1310的离线应用高速缓存1300联系。应用播放器1110通过在简单对象访问协议(SOAP)请求中嵌入的XML消息而从服务器端中介体3400请求功能,然后解释它接收的在来自服务器端中介体3400的SOAP响应中嵌入的XML消息。应用播放器1110已经访问其被授权请求的应用的本地列表以及相关的安全密钥和设置。服务器端中介体3400从播放器1110接收SOAP请求中嵌入的XML消息,并将SOAP请求中嵌入的XML消息发送到播放器1110。如上所述,在应用播放器1110和服务器端中介体3400之间的通信格式是XML,并且经由SOAP接口2100进行通信连接。该系统还包括位于网络上、附加应用服务器4000上的一个或多个远程非图形网络服务,并且能够潜在地以播放器1110上的RIA而被图形显示。
在一个示例中,被管理代码环境1110是小型技术互操作平台虚拟机(STIP VM)。被管理代码环境1110的其他示例包括Jave 2 Platform MicroEdition(J2ME)、.NET和Flash Lite等等。操作环境1100提供播放器1110接入操作系统资源的方法。被管理代码环境1110执行应用播放器1110,应用播放器1110与浏览器配置组件1400以及具有其相关离线应用数据1310的离线应用高速缓存1300联系。离线应用高速缓存1300是该播放器例程已经下载的一组应用(XML文件)。离线应用数据1310是一种每一个应用已经保存用于在应用服务器主机上随后执行的一组存储的网络服务调用。这些存储的网络服务调用使能离线功能。浏览器配置组件1400是播放器1110及其应用用于定制用户的应用体验的一组特定于设备的参数。这些配置组件本地地存储的名称-值对,其能够经由服务器3000被本地地和远程地管理。浏览器配置参数的例子包括:离线高速缓存的最大尺寸、播放器自动更新开启/关闭、应用自动更新开启/关闭以及调试日志开启/关闭等等。应用播放器的使用而不是试图在客户端设备上直接运行RIA提供了独立于RIA的平台,甚至在离线时仍能使能功能,并缩短了应用认证处理的长度。
再次参照图2,服务器3000包括所有去往和来自客户端设备1000的通信均经过的服务器端中介体或网关网络服务3400。服务器端中介体3400已经访问具有将全局唯一标识符(GUIDs)与远程网络服务相联系的表格以及指定哪一个网络服务被授权于哪一个播放器的表格的数据库。网关网络服务3400包括在客户端设备1000和应用服务器4000之间起中介体作用的一个或多个服务器端机器,应用服务器4000控制向客户端1000提供RIA功能的网络服务。这些一个或多个服务器端机器包括负载均衡中介体3410、SOAP消息高速缓存3420、策略中介体3430以及权限模块3440。设计负载均衡中介体3410以通过在包括服务器3000的各种服务器端机器中均匀地派发请求同时便利于多个客户端设备1000的要求。SOAP消息高速缓存3420是服务器执行的SOAP消息队列,其结果将典型地返回远程设备1000。策略中介体3430确保仅仅授权客户端设备上的授权用户能够接入RIA功能。权限模块3440控制对一请求期望访问的资源的接入。通过该权限模块使能精细颗粒化的网络服务接入控制。
网关网络服务3400与应用数据库3100、应用存储和高速缓存3200、管理UI 3300、应用注册服务3500、远程调用句柄3600以及API句柄3700进行通信。应用数据库3100包括一组代表系统中当前可用的应用的应用XML文件。应用数据库3100相互引用客户端应用播放器1110通过所请求的RIA的XML用户界面发送的全局唯一标识符(GUIDS)。应用存储和高速缓存3200与符合机器可读的服务功能发现的通用描述发现和集成(UDDI)发现标准的应用数据库3100接口连接。管理用户界面(UI)3300是允许数据中心管理员控制系统使用的一组网络应用屏幕,例如允许或不允许到特定网络服务的接入,或者推动应用的测试到生产。应用注册服务3500是允许开发者从集成开发环境(IDE)公布应用的模块。远程调用句柄3600正确执行验证的网络服务调用,而应用程序接口(API)句柄3700是外部服务5000(象支付处理器)执行以从系统内被访问的接口。在API执行者和网络服务提供商之间没有逻辑区分,它是允许开发者获得例如部署在其周围没有缠绕网络服务的服务器上的DLL的实现机制。
服务器3000安全地处理客户端1000和应用服务器4000之间以及在客户端1000和任何支持应用5000之间的交互,应用服务器4000控制向RIA提供计算和其他功能的网络服务。所有数据处理和其他计算及操纵均由在应用服务器4000上主持的网络服务执行。客户端1000上的RIA的用户体验包括仅显示XML用户界面(UI)和随后显示以XML格式接收的应用结果。
服务器3000提供从运行在设备上的应用到企业无保护的(一个或多个)网络服务器的单个安全接入受控并且主动受管理的信道。因为播放器1110仅与服务器3000进行通信,所以运行在客户端设备1000上的应用不能与未授权的网络应用连接,因此是安全的。该系统沿着经由工业标准链路加密的使用的所有链路以及经由工业标准用户验证的使用的所有接口的受控接入是安全的。链路加密指加密和解密通信线路的每一个端点上的所有流量的通信安全协议。工业标准链路加密的示例包括安全HTTP(S-HTTP)、网络服务安全性(WS-S)以及方向系统(Way System)安全移动应用平台(WS-SMAP)等等。用户验证指建立或确认用户或诸如客户端设备1000或服务器4000和5000的设备的数字身份的过程。工业标准用户验证的例子包括WS-S、轻型目录访问协议(LDAP)以及专有设备验证等等。
企业级的网络服务并未固有地被分类或组织成彼此区分的任何分层。不采用接入控制机制,所有用户具有所有网络服务的同等的接入。这在采用面向服务器的体系结构(SOA,网络服务)作为覆盖从关键任务数据中心应用管理到未限制的公共信息门户的所有系统的企业计划(initiative)的情形中是所不期望的。现有的接入控制机制依赖于每个网络服务内的内部实现,或者受限于正控制网络服务的系统。在本发明中,服务器中介体3000提供由远程用户和远程设备组织的网络服务(WS)接入上的精细颗粒化接入控制,远程用户和远程设备包括多WS主机和组织且不要求各个网络服务的工具(instrumentation)。如上所述,服务器3000保持相关用户和设备到各个网络服务的接入控制列表,并提供那些用户到那些服务的批准和拒绝接入。这些列表包括GUIDS的队列组合以及客户端设备1000可用的远程网络服务的身份。通过系统IDE开发的应用具有嵌入其中的到外部网络服务的引用。当这些引用通过用户运行这样的应用而被执行时,服务器确定哪一个外部网络服务被调用,并检查服务器内部的权利表格,该权利表格可能或可能不包括批准那个用户接入外部网络服务的权利的记录,该调用进行并且该应用沿着正常执行路径进行。如果未批准该权利,则应用产生错误事件,错误事件由应用以应用程序员认为最佳的任何方式掌管。典型地,它将在应用中产生错误消息,但在许多情况中,特别是在移动领域,可以采用权利管理机制来引导用户更新它们的服务级别,即向应用提供商支付更多的金钱。
应用安全最佳实践的关键特征是抗抵赖(non-repudiation)概念。抗抵赖被定义为组件证明组件的特定行为是由与另一个组件的交互而不是由一些不可见的组件的内部进程来驱动的能力。抗抵赖的关键促成技术(keyenabler)是审计、能够容易地用来重构系统组件的交互的行为和数据的轨迹的存储。服务器中介体3000提供与远程设备1000的企业网络服务的交互的完备的审计轨迹,因此保证了抗抵赖。该审计轨迹识别设备、用户、时间戳和到该设备的下层远程连接的细节。在一个实施例中,精细颗粒化接入控制和审计使得服务器3000在均等的精细颗粒化级别上对用户计费。这使得通过企业实现其中针对会话内的各个调用来对用户计费而不是以针对在应用内耗费的时间来计费的更粗略系统而实现分等级服务。
在操作中,用户在客户端设备1000上执行应用播放器1110。应用播放器1110首先查询离线应用高速缓存1300,并给出该客户端设备1000和用户被授权执行的那些应用的列表。参照图4,如果远程设备1000和服务器3000均主动地连接到网络,则该处理包括下列步骤。首先,用户在远程计算设备1000上执行应用播放器1110(401),然后播放器1110通过向服务器3000(网络服务)发送包含GUID和相关参数的SOAP请求(XML)来请求授权的RIA列表(402)。服务器3000查询其数据库并发送包含被显示的应用列表的SOAP响应(103)。播放器通过解释嵌入在SOAP响应中的XML来显示该列表(404)。用户从可用RIA列表中进行选择,并且播放器通过向服务器发送包含GUID和相关参数的SOAP请求来请求所选择的RIA(405)。服务器查询其数据库并发送包含RIA的SOAP响应(XML文件)(406)。播放器通过解释SOAP响应中的XML来执行所选择的RIA(407)。触发事件(例如用户转动小部件来激活RIA功能或者经过了特定时间段)发生,并且播放器向服务器网络服务发送包含GUID和相关参数的SOAP请求以请求服务器侧功能(408)。服务器查询其数据库以确定调用哪一个远程网络服务并向特定的远程网络服务发送包含参数的SOAP请求,潜在地向另一个网络服务发送来自一个网络服务的输出作为参数(409)。服务器从远程网络服务接收最后的输出并向播放器发送包含数据的SOAP响应(410)。播放器通过解释SOAP响应中的XML来显示新信息(411)。如果客户端设备1000没有连接到网络,则应用播放器1110查询离线应用高速缓存1300并显示所选择的应用的用户界面。与该界面的用户交互包括存储在离线数据高速缓存1310中的网络服务请求,用于当网络连接恢复时的传输。
系统体系结构不是预先假设的,且不限于任何特定的物理网络或任何单个的网络驱动器栈。所有的系统组件都是开放源代码组织(OSI)模型中的应用,取决于下层操作系统提供什么样的网络互联性。在OSI模型中,它们是层7(应用层)服务的消费者。通过依靠无状态连接,系统体系结构假定仅仅预设产生请求和接收响应的能力的最低公共共同网络功能。典型的服务器3000到外部网络服务的网络连接是公共互联网上的HTTPS/TCP/IP。该栈对于其支持的远处设备1000也是典型的。所支持的物理网络的例子包括:GSM、iDEN、D-AMPS、cdmaOne、PDC、CSD、PHS、GPRS、HSCSD、WiDEN、CDMA2000、1xRTT、EDGE、W-CDMA、UMTS、FOMA、CDMA2000 1xEV、TD-SCDMA、UMA、HSDPA、HSUPA、SONET、以太网、以太网V2、X.21、ISDN等等。
如果在用户选择应用时,客户端设备1000连接到网络,则应用播放器1110向网关网络服务3400发送SOAP请求2100。该SOAP请求2100包含指示将执行的网络服务的GUID、将传递到该服务的任何参数以及验证信息。本发明的另一个实施例可以将SOAP 2100替换为动作脚本消息格式(AMF)2200或SMAP 2300。SOAP界面2100是一种通过其播放器和服务器进行通信的潜在的机制。在任何播放器部署中使用仅仅2100、2200或2300之一。SOAP是XML格式的面向对象的远程过程调用。AMF 2200是另一种通信协议,当前Macromedia Flash偏爱该协议。SMAP 2300是专用于包括传输层和应用层功能(即验证)的方向系统的通信协议。
参照图5,移动设备的面向网络服务的应用是设计将在移动设备1000的应用播放器1110中显示的、在服务器3000上执行的标记语言文档。所显示的UI收集来自用户的输入,并且该标记语言文档指定通过该输入做什么。该应用将标记语言文档表达成SOAP消息,并经由服务器3000将该消息转发到网络服务5000A到5000C进行处理。在本发明的一个实施例中,以XML格式表示该应用标记语言文档。XML格式因为其广为人知而被认为是最有利于开发目的的。但是,本发明就其实现而言绝不是依赖于此或者限制于该格式。用少量的语言已经实现了第二实施例,其产生了相同应用信息的序列化版本。
IDE工具用于开发设计运行于系统100上的应用。使用本发明开发应用的简便之处部分在于软件工具的使用。参照图6A,整个应用开发系统50包括:运行专用IDE工具55、连接到测试服务器54的开发者工作站52,测试服务器54依次连接到生产服务器56。开发者通过IDE工具55构建应用,并将它们公布到测试服务器54。该公布功能将该系统与其他系统区分开来。这些应用在测试服务器54上被测试并通过质量保证,接着由用户借助合适的管理员接入而将其推向生产服务器56。典型地,从开发通过测试、质量保证到进入生产的获得应用的商业工艺流程经由不连接的一系列脚本而实现,通过该过程中的一些单独开发者/管理者手动运行每个脚本。服务器将所有开发、测试和部署应用的商业工艺流程封装成允许管理者通过图形界面监视和控制该过程的单个集成解决方案。针对在开发过程中的多个专用测试服务器的链接,本系统提供实现多层次测试和质量保证过程的企业的关键不同之处。
参照图6B,开发设计运行于移动设备1000的应用的过程80包括:设计UI(82)、操纵网络服务(84)、通过IDE工具55向UI组件添加逻辑(86)。该过程80还包括测试应用(88)和公布应用(89)。
参照图7,设计应用UI(82)包括步骤:设计描述应用处理流的屏幕/显示(61),接着向这些屏幕拖放图形组件(62),接着设置那些图形组件的属性值以创建功能(63)。在请求附加功能的情况下(即,除了通过单独设置属性能够指定的功能之外还需要功能的情况),通过明确的代码来补充那个功能(64)。代码可以是原来的XML格式或以其可使用编译器设计的传统方法被翻译成原来的格式的脚本语言。
应用处理流包括一系列的显示所谓的“状态”。每一个状态包括一些列的设计用于执行应用的整体功能的某部分的控制和信息显示。参照图9A和图9B,涉及用于返回特定街道地址的邮政编码的应用包括状态0(105)、状态1(108)和状态2(109)。状态0是屏幕102,屏幕102包括:文本输入框106,标记有“输入地址”;选择器107,标记有“获得邮政编码”。文本框106用于键入地址,点击选择器框以开始将返回邮政编码信息的网络服务的处理。状态1是标记有“处理中,请等待......”(108)的框的过渡屏幕。状态2包括:文本框标签103,显示邮政编码;以及选择器104,标记有“获得另一个”。点击选择器104将应用返回到状态0屏幕。应用开发者通过观看IDE的状态显示130来浏览和操纵在应用的各个状态上的控制和显示。如图10A所示,状态图显示应用的可视方面,一次一个状态。其它图包括图10B所示的分值图134、图10C所示的代码图136以及脚本图138。分值图134显示通过状态137和通道133组织应用的各组件的表格。在通道列133中的组件的列表顺序确定该组件在屏幕上出现的顺序。从工具框110中直接拖拽组件,如图11A所示,并将其放置在图10B的表格中的期望的通道133和期望的状态135中。组件也可以被从一个单元向另一个单元拖拽,从而改变状态和/或通道。代码图136显示与单个组件有关的代码。通过本发明的IDE开发的应用是是事件驱动的。这些事件可以是用户产生的、自动或程序上的。用户产生的事件包括诸如点击选择器或按钮的事件。自动事件包括诸如定时器运行超时的发生,而程序事件是在应用代码内确定的触发的出现。代码图允许开发者指定应用将对其响应的事件类型。通过简单地从事件列表137中选择事件类型来指定事件类型。接着在工作空间139中键入期望的命令,如图10C所示。脚本图显示与单个组件相关的脚本,并允许开发者浏览和控制脚本而不是XML。
IDE提供多种类型的可视对象用于应用开发。参照图11A,IDE工具框110包括文本框组件112、选择器组件114和标签组件116。每个组件的属性122列表于图11B所示的属性表120中。在一个例子中,组件属性122包括组件的名称(ID)、位置(X-Y坐标)、维度(高度和宽度)、文本、式样、可视与否、线属性、头标属性、对齐等等。每个组件属性值都通过在表格的值字段124中进行键入而设置。借助IDE的UI的设计与从工具框110向屏幕期望位置拖拽这些组件一样简单。
参照图12,IDE新应用屏幕800被分成两个大的区域810和850。左边的区域810包括:组织开发者可以检查和编辑应用的各种视图的选项卡控件(tab control)。它们包括用于访问状态图的选项卡818、用于访问代码图的选项卡819、以及用于访问分值图的选项卡822。还有分别用于访问应用告警和编译器错误的选项卡821和823。屏幕800右边的区域850包括:组织由开发者使用来向应用添加细节和功能的各种功能设置的选项卡控件。它们包括用于访问工具框的选项卡860、用于访问属性表的选项卡870、用于访问网络服务描述语言(WSDL)集成器的选项卡880。WSDL集成器显示用于将网络服务合并到应用的控件。应用菜单栏包括文件菜单项811、编辑菜单项812、控制菜单项813、帮助菜单项824和状态菜单项814。文件菜单项811包括用于创建应用的“创建”、用于打开现有应用的“打开”、用于关闭打开的应用的“关闭”、用于保存应用的“保存”、用于使用新名称保存应用的“另存”、用于公布应用的“公布”、用于关闭IDE的“退出”以及用于应用名称、服务器、作者、版本等等的设置。编辑菜单项包括剪切、复制和粘贴选项。控制菜单项包括用于测试和调试应用的选项。应用的测试包括唤醒用于运行该应用的仿真器。
参照图13,使用根据本发明的IDE开发的应用150适用于其中寻求公寓承租人列表的人输入透明的承租人社会安全号码并接收其信用报告的情况。设计应用运行在个人的移动电话机上。在这个例子中,公寓管理员在文本框153中输入透明的承租人(申请人)社会安全号码,并在输入屏幕152上点击“产生报告”选择器155。应用产生包含透明的承租人社会安全号码的SOAP消息,并将其提供(address)给能够提供该社会安全号码的对照信用信息的网络服务。SOAP发送器对象向服务器3000发送该消息,其接着将该消息与合适的网络服务相关。网络服务查找所请求的信用数据并将它们以SOAP形式发送回服务器3000。SOAP接收对象从服务器接收SOAP响应,并且应用150在响应屏幕154上显示信息。在列表框160中显示信用信息,并且在框159中示出透明的承租人姓名。信用信息保持安全,因为它是通过安全服务器3000发送的。
参照图14,应用150的处理流170包括:在移动电话机上开始应用(172)、在输入屏幕输入数据(174)、等待处理(176)、和在输出屏幕中接收处理的结果(178)。如果存在错误,则应用显示错误消息(180)并具有修改输入和再次运行应用的选项(177)。针对不同输入可以重复该处理(179)。通过图15A和图15B所示的四个屏幕/状态完成该处理流。它们包括输入状态152、响应状态154、等待状态156和错误状态158。产生输入状态包括将来自工具框110的组件拖拽到状态图中。该组件包括指令用户输入申请人的社会安全号码的标签151、其中用户输入申请人的社会安全号码的文本框153以及发送用于处理的数据的选择器155。通过使用属性控件870改变它们的属性来调整组件151、153、和155的外观和感觉。以相似的方式创建状态154、156和158。
通过远程网络服务来控制应用的大多数功能。但是,有时候,可以直接添加逻辑。为此,IDE包括产生用于连接到特定网络服务的小部件和相关程序的特定功能。通过读取描述期望的网络服务的WSDL并在便捷的表格中呈现期望的参数的网络服务描述语言(WSDL)集成器提供该功能。为了操纵网络服务,该开发者简单地将UI组件拖拽到它们将与之关联的网络服务功能参数。参照图16和图12,WSDL集成器控件880包括用于输入所请求的网络服务的URL的输入字段851。在未直接输入的情况下,URL也可以是从可用WSDLs的列表852选择的。从特定网络服务可得的(即通过所选择的WSDL给出的)功能显示在功能框853中,每一个功能的输入和输出参数分别显示在输入表857和输出表858中。参数包括名字903、数据类型904、链接类型905、值906和状态907。
除了网络服务输入参数之外,一些网络服务还需要以XML头标形式发送的特定信息。可能放置在该头标中的信息的例子包括账目信息和用于保证接入的密钥或针对接入服务的账单。授权环境的WSDL集成器部分也可以包括这样的机制:通过直接输入该信息(将其硬编码)并将其发送到服务器以通过给定网络服务调用的每个请求进行再现来提供该信息。可选地,通过在服务器数据库中提供到账目信息的链接来输入该信息,以便能够使用动态数据(即属于给定网络服务调用的特定用户/会话上下文)来唤起该调用。
除了列出给定网络服务可用的功能之外,那个服务的WSDL还描述每一个功能的所命名和键入的输入和输出参数(类似于以任何键入的计算机语言的方法头标)。可以使用该信息自动地产生围绕该给定网络服务调用的用户界面。
参照图17,StrikeIron.com控制的网络服务包含针对那个地址获得电话号码并返回所列的地址信息的功能。该服务的WSDL地址调用位于http://ws.strikeiron.com/ReversePhoneLllkup?WSDL。
输入是字符串名。当在框852中输入WSDL地址时,IDE产生http调用以获得WSDL描述。根据该调用,能够获得显示在列表框853中的被支持功能的列表。它们包括查找901和有效902。对于每一个选择的功能,IDE计算输入和输出参数名称和类型。在网格857和858中分别列出了输入和输出参数。网格857、858包括参数名称914、903以及类型915、916、917、918、904、905、906和907。用户可以将小部件/组件从现有的UI中拖拽到该网格以建立关联或者简单地点击按钮以自动产生UI。参照图18,当点击“产生基于名称的调用”855按钮时,在输入屏幕中针对每一个输入字段产生标签826和编辑框827(状态0)。如果间隔请求它,则这些跨多个屏幕而相隔。而且,创建进行按钮825用于启动调用。通过将其从状态或分值图拖拽到标注有“选择提交选择器”的按钮913来识别触发网络服务的按钮或选择器。接着,创建SOAP发送器和接收器组件。屏幕的下部820显示提供应用概略的应用的分值图,每一列对应于应用的一个状态或视图,那个列中的行对应于在那个状态中使用的小部件/组件。下面,如图19所示,在正在执行SOAP调用的同时,创建具有“请等待”标签828的屏幕(状态1)进行显示。参照图20和图21,针对输出屏幕,创建用于输出名称的标签829-837以及用于输出值的附加标签840(状态2和状态3)。如果间隔请求它,则这些跨多个屏幕而相隔。在屏幕810还指示状态号816和UI屏幕放大817。还创建SOAP发送器和接收器组件。如果没有立即响应,则还创建定时器以在定时超时前对秒进行测量。SOAP发送器和接收器组件以及定时器被自动创建且不是可视组件,即,它们在状态图中不出现。但是,在分值图中它们仍被列出,参见图21的组件930。通过显示错误消息的标签839创建附加屏幕(状态4),如图22所示。如果SOAP调用没有被返回,则使用这个屏幕。在点击进行按钮后执行代码。在SOAP接收时并且如果在SOAP接收被返回之前定时器超时也执行该代码。
IDE还包括“公布应用”的功能:即,向服务器提交它以调试、检查和部署(89)。参照图8,应用的公布89包括:提交应用65、验证66、转换67、变换68和应用部署69。在IDE中完成应用的编辑(或修改)后,IDE向开发服务器提交应用的整个XML表示以及相关GUID(65)。开发服务器确保该应用符合应用的当前XML方案并验证该应用(66)。服务器接着将WSDL调用转换成GUIDs,并将它们存储在数据库中。在将应用存储在本地数据存储器中之前,服务器将所有的网络服务调用替换成GUIDs,并填充保持该映射的数据库表格。为了安全性的原因,播放器总是通过它们的GUIDs引用网络服务调用,并且服务器将这些GUIDs翻译成运行时的实际调用(67)。对于每个被支持的目标设备和平台,服务器在应用上运行XSLT已获得简化成仅针对那个设备的相关信息的另一个文件(可以是XML格式或者可以是某种其它格式)(68)。接着,通过将其结合开发服务器运行来调试该应用。人类中介体将应用从开发服务器“推动”到部署服务器,在部署服务器中,它可以被运行在移动设备上的播放器访问。这些设备请求新应用(或者请求现有应用的新版本,如果这样的应用存在的话),并且,如果合适,服务器向该设备发送该应用的适于设备和平台的版本,接着在该设备中通过播放器执行该应用(69)。
应用通过服务器3000与外界(即,客户端资源和服务器已经接入的网络上的资源)的交互包括前面讨论的远程的基于服务器的网络服务以及允许访问不具有网络服务(WSDL描述的)界面的四个其他相关的概念。这四个概念包括本地客户端资源、嵌入的客户端资源、远程的基于网络的资源以及本地客户端进程。本地客户端资源是驻留在与播放器所在的相同设备中的资源/文件。它们为应用提供获得本地文件/资源(例如照相图像)的引用并将那个引用递送给客户端服务调用来供外部网络服务使用的能力。嵌入的客户端资源指嵌入在可执行代码中的、并被播放器打包的资源。远程的基于网络的资源提供为应用提供从网络获得文件/资源(例如图像)并将其本地显示的能力。本地客户端进程为应用提供唤起本地进程的例程(例如,迷你日历)的能力。总和起来,网络服务、进程和资源为应用编程员对他们可能需要的任何东西提供完全接入。系统100的商业逻辑和处理能力的主体在网络服务、本地进程和资源中提供附加使能功能。
资源是应用自身无法打包的、应用使用的任何数据块。资源的一些例子包括图像文件、文本文件、图标、视频、音频、网络URL、HTML页面等等。资源包括命名的资源和动态资源。在应用之外创建命名的资源,并且其存在于众所周知的位置。命名的资源可以是远程的或公布的。远程命名的资源可以具有与其相关的刷新安排,以便其在高速缓存中尽可能地被经常刷新,并且当用户体验尚未降级时被潜在地下载到设备。通过其名称/位置可变的应用的某种动作来创建动态资源。例如,应用使用的临时文件是动态资源。命名的资源可以是本地的(即驻留在与播放器所在的相同设备上的资源)、网络的(即经由URL调用由服务器可检索的资源)、嵌入的(即,通过播放器打包的资源)或公布的(即通过IDE可访问的并公布给服务器以便应用检索的资源)。
使用资源的问题是资源的大多数实际使用需要比移动设备典型地已经驻存的空间更多的本地存储空间。例如,如果应用使用每幅10兆字节的10幅图像,但是设备仅有50兆字节的自由存储空间,则至少一半的图像将不能放在该设备上。那些图像不能在所有时间均本地驻留。系统也不能在网络上按需等待和下载那些图像,因为它们需要高于移动设备通常可用带宽的带宽。以369千字节每秒的下行速度下载例如我们例子中的每幅图像10兆字节的图像将花费217秒。这将远远长于用户通常等待下载整个页面的时间,更不用说单个图像了。即使每幅图像1兆字节,仍需等待21秒,使得出现不可接受的用户体验。因此,系统包括通过改变本地存储空间和网络带宽的管理资源和对于资源最大化用户体验的资源管理器。
资源管理器包括被索引的资源元数据的资源数据库、在服务器端的实际资源的尺寸不受限的高速缓存和在客户端上的尺寸非常受限的被积极管理的高速缓存。客户端和服务器资源管理器组件交换资源元数据,并且调整到特定设备和平台的客户端资源决定哪个资源本地化(即下载)以最大化用户体验。
在IDE中,开发者在公布之前描述他期望通过他的应用使用的所有资源。资源管理器服务器组件深入地审查资源,并且影响吞吐量(尺寸、可压缩性)的元数据被存储和索引。系统中的资源使用非常类似于SQL中的数据库图。程序员预先确定信息的那些位在图中是可用的以及信息的那些位如何涉及彼此。最后的图针对以前不具有的一组数据点向用户给出持续的、一贯的浏览界面。
通过高速缓存代理进行服务器端资源管理。高速缓存代理负责保持来自系统外部的预识别的资源的高速缓存的备份。除非资源被定义为穿透式(pass-through),否则任何从该设备到服务器的远程资源的调用应当完全由服务器来提供。穿透式接入被定义为每次在应用刷新资源时必须从远程资源检索刷新的资源。穿透式资源是网络集中的。高速缓存代理总是规律地并经常地加速从应用到资源的访问。从应用到外部网络服务和网络资源的所有接入都经过服务器。高速缓存代理通过将其本地地高速缓存在服务器来加速到网络资源的访问,从而在异构网络上取代了6-20跳,在零或一个网络跳之内任何资源都是可用的。
企业资源是那些对应用编程人员是可见/可访问的、但是对公共互联网不是可见/可访问的那些图像、二进制文件以及多媒体文件。当公布应用时,这些资源需要向高速缓存代理公布(即复制)它们的全部。参照图23,企业资源仓库710包括视频片段701、音频文件702以及图像文件703。IDE接收预先选择的资源并将其复制到高速缓存代理720。在这个例子中,所复制的资源是图像文件703。移动设备1000通过访问高速缓存代理720访问图像文件703。在这种情况中,移动设备1000不具有到企业资源710的直接接入。
网络资源是那些对应用编程人员是可见/可访问的、而对公共互联网也是可见/可访问的那些图像、二进制文件以及多媒体文件。当公布应用时,这些资源在高速缓存代理中公布它们的URL。但是,实际资源的物理字节的复制在编程人员设置的可配置的调度上发生,并且是从公共网站到高速缓存代理方向进行而没有IDE中介体。参照图24,图像703是在公共网站730上公布的网络资源。网站730经由其URL704(http://myimages.com/ImageC.jpg)可访问的。URL 704被IDE公布在高速缓存代理720中并且变为对移动设备1000可用。实际图像703接着被经由互联网520下载到高速缓存代理720。
客户端资源管理器起着特定的、尺寸可配置的本地存储器池的作用,试图保持当前状态以及任何从当前状态可直接获得的状态所要求的一组资源的本地可获得性。考虑使用5个状态(屏幕)和总计19Mb的13个资源的应用的下列情况。
状态 | 所要求的资源 | 资源总计 |
S1 | 1Mb 2Mb 3Mb | 6Mb |
S2 | 1Mb 1Mb | 2Mb |
S3 | 2Mb 1Mb 1Mb 1Mb | 5Mb |
S4 | 1Mb | 1Mb |
S5 | 1Mb 2Mb 2Mb | 5Mb |
总计19Mb |
在这种情况中,客户端播放器被配置使用最大10Mb的本地存储器。显然,对于应用的使用期而言不能下载和本地存储整组的资源。客户端资源管理器保持什么状态可以从什么其它状态到达的线路,从而对于任何一个状态,其知道不需要通过任何中间状态可以直接到达那个其他状态即可。我们的例子假设下面的状态转换表。
状态 | 可到达的状态 | 可到达状态的总计资源 |
S1 | S2 | 8Mb |
S2 | S3 | 7Mb |
S3 | S4,S1 | 12Mb |
S4 | S5,S3 | 11Mb |
S5 | S1,S4 | 12Mb |
在S1情况中,客户端资源管理器可以在本例存储器中保持整组可到达资源(S1,为6Mb;而S2,为2Mb)。同样地适于S2和S3,为7Mb。在S3中,所要求的空间总计(12Mb)大于可用的空间(10Mb),从而系统以当前状态S3的资源开始。如果S1的任何资源保持在高速缓存中,则它们继续在那,直到10Mb的限制。当产生到S4的转换时,S4的所有资源必须按需下载。
客户端资源管理器使用在新状态的显示和用户与那个状态进行交互之间的停工时间(无论用户需要“吸收”屏幕上的信息的时间有多长)以使用新资源组重建高速缓存。通过发布将使资源按需下载并保持的本地化资源(LocalizeResource)调用,应用编程人员也可以超越客户端资源管理器的决定,直到产生解除本地化资源(DelocalizeResource)为止。
客户端资源管理通过带宽定价模型而进一步复杂化。大多US数据计划具有总吞吐限制。在该情况下,用户希望那个最小化网络流量以最小化超额费用支付。另一方面,通过未受限数据计划,用户可能希望忽略网络流量以最大化速度。客户端资源管理器是可配置的,以满足用户在网络效率上的体验,或反之亦然。
作为满足网络效率的例子,非常不可能使用一些可以到达的状态,从而无论它们是否技术上可到达,人们都不想耗尽网络带宽而使得他们的资源本地可用。错误屏幕是最显而易见的例子。因此高效配置的播放器将不下载具有低可能使用率的状态的资源,因为那些资源将进入高速缓存,挤占高可能使用率的资源,接着它们自身也被以前的高可能使用率的资源的重新加载而挤出。
通过系统中的GUID识别每一个客户端进程,J2ME中的JSR实施器,可发起的MIME类型或视窗移动中可执行的客户端驻留。本地进程通过Launcher组件嵌入。Launcher调用语法与SoapSender相同,除了不存在相应的SoapReceiver。播放器通过询问操作系统确定什么本地进程是可用于启动的。对不存在的本地进程的引用产生例外。开发者将Launcher插入应用XML,就好像他是将从预定义本地进程的列表选择、询问输入和输出参数等等的WSDL。视窗移动平台上的预定义本地进程的例子将包括PocketOutlook和Internet Explorer。J2ME上的预定义本地进程的例子将是JSR75(PIM实现)。
IDE还允许开发者通过大多数平台上可用的“exec”机制描述其自己的本地进程。可以利用所传递的参数以该形式运行的任何独立的重型的进程都可以由漫游应用开发者定义并自动地成为平台上已知的本地进程列表的一部分。
其他实施例包括下面的改进。IDE的改进包括代码和小部件方面的改进,并且网络服务被集成进应用中。例如包含多个屏幕的模板以及完成整个信用卡交易的相关事件代码被组合到一个可拖拽的图标上。可替换地,(具有可配置属性的)图标执行特定数据库调用并返回dataset。该类改进用于递送“扩展组件”,即通过额外属性捆绑的小部件,其在它们一被设置时就产生应用中的代码。
对所完成的应用自身进行转换(使用应用XML文件上的XSLT或经由某其它机制)。这些运行在完成的应用上以将其个性化,即通过特定ID找到小部件并将动态信息插入它们,以及在服务器上更新版本号以每天发送应用的“个性化”版本。
状态信息被发送到输出设备而不是屏幕。该系统使用该改进递送“打印”功能:即(在该应用中)将一些屏幕设计成“打印屏幕”。当播放器到达这样的屏幕(或访问这样的屏幕的命令)时,其走向打印机而不是在屏幕上显示。我们也可以具有播放器的整个不可视版本。在一个例子中,不可视播放器安装在需要响应网络服务数据但是不需要具有相应显示器的机器人上。
在一些实施例中,包括一个至多个认证的选项。根据该选项,系统对网络上的某资源给出一个服务器接入,接着在网络服务中完成(wrap)那个接入,接着使应用脱离那个服务。这有效地允许我们的环境使得资源对应用的任何用户可获得。以此方式,接入控制变成编程性事务而不是依赖于认证的扩散。可替换地,该系统对每个设备发布其自己的认证,并且每个设备通过会话登陆进程提交其认证信息。
除了网络服务之外,服务器可以接入的其他功能被设计成适合该RIA开发模型。被设计成适合本模型的其它功能的例子包括远程过程调用(RPC)或对本地应用编程接口(API)的调用。在一个例子中,通过IDE包括“漫游API”以捆绑对这类功能的接入。该服务器通过参数调用“漫游API”,并返回一返回值。这些功能也可以由GUID、甚至由WSDL定义(以给出输入、输出参数),并接着在网络服务器模型之外被执行。在一个例子中,“资助的”网络服务被列在IDE自身中作为“资助的功能调用”。用于这些功能的少量通用用户界面也可以捆绑在WSDL产生器中以便利于开发者。
服务器3000实现了网络服务的编排,将多个网络服务调用组合到单个链中。远程设备对该单个链进行单个调用,并且服务器3000将该链分解成它的组成的网络服务调用、发布该调用、聚集结果以及将个单个结果集返回到远程设备。这对于现存的AJAX风格的解决方案而言具有显著的性能优势,因为服务器3000比连接到它的远程设备具备极强的能力,并且比远程设备具有到目的网络服务的更快更可靠的连接。该编排还允许服务器3000提供网络服务链内的交互性(transactionality)。交互性是链内的每个网络服务依赖于所有其它网络服务的成功、并且一个调用中的失败应该使我们跳过任何随后的调用以及退回链中任何在前的调用并针对该链返回失败的思路。
系统中的远程设备能够操作于在线(连接)和离线(断开)模式,并且从一个模式到另一个模式无缝过渡。这通过存储在与应用上下文断开的远程设备上的网络服务链调用来实现,在该应用上下文中它们出现。在一个例子中,用户填充一表格,将其提交到网站。典型的应用附接用户输入到其填充的该表格的值。如果远程设备离线,则应用能够通过所存储的值重新加载该表格。具有所保存值的表格仅仅可在应用中的其它点上使用,在该其它点上,数据的特定可视表示具有意义。通常,那永远不发生。另一方面,当用户敲击该表格上的提交按钮时,应用播放器存储用户试图执行的“动作”。这允许应用播放器累计当远程设备恢复其连接时用户想执行的动作,并在与动作被首次构思时的应用上下文不同的应用上下文(可视的表示)内执行那些动作。其是本系统和其他解决方法之间的基本的理性的区别,其他解决方法保持离线的网络服务链调用存储而不是表格图像以使能离线功能。
已经描述了本发明的几个实施例。尽管如此,应当理解只要不背离本发明的精神和范围可有许多修正。因此其它实施例在后面的权利要求书的范围内。
Claims (20)
1.一种开发富互联网应用的方法,富互联网应用通过驻留在远程计算设备中的应用播放器而被配置运行在远程计算设备上,该方法包括:
提供授权所述富互联网应用的集成开发环境,其中该集成开发环境包括:工具框,用于向用户界面添加图形组件;网络服务描述语言集成器,用于处理和操纵网络服务;和用于向用户界面的图像组件添加逻辑的工具;
开发富互联网应用处理流;
通过产生一个或多个用户界面使用所述集成开发环境实现所述富互联网应用处理流;
从所述工具框向所述用户界面拖放一个或多个图形组件;
设置每一个所述图形组件的一个或多个属性值;
通过所述网络服务描述语言集成器产生一个或多个用于接入一个或多个网络服务的网络服务调用,其中配置所述网络服务以接收来自所述用户界面的输入,处理该输入并产生输出;以及
其中,通过将所述远程计算设备连接到中介体服务器接入所述网络服务,以及其中所述中介体服务器经由单个安全且接入受控的网络连接来接入所述网络服务。
2.如权利要求1所述的方法,其中所述富互联网应用处理流包括至少一个输入用户界面、处理用户界面、至少一个输出用户界面和错误用户界面。
3.如权利要求2所述的方法,其中所述图形组件为下列中的一个:显示内容的标签、输入内容的文本框、或者用于经由所述网络服务调用启动处理的选择器。
4.如权利要求3所述的方法,其中所述图形组件的属性包括下列中的一个:名称、水平和垂直位置坐标、高度、宽度、长度、持续性、可见性、文本格式、数字格式、对齐、式样、与选择器相关的密钥、选择器的目标状态。
5.如权利要求4所述的方法,还包括:向所述图形组件添加逻辑。
6.如权利要求1所述的方法,其中配置所述集成开发环境以提供富互联网应用的状态图、富互联网应用的分值图、富互联网应用的代码图和富互联网应用的脚本图,其中所述状态图显示用户界面的可视图像,一次一个用户界面;其中所述分值图显示列有每个用户界面的所述图形组件的表格;其中所述代码图显示与每个用户界面相关的代码;其中所述脚本图显示与单个图形组件相关的脚本;并且其中配置所述富互联网应用被授权在所述状态图、分值图、代码图和脚本图任意图中。
7.如权利要求1所述的方法,其中所述富互联网应用包括扩展标记语言格式。
8.如权利要求7所述的方法,其中该方法还包括:
将所述富互联网应用提交到测试服务器;
通过所述测试服务器调试和验证所述富互联网应用;
将所述网络服务调用转换成全局唯一标识符;
将富互联网应用格式变换成计算设备格式;以及
将所述富互联网应用部署到所述远程计算设备。
9.一种开发富互联网应用的系统,富互联网应用通过驻留在远程计算设备中的应用播放器而被配置运行在远程计算设备上,该系统包括:
集成开发环境,其包括:
工具框,包括:图形组件,配置被拖放到实现所述富互联网应用处理流的用户界面,以及,用于设置每一个所述图形组件的一个或多个属性值的工具;
网络服务描述语言集成器,配置用于产生接入一个或多个网络服务的一个或多个网络服务调用,以处理来自所述用户界面的输入;以及
其中,通过将所述远程计算设备连接到中介体服务器接入所述网络服务,并且其中所述中介体服务器经由单个安全且接入受控的网络连接来接入所述网络服务。
10.如权利要求9所述的系统,其中所述富互联网应用处理流包括至少一个输入用户界面、处理用户界面、至少一个输出用户界面和错误用户界面。
11.如权利要求10所述的系统,其中所述图形组件下列中的一个:显示内容的标签、输入内容的文本框、或者用于经由所述网络服务调用启动处理的选择器。
12.如权利要求11所述的系统,其中所述图形组件的属性包括下列中的一个:名称、水平和垂直位置坐标、高度、宽度、长度、持续性、可见性、文本格式、数字格式、对齐、式样、与选择器相关的密钥、选择器的目标状态。
13.如权利要求9所述的系统,其中所述集成开发环境还包括用于向所述图形组件添加逻辑的工具。
14.如权利要求9所述的系统,其中所述集成开发环境被配置以提供富互联网应用的状态图、富互联网应用的分值图、富互联网应用的代码图和富互联网应用的脚本图,其中所述状态图显示用户界面的可视图像,一次一个用户界面;其中所述分值图显示列有每个用户界面的所述图形组件的表格;其中所述代码图显示与每个用户界面相关的代码;其中所述脚本图显示与单个图形组件相关的脚本;并且其中配置所述富互联网应用被授权在所述状态图、分值图、代码图和脚本图任意图中。
15.如权利要求9所述的系统,其中所述富互联网应用包括扩展标记语言格式。
16.如权利要求15所述的系统,其中还包括:
开发服务器,包括用于开发所述富互联网应用的所述集成开发环境;
测试服务器,配置用于调试和验证所述富互联网应用;以及
生产服务器,包括将所述网络服务调用转换成全局唯一标识符的工具;将富互联网应用格式变换成计算设备格式的工具;以及将所述富互联网应用部署到所述远程计算设备的工具。
17.如权利要求9所述的系统,其中还包括用于审计所述远程计算设备的活动的工具。
18.如权利要求9所述的系统,其中还包括用于显示所述远程计算设备到所述网络服务的授权的功能的接入的工具。
19.如权利要求9所述的系统,其中所述远程计算设备包括被管理代码环境,并且其中所述应用播放器在所述被管理的代码环境中执行。
20.如权利要求9所述的系统,其中所述远程计算设备包括下列的之一:移动电话机、PDA、便携式计算机、机器人、个人计算机或服务器。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US96942807P | 2007-08-31 | 2007-08-31 | |
US60/969,428 | 2007-08-31 | ||
US12/198,944 | 2008-08-27 | ||
US12/198,944 US8341595B2 (en) | 2007-05-30 | 2008-08-27 | System and method for developing rich internet applications for remote computing devices |
PCT/US2008/074537 WO2009032714A2 (en) | 2007-08-31 | 2008-08-28 | System and method for developing rich internet applications for remote computing devices |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101939736A CN101939736A (zh) | 2011-01-05 |
CN101939736B true CN101939736B (zh) | 2014-03-12 |
Family
ID=40429645
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880104954.XA Expired - Fee Related CN101939736B (zh) | 2007-08-31 | 2008-08-28 | 远程计算设备的开发富互联网应用的系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8341595B2 (zh) |
EP (1) | EP2193448A4 (zh) |
CN (1) | CN101939736B (zh) |
BR (1) | BRPI0815316A2 (zh) |
WO (1) | WO2009032714A2 (zh) |
Families Citing this family (87)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9317259B2 (en) * | 2005-05-12 | 2016-04-19 | International Business Machines Corporation | Apparatus, system, and method for automatically generating a reusable software component for interfacing with a web service |
US8219967B2 (en) * | 2005-07-25 | 2012-07-10 | International Business Machines Corporation | Method and apparatus for enabling enterprise project management with service oriented resource and using a process profiling framework |
US7730478B2 (en) * | 2006-10-04 | 2010-06-01 | Salesforce.Com, Inc. | Method and system for allowing access to developed applications via a multi-tenant on-demand database service |
JP2008171281A (ja) * | 2007-01-12 | 2008-07-24 | Fujitsu Ltd | 表示画面構成装置 |
JP4185159B1 (ja) * | 2008-01-30 | 2008-11-26 | 株式会社三菱東京Ufj銀行 | アプリケーション開発支援装置及びプログラム |
US8769490B2 (en) * | 2008-09-16 | 2014-07-01 | Oracle International Corporation | Desktop widget engine emulator component for a rapid application development tool |
US8719896B2 (en) * | 2008-09-16 | 2014-05-06 | Oracle International Corporation | Widget host container component for a rapid application development tool |
US9063740B2 (en) * | 2008-09-16 | 2015-06-23 | Oracle International Corporation | Web widget component for a rapid application development tool |
US8359574B1 (en) * | 2009-01-16 | 2013-01-22 | Adobe Systems Incorporated | Offline mode in IDE for seamless service-oriented-architecture-based application development |
US20100257067A1 (en) * | 2009-04-01 | 2010-10-07 | Tai Man Chan | Remote web service appliance for point of sale actions |
US10209968B2 (en) | 2009-05-29 | 2019-02-19 | Adobe Inc. | Application compiling |
US8028079B2 (en) | 2009-06-15 | 2011-09-27 | Microsoft Corporation | Efficient transform from XML to javascript objects |
US8412797B2 (en) * | 2009-08-27 | 2013-04-02 | Vmware, Inc. | Platform for development and deployment of system administration solutions |
EP2484094B1 (en) * | 2009-10-01 | 2019-04-10 | Telefonaktiebolaget LM Ericsson (publ) | A method and arrangements for application scope management |
WO2011040849A1 (en) * | 2009-10-01 | 2011-04-07 | Telefonaktiebolaget L M Ericsson (Publ) | A method and arrangement for managing persistent rich internet applications |
JP5202603B2 (ja) * | 2009-12-18 | 2013-06-05 | 韓國電子通信研究院 | 知能型サービスロボット環境におけるロボットサービスロード方法およびそのためのサービスロード装置 |
US9367371B2 (en) * | 2010-02-05 | 2016-06-14 | Paypal, Inc. | Widget framework, real-time service orchestration, and real-time resource aggregation |
US20110202384A1 (en) * | 2010-02-17 | 2011-08-18 | Rabstejnek Wayne S | Enterprise Rendering Platform |
US8898287B2 (en) * | 2010-02-24 | 2014-11-25 | Salesforce.Com, Inc. | System, method and computer program product for monitoring data activity utilizing a shared data store |
US20120005324A1 (en) * | 2010-03-05 | 2012-01-05 | Telefonica, S.A. | Method and System for Operations Management in a Telecommunications Terminal |
US9513882B2 (en) * | 2010-04-15 | 2016-12-06 | Microsoft Technology Licensing, Llc | Platform independent presentation composition |
US8335991B2 (en) | 2010-06-11 | 2012-12-18 | Microsoft Corporation | Secure application interoperation via user interface gestures |
CN101882082B (zh) * | 2010-06-23 | 2015-08-12 | 中兴通讯股份有限公司 | 一种Java编辑框本地化的方法和装置 |
US8464281B2 (en) | 2010-08-18 | 2013-06-11 | Sas Institute, Inc. | Techniques to remotely access object events |
CN101895431B (zh) * | 2010-08-20 | 2012-02-29 | 烽火通信科技股份有限公司 | 一种基于RIA的高性能Web传输网管系统及实现方法 |
US9143501B2 (en) | 2010-09-03 | 2015-09-22 | Microsoft Technology Licensing, Llc | Reauthentication to a web service without disruption |
US8621445B2 (en) * | 2010-12-06 | 2013-12-31 | Visualon, Inc. | Wrapper for porting a media framework and components to operate with another media framework |
US9047103B2 (en) | 2010-12-21 | 2015-06-02 | Microsoft Technology Licensing, Llc | Resource index identifying multiple resource instances and selecting most appropriate UI resource instance based on weighted resource request conditions |
US8495570B2 (en) * | 2010-12-23 | 2013-07-23 | Microsoft Corporation | Resource deployment based on conditions |
US9495371B2 (en) | 2010-12-28 | 2016-11-15 | Microsoft Technology Licensing, Llc | Unified access to resources |
US9286037B2 (en) * | 2010-12-29 | 2016-03-15 | Microsoft Technology Licensing, Llc | Platform for distributed applications |
US20120246619A1 (en) * | 2011-03-23 | 2012-09-27 | Oracle International Corporation | Automated testing of browser based rich internet applications (ria) delivered through proprietary frameworks |
US8438532B2 (en) | 2011-04-19 | 2013-05-07 | Sonatype, Inc. | Method and system for scoring a software artifact for a user |
CN102810090B (zh) | 2011-05-30 | 2017-06-09 | Sap欧洲公司 | 网关数据分布引擎 |
US8612936B2 (en) | 2011-06-02 | 2013-12-17 | Sonatype, Inc. | System and method for recommending software artifacts |
US20120323553A1 (en) * | 2011-06-16 | 2012-12-20 | Microsoft Corporation | Mobile Emulator Integration |
CA2839013A1 (en) * | 2011-06-27 | 2013-01-03 | Usablenet Inc. | Methods for implementing web services and devices thereof |
US8473894B2 (en) | 2011-09-13 | 2013-06-25 | Sonatype, Inc. | Method and system for monitoring metadata related to software artifacts |
US8627270B2 (en) * | 2011-09-13 | 2014-01-07 | Sonatype, Inc. | Method and system for monitoring a software artifact |
US9141378B2 (en) | 2011-09-15 | 2015-09-22 | Sonatype, Inc. | Method and system for evaluating a software artifact based on issue tracking and source control information |
US8671389B1 (en) * | 2011-09-27 | 2014-03-11 | Google Inc. | Web application resource manager on the web and localizable components |
CN102368324A (zh) * | 2011-09-29 | 2012-03-07 | 深圳盒子支付信息技术有限公司 | 反向电子支付的方法、装置及电子设备 |
CN102387203B (zh) * | 2011-10-21 | 2014-06-04 | 南京邮电大学 | 一种物联网中基于soap协议的多播应用方法 |
US20130132933A1 (en) * | 2011-11-17 | 2013-05-23 | Microsoft Corporation | Automated compliance testing during application development |
US8656343B2 (en) | 2012-02-09 | 2014-02-18 | Sonatype, Inc. | System and method of providing real-time updates related to in-use artifacts in a software development environment |
US8825689B2 (en) | 2012-05-21 | 2014-09-02 | Sonatype, Inc. | Method and system for matching unknown software component to known software component |
CN103457783B (zh) | 2012-05-31 | 2017-04-12 | 国际商业机器公司 | 用于测试移动网络应用的方法和系统 |
US9141408B2 (en) | 2012-07-20 | 2015-09-22 | Sonatype, Inc. | Method and system for correcting portion of software application |
US9992268B2 (en) * | 2012-09-27 | 2018-06-05 | Oracle International Corporation | Framework for thin-server web applications |
US9569274B2 (en) | 2012-10-16 | 2017-02-14 | Microsoft Technology Licensing, Llc | Distributed application optimization using service groups |
US9588874B2 (en) | 2012-12-14 | 2017-03-07 | Microsoft Technology Licensing, Llc | Remote device automation using a device services bridge |
US9135263B2 (en) | 2013-01-18 | 2015-09-15 | Sonatype, Inc. | Method and system that routes requests for electronic files |
US9692854B2 (en) * | 2013-01-23 | 2017-06-27 | Facebook, Inc. | Communication between a web-based application and a desktop application |
US10261757B2 (en) * | 2013-03-13 | 2019-04-16 | Northrop Grumman Systems Corporation | System and method for automated web processing service workflow building and application creation |
US9344420B2 (en) * | 2013-03-14 | 2016-05-17 | OpenFin Inc. | Systems and methods for deploying rich internet applications in a secure computing environment |
JP6070423B2 (ja) * | 2013-06-03 | 2017-02-01 | 株式会社リコー | 情報処理装置、情報処理方法、及びプログラム |
US10025574B1 (en) * | 2013-09-05 | 2018-07-17 | Google Llc | Packaged installation file based on automatic detection of device capabilities |
CN104572411B (zh) * | 2013-10-10 | 2019-02-15 | 腾讯科技(深圳)有限公司 | 一种日志数据的处理方法及装置 |
US9509761B2 (en) | 2013-10-23 | 2016-11-29 | Sap Se | Open user interface |
US10353989B1 (en) * | 2013-12-19 | 2019-07-16 | Open Text Corporation | Method to allow switching of user interface layout based on context and configuration |
JP6456028B2 (ja) * | 2014-02-07 | 2019-01-23 | キヤノン株式会社 | 情報処理装置、情報処理方法、およびプログラム |
CN103888456A (zh) * | 2014-03-18 | 2014-06-25 | 国家电网公司 | 一种网页客户端、服务端以及数据处理装置和方法 |
US9389848B2 (en) | 2014-06-28 | 2016-07-12 | Vmware, Inc. | Scheduling a plan of operations in a datacenter |
US9442714B2 (en) | 2014-06-28 | 2016-09-13 | Vmware, Inc. | Unified visualization of a plan of operations in a datacenter |
US9529980B2 (en) | 2014-06-28 | 2016-12-27 | Vmware, Inc. | Deduplication of end user license agreements |
US9389847B2 (en) | 2014-06-28 | 2016-07-12 | Vmware, Inc. | Selection of relevant software bundles |
US9223767B1 (en) * | 2014-06-28 | 2015-12-29 | Vmware, Inc. | Unified graphical user interface for displaying a plan of operations in a datacenter |
US9338071B2 (en) | 2014-10-08 | 2016-05-10 | Google Inc. | Locale profile for a fabric network |
CN106504088A (zh) * | 2015-09-07 | 2017-03-15 | 高庆文 | 一种在可移动计算设备实现量化交易的方法及系统 |
TWI624783B (zh) * | 2015-09-17 | 2018-05-21 | 長茂科技股份有限公司 | 整合動態連結功能函式的行動裝置應用程式之建置系統及方法 |
CN105512304B (zh) * | 2015-12-11 | 2019-03-26 | 西安道同信息科技有限公司 | 在线生成互联网应用方法和系统集成方法及支撑平台 |
CN106022480B (zh) * | 2016-05-13 | 2018-11-02 | 北京工业大学 | 基于d-s证据理论的机器人功能模块粒度划分评价方法 |
PT3247084T (pt) | 2016-05-17 | 2019-06-06 | Nolve Dev S L | Servidor e metodo para fornecer acesso seguro a serviços com base na web |
US9971594B2 (en) | 2016-08-16 | 2018-05-15 | Sonatype, Inc. | Method and system for authoritative name analysis of true origin of a file |
US10007490B1 (en) * | 2016-12-14 | 2018-06-26 | Facebook, Inc. | Automatic generation of native E-commerce applications for mobile devices |
US10466981B1 (en) * | 2017-06-06 | 2019-11-05 | Prattle Analytics, LLC | System and method for generative programming in an integrated development environment (IDE) |
CN107391118B (zh) * | 2017-06-29 | 2020-11-24 | 国家计算机网络与信息安全管理中心 | 一种Web应用用户体验平台系统 |
CN107894901A (zh) * | 2017-11-01 | 2018-04-10 | 福建新大陆支付技术有限公司 | 一种传统金融应用向智能终端平台迁移的方法及系统 |
US20190278570A1 (en) * | 2018-03-08 | 2019-09-12 | Microsoft Technology Licensing, Llc | Annotating Features of a Resource to Facilitate Consumption in Different Computing Environments |
CN108563505A (zh) * | 2018-04-04 | 2018-09-21 | 上海有云信息技术有限公司 | 一种服务链编排方法、装置、服务器以及存储介质 |
US11068627B2 (en) * | 2018-08-09 | 2021-07-20 | Zoox, Inc. | Procedural world generation |
US11182179B2 (en) * | 2018-12-27 | 2021-11-23 | Servicenow, Inc. | System and method for simple object access protocol (SOAP) interface creation |
US11496600B2 (en) * | 2019-05-31 | 2022-11-08 | Apple Inc. | Remote execution of machine-learned models |
FR3097672A1 (fr) * | 2019-06-21 | 2020-12-25 | Aava Mobile Sas | Système d’applications de service pour terminaux de paiement |
CN111158645B (zh) | 2019-12-10 | 2022-09-20 | 杭州中天微系统有限公司 | 提供集成开发环境的系统和方法 |
WO2023129677A1 (en) * | 2021-12-30 | 2023-07-06 | Harman International Industries, Incorporated | System and method for app certification |
WO2023177404A1 (en) * | 2022-03-18 | 2023-09-21 | Rakuten Mobile, Inc. | System and method for configuring and implementing interface connectors on a server |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100374296B1 (en) * | 2002-09-11 | 2003-03-03 | Itgen Co Ltd | System for developing application program for mobile terminal and mobile terminal including application program developed by the same |
US7200809B1 (en) * | 1999-08-04 | 2007-04-03 | Oracle International Corporation | Multi-device support for mobile applications using XML |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FI113823B (fi) | 1997-03-13 | 2004-06-15 | Nokia Corp | Järjestelmä palvelutietojen käsittelemiseksi tietoliikennejärjestelmässä |
US20060095274A1 (en) * | 2004-05-07 | 2006-05-04 | Mark Phillips | Execution engine for business processes |
US7000180B2 (en) | 2000-06-29 | 2006-02-14 | Balthaser Online, Inc. | Methods, systems, and processes for the design and creation of rich-media applications via the internet |
US7059261B2 (en) * | 2004-01-21 | 2006-06-13 | Ncl Corporation | Wastewater ballast system and method |
US7039875B2 (en) * | 2000-11-30 | 2006-05-02 | Lucent Technologies Inc. | Computer user interfaces that are generated as needed |
US7174534B2 (en) * | 2001-01-22 | 2007-02-06 | Symbol Technologies, Inc. | Efficient system and method for running and analyzing multi-channel, multi-modal applications |
AU2002240429B2 (en) * | 2001-02-22 | 2007-12-13 | Accenture Global Services Limited | Distributed development environment for building internet applications by developers at remote locations |
US9032097B2 (en) | 2001-04-26 | 2015-05-12 | Nokia Corporation | Data communication with remote network node |
US7546602B2 (en) * | 2001-07-10 | 2009-06-09 | Microsoft Corporation | Application program interface for network software platform |
US20040177335A1 (en) * | 2003-03-04 | 2004-09-09 | International Business Machines Corporation | Enterprise services application program development model |
US7873668B2 (en) | 2003-08-15 | 2011-01-18 | Laszlo Systems, Inc. | Application data binding |
US7831693B2 (en) * | 2003-08-18 | 2010-11-09 | Oracle America, Inc. | Structured methodology and design patterns for web services |
US20050198612A1 (en) | 2004-03-08 | 2005-09-08 | Andy Gonzalez | Unified application, user interface and data linking |
US8478616B2 (en) * | 2004-10-29 | 2013-07-02 | FrontRange Solutions USA Inc. | Business application development and execution environment |
US20060236307A1 (en) * | 2005-04-15 | 2006-10-19 | Debruin David | System and method for transformation of wireless application definition to simplified form |
CA2605118C (en) * | 2005-04-18 | 2012-01-10 | Research In Motion Limited | Development tool and method for automating detection and construction of notification based component applications |
CA2604449C (en) * | 2005-04-18 | 2012-10-02 | Research In Motion Limited | A system and method for flexible visual representation of presentation components |
US20070106468A1 (en) | 2005-11-07 | 2007-05-10 | France Telecom | Product, service and activity based interactive trip mapping system, method, and computer program product |
US8140987B2 (en) * | 2005-12-29 | 2012-03-20 | Sap Ag | GUI modeling of web services |
EP1818813A1 (en) * | 2006-02-02 | 2007-08-15 | Research In Motion Limited | System and method and apparatus for using UML tools for defining web service bound component applications |
US8764566B2 (en) | 2006-02-24 | 2014-07-01 | Igt | Internet remote game server |
US7650390B2 (en) | 2006-06-01 | 2010-01-19 | Roam Data Inc | System and method for playing rich internet applications in remote computing devices |
US20080040371A1 (en) | 2006-08-11 | 2008-02-14 | Pavan Bayyapu | Generic architecture for providing data to flash model |
-
2008
- 2008-08-27 US US12/198,944 patent/US8341595B2/en active Active
- 2008-08-28 WO PCT/US2008/074537 patent/WO2009032714A2/en active Application Filing
- 2008-08-28 BR BRPI0815316A patent/BRPI0815316A2/pt not_active IP Right Cessation
- 2008-08-28 EP EP08828961.6A patent/EP2193448A4/en not_active Withdrawn
- 2008-08-28 CN CN200880104954.XA patent/CN101939736B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7200809B1 (en) * | 1999-08-04 | 2007-04-03 | Oracle International Corporation | Multi-device support for mobile applications using XML |
KR100374296B1 (en) * | 2002-09-11 | 2003-03-03 | Itgen Co Ltd | System for developing application program for mobile terminal and mobile terminal including application program developed by the same |
Also Published As
Publication number | Publication date |
---|---|
EP2193448A4 (en) | 2015-03-04 |
WO2009032714A3 (en) | 2009-05-07 |
CN101939736A (zh) | 2011-01-05 |
WO2009032714A2 (en) | 2009-03-12 |
US8341595B2 (en) | 2012-12-25 |
US20090013310A1 (en) | 2009-01-08 |
EP2193448A2 (en) | 2010-06-09 |
BRPI0815316A2 (pt) | 2019-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101939736B (zh) | 远程计算设备的开发富互联网应用的系统和方法 | |
US8056092B2 (en) | Method and apparatus for widget-container hosting and generation | |
US7133906B2 (en) | System and method for remotely configuring testing laboratories | |
US7992127B2 (en) | Method and system of encapsulating web site transactions for computer-aided generation of web services | |
US20110113090A1 (en) | Dynamic mobile client | |
US20080082627A1 (en) | Method and Apparatus for Widget Container/Widget Tracking and Metadata Manipulation | |
US20070027968A1 (en) | System and method for remotely configuring devices for testing scenarios | |
CN100444108C (zh) | 使用ui储存库的公共ui组件执行无线应用程序的系统和方法 | |
CN101073055A (zh) | 一种为特定类型的无线计算装置自动构建定制应用软件的方法 | |
CN104639653A (zh) | 基于云架构的自适应方法及系统 | |
WO2020086969A1 (en) | Methods and systems for performance testing | |
Seo et al. | Cloud computing for ubiquitous computing on M2M and IoT environment mobile application | |
Belli et al. | A novel smart object-driven ui generation approach for mobile devices in the internet of things | |
Greenhalgh et al. | Addressing mobile phone diversity in ubicomp experience development | |
Ogush et al. | A template for documenting software and firmware architectures | |
KR101517611B1 (ko) | 통신 부하를 발생시키지 않는 동영상 제공 방법 | |
KR20170027327A (ko) | 통신 부하를 발생시키지 않는 데이터 교환 방법 | |
Ma et al. | Cache-Enabled and Context-Aware Approach to Building Composite Mobile Apps. | |
Frécon | Web (-like) Protocols for the Internet of Things | |
Mirisaee et al. | A framework for context-aware university mobile organizer | |
Huang et al. | Smartly Deploying WeChat Mobile Application on Cloud Foundry PaaS | |
Yu et al. | CrowdKit: A Generic Programming Framework for Mobile Crowdsensing Applications | |
Tang et al. | A Cross-platform and User Transparent Mobile Application Event Collection Mechanism | |
Moraza Erauskin | Reuse of software components orientated to iOS mobile devices | |
Succi et al. | An Architecture for supporting" Pay-per-Use" Downloadable Systems Based on Java 2 and JavaSpaces |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140312 Termination date: 20160828 |