增强型小组件合成平台的制作方法

文档序号:6465209阅读:1966来源:国知局
专利名称:增强型小组件合成平台的制作方法
技术领域
本公开文件一般涉及小组件(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 )月良务、多维表达式(Multidimensional expressions, MDX)服务或经由网络可获得的任何数据源(诸如网站)。基 于接收对所述至少第一服务的选择,可以使用WindowObserver模块将该至少 第一服务添加到全局小组件模块。经由WindowObserver模块可以跟踪小组件 合成平台的状态改变。经由WindowObserver模块可以发送包括所述至少第一 服务、至少第一服务的每3个的位置和大小、以及所述至少第一服务之间的
连4妄的lt《且(array )。
根据本发明的另 一个一般实现方式,将计算机程序产品有形地包含在机 器可读介质中。该计算机程序产品包括指令,当机器读取该指令时,该指令 用于使数据处理装置基于接收经由基于Web的小组件合成平台对至少一个第 一服务和小组件引擎的选择而生成代码,当所选的小组件引擎调用该代码时, 该代码实现用于与第一服务进行通信的小组件。
根据本发明的另一个一般实现方式, 一种设备包括处理器,该处理器被 配置成基于接收经由基于Web的小组件合成平台对至少一个第一服务和小组
件引擎的选择而生成代码,二当所选的小组件引擎调用该代码时,该代码实现 用于与第 一服务进行通信的J、组件。
根据本发明的另一个一般实现方式, 一种设备包括装置,该装置用于基 于接收经由基于Web的小组件合成平台对至少 一 个第 一服务和d、组件引擎的 选择而生成代码,当所选的小组件引擎调用该代码时,该代码实现用于与第 一服务进行通信的小组件。
根据本发明的另一个一般实现方式,经由基于Web的WYSIWYG小组 件合成平台接收对第 一服务的用户选择,经由小组件合成平台接收对第二服 务的用户选择,并且经由小组件合成平台接收将第一服务的输出与第二服务 的输入进行连接的用户选择。验证将第一服务的输出与第二服务的输入进行 连接的用户选择是否有效,经由所述小组件合成平台接收对小组件引擎的用 户选择,并且基于接收所述第一服务、第二服务和小组件引擎的选择而自动 生成代码,当被所选的小组伴引擎调用时,该代码实现用于与所述第一和第 二服务通信的小组件。使用模拟所述小组件引擎的兼容层在浏览器环境中调 用代码,从而在小组件合成平台中模拟所述小组件。接收来自第一服务的第 一数据,并且基于^f企测事件从所述第 一服务的输出向所述第二服务的输入发 送ENVELOPE对象,该ENVELOPE对象封装来自第一服务的输出值。基于 在第二服务的输入接收所述ENVELOPE对象,从所述第二服务接收第二数 据,输出第二数据,并且向用户加载将该代码。
以下,在附图和说明书中阐述一个或多个实现方式的细节。本公开内容 的其它可能特征和优点将从说明书、附图、以及权利要求书变得明显。


图1是根据一个一般实现方式的示范性系统的框图。
图2是示出了根据另一个一般实现方式的示范性过程的流程图。
图3、图4、图6、图9、图10、图12和图13描述了在各种状态中的根 据另 一一般实现方式的示范性、组件合成平台。
图5是示出了示范性服务仲裁器实例的框图。
图7是示出了在调用器、事件和监听器之间的示范性关系的框图。
图8是示出了在所生成的代码和由兼容层与小组件引擎生成的响应之间 的示范性关系的框图。
图ll描述了示范性小组件。
图14示出了根据另——般实现方式的示范性系统的外观。 图15是示出了图14中所示的设备的内部架构的框图。 通篇中相似的附图标记表示相应的部分。
具体实施例方式
从最基础的方面说来,增强型小组件合成平台是基于Web的WYSIWYG IDE,其允许用户使用直观的桌面型开发环境来容易地创建小组件。通过使用 Web 2.0技术来经由Web浏览器提供IDE,无需在本地计算机上安装额外的 应用软件即可调用该增强型小组件合成平台。这样做,即使不具有专业编程 技能的用户也可以可视地创建小组件,并且输出(或"部署")这些小组件, 以与其它的各种小组件引擎(诸如YAHOO^小组件引擎、或MICROSOFT VISTA⑧小组件引擎等)联合使用。IDE通常是指辅助初学者或有经验的软件 开发者开发软件的计算机应用。
图1是根据一个一般客户端-服务器实现方式的示范性系统100的框图。 简单讲,系统100包括经由网络105连接的设备101与服务器102和l(M。
设备IOI包括(除了其它组件以外)处理器]06、 Web浏览器107、小组 件引擎109、和输出介质110。处理器106被配置为基于经由基于Web的小 组件合成平台接收对至少第 一服务和小组件引擎的选择而生成代码。当被所 选的小组件引擎调用时,所述代码实现(即,导致、完成、提供、输出和/或 实行)可用于与所述第一服务通信的小组件。Web浏览器107表示增强型小 组件合成平台的前端,并且显示增强型小组件合成平台的用户界面。Web浏 览器107可以是任何一种Web浏览器,诸如MICROSOFT INTERNET
EXPLORER Web浏览器、APPLE SAFARI Web浏览器等。
小组件(widget或gadget)可以是显示并更新本地和远程数据的客户端 独立的(self-contained) Web应用,或者是在另 一应用或引擎的帮助下在浏 览器环境中运行的应用。可以利用应用引擎(或小组件引擎)(诸如YAHOO! 小组件引擎、WINDOWS VISTA⑧SIDEBAI^小组件引擎)来运行小组件。小 组件可以使用SOAP调用或其它HTTP调用与因特网上的服务进行通信,以 检索和更新数据。然后,小组件以有效的方式显示该数据。SOAP是指通常 使用HTTP在计算机网络上交换基于XML的消息的协议。
除了其它组件之外,服务器102包括增强型小组件合成平台应用111, 而服务器104包括服务112。服务器102可以被实现为APACHE TOMCAT 服务器,其使用WICKET 或其它能够处理异步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的功能it过使用在浏览器环境内模拟一个或多个小组件引 擎的兼容层来提供,从而使小组件对象307与实际的小组件相区别。
当向平台的工作空间添加服务时,服务仲裁器(mediator)实例管理器模 块生成通用句法(generic syntax ),以在与所添加的服务相关联的服务仲裁器 实例的组件之间进行仲裁。该通用句法被用来动态地将服务仲裁器实例包括 到工作区中,并处理服务的调用。如下面更详细地描述的,可以使用服务仲 裁器实例管理器模块来例如将服务请求器组件连接到解释器组件,并将解释 器组件连接到绘制器组件。
服务仲裁器实例管理器模块还可以被用来处理从其它服务仲裁器实例和 设计元素实例接收的事件或数据。"事件"通常是指诸如点击鼠标或按下按键 的用户动作、或从另一应用接收消息。
服务库区域302显示服务,并允许对服务进行选择。在图3的例子中, 可以通过使用可展开树控杯(control) 309可视地过滤可用服务的列表、或通 过在文本栏310中输入文本串以搜索服务来选择服务。也可以使用其它控件、 技术或方法来定位搜索。示例性服务可以包括RSS服务,诸如GOOGLE News、 YAHOO! News、 GOOGLE Search、 New York Stock Exchange Headlines (纽约证券交易要闻)、NASDAQ Headlines (纳斯达克要闻)、New York Times
Headlines (纽约时报要闻)、Washington Post Headline (华盛顿邮报要闻)、或 其它内部或外部服务。
服务库区域302还包括至少一个控件,诸如控件311至313,其使能对 小组件引擎的选择。该选择用,于确定或指定由增强型小组件合成平台输出的 小组件代码的格式或语言。例如,希望生成(或"输出")YAHOO!小组件 的用户可以简单地选择"Deploy Yahoo Widget"(部署Yahoo小组件)控件311, 而希望生成MICROSOFT WINDOWS VISTA小组件或GOOGLE小组件的用 户可以分别选择"Deploy Vista Gadget"(部署Vista小组件)控件312或"Deploy Google Gadget"(部署Google小组件)控件313。可以连续或并行地、或使 用不同类型的控件来进行这种对各种小组件类型的选择。此外,可以将其它 的小组件类型映射到控件311至313,或者还可以添加其它控件。
尽管服务库区域302可以包括几个预定义的服务,但是可以删除或重新 排列这些服务,或者可以通过使用服务定义窗口创建新服务来扩展服务库区 域302。服务定义窗口可以用来通过从用户接收服务类型、新服务的位置、 配置首选项或其它数据来添加新服务。经过该配置处理之后,可以例如通过 将添加到服务库区域302的新服务添加到可展开树控件309或其它控件,来 将新服务仲裁器实例与该新服务相关联。以此方式,可以添加新服务,并且 可以修改现有的服务。
在增强型小组件合成平台300中,在服务窗口中显示从服务接收的数据。 利用来自服务仲裁器实例的绘制器组件的格式化数据,这些服务窗口以由预 定义的或用户可调节的参数所指定的方式显示所接收的数据。例如,用户可 以分配在文本栏、表格或图表中输出从服务接收的数据的解释器组件和绘制 器组件。因此,将每个服务与其附属的解释器组件和绘制器组件相关联地存 储在服务库区域302中。
类似地,设计元素库区域304显示i殳计元素,并允许对设计元素进行选 择。尽管设计元素(DE)由于不进行服务调用或处理传入数据,因而不必像 服务那样包括服务请求器組件、解释器组件或绘制器组件,但是设计元素类 似于服务。在各种实现方统^,设计元素可以是用于布局目的的非功能性的 图形元素,或者设计元素可以包括高级功能,诸如在选择图标时经由通信链 路发送数据的能力、或接受或输出文本串的能力。示例性的设计元素包括例 如非功能性的设计元素(诸如不可变的文本栏(Textfield)、标签(Label )、
形状或分隔符)或功能性的设计元素(诸如发邮件(Mailto:)、 SKYPE⑧或电 话链路、或者用于显示所输出的文本串或图形或者接收所输入的文本串的文 本栏)。
背景图像库区域305显示预定义的背景模板,并允许对预定义的背景模 板进行选择。通过在增强型小组件合成平台300的易于访问(easy-to-access) 的部分中提供公用的背景模板,初学用户可以创建具有定制外观和感觉(look andfeel)的看上去非常漂亮的小组件,而无需要求或利用高级编程技术。
模式选择器区域306显示当前模式,并允许通过诸如模式选择器控件315 来选择不同的模式。例如,增强型小组件合成平台300可以包括设计模式和 预览模式。在设计模式中,经由基于Web的小组件合成平台300来选择服务, 而在预览模式中,经由增强型小组件合成平台300来模拟小组件。
可以在设计模式中直观地设计小组件。在该模式下,增强型小组件合成 平台300的行为类似于诸如MICROSOFT VISUAL STUDIC^软件开发环境 的基于桌面的IDE。与基于桌面的IDE类似,增强型小组件合成平台300允 许用户拖放组件,例如从服务库区域302或设计元素库区域304拖放组件, 以为了置于上下文中(contextualization )的目的而连接组件,并且其允许分 配或定义组件的视觉特性(诸如色彩或尺寸)。然而,即使在设计模式中,增 强型小组件合成平台300也与服务进行通信,在适当的位置和时间输出实时 (live )数据,并在组件之间交换数据。
置于上下文中 一 般是指基于对第二数据源的先前数据访问的结果而对第 一数据源进行数据访问的处理,并且可以导致检索的数据比两个单独或分离 的数据访问找到的数据更相关。因而,置于上下文中的数据是指第二数据访 问的输出或结果,其中该第二数据访问的输入条件或参数由先前发生的第一 数据访问来限定。
在简单的例子中,对相对静态的销售数据库的第一访问可以返回在最近 一个月进行过购买的顾客的列表。对相对静态的地址数据库的第二访问可以 得到居住在某个城市中并在最近一个月进行过购买的顾客的列表。如果销售 人员正计划访问该城市,则居住在该城市中并在最近一个月进行过购买的顾 客的列表要比居住在该城f的顾客的列表和单独的在最近一个月进行过购买 的顾客的列表更有价值得多。获得居住在该城市中并在最近一个月进行过购 买的顾客的列表后,该列表被认为是置于上下文中的数据。
在更复杂的例子中,对相对动态的新闻数据库的第 一访问可以得到利润 增加的公司的列表,而对联系人数据库的第二访问可以得到在这些公司中工 作的人力资源员工的联系人信息。如果职业介绍所正在寻找可能正在成长并
可能需要雇佣员工的公司的线索(lead),则该经过过滤的联系信息可能是有
价值的。由于该经过过滤的联系人信息是从不同的数据源检索来的,所以也 可以将它看作是置于上下文中的数据。类似地,置于上下文中的事件是使得
数据从一个数据源(或服务):的输出传递到另一个数据源(或服务)的输入 的任何动作或事件。
在运行时模式(或预览模式)中模拟小组件。在该模式下,预览小组件 对象以向用户示出在部署小组件时小组件将呈现的样子。基于该模拟,用户 可以切换回到设计模式并重新设计元素,或选择输出小组件。因为增强型小 组件合成平台在设计模式中也与服务通信,所以不必切换到运行时模式来查 看置于上下文中或在组件之间交换数据。
返回到图2,经由基于Web的增强型小组件合成平台来接收对第一服务 或设计元素的选择(S202)。对第一服务的选择可以是自动选择,或该选择可 以是手动的用户选择。例如,当用户使用鼠标或其它指示设备选择服务库区
图4描述了在已选择了服务401和402的情况下的示范性小组件合成平 台300。第一服务401表杀;處大利亚证券交易(ASX)收益(Gains)服务, 第二服务402表示GOOGLE News服务。用户可以通过使用鼠标选择服务库 区域302中的服务、并将服务拖到小组件输出区域301来选择这些服务中的 任何一个。可替代地,可以通过按键的组合、通过使用触摸屏拖放或选择操 作、通过语音命令或通过任何其它输入技术来选择服务。
一旦被拖到小组件输出区域301中,就会出现服务窗口 404和405 (分 别表示第一和第二服务401和402 ),其以列表或其它预定义的或用户可选的 格式输出从相关服务接收的数据。例如,服务窗口 404以四列来显示来自ASX 收益服务401的在特定时间的最高五位收益者,包括公司名称、证券报价机 代码、价格和收益百分比。服务窗口 405显示来自GOOGLE⑧News服务402 的最重要的新闻。注意,在图4中所示的状态中,在每个服务窗口中显示的 信息不必相关或置于上下X中。
每个服务窗口包括各科组件。例如,服务窗口 404包括限定服务窗口
404的用户可调边界的框406、至少一个输入控件(或"输入")(诸如输入 407)、以及至少一个输出控件(或"输出")(诸如输出409至412)。由于对 服务的调用可以包括输入参数,所以使用输入控件来接收其它服务或设计元 素的输出,从而修整(shaping)或以其它方式限定该服务所使用的输入或查 询参数。类似地,使用输出控件来将数据从服务或设计元素输出到另一个组 件。
一般地,每个输入控件是服务的相关输入参数的可视化(或"端口")。 例如,虚构的新闻服务可以根据关键字、起始日期和终止日期输入参数或端 口来检索数据。该虚构的新闻服务的服务窗口将具有最多三个输入控件,每 个端口 一个。可以通过将文本框设计元素的输出连接到与关键字端口相关联
的输入控件,而使用文本框设计元素来动态地或静态地指定(与第一端口相 关4关的)关4建字l史据。
可替代地,可以通过将与关键字端口相关联的输入控件连接到另一个服 务窗口的输出来动态指定关键字数据,其中所述另 一个服务窗口的输出预期 能输出关键字。在另一个例子中,如果所述另一个服务窗口可能输出多个关 键字,则可以将事件(诸如鼠标事件)分配给所述另一个服务窗口,以使得 基于事件的发生而从所述另 一个服务窗口输出特定的关键字。
单个服务可以输出几个数据项。例如,服务窗口 404输出关于五个不同 公司的每一个的公司数据、报价机符号数据、价格数据和百分比数据。于是, 可以向不同的、离散的数据项分配不同的输出控件。在图4的例子中,输出 控件409与公司数据相关娱,"输出控件410与报价机符号数据相关联,输出 控件411与价格数据相关联,而输出控件412与百分比数据相关联。可替代 地,输出控件409至412可以与在服务窗口 404上显示的第一至第四行的数 据相关联。
在这方面,可以与用户交互事件结合通过相关的数据区域或类型来限定 经由输出控件404输出的数据。例如,如果输出控件409与公司名称相关联,
标事件而改变。如下面将更详细描述的,这些输入和输出控件对于将数据置 于上下文中是有用的。如果用户经由用户界面将与一个服务窗口相关联的输 出连接到第二服务窗口的输入,则可以基于用户在服务窗口中对数据的选择 或与数据的交互,来对在第二服务窗口上呈现的数据进行动态更新,并使其
置于上下文中。
尽管图4中所示的服务窗口 404包括几个元素、组件或控件,但是在运 行时模式下,可以省略这些元素中的许多元素,或使它们透明。作为例子,
在预览模式中可以去除用于在设计模式中建立服务窗口 404的边界的框元素 406,以降低视觉上的杂乱感并突出数据的重要性,或在视觉上过滤输出数据。 图5是示出示范性服务仲裁器实例500的框图。基于经由小组件合成平 台接收对服务的选择而创建服务仲裁器实例。如果服务被选择,则增强型小 组件合成平台300创建与所选服务相关联的新服务仲裁器实例500以及显示 所选服务的绘制输出的新服务窗口 (或"可视容器"(visual container ))。月艮 务仲裁器实例500至少包括服务请求器组件501、解释器组件502和绘制器 组件504。
服务请求器组件501用于收集输入参数、基于输入参数向第一服务发送 服务调用(例如,由+SOAPCa11()506、 I,ke()、或服务请求器组件501的其 它功能或概念生成的服务调用),并向服务仲裁器实例500发送服务调用的原 始数据结果505。
在一个实现方式中,服务请求器组件501被包含在负责联合认证功能的 安全框架中,以允许小组件与多个服务进行通信,而无需单独地或重复地对 每个服务进行认证。在Web浏览器环境中,可以经由客户端证书认证默认地 支持联合认证(或"单点登录"(single-sign-on)认证)的使用。然而,在小 组件可以运行的浏览器环境的外部,可能包括附加的组件,以允许各种服务 请求器组件支持联合认证。
解释器组件502用于将来自服务请求器组件501的原始数据结果505处 理成经解释的ServiceDataModel对象507,并向力l务仲裁器实例500发送该 ServiceDataModel对象507。可以使用+Interpret() 509或解释器组件502的其 它方面来解析XML或HTML代码,从而将原始数据结果505解释成 ServiceDataModel对象507。
在将原始数据结果505处理成可用形式后,利用经解释的数据构成 (populate )ServiceDataModel对象507,并且将其发送给服务仲裁器实例500。 因为解释器组件502作为用于检索和提供原始数据的有意义的解释的接口 , 所以它可以与从其接收数据的服务的类型密切相关。例如,检索XML for Analysis (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是GOOGLE 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之间的连接的数组。
有效连接是指在第一服务或设计元素的输出端口和第二服务或设计元素 的输入端口之间的连接。从输出名称的服务的输出到基于接收的名称而返回 地址的服务的输入的连接是有效连接的一个例子。从服务的输出到同一服务 的输入的连接是无效连接的一个例子。在另一例子中,有效连接是指在输出 特定类型或格式的数据的第一服务或设计元素的输出与接受特定类型或格式 的数据的第二服务或"i殳计元素的输入之间的连接。有效连接也可以指在端口 之间的这种底层连接的图形表示,并且可以例如通过在第一服务窗口上的输 出控件(与第一服务的输出端口相关联)和第二服务窗口上的输入控件(与 第二服务的输入端口相关联)之间所画的箭头来可视化。其它类型的无效连 接是从服务的输入开始的连接、或从一个服务的输出到另一个服务的输出的 连接。
类似地,有效的选择是引起有效连接的定义或关联的自动或手动的输入,
诸如鼠标事件或按^:。因此,试图将服务窗口的^;出控件连接到同一服务窗 口的输入控件的鼠标事件将创建无效连接,因而是无效选择。
图6描述了在第一服务窗口 404的输出与第二服务窗口 405的输入相连 接的状态下的示范性小组件合成平台300的小组件输出区域301。具体地, 基于经由指示设备的用户选择,与第一服务404的"公司,,栏相关联的输出 控件409与第二服务405的输入端口 601相连接。因而,通过从ASX服务 404的输出端口 409 (与公司名称相关联)到GOOGLE News服务窗口 405 的输入控件601简单地画一条线,即可将ASX收益服务窗口 404的输出控件 409连接到GOOGLE News服务窗口 405的输入控件601。
此外,同样基于该用户选择,显示箭头连接符602,以可视化地连接两 个端口控件,使得用户能够容易地查看、修改或删除该连接的表示。在该具
体的例子中,取决于各种事件,可以从第一服务中选择性地输出与第一服务 404的"公司"列相关联的公司名称数据,并且自动地将其作为输入参数输
入到第二服务405,以作为使用第二服务405进行查询或进行其它置于上下 文中的基础。
如果用户将鼠标悬停(mouse over)在公司"SIMS GRP,,或"BABCOCK" 上、点击7>司"SIMS GRP"或"BABCOCK"、或通过tab4建指定(tab to) 公司"SIMS GRP"或"BABCOCK"、或者以别的方式选择公司"SIMS GRP" 或"BABCOCK",则这些动作可以构成触发向第二服务402输出"SIMS GRP" 或"BABCOCK"公司名称的事件。基于从第一服务401接收这些公司名称, 第二服务402可以使用GOOGLE 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,存储限定输入控件7C5为调用器输出控件701的 监听器的数组。CONNECTOR对象710基于在输出控件702的服务窗口发生 的按键事件711,存储限定输入控件705为调用器输出控件702的监听器的 数组。CONNECTOR对象712基于在输出控件703的服务窗口发生的按键事 件714,存储限定输入控件706为调用器输出控件703的监听器的数组。基 于在输出控件703的服务窗口发生的onClick事件716, Connector对象715 存储限定输入控件706为调用器输出控件703的监听器的数组。
在这点上,取决于不同事件的分配和发生,单个调用器输出端口可以与 多个监听器输入端口相关联。相反地,基于类似的事件分配方法,单个监听 器输入端口也可以与多个调用器输出端口相关联。因而,可以使用事件(诸 如在提供关于列出的最高股票的信息的服务窗口内的鼠标悬停)连接服务和 设计元素,从而使另一个服务窗口基于鼠标悬停在小组件的不同区域中的股 票符号上来动态地检索新闻。
返回到图2,经由小组件合成平台接收对小组件引擎的选择(S207)。由 于可以使用几个不同的小组件引擎来实现小组件,诸如YAHOO! 小组件引擎 或MICROSOFT VISTA㊣小组件引擎,所以向用户提供选择符合他们的需要或 期望的小组件引擎的机会。例如,在图3中,服务库区域302还包括控件311 至313,其分别使得能够选择YAHOO^小组件引擎、MICROSOFT VISTA 小组件引擎或00001^*小纽件引擎,当然也可以添加或替换其它的小组件
引擎,并且也可以使用其它类型的控件来接受这样的选择。
这样,小组件合成平台提供了用于所设计的小组件的多个部署选项、以 及使用户能够将不同的服务装配成小组件的交互式运行时环境。在Web浏览 器环境内,使用兼容层来使小组件合成平台能够运行由各种小组件引擎所使
用的代码,从而提供利用所选的小组件引擎在增强型小组件合成平台300内 或增强型小组件合成平台300外运行同 一 自动生成的代码的能力。
基于接收对第一服务或设计元素、第二服务或设计元素和/或小组件引擎 的选择,自动生成代码(S209)。当被所选的小组件引擎调用时,该代码实现 用于与第一和/或第二服务进行通信的小组件。调用通常是指执行计算机程序 的指令的过程,并且包含运行、调用、访问、加载和/或执行代码。
经由小组件合成平台对小组件引擎的选择完成小组件的部署或输出。经 由存储在WindowObserver模块中的数据来确定小组件的当前状态,其中该数 据被发送回到服务器,以装配所生成的适当的代码和所生成的相关文件。
还可以基于接收对限定小组件的外观或用于执行非服务相关功能的设计
元素的选择、基于经由基于Web的小组件合成平台接收对第二服务的选择、 或基于经由WidgetObjectManager模块接收将第 一服务的输出与第二服务的 输入相连接的选择,来自动生成所述代码。
使用模拟所选的小组件引擎的至少一部分功能的兼容层在浏览器环境中 调用代码,从而在小组件合成平台中模拟小组件(S210)。为了使能Web浏 览器环境内的类似小组件(widget-like)的行为,经由兼容层来模拟小组件引 擎,该兼容层是实现一个或多个小组件引擎的至少一部分功能的JavaScript 文件。以这种方式,可以在在Web浏览器中进行部署之前以及在输出的小组 件本身中进行部署之后使用相同或相似的代码。
图8是示出了在所生成的代码和兼容层与小组件引擎生成的响应之间的 示范性关系的框图。对于要使用JavaScript在Web浏览器环境中创建的文本 栏,将需要创建新的〈NPUT〉组件,并且向该组件分配属性。尽管YAHOO! 小组件引擎不识别《NPUT〉组件,〗旦是它的确理齡类似的JavaScript不识别 的〈TextArea〉组件。因此,兼容层在Web浏览器环境中实现〈TextArea^且件。 以这种方式,无论是经由兼容层在Web浏览器环境中调用代码还是使用所选 择的小组件引擎调用代码,自动生成的代码都可以发布〈TextArea^且件。
在图8中,块801a表示在部署小组件之前自动生成的代码,而块801b
表示在部署之后自动生成的代码。代替在浏览器环境内生成〈INPUT〉组件,
块801a生成〈TextArea〉组件。该〈TextArea〉組件^皮兼容层802 4兰截,在本例 子中兼容层802模拟YAHOO^小组件引擎804,并且作为响应其生成Web 浏览器可理解的〈input〉组件。 一旦被部署,并且为了执行相同功能,块S01b 生成YAHOOf小组件引擎804可理解的相同的〈TextArea〉组件。
通过经由兼容层在Web浏览器内实现〈TextArea〉组件,可以在部署之前 在Web浏览器内、以及在部署之后通过小组件引擎使用相同的自动生成的代 码。在部署时,不与自动生成的代码一起输出兼容层代码,并且小组件引擎 接收和处理自动生成的代码。该代码可以包括例如诸如〈TextArea〉组件的组 件。结果,在块801a和801b中包含的代码可以是相同的,并且可以仅仅使 用不同的引用。
在另一例子中,YAHOO^小组件不识别用于在Web浏览器环境中表示 表格的超文本标记语言(HTML)元素,诸如〈TABLE〉、 <SPAN>、 <A>,然 而,它却能够识别类似的〈TEXT〉和〈FRAME〉元素。因此,兼容层存储Text() 和Frame()实现方式两者,以允许通用表格绘制器在Web浏览器环境内生成 〈TEXT〉和〈FRAME〉元素,而不管如何解析这些元素, 并且在部署后无需修 改这些元素。特别地,当在小组件合成平台内被调用时,〈TEXT〉和〈FRAME〉 元素返回HTML<TABLE>。当被YAHOO^小组件引擎调用时,小组件引擎 识别这些原生元素(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对象以下述格式存储接收器端口 ("监听器")的数组 和为它们请求的数据
基于在第二服务的输入接收到ENVELOPE对象,从第二服务或设计元 素接收第二数据(S214),并且输出第二数据(S215)。监听器接收并访问该 ENVELOPE对象,并且向其输入端口分配输出数据或值。在已向适当的输入 端口分配了封装内容后,使用相关的输入数据重新调用并重新绘制第二服务。
如上所述,当在ASX收益服务窗口 404中的公司名称"BABCOCK"上 检测到鼠标指针时,触发MouseOver事件。ASX收益服务401确定为 MouseOver事件定义的CONNECTOR对象,并且实例化存储接收器端口数组 的ENVELOPE对象。
由于连接是由用户在ASX收益(第一)服务401的输出控件409和 GOOGLE News (第二 )服务402的输入控件601之间创建的,并且ASX收 益服务输出控件409,所以与ASX收益服务的输出控件409相关联的wray[1]
存储输出数据("BABCOCK" )。 ENVELOPE对象被发送到GOOGLE News 服务,所述GOOGLE News服务访问ENVELOPE对象并且向与输入控件601 相关联的端口分配值"BABCOCK"。然后,GOOGLE⑧News服务被重新调用, 并且其接收、处理和显示新的GOOGLE⑧News对条件"BABCOCK"搜索的结果。
该代码被上传给用户(S216),从而结束过程200 (S217)。例如,可以 通过将小组件上传到用户设备来输出代码。经由存储在WindowObserver模块 中的数据来确定小组件的当前状态,其中该数据被发送回到服务器以装配所 生成的适当代码,该代码在数据流中被返回到Wd、浏览器。例如,该数据流 以存档(例如.ZIP)文件输出小组件文件,以供用户下载。
在完成小组件的合成之后,可以将其部署为适合于多个小组件引擎中的 任何一个的小组件。所部署的小组件是Web浏览器的WYSIWYG环境中的 小组件的快照(sanpshot)。部署管理器模块基于所选的服务利用兼容层来生 成小组件。因而,用户可以利用WYSIWYG环境来创建小组件,并且下载、 发送到其它用户,或以其它方式部署该小组件。
图10描述了在小组件被输出给用户的状态下的示范性小组件合成平台 300。具体地,在选4奪了控件311时,经由存储在WindowObserver模块中的 数据来确定小组件的当前状态。将该数据发送回到服务器,以装配用于 YAHOO^小组件的所生成的适当代码。在数据流中将代码返回到Web浏览 器,其中对代码的接收使得Web浏览器显示菜单1001。利用该菜单,用户可 以选择利用"Open (打开),,控件1002调用被适当格式化为.WIDGET文件的 代码,或利用"Save(保存)"控件1004来保存该代码。
如图11中所示,在选择了 "Open"控件1002 (或通过保存并且在稍后 执行所保存的代码)时,调用小组件1101。当由特定小组件引擎所确定的, 也可以使用小组件首选项菜单1102来改变小组件首选项。由于小组件1101 是在WYSIWYG环境中设计的,所以该小组件1101看起来与经由增强型小 组件合成平台300设计的小组件对象307类似或相同。
图12和13也分别描述了在设计模式和预览模式中的示范性小组件合成 平台300,其包括使小组件建立通信链路的功能设计元素。简单讲,小组件 对象1201包括第一月l务窗口 1202以及i殳计元素1204和1205。设计元素窗 口 1204包括Mailto(发送邮件)图标1206,而设计元素窗口 1205包括Skype 图标1207。
服务窗口 1202包括输出控件1209,其向设计元素窗口 1204输出从与服 务窗口 1202相关联的服务接收的数据(诸如电子邮件地址数据)。在服务窗 口 1202中的电子邮件地址或Mailto图标1206上发生的mouseOver或onClick 事件使得向该电子邮件地址生成电子邮件消息。类似地,服务窗口 1202包括 输出控件1210,其向设计元素窗口 1205输出从与服务窗口 1202相关联的服 务接收的数据(诸如电话号码数据)。在服务窗口 1202中的电话号码或在 Skype 图标1207上发生的mouseOver或onClick事件使得利用81^ 6@服务向 该电话号码拨打电话。在图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)连4妻、或诸如数字用户线(DSL)、线缆高速互联网连接、 拨号连接、T-l线路、T-3线路、光纤连接、或卫星连接的宽带广域网(WAN)。
网络1406可以是LAN网络、公司或政府WAN网络、互联网或其它网络中 的一个或多个。
计算机网络连接1416使用有线或无线连接器。示例的无线连接器包括例 如INFRARED DATA ASSOCIATION (IrDA )无线连接器、光学无线连接 器、INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS (IEEE⑧)标准802.11无线连接器、BLUETOOiraf无线连接器、近场通信(near field communications, NFC )连接器、正交频分复用(OFDM)超宽带(UWB ) 无线连接器、时间调制超宽带(TM-UWB)无线连接器、以及其它无线连接 器。示例的有线连接器包括例如正££@-1394 1虹\¥111£@连接器、通用串行总 线(USB)连接器、串行端口连接器、并行端口连接器或其它有线连接器。
可移动的盘驱动1412是可移动的存储设备,用于从设备1401卸载数据 或向设备1401上载数据。可移动的盘驱动1412可以是软盘驱动、IOMEGA 21 @驱动、只读致密盘存储器(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被示为直 接连4妻到设备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 相互通信。
小组件引擎可以是TARFfM小组件引擎、诸如WINDOWS SIDEBAR 小组件引擎或KAPSULESTM小组件引擎的MICROSOFT小组件引擎、诸如 KONFABULTOR 小组件音频的 YAHOO! 小组件引擎、APPLE DASHBOARD⑧小组件引擎、GOOGLE⑧小组件引擎、KLIPFOLIO⑧小组件引 擎、OPEARTM小组件引擎、WIDSETSTM小组件引擎、SAP⑧小组件引擎、独 占小组件引擎或为台式机上的物理激发的小型应用程序提供主机系统软件的 其它小组件引擎。
简单讲,计算机程序产品有形地体现在硬盘1520(—种机器可读存储介 质)中。计算机程序产品包括指令,当指令被机器读取时,该指令运行以导致 数据处理装置基于经由基于Web的小组件合成平台接收对至少第一服务和小 组件引擎的选择来生成代码,当该代码被所选择的小组件引擎调用时,其实
现用于与第 一服务进行通信的'J、组件。
RAM 1510与计算机总线1527接口连接,以便在执行诸如操作系统应用 程序和设备驱动的软件程序期间向计算机CPU 1501提供快速RAM存储。更 具体地说,计算机CPU 1501将计算机可执行步骤从固定盘驱动1411或其它 存储介质加载到RAM 1510的区段中,以便执行软件程序。数据存储在RAM 1510中,在执行期间,计算机CPU 1501访问该数据。
此外,如图15所示,设备1401存储用于操作系统1521和应用程序1522 的计算机可执行代码,所述应用程序1522诸如字处理、电子表格、演示、博 弈(gaming)、 Web浏览、JavaScript引擎或其它应用。尽管可以使用上述实现 方式来提供增强型小组件合成平台,但是也可以根据本公开文献将该功能实 现为动态链接库(DLL),或实现为诸如互联网网络浏览器(例如APPLE SAFARI 网络浏览器或MICROSOFT Internet Explorer网络浏览器)的其它应 用程序的插件。
计算机CPU 1501是多种高性能计算机处理器之一,包括INTEI,或 AMD 处理器、POWERPC⑧处理器、MIPS 精简指令集计算机(RISC)处理 器、SPARC⑧处理器、ACORN RISC Machine (ARM )架构处理器、HP ALPHASERVEI^处理器或大型机的私人计算机处理器。在其它布置中,计算 机CPU 1501多于一个处理单元,包括存在于高性能工作站或服务器中的多 CPU配置、或存在于大型机中的多个可扩展处理单元。
操作系统1521可以是用于基于INTEL⑧和?0^11 0*的工作站和服务 器的APPL EMAC OS X ; MICROSOFT WINDOWS NT /WINDOWS 2000/WINDOWS XP Workstation ; MICROSOFT WINDOWS VISTA /WINDOWS NT /WINDOWS 2000/WINDOWS XP Server;各种UNIX⑧风格 的操作系统,包括用于IBM⑧工作站和服务器的AIX 、用于81^@工作站和 服务器的SUNOS 、用于基于INTEL CPU的工作站和服务器的LINUX 、 用于HP⑧工作站和服务器的HP UX WORKLOAD MANAGER ,用于SGI 工 作站和服务器的IRIX 、用于Digital Equipment Corporation (数字设备公司) 计算机的VAX/VMS、用于基于HP ALPHASERVEI^的计算机的OPENVMS ; 用于移动i殳备的SYMBIAN OS 、 NEWTON 、 IPOD 、 WINDOWS MOBILE 或WINDOWS CE 、 PALM 、 NOKIA OS (NOS)、 OSE 、或EPOC ;或 用于计算机或嵌入式系统的私有操作系统。操作系统1521的应用开发平台或
框架可以是BINARY RUNTIME ENVIRONMENT FOR WIRELESS吸 (BREW ); Java Platform、 Micro Edition (Java ME)或Java 2 Platform、 Micro Edition (J2ME ); PYTHON 、 FLASH LITE 、或MICROSOFT .NET Compact 。
尽管图14和图15示出了执行被配置成实现增强型小组件合成的程序代 码、或者程序或处理步骤的计算系统一种可能实现方式,但是也可以使用其 它类型的计算机。
对于形式方面,尽管一致地使用术语"用户"来描述与这些过程交互的 实体,但是该一般化也意指描述多个相关或不相关、有生命的或自动的实体 或以各种不同的、重叠或不重叠状态与这些过程交互的人。在类似方面,术 语"选择"意指通篇表示由人的手动选择、由非人的自动选择或其某个合成。
最后,应指出的是,为了简洁,术语"JavaScript"意指SUN MICROSYSTEM JAVASCRIPT⑧编程语言,而术语"XML"在通篇中意指"可 扩展标记语言"。此外,当提及术语"小组件"时,也可以用"控件"或"小 应用"来替代。
描述了几种实现方式。但是应当理解,在不脱离公开内容的精神和范围 的情况下,可以进行各种修改。因此,其它实现方式也包括在所附权利要求 书的范围之内。
权利要求
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对象将所述第二 服务的输入添加为监听器,并且将所述第一服务^f输出添加为调用器;以及基于检测到所述事件而从调用器向监听器发送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. 根据权利要求l所速的方法,还包括基于接收对所述至少第一服务 的选择,使用WindowObserver模块将该至少第一服务添加到全局小组件模 型。
17. 才艮据权利要求16所述的方法,还包括经由WindowObserver才莫块跟 踪小组件合成平台的状态改变。
18. 根据权利要求17所述的方法,还包括经由WindowObserver模块发 送包括所述至少第一服务、所述至少第一服务的每一个的位置和大小、以及 所述至少第一服务之间的连接的数组。
19. 一种计算机程序产品,有形地包含在机器可读介质中,该计算机程 序产品包括指令,当该指令被机器读取时,用于使数据处理装置基于接收经由基于Web的小组件合成平台对至少第一服务和小组件引擎的选择而生成代 码,当所选择的小组件引擎调用该代码时,该代码实现用于与第一服务进行 通信的小组件。
20. —种包括处理器的设备,被配置成基于接收经由基于Web的小组件 合成平台对至少第一服务和小组件引擎的选择而生成代码,当所选择的小组 件引擎调用该代码时,该代码实现用于与第 一服务进行通信的d、组件。
全文摘要
一种增强型小组件合成平台,其中,基于接收经由基于Web的小组件合成平台对至少第一服务和小组件引擎的选择而自动生成代码,当被所选的小组件引擎调用时,所述代码实现用于与所述第一服务通信的小组件。
文档编号G06F9/44GK101373431SQ20081012592
公开日2009年2月25日 申请日期2008年6月11日 优先权日2007年6月11日
发明者丹尼尔·里基茨, 亚历山大·德赖林, 凯瑟琳·弗莱希曼, 菲利普·赫尔特威格, 费边·埃伯哈特 申请人:Sap股份公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1