CN101373431A - 增强型小组件合成平台 - Google Patents
增强型小组件合成平台 Download PDFInfo
- Publication number
- CN101373431A CN101373431A CNA2008101259272A CN200810125927A CN101373431A CN 101373431 A CN101373431 A CN 101373431A CN A2008101259272 A CNA2008101259272 A CN A2008101259272A CN 200810125927 A CN200810125927 A CN 200810125927A CN 101373431 A CN101373431 A CN 101373431A
- Authority
- CN
- China
- Prior art keywords
- service
- widgets
- data
- code
- output
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- 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/34—Graphical or visual programming
-
- 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
Abstract
一种增强型小组件合成平台,其中,基于接收经由基于Web的小组件合成平台对至少第一服务和小组件引擎的选择而自动生成代码,当被所选的小组件引擎调用时,所述代码实现用于与所述第一服务通信的小组件。
Description
技术领域
本公开文件一般涉及小组件(widget或gadget),并且至少一个具体实现方式涉及增强型小组件合成平台。
背景技术
为了能够做出良好的决定,访问及时、准确并且相关的信息是很重要的。通过以有用的方式组合各种信息片段,可以形成上下文,该上下文的价值要大于每个单独信息片段的价值的组合。
在一个简单的例子中,三个单独的日志条目可以反映厂商银行帐号改变并回滚到原始帐号、职工银行帐号等于改变后的厂商银行帐号、以及到改变后的厂商银行帐号的发票支付。单独来看,这些日志条目可能看起来完全正常。然而,当组合时,这些单独的条目提供了诈骗的上下文,这是因为,发票在厂商银行帐号发生改变和该改变回滚的时间点之间被支付,而改变后的厂商银行帐号与职工银行帐号相同。因而,来自不同源的信息的组合可以提供必要的协同来形成有用的上下文。
发明内容
根据一个一般实现方式,基于接收经由基于Web的小组件合成平台对至少一个第一服务和小组件引擎的选择而自动生成代码。当被所选的小组件引擎调用时,所述代码实现用于与所述第一服务通信的小组件。
实现方式可以包括下列特征中的一个或多个。例如,对所述第一服务和所述小组件引擎的选择可以是用户选择或自动选择。所述基于Web的小组件合成平台还可以包括设计模式和预览模式,其中(在所述设计模式中)经由所述基于Web的小组件合成平台来选择所述第一服务,并且其中(在所述预览模式中)经由所述基于Web的小组件合成平台来模拟所述小组件。可以使用模拟小组件引擎的兼容层在浏览器环境中调用代码,从而在小组件合成平台中模拟小组件。
在其它例子中,可以基于接收所述选择来创建服务仲裁器(mediator)实例,该服务仲裁器实例包括服务请求器组件、解释器组件和绘制器(renderer)组件。所述服务请求器组件用于收集输入参数、基于所述输入参数向第一服务发送服务调用、和向服务仲裁器实例发送服务调用的原始数据结果。所述解释器组件用于将原始数据结果处理成经解释的ServiceDataModel对象,并向服务仲裁器实例发送ServiceDataModel对象。所述绘制器组件用于绘制ServiceDataModel对象中的数据的可视表示。
此外,还可以基于接收对限定小组件的外观或用于执行非服务相关功能的设计元素的选择、基于接收经由基于Web的小组件合成平台对第二服务的选择、或基于接收经由WidgetObjectManager模块将第一服务的输出与第二服务的输入进行连接的选择,自动生成所述代码。可以生成用于事件的CONNECTOR(连接器)对象,该CONNECTOR对象将所述第二服务的输入添加为监听器,并且将所述第一服务的输出添加为调用器(caller)。可以基于检测所述事件来从调用器向监听器(listener)发送ENVELOPE(封装)对象,该ENVELOPE对象封装来自调用器的输出值。
此外,可以经由LineManager模块来验证将第一服务的输出与第二服务的输入进行连接的选择是否有效,并且如果验证将第一服务的输出模块与第二服务的输入进行连接的选择是有效的,则可以经由LineManager模块输出将第一服务的输出与第二服务的输入进行连接的选择的表示。小组件可以用于经由面向服务架构协议(Service Oriented Architecture Protocol,SOAP)调用或其它超文本传输协议(HTTP)调用来与所述第一服务进行通信。可以从第一服务接收数据,并且可以经由小组件来显示该数据。
而且,所述小组件合成平台可以是所见即所得(What-You-See-Is-What-You-Get,WYSIWYG)集成开发环境(IDE)。可以诸如通过将小组件上载到用户设备来输出小组件。所述第一服务可以是Web服务、聚合内容(Really Simple Syndication,RSS)服务、多维表达式(MultidimensionaleXpressions,MDX)服务或经由网络可获得的任何数据源(诸如网站)。基于接收对所述至少第一服务的选择,可以使用WindowObserver模块将该至少第一服务添加到全局小组件模块。经由WindowObserver模块可以跟踪小组件合成平台的状态改变。经由WindowObserver模块可以发送包括所述至少第一服务、至少第一服务的每一个的位置和大小、以及所述至少第一服务之间的连接的数组(array)。
根据本发明的另一个一般实现方式,将计算机程序产品有形地包含在机器可读介质中。该计算机程序产品包括指令,当机器读取该指令时,该指令用于使数据处理装置基于接收经由基于Web的小组件合成平台对至少一个第一服务和小组件引擎的选择而生成代码,当所选的小组件引擎调用该代码时,该代码实现用于与第一服务进行通信的小组件。
根据本发明的另一个一般实现方式,一种设备包括处理器,该处理器被配置成基于接收经由基于Web的小组件合成平台对至少一个第一服务和小组件引擎的选择而生成代码,当所选的小组件引擎调用该代码时,该代码实现用于与第一服务进行通信的小组件。
根据本发明的另一个一般实现方式,一种设备包括装置,该装置用于基于接收经由基于Web的小组件合成平台对至少一个第一服务和小组件引擎的选择而生成代码,当所选的小组件引擎调用该代码时,该代码实现用于与第一服务进行通信的小组件。
根据本发明的另一个一般实现方式,经由基于Web的WYSIWYG小组件合成平台接收对第一服务的用户选择,经由小组件合成平台接收对第二服务的用户选择,并且经由小组件合成平台接收将第一服务的输出与第二服务的输入进行连接的用户选择。验证将第一服务的输出与第二服务的输入进行连接的用户选择是否有效,经由所述小组件合成平台接收对小组件引擎的用户选择,并且基于接收所述第一服务、第二服务和小组件引擎的选择而自动生成代码,当被所选的小组件引擎调用时,该代码实现用于与所述第一和第二服务通信的小组件。使用模拟所述小组件引擎的兼容层在浏览器环境中调用代码,从而在小组件合成平台中模拟所述小组件。接收来自第一服务的第一数据,并且基于检测事件从所述第一服务的输出向所述第二服务的输入发送ENVELOPE对象,该ENVELOPE对象封装来自第一服务的输出值。基于在第二服务的输入接收所述ENVELOPE对象,从所述第二服务接收第二数据,输出第二数据,并且向用户加载将该代码。
以下,在附图和说明书中阐述一个或多个实现方式的细节。本公开内容的其它可能特征和优点将从说明书、附图、以及权利要求书变得明显。
附图说明
图1是根据一个一般实现方式的示范性系统的框图。
图2是示出了根据另一个一般实现方式的示范性过程的流程图。
图3、图4、图6、图9、图10、图12和图13描述了在各种状态中的根据另一一般实现方式的示范性小组件合成平台。
图5是示出了示范性服务仲裁器实例的框图。
图7是示出了在调用器、事件和监听器之间的示范性关系的框图。
图8是示出了在所生成的代码和由兼容层与小组件引擎生成的响应之间的示范性关系的框图。
图11描述了示范性小组件。
图14示出了根据另一一般实现方式的示范性系统的外观。
图15是示出了图14中所示的设备的内部架构的框图。
通篇中相似的附图标记表示相应的部分。
具体实施方式
从最基础的方面说来,增强型小组件合成平台是基于Web的WYSIWYGIDE,其允许用户使用直观的桌面型开发环境来容易地创建小组件。通过使用Web2.0技术来经由Web浏览器提供IDE,无需在本地计算机上安装额外的应用软件即可调用该增强型小组件合成平台。这样做,即使不具有专业编程技能的用户也可以可视地创建小组件,并且输出(或“部署”)这些小组件,以与其它的各种小组件引擎(诸如小组件引擎、或MICROSOFT小组件引擎等)联合使用。IDE通常是指辅助初学者或有经验的软件开发者开发软件的计算机应用。
图1是根据一个一般客户端-服务器实现方式的示范性系统100的框图。简单讲,系统100包括经由网络105连接的设备101与服务器102和104。
设备101包括(除了其它组件以外)处理器106、Web浏览器107、小组件引擎109、和输出介质110。处理器106被配置为基于经由基于Web的小组件合成平台接收对至少第一服务和小组件引擎的选择而生成代码。当被所选的小组件引擎调用时,所述代码实现(即,导致、完成、提供、输出和/或实行)可用于与所述第一服务通信的小组件。Web浏览器107表示增强型小组件合成平台的前端,并且显示增强型小组件合成平台的用户界面。Web浏览器107可以是任何一种Web浏览器,诸如 INTERNET Web浏览器、 Web浏览器等。
小组件(widget或gadget)可以是显示并更新本地和远程数据的客户端独立的(self-contained)Web应用,或者是在另一应用或引擎的帮助下在浏览器环境中运行的应用。可以利用应用引擎(或小组件引擎)(诸如小组件引擎、WINDOWS 小组件引擎)来运行小组件。小组件可以使用SOAP调用或其它HTTP调用与因特网上的服务进行通信,以检索和更新数据。然后,小组件以有效的方式显示该数据。SOAP是指通常使用HTTP在计算机网络上交换基于XML的消息的协议。
除了其它组件之外,服务器102包括增强型小组件合成平台应用111,而服务器104包括服务112。服务器102可以被实现为APACHETM TOMCATTM服务器,其使用WICKETTM或其它能够处理异步JavaScript和XML(AJAX)操作的框架。服务器102可以用于数据存储,并用来管理小组件部署(或“输出”)过程。
所述服务可以是Web服务、RSS服务、MDX服务或其他服务。一般而言,服务包括被设计为支持通过网络的可互操作的、机器与机器的交互。此外,服务可以是经由网络可到达的任何数据源(诸如网站),其中从数据源检索数据,并解析该数据。例如,服务可以指使用遵循SOAP标准的可扩展标记语言(XML)消息进行通信的客户端或服务器。在另一个实现方式中,将服务器102和服务器104的功能或结构组合到单个的服务器中,或将其部分或全部省略。
使用JavaScript在设备101上实际调用增强型小组件合成平台应用111的许多业务逻辑。在这一方面,经由JavaScript文件在客户端侧实现许多相关的处理。利用该资源分布,当使用增强型小组件合成平台来设计小组件时,在客户端设备上可获得该逻辑,并且在客户端设备上所输出的小组件本身中也可获得该逻辑。
图2是示出根据另一个一般实现方式的示范性过程200的流程图。简单讲,基于经由基于Web的小组件合成平台接收对至少第一服务和小组件引擎的选择而自动生成代码。当所选的小组件引擎调用该代码时,该代码实现可用于与所述第一服务通信的小组件。
更详细地,当在客户端设备上经由Web浏览器输出基于Web的、增强型小组件合成平台的用户界面时,过程200开始(S201)。可以通过后端服务器(诸如服务器102)生成该用户界面,并且经由网络将其传送到客户端设备的Web浏览器,诸如设备101的Web浏览器107。在这点上,通过加载JaveScript库并在网络浏览器环境内放置用户界面元素来初始化增强型小组件合成平台本身。
简要地参考以前的内容,图3示出了一个这样的示范性小组件合成平台300,其包括小组件输出区域301、服务库(repository)区域302、设计元素库区域304、背景图像库区域305和模式选择器区域306。小组件输出区域301是小组件合成平台300的一部分,在该部分中,装配(assemble)、排列和重新排列、连接小组件组件,并且所装配的小组件对象模拟或预览完成的小组件的。
图3示出了在小组件合成平台300中正设计的小组件对象307。尽管小组件对象307具有小组件的外观,但是它实际上是当部署小组件(特别是设计中的小组件)时其将如何呈现的可视化表示。如下面更详细地描述的,尽管小组件对象307可以使用特定于小组件引擎的代码来与服务进行通信,但是小组件对象307的功能通过使用在浏览器环境内模拟一个或多个小组件引擎的兼容层来提供,从而使小组件对象307与实际的小组件相区别。
当向平台的工作空间添加服务时,服务仲裁器(mediator)实例管理器模块生成通用句法(generic syntax),以在与所添加的服务相关联的服务仲裁器实例的组件之间进行仲裁。该通用句法被用来动态地将服务仲裁器实例包括到工作区中,并处理服务的调用。如下面更详细地描述的,可以使用服务仲裁器实例管理器模块来例如将服务请求器组件连接到解释器组件,并将解释器组件连接到绘制器组件。
服务仲裁器实例管理器模块还可以被用来处理从其它服务仲裁器实例和设计元素实例接收的事件或数据。“事件”通常是指诸如点击鼠标或按下按键的用户动作、或从另一应用接收消息。
服务库区域302显示服务,并允许对服务进行选择。在图3的例子中,可以通过使用可展开树控件(control)309可视地过滤可用服务的列表、或通过在文本栏310中输入文本串以搜索服务来选择服务。也可以使用其它控件、技术或方法来定位搜索。示例性服务可以包括RSS服务,诸如News、 News、 Search、New York Stock Exchange Headlines(纽约证券交易要闻)、NASDAQ Headlines(纳斯达克要闻)、New York TimesHeadlines(纽约时报要闻)、Washington Post Headline(华盛顿邮报要闻)、或其它内部或外部服务。
服务库区域302还包括至少一个控件,诸如控件311至313,其使能对小组件引擎的选择。该选择用于确定或指定由增强型小组件合成平台输出的小组件代码的格式或语言。例如,希望生成(或“输出”)YAHOO!小组件的用户可以简单地选择“Deploy Yahoo Widget”(部署Yahoo小组件)控件311,而希望生成MICROSOFT WINDOWS VISTA小组件或GOOGLE小组件的用户可以分别选择“Deploy Vista Gadget”(部署Vista小组件)控件312或“DeployGoogle Gadget”(部署Google小组件)控件313。可以连续或并行地、或使用不同类型的控件来进行这种对各种小组件类型的选择。此外,可以将其它的小组件类型映射到控件311至313,或者还可以添加其它控件。
尽管服务库区域302可以包括几个预定义的服务,但是可以删除或重新排列这些服务,或者可以通过使用服务定义窗口创建新服务来扩展服务库区域302。服务定义窗口可以用来通过从用户接收服务类型、新服务的位置、配置首选项或其它数据来添加新服务。经过该配置处理之后,可以例如通过将添加 到服务库区域302的新服务添加到可展开树控件309或其它控件,来将新服务仲裁器实例与该新服务相关联。以此方式,可以添加新服务,并且可以修改现有的服务。
在增强型小组件合成平台300中,在服务窗口中显示从服务接收的数据。利用来自服务仲裁器实例的绘制器组件的格式化数据,这些服务窗口以由预定义的或用户可调节的参数所指定的方式显示所接收的数据。例如,用户可以分配在文本栏、表格或图表中输出从服务接收的数据的解释器组件和绘制器组件。因此,将每个服务与其附属的解释器组件和绘制器组件相关联地存储在服务库区域302中。
类似地,设计元素库区域304显示设计元素,并允许对设计元素进行选择。尽管设计元素(DE)由于不进行服务调用或处理传入数据,因而不必像服务那样包括服务请求器组件、解释器组件或绘制器组件,但是设计元素类似于服务。在各种实现方式中,设计元素可以是用于布局目的的非功能性的图形元素,或者设计元素可以包括高级功能,诸如在选择图标时经由通信链路发送数据的能力、或接受或输出文本串的能力。示例性的设计元素包括例如非功能性的设计元素(诸如不可变的文本栏(Textfield)、标签(Label)、形状或分隔符)或功能性的设计元素(诸如发邮件(Mailto:)、或电话链路、或者用于显示所输出的文本串或图形或者接收所输入的文本串的文本栏)。
背景图像库区域305显示预定义的背景模板,并允许对预定义的背景模板进行选择。通过在增强型小组件合成平台300的易于访问(easy-to-access)的部分中提供公用的背景模板,初学用户可以创建具有定制外观和感觉(lookand feel)的看上去非常漂亮的小组件,而无需要求或利用高级编程技术。
模式选择器区域306显示当前模式,并允许通过诸如模式选择器控件315来选择不同的模式。例如,增强型小组件合成平台300可以包括设计模式和预览模式。在设计模式中,经由基于Web的小组件合成平台300来选择服务,而在预览模式中,经由增强型小组件合成平台300来模拟小组件。
可以在设计模式中直观地设计小组件。在该模式下,增强型小组件合成平台300的行为类似于诸如 VISUAL 软件开发环境的基于桌面的IDE。与基于桌面的IDE类似,增强型小组件合成平台300允许用户拖放组件,例如从服务库区域302或设计元素库区域304拖放组件,以为了置于上下文中(contextualization)的目的而连接组件,并且其允许分配或定义组件的视觉特性(诸如色彩或尺寸)。然而,即使在设计模式中,增强型小组件合成平台300也与服务进行通信,在适当的位置和时间输出实时(live)数据,并在组件之间交换数据。
置于上下文中一般是指基于对第二数据源的先前数据访问的结果而对第一数据源进行数据访问的处理,并且可以导致检索的数据比两个单独或分离的数据访问找到的数据更相关。因而,置于上下文中的数据是指第二数据访问的输出或结果,其中该第二数据访问的输入条件或参数由先前发生的第一数据访问来限定。
在简单的例子中,对相对静态的销售数据库的第一访问可以返回在最近一个月进行过购买的顾客的列表。对相对静态的地址数据库的第二访问可以得到居住在某个城市中并在最近一个月进行过购买的顾客的列表。如果销售人员正计划访问该城市,则居住在该城市中并在最近一个月进行过购买的顾客的列表要比居住在该城市的顾客的列表和单独的在最近一个月进行过购买的顾客的列表更有价值得多。获得居住在该城市中并在最近一个月进行过购买的顾客的列表后,该列表被认为是置于上下文中的数据。
在更复杂的例子中,对相对动态的新闻数据库的第一访问可以得到利润增加的公司的列表,而对联系人数据库的第二访问可以得到在这些公司中工作的人力资源员工的联系人信息。如果职业介绍所正在寻找可能正在成长并可能需要雇佣员工的公司的线索(lead),则该经过过滤的联系信息可能是有价值的。由于该经过过滤的联系人信息是从不同的数据源检索来的,所以也可以将它看作是置于上下文中的数据。类似地,置于上下文中的事件是使得数据从一个数据源(或服务)的输出传递到另一个数据源(或服务)的输入的任何动作或事件。
在运行时模式(或预览模式)中模拟小组件。在该模式下,预览小组件对象以向用户示出在部署小组件时小组件将呈现的样子。基于该模拟,用户可以切换回到设计模式并重新设计元素,或选择输出小组件。因为增强型小组件合成平台在设计模式中也与服务通信,所以不必切换到运行时模式来查看置于上下文中或在组件之间交换数据。
返回到图2,经由基于Web的增强型小组件合成平台来接收对第一服务或设计元素的选择(S202)。对第一服务的选择可以是自动选择,或该选择可以是手动的用户选择。例如,当用户使用鼠标或其它指示设备选择服务库区域302中的服务或设计元素库区域304中的设计元素时,发生用户选择。
图4描述了在已选择了服务401和402的情况下的示范性小组件合成平台300。第一服务401表示澳大利亚证券交易(ASX)收益(Gains)服务,第二服务402表示 News服务。用户可以通过使用鼠标选择服务库区域302中的服务、并将服务拖到小组件输出区域301来选择这些服务中的任何一个。可替代地,可以通过按键的组合、通过使用触摸屏拖放或选择操作、通过语音命令或通过任何其它输入技术来选择服务。
一旦被拖到小组件输出区域301中,就会出现服务窗口404和405(分别表示第一和第二服务401和402),其以列表或其它预定义的或用户可选的格式输出从相关服务接收的数据。例如,服务窗口404以四列来显示来自ASX收益服务401的在特定时间的最高五位收益者,包括公司名称、证券报价机代码、价格和收益百分比。服务窗口405显示来自 News服务402的最重要的新闻。注意,在图4中所示的状态中,在每个服务窗口中显示的信息不必相关或置于上下文中。
每个服务窗口包括各种组件。例如,服务窗口404包括:限定服务窗口404的用户可调边界的框406、至少一个输入控件(或“输入”)(诸如输入407)、以及至少一个输出控件(或“输出”)(诸如输出409至412)。由于对服务的调用可以包括输入参数,所以使用输入控件来接收其它服务或设计元素的输出,从而修整(shaping)或以其它方式限定该服务所使用的输入或查询参数。类似地,使用输出控件来将数据从服务或设计元素输出到另一个组件。
一般地,每个输入控件是服务的相关输入参数的可视化(或“端口”)。例如,虚构的新闻服务可以根据关键字、起始日期和终止日期输入参数或端口来检索数据。该虚构的新闻服务的服务窗口将具有最多三个输入控件,每个端口一个。可以通过将文本框设计元素的输出连接到与关键字端口相关联的输入控件,而使用文本框设计元素来动态地或静态地指定(与第一端口相关联的)关键字数据。
可替代地,可以通过将与关键字端口相关联的输入控件连接到另一个服务窗口的输出来动态指定关键字数据,其中所述另一个服务窗口的输出预期能输出关键字。在另一个例子中,如果所述另一个服务窗口可能输出多个关键字,则可以将事件(诸如鼠标事件)分配给所述另一个服务窗口,以使得基于事件的发生而从所述另一个服务窗口输出特定的关键字。
单个服务可以输出几个数据项。例如,服务窗口404输出关于五个不同公司的每一个的公司数据、报价机符号数据、价格数据和百分比数据。于是,可以向不同的、离散的数据项分配不同的输出控件。在图4的例子中,输出控件409与公司数据相关联,输出控件410与报价机符号数据相关联,输出控件411与价格数据相关联,而输出控件412与百分比数据相关联。可替代地,输出控件409至412可以与在服务窗口404上显示的第一至第四行的数据相关联。
在这方面,可以与用户交互事件结合通过相关的数据区域或类型来限定经由输出控件404输出的数据。例如,如果输出控件409与公司名称相关联,则经由输出控件409输出的公司名称数据可以依赖于在公司名称上发生的鼠标事件而改变。如下面将更详细描述的,这些输入和输出控件对于将数据置于上下文中是有用的。如果用户经由用户界面将与一个服务窗口相关联的输出连接到第二服务窗口的输入,则可以基于用户在服务窗口中对数据的选择或与数据的交互,来对在第二服务窗口上呈现的数据进行动态更新,并使其置于上下文中。
尽管图4中所示的服务窗口404包括几个元素、组件或控件,但是在运行时模式下,可以省略这些元素中的许多元素,或使它们透明。作为例子,在预览模式中可以去除用于在设计模式中建立服务窗口404的边界的框元素406,以降低视觉上的杂乱感并突出数据的重要性,或在视觉上过滤输出数据。
图5是示出示范性服务仲裁器实例500的框图。基于经由小组件合成平台接收对服务的选择而创建服务仲裁器实例。如果服务被选择,则增强型小组件合成平台300创建与所选服务相关联的新服务仲裁器实例500以及显示所选服务的绘制输出的新服务窗口(或“可视容器”(visual container))。服务仲裁器实例500至少包括服务请求器组件501、解释器组件502和绘制器组件504。
服务请求器组件501用于收集输入参数、基于输入参数向第一服务发送服务调用(例如,由+SOAPCall()506、Invoke()、或服务请求器组件501的其它功能或概念生成的服务调用),并向服务仲裁器实例500发送服务调用的原始数据结果505。
在一个实现方式中,服务请求器组件501被包含在负责联合认证功能的安全框架中,以允许小组件与多个服务进行通信,而无需单独地或重复地对每个服务进行认证。在Web浏览器环境中,可以经由客户端证书认证默认地支持联合认证(或“单点登录”(single-sign-on)认证)的使用。然而,在小组件可以运行的浏览器环境的外部,可能包括附加的组件,以允许各种服务请求器组件支持联合认证。
解释器组件502用于将来自服务请求器组件501的原始数据结果505处理成经解释的ServiceDataModel对象507,并向服务仲裁器实例500发送该ServiceDataModel对象507。可以使用+Interpret()509或解释器组件502的其它方面来解析XML或HTML代码,从而将原始数据结果505解释成ServiceDataModel对象507。
在将原始数据结果505处理成可用形式后,利用经解释的数据构成(populate)ServiceDataModel对象507,并且将其发送给服务仲裁器实例500。因为解释器组件502作为用于检索和提供原始数据的有意义的解释的接口,所以它可以与从其接收数据的服务的类型密切相关。例如,检索XML forAnalysis(XMLA)数据的服务可以使用XMLA解释器。
绘制器组件504用于输出来自ServiceDataModel对象507的数据的可视表示。由于ServiceDataModel对象507的结构是标准化的,所以可以使用任何绘制器组件504来输出该对象。绘制器组件504包括可以被定制的属性,以改变效果图(visualization),诸如色彩属性、图表类型或属性、列或行格式化属性、字体属性等等。利用ServiceDataModel对象507,绘制器组件504从解释器组件509接收特定格式的、有意义的数据。例如,表格绘制器可以接收单元数组(array of cells)格式的经解释的表格数据。
基于绘制器类型,绘制器组件504使用+Render()功能510来在小组件对象上的特定位置输出具有指定尺寸的经处理数据的可视化表示。可以通过由绘制器组件504使用的服务窗口来限定经处理数据的位置和尺寸,以输出经处理的数据。绘制器组件504还存储基于用户和绘制器组件504所绘制的服务窗口之间的交互来触发置于上下文中事件的组件。例如,绘制器组件504可以存储基于在相关服务窗口发生的onMouseOver事件来触发动作的组件。
在服务或设计元素被拖放到小组件输出区域301上之后,经由WindowObserver模块将服务或设计元素添加到全局小组件模块,所述WindowObserver模块跟踪添加到小组件输出区域301的所有服务和设计元素。在设计过程期间,或当请求部署或输出小组件时,收集由WindowObserver模块存储的数据。然后,WindowObserver模块在小组件输出区域301中传递描述服务窗口或设计元素窗口的位置、尺寸或其它特征的数组。
该数组数据被保存并且被用于重新初始化在输出小组件上的适当位置的服务和设计元素。WindowObserver模块还跟踪服务和设计元素之间的连接,并且在部署或输出之后,出于重新初始化的目的传递这些连接。通常,WindowObserver模块跟踪用户界面上所设计的小组件的每个状态变化,以允许增强型小组件合成平台300根据用户的设计目的而准确地输出小组件。
当从小组件输出区域301去除服务窗口或设计元素窗口时,WindowObserver模块在部署之前从全局小组件模型去除该服务。当接收到输出小组件的选择后,WindowObserver模块对小组件输出区域301中的服务窗口和设计元素窗口进行迭代(iterate),并且检索位置和尺寸数据。WindowObserver模块还对服务和设计元素之间的各种连接进行迭代,并且将连接信息添加到全局小组件模型。此外,WindowObserver模块更新用于限定小组件模型的总体尺寸,并且使用所有这些信息来输出小组件。
参考图2,经由小组件合成平台接收对第二服务的选择(S204)。如上参考图4所述,所选的第一服务是ASX收益服务,其使用ASX服务请求器组件、ASX解释器组件和能够基于所接收的适当格式的数据绘制表格的通用表格绘制器组件(“GenericTableRender”)。为了填充该表格,ASX服务请求器组件读取ASX网站的内容,并且向ASX解释器组件发送原始数据。ASX解释器组件通过解析原始数据的HTML代码来填充ServiceDataModel对象507。通用表格绘制器组件用于在适当的服务窗口中显示ServiceDataModel对象507的表格表示。
第二服务402是 News服务,其使用RSS服务请求器组件、RSS解释器组件和通用表格绘制器组件。当第二服务402被放到小组件输出区域301上时,在WindowObserver模块和在WidgetObjectManager模块中注册相关的服务窗口。在创建可拖拉的服务窗口之后,调用RSS服务请求器组件,从而读取RSS提要。由于RSS使用XML,所以RSS解释器组件处理返回的XML,并填充ServiceDataModel对象507。通用表格绘制器接收ServiceDataModel对象507,并在适当的服务窗口中绘制该数据的表格表示。
可以从位于小组件输出区域301的左侧的可展开树控件309拖出两个服务。对于从可展开树控件309拖到小组件输出区域301的每个服务,创建新的服务仲裁器实例,以实例化相关的服务请求器组件、解释器组件和绘制器组件。当所述服务被最初定义并且被保存到服务库时,将这些组件分配给服务仲裁器实例。
经由小组件合成平台接收将第一服务或设计元素的输出与第二服务或设计元素的输入相连接的选择(S205)。可以生成关于事件的CONNECTOR(连接器)对象,该CONNECTOR对象将第二服务的输入添加为监听器,并且将第一服务的输出添加为调用器。
当两个或更多个服务或设计元素被选择放置在小组件输出区域301上时,可以经由用户界面,出于置于上下文中的目的来对它们进行连接。每个服务具有多个输出和输入端口,所述多个输出和输入端口可以具有相关符号,诸如用于输入的箭头符号和用于输出的点。用户可以通过使用鼠标或其它输入设备简单地在端口之间画线来将一个服务或设计元素的输出连接到另一个服务或设计元素的输入。
一旦在服务窗口或设计元素窗口上画出了有效的连接,则通过创建与特定事件(诸如onBlur事件、onChange事件、onClickEvent事件、onFocus事件、onLoad事件、onMouseOver事件、onSelect事件、onSubmit事件、onUnload事件、按键事件或其它事件)相关的CONNECTOR对象,WidgetObjectManager模块在逻辑上连接这两个服务。CONNECTOR对象将接收服务端口上的输入端口添加为监听器,并将传递服务的输出端口添加为调用器,并且WidgetObjectManager模块将CONNECTOR对象添加到传递服务。可以经由WindowObserver模块发送识别至少第一服务401、至少第一服务401中的每一个的位置和大小、以及第一服务401和第二服务402之间的连接的数组。
有效连接是指在第一服务或设计元素的输出端口和第二服务或设计元素的输入端口之间的连接。从输出名称的服务的输出到基于接收的名称而返回地址的服务的输入的连接是有效连接的一个例子。从服务的输出到同一服务的输入的连接是无效连接的一个例子。在另一例子中,有效连接是指在输出特定类型或格式的数据的第一服务或设计元素的输出与接受特定类型或格式的数据的第二服务或设计元素的输入之间的连接。有效连接也可以指在端口之间的这种底层连接的图形表示,并且可以例如通过在第一服务窗口上的输出控件(与第一服务的输出端口相关联)和第二服务窗口上的输入控件(与第二服务的输入端口相关联)之间所画的箭头来可视化。其它类型的无效连接是从服务的输入开始的连接、或从一个服务的输出到另一个服务的输出的连接。
类似地,有效的选择是引起有效连接的定义或关联的自动或手动的输入,诸如鼠标事件或按键。因此,试图将服务窗口的输出控件连接到同一服务窗口的输入控件的鼠标事件将创建无效连接,因而是无效选择。
图6描述了在第一服务窗口404的输出与第二服务窗口405的输入相连接的状态下的示范性小组件合成平台300的小组件输出区域301。具体地,基于经由指示设备的用户选择,与第一服务404的“公司”栏相关联的输出控件409与第二服务405的输入端口601相连接。因而,通过从ASX服务404的输出端口409(与公司名称相关联)到 News服务窗口405的输入控件601简单地画一条线,即可将ASX收益服务窗口404的输出控件409连接到 News服务窗口405的输入控件601。
此外,同样基于该用户选择,显示箭头连接符602,以可视化地连接两个端口控件,使得用户能够容易地查看、修改或删除该连接的表示。在该具体的例子中,取决于各种事件,可以从第一服务中选择性地输出与第一服务404的“公司”列相关联的公司名称数据,并且自动地将其作为输入参数输入到第二服务405,以作为使用第二服务405进行查询或进行其它置于上下文中的基础。
如果用户将鼠标悬停(mouse over)在公司“SIMS GRP”或“BABCOCK”上、点击公司“SIMS GRP”或“BABCOCK”、或通过tab键指定(tab to)公司“SIMS GRP”或“BABCOCK”、或者以别的方式选择公司“SIMS GRP”或“BABCOCK”,则这些动作可以构成触发向第二服务402输出“SIMS GRP”或“BABCOCK”公司名称的事件。基于从第一服务401接收这些公司名称,第二服务402可以使用 News服务来查找“SIMS GRP”或“BABCOCK”,以确定股票上升的原因或理由,从而将由第一服务401输出的数据置于上下文中。
使用LineManager模块来验证将第一服务或设计元素的输出与第二服务或设计元素的输入相连接的用户选择是否有效(S206)。从服务或设计元素的输出到同一服务或设计元素的输入的连接是无效连接的一个例子。如果验证将第一服务的输出模块与第二服务的输入相连接的选择是有效的,则可以经由LineManager模块来输出将第一服务的输出与第二服务的输入相连接的选择的表示。
LineManager模块验证该连接是有效的,然后画线。该线仅仅是底层模型中的两个服务的基于事件的连接的可视化表示。为了建立该连接,调用WidgetObjectManager,以确定例如第一服务401(ASX收益服务)是否已具有用于指定事件(即mouseOver事件)的CONNECTOR对象。
如果第一服务401已具有了用于指定事件的CONNECTOR对象,则使用或修改该CONNECTOR对象以限定服务之间的连接。如果第一服务401不具有用于指定事件的CONNECTOR对象,则创建新的CONNECTOR对象。在图6的例子中,与输出控件409相关联的CONNECTOR对象将输入控件601添加为监听器。该CONNECTOR对象被分配(或重新分配)给mouseOver事件,以使得当触发mouseOver事件时向适当的输出端口发送由该mouseOver事件所选择的数据。
因而,CONNECTOR对象连接小组件的服务或设计元素,其中每个CONNECTOR对象包括监听器和调用器的数组。在检测到事件发生时,CONNECTOR对象调用所注册的监听器。在检测到监听器的破坏时,诸如当在设计模式中删除了与监听器对应的服务窗口时,CONNECTOR对象从与调用器相关联的数组中删除监听器。CONNECTOR对象还可以管理所有可视的服务仲裁器实例或设计元素实例、它们的连接的可视化表示、以及各种小组件对象的破坏。
图7是示出调用器、事件和监听器之间的示范性关系的框图。具体地,输出控件701至703可以与单个服务窗口的不同输出端口相关联,可以分别与三个不同服务窗口的输出端口相关联,或者可以与它们的某个组合相关联。类似地,输入控件705和706中的每一个可以与两个不同服务窗口的输入端口相关联,或者输入控件705和706可以都与同一服务窗口的单个输入端口或多个输入端口相关联。
在图7的例子中,CONNECTOR对象707基于在输出控件701的服务窗口发生的onClick事件709,存储限定输入控件705为调用器输出控件701的监听器的数组。CONNECTOR对象710基于在输出控件702的服务窗口发生的按键事件711,存储限定输入控件705为调用器输出控件702的监听器的数组。CONNECTOR对象712基于在输出控件703的服务窗口发生的按键事件714,存储限定输入控件706为调用器输出控件703的监听器的数组。基于在输出控件703的服务窗口发生的onClick事件716,Connector对象715存储限定输入控件706为调用器输出控件703的监听器的数组。
在这点上,取决于不同事件的分配和发生,单个调用器输出端口可以与多个监听器输入端口相关联。相反地,基于类似的事件分配方法,单个监听器输入端口也可以与多个调用器输出端口相关联。因而,可以使用事件(诸如在提供关于列出的最高股票的信息的服务窗口内的鼠标悬停)连接服务和设计元素,从而使另一个服务窗口基于鼠标悬停在小组件的不同区域中的股票符号上来动态地检索新闻。
返回到图2,经由小组件合成平台接收对小组件引擎的选择(S207)。由于可以使用几个不同的小组件引擎来实现小组件,诸如小组件引擎或MICROSOFT 小组件引擎,所以向用户提供选择符合他们的需要或期望的小组件引擎的机会。例如,在图3中,服务库区域302还包括控件311至313,其分别使得能够选择小组件引擎、MICROSOFT 小组件引擎或小组件引擎,当然也可以添加或替换其它的小组件引擎,并且也可以使用其它类型的控件来接受这样的选择。
这样,小组件合成平台提供了用于所设计的小组件的多个部署选项、以及使用户能够将不同的服务装配成小组件的交互式运行时环境。在Web浏览器环境内,使用兼容层来使小组件合成平台能够运行由各种小组件引擎所使用的代码,从而提供利用所选的小组件引擎在增强型小组件合成平台300内或增强型小组件合成平台300外运行同一自动生成的代码的能力。
基于接收对第一服务或设计元素、第二服务或设计元素和/或小组件引擎的选择,自动生成代码(S209)。当被所选的小组件引擎调用时,该代码实现用于与第一和/或第二服务进行通信的小组件。调用通常是指执行计算机程序的指令的过程,并且包含运行、调用、访问、加载和/或执行代码。
经由小组件合成平台对小组件引擎的选择完成小组件的部署或输出。经由存储在WindowObserver模块中的数据来确定小组件的当前状态,其中该数据被发送回到服务器,以装配所生成的适当的代码和所生成的相关文件。
还可以基于接收对限定小组件的外观或用于执行非服务相关功能的设计元素的选择、基于经由基于Web的小组件合成平台接收对第二服务的选择、或基于经由WidgetObjectManager模块接收将第一服务的输出与第二服务的输入相连接的选择,来自动生成所述代码。
使用模拟所选的小组件引擎的至少一部分功能的兼容层在浏览器环境中调用代码,从而在小组件合成平台中模拟小组件(S210)。为了使能Web浏览器环境内的类似小组件(widget-like)的行为,经由兼容层来模拟小组件引擎,该兼容层是实现一个或多个小组件引擎的至少一部分功能的JavaScript文件。以这种方式,可以在在Web浏览器中进行部署之前以及在输出的小组件本身中进行部署之后使用相同或相似的代码。
图8是示出了在所生成的代码和兼容层与小组件引擎生成的响应之间的示范性关系的框图。对于要使用JavaScript在Web浏览器环境中创建的文本栏,将需要创建新的<INPUT>组件,并且向该组件分配属性。尽管小组件引擎不识别<INPUT>组件,但是它的确理解类似的JavaScript不识别的<TextArea>组件。因此,兼容层在Web浏览器环境中实现<TextArea>组件。以这种方式,无论是经由兼容层在Web浏览器环境中调用代码还是使用所选择的小组件引擎调用代码,自动生成的代码都可以发布<TextArea>组件。
在图8中,块801a表示在部署小组件之前自动生成的代码,而块801b表示在部署之后自动生成的代码。代替在浏览器环境内生成<INPUT>组件,块801a生成<TextArea>组件。该<TextArea>组件被兼容层802拦截,在本例子中兼容层802模拟小组件引擎804,并且作为响应其生成Web浏览器可理解的<input>组件。一旦被部署,并且为了执行相同功能,块801b生成小组件引擎804可理解的相同的<TextArea>组件。
通过经由兼容层在Web浏览器内实现<TextArea>组件,可以在部署之前在Web浏览器内、以及在部署之后通过小组件引擎使用相同的自动生成的代码。在部署时,不与自动生成的代码一起输出兼容层代码,并且小组件引擎接收和处理自动生成的代码。该代码可以包括例如诸如<TextArea>组件的组件。结果,在块801a和801b中包含的代码可以是相同的,并且可以仅仅使用不同的引用。
在另一例子中,小组件不识别用于在Web浏览器环境中表示表格的超文本标记语言(HTML)元素,诸如<TABLE>、<SPAN>、<A>,然而,它却能够识别类似的<TEXT>和<FRAME>元素。因此,兼容层存储Text()和Frame()实现方式两者,以允许通用表格绘制器在Web浏览器环境内生成<TEXT>和<FRAME>元素,而不管如何解析这些元素,并且在部署后无需修改这些元素。特别地,当在小组件合成平台内被调用时,<TEXT>和<FRAME>元素返回HTML<TABLE>。当被小组件引擎调用时,小组件引擎识别这些原生元素(native element)和并做出相应的响应。
图9描述了在预览小组件的状态中的示范性小组件合成平台300。具体地,当选择模式选择器315时,小组件合成平台从设计模式转换成模拟小组件的预览(或“运行时”)模式。如上所指出的,即使在设计模式中,小组件合成平台也与所选的服务进行通信,并且如用户所配置的或如预定义的,向各种服务窗口提供实时数据。
然而,在预览模式中,输出小组件中未示出的小组件对象307的某些可视化元素被去除、高亮显示或被做成透明。例如,如图9中所示,在预览模式中,与限定服务窗口的边界的可扩展框架(和相关控件)一样,与各种服务窗口相关联的输入和输出控件被去除。此外,也可以隐藏各种服务之间的连接的表示,除非希望显示这些连接。在其它未示出的实现方式中,在预览模式中还从视图中隐藏了小组件合成平台的诸如服务库区域302或设计元素库区域304的区域。
接收来自第一服务或设计元素的第一数据(S211)。小组件可以用于经由SOAP调用或HTTP调用来与第一服务进行通信。可以从第一服务接收数据,并且可以经由小组件来显示该数据。例如,在图7中,第一服务401接收与最高的五个ASX收益相关的数据,并且在第一服务窗口404中以表格格式显示所接收的数据。由于第一服务窗口404不具有连接到输入控件407的其它服务或设计元素,所以第一服务401接收的数据是通用的、未置于上下文中的数据。
基于检测到事件,从第一服务或设计元素的输出向第二服务或设计元素的输入发送ENVELOPE对象,该ENVELOPE对象封装来自第一服务或设计元素的输出值(S212)。可以基于检测到事件而从调用器向监听器发送ENVELOPE对象,该ENVELOPE对象封装来自调用器的输出值。例如,在图7中,在检测到在第一服务窗口404中的公司名称“BABCOCK”上发生鼠标悬停事件时,向第二服务发送包括该条件(term)的ENVELOPE对象作为输入。因而,第二服务使用条件“BABCOCK”作为输入参数。
一旦通过传递服务触发了事件,则关于该事件的CONNECTOR对象通过从传递对象的注册端口接收输出数据或值来调用所有监听器。输出数据被封装在ENVELOPE对象中,并且向接收服务发送该ENVELOPE对象。除其它数据外,ENVELOPE对象以下述格式存储接收器端口(“监听器”)的数组和为它们请求的数据:
array[receiverPort]=data
基于在第二服务的输入接收到ENVELOPE对象,从第二服务或设计元素接收第二数据(S214),并且输出第二数据(S215)。监听器接收并访问该ENVELOPE对象,并且向其输入端口分配输出数据或值。在已向适当的输入端口分配了封装内容后,使用相关的输入数据重新调用并重新绘制第二服务。
如上所述,当在ASX收益服务窗口404中的公司名称“BABCOCK”上检测到鼠标指针时,触发MouseOver事件。ASX收益服务401确定为MouseOver事件定义的CONNECTOR对象,并且实例化存储接收器端口数组的ENVELOPE对象。
由于连接是由用户在ASX收益(第一)服务401的输出控件409和 News(第二)服务402的输入控件601之间创建的,并且ASX收益服务输出控件409,所以与ASX收益服务的输出控件409相关联的array[1]存储输出数据(“BABCOCK”)。ENVELOPE对象被发送到 News服务,所述 News服务访问ENVELOPE对象并且向与输入控件601相关联的端口分配值“BABCOCK”。然后, News服务被重新调用,并且其接收、处理和显示新的 News对条件“BABCOCK”搜索的结果。
该代码被上传给用户(S216),从而结束过程200(S217)。例如,可以通过将小组件上传到用户设备来输出代码。经由存储在WindowObserver模块中的数据来确定小组件的当前状态,其中该数据被发送回到服务器以装配所生成的适当代码,该代码在数据流中被返回到Web浏览器。例如,该数据流以存档(例如.ZIP)文件输出小组件文件,以供用户下载。
在完成小组件的合成之后,可以将其部署为适合于多个小组件引擎中的任何一个的小组件。所部署的小组件是Web浏览器的WYSIWYG环境中的小组件的快照(sanpshot)。部署管理器模块基于所选的服务利用兼容层来生成小组件。因而,用户可以利用WYSIWYG环境来创建小组件,并且下载、发送到其它用户,或以其它方式部署该小组件。
图10描述了在小组件被输出给用户的状态下的示范性小组件合成平台300。具体地,在选择了控件311时,经由存储在WindowObserver模块中的数据来确定小组件的当前状态。将该数据发送回到服务器,以装配用于小组件的所生成的适当代码。在数据流中将代码返回到Web浏览器,其中对代码的接收使得Web浏览器显示菜单1001。利用该菜单,用户可以选择利用“Open(打开)”控件1002调用被适当格式化为.WIDGET文件的代码,或利用“Save(保存)”控件1004来保存该代码。
如图11中所示,在选择了“Open”控件1002(或通过保存并且在稍后执行所保存的代码)时,调用小组件1101。当由特定小组件引擎所确定的,也可以使用小组件首选项菜单1102来改变小组件首选项。由于小组件1101是在WYSIWYG环境中设计的,所以该小组件1101看起来与经由增强型小组件合成平台300设计的小组件对象307类似或相同。
图12和13也分别描述了在设计模式和预览模式中的示范性小组件合成平台300,其包括使小组件建立通信链路的功能设计元素。简单讲,小组件对象1201包括第一服务窗口1202以及设计元素1204和1205。设计元素窗口1204包括Mailto(发送邮件)图标1206,而设计元素窗口1205包括图标1207。
服务窗口1202包括输出控件1209,其向设计元素窗口1204输出从与服务窗口1202相关联的服务接收的数据(诸如电子邮件地址数据)。在服务窗口1202中的电子邮件地址或Mailto图标1206上发生的mouseOver或onClick事件使得向该电子邮件地址生成电子邮件消息。类似地,服务窗口1202包括输出控件1210,其向设计元素窗口1205输出从与服务窗口1202相关联的服务接收的数据(诸如电话号码数据)。在服务窗口1202中的电话号码或在图标1207上发生的mouseOver或onClick事件使得利用服务向该电话号码拨打电话。在图13中,省略了诸如箭头连接符1211的各种设计元素,以提供对输出小组件的更准确的描述。
由增强型小组件合成平台输出的小组件可以被用来一般性地定义情景,例如用来基于对各种链接数据的动态选择来检测模式,所述数据可以实时地(on-the-fly)被置于上下文中。利用直观的WYSIWYG界面,可以在单个平台中以非技术方式将数据置于上下文中,而不需要专业的编程技术。在该方面,用户可以能够以允许用户永久访问结果信息的方式来定义可能与他们相关的情景。因此,可以说,所部署的小组件根据需要执行将预定义的数据置于上下文中。
此外,增强型小组件合成平台准备了所需要的脚本和代码,以允许发送和接收来自服务的数据,并且允许在用户和容纳服务的服务器之间实现用户认证。因而,不再需要用户手动生成用于执行底层处理的代码,这使得甚至对于无技术经验的用户来说对小组件的创建也更加容易。
安全框架提供了允许通过单点登录或联合认证从数据源检索数据的功能。该安全框架还管理在运行时环境以及所部署的小组件内的安全机制之间的差异,以允许小组件支持安全服务调用。此外,小组件可以经由联合认证来检测用户是否已登录,并且如果用户具有所需要的授权,则选择性地显示数据。
与其它方法不同,增强型小组件合成平台为来自不同数据源和不同类型数据源的数据提供交换,例如包括RSS提要、Web服务和外部HTML页面。此外,增强型小组件合成平台提供将小组件保存为轻便的软件的能力,允许组织或内容专家创建他人可以使用的服务,而不需要任何技术技能或深度的内容了解。
图14示出了根据另一一般实现方式的实现增强型小组件合成平台的示范性系统1400的外观。简单讲,系统1400包括设备1401、包括增强型小组件合成平台应用的服务器1402、以及包括至少一个服务的服务器1404。如下面更详细地描述的,设备1401包括处理器,该处理器被配置成:基于经由基于Web的小组件合成平台接收对至少第一服务和小组件引擎的选择来生成代码,当该代码被所选择的小组件引擎调用时,其实现用于与第一服务进行通信的小组件。
更具体地说,设备1401的硬件环境包括用于向用户显示文本和图像的显示监视器1408、用于向设备1401输入文本数据和用户命令的键盘1409、用于指示、选择和调节显示监视器1408上显示的对象的鼠标1410、固定盘驱动1411、可移动的盘驱动1412、磁带驱动1414、硬拷贝输出设备1415、计算机网络连接1416、以及视频和音频检测器1417。
显示监视器1408显示图形、图像和文本,包括显示设备1401使用的软件应用以及操作设备1401所需的操作系统程序。用户使用键盘1409来输入命令和数据,以操作和控制计算机操作系统程序、Web浏览器和/或小组件引擎。用户使用鼠标1410选择和调节在显示监视器1408上显示的图形和文本对象,以作为与设备1401和设备1401上运行的应用的交互以及对它们进行控制的一部分。鼠标1410是任意类型的指示设备,并且可以是操纵杆、跟踪球、触摸板或其他指示设备。
视频和音频检测器1417允许设备1401捕捉数字图像和/或音频,并且其可以是扫描仪、数码相机、数字摄像机、麦克风或其它类型的数字输入设备。用于提供增强型小组件合成平台的软件被本地存储在诸如固定盘驱动1411的计算机可读存储器介质上。
在其它的实现方式中,固定盘驱动1411本身可以包括多个物理驱动单元,诸如冗余独立磁盘阵列(RAID),或者可以是物理上位于分离的计算单元中的盘驱动群(farm)或盘阵列。这样的计算机可读存储介质允许设备1401访问存储在可移动的和不可移动的存储介质上的计算机可执行处理步骤、应用程序等。
无线或有线线路计算机网络连接1416可以是调制解调器连接、包括以太网的局域网(LAN)连接、或诸如数字用户线(DSL)、线缆高速互联网连接、拨号连接、T-1线路、T-3线路、光纤连接、或卫星连接的宽带广域网(WAN)。网络1406可以是LAN网络、公司或政府WAN网络、互联网或其它网络中的一个或多个。
计算机网络连接1416使用有线或无线连接器。示例的无线连接器包括例如INFRARED DATA 无线连接器、光学无线连接器、INSTITUTE OF ELECTRICAL AND ELECTRONICS 标准802.11无线连接器、无线连接器、近场通信(nearfield communications,NFC)连接器、正交频分复用(OFDM)超宽带(UWB)无线连接器、时间调制超宽带(TM-UWB)无线连接器、以及其它无线连接器。示例的有线连接器包括例如1394 连接器、通用串行总线(USB)连接器、串行端口连接器、并行端口连接器或其它有线连接器。
可移动的盘驱动1412是可移动的存储设备,用于从设备1401卸载数据或向设备1401上载数据。可移动的盘驱动1412可以是软盘驱动、 驱动、只读致密盘存储器(CD-ROM)驱动、可记录CD驱动(CD-R)、可重写CD驱动(CD-RW)、快闪存储器、USB快闪驱动、外部硬盘驱动、拇指型(thumb)驱动、笔型(pen)驱动、密钥(key)驱动、高密度数字多功能盘(HD-DVD)光盘驱动、蓝光(Blu-Ray)光盘驱动、全息数字数据存储(HDDS)光盘驱动、或诸如可记录DVD(DVD-R或DVD+R)、可重写DVD(DVD-RW或DVD+RW)或DVD-RAM的各种可记录或可重写数字多功能盘(DVD)驱动中的任何一种。操作系统程序、应用和各种数据文件存储在盘上,盘存储在固定盘驱动1411上或者可移动盘驱动1412的可移动介质上。
磁带驱动1414是磁带存储设备,用于从设备1401卸载数据和向设备1401上载数据。磁带驱动1414可以是1/4英寸盒式磁带(QIC)、4毫米数字音频磁带(DAT)、8毫米数字线性磁带(DLT)驱动和其它类型的磁带。
硬拷贝输出设备1415为操作系统程序和应用提供输出功能。硬拷贝输出设备1415可以是打印机或产生有形输出对象(包括文本或图像数据或文本或图像数据的图形表示)的任何输出设备。尽管硬拷贝输出设备1415被示为直接连接到设备1401,但是它不是必须如此。例如,硬拷贝输出设备1415可以经由网络接口,诸如有线或无线网络,连接到设备1401。
此外,尽管在图14中设备1401被示为台式PC,但是在其它实现方式中,设备1401可以是便携式计算机、工作站、中型计算机、大型机、嵌入式系统、电话、手持或手写板计算机、PDA、或其它类型的计算机。
图15示出了图14中所示的一个计算机的内部架构的框图。该计算环境包括计算机中央处理单元(CPU)1501,在那里处理包括操作系统或应用的计算机指令;显示接口1502,其提供用于在显示监视器1408上绘制(render)图形、图像和文本的通信接口和处理功能;键盘接口1504,其提供到键盘1409的通信接口;指示设备接口1505,其提供到鼠标1410或等效指示设备的通信接口;数字输入接口1506,其提供到视频和音频检测器1417的通信接口;硬拷贝输出设备接口1508,其提供到硬拷贝输出设备1415的通信接口;随机存取存储器(RAM)1510,在那里计算机指令和数据存储在易失性存储器设备中,以由计算机CPU 1501处理;只读存储器(ROM)1511,在那里用于诸如基本输入和输出(I/O)、启动、和接收来自键盘1409的键击的基本系统功能的不变的低级系统代码或数据存储在非易失性存储器设备中;存储器1520或其它适合类型的存储器(例如随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁盘、光盘、软盘、硬盘、可移动盒式磁带、闪存驱动),在那里存储包括操作系统1521、应用程序1522(包括Web浏览器应用1523、小组件1524和其它需要的应用1525)和数据文件1526的文件;以及计算机网络接口1516,其提供通过计算机网络连接1416到网络1406的通信接口。构成设备和计算机CPU 1501通过计算机总线1527相互通信。小组件引擎可以是TARFITM小组件引擎、诸如WINDOWS 小组件引擎或KAPSULESTM小组件引擎的MICROSOFT小组件引擎、诸如KONFABULTORTM小组件音频的小组件引擎、 小组件引擎、小组件引擎、小组件引擎、OPEARTM小组件引擎、WIDSETSTM小组件引擎、小组件引擎、独占小组件引擎或为台式机上的物理激发的小型应用程序提供主机系统软件的其它小组件引擎。
简单讲,计算机程序产品有形地体现在硬盘1520(一种机器可读存储介质)中。计算机程序产品包括指令,当指令被机器读取时,该指令运行以导致数据处理装置基于经由基于Web的小组件合成平台接收对至少第一服务和小组件引擎的选择来生成代码,当该代码被所选择的小组件引擎调用时,其实现用于与第一服务进行通信的小组件。
RAM 1510与计算机总线1527接口连接,以便在执行诸如操作系统应用程序和设备驱动的软件程序期间向计算机CPU 1501提供快速RAM存储。更具体地说,计算机CPU 1501将计算机可执行步骤从固定盘驱动1411或其它存储介质加载到RAM 1510的区段中,以便执行软件程序。数据存储在RAM1510中,在执行期间,计算机CPU 1501访问该数据。
此外,如图15所示,设备1401存储用于操作系统1521和应用程序1522的计算机可执行代码,所述应用程序1522诸如字处理、电子表格、演示、博弈(gaming)、Web浏览、JavaScript引擎或其它应用。尽管可以使用上述实现方式来提供增强型小组件合成平台,但是也可以根据本公开文献将该功能实现为动态链接库(DLL),或实现为诸如互联网网络浏览器(例如 网络浏览器或 Internet Explorer网络浏览器)的其它应用程序的插件。
计算机CPU 1501是多种高性能计算机处理器之一,包括或处理器、处理器、精简指令集计算机(RISC)处理器、处理器、ACORN RISC Machine架构处理器、HP处理器或大型机的私人计算机处理器。在其它布置中,计算机CPU 1501多于一个处理单元,包括存在于高性能工作站或服务器中的多CPU配置、或存在于大型机中的多个可扩展处理单元。
操作系统1521可以是用于基于和的工作站和服务器的 EMAC OS WINDOWS XP Workstation; WINDOWS /WINDOWS XP Server;各种风格的操作系统,包括用于工作站和服务器的用于工作站和服务器的用于基于 CPU的工作站和服务器的用于工作站和服务器的HP UX WORKLOAD 用于工作站和服务器的用于Digital Equipment Corporation(数字设备公司)计算机的VAX/VMS、用于基于HP 的计算机的用于移动设备的SYMBIAN WINDOWS 或WINDOWS OS(NOS)、或或用于计算机或嵌入式系统的私有操作系统。操作系统1521的应用开发平台或框架可以是:BINARY RUNTIME ENVIRONMENT FOR Java Platform、Micro Edition(Java ME)或Java 2 Platform、MicroEditionPYTHONTM、FLASH 或.NETCompact。
尽管图14和图15示出了执行被配置成实现增强型小组件合成的程序代码、或者程序或处理步骤的计算系统一种可能实现方式,但是也可以使用其它类型的计算机。
对于形式方面,尽管一致地使用术语“用户”来描述与这些过程交互的实体,但是该一般化也意指描述多个相关或不相关、有生命的或自动的实体或以各种不同的、重叠或不重叠状态与这些过程交互的人。在类似方面,术语“选择”意指通篇表示由人的手动选择、由非人的自动选择或其某个合成。
描述了几种实现方式。但是应当理解,在不脱离公开内容的精神和范围的情况下,可以进行各种修改。因此,其它实现方式也包括在所附权利要求书的范围之内。
Claims (20)
1.一种计算机实现的方法,包括基于接收经由基于Web的小组件合成平台对至少第一服务和小组件引擎的选择而自动生成代码,当被所选择的小组件引擎调用时,所述代码实现用于与所述第一服务通信的小组件。
2.根据权利要求1所述的方法,
其中,所述基于Web的小组件合成平台还包括设计模式和预览模式,
其中,在所述设计模式中,经由所述基于Web的小组件合成平台来选择所述第一服务,并且
其中,在所述预览模式中,经由所述基于Web的小组件合成平台来模拟所述小组件。
3.根据权利要求1所述的方法,还包括使用模拟小组件引擎的兼容层在浏览器环境中调用所述代码,从而在小组件合成平台中模拟所述小组件。
4.根据权利要求1所述的方法,还包括基于接收所述选择来创建服务仲裁器实例,该服务仲裁器实例包括:
服务请求器组件,用于:
收集输入参数,
基于所输入的参数向所述第一服务发送服务调用,和
向所述服务仲裁器实例发送所述服务调用的原始数据结果;
解释器组件,用于:
将所述原始数据结果处理成经解释的ServiceDataModel对象,和
向所述服务仲裁器实例发送该ServiceDataModel对象;以及
绘制器组件,用于
绘制ServiceDataModel对象中的数据的可视表示。
5.根据权利要求1所述的方法,其中,还基于接收对限定小组件的外观的设计元素的选择,或基于接收对用于执行非服务相关功能的设计元素的选择,而自动生成所述代码。
6.根据权利要求1所述的方法,其中,还基于接收经由基于Web的小组件合成平台对第二服务的选择而自动生成所述代码。
7.根据权利要求6所述的方法,其中,还基于接收经由WidgetObjectManager模块将所述第一服务的输出与所述第二服务的输入连接的选择而自动生成所述代码。
8.根据权利要求7所述的方法,还包括:
生成关于事件的CONNECTOR对象,该CONNECTOR对象将所述第二服务的输入添加为监听器,并且将所述第一服务的输出添加为调用器;以及
基于检测到所述事件而从调用器向监听器发送ENVELOPE对象,该ENVELOPE对象封装来自调用器的输出值。
9.根据权利要求8所述的方法,还包括:
经由LineManager模块来验证将所述第一服务的输出与所述第二服务的输入连接的选择是有效的;以及
如果验证将所述第一服务的输出模块与所述第二服务的输入连接的选择是有效的,则经由LineManager模块输出将所述第一服务的输出与所述第二服务的输入连接的选择的表示。
10.根据权利要求1所述的方法,其中,所述小组件用于经由面向服务的架构协议(SOAP)调用或其它超文本传输协议(HTTP)调用来与所述第一服务进行通信。
11.根据权利要求1所述的方法,还包括:
从所述第一服务接收数据;以及
经由所述小组件来显示该数据。
12.根据权利要求1所述的方法,其中,所述小组件合成平台包括所见即所得(WYSIWYG)集成开发环境(IDE)。
13.根据权利要求1所述的方法,还包括输出所述小组件。
14.根据权利要求13所述的方法,其中,输出所述小组件还包括将所述小组件上传到用户设备。
15.根据权利要求1所述的方法,其中,所述第一服务是Web服务、聚合内容(RSS)服务、或多维表达式(MDX)服务。
16.根据权利要求1所述的方法,还包括基于接收对所述至少第一服务的选择,使用WindowObserver模块将该至少第一服务添加到全局小组件模型。
17.根据权利要求16所述的方法,还包括经由WindowObserver模块跟踪小组件合成平台的状态改变。
18.根据权利要求17所述的方法,还包括经由WindowObserver模块发送包括所述至少第一服务、所述至少第一服务的每一个的位置和大小、以及所述至少第一服务之间的连接的数组。
19.一种计算机程序产品,有形地包含在机器可读介质中,该计算机程序产品包括指令,当该指令被机器读取时,用于使数据处理装置基于接收经由基于Web的小组件合成平台对至少第一服务和小组件引擎的选择而生成代码,当所选择的小组件引擎调用该代码时,该代码实现用于与第一服务进行通信的小组件。
20.一种包括处理器的设备,被配置成基于接收经由基于Web的小组件合成平台对至少第一服务和小组件引擎的选择而生成代码,当所选择的小组件引擎调用该代码时,该代码实现用于与第一服务进行通信的小组件。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/761,139 | 2007-06-11 | ||
US11/761,139 US8578330B2 (en) | 2007-06-11 | 2007-06-11 | Enhanced widget composition platform |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101373431A true CN101373431A (zh) | 2009-02-25 |
CN101373431B CN101373431B (zh) | 2012-09-05 |
Family
ID=39731683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101259272A Active CN101373431B (zh) | 2007-06-11 | 2008-06-11 | 增强型小组件合成平台 |
Country Status (4)
Country | Link |
---|---|
US (2) | US8578330B2 (zh) |
EP (1) | EP2003573A1 (zh) |
JP (1) | JP5086183B2 (zh) |
CN (1) | CN101373431B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010130078A1 (zh) * | 2009-05-11 | 2010-11-18 | 华为技术有限公司 | 一种widget通信方法及服务器 |
Families Citing this family (83)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110093799A1 (en) * | 2004-09-08 | 2011-04-21 | Universal Electronics Inc. | System and method for configuration of controlling device functionality |
US20070061699A1 (en) * | 2005-09-09 | 2007-03-15 | Microsoft Corporation | Named object view of electronic data report |
US20110145689A1 (en) * | 2005-09-09 | 2011-06-16 | Microsoft Corporation | Named object view over multiple files |
US8495494B2 (en) * | 2007-04-12 | 2013-07-23 | Nuance Communications, Inc. | Method and system for mapping a virtual human machine interface for a mobile device |
US20090100329A1 (en) * | 2007-10-04 | 2009-04-16 | Danny Javier Espinoza | Method of Deploying a Web Widget In a Desktop Widget Platform |
US8146110B2 (en) * | 2007-12-10 | 2012-03-27 | Microsoft Corporation | Service platform for in-context results |
US8589955B2 (en) * | 2008-02-12 | 2013-11-19 | Nuance Communications, Inc. | System and method for building applications, such as customized applications for mobile devices |
US20100299183A1 (en) * | 2009-05-20 | 2010-11-25 | Robb Fujioka | Device and Method for Creating, Distributing, Managing and Monetizing Widgets Including Streaming |
US10460085B2 (en) | 2008-03-13 | 2019-10-29 | Mattel, Inc. | Tablet computer |
US9813782B2 (en) | 2008-04-11 | 2017-11-07 | Adobe Systems Incorporated | Systems and methods for developing objects and actions in media content |
US9063740B2 (en) * | 2008-09-16 | 2015-06-23 | Oracle International Corporation | Web widget component for a rapid application development tool |
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 |
US8645489B1 (en) * | 2008-10-30 | 2014-02-04 | Adobe Systems Incorporated | Systems and methods for the developing content and applications in hosted and non-hosted development environments |
US9032312B2 (en) * | 2008-12-15 | 2015-05-12 | Mastercard International Incorporated | Platform for generating composite applications |
KR101470499B1 (ko) * | 2008-12-30 | 2014-12-08 | 삼성전자주식회사 | 휴대용 단말기의 위젯 제작 장치 및 방법 |
US8510333B2 (en) * | 2008-12-31 | 2013-08-13 | Verizon Patent And Licensing Inc. | Methods, systems, and apparatus for developing widgets |
US8695020B2 (en) * | 2009-02-06 | 2014-04-08 | Visicom Media, LLC | Techniques for customizing a toolbar using widgets |
US8239781B2 (en) * | 2009-06-30 | 2012-08-07 | Sap Ag | Drag and drop of an application component to desktop |
EP2320623B1 (fr) * | 2009-11-09 | 2020-04-01 | Orange | Procédé de fourniture d'un service |
US20110119609A1 (en) * | 2009-11-16 | 2011-05-19 | Apple Inc. | Docking User Interface Elements |
CN101894155A (zh) * | 2010-07-06 | 2010-11-24 | 中兴通讯股份有限公司 | widget的分类方法及系统、终端 |
US8479154B1 (en) | 2010-08-20 | 2013-07-02 | Google Inc. | Interaction with partially constructed mobile device applications |
US8068011B1 (en) | 2010-08-27 | 2011-11-29 | Q Street, LLC | System and method for interactive user-directed interfacing between handheld devices and RFID media |
US9747270B2 (en) | 2011-01-07 | 2017-08-29 | Microsoft Technology Licensing, Llc | Natural input for spreadsheet actions |
USD684986S1 (en) * | 2010-11-29 | 2013-06-25 | Cisco Technology, Inc. | Display screen with a graphical interface |
US8972873B2 (en) * | 2010-11-30 | 2015-03-03 | International Business Machines Corporation | Multi-environment widget assembly, generation, and operation |
US9274862B2 (en) * | 2010-12-09 | 2016-03-01 | Mimecast North America Inc. | Reducing latency in performing a task among distributed systems |
US9111238B2 (en) * | 2010-12-17 | 2015-08-18 | Microsoft Technology Licensing, Llc | Data feed having customizable analytic and visual behavior |
US9104992B2 (en) | 2010-12-17 | 2015-08-11 | Microsoft Technology Licensing, Llc | Business application publication |
US20120272190A1 (en) * | 2011-04-20 | 2012-10-25 | Raytheon Company | Method and System for Graphically Enabled Service Oriented Architecture |
US8442980B2 (en) * | 2011-07-07 | 2013-05-14 | Oracle International Corporation | Attribute change coalescing in order to deal with component moves on a page |
US20140237486A1 (en) * | 2011-09-30 | 2014-08-21 | Nokia Corporation | Method and apparatus for inter-widget communication |
US9053083B2 (en) | 2011-11-04 | 2015-06-09 | Microsoft Technology Licensing, Llc | Interaction between web gadgets and spreadsheets |
US9098312B2 (en) | 2011-11-16 | 2015-08-04 | Ptc Inc. | Methods for dynamically generating an application interface for a modeled entity and devices thereof |
US8909641B2 (en) | 2011-11-16 | 2014-12-09 | Ptc Inc. | Method for analyzing time series activity streams and devices thereof |
US9576046B2 (en) | 2011-11-16 | 2017-02-21 | Ptc Inc. | Methods for integrating semantic search, query, and analysis across heterogeneous data types and devices thereof |
KR101873744B1 (ko) | 2011-11-29 | 2018-07-03 | 엘지전자 주식회사 | 이동단말기 및 그 제어방법 |
AU2012355474B2 (en) * | 2011-12-23 | 2018-01-04 | Airstrip Ip Holdings, Llc | Systems and methods for developing multi-platform applications for computing devices |
US20140047409A1 (en) * | 2012-08-13 | 2014-02-13 | Magnet Systems Inc. | Enterprise application development tool |
US20140047368A1 (en) * | 2012-08-13 | 2014-02-13 | Magnet Systems Inc. | Application development tool |
US20140082476A1 (en) * | 2012-09-17 | 2014-03-20 | ShopAdvisor, Inc. | Asynchronous method and system for integrating user-selectable icons on web pages |
CN102903054A (zh) * | 2012-09-27 | 2013-01-30 | 腾讯科技(深圳)有限公司 | 线上交易验证方法、装置及系统 |
KR20140108458A (ko) * | 2013-02-28 | 2014-09-11 | 삼성전자주식회사 | 웹 위젯을 제작하기 위한 장치 및 그 방법 |
JP6285010B2 (ja) | 2013-03-15 | 2018-02-28 | ピーティーシー インコーポレイテッド | 意味論的モデル化およびタグ付けを使用してアプリケーションを管理する方法およびその装置 |
US9052891B2 (en) * | 2013-05-14 | 2015-06-09 | International Business Machines Corporation | Declarative configuration and execution of card content management operations for trusted service manager |
US9264538B2 (en) * | 2013-06-13 | 2016-02-16 | Verizon Patent And Licensing Inc. | Mobile services hosting |
US10664652B2 (en) | 2013-06-15 | 2020-05-26 | Microsoft Technology Licensing, Llc | Seamless grid and canvas integration in a spreadsheet application |
WO2015035289A1 (en) * | 2013-09-06 | 2015-03-12 | Unisys Corporation | Business suite framework for developing software applications |
CN104516880A (zh) | 2013-09-26 | 2015-04-15 | Sap欧洲公司 | 图形的基于区块的布局 |
US20150113451A1 (en) * | 2013-10-23 | 2015-04-23 | Steve Kopp | Creation of widgets based on a current data context |
US9846682B1 (en) | 2013-11-25 | 2017-12-19 | Amazon Technologies, Inc. | Cross-platform presentation of digital content |
US9124575B2 (en) | 2013-11-27 | 2015-09-01 | Sap Se | Self-single sign-on |
US10353989B1 (en) * | 2013-12-19 | 2019-07-16 | Open Text Corporation | Method to allow switching of user interface layout based on context and configuration |
US10313410B2 (en) | 2014-03-21 | 2019-06-04 | Ptc Inc. | Systems and methods using binary dynamic rest messages |
US9560170B2 (en) | 2014-03-21 | 2017-01-31 | Ptc Inc. | System and method of abstracting communication protocol using self-describing messages |
US10338896B2 (en) | 2014-03-21 | 2019-07-02 | Ptc Inc. | Systems and methods for developing and using real-time data applications |
US9961058B2 (en) | 2014-03-21 | 2018-05-01 | Ptc Inc. | System and method of message routing via connection servers in a distributed computing environment |
US9350791B2 (en) | 2014-03-21 | 2016-05-24 | Ptc Inc. | System and method of injecting states into message routing in a distributed computing environment |
US9762637B2 (en) | 2014-03-21 | 2017-09-12 | Ptc Inc. | System and method of using binary dynamic rest messages |
US9467533B2 (en) | 2014-03-21 | 2016-10-11 | Ptc Inc. | System and method for developing real-time web-service objects |
US10025942B2 (en) | 2014-03-21 | 2018-07-17 | Ptc Inc. | System and method of establishing permission for multi-tenancy storage using organization matrices |
US9462085B2 (en) | 2014-03-21 | 2016-10-04 | Ptc Inc. | Chunk-based communication of binary dynamic rest messages |
US9350812B2 (en) | 2014-03-21 | 2016-05-24 | Ptc Inc. | System and method of message routing using name-based identifier in a distributed computing environment |
US20160019557A1 (en) * | 2014-04-21 | 2016-01-21 | Alok Batra | Systems, methods, and apparatus for providing machine-to-machine and consumer-to-machine interaction application platforms |
US11188308B2 (en) * | 2014-07-23 | 2021-11-30 | Apple Inc. | Interactive code editing |
US20160042274A1 (en) * | 2014-08-06 | 2016-02-11 | Kaybus, Inc. | Knowledge automation system adaptive feedback |
US10031729B1 (en) * | 2014-12-30 | 2018-07-24 | Open Text Corporation | Method and system for implementing custom UI actions in a web application using hidden containers |
US10262006B2 (en) | 2016-04-29 | 2019-04-16 | Microsoft Technology Licensing, Llc | Contextually triggered entry point |
US10600063B2 (en) | 2016-05-17 | 2020-03-24 | Sap Se | Real-time system to identify and analyze behavioral patterns to predict churn risk and increase retention |
CN106325866B (zh) * | 2016-08-22 | 2019-09-20 | 网易(杭州)网络有限公司 | 跨引擎调用方法及装置 |
CA3053683A1 (en) * | 2017-02-17 | 2018-08-23 | Royal Bank Of Canada | Web application firewall |
US11645046B2 (en) * | 2017-07-03 | 2023-05-09 | Unqork, Inc. | Systems and methods for development and deployment of software platforms having advanced workflow and event processing components |
US11315560B2 (en) * | 2017-07-14 | 2022-04-26 | Cognigy Gmbh | Method for conducting dialog between human and computer |
EP3435228A1 (en) * | 2017-07-28 | 2019-01-30 | Sap Se | Merging applications |
CN107423072B (zh) * | 2017-08-11 | 2020-10-30 | 苏州浪潮智能科技有限公司 | web页面动态列筛选与搜索表格数据的方法和装置 |
US10846357B2 (en) | 2018-01-25 | 2020-11-24 | ClickFunnels | Website creation system for creating websites having at least one series of directional webpages and related methods |
US11068559B2 (en) * | 2018-01-25 | 2021-07-20 | ClickFunnels | Website creation system for creating websites having at least one series of directional webpages and related methods |
US10867068B2 (en) * | 2018-06-15 | 2020-12-15 | Gogoody Inc | Personal computing devices with assisted form completion |
US10901593B2 (en) * | 2018-09-21 | 2021-01-26 | Salesforce.Com, Inc. | Configuring components in a display template based on a user interface type |
US11294555B2 (en) * | 2019-04-24 | 2022-04-05 | Appian Corporation | Intelligent manipulation of dynamic declarative interfaces |
WO2023128793A1 (ru) * | 2021-12-27 | 2023-07-06 | Общество С Ограниченной Ответственностью "Кейс Студио" | Система и способ динамической визуализации элементов программного обеспечения |
CN115309299B (zh) * | 2022-09-14 | 2024-02-23 | Oppo广东移动通信有限公司 | 桌面卡片的显示方法、装置、终端、存储介质及程序产品 |
Family Cites Families (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0954688A (ja) * | 1995-08-14 | 1997-02-25 | Fujitsu Ltd | Gui設計支援方法 |
US6189030B1 (en) * | 1996-02-21 | 2001-02-13 | Infoseek Corporation | Method and apparatus for redirection of server external hyper-link references |
EP0798655A3 (en) * | 1996-03-25 | 1999-05-19 | Sun Microsystems, Inc. | Internet-enabled graphical user interface with toolbar icons having built-in links to world-wide web documents and an integrated web browser |
US6731314B1 (en) * | 1998-08-17 | 2004-05-04 | Muse Corporation | Network-based three-dimensional multiple-user shared environment apparatus and method |
WO2000070417A1 (en) * | 1999-05-17 | 2000-11-23 | The Foxboro Company | Process control configuration system with parameterized objects |
US20020152244A1 (en) * | 2000-12-22 | 2002-10-17 | International Business Machines Corporation | Method and apparatus to dynamically create a customized user interface based on a document type definition |
US20030004746A1 (en) * | 2001-04-24 | 2003-01-02 | Ali Kheirolomoom | Scenario based creation and device agnostic deployment of discrete and networked business services using process-centric assembly and visual configuration of web service components |
US20030063723A1 (en) * | 2001-09-28 | 2003-04-03 | Derek Booth | Interactive system for managing and remotely connecting customer utility loads |
US7715924B2 (en) * | 2002-02-01 | 2010-05-11 | The Cleveland Clinic Foundation | Adjustable simulation device and method of using same |
WO2003071442A1 (en) * | 2002-02-15 | 2003-08-28 | Tridium, Inc. | Real-time data interface and method for browsers and the like |
US7810038B2 (en) * | 2002-05-03 | 2010-10-05 | International Business Machines Corporation | Method for modifying a GUI for an application |
US7720910B2 (en) * | 2002-07-26 | 2010-05-18 | International Business Machines Corporation | Interactive filtering electronic messages received from a publication/subscription service |
US20040133445A1 (en) * | 2002-10-29 | 2004-07-08 | Marathon Ashland Petroleum L.L.C. | Generic framework for applying object-oriented models to multi-tiered enterprise applications |
US7111245B2 (en) * | 2002-12-17 | 2006-09-19 | International Business Machines Corporation | System and method for smart graphical components |
JP4014091B2 (ja) * | 2003-02-28 | 2007-11-28 | 株式会社Quick | 情報配信管理方法及び情報配信管理プログラム |
US7546543B2 (en) * | 2004-06-25 | 2009-06-09 | Apple Inc. | Widget authoring and editing environment |
US20060074704A1 (en) * | 2004-10-01 | 2006-04-06 | Microsoft Corporation | Framework to model cross-cutting behavioral concerns in the workflow domain |
US8024703B2 (en) * | 2004-10-22 | 2011-09-20 | International Business Machines Corporation | Building an open model driven architecture pattern based on exemplars |
US20060129917A1 (en) * | 2004-12-03 | 2006-06-15 | Volk Andrew R | Syndicating multiple media objects with RSS |
US20060173669A1 (en) * | 2004-12-30 | 2006-08-03 | Alexander Dreiling | Process model consolidation |
US20060212836A1 (en) * | 2005-03-15 | 2006-09-21 | Nokia Corporation | Personalized user interfaces for presentation-oriented web services |
WO2006110982A1 (en) * | 2005-04-18 | 2006-10-26 | Research In Motion Limited | System and method for flexible visual representation of presentation components |
US20060264204A1 (en) * | 2005-05-19 | 2006-11-23 | Comcast Cable Holdings, Llc | Method for sending a message waiting indication |
US8341536B2 (en) * | 2005-07-08 | 2012-12-25 | International Business Machines Corporation | Dynamic interface component control support |
US8924869B2 (en) * | 2005-08-12 | 2014-12-30 | Barry Fellman | Service for generation of customizable display widgets |
US20070050710A1 (en) * | 2005-08-31 | 2007-03-01 | Redekop Christopher K | Graphical user interface for a web application |
US7873422B2 (en) * | 2005-09-02 | 2011-01-18 | Sap Ag | Event-based coordination of process-oriented composite applications |
CA2550832A1 (en) | 2005-09-13 | 2007-03-13 | Cognos Incorporated | Query framework system and method |
US9104294B2 (en) * | 2005-10-27 | 2015-08-11 | Apple Inc. | Linked widgets |
US20070220035A1 (en) * | 2006-03-17 | 2007-09-20 | Filip Misovski | Generating user interface using metadata |
US7917858B2 (en) * | 2006-06-09 | 2011-03-29 | Hewlett-Packard Development Company, L.P. | Engine for rendering widgets using platform-specific attributes |
US8056092B2 (en) * | 2006-09-29 | 2011-11-08 | Clearspring Technologies, Inc. | Method and apparatus for widget-container hosting and generation |
US20080091777A1 (en) * | 2006-10-12 | 2008-04-17 | International Business Machines Corporation | Method, system and program product for building collaboration applications using multiple-peer user interface libraries |
US20080189679A1 (en) * | 2007-02-05 | 2008-08-07 | Jared Rodriguez | Method and system for creating, deploying, and utilizing a service |
US7702754B2 (en) * | 2007-05-23 | 2010-04-20 | Sap Ag | Enhanced widget architecture |
US20080300980A1 (en) * | 2007-05-31 | 2008-12-04 | Goodstorm, Inc. | Method and system of synchronizing data processed through web widgets distributed across network nodes |
US8001519B2 (en) * | 2007-06-27 | 2011-08-16 | International Business Machines Corporation | Model driven development including aspect integration tool |
US8127237B2 (en) * | 2007-09-24 | 2012-02-28 | Sap Ag | Active business client |
US8234622B2 (en) * | 2008-03-31 | 2012-07-31 | Microsoft Corporation | Cross platform compositional widgets |
US8713520B2 (en) * | 2008-04-04 | 2014-04-29 | Adobe Systems Incorporated | Web development environment that enables a developer to interact with run-time output presentation of a page |
US8171451B2 (en) * | 2008-05-09 | 2012-05-01 | International Business Machines Corporation | Providing reports as web services |
US8239840B1 (en) * | 2010-03-10 | 2012-08-07 | Google Inc. | Sensor simulation for mobile device applications |
US8826229B2 (en) * | 2011-06-02 | 2014-09-02 | The Mathworks, Inc. | Immutable properties in a class |
-
2007
- 2007-06-11 US US11/761,139 patent/US8578330B2/en active Active
-
2008
- 2008-05-30 EP EP20080009960 patent/EP2003573A1/en not_active Ceased
- 2008-06-10 JP JP2008152230A patent/JP5086183B2/ja active Active
- 2008-06-11 CN CN2008101259272A patent/CN101373431B/zh active Active
-
2013
- 2013-09-23 US US14/034,180 patent/US9021423B2/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010130078A1 (zh) * | 2009-05-11 | 2010-11-18 | 华为技术有限公司 | 一种widget通信方法及服务器 |
CN102301327A (zh) * | 2009-05-11 | 2011-12-28 | 华为技术有限公司 | 一种widget通信方法及服务器 |
Also Published As
Publication number | Publication date |
---|---|
JP5086183B2 (ja) | 2012-11-28 |
US20080307385A1 (en) | 2008-12-11 |
US20140026095A1 (en) | 2014-01-23 |
JP2008305411A (ja) | 2008-12-18 |
CN101373431B (zh) | 2012-09-05 |
US8578330B2 (en) | 2013-11-05 |
EP2003573A1 (en) | 2008-12-17 |
US9021423B2 (en) | 2015-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101373431B (zh) | 增强型小组件合成平台 | |
US10929116B2 (en) | Generation of dynamic software models using input mapping with feature definitions | |
JP7017613B2 (ja) | 自動検出されるターゲットラベルに基づくロボティックプロセスオートメーションアクティビティのネーミング(名付け) | |
US9361069B2 (en) | Systems and methods for defining a simulated interactive web page | |
Bouman et al. | Pentaho solutions | |
CN101114299B (zh) | 编程地隐藏和显示WiKi页面布置部分的方法和数据处理系统 | |
CN101101604A (zh) | 使用浏览器操纵内容的命令的方法与系统 | |
CN101101603A (zh) | 配置针对合作网页的命令的方法与系统 | |
CN101490674A (zh) | 用于使用维基网页来定义维基网页布置的方法 | |
Deitel et al. | C# 2012 for Programmers | |
Whiting et al. | Creating an iPhone application for collecting continuous ABC data | |
WO2011118003A1 (ja) | ウェブアプリケーション構築システム、ウェブアプリケーション構築方法、ウェブアプリケーション構築プログラムおよびウェブアプリケーション構築プログラムを記録した記録媒体 | |
Anderson et al. | Pro business applications with silverlight 4 | |
Snell et al. | Microsoft Visual Studio 2012 Unleashed: Micro Visua Studi 2012 Unl_p2 | |
CN102446094A (zh) | 用于有效地实现系统和桌面配置增强的装置和方法 | |
Liberty et al. | Programming ASP. NET: Building Web Applications and Services with ASP. NET 2.0 | |
Paz | Beginning ASP. NET MVC 4 | |
US11036763B2 (en) | Flexible organizational hierarchy | |
Walther | ASP. Net 2.0 Unleashed | |
Patel | Sitecore Cookbook for Developers | |
Khosravi | Professional ASP. NET 2.0 server control and component development | |
McCune et al. | Adobe Flex 3.0 for Dummies | |
Lumba et al. | Android-based Library Application Development Case Study: Kalbis Institute Informatics Department | |
Vogel | Professional Web Parts And Custom Controls With Asp. Net2. 0 | |
Paz | Pro Telerik ASP. NET and Silverlight Controls: Master Telerik Controls for Advanced ASP. NET and Silverlight Projects |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |