CN1527222A - 任务计算 - Google Patents

任务计算 Download PDF

Info

Publication number
CN1527222A
CN1527222A CNA2003101239632A CN200310123963A CN1527222A CN 1527222 A CN1527222 A CN 1527222A CN A2003101239632 A CNA2003101239632 A CN A2003101239632A CN 200310123963 A CN200310123963 A CN 200310123963A CN 1527222 A CN1527222 A CN 1527222A
Authority
CN
China
Prior art keywords
service
user
task
perhaps
pane
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
Application number
CNA2003101239632A
Other languages
English (en)
Other versions
CN1527222B (zh
Inventor
益冈龙介
郎布罗
约翰·郎布罗
宋哲炫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of CN1527222A publication Critical patent/CN1527222A/zh
Application granted granted Critical
Publication of CN1527222B publication Critical patent/CN1527222B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

基于计算机的系统包括任务计算,从而使用户能够通过将可用功能性组合在一起来定义任务并执行这种任务。基于计算机的系统包括可用功能性,可用功能性起源于设备、计算应用程序以及通过本地和远程过程调用可用的、包括web服务、UPnP、CORBA、RMI、RPC、DCE、DCOM的电子服务,或者该可用功能性包括以前定义的任务。所有可用功能性对用户抽象为一服务,并以服务描述语言来表示每个服务,而且各服务具有与它们相关联的语义描述。

Description

任务计算
技术领域
本发明总体上涉及个人和遍布计算,更具体来说,涉及准备和执行计算任务。
背景技术
计算的当前状态:个人计算
个人计算用户操作单一设备和访问/使用驻留在该设备中的应用程序的典范。个人计算要求用户对其计算环境和其机器上可使用的应用程序有充分的理解,从而使得博学的用户可以充分地使用可利用的资源来执行复杂的任务。这就是我们大多数人日常体验的计算;学习如何完成复杂任务的负担仍落在用户身上,用户必须理解在其机器上运行的每个应用程序和它们所支持的各项功能,必须在应用程序之间手动传送数据(剪切和粘贴),必须手动地调用各个应用程序和与所述任务有关的特定功能,并且最终必须将其全部注意力(和时间)都投入到复杂任务的执行中。完成复杂任务一方面依赖于用户对任务的理解,另一方面依赖于用户对可利用资源(设备和应用程序)的理解,以便用户自己可以将它们结合到用户将要执行的工作流中,所述工作流的最终结果将是所完成的任务。
早期的个人计算方法的示例
我们简要讨论一些示例,对它们的技术方面进行概述并指出它们的局限性。这些示例显示了个人计算环境的更为面向任务的景象。
在操作系统的一个特征中,当用户将音乐CD插入CD托盘中时,将弹出一个窗口,对用户提出从那个时刻起他/她可以执行的任务。这些选项的典型清单包括:
播放音频CD
从CD复制音乐
打开文件夹查看文件
不采取动作
这些选项中的每个还提及用以执行所述动作的应用程序。关注点放在将要执行的动作或任务而非用于执行任务的应用程序上。
类似的,如果将一个数字摄像机连接到计算机上,那么就弹出带有下列用户可以执行的动作的弹出窗口:
记录视频
捕获视频
不执行动作
在任何一种情况下,操作系统都使用与特定事件(插入音乐CD或连接数字摄像机)的发生相关联的预定的动作或任务清单,以便在所述事件发生时,将相关的动作清单呈现给用户以遵照执行。在该情况下,系统的响应是硬连线的,并不包括超越它的灵活性,与作为触发事件的结果而被执行的可能动作有关的响应已经被编入系统中。换句话说,在数字摄像机连接到计算机上时,所述系统表现出可以发生的相同的动作集;操作系统的程序员已经为特定的事件准备了这个特定的动作清单。应用程序可以改变清单中的项目,但对于最终用户就没有容易的办法来改变它。
在操作系统的另一个特征中,用户有机会对动作进行选择。也就是说,对于每种下面的文件类型呈现给用户一个单独的任务列表:文档、图片、相册、音乐、音乐家、音乐图册(music album)、和视频。例如,如果文件类型为图片,那么就出现“图片任务”的列表:
幻灯片放映查看(图片)
联机顺序打印
打印图片
将图片设为背景
将图片复制到CD
该任务列表也是预先编制的并且与特定的文件类型有关。对于最终用户没有容易的办法来改变该列表。如在另外的示例中那样,关注点集中在能被执行的任务上而不是集中在将要使用的用于执行所述任务的应用程序上。而且用户不需要知道哪个应用程序将用于所述任务。如果用户选择执行一个建议的任务,那么适当的应用程序将因此被初始化并被调用(启动)。
在办公套装软件的示例中,智能标记特征是可利用的。智能标记特征使用编辑器高亮显示当前文档中的文本并给用户提供动作下拉菜单,所述动作可以利用文本表示的对象被执行。例如,如果所述文本表示一个名字,那么该特征可将与该名字关联的对象识别为人物,并且可提供下列可能的动作列表:
发送邮件(给那个人)
安排会议(与那个人)
打开联系人(那个人的)
创建联系人(用于那个人)
通过识别所述文档中的字符串可能表示名字来启用所述选项。系统依靠文本的句法特征来识别该特殊的文本片断表示名字。注意,与典型的美国名字(例如,Lusheng Ji)不相似的字符串可能不会被识别为与人关联的名字。原因是用于将文本片断识别为名字的的系统部分是非常简单的程序(脚本),它试图以文本的句法形式识别可容易地识别的模式。一旦文本的“性质”被(正确或不正确地)识别出来,例如,人,地址等,就将预先编制的可能动作的列表呈现给用户。对于应用程序编制者来说可以创建用于其它域和应用程序的智能标记,例如识别地址和调用地图应用程序等。
现在讨论另一示例,其试图给用户提供计算环境的更为面向任务的景象。当用户在搜索引擎的搜索框内键入一个地址时,服务将返回(超过通常的搜索结果)到地图功能的链接,该链接如果继续将提供所述地址的地图。
然而,并不见得用户可能正在搜索所键入的地址的地图。其它合理的可能性有:用户可能想要与该地址相关联的电话号码清单;或者如果该地址是企业,那么用户可能想要看到该企业的较好的商业局记录,或者检查在它附近的天气,等等。在搜索引擎当前的形式中,它将猜测键入的文本代表什么类型的“事物”(在该情况下为地址),并且它将返回与该类型的条目相关联的硬连线任务。
总结
上面提到的所有示例都表现出相似的特征:
以某种方式来猜测用户的输入(文本或事件)的类型或性质;实际上系统依靠其句法特征试图推知串的意义(语义学)。
系统对似乎可能的任务进行猜测,所述任务可能是用户希望针对所述输入来执行的;该猜测被硬连线到系统,所以系统不能实时有效地进行所述猜测,而是在对系统进行编程时,系统的程序设计人员远在用户与它交互之前就进行了猜测。
根据用户利用合适的输入(无论系统在第一步骤猜测出什么)进行的选择(无论用户在第二步骤中选择什么),调用了适当的应用程序。
现有技术的示例为用户增加了方便性,但也包括下列特征:
功能已经被设计到应用程序中;应用程序的程序设计人员已经编制(硬件实现)了系统的响应。因此,这不是一个灵活的和可扩展的方法,因为在设计时间内就已确定了可能性的范围。
系统已经限制了满足用户的动作和愿望的方法,它也不能精确地“感知”输入的性质(语义或意义)。虽然在每种示例中使用了不同的技术,但系统仍依赖于通过它的句法特征来正确地猜测所述输入的意义。
在特定类型的输入导致单一动作(应用程序调用)的情况下,系统采用因-果(触发-响应)机制。复杂用户任务需要具有复杂的事件和动作序列的更加复杂的工作流,这对于在这些讨论的示例中使用的过分简单化的技术是不可能的(从技术上说)。
总的来说,在个人计算的当前过渡状态中,我们注意到了这样的尝试:通过基于输入的句法特征猜测输入的意义,并且利用恰当的输入来调用正确的应用程序,来推测用户的任务;该方法是硬连线的并且是脆弱的。
个人计算的局限性
由于下面的原因,我们认为个人计算显示出本质的局限性:
当个人计算达到海量时,期望普通的非专家用户拥有高级的计算经验和熟练程度是不切实际的。
而且个人计算对于高级用户也是有问题的,因为它可能是耗时的。
对于如下所述的遍布计算的新兴范例,个人计算是不适当的架构。
对于普通用户,计算环境变得日益复杂。这是由于对用户可用的应用程序和设备的复杂度和激增引起的。虽然用户可以在计算环境中执行的任务已经快速增长了,但需要用户具有的熟练程度也提高了。计算机用户的用户基础已经快速扩展到具有非常少(或者根本不具有)的计算专门技术的用户,结果情况变糟了。计算业界的目标是使计算对非专家用户也是可用的。该目标与计算环境的日益增长的复杂性相冲突。
即使最终用户掌握了丰富的专门知识,利用当今计算环境中可能的事物也需要花费相当可观的时间。这是因为高级用户已经变成其个人计算环境的“程序设计者”。考虑高级用户可能频繁执行的更加复杂的任务,例如决定参加她看到公布在网页上的的谈话:用户必须找出谈话发生的地点的地址,检查与她的个人日程安排的冲突,找出到所述位置的方向,在日程安排应用程序中创建条目等。这样做要求在应用程序之间进行剪切和粘贴(假定用户足够熟练,知道使用哪个应用程序来完成所述任务)和执行使用可利用的资源的精心策划的工作流以完成期望的复杂任务。如果用户需要在将来执行相同或相似的任务,那么她必须重新执行所有这些动作,结果情况就变糟了。
个人计算,也就是用户拥有和操作运行用户应用程序并“容纳”用户数据的思路正在让步于具有较少明确限定边界的计算环境。当计算机永久连接到计算机网络时,本地和远程应用程序与数据之间的区别变弱了,或者甚至更差,它们对于计算机用户而言是分不清的。而且,用户可以访问不是计算机的设备(照相机、打印机、智能设备等)并与其发生交互,这是针对个人计算机仍然具有非凡的计算能力并能给用户的目标提供服务和帮助他们完成各种任务而言的。这个通常称作遍布计算环境的新计算环境要求对于用于在其中完成事情的问题采用根本不同的方法。首先,普通用户可能不知道在这种环境中什么是可能的或切实可行的,因为可利用的资源(设备和应用程序)可能在不断地变化,而且此外用户不能依赖灵活且统一的用户界面来方便地管理与这种环境的交互。换言之,在充满对于用户来说不是已知的设备和应用程序的设置中,个人计算方法是不可行的。
发明内容
任务计算是用户如何与设备和服务交互的新的范例,它在使用计算设备的同时强调用户想要完成的任务,而不是如何完成它们。任务计算填补了用户想要做的与在他们的环境中可利用的服务之间的空白。任务计算显示出超过传统方法(例如当前的个人计算范例)的本质优点,也就是说,它对于非专家计算机用户更为合适,它对于所有类型的用户都可节约时间,并且尤其适合于新兴的遍布计算类型的计算环境。
我们通过提供对下述的支持来讨论对作为支持任务计算(TaskComputing)的基础的任务计算环境(TCE)的需求:
任务计算的工作流
任务和服务的说明
由最终用户(他们依靠任务和服务的说明)进行的任务的指定、执行和再使用性
包括由最终用户进行的创建和删除服务的操作
我们详述任务计算环境(TCE)实施例;当看作具体实现的系统时,这样的实施例包括下述各项:
一个或多个任务计算客户机(TCC)
一个或多个语义描述服务(SDS)
一个或多个语义服务发现机制(SSDM)
以及,可选择地包括一个或多个语义描述服务控制机制(SDSCM)
我们详细地给出两个称作TCC I和TCC II的任务计算客户机实施例、多个语义描述服务和语义描述服务控制机制的实施例。
通过任务计算的详细预排我们推断使用STEER的应用情况。
本发明的上述方面可通过包括执行任务计算的计算机系统的基于计算机的系统、方法和计算机可读介质来实现,从而使得用户通过结合可用的功能而可以定义任务并能执行这种任务。
通过参考作为其一部分的附图的说明,这些连同其它的方面和优点将是非常明显的,且它们存在于如之后更加充分描述的和所要求的结构和操作的细节中,其中始终用相同的标号表示相同的部分。
附图说明
图1示出由设备和服务包围的用户。
图2示出第一个以用户为中心的视图。
图3示出第二个以用户为中心的视图。
图4示出任务和服务。
图5示出第一计算机工作流变型。
图6示出第二计算机工作流变型。
图7示出第三计算机工作流变型。
图8示出第四计算机工作流变型。
图9示出第五计算机工作流变型。
图10示出第六计算机工作流变型。
图11示出复合任务计算工作流。
图12示出语义服务实例映射和基础连接(GROUNDING)。
图13示出并入新服务的第一方法。
图14示出并入新服务的第二方法。
图15示出基于S备忘录的最终用户系统开发/部署。
图16示出TCE实施例的一般架构。
图17示出用户界面完全版本。
图18示出第一用户界面选项卡版本。
图19示出第二用户界面选项卡版本。
图20示出第三用户界面选项卡版本。
图21示出第四用户界面选项卡版本。
图22示出第五用户界面选项卡版本。
图23示出第一用户界面流版本。
图24示出第二用户界面流版本。
图25示出第三用户界面流版本。
图26示出第四用户界面流版本。
图27示出在开始处的任务计算(Task Computing)。
图28示出用户选择之后的任务计算。
图29示出左面板刷新之后的任务计算。
图30示出用户选择之后的任务计算的另一视图。
图31示出在左面板刷新之后的任务计算的另一视图。
图32示出任务计算自动完成(auto-complete)信息。
图33示出用户在带有自动的自动完成选项的任务计算中选择自动完成。
图34示出第一用户界面web版本。
图35示出第二用户界面web版本。
图36示出第三用户界面web版本。
图37示出第四用户界面web版本。
图38示出第五用户界面web版本。
图39示出第一用户界面嵌套菜单版本。
图40示出第二用户界面嵌套菜单版本。
图41示出用户界面命令行版本。
图42示出语义实例类型之间的关系。
图43示出TCE实施例的架构。
图44示出TCC I内部结构。
图45示出TCC I主逻辑。
图46示出使用IE的发现和注册。
图47示出发现显示窗格。
图48示出带有服务图标的发现窗格。
图49示出细节窗格。
图50示出服务过滤。
图51示出带有“search web services”的发现窗格。
图52示出使用IE找出组成。
图53示出组成窗格。
图54示出构建窗格。
图55示出在语义层和句法层中的任务执行。
图56示出带有web服务支持的web服务的调用。
图57示出TCC I的服务调用流程。
图58示出带有服务控制UI的第一基于网络的UI。
图59示出带有服务控制UI的第二基于网络的UI。
图60示出带有服务控制UI的第三基于网络的UI。
图61示出监视窗格。
图62示出保存窗格。
图63示出TCC II。
图64示出在SSD中的多种自然语言支持。
图65示出银行服务。
图66示出PIPE管理器。
图67示出白洞推挽界面(white hole drag and drop interface)。
图68示出在任务计算之前的能力金字塔。
图69示出在任务计算之后的倒转的能力金字塔。
图70示出应用电子家庭。
图71示出应用电子办公室。
图72示出应用飞机场。
图73示出应用咖啡馆。
图74示出:TCE识别在网页上已经描述了什么,并且向用户提出一些给定当前内容和环境下的可能动作。
图75示出:在用户首先选择找出谈话位置的地址之后,TCE找出该地址并向用户呈现新的可能动作的列表。
图76示出:在用户选择检查谈话位置在地图上的的地址之后,TCE呈现出修改后的动作列表,其带有选项以将到目前为止的用户动作保存为新任务,以在将来(再次)使用。
具体实施方式
在本文中将讨论任务计算和它的实施例。
任务计算的概貌
任务计算目的在于:帮助没有关于实现一定功能的环境的先验知识的用户使用由她支配的所述功能来实现复杂任务,并且不需要与该功能的资源进行交互或者理解该功能的资源。任务计算的基本要素是:用户知道和理解她的任务,并且任务计算环境(TCE)理解设备和服务以及知道如何与它们进行交互。用户和TCE两者进行结合,就能合作完成任意复杂的任务。
在当今的计算环境中,用户由功能所包围,所述功能以设备或以计算机作为介质的服务的形式呈现给用户,以计算机为介质的服务例如有:在互联网上的电子服务(e-service),在用户操作的计算设备上运行的应用程序,或者支持特定功能的简单设备。这种设备和e-服务的示例包括:电话、显示器、娱乐中心、电视、PDA、移动电话、音频播放器、传真机、打印机、天气服务、地图服务等。
图1示出用户110由设备和服务包围的示例100。图1所示的设备和服务包括:台式PC、地图服务、PDA、传真机、MD播放器、娱乐中心、天气服务、移动电话、联系人列表管理器、电视、便携式摄像机、显示器,以及电话。由这样的设备和e-服务呈现的功能包括:听音乐、下载歌曲、观看流视频、听广播、提供联系信息、检查地图上的地址等。所有这些设备和服务被设计得通过用户直接与这些设备或服务进行交互(和/或操作这些设备或服务)使得它们的功能可为用户所用;例如,如果用户想通过为她正在参观的房间提供的电话给同事打电话并且同事的电话号码存储在用户的膝上型电脑的MICROSOFT OUTLOOK应用程序中,则用户必须启动OUTLOOK应用程序,查找想要的电话号码,然后在电话上手动拨号。即使当应用程序、e-服务和设备相互之间可以物理地通信,也就是在它们之间存在通信线路,但它们之间也不能以对用户任务是有意义的方式来交换数据,除非各个应用程序、服务、设备的设计者已经考虑到该特定的任务而对它们进行了设计。当面临着设备、e-服务和应用程序的剩余时,用户也不能执行任务利用来自所有这些资源的功能,除非所述设备、应用程序和e-服务已经针对该任务进行了设计。而且,粗心的用户常常不知道哪种任务是可能的。
图2是图1的“用户居中”的远景的面向历史技术的(technology-historical-oriented)视图200。在技术层面,通过各种技术和协议进步,设备、e-服务和应用程序的功能已经变得可用,所述技术和协议进步包括,但不局限于:诸如MICROSOFT.NET的具有通过架构所暴露的功能的操作系统和应用程序,诸如Jini或UpnP的发现协议,web服务、具有WLAN(无线局域网)功能的设备等。
尤其是,图2表明技术和协议对于用户110容易地访问设备和e-服务已经成熟。关于网络202方面,它们已经由独立网络发展成了因特网和无限网络。关于设备204方面,它们已经从独立设备发展成网络设备直至UPnP和JINI。关于网络结构206方面,它们已经从服务器/客户机发展成P2P/Ad-hoc。关于web技术208方面,它们已经从作为用于人们消费的“眼球式web”发展成作为交易web、语义web(机器可操作、可读取的)、和可理解的web的web服务。关于OS和应用程序210方面,它们已经从面向对象发展成.NET和其它远程对象和远程过程调用技术。
图3示出被由设备、OS和应用程序、以及e-服务所提供的功能包围的用户,所述功能以服务的形式呈现给用户;服务是在任务计算范例中对于用户可见的抽象。也就是说,图3示出用户110被web302、设备304和OS/应用程序306包围的以用户为中心的视图300。上面提到的设备204方面可以实现设备304的服务抽象,上面提到的网络202、网络结构和web技术方面可以实现web302的服务抽象,而上面提到的OS应用程序210可以实现OS/应用程序306的服务抽象。
图4示出图3中所述思想的集中。基于设备的服务、基于操作系统和应用程序的服务、基于因特网的服务提供了功能,例如:播放(音频)、加入到Outlook、天气信息等,这些都作为服务抽象并以将它们从提供它们的物理系统中分离出来的方式呈现给用户,使得用户可以“混合和匹配”它们,以满足任何她觉得合适的目的,例如在电视上观看来自她的Outlook的联系人的地址的天气信息。
更为具体地,图4示出任务和服务400。如图4所示,来自web302、设备304和OS/应用程序306的输入分别导致web可访问服务312、设备动作308和OS应用310,所有这些都支持任务314的实现。
“任务计算”(Task Computing)被定义为填补任务(用户想要做的)与服务(可为用户所用的功能)之间的空隙的计算。
任务计算环境(Task Computing Environment)(TCE)是支持任务计算的框架,其通过为下述内容提供支持来实现:
任务计算的工作流
任务和服务的描述
由最终用户进行的任务的指定、执行和再利用性(依赖于任务和服务的描述)
包括由最终用户进行的服务的创建和扇出的操作
我们使用术语“任务”来指用户想要执行的动作(或一系列动作)。在此意义上,任务是用户设想的(潜在复杂的)动作,其在整体上可能是或可能不是适于计算的。
正在由计算系统(或它的集合)执行的任务应该被认为是用户任务概念化的计算上可行的实现。在任务计算中,用户承担将任务概念化(按她的想法)“翻译”成任务的计算实现的部分(或全部)责任。就用户可能进一步定义其初始的任务概念化或将其初始的任务概念化细化为计算的任务实现而言,该处理可能是在用户与TCE之间交互和协作的。
任务的计算实现是单一服务(原子服务)或在工作流中组织(构成)的一组服务(复合服务)。这样,如果任务与服务精确地匹配(也就是,如果所述服务就是用户确实想要做的),则任务由单一服务构成;或者任务可以由多个服务的工作流构成。我们将原子服务和和复合服务都简单地称为服务。
服务(原子或复合的)存在(在某处)的事实并不意味着它们可由特殊的用户使用来完成任务。换言之,服务本身的可用性没有启用由它自己进行的任务计算。这样的服务需要根据环境、特殊用户的需求和该服务的状态来进行发现和过滤,以用户利用它们可以创建任务的方式呈现给用户,最终为了用户并通过用户的参与执行所创建的任务。
从用户角度看,任务计算涉及遍历任务计算工作流的这些步骤,在此意义上,服务的处理(发现、过滤、任务规定、任务执行)和可选操作是任务计算的最终用户视图。接着我们详细说明任务计算工作流。
任务计算的工作流
任务计算工作流描述了用户在执行任务计算时所经历的处理(步骤序列)。虽然工作流可以不必整体地显现在用户界面(User Interface)中(在该情形下,工作流的每个元素不必由用户界面中的元素明确地表示出来),但支持该工作流及其变型是任何TCE所必需的元素。
任务计算工作流包括下列功能:
由用户的TCE进行的设备和所提供服务(由所述设备或宽带网络/因特网)的发现。发现既指找到存在的服务,又指如何访问它们。为了任务计算起见,发现包括与所述服务相关联的说明、它们的使用和状态的发现。除了设备和服务外,发现可包括诸如任务的项,该任务由当前用户或其它用户预先定义。各种发现机制在后面进行讨论,但应该注意,显式的用户驱动搜索也是发现的一种模式。
基于用户环境的对所述已发现的设备和服务的过滤。过滤的目的是将可能难以控制数量的已发现服务降至可管理的子集,该子集与用户的环境和当前情形(使用各种潜在的用户可选择的准则)和/或用户试图完成的任务更为相关。各种过滤机制和/或准则将在后面讨论,但应该注意,显式的用户驱动过滤(其可包括对已发现服务的列表进行的搜索)是一种过滤模式。
任务规定,该过程中用户知道和理解她想要完成的任务,该任务规定通过将可利用的(过滤过的)服务(和任务)连接起来组成所述任务。该任务规定可以用各种方式(优选地使用图形用户界面,GUI)来实现。对于实现任务计算工作流的所述步骤不存在唯一的UI,尽管我们将在后面提出一些示例。
用户也可保存特定的任务以备将来使用。
特定任务的任务执行,在该过程中,用户仅与任务的执行进行交互,以便为所涉及的服务的子任务的正确执行提供必需的输入并监视任务的执行,但所有底层的调用和与受影响的设备和系统的交互都留给支持任务计算框架的计算系统。
应该注意,发现>过滤>任务规定>任务执行规定了用于任务计算的总体工作流;它的元素用于描述用户使用任务计算环境时的任务计算经历。从TCE的角度看,将TCE看作“提供”任务计算的计算系统,任务计算工作流的四个要素构成TCE应该支持的基本功能和它们的内部关系。
附加的元素可被引入到任务计算工作流中。另外,这些元素中的一些可从TCE中的用户接口方面消除,尽管这种步骤仍然非常可能在背景中发生。例如,用户可以选择跳过任务规定阶段,因为过滤阶段的输出可以按与用户任务匹配的方式呈现给用户,而不需要用户作进一步的说明。或者,用户可以跳过过滤,因为所发现的服务(和任务)非常少,或者使用了预先编制的任务和服务库,进一步的过滤没有必要。作为任务计算工作流的一个步骤,通常不能省略任务执行,因为它表示任务计算用户经历的最终结果。
在图5-11中我们给出了基本的任务计算工作流及其变型的模式图。
在图5所示的任务计算工作流变型(I)500中,执行服务或任务发现510,然后执行服务或任务过滤512,接着执行任务规定514,然后执行任务执行516。
在图6所示的任务计算工作流变型(II)600中,执行服务或任务发现510,然后执行服务或任务过滤512,接着执行任务规定514,然后执行任务执行516。在任务规定514完成处,控制可返回至服务或任务发现510。
在图7所示的任务计算工作流变型(III)700中,执行服务或任务发现510,然后执行服务或任务过滤512,接着执行任务规定514,然后执行任务执行516。在任务规定514完成处,控制可返回至任务过滤512。
在图8所示的任务计算工作流变型(IV)800中,执行服务或任务发现510,然后执行服务或任务过滤512,接着执行任务规定514,然后执行任务执行516。在任务执行516完成处,控制可返回至服务或任务规定510。
在图9所示的任务计算工作流变型(V)900中,执行服务或任务发现510,然后执行服务或任务过滤512,接着执行任务规定514,然后执行任务执行516。在任务执行516完成处,控制可返回至任务过滤512。
在图10所示的任务计算工作流变型(VI)1000中,执行服务或任务发现510,然后执行服务或任务过滤512,接着执行任务规定514,然后执行任务执行516。在任务执行516完成处,控制可返回至任务规定514。
在图11所示的复合任务计算工作流1100中,执行服务或任务发现510,然后执行服务或任务过滤512,接着执行任务规定514,然后执行任务执行516。所述复合任务计算工作流表明:在服务或任务发现510之后的每个功能完成处(即,在服务或任务过滤512、任务规定514或任务执行516的完成处),控制可返回至任何前面的功能。
两种主要类别的变型在于包括从任务规定和任务执行阶段中的每一个到工作流前面步骤的迭代。这些变型的合理性在于任务计算的用户驱动性质。在任务规定阶段中,用户可能决定:她需要重新细化或修改她的任务,附加的发现→过滤或者只有过滤阶段对于用户发现其他的潜在有用的服务或进一步缩小过滤阶段的输出(通过修改过滤准则)是必需的。类似的,在执行过程中,由网络问题、服务失败或在执行特定任务的子任务中的某些其它困难所致的失败(或某些其它例外)可能要求用户寻赵可选的/可替换的服务(通过进一步的发现和/或过滤)或者对任务本身进行修改。任务计算环境应该允许多重这样的迭代和/或这种工作流的“混合”;例如,如在一个工作流中所建议的,用户可以经历任务执行→过滤→任务指定,然后,如在另一个工作流中所建议的,可经历任务规定→发现→过滤→任务规定→任务执行。通过简单地允许从过滤、任务规定、和任务执行中的每一个到任何前面阶段的多重迭代,我们已经对上面进行了说明,但我们觉得我们所用的说明(和附加的评论)更能表示每个工作流类别的合理性。
接着我们提供一些关于任务计算工作流的每个组成要素的附加评论。任务计算环境可以以采用带有不同窗格的完整UI的形式将其本身显现给用户,所述不同窗格表示任务计算工作流的每个(或多个)步骤。另外,根据命令可出现弹出窗口,以向最终用户呈现附加的信息或者为了辅助用户提供必要的输入。此外,UI的形式可根据客户机设备的类型(例如,PDA与桌上型或膝上型电脑)和/或用户环境的性质(例如,遍布计算环境与web浏览)而不同。可以有采用语音、盲人用点字法、触觉等的界面。语音界面对于移动电话和车内应用程序尤其有用。
发现
发现涉及找到能被TCE消费/使用的服务。发现包括识别用于与这些服务进行交互的程序界面和这种服务的说明,包括它们的输入和输出参数、关于它们执行的功能的细节、使用它们的条件、它们的效果等等。
由多种服务发现机制。TCE可以实现多重服务发现机制,并且任何单一服务都可通过多重服务发现机制被发现。总的来说,对于给定的服务不存在优选的发现机制,但是,根据服务的位置和/或其说明,存在更加有效或更容易实现的机制。
发现可采用多种模式进行。我们将区分主动发现模式、被动发现模式和混合发现模式。
发现近似地涉及找到计算设备和其所有者所处环境(或情形)的功能方面。发现找到环境所提供的功能集。在此意义上讲,每种发现机制都表示某一环境(或一组环境)。例如,局部服务发现机制表示计算设备本身的环境,给出了在其上可用的功能。UPnP发现机制表示计算设备所在的子网络的环境。采用web的发现机制可以在因特网上为某一社区而被建立起来,通过该社区计算设备的所有者具有会员资格。蓝牙和红外(IR)通信与无线LAN技术相比具有受限的范围。但是伴随蓝牙和IR的发现机制不必次于那些伴随无线LAN(例如,UPnP)的发现机制。由于它们受限的范围,它们给出对计算设备和其所有者的更好的定位,从而导致更好确定发现机制必须提供的功能。
主动服务发现机制
TCE查询某一设施(计算机系统或其网络),例如代理程序(broker)、服务商、目录(例如UDDI服务器)、电话黄页类服务、服务发现系统-(UPnP、蓝牙SDP、红外(IR)、Jini、Rendezvous、招呼(Salutation))-实现网络节点,或者某种用于列出服务清单的服务的搜索引擎。该查询可能是对由该计算系统提供的可用(已知)服务的完整清单的请求,或者提交给该系统的某种更窄的搜索查询。这种请求可能提供给类似文件共享对等网络的对等网络(而不是单一的计算机系统)。对等网络可以是宽对等网络(例如前面提到的系统)或更局部化的对等网络,例如在相同的子网中作为当前用户的TCE对等端。这种查询可以由TCE本身(和/或它的一个组件)或由用户、或者通过用户与TCE之间的协作来预先确定或动态地创建。该搜索可以基于关键字(由用户提供),或者它可以由用户的环境和任务的机器级理解来驱动。任何以上类型的搜索还可被看作“交互式/用户辅助发现”。该查询还可以在当用户处于执行发现或任务计算工作流的某一其它步骤的处理中时来实时确定。例如,当用户试图指定任务时,TCE可能推断用户可能对具有某种可用于她当前的任务的其它(尚未被发现的)服务或任务感兴趣,在用户没有明确地对此进行请求的条件下,TCE可能试图发现这样的服务或任务(另选地,用户自己可以明确地执行这样的附加发现)。后者是TCE的重要特征;给定用户动态地改变环境的情况下,TCE可以前摄地执行发现。
其他类型的主动发现可以包括:依靠预先编制的可用设备、服务和任务的清单进行的查找或查询,所述清单存储在本地(在用户的客户机设备上),或者存储在可由用户的客户机设备访问的另一对等设备(例如,一个朋友的使用红外通信链路的PDA)上;无论用户在线(与网络相连)或离线,或者甚至在与其它发现模式相结合的情况下,都可使用本地存储。
被动服务发现机制
被动发现通常包括某种服务发现系统,例如UPnP、蓝牙SDP、Jini、Rendezvous、Salutation等。在这种情况下,TCE具备了理解和处理发现系统的协议和机制的能力(TCE可以用于多个这种系统);结果TCE依靠连接到(或接入到)网络可以发现服务,在该网络上实现这些系统中的一个(或多个)的服务可能向相同网络或子网上的其它设备甚至跨网络广播(或组播)它们的存在和可用性。在该类型发现的变型中,可以发现使用任何前述协议的设备、服务和任务的代理服务系统都可由TCE访问(用于查询),或者可以自动地就所述设备、任务和服务的可用性来更新TCE。
混合服务发现机制
混合发现模式也是可能的;这种模式可以包括主动和被动方法。一个示例是将web服务用作发现机制。该发现过程包括两个步骤。在第一步骤中,TCC向注册处注册一回传(callback)界面(例如,WSDL URL)。无论什么时候发生了变化(新的服务、删除的服务等),注册处都调用给定的回叫界面来通知TCC该变化。第二步骤是可选择的。尽管回叫机制在使用网络带宽过程中非常有效,但它具有一些缺陷。例如,如果TCC在防火墙后并且回叫界面不能从注册处访问,就不能使用回叫机制。为此设计了第二步骤。TCC以给定的间隔或任何需要的时候轮询注册处。并且注册处返回最后的轮询之后的所有变化或所有可用服务。注意第二步骤可被看作是独立的发现机制,并且在该情况下,该机制应被分类为主动方法。
过滤
在任何给定的时间,并非所有发现的服务都与针对任务计算的用户相关。任务计算工作流过滤阶段的目的就是将已发现的服务缩减为适合用户的当前环境的那些服务。有时,该过滤的输出不会进一步缩减发现的输出。在当用户的环境变化时过滤的输出应该动态地更新(有时是根据用户的明确请求)的情况下,过滤应该是动态的。
我们广泛地使用术语“用户的环境”,意指为从发现的输出中选择(过滤)一服务的子集所使用的各种准则。这种准则可以包括下面任何一个或其结合:
用户概貌
手头的任务
用户设备特性
用户位置
用户动作状态
用户网络连通性
用户指定的关键字(与搜索查询类似)
当看作整体时一组服务的特征,例如
服务数量
服务之间的相似性
关于服务相关值的数学或逻辑公式的应用输出,用于表达用户认为相关的任何约束或准则。该类的示例包括在该组中执行所有服务所需要的总资源,例如总费用或总时间。
个体服务特征,例如
使用/访问服务的成本,例如费用和时间
服务提供商
服务的声誉
输入和输出参数以及它们的值,包括为了表达用户认为相关的任何约束或准则关于这种值的数学或逻辑公式的应用。
等等
用户可以保存环境(作为一个或多个过滤准则的应用的环境),从而她可以用名字来查阅它们并且用名字自动地调用它们。虽然可以由TCE自动地处理过滤,但用户可通过键入关键字或从各种准则中进行选择来明确地驱动过滤处理。也有可能的是,TCE的前摄过滤与用户驱动过滤并行地和/或交替发生。
任务规定
任务规定是这样的处理:在该处理过程中,最终用户将任务“翻译”成服务(原子服务或复合服务)。为此,用户将利用作为过滤处理的输出的服务。该用户驱动处理可被看作是指定服务的工作流的处理,所述服务在执行时将完成用户的任务。服务组成是任务规定的输出;任务规定是这样的处理:在该处理过程中,用户(独立的或与TCE协作)浏览过滤后的服务,以试图创建与用户思想中的任务相匹配的服务组成。有时我们可能将任务规定称作任务组成。
任务[R.M.3]指定依赖于可用服务的输入、输出和其它要求,以便仅向用户呈现切实可行的可能组成。这样的要求包括:输入/输出参数的类型和/或值,使用、访问、调用服务的条件,如果被调用服务可能具有的效果,等。任务规定的结果是包括整体上可被执行的多个服务的有效序列(在通常的情况下是有向非循环图)。有时,在用户确定现有的服务或任务与用户考虑的任务相匹配的情况下,所述序列可能仅是一个服务长。
在规定任务的过程中,用户得到用户界面的支持,用户界面试图以这样的方式给用户呈现可用的服务:(a)帮助用户创建能被正确地执行的服务组成和(b)帮助用户识别与她的任务最相关的服务。当用户的环境或者甚至当用户选择了不同的服务(在任务规定中)时,可用的或相关的服务应该被更新,在这种情况下,该呈现应该是动态的。关于这些目标存在多种方式来使TCE可以帮助用户。例如,根据成对的服务之间的输出和输入的匹配或可能部分匹配,TCE可以以成对的清单呈现服务;典型地(并非唯一地),这种匹配依赖于服务和它们的输入和输出参数的语义。代替使用清单,TCE可以突出显示可能先于(或跟随)用户已突出显示(或选中)的服务的服务;而且,为了这样做,TCE依赖于服务和它们的输入和输出的语义。另选地,以根据服务的类型或任何输入或输出参数的类型或值、或者某些其它的服务特征(位置、费用、新颖程度、优先化、先决条件、效果等)组织的层次,TCE可呈现过滤后的服务。通常,在任务规定处理的过程中,可用于过滤服务的任何或所有准则或手段(按照过滤阶段的讨论)都可以用于引导服务的呈现;这种准则或手段可以用于以这种方式来组织已过滤的服务:使用户为了完成任务而更加容易地选择和匹配服务。
可以将服务构成在工作流中的方式通常将依赖于服务的属性,例如它们的语义。具体来说,为了决定如何构成服务而考虑的参数包括下述的任何一项或全部:它们的数据输入和输出的数据类型、它们的数据输入和输出的语义类型、在执行服务之前必须满足的条件、以及成功执行服务的效果。切实可行的和可能的任务规定可以通过域专用逻辑(例如,如果服务打印文档,则该服务的域包括打印机、打印和文档)、或应用程序逻辑、或商业逻辑、或任务逻辑(通常以某种逻辑的声明的形式来表达)来进一步限定。前述的逻辑可以说明在从服务集规定任务时要注意的附加限定。这种限定可以包括:在相同的任务规定中服务是否可以使用一次以上,或者是否可以以组成的形式一起使用两个服务。
我们将为了决定构成服务的方式而考虑的参数称作组成逻辑。
考虑服务的语义的组成逻辑的一个简单示例为:使服务的语义输出与另一服务的语义输入相匹配。如果第一服务的语义输出与第二服务的语义输入相匹配,那么就存在一个第二服务紧随第一服务的局部工作流。由于语义,这样一种匹配不需要是精确的,这意味着:输入和输出参数的语义类型之间的匹配可以是不精确的(例如,根据语义近似的匹配),或者匹配可能考虑参数在相关的实体层次中的相对位置。
应着重注意:用户可以保存这种组成并且(为它们代表的任务)给以名字以便将来使用(类似应用程序中的宏)。这种预先编制的任务规定还可以被保存和用作用户的TCE客户机程序中的书签。用户可以选择共享这样的任务规定。如先前所述,为了任务规定的目的,这种先前定义的宏可如新服务一样使用。
另外一种任务规定模式可以不是用户驱动的,而是TCE驱动的。在这种情况下,给定来自过滤阶段的输出的可用服务,TCE可以提出能呈现给用户以待认可的服务组成或局部服务组成。这种组合可能是或可以不是被最终执行的(参见下面的任务执行的讨论)。TCE可以使用用户可使用来创建服务组成的任何准则或手段,如先前在本部分中所讨论的。
任务执行
任务执行是执行特定任务的步骤。对任务执行的输入通常是任务规定阶段的输出,所述输入为服务。该服务是在任务规定过程中由用户指定的复合服务,或者是与用户的任务对应的原子服务。TCE对执行而非用户负责,尽管可以要求用户在服务组成的执行过程中提供追加的输入或者进行动作以便管理该执行期间的故障或例外。由于这个原因,任务执行也可以被看作是用户监视的任务执行,从这个意义上说,处于被动角色的用户不是必需出现的,但在等待被执行的组合的输出时,她可能必须提供输入,在失败的情况下选择另选的过程,取消执行并返回到发现、过滤或任务规定等。
任务执行需要向服务传送正确的输入(当以一种对最终用户透明的方式处理系统与协议间的必要翻译的时候),需要在必要时请求用户输入,并且需要执行涉及组成任务的所有操作。由于一方面,使用所调用的服务的语义信息和该服务的输入和输出参数来指定特定的任务,另一方面,该语义信息却并不用于执行任务,所以,这些任务会出现挑战。换句话说,服务组成是一种抽象,其本身并不是一段可执行的代码。TCE负责将服务组成翻译成一系列可以直接用来执行与任务有关的服务的动作和调用。挑战的第二个原因在于,服务组成是可行的(在任务规定阶段TCE试图达到的目标之一),却并不意味着它就可以被正确地执行。潜在的问题包括:有关组成服务的错误的语义信息、这些服务实际运行在其上的系统的故障、以及与网络相关的问题等。
因此,在任务执行期间TCE必须处理基础连接,即将任务规定抽象中的服务绑定到实际的基础服务及其参数,并将(用于输入和输出的)语义术语正确地翻译成服务所用的实际语义术语,或者在引用不同本体的语义对象间进行翻译。
任务计算的主要技术挑战之一在于必须处理下面的事实,即服务是在语义层定义的,服务的输入/输出参数也是如此。然而,当我们调用服务时,必须向服务提供句法参数,因为服务是在句法层中实现的。基础连接是将语义实例变换为句法实例的过程。
分离语义层和句法层的好处如下。在某些情况下,虽然几种服务具有相同的语义输入,然而由于它们实现的详细情况,语义实例可以不同。我们能够在语义级组合这些服务,而不用担心那些差异。
图12显示了语义服务实例映射和基础连接1200。假设我们有“Semantic Contact Instance”1202和三种服务。“Weather info of”是一种返回给定地址当前天气状况的服务1204;“Aerial Photo of”是一种显示给定地址卫星图的服务1206;“Route from FLACP”是显示从Fujitstu Laboratories of America,College Park到给定地址的逐级地址目录的服务1208。按照语义,三种服务都将接受地址作为输入,但是在实际的实现中,“Weather info of”1204将邮政编码作为一个串来接受;“Aerial Photo of”1206将街道、城市、州和邮政分区当作四个串来接受;而“Route from FLACP”1208将街道、城市、州和邮政分区当作一个串来接受。
如果我们不分离语义层和句法层,那么三种服务就完全不同。如果我们有一个地址对象,它最多只能匹配一种服务。而现在我们有一种更灵活的构架。首先,我们定义“Semantic Address Instance”1210作为所有三种服务的语义参数。接着创建语义层的实例映射。该映射从联系人项中提取商务地址信息。图中,该映射由虚箭头表示。从“SemanticAddress Instance”开始,我们定义三种基础连接,每种用于一种服务。基础连接描述了将地址实例变换成句法参数的详情并且由实箭头表示。
在例如OWL-S的语义服务描述语言1212中描述了语义实例映射和基础连接。因为手工创建映射和基础连接很复杂,所以使用了名为OntoLink的工具。OntoLink具有强大的图形用户界面,其有助于用户定义两个语义实例之间的关系以及接着创建映射和基础连接。
OntoLink是一种图形工具,用于指定:(a)服务的语义描述与服务的WSDL描述(这个过程也称作基础连接)之间的映射,(b)本体之间或属于不同本体的实例之间的映射。该工具的输出是用称作XSLT(业界公知)的语言表达的规约。
OWL-S是用于描述本体知识的工具,并且在业界公知。
另外,TEC需要监视服务执行以及准备处理异常和故障。异常和故障在系统层(该层提供服务及其对于用户的连通性和/或可访问性)或者服务层中都可能会发生。当故障在服务层中发生时,这样的故障要么来自对服务的不正确调用或者绑定,要么就可能来自其他的、未预知的要求和/或用于存取和/或使用服务必需的凭据。在所有这些情况的任何一种中,TCE需要尝试纠正这些问题,这可能包括需要用户键入(可能)附加的信息和/或采取一些动作,这些动作可能包括任务的重新指定。
最后,任务规定和执行可能以一种交错的方式发生,即,执行部分任务规定,然后用户回到任务规定来扩展服务组成并执行它等等。换句话说,任务规定和执行可以不必是任务计算工作流的顺序连续阶段,相反二者可能以一种用户驱动、用户控制的方式,或以一种半自动地但用户监视的方式并行地发生。
任务计算用户界面的元素
任务计算工作流的每一步必须在用户界面中显示。但这并不意味着必须存在一个不同的画面(在图形用户界面或GUI这种情况中)或者必须存在专用于任务计算工作流的每一步的其它元素。实际上,在单个用户界面元素中也可显示(或者调用)多个工作流步骤。
用于TCE的GUI可以使用多重用户界面特征,以在发现、过滤、指定和执行中的每一阶段中来辅助用户。这些特征包括下拉菜单、搜索框、校验表按钮、能弹出文本的高亮图标、和文本上光标等。例如,当用户在服务的图形表述上移动光标时(在使用GUI时),可以与光标指示的服务相匹配的其它服务的图标可以突出显示。或者,当发现或过滤的服务对于用户正在尝试的任务不够时,“Search for more Services(搜索更多服务)”选项就可变成可用的。
启用用于任务计算的服务
当讨论任务执行的挑战时,我们讨论了语义服务实例映射和基础连接的概念。所讨论的方法也有助于用户将新的服务合并到任务计算中,即向现有服务提供适当的语义描述以便该服务可以用于任务计算。图13和14显示了两种可能的方法。
图13显示了合并一种新的服务(I)1300。如图13所示,现有服务1302具有将语义层1304映射至服务参数的OWL-S 1212基础连接。假设我们有一种新的服务1306与语义层1304中的现有服务1302相同,启用用于任务计算的新服务1306需要创建新的OWL-S 1212基础连接用于新的服务1306。然后我们就可以使用用于新服务1306的新基础连接1212来调用新服务1306;新的基础连接1212将会从语义实例中派生出服务参数。这个机制可以用于增加新的服务实现,该服务实现用于与现有的服务工具相同的目的,或者该机制用于下面的情况:即当我们希望通过向新的服务的基础连接有效地重新定向现存语义服务描述来升级服务实现时。
图14显示了合并新的服务(II)1400。图14讨论了具有两种服务1302、1306的情况,这两种服务都具有语义服务描述但是各自都为自己的语义层使用不同的本体。为了合并第二种服务1306,我们那可以使用语义实例映射1308将第一种服务1302的语义实例1304映射至第二种服务1306的语义实例1304。接着,为了调用第二种服务1306我们首先使用语义实例映射1308将第一种服务1302的实例翻译成第二种服务1306的实例,然后再使用第二种服务1306的基础连接1212来准备服务调用参数。
最终用户通常都不使用这些机制,这些机制主要由服务提供商或第三方来使用,为了让这些服务可用于任务计算,他们对这些服务感兴趣。
服务描述(我们称之为S备注)本身是一个文件,或者是可以从服务所有者和管理者向最终用户分发的文件指针。如同所述,S备注不仅包括服务的语义详情,它还包括服务调用方法。如果最终用户有权使用S备注,他们就可以使用用于任务计算的服务。即使当执行任务计算时,最终用户也将自动地发现服务,也可能的是,通过接受到S备注或者指向它的指针,用户被明确地告知有新的服务。这样的S备注可由电子邮件来分发,或者可以在带有服务的相同的子网中通过服务本身自动向用户分发,或者从一个用户向另一个用户传送。图15描述了这些机制。
更特别地,图15显示了基于S备注1500的最终用户系统的开发/部署。如图15所示,最终用户110可以通过UPnP从设备204接受S备注、通过电子邮件从开发者/IT部门1502接受S备注,和/或从她自己的计算设备的OS和应用程序接受S备注。然后最终用户110调用设备204的服务、服务1302和/或她自己的计算设备上的服务来完成她的任务。最终用户可以和其它的最终用户110共享S备注。
关于任务计算环境(TCE)的实施例
当看作具体实现的系统时,任务计算环境(TCE)包括以下:
一个或多个任务计算客户机(TCC)
一个或多个语义描述服务(SDS)
一个或多个语义服务发现机制(SSDM)
可选的:
一个或多个语义描述服务控制机制(SDSCM)
“任务计算客户机(TCC)”是支持与任务计算环境相关联的工作流的客户机。
图16显示了示例TCE实施例1600的总体体系架构。当然,这只是许多可能的TCE实施例中的一种。TCC1602是软件,它允许用户感受任务计算,而且当由计算机执行时,使计算机执行任务计算功能。TCC发现服务1302、过滤针对用户环境的服务、向用户提供用户界面用于规定任务或者帮助用户进行任务规定,而且在任务规定后,它通过调用服务来执行任务,有时候还请求用户通过用户界面输入,并且最后它向用户呈现任务执行的结果。
如图16所示,用户110调用指向任务计算客户机(TCC)1602的任务并从任务计算客户机(TCC)1602接收表示。TCC 1602执行任务并接收服务1302和语义服务发现1604。
TCC 1602的功能包括但不限于下列方面:
用户界面(UI):它允许用户与TCE支持的主要功能(发现、过滤、组合、执行)交互。这些功能被映射到用户通过用户界面可以访问的模块或引擎。
发现功能(DF):找出(服务及其)相关描述;即使DF在执行与接收自身通知相反的操作而仅仅查询第三方时,上面所述内容也是正确的。TCC可以拥有对应于服务发现技术(例如UPnP、Jini、蓝牙SDP,等)的多个DF。
过滤功能(FF):基于用户偏好和环境对所发现的服务进行过滤。
指定功能(CF或任务规定功能):在给定服务语义的情况下对服务进行匹配,并且允许用户为后续指定(认为)指定服务的任意且复杂的序列(不一定是线性序列)。
执行/监视功能(EF):执行服务调用界面的实际调用,负责执行期间所调用服务之间的协调,并且管理执行期间所调用服务与用户之间的交互。
TCC的最小要求功能是发现功能(DF)、任务规定功能(TF)和执行/监视功能(EF)。
实现TCC功能的组件(模块)在物理上可以位于除最终用户的设备之外的系统中。例如,在我们的PDA实现之一中,除用户界面(在此情形中为Web浏览器)之外的所有TCC组件都在一单独的计算设备中执行。许多TCC功能自身都可以作为服务提供。
实现TCC功能的组件(模块)可以被不同的实体拥有和/或操作。这些组件自身可以再次被作为服务发现。
“语义描述服务(SDS)”1604包括一个或多个服务调用界面及其相伴的语义层描述。
服务调用界面可以由任何方法/机制实现以调用它们(并与它们进行交互),这些方法/机制包括但不限于SOAP&WSDL、UPuP、JINI、RPC、RMI、CORBA、COM、DCOM、KQML、FIPA-ACL,等。一项服务可以拥有多重服务调用机制。
服务调用界面不需要与其描述的服务位于相同机器上,也不需要位于相同的管理权限下。
服务的语义层描述或“语义服务描述(SSD)”1604可能包括使用任何适当的语义语言的对其I/O、进程模型等进行的语义描述。服务的SSD应该包括(至少):
服务的语义层描述
如何执行服务
语义服务描述在物理上可以位于任何位置。它不必在物理上和逻辑上与服务界面位于相同的实体中,它也不必由管理和/或拥有所实现的服务和/或其界面的相同权限管理。例如:
任何人都可以给出指向服务调用界面或一组服务调用界面(界面可以跨多个实体分布)SSD(语义服务描述)1604。
TCC可以在内部保持SSD。
可以使用任意合适的语义语言编写语义服务描述。这样的合适语言的一个示例是OWL-S。但是,服务的语义描述也可能是一种仅仅显式地指定服务的I/O的简单的专用语言,在此情形中,描述I/O的任何语义语言都满足条件(例如,RDF、DAML、DAML-S,等)。
语义服务发现机制(SSDM)是一种查找SSD的机制。可选地SSDM查找服务的状态(活动,不活动,等)。
有很多SSDM。TCC可能使用多个SSDM,并且一项服务可能被多个SSDM发现。
在普遍环境中,UPnP、蓝牙SDP、Salutation、Jini、Rendezvous是非常动态的SSDM,并且积极地通知其它客户机设备服务的出现。一般而言,在使用这些机制之一用于发现在与TCC执行的计算设备位于相同子网中的服务时,使用一个TCC。
为在Internet上发现服务,可以使用用于服务的UDDI或与GOOGLE等效物来进行服务发现;TCC将在给定搜索准则下查询它们以获得可用服务。
代理通信语言(Agent communication language)(KQML、FIPAACL……)为在网络上查询代理有关代理所知道的服务提供词典。
对于在与TCC在相同的计算设备上运行的服务而言,存在不同的机制,例如使用OS的注册表机制,或者下文将讨论的其它机制。
此外,用户可以键入/剪切并粘贴URL或用于服务的SSD的某种引用(例如S备注)。
用户扫描设备上与服务相关的条形码,以获得URL、某种引用或用于服务的SSD的描述自身。
Web服务(或任意其它远程过程调用机制)可以用作一种SSDM服务。
用于先前或经常使用的服务的本地高速缓存可被视为一种SSDM高速缓存。
用于公知服务的SSD服务的本地或远程数据库可被视为SSDM的数据库。发现模块使用查找服务所专用的ID来查询用于SSD的数据库,以执行查找服务。例如,假定通过UPnP找到作为UPnP设备的服务。发现模块尝试使用获得其SSD的标准方法。当此种尝试失败时,发现模块使用其UPnP的唯一设备名称(UDN)向本地和/或远程数据库查询其SSD。
定义(SDSCM)
语义描述服务控制机制(SDSCM)是一种机制,它允许某种实体(并不一定是TCC的用户,甚至不必是一个人)管理并控制SDS的供应(创建、提供、保存、删除,等)。
SDSCM包括但不限于:
Semant ic Instance Scraper for Applications(应用程序语义实例刮刀程序)
White Hole Service(白洞服务)
PIPE(遍布实例提供环境)
通知服务。这些服务并不使用订阅模型,而是通过使信息提供服务需要时可用来通知用户。
虽然SDSCM并非任务计算的绝对要求,但是它对于创建更加动态的任务计算环境至关重要(下文将给出更多实施例)。
用户界面
作为TCC的重要部分,用户界面向用户呈现发现结果,帮助用户指定并提交用于调用的任务。本部分将给出六个版本的TCC用户界面。
完整版本
图17显示了用于任务计算的一种可能的用户界面1700,它在一个窗口中显示了所有的信息。这种复杂的用户界面供高级用户使用。
在此特殊实施例1700中的UI中有五个窗格。左上面的窗格是发现窗格。它包含一个显示出能够发现的所有服务(功能)的列表。在该列表上方有一个下拉列表,它允许用户基于诸如字母顺序、服务类型、发现时间等顺序以不同的方式对服务列表进行排序。若要查看详细信息,用户可以单击他们感兴趣的服务,与该服务相关的详细资料将显示在窗口左下方的详细窗格中。中上方的窗格是组合窗格。在组合窗格中有几个组,它们包括对象名、两个下拉列表和两个按钮。左侧下拉列表中的服务被称为消费者,右侧下列列表中的服务被称为生产者。在每个组中,任意消费者都可以与任意生产者结合,因为来自生产者的输出可以用作消费者的输入。这就允许该UI可以在紧凑的显示区域呈现更多组合。当由左向右看消费者/生产者对时,其次序与其实际执行次序相反。这是有意而为的,这样该消费者/生产者对就可以读做一个英语句子(例如,“Open”“Local File”),因为可以很容易地将生产者视为名词短语而将消费者视为对生产者起作用的动词或形容词短语。这就允许用户更加迅速地理解可用的任务的种类。对于其它的动词及其宾语名词次序相反的语言(例如日语),应该以其执行次序显示它们。在下拉菜单对上方显示的对象名(例如“File(文件)”、“Schedule(计划)”、“Contact(联系人)”等)是生产者的输出的对象名。该窗格中的按钮是“Execute(执行)”和“Construct(构建)”。当用户单击“Execute(执行)”时,当前选择的消费者和生产者将结组成一个任务并执行。当用户单击“Construct(构建)”时,当前的消费者和生产者将成为进一步构建的基础并且显示在构建窗格中。构建窗格是位于右上方的窗格,用户在其中创建自定义的任务。在构建窗格中显示当前正在创建的任务。用户可以通过在工具栏中单击按钮或单击窗格中的“+”或“-”按钮向服务序列的顶端或底端添加新服务或删除序列中的第一个/最后一个服务。用户可以单击工具栏中的“C1ear(清除)”按钮以删除当前序列并重新启动创建过程。当序列结束时,用户可以单击“Execute(执行)”按钮来执行它。右下方的窗格是信息窗格。在信息窗格中显示TC操作消息。并且对于每一步执行,都会向信息窗格新添一个显示当前执行监视信息的标签。用户还可以通过从发现窗格中选择一项服务并单击构建按钮来开始一个构建(任务规定)。
如上所述,窗格彼此协同,这样用户即可迅速地完成任务。
当用户使其光标悬停在组合窗格或构建窗格中的一个服务名称上方时,将在弹出框中显示由选自位于OWL-S中的SSD的服务的描述。
除组合窗格之外,所有其它的四个窗格中的任何一个都可以通过选择对应的菜单项目而隐藏或显示。
如果需要的话,也可以向该用户界面添加保存窗格以供用户保存其认为有价值的组合。
选项卡版本
图18-22使用选项卡隐喻显示了另一种可能的用户界面。这更适于具有较小显示器的设备,例如PDA和移动电话。
类似于完整版本,在该用户界面中也有五个窗格。每一个窗格都是大型表格的选项卡。图18显示了发现窗格。发现窗格中的一个列表显示了所有的服务。用户可以通过选择工具栏中的下拉列表以六种不同的次序对该列表进行排序。若要在详细窗格中看到关于服务的更多内容,用户可以选择该服务和“Detail(详细信息)”按钮。用户可以由特定服务构建一个新任务。其方式是双击该服务,构建窗格将弹出,并且所选服务位于该构建窗格中。更特别地,图18显示了一个用户界面选项卡版本(I)1800。
图19显示了一个用户界面选项卡版本(II)1900。图19显示了组合窗格。在组合窗格中有几个组,它们包括两个下拉列表和两个按钮。左侧下拉列表中的服务被称为消费者,右侧下列列表中的服务被称为生产者。在每个组中,任意消费者都可以与任意生产者结合。这就允许该UI可以在紧凑的显示区域呈现更多组合。当由左向右看消费者/生产者对时,其次序与其实际执行次序相反。这是有意而为的,这样该消费者/生产者对就可以读做一个英语句子(例如,“Open”“URL from Favorites”),因为可以很容易地将生产者视为名词短语而将消费者视为对生产者起作用的动词或形容词短语。这就允许用户更加迅速地理解可用的任务的种类。对于其它的动词及其宾语名词次序相反的语言(例如日语),应该以其执行次序显示它们。两个按钮是“Execute(执行)”和“Construct(构建)”。当用户单击“Execute(执行)”时,当前选择的消费者和生产者将结组成一个任务并执行。当用户单击“Construct(构建)”时,当前的消费者和生产者将成为进一步构建的基础并且显示在构建窗格中。
图20显示了用户界面选项卡版本(III)2000。图20显示了构建窗格。在该窗格中有三个组合框,它表明当前任务包括三种服务。用户可以通过单击窗格中的“-”按钮来删除第一个和最后一个服务,或者可以通过单击第三个组合框下面的“+”按钮向按钮添加一项新服务。在该示例中,因为第一个服务并不从其它服务中接收任何参数,因此在第一项服务上方并没有“+”按钮。每个组合框还列出了与任务中当前服务类似的服务。用户可以使用列表中任意一个服务替换当前任务。
图21显示了用户界面选项卡版本(IV)2100。图21显示了用户单击“+”按钮之后显示的构建窗格。现在已经向构建窗格添加了一个新组合框。该组合框列出了可以与第三项服务(先前为最后一项服务)结合的所有服务。因为新的组合框中当前所选服务并不具有任何输出,所以并未显示“+”按钮。
当用户对任务感到满意时,可以单击“Execute(执行)”按钮来运行该任务。
图22显示了用户界面选项卡版本(V)2200。图22显示了信息窗格中的执行监视器。每个执行监视器都是信息窗格中的一选项卡。执行监视器具有两部分。左部是一树状结构,显示了任务中服务的组织。在每个服务名称的前面有一复选框。复选框最初是未选中的。在执行期间,当服务完成时,该复选框将被选中。右部是一文本框,它给出各个服务的调用状态。用户可以通过单击选项卡名称附近的“X”按钮来关闭监视器。
在该特定的实施例中,每个选项卡仅仅包含一个窗格,并且图18-22按照上面描述的步骤执行。这样一个选项卡就可以包含一个以上紧密关联的窗格。
流版本
图22-23显示了另选的用于任务计算的用户界面,它提供了一种直觉的方法,可以容易地创建相对复杂的服务。此外,这一更加紧凑的用户界面更适于具有小型显示器的设备,例如PDA和移动电话(图27-33显示了用于移动电话的类似功能的用户界面)。
接下来将描述对图23-26中的用户界面和图27-33中的用户界面的用户体验。
在该UI中有两个窗格。左窗格包含一个列表,它列出了可以与出现在右窗格中的服务(功能)结合的所有服务(功能)。用户可以双击一项服务(或者在选中它之后再次单击)以将它由左窗格移至右窗格。若要从右窗格删除一项服务,用户可以双击该服务,或者可以选择它(通过在服务上单击),然后单击右上角的删除按钮。向右窗格添加服务或从右窗格删除服务会自动更新左窗格上的服务列表。当一项服务由左窗格移至右窗格时,TCC会自动在左窗格的服务中的正确位置排列该服务。如果所选服务有多个正确位置,则会请用户选择一个正确的位置来插入该服务。
右窗格中的服务序列应该从头到尾读做一个英语句子。当该序列“完成”时,意味着它表示了一个由TCC确定的可以执行的组合,右上角的执行按钮将处于活动状态。有时,当服务添加到右窗格上时,在服务之间会出现一个“+”;这意味着要完成组合,必须在“+”所在位置添加一项或多项服务。
只要可能,即左窗格中的剩余服务或服务只能在与右窗格上的服务结合的一个组合中使用时,系统将自动在右窗格上完成该组合。
当用户创建一个组合时,她可能会使用左箭头和右箭头(位于顶部)来在组合创建过程中前后移动。用户可以通过按下左上角的重新启动按钮来重新开始。
UI窗口的底部显示关于左窗格商当前所选服务的信息,或者,如果未选择服务,则显示组合的当前状态信息,例如可能的组合的数目(“可能性”)。可以通过按帮助按钮的方式来禁用UI窗口的底线;底线将消失,然后用户即可通过在服务上单击(而不是双击)来添加或删除服务。
接下来将描述使用图23-26所示用户界面创建一个组合的示范屏幕快照,其方式是详细说明各个图。
图23显示了第一个用户界面流版本2300。图23显示了在用户界面的开始阶段的所有可用服务。类似的显示出现在按下重新启动按钮时。
图24显示了第二个用户界面流版本2400。图24显示了用户连续选择两项服务之后的用户界面。
图25显示了第三个用户界面流版本2400。图25显示了用户选择了足够多的服务以达到一个可执行的服务组成后的用户界面。
图26显示了第四个用户界面流版本2500。图26显示了另一个可执行服务组成,但是禁用了底端信息线。
图27-33所示的用户界面以与上面几乎相同的方式进行操作,不同之处在于图标被按钮替换;前向箭头(右箭头)(及其功能)和帮助功能(具有位于用户界面底部的相关解释)被省略。
接下来将描述使用图27-33所示用户界面创建一个组合的示范屏幕快照,其方式是详细说明各个图。
图27显示了开始处的任务计算2700。图27显示了开始时的用户界面。
图28显示了在用户选择后的任务计算2800。图28显示了服务选择后的用户界面。
图29显示了在左窗格刷新后的任务计算2900。图29显示了在图28的用户选择之后左窗格刷新后的用户界面。
图30显示了用户选择后任务计算的另一个视图3000。图30显示了在第二个服务选择后的用户界面。
图31显示了在左窗格刷新后任务计算的另一个视图3100。图31显示了在图30的用户选择后左窗格刷新后的用户界面。
图32显示了任务计算自动完成信息3200。图32显示了在启用自动完成功能的图31的刷新后的用户界面。
图33显示了在任务计算中用户使用自动完成选项选择自动结束3300。图33显示了在用户调用自动完成功能之后的用户界面。右侧的服务是不可执行的。
基于Web的版本
图34-38显示了基于Web的任务计算用户界面。它适于与任务计算客户机1602一起使用,而不需要在用户的设备上安装特殊软件以供用户进行任务计算,不过用户界面运行在与用户用于任务计算的设备不同的设备上时除外。虽然所讨论的任何一种用户界面都可以在用户的设备上运行,而TCC的其余部分在一个或多个其他设备上执行,但是这一特殊用户界面并未阻止在用户的设备上安装软件。要注意的是,该用户界面没有排除在用户的设备上安装软件;用户可能会这样做,从而向其任务计算体验添加功能,即对运行在其设备上的其它应用程序的访问。
执行(运行)任务计算客户机1602的设备(例如计算机)也承载Web服务器。用户可以使用PDA或移动电话来告诉Web服务器发现和过滤服务并构建和执行任务。用户界面是以HTML或者任何其它网页设计语言设计的,这样就可以使用任何网络客户机应用程序(例如INTERNETEXPLORER、NETSCAPE NAVIGATOR、OPERA BROWSER、MOSAIC,等)进行浏览。
图34显示了用户界面的Web版本(I)3400。图34显示了发现页面。该页面包括组合框、列表和几个按钮。该列表显示了所有的服务。用户可以通过从组合框中选择一种次序并单击“Sort(排序)”按钮来对列表进行排序。列表下方的按钮允许用户浏览其它页面。例如,若要浏览服务的详细信息,用户可以从列表中选择该服务并单击“Detail(详细信息)”按钮来访问详细资料页面。
图35显示了用户界面的Web版本(II)3500。图35显示了组合页。在该页面的顶端给出了服务的数目。在此下方有两个按钮。用户可以单击“Update(更新)”按钮来下载组合页的最新版本或单击“Discovery(发现)”按钮来访问发现页。紧接着有几个由两个下拉列表和两个按钮组成的组。顶部下列列表中的服务被称为消费者,底部下列列表中的服务被称为生产者。在每个组中,任意消费者都可以与任意生产者结合。这就允许该UI可以在紧凑的显示区域呈现更多组合。当由上向下看消费者/生产者对时,其次序与其实际执行次序相反。这是有意而为的,这样该消费者/生产者对就可以读做一个英语句子(例如,“Weather info of”“Contact from Outlook”),因为可以很容易地将生产者视为名词短语而将消费者视为对生产者起作用的动词或形容词短语。这就允许用户更加迅速地理解可用的任务的种类。对于其它的动词及其宾语名词次序相反的语言(例如日语),应该以其执行次序显示它们。两个按钮是“Execute(执行)”和“Construct(构建)”。当用户单击“Execute(执行)”时,当前选择的消费者和生产者将结组成一个任务并执行。当用户单击“Construct(构建)”时,当前的消费者和生产者将成为进一步构建的基础并且显示在构建窗格中。
图36显示了用户界面的Web版本(III)3600。图36显示了构建页面。在该页面中有两个组合框,这意味着当前任务包括两项服务。用户可以通过单击位于列表上方/下方的添加/删除按钮,来向列表的顶部/底部添加一项新服务或者删除列表中的第一/最后一项服务。
图37显示了用户界面的Web版本(III)3700。图37显示了在用户单击了列表下方的“Add(添加)”按钮之后的构建页面。然后向该构建页面添加了一个新的组合框。用户可以通过单击“Discovery(发现)”和“Composition(组成)”按钮来停止构建并移至其它页面,或者通过单击“Execute(执行)”按钮来执行任务,或是通过单击“Save(保存)”按钮来将当前任务保存为一项新服务。
图38显示了用户界面的Web版本(V)3800。图38显示了执行监视页面。在用户发布一条命令来执行任务之后将显示该页面。在该页面的中部列出任务中的服务。在每项服务之前,有一个箭头,用于指示该服务为当前正在的服务。用户可以通过单击“Composition(组成)”来停止监视,或通过单击“Discovery(发现)”按钮来移动至其它页面,或者通过单击链接“View Execution Detail(查看执行细节)”查看与执行相关的更多信息。在服务调用结束后,该箭头移动至下一项服务,并且在该服务之前出现一个红色的“Done(已完成)”的消息。在任务执行过程中,监视器页将以预定的频率刷新自身以反映在任务结束前或由异常中止之前的最新状态。
图33-38按照上面所述结合执行。
基于菜单的版本
用户使用嵌套的菜单来组成/构建/执行任务。它可以是TCC、OS和应用程序的一部分。嵌套的菜单是由当时对任务计算环境可用的服务动态创建的。这一嵌套的菜单尤其适用于OS和应用程序中对象的环境菜单。嵌套的菜单是为特定对象可以映射到其中的语义对象而构建的。
图39显示了用户界面的嵌套菜单版本(I)3900。图39显示了不从对象构建组合的方法。菜单可以从OS中的某些图标开始,例如从WindowsXP中任务栏上的图标开始。菜单启动时没有输入服务3910,并且它显示了服务的另一个菜单3912,当用户的光标在服务上悬停特定时间时(例如),它可以与第一个服务3910组合。如果用户决定继续使用服务的当前组合,用户可以(例如)右键单击菜单项目(这是最后一个服务选择)来执行组合或构建进一步由当前选项启动的组合3912或显示所选服务的属性。图39显示了菜单3910中“Ryu’s Contact”、菜单3912中“BusinessAddress of”、菜单3914中“Aerial Photo of”和菜单3916中“Vies onprojector”的示例组合。
如果组合以某些输出而结束,则系统可以设置为:(1)系统不在右键单击菜单中显示“Execute(执行)”项目,或(2)系统执行组合并省略输出,或(3)系统在给定组合的结束时试着自动完成组成服务并执行它。
系统也可以被设置成当(例如)用户的光标在服务上方悬停特定时间后执行/构建/属性菜单项目3918出现。
在上面的描述中,我们讨论了从无输入服务开始扩展组合的方法。我们也可以由例如无输出服务开始并在其它方向对组合进行扩展。或者,我们可以启动任何服务(可能有或没有输入/输出),并使用户在两个方向扩展该组合。
图40显示了用户界面的嵌套菜单版本(II)4000。图40显示了实质上从OS或应用程序中某些对象启动的同一个嵌套的菜单界面的示例。当用户右键单击对象3908时,将确定对象的相应的语义对象并显示使用该语义对象的服务。其它的与“嵌套菜单(从无对象)”中相同。当组合被调用时,会分析该对象以创建语义对象,(以某种内部一致性实现)创建提供服务并且执行服务的语义对象,并且将该语义对象传递给服务组成的其它部分。
在OS广泛可用的情况下(Windows、Unix OS,等等),文件扩展名可用来判断对象所映射到的语义对象。例如,.jpg/“Image File”,.mpg/“Video File”,.vcf(vCard)/“Contact”,.ics(iCalendar)/“Schedule”,等。在文件自身包含语义对象时,会将文件中包含的一或多个语义对象用于服务的组成。例如,OWL(Web本体语言)的.owl文件可以包含语义对象。
我们可以将该方法扩展至描述语义服务的OWL-S文件。当用户右键单击一个OWL-S文件时,就会显示可组成该OWL-S文件所描述服务的服务。
在使用应用程序的情况下,可以从个人信息管理(PIM)软件中启动组合,例如,联系人或计划项目。或者可以由电子邮件软件中电子邮件中的附件启动组合。Web浏览器软件可以动态地为其在页面或与页面链接的页面中找到的语义对象或非语义对象创建图标或菜单,并且允许用户由此开始组合。
命令行版本
图41显示了命令行版本的界面4100。用户通过键盘或类似的输入设备与TCC进行交互。TCC将按照命令(例如,通过按诸如TAB键之类的特殊键)使用已经键入的字符,显示对应于所发现服务名称的完成的短语。如果有一个以上用于完成的候选短语,界面将向用户呈现这些候选项并等待用户的进一步输入。当用户已经输入了一个完整的服务名时,自动完成就基于服务的语义和TCC的组合逻辑。换句话说,在给定了输入的在先服务时,自动完成服务是一项可以很安全地组合的服务。例如,用户已经在“View on Projector”中键入并且单击TAB键来完成操作时的情形。随后,系统仅仅将与“View on Projector”匹配的服务(即生成“File(文件)”或其子类对象的服务)作为潜在的完成显示。当用户单击返回时,它就执行该组合(或者如果组合并未完成,它将显示潜在的完成)。这就模拟了用户通常比较熟悉的完成句子的过程,这样它就向用户提供了快捷并且简单的方法来组合并执行服务。
并非总是要按照消费者到生产者的次序。用户可以将光标移动到一些服务前面并单击,例如,使用SHIFT-TAB来完成向左侧的移动。可以为实现效率而使光标仅仅跳到服务边界。
任务计算客户机的详细描述(TCC)
接下来更加详细地描述两个任务计算客户机。我们将它们分别称为TCC I和TCC II。
这两个任务计算客户机对TCE做了关于语义描述服务(SDS)所使用技术的非必要的假设。其它技术可以可交换地使用。这些假设为:
用于服务调用界面的SOAP/WSDL和UPnP
用于语义服务描述的DAML-S或OWL-S
用于与TCC在相同的子网中服务的发现的UPnP。监听预先指定的套接字以发现与TCC在相同设备上运行的服务。
该TCE中可用的服务使用并生成图42中所示本体中进行了语义描述的数据。
图42显示了语义实例类型之间的关系4200。一般而言,本体是某个领域内知识的机器可读表现形式;本体认为含义归于它所描述的领域内的实体,它位于其它东西附近或其中,描述实体的属性和该领域内实体之间的关系。类是具有相同属性和与其它实体的相同关系的实体的集合,实例是特定数目的语义类。此种本体的表示语言为OWL-S。
在图42中,“事物”是RDF名称空间中定义的类,其是所有语义实例类的根源。“联系人”、“时间表”、“地址”和“文件”是从“事物”直接继承而来的四个类。“FLA位置”  “地址”的子类,表明了FLA办公室中的地址。“媒体文件”有三个子类:“音频文件”、“视频文件”和“图像文件”,它是“文件”的子类。“网页”也是“文件”的另一个子类。最后,“地址”是“联系人”的属性。
任务计算客户机I
图43显示了TCE实施例的体系架构4300。即,图43显示了我们所描述的TCE(在所述假设下)中的TCC I 4400。在图43中,“用户”4302是使用TCE的客户机;“本地服务”4304是在与“TCC I”4400相同的设备上运行的服务;“本地服务管理器”4306控制本地服务4304的管理模块;“遍布服务”4308是在与“TCC I”4400相同的网络内运行的服务;“UPnP设备+Web服务器”4310是发布遍布服务的模块;“E-服务”4312是另一种服务,并且也使用“UPnP设备+Web服务器”来发布其自身。
当在TCE框架中添加或删除本地服务4304时,向本地服务管理器4306发送一个登记或注销消息。本地服务管理器4306将其传递给“TCC I”4400。对于登记消息,本地服务管理器4306也告诉“TCC I”4400到哪里去寻找SSD 1604。对于遍布服务4308和E一服务4312,UPnP设备模块4310负责向网络环境发送添加或删除消息,该消息被“TCC I”4400发现。对于添加消息,提供UPnP调用。当“TCCI”4400发现该消息时,其将使用调用来寻找该服务的SSD 1604。通常,SSD 1604是Web服务器模块。下一个“TCCI”4400连接到Web服务器并检索SSD 1604。
“TCC I”4400从SSD 1604中找出调用服务所用的必需信息。为调用它们,TCC I 1604直接向本地服务提交内部web服务调用,向遍布服务提交UPnP或WSDL/SOAP服务调用,并向e-服务提交WSDL/SOAP服务调用。
TCC I 4400组件
TCC I 4400主要包括五个部分:具有用户界面的主逻辑、发现和过滤引擎、组成引擎、执行监视器和执行引擎。
图44显示了TCCI4400的内部机制。下面将描述每个TCC I组件如何向用户提供任务计算环境而工作。
具有用户界面的主逻辑4402
“主逻辑”4402是TCC I 4400的核心部分,原因有二。
首先,其提供在任务计算环境中管理与用户的交互的(图形)用户界面((G)UI)模块,并支持任务计算的工作流。前述任何一个用户界面都可以用作TCC与用户交互的媒介。
其次,主逻辑为其它模块传递消息,并将其整合到完整的系统中。其接收发现的结果并向登记和注销服务使用组成引擎的界面;其查询组成引擎,获取必要的服务相关信息并将其显示给用户;其帮助用户设计任务;其把任务传递给执行监视器以执行该任务;而且其显示监视信息并给用户一个清楚的执行观察。
发现和过滤引擎4404
“发现和过滤引擎(DE)”发现服务并检索服务的SSD。该DE包含UPnP控制点和本地端口监听器,前者监视网络并接收遍布服务所发布的添加/删除消息,后者监视预定义的套接字并接收来自本地服务的添加/删除消息。当发现新的服务时,该DE也检索SSD。对于遍布服务,该DE向SSD的URI发出“getDescriptionURL”调用;对于本地服务,SSD的URI包含在消息中,因此不需要更多动作。因而若需要则该DE把变化和SSD一起告诉主逻辑。
经常使用的远程本体描述文件在TCC I安装期间被安装在本体缓存中。在组成引擎中,当需要远程本体文件时,将首先尝试取回远程版本的连接。若不能成功建立连接,则改为使用已缓存的文件;若检索到远程文件,则也检查相应缓存版本,以确保其与最新版本一致。若否,则用最新版本替换缓存的版本。
推论引擎(组成引擎)4406
“推论引擎(IE)”4406解析服务的SSD并响应其它模块的服务相关查询。其为其它模块向登记和注销服务提供标准界面。当登记了新服务时,解析该服务的SSD并将服务信息添加到内部知识库中;当注销一个服务时,从知识库中删除与该服务相关的信息。该知识基础用于回答各种查询,诸如“列出所有可用服务”或“列出所有服务内容”或提供所有成对的匹配服务等。
可用Prolog或某些其它语言来表现确定为了组成(任务说明)的目的而如何彼此匹配服务的组成逻辑。推论引擎也执行优先权的区分。根据诸如新颖、匹配精确性和用户偏好等准则而区分匹配的优先权。
执行引擎4408
“执行引擎(EE)”4408解析执行计划并设计执行它们的策略。该策略包括服务调用顺序、从一个服务向另一个服务的参数传递、参数转换等。
然后基于该策略,其执行适当的调用,以根据服务所使用的调用界面而调用诸如UPnP、WSDL/SOAP或其它远程过程调用界面等服务。这需要非常动态的调用途径。即,这需要动态调用函数的名称和参数列表,而不调用预编译的API。
这也需要支持异步调用。为支持这种调用,可包括用于异步服务的类似JavaSpace的组件,其能够处理UPnP事件回叫、普通轮询、SMTP SOAP和其它机制。
执行监视器4410
“执行监视器”4410是处于EE 4408和主逻辑4402之间的模块。其为每个执行计划启动一个监视器。若没有监视器,用户可能只注意到是否已经成功地执行了任务,而不会有更多东西。若有监视器,用户能够检查任务的状态:哪个任务调用已经完成以及哪个还没有完成。若任务失败,则监视器告诉用户在哪个点上发生了错误。
TCC I流
主逻辑4402
图45给出了TCC I主逻辑4402的流程图。当主逻辑4402开始时,其首先通过解析在预先定义了的目录中的OWL-S文件而发现现存的本地服务4402-1。然后其开动本地服务套接字监听器4402-2。该监听器监视预定义的套接字并将被告知何时在系统中添加或删除本地服务。由于遍布服务使用UPnP来扩展其存在性,主逻辑然后开动UPnP控制点以发现遍布服务。当本地服务套接字监听器或UPnP控制点接收到添加/删除消息4402-4时,主逻辑向IE 4402-5登记/注销服务。接下来,主逻辑寻找所有服务部分4402-6,并随后启动TCC I GUI并等待用户的请求4402-7。
每个用户的请求4402-8都在主逻辑4402中处理。若用户想观看服务4402-10的细节,则从组成引擎中检索该信息并显示在GUI 4402-16中。若用户想设计新的任务,则评估当前的结构状态4402-11,从组成引擎4402-12中寻找所有可能的组件。该组件显示在GUI 4402-16中,其帮助用户做出决定。若用户想执行已创立的任务或给定的组件,则产生新的执行监视器4402-3,并把该执行计划发送给监视器。执行监视器把计划提交给了EE 4402-14。主逻辑的剩余工作是显示监视信息4402-15并等待新的用户请求。
发现
图46显示了TCC I 4400中的服务发现和登记过程的流程图,其由发现引擎4404和组成引擎4406执行。当听到添加的消息时,TCC I 4400从消息4600-1中提取发现信息。若该消息与本地服务有关,则该消息包含SSD的URI;若该消息关于遍布服务,则TCC I 4400调用UPnPgetDescriptionURL方法并检索SSD的URI。接下来,在组成引擎4406中检索并解析该服务的SSD。解析结果位于RDF模型4600-2中。此后,该RDF模型被转换为知识基础格式4600-3。该知识基础断言被组成引擎4406插入到知识基础4600-4中。
TCC I 4400把UPnP作为用于与TCC相同的子网络中的服务的服务发现的主要方法。
发现模块实现UPnP控制点,以向网络发送查询,并搜索遍布服务。有时候服务在报告其存在方面(若需要)速度慢,或者在某些情况下,由于各种原因而忽视或漏掉了查询。因此,在提示方式下不可能找到服务。我们在服务发现模块中引入多UPnP(或其它服务发现)控制点的观念。我们不启动一个,而是多个(为TCC I启动通常5到10个)控制点。每个控制点单独发送查询。控制点的发现结果在发现模块中汇总并过滤重复的消息。试验表明,通过这种方式,以稍高的资源消耗就可以显著改善遍布服务发现的性能。
当某些服务在提供正确的语义描述上有问题时,发现模块将忽略这些问题。然而,由于UPnP的属性,这些设备将重复宣告它们的存在,并且TCC I中每次宣告之后检查过程将耗费许多资源。为处理这个问题,TCCI产生黑名单,以记住“坏”服务及其时间标记,该时间标记表明了发现该服务的最后时间。随后,若再次发现黑名单中的服务,则TCC I把所存储的时间标记与当前时间相比较。若时间跨度在预定范围内,则TCC I完全忽略该发现消息;否则,TCC I将再次检查描述。若再次检查时描述变正确了,则TCC I将从黑名单中删除该服务;或者,TCC I将为该服务把时间标记更新为当前时间标记并更长时间地阻挡该服务。
本地服务的发现工作如下。
为了这个目的而定义预定套接字。TCC I总是监听套接字。当添加(删除)了服务时,把该服务的SSD拷贝到(从)预定义的目录(如C:\ProgramFiles\tce\psmgr)(删除)。然后向套接字发送一个消息。消息的格式为“a<SSD filename>”(“r<SSD filename>”)。当TCC I找到该消息时,其首先知道SSD位于预定目录+<SSD filename>中。TCC I为添加消息登记SSD并为删除消息登记SSD。
显示已发现的服务
为了使用户更容易地理解和更好地决定,可以分类和/或解释已发现的服务。可以以多种准则进行分类,其包括但不局限于:
输入和/或输出信号
服务种类
内部、本地、遍布、远程
离用户的距离
收费或免费
用户可以预先设置这些分类准则。可以通过下述方式但不限于该方式向用户呈现分类的结果:
字体(字样、大小、颜色等)、背景(颜色、图案)、结构(笔画的力量等)、声音(男/女、声调、语速)、分类清单
基于分类的分组可以映射到诸如下拉式菜单等(G)UI元素中。
可以利用许多方式解释服务,所述方式包括但并不局限于:
在光标在其上时,或者在对该服务发出任何动作时,弹出菜单
在诸如状态栏的特定固定区域内显示它
分割页面以显示服务细节
服务解释可以包括但并不局限于:
服务的详细文本描述
服务类别
对服务的输入及其本体(到其的链接)
对服务的输出及其本体(到其的链接)
文本或图形表示的服务模型
服务的其他属性/参数/度量
多媒体(图标、语音、图像、视频等)描述
其OWL-S文件(到其的链接)
除了文本描述之外,我们还可以使服务在其SSD内具有服务的图标描述、图像描述、视频描述以及语音描述。在其SSD内,该服务可以具有到这些描述的链接或描述本身(可以以文本方式进行编码)。这些描述支持多峰接口(multimodal interface),而且可以更好地对用户进行导航。例如,对于盲人,或者在用户驾驶轿车时,可以建立语音接口。在其他情况下,我们可以将其视频描述用作关于如何使用该服务的教学式可视使用说明书。
图47示出具有用于发现窗格的基于web的用户界面的TCC I的示例4700。
图48示出具有用于服务的图标的发现窗格4800,包括利用SDS内(OWL-S)的图标用于发现的完全版本用户界面。
图49示出详细窗格4900,它示出服务的尽可能多的信息。
过滤
根据服务的参数来过滤服务。语义服务描述中的参数,例如OWL-S文件中的服务参数,用于过滤。示例过滤包括:
位置,特别是相对于当前用户位置的位置,例如“在同一个房间内”、“在同一楼层”或“在同一个建筑内”。
距离用户的距离。
对于打印服务
打印机的速度、黑白或彩色、免费或付费、估计的执行时间
任务计算环境为用户提供根据语义服务描述过滤服务的动态方式和用户界面。用于服务参数的语义已知,所以通过根据本体约束用户界面,用户界面可以支持用户输入。
图50示出服务过滤的示例5000。
搜索E服务
对于e服务,搜索这些服务是通过其开始使用特定服务的主要管道(conduit)。在其初始命中或使用后,可以将其语义服务描述(SSD)保持到SSD高速缓存内。对我们来说,我们假定在因特网上存在一些让人们查询服务的、公知的SSD库。但是可以将UDDI,DISCO以及其他服务搜索机制引入任务计算环境。这并不局限于web服务,而且还包括其他服务调用机制。
主要从组成与构建窗格调用该“搜索”。该服务的下拉菜单中的一个项目是“搜索web服务”。在选择它时,它弹出一个页面,让用户搜索具有固定输入和输出的e服务。在该页面上,如果用户希望,则用户可以改变、添加、删除或修改搜索条件。
图51示出具有“搜索web服务”的发现窗格的示例。
组成
组成引擎(IE)4406支持任务规定过程。组成引擎4406采用被发现、被过滤服务的SSD及其组成逻辑,以确定如何组成服务。还根据诸如新奇、匹配的准确性以及用户偏好的标准,按优先序排列匹配。其他模块可以查询关于服务匹配的组成引擎。
图52示出关于组成引擎4406如何应答各种查询5200-1的过程5200。第一步是将查询变换为知识库查询5200-2。IE 4406利用本体推理器5200-4与服务5200-3匹配。查询的应答是匹配服务对表。接着,将列表发送到“基于用户环境的排序结果”5200-5。该过程检验“用户环境/偏好”5200-6,并选择排序顺序。在对该列表进行排序后,返回“排序组成结果”5200-7。
根据以下内容但并不局限于以下内容,按优先序排列组成。
发现服务的新奇性
匹配的准确性
本体翻译的质量
使用频率
用户偏好
根据从主逻辑模块反馈的用户确定,可以引入关于组成中用户偏好的学习机制。可以采用日语IME(输入方法编辑器)中使用的类似学习方法。
可以根据作为组成集自身的特征,再过滤组成,例如:
总成本
要执行的总时间
组成集中所有服务的近似
在光标悬停在“执行”按钮上时,例如,通过弹出窗口,可以为用户提供这些特征的信息。
图53示出组成窗格的示例5300。
在TCC I内,根据输入/输出签名,可以将组成分组。我们还可以根据SSD内的服务类别,例如“浏览器”和“打印”服务类别(它们基于同样的输入/输出类型),对这些组成进行分组。
可以对组成结果进行分类,用于后面的表示。与对单个服务进行分类相同,可以利用几种标准进行分类,这些标准包括,但并不局限于:
服务类别
内部、本地、遍布、远程
距离用户的距离
免费或收费
与对单个服务进行分类的情况类似,用户可以事先设置这些分类标准。
为了对用户提供控制感觉,如何表示事务非常重要,我们非常关心表示和解释。
为了更容易理解任务,我们将组成窗格上的组成服务的顺序颠倒。例如,执行顺序是首先“FLA,URL”,然后,“通过投影仪观看”。但是在组成窗格上,表示组成的顺序是首先“通过投影仪观看”,然后“FLA,URL”,以与英语语句的顺序匹配。
对于组成与构建窗格,可以将基于分类的服务分组映射到诸如下拉式菜单的(G)UI单元。
如何以交互方式向用户呈现、他/她如何能够与服务交互是任务计算的一个重要部分。其他示例包括:
在(G)UI内反映根据用户动作改变优先次序。例如,如果用户在组成与构建窗格中的下拉式菜单中选择服务,则先前的或之后的下拉式菜单根据优先次序改变其菜单项目的排序。
我们有用于表示用户为了确定执行哪个服务或组成的所需信息的其他无障碍方式。在从组成窗格上的下拉式菜单中选择服务时,该信息框弹出显示服务描述。
从其SSD中取出该服务的人类可读描述。
我们还可以对用户提供关于服务组成的线索。在鼠标光标悬停在“执行”按钮上时,出现弹出框以示出总成本、估计时间以及用于执行特定组成的其他标准。
本体翻译
通过填充不同本体中各有关示例之间的间隙,该系统可以显著增强系统的利用率。不同本体中的不同概念化过程可以对表示同一个信息提供许多方式。例如,地址的不同概念化过程可以导致以下结果(但并不局限于此):
(地址)
示例实例是(“8400 Baltimore Avenue,College Park,Maryland,20740-2396,USA”)
(街道地址、城市、州、邮政编码、国家),该概念化过程的示例实例是(“8400 Baltimore Avenue”,“College Park”,“Maryland”,“20740-2396”,“USA”)。
(街道地址、城市、州),该概念化过程的示例实例是(“8400Baltimore Avenue”,“College Park”,“Maryland”)。
(街道地址、城市),该概念化过程假定它所处理的每个地址均在Maryland。示例实例是(“8400 Baltimore Avenue”,“College Park”)。
(街道名称、街道编号、城市、州),该概念化过程的示例实例是(“Baltimore Avenue”,“8400”,“College Park”,“Maryland”)。
为了填充该间隙,我们需要(但并不局限于此):
省略某些信息部分
增补附加信息
解析文本部分
重组
可以利用SSD在内部,或者在外部(不包括搜索用于本体翻译的web服务)提供关于如何可以进行这些本体翻译的信息。可以利用以下内容(但并不局限于此)提供功能性。
XSLT
脚本语言中的代码
对本地可执行件的引用
关于是否可以在两个对象之间进行本体翻译的知识也对服务组成产生影响。此外,关于本体翻译的某些其他标准也可能影响优先次序。例如,包括较准确本体翻译的组成可以比包括较不准确本体翻译的组成优先。
构建
如果用户选择构建,则通过附加、删除、改变服务等,用户可以修改服务组成。根据其SSD,对可以附加的服务进行过滤和按优先序排列。如果执行“点击和选择”操作,则用户可以容易地修改该构建。
服务不仅可以附加到组成的开头和尾部,而且可以附加到各服务之间。一个示例是,始终具有同样输入和输出的“实例观看器服务”(请参考“SDS实施例”)。
图54输出构建窗格的示例5400。
执行
任务执行过程包括语义层和句法层。在语义层定义任务,而通过句法层执行任务。
图55示出语义层和句法层中的任务执行过程5500。图55利用示例示范如何执行任务。在该图中,在语义层定义任务,它是3个服务的序列。“Contact from Outlook(来自Outlook的联系人)”5502是从用户的个人outlook文件夹中检索一个联系人项目的服务;“Businessaddress of(商务地址)”5504是从联系人项目中提取商务地址的服务;以及“Route from FLACP(从FLACP开始的路线)”5506是显示从FujitsuLaboratories of America,College Park到给定地址的路线的服务。采用OWL-S来编写3个服务的语义描述。每个语义描述分别包括被称为“基础连接”的部分,它描述关于如何将语义类型映射到句法类型/从句法类型映射到语义类型的细节。在该图中,“Contact(联系人)”和“Address(地址)”是两个语义类型,而“串”是句法类型。“Contact from Outlook”是实现“Contact from Outlook”的web服务,而“Route from FLACP”是实现“Route from FLACP”的UPnP服务。
以下说明执行过程。首先,TCC I 4400分析“Contact from Outlook”5502的SSD 1604,而且知道该服务未进行输入,并返回联系人项目作为输出。然后,TCC I 4400将web服务调用发送到没有输入的“Contact fromOutlook”5508。执行web服务后,返回结果。请注意,结果是句法字符串。然后,“Contact from Outlook”5502的SSD的基础连接部分告知TCCI4400如何将该字符串映射到语义“联系人”对象。TCC I 4400根据该指令,产生“Contact”对象,并将它发送到第二服务,即“商务地址”5504。“商务地址”5504服务指出如何从联系人项目中提取商务地址。TCC I 4400完成操作并根据输入产生“地址”对象。然后,将该“地址”对象发送到“Route from FLACP”5506。同样,在建立基础连接之后,“地址”对象映射到句法字符串。然后,TCC I调用UPnP调用,并将该字符串用作输入。最后,“从FLACP UPnP开始的路线”5510完成该请求。
服务调用
为了执行任务中的服务,利用其SSD 1604内的基础连接信息,主逻辑模块4402确定调用哪个界面。(对于一个服务可以存在同样类型和不同类型的多个界面。服务可以具有例如一个UPnP界面和两个WSDL/SOAP界面)。调用哪个基础连接取决于以下内容,但是并不局限于此:
系统能力。例如,PDA可以仅具有UPnP服务调用模块并选择使用UPnP基础连接。
系统或用户偏好。
在执行序列组成服务期间,可能发生许多事件。事件包括:
在执行之前,UPnP服务不可用
失败的服务调用,因为
执行过程中位置发生变化
丧失网络连通性
用户可以执行服务组成而无需任何干预,或者如果用户希望,用户可以监视组成的执行过程。通过利用监视器窗格与用户充分交互,我们可以使这些事件不被用户讨厌。这种交互包括:
如果任何一个要执行的服务变成不可用,则通知用户
在需要时,对用户提供重构该组成的简单方式
在确定使用哪个基础连接后,系统需要不将主逻辑模块4402中使用的语义实例编组为用于服务调用的参数,而将调用结果编组为语义实例。
这是编组/解组模块利用从要调用服务的SSD中提取的基础信息实现的。
编组和解组
基础连接信息可以位于(但并不局限于此):
XSLT
用脚本描述语言编写的代码
对用于编组/解组的web服务的引用
对本地可执行件的引用
例如,具有(“街道地址”,“8400 Baltimore Avenue”)、(“城市”,“College Park”)、(“州”,“Maryland”)、(“邮政编码”,“20740-2396”)以及(“国家”,“USA”)属性/数值对的“地址”语义实例必须解组为用于将服务映射到美国地址的、诸如(“8400 Baltimore Avenue”,“CollegePark”,“Maryland”)的参数集。或者,必须不将同一个“地址”语义实例编组为用于另一个映射服务的、诸如(“8400 Baltimore Avenue,College Park,Maryland,20740-2396,USA”)的另一个单参数集。
通常,困难是不将服务调用结果编组为语义对象。这些情况可以包括不将信息的文本表示编组为更结构化的语义实例。例如,地址提供服务可以提供“8400 Baltimore Avenue,College Park,Maryland,20740-2396,USA”作为其调用结果,而且它需要不利用(“街道地址”,“8400 Baltimore Avenue”)、(“城市”,“College Park”)、(“州”,“Maryland”)、(“邮政编码”,“20740-2396”)以及(“国家”,“USA”)属性/数值对,编组回“地址”语义实例。在这种情况下,我们需要某种功能或服务解析该文本表示。可以利用SSD内的采用脚本语言编写的代码,利用web服务,或者利用本地可执行件,提供这种功能或服务。可以利用服务调用结果(不包括地址的文本表示)进行调用,以获得语义实例(不包括具有属性/数值对的“地址”语义实例)。
利用在上述步骤获得的参数,执行模块调用服务。将该结果送到编组/解组模块以编组为要在主逻辑模块消费的语义实例。
异步服务调用
通常,WSDL+SOAP web服务调用采用同步模型,即,在将调用请求发送到web服务时,作为响应消息发回服务结果。这种模型存在两个缺点。第一,如果执行该服务花费非常长的时间,则TCC可能遇到超时消息。否则,TCC必须等待响应,而且不能做任何其他事情。第二,在服务处理周期内,如果用户需要更多的信息,则在当前的模型中,非常难以使web服务获得该信息。
在TCE实施例中,通过引入异步web调用,解决第一个问题。以下说明异步web服务调用的工作过程。在TCC首先提交web服务请求时,web服务产生唯一id,并将它作为引用送回TCC。此后,TCC将新请求发送到具有id的web服务,并检验是否准备好对先前请求进行应答。存在3个可能响应。如果处理过程还未完成,则什么也不返回。否则,如果处理过程已经完成,则返回应答。或者,如果处理过程出现错误,将返回出错消息。TCC可以以给定间隔轮询web服务,并对两个连续轮询操作期间的事务进行处理。
以下说明第二个缺点的解决方案。在服务的SSD中,我们定义一个被称为服务控制UI的特殊字段。同时,除了web服务外,设计另一个web服务器,该web服务器允许用户输入特殊信息,然后,该web服务器将它发回web服务。
图56示出关于它如何工作的示例。在该图中,“web服务”5602是提供服务312的模块。“服务控制web页面”5604是帮助用户输入特殊信息的web服务器。该过程包括几个操作。首先,TCC 1602将请求发送到“web服务”5602。除了正常参数,TCC 1602还产生特殊TCEExecID,在该例中为1234-1,并将它与请求附加在一起。与异步模型相同,“web服务”5602产生唯一id,而且为了轮询引用,将该id返回TCC 1602。在该例中,该id是1。接着,“web服务”5602做一些特殊事情。在“web服务”5602内,存在用于存储TCEExecID与id之间的映射关系的“内部状态表”5606。该表5606有3列:TCEExecID、id以及特殊信息。对于这种请求,在“内部状态表”5606中插入新行。在上述示例中,这两个字段具有数值1234-1和1。在TCC 1602端,在从“web服务”5602返回id时,它启动关于“服务控制web页面”5604、具有附加TCEExecID的web页面。利用“服务控制web页面”5604,用户成功提交特殊信息。接着,“服务控制web页面”5604将该特殊信息发送到“web服务”5602,并将TCEExecID用作引用。通过检验“内部状态表”5606,“web服务”5602容易发现特殊信息属于哪个请求,并完成该请求。对于TCC 1602,在提交该信息后,TCC 1602对“web服务”5602开始进行异步轮询过程并等待应答。
我们具有同步和异步web服务调用,而且我们使任选的特殊web服务器支持某些web服务。TCC 1602如何知道对于给定服务应该使用哪种调用方法。
一种解决方案是,对该服务的SSD内的一切进行定义。在该实施例中,我们采用另一种方法。
图57示出TCC I 4400的服务调用流程图5700。图57示出TCC实施例的完整流程图。假定SSD指出利用web服务实现语义服务,并将该方法称为“GetURL”。首先,TCC检验是否存在被称为“start_GetURL_with_ID”的方法。如果存在,则意味着,web服务是具有ServiceControlUI的异步服务5702。TCC调用所述调用和唯一id,在该例中为1234-1,并进入轮询过程。如果不存在“start_GetURL_with_ID”,则TCC检验是否存在“start_GetURL”。如果存在,则web服务是异步服务。TCC调用所述调用并进入轮询过程。如果“start_GetURL_with_ID”和“start_GetURL”均不存在,则TCC知道该web服务一定是同步服务5704。接着,TCC检验是否存在“GetURL_with_ID”。如果存在,则该方法是具有服务控制UI的同步服务。对于这种服务类型,TCC利用唯一id调用所述调用,并利用该调用实现TCC。请注意,对于同步调用,不要求进行轮询过程。最后,如果3个调用均不存在,则TCC认为这仅是一个正常同步web服务,并象往常一样进行处理。在上述示例中,可以利用具有参数或不具有参数的任何函数代替“GetURL”。
确定服务是异步5702还是同步5704,以及确定服务是具有用户界面还是不具有用户界面的方式有两种。以上描述了第一种情况,在这种情况下,TCC检查描述文件(不必是语义文件。例如,其WSDL文件),而且,不是利用将要调用的原始界面的名称,而是利用可用界面的附加名称,确定它。
确定它的另一种方式是使用服务的SSD。SSD可以具有关于应该如何调用服务以及应该如何访问服务控制页面面的描述。
在只有单页界面可用时,执行监视器页面和服务控制UI之间的以下集成非常有用。例如,在使用基于web的UI时,客户机设备是容许非常有限的显示空间的、诸如PDA或移动电话的小型设备。如上所述,为了调用具有服务控制UI的服务,用户必须访问web服务器以输入特殊信息,或者控制该服务。这意味着,在基于web的UI中,必须启动新浏览器。然而,在PDA或移动电话中,不支持多个浏览器。
为了解决该问题,我们修改基于web的UI内的执行监视器。图58-60示出一示例。此时,我们执行具有两个服务“Jeff’s File(Jeff的文件)”和“View on browser(通过浏览器观看)”的任务。“Jeff的文件”是允许用户从表上选择文件的服务器,并返回该文件。“通过浏览器观看”是在浏览器上显示文件的服务器。请注意用户的选择是第一服务的特殊输入。
图58示出具有服务控制UI(I)的基于web的用户界面(UI)5800。图58显示初始执行页面。如上所述,箭头指出当前正在运行第一服务。请注意,链接在指向web服务器的服务名称之下。
图59示出具有服务控制(UI)(II)的基于web的用户界面(UI)5900。图59显示用户跟踪该链接时的屏幕画面。然后,要求她从表中选择文件。
图60示出具有服务控制(III)的基于web的用户界面(UI)6000。图60显示在用户进行选择并回到执行页面时的屏幕画面。请注意,两个服务现在均完成,而且第二服务的服务控制UI的链接变得可用。用户可以跟踪第二页面的链接以观看浏览器上的文件。
监视
执行监视器4410是用于显示关于调用执行计划的信息的模块。在通过组成和构建确定执行计划后,建立新监视器实例。在服务与监视器之间确定标准接口,以使TCC I 4400不知道执行监视器的执行细节。服务执行线程将消息发送到每个监视器,而每个监视器以用户可理解的方式显示它们。
在执行组成服务序列期间可能发生许多事件。这些事件包括:
在执行之前,UPnP服务变得不可用
失败的服务调用,因为
在执行期间改变位置
丧失网络连通性
用户可以执行服务组成,而无需干预,或者,如果用户希望这样,则用户可以监视组成的执行过程。尽管通过监视器窗格可以与用户充分交互,但是我们可以使这些事件不被用户讨厌。这些交互包括:
如果任何一个要执行的服务变成不可用,则通知用户
在需要时,对用户提供重构该组成的简单方式
图61示出监视器窗格6100。
保存
如果用户希望这样做,可以将组成保存为宏。但是在遍布(pervasive)环境下,仅保存特定序列的服务并不始终有意义。与始终与服务连通的因特网环境不同,将在不同的地方发现不同组服务。例如,在一个房间内“通过投影仪观看”和在另一个房间内“通过投影仪观看”是独立服务。如果我们可以采用宏的方式在该序列中可互换地使用这些服务,这仍非常有用。
因此,我们对宏序列的每个操作所做的指定并不始终完全是特定服务,而是该位置可以接受的服务条件。例如,不将如“在123房间通过投影仪观看”的服务指定为宏序列中的步骤,我们可以具有诸如对于该步骤“其分辨率高于1024×768”的“通过投影仪观看”类别的服务”的条件。通过广义化,我们可以进入下一步。通过将该服务的特定服务表示为条件“服务与该特定服务(或SDS)完全匹配”,我们可以说宏序列中的每个步骤均是该步骤的服务必须满足的条件。“服务与该特定服务(或SDS)完全匹配”与“服务与该特定SDS完全匹配”之间的差别在于,前者在服务调用级(例如,UPnP,WADL/SOAP)解决该匹配问题,而后者解决语义级对应关系。在一种后者多种服务调用技术中,SDS可以具有多个分组。
这些宏还可以是任务计算工作流的发现过程中发现的服务。在特定环境下,检验服务的可用性,哪个满足宏中各步骤的条件。仅在启动宏的所有服务可用时,它表现得象被发现或者可用的。
条件可以在从准确匹配(即,指定特定服务)变化至输入/输出签名到服务类别的范围内。可以利用该位置的服务的SSD动态产生用于指定该条件的UI。
图62示出保存窗格6200。
TCC II,任务计算客户机(TCC)II
以上描述的TCC I是TCC的一个实施例。TCC II是TCC的另一个实施例。在不同设备内运行用户界面和TCC II的其他TCC模块。这样就可以使诸如PDA(个人数字助理)、移动电话或web浏览器启动的任何设备通过多种通信链接访问TCE,而无需在该设备上安装TCC。
TCC II是对希望使用任务计算服务、但是又没有安装在其客户机设备上的TCE的用户设计的。TCC II较低了使用TCE的要求,因为它仅需要web浏览器。
作为TCC的实施例,TCC II具有服务发现、服务组成、服务构建以及执行服务的全套模块。最重要的差别是,在用户设备上运行TCC I,而在诸如FNS的单独设备上运行TCC II。TCC II具有内部web浏览器。用户连接到web浏览器以检索服务信息和消费服务。
图63示出TCC II 6300的角色。一方面,就象TCC I 4400一样,“TCCII”6300发现“任务计算服务”6304并组织SSD 1604,另一方面,“用户设备的web客户机”6302与TCC II 6300对话,并共享任务计算环境(TCE)的所有好处。
SSD实施例
对于SSD(语义服务描述),我们可以依赖类似于DAML-S和OWL-S的标准。对于SSD支持的多种自然语言,语义服务描述可以使用统一字符编码或特定自然语言编码以实现以一种语言进行描述。语义服务描述可以使用统一字符编码或可以处理多种自然语言编码的某种编码,以在一个SSD内具有多种自然语言的描述。对于基于XML的语义服务描述,可以对希望多种自然语言中具有的标记使用“编码”属性。利用相应自然语言,重复具有不同“编码”属性的标记。
图64示出SSD支持的多种自然语言的示例6400。
对于TCC,TCC可以使用他或她自己的语言,通常是其设备的OS上的选择的自然语言。这样可以使访问同一个TCE的每个用户可以根据选择的自然语言对TCE具有不同“查看”。
SSD高速缓存
该SSD高速缓存保持SSD用于公知的服务、远程服务、或宏(先前保存)服务。用于公知服务的SSD是用于不支持提供其SSD的公知服务的SSD。用于远程服务的SSD是用于用户一次性或经常使用的远程服务的SSD。用于宏服务的SSD是用于在保存窗格保存的或者从其他用户或系统信息中心库获得的宏的SSD。
SDS实施例
接着,我们将给出语义描述服务(SDS)实施例。服务是用户感兴趣功能性的抽象概念。这种功能性通常至少有3个不同来源:设备、应用程序以及通过web的e服务。这3个来源是松定义的类别,因为这些类别的边界非常容易变化。一般的说,起源于设备的服务与该设备用于传送的核心功能性有关;例如,电话(设备)的主要功能性是进行电话调用(服务)。同样,起源于应用程序的功能性与在计算设备上执行的计算应用程序有关;例如,个人信息管理(PIM)应用程序的功能性包括存储和检索人们的联系人信息。最后,e服务功能性与在某个远程服务器上执行并通过访问web、在用户的局域网络的边界之外传送该功能性的web服务有关。这种大致分类仅是用于区别各服务的性质的一种粗略方式。通常情况是,接着描述的服务属于多种类别。例如,在用户在家期间使用与用户的家庭立体声音响设备有关的视频流服务时,它通常是设备服务,而在用户在工作期间使用它以将歌曲从他的计算机传送到他家的立体声音响设备供其同房间的人监听时,还可以将它看作e服务。
还应该注意这些区别如何不固定;制造商提供智能消费设备,通常具有网络接入能力(例如,网络电器),软件公司开发试图提供消费设备型功能性的应用程序(MICROSOFT开发的用于观看DVD或听CD的MediaPlayer)。值得注意的是,在任务计算过程中,这种功能性的起源与用户无关,因为用户仅对为了确定任务而组合这些功能性感兴趣。
基于设备的服务
通过显示器观看
该服务将web页面或各种文档显示在诸如投影仪、等离子体显示器、LCD显示器的设备上。它接收URL作为输入,并对用户提供控制窗格。在利用指向网页或文档的URL调用它时,显示设备显示该网页或文档。通过控制窗格,用户可以控制显示设备。通过其控制窗格,她可以上移和下移该网页、跟踪到新网页的链接、装载新URL等。
通过多种设备观看
该服务将网页或各种文档显示在诸如投影仪、等离子体显示器、LCD显示器的多种设备上。各设备显示完全相同的内容。各设备可以是在地理位置上分散开的,只要它们通过具有服务运行位置的网络连接在一起即可。服务接收指向网页或文档的URL作为输入,并对用户提供控制窗格。在利用URL调用它时,多种设备显示网页或文档。同时,用户可以通过控制窗格控制该设备。通过控制窗格,她可以上移和下移该网页、跟踪到新网页的链接、装载新URL等。
地图观看器
(A)该服务利用标记的位置在其显示器上显示用户指定位置附近的地图。它接收位置或地址作为输入,并对用户提供控制窗格。(B)该服务利用标记的位置在其显示器上显示固定位置或地址附近的地图。它不接收输入,而对用户提供控制窗格。
地图路线选择器
该服务示出其显示器上两个位置之间的路线。该服务接收一个或者两个位置或地址,或者位置列表或地址列表,并对用户提供控制窗格。该服务提供(A)服务的固定位置或地址与用户指定位置或地址之间的路线,(B)两个用户指定位置或地址之间的路线,或(C)显示这种表中所有位置或地址之间的路线(任选将固定位置用作开始点或结束点)。有时,对于服务提供商,将开始位置或目标位置限定到服务的固定位置非常重要,因为它禁止无限制地将该服务用作一般绘制地图服务。
楼层/校园/建筑/博物馆/商场/医院地图观看器
除了该地图在其地图中具有的结构比公路地图具有的结构多之外,该服务与“地图观看器”基本相同。
实例提供服务
该服务提供语义实例。(A)它接收输入,并产生指向该语义实例的URL作为输出(同一个机器上的web服务器通常又对该语义实例提供服务)。(B)它不接收输入,而产生语义实例(例如,OWL/DAML实例)作为输出。该服务可以用于提供与诸如在楼层上联系人人们或预定特殊房间的遍布环境有关的语义实例。该服务还可以用于提供同一种语义实例列表,例如,联系人或日程安排。
打印
该服务打印URL指定的文件。(A)它接收URL,而且没有输出。在利用URL调用它时,它采用固定格式打印出由给定URL指定文件的固定数量的副本。(B)它接收URL,而且没有输出。在利用URL调用它时,该显示器显示打印选项框,以便用户设置打印参数,然后打印出给定URL指定的文件。(C)它接收URL,并产生控制窗格作为输出。在利用URL调用它时,它返回控制窗格,以便用户设置打印参数,然后,打印出给定URL指定的文件。
打印名片
该服务利用给定联系人打印一张或者多张名片。(A)它接收联系人,而没有输出。在利用联系人调用它时,它以固定格式印出该联系人的固定数量的名片。(B)它接收联系人,而没有输出。在利用联系人调用它时,显示器显示选项框,以便用户对名片打印设置参数,然后印出相应名片。(C)它接收联系人,并产生控制窗格作为输出。在利用联系人调用它时,它返回控制窗格,以便用户设置参数,然后印出相应联系人的名片。
传真
该服务将URL指定的文件传真到指定的电话号码。它接收一个或者多个URL和一个电话号码作为输入,而不产生输出,或者产生用户用于控制该服务的控制窗格作为输出。在利用一个或者多个URL和电话号码调用它时,它将印出的图像传真到指定的电话号码。在返回控制窗格时,用户可以控制如何发送该传真,或者对该传真的指定封面。
播放视频服务
该服务允许用户播放视频。它接收一个URL作为输入,它或者不产生输出,或者产生控制窗格作为输出,以便用户控制该服务。在调用它时,它播放URL指定的视频文件。在返回控制窗格时,用户可以控制如何在设备上播放。
播放音频服务
该服务允许用户播放音频。它接收一个URL作为输入,它或者不产生输出,或者产生控制窗格作为输出,以便用户控制该服务。在调用它时,它播放位于URL的音频文件。在返回控制窗格时,用户可以控制如何在设备上播放。
数码相片帧
数码照片帧接收图像文件作为输入,并返回控制窗格作为输出。它在其显示器上显示图像文件(通常以照片帧形式),并允许用户利用控制窗格控制取向、图像缩放比、打印图像等。
位置确定
该服务提供设备的当前位置(因此,提供使用该设备的用户的当前位置)。它接收特定服务参数,并产生位置。参数可以是WLAN卡的MAC地址,或者是接入点MAC地址和其信号强度对的表。在调用它时,它产生位置,例如到位置本体的线路。
目录发布程序
该服务发布一组对象:文件、联系人、日程安排、地址等。作为语义服务,它不要求输入,而返回对象(例如,文件、联系人、日程安排、地址等)作为相应输出。在调用时,它允许用户从对象组中选择一个对象,然后返回用户的选择。
库(事务/服务)
该服务允许用户根据对象或作为其输入的给定的SSD动态建立SDS,以与其他TCE用户共享,或者供之后它自己使用。在调用该服务时,用户可以使用控制窗格设置将由库服务新设置的口令、有效期、调用数的限制、使用的发现机制以及SDS的其他特性。
通常,库服务在3种不同方式下有帮助。
首先,在用户建立涉及遍布环境的特定任务,然后希望在该环境下使用语义服务组成表示的任务时,用于服务的库非常有用。任务本身是服务。利用本地服务选择器(Local Service Selector)和本地拷贝服务(Copy Service Locally)以及服务库(Service Bank),可以容易地实现这种情况。通过使服务仅接收具有诸如收费/免费、估计执行时间以及服务提供商的特定特性的服务,可以设计服务库,。
使用库服务的第二种方式是,通过利用选择的或缺省服务发现机制提供SSD作为输入,建立SDS。
最后,用户通过库服务可以保留文件、URL、联系人、日程安排、服务以及涉及该环境的其他语义实例。建立库以利用单独服务提供每个实例,或者提供一个或者多个列表中的同样类型的所有实例。在服务可以具有多个列表时,用户可以建立用户附加的实例的列表,或者用户对现有列表之一附加实例。利用这种类型的服务,例如,用户可以在会议室内保留表示文件,在该会议室内经常要使用该表示文件。或者,在一个会议结束并将下一个会议的日程安排插入日历程序时,在建立下一个会议之后,用户可以在该会议室内对进入该会议室的其他用户保留该日程安排。(在这种情况下,如果所使用的日程安排库被连接到该会议室内的日程安排管理系统,将提高使用率,该日程安排管理系统具有可远程访问界面。)
在输入是“文件”对象时,可以建立库服务,以便在本地拷贝该文件,并由运行库服务的同一个机器提供该文件。
为了具有更高的使用率,库可以与某些相关后端系统,例如,文件库的文件系统和联系人/日程安排库的联系人/日程安排管理软件组合在一起。
该服务还是SDSCM。对于库服务的SDSCM方面,可以参考“SDSCM实施例”中的库描述。
图65示出库服务的示例6500。
电话拨号器服务
它接收电话号码作为其输入,而什么也不返回。在被调用时,它将通过用户的电话设备(可以是模拟/数字/VoIP)拨号。
无线/有线TC存储器
最好以当前的小型USB存储器形式因数实现它,但是可以以任意形式实现它。它包括(1)网络接口(2)[任选]文件夹发布服务(3)[任选]在文件夹服务中保存(可能是诸如图像或音频的特定文件类型)(4)[任选]库服务。服务(1)至(3)可以具有诸如图像或音频的特定文件类型,或者它们可以对不同文件类型提供单独服务。
网络接口可以是以太网(有线)网络接口、无线LAN网络接口、蓝牙网络接口或红外线网络接口。对于无线LAN网络接口,它可以用作接入点,或者它可以处于ad-hoc模式,以便其他设备可以连接到该网络上(以信息基础设施模式或ad-hoc模式),从而与该设备相连。对于无线LAN网络接口,它可以尝试连接到它发现的网络,或者可以具有简单接口(在设备本身上或者通过无线),以对假定该设备所连接的网络的SSID和/或WEP密钥进行配置。
拷贝到可移动存储器上
该服务允许用户将文件拷贝到诸如软盘、CD-R/CD-RW、DVD-R/-RW/-RAM/+RW、存储卡、USB存储器的可移动存储器上(通常是收费的)。它接收一个或者多个URL作为输入,而不产生输出,或者产生控制窗格作为输出,以便用户控制该服务。在调用它时,它将URL指定的文件拷贝到可移动存储器上。在返回控制窗格时,用户可以控制如何进行拷贝。(例如制备音频CD、照片CD、简单数据光盘)。
电子邮件处理器(Emailer)(遍布)
该服务允许用户将电子邮件发送到指定的电子邮件地址。它接收电子邮件地址作为输入,而没有输出。在利用电子邮件地址调用它时,它弹出对话框,以允许用户输入/编辑消息,并将该消息发送到该电子邮件地址。
以下是电子邮件处理器(Emailer)(遍布)的另外两个可能实施例:(A)它接收电子邮件地址作为输入,并产生URL作为输出。在利用电子邮件地址调用它时,它将URL返回允许用户编辑并发送电子邮件的网页。(B)该服务具有它自己的显示器和诸如键盘和鼠标的用户输入设备。它接收电子邮件地址作为输入,而没有输出。在利用电子邮件地址调用它时,该显示器在其显示中显示允许用户编辑并发送电子邮件的窗口。
基于应用的服务
内部服务
为了实现最高效率,对于TCC I,在内部实现以下服务。
列表选择器程序
该服务允许用户从同一种实例的列表中选择项目。该服务还可以使用户根据一个或者多个属性对实例进行排序。
属性选择器程序
该服务用户从实例中选择一个属性(或特征)。还可以利用属性调用该服务,以从其中进行选择。在后者情况下,无需用户干预,就可以执行该服务。
你的输入
根据任意对象的本体,该服务允许用户输入该对象的属性值,并利用这些值产生实例。可以执行该服务,以便它通常与其他实例提供服务一起用作提供同一种实例的服务。
实例观看器
该服务允许用户检验并修改该实例。它还可以用作调试工具。由于它具有用于输入和输出的同一个签名,所以可以将该服务插在任意服务之间,或者将该服务附加到尾部。
本地服务
下面的服务是为了实现最高效率与TCC I运行在同一个机器上的应用程序。作为Window OS中的环境菜单、任务菜单中的项目的一切均可以构成任务计算环境中的本地服务。下面列出一些本地服务。
本地实例选择器
本地实例选择器是允许用户选择计算设备的一个或者多个本地实例,并使这些实例可以用作语义描述实例。本地实例选择器包括但并不局限于类属本地实例选择器、本地文件选择器、收藏URL选择器、联系人选择器、日程安排选择器、地址选择器以及本地服务选择器。
类属本地实例选择器
类属本地实例选择器允许用户选择计算设备本地的任意本地可用语义实例。通过将计算设备的所有其他可用本地实例选择器组合在一起,可以实现该服务。
本地文件选择器
该服务允许用户选择本地文件,并通过本地web服务器,全局显示该服务。它不接收输入,而产生URL作为输出。在调用它时,它弹出一个对话框,以允许用户选择本地文件、将该文件拷贝到web服务器上,将该URL返回该文件。
收藏URL选择器
该服务允许用户从收藏文件夹(或任意文件夹)中选择URL,并提供URL。它不接收输入,而产生URL作为输出。在调用它时,它弹出一个对话框,以允许用户从收藏文件夹(或任意文件夹)中选择URL,并返回URL。
地址选择器
该服务允许用户选择地址,并通过本地web服务器,全局显示该服务。它不接收输入,而产生URL作为输出。在调用它时,它弹出一个对话框,以允许用户从例如你的联系人管理系统中选择地址,将该信息作为语义实例拷贝到web文件夹,将该URL直接返回语义实例或实例。
联系人选择器
该服务允许用户选择联系人,通过本地web服务器,全局显示该服务。它不接收输入,而产生URL作为输出。在调用它时,它弹出一个对话框,以允许用户从例如你的联系人管理系统中选择联系人,将该信息作为语义实例拷贝到web文件夹,将该URL直接返回语义实例或该实例。
日程安排选择器
该服务允许用户选择安排的事件,并通过本地web服务器,全局显示它。它不接收输入,而产生URL作为输出。在调用它时,它弹出一个对话框,以允许用户从例如你的日程安排管理系统中选择日程安排,将该信息作为语义实例拷贝到web文件夹,将该URL直接返回语义实例或该实例。
本地服务选择器
该服务允许用户从高速缓存、本地数据库、文件系统或计算设备本地的任何位置中选择SSD,并使SSD描述的服务可以用作语义实例。
语义实例拷贝器
语义实例拷贝器获得其他服务产生的语义实例,并在本地将它们拷贝到适于这种类型的语义实例的应用程序。在用户干预情况下,或者在没有用户干预情况下,它均可以执行其功能。在前者情况下,弹出的窗口或某个其他用户界面允许用户修改对象、确定如何和在何处拷贝该实例,或者取消拷贝过程。语义实例拷贝器包括但并不局限于:类属语义实例拷贝器、本地拷贝、对收藏附加URL,插入联系人表、插入日程安排表以及在本地拷贝服务。
类属语义实例拷贝器
类属语义实例拷贝器允许用户将任意语义实例拷贝到正确的应用程序。通过将计算设备上的所有其他可用语义实例拷贝器组合在一起,可以实现该服务。
本地拷贝
该服务允许用户保存URL指定的文件。它接收URL作为输入,而没有输出。在调用它时,它弹出一个对话框,以允许用户选择地方保存URL指定的文件。
对收藏添加URL
该服务允许用户将URL保存到收藏文件夹内。它接收URL作为输入,而没有输出。在调用它时,它弹出一个对话框,以允许用户利用用户指定的名称将URL保存到收藏文件夹内。
插入联系人列表中
该服务允许用户将联系人插入联系人管理软件(例如,MICROSOFTOUTLOOK)。它接收联系人作为输入,而没有输出。在利用联系人调用它时,它将该联系人插入联系人管理软件中。它可以选择弹出一个对话框,以允许用户检验并修改联系人信息。
插入日程安排列表中
该服务允许用户将日程安排插入日程安排管理软件中(例如,MICROSOFT OUTLOOK)。它接收日程安排作为输入,而没有输出。在利用日程安排调用它时,它将该日程安排插入日程安排管理软件中。它可以选择弹出一个对话框,以允许用户检验并修改日程安排信息。
在本地拷贝服务
该服务允许用户将作为语义实例的其他服务提供的SSD拷贝到高速缓存、数据库、文件系统或计算设备本地的任何位置。
电子邮件处理器(本地)
该服务允许用户将电子邮件发送到指定的电子邮件地址。它接收电子邮件地址作为输入,而没有输出。在利用电子邮件地址调用它时,它弹出一个对话框以允许用户编辑并发送电子邮件。
URL观看器(本地)
该服务允许用户浏览URL指定的网页。它接收URL作为输入,而没有输出。在利用URL调用它时,它弹出对该网页设置的浏览器,并允许用户在本地浏览它。当前,我们利用为该服务指定的URL,调用MICROSOFTINTERNET EXPLORER。
位置确定(本地)
该服务提供计算设备的当前位置(因此,提供使用它的用户的当前位置)。它不接收输入,而产生位置。在调用它时,它产生位置,该位置是根据小信标(mini-beacon)、GPS等链接到位置本体的链接。(客户机侧位置确定技术)。在被调用时,根据用户输入的位置确定服务弹出一个对话框或地图,以允许用户指定位置。
数据库发布程序(从表格、项目)
通过在数据库中指定表格的一部分或整个表格,根据该表格的模式,数据库发布程序自动建立本体,并发布允许用户从数据库中该表格的一部分或整个表格中选择对象的语义服务,然后,输出选择的对象作为输出。
或者,通过指定数据库中表格的项目,根据表格的模式,该数据库发布程序自动建立本体,并发布语义对象提供服务,在执行该语义对象提供服务时,该语义对象提供服务产生选择的对象作为其输出。
基于web的服务(E-服务)
地点信息
该服务提供关于给定位置的信息,例如位于房间内的设备、最靠近浴室,谁占据该房间。它接收该位置作为输入,并利用该信息产生到该网页的URL作为输出。
宿主服务
宿主服务是对TCC II特殊设计的服务。它们包括“上载文件”,其诸如“上载音频文件”、“指向输入的URL”、“通过浏览器观看”的变体,其诸如“通过浏览器播放”、“上载文件”以及“指向输入的URL”的变体允许用户从用户设备和URL上载文件,并分别返回它们作为输出。宿主服务使用服务控制UI实现它们的功能性。
“通过浏览器观看”接收“文件”,而什么也不返回。与TCC II相同,“通过浏览器观看”简单允许用户通过同一个浏览器观看文件。利用UI,将“通过浏览器观看”实现为同步web服务。它重定向服务控制UI以访问输入的URL。
远程服务
通常,通过进行语义服务搜索,将远程服务(在此,利用该远程服务,我们指利用WSDL/SOAP界面实现的web服务)引入任务计算环境。但是,在某些情况下,无需任何语义服务描述(SSD),就可以建议远程服务。在这些情况下,通过经过改变其WSDL URL的扩展名,或者搜索其SSD的公知网点,尝试下载SSD,TCC I试图获得其SSD。
公知服务
对于公知的服务,我们可以在本地或某个已知网点保持其语义服务描述。在我们遇到这些服务(UPnP、WSDL/SOAP等)时,我们可以使用这些SSD,以将这些服务引入我们的任务计算环境中。
TCC I可以在其高速缓存具有诸如AMAZON.COM或GOOGLE的公知远程服务的SSD,并允许用户将这些服务用作其他SDS。或者,如果TCC I遇到没有SSD的WSDL/SOAP服务,则通过动态建立SSD,它仍可以使用该服务。
SDSCM实施例
在该章中,我们将给出语义描述服务控制机制(SDSCM)实施例。语义描述服务控制机制(SDSCM)是通过包括但并不局限于以下内容,允许某个实体(可以是TCC的用户或任意一个软件)管理该服务的机制:
建立服务
改变用于要使用的服务的发现机制
保持服务
删除服务
修改服务参数包括:
设置服务超时
设置对服务的访问控制
设置服务的可用性(本地、全局、验证用户等)
可以以包括但并不局限于:通过用户与SDSCM提供的用户界面进行交互,通过本地API以及通过服务调用机制的多种方式,来访问SDSCM。与SDSCM交互的最后一种方法使得SDSCM被处理为具有适当SSD的SDS。
以下列出SDSCM的一些实施例。
PIPE(遍布实例提供环境)
PIPE是用于发布和管理语义实例和语义服务的工具。可以将PIPE本身看作SDSCM,因为为了建立并管理SDS,它提供web服务API。它具有两个主要功能。
首先,作为管理工具,PIPE对用户提供对实例和服务进行综合控制。
图66示出PIPE管理界面的屏幕画面6600。用户可以将服务/实例从遍布变更为本地,反之亦然。或者,保持一些服务/实例。如果服务/实例处于保持状态,则没有用户可以发现它,除非之后恢复该服务/实例。在PIPE中,可以对实例/服务分配任选有效期。PIPE周期性地删除期满的实例/服务。最后,可以对各实例确定任选调用限制。如果将该限制赋予实例,则在其他服务每次检索该实例时,该数值减1。在该数值到达0时,PIPE将删除该实例。
其次,它起作为其他SDSCM的核心的作用。在PIPE以及诸如白洞(White Hole)或通过该界面的图像服务、发布服务/实例的其他应用程序中,确定Web服务界面。
在许多服务中,需要动态改变其SSD内的IP地址。另一方面,如果TCE部件可以适应自动变化的IP地址,则用户可以具有零配置TCE。
对于提供许多语义对象提供服务的PIPE,这非常重要。PIPE运行用于监视可能IP地址变化的单独线程。例如,利用其中利用令牌表示文件中出现的IP地址的模板文件表示SSD。在初始化PIPE时,利用实际IP地址代替令牌。在检测到IP地址发生变化时,再装载窗格,并利用新IP地址产生最新SSD。
另一种方式是仅具有模板。仅在接收对SSD的请求时,它才检验IP地址,然后,利用IP地址产生新SSD。
应用程序的语义实例剪贴(Scraper)程序
该服务对在用户当前使用的应用程序内建立的语义实例进行剪贴,并使它们在本地和全局可用(或者使它们可以用于限制的人们/设备)。可以根据包括但并不局限于:一些语义描述,或文本和对象的句法分析,剪贴语义实例。可以进行剪贴,以便即使在用户继续其他活动时,它仍可以将该语义实例高速缓存一段时间(例如,一天)。在一些应用程序中,对于包括但并不局限于以下内容,实现剪贴程序:
web浏览器
电子邮件处理器
电子表格
文字处理器
数据库
表示
剪贴程序将调用PIPE的API以发布被剪贴的语义实例。
白洞(事务、服务)(white hole(Thing,Service))
白洞服务利用拖放界面发布对象和服务。可以将OS和应用程序中的对象,例如联系人管理软件中的文件、URL、联系人项目、日程安排管理软件中的日程安排项目动态地放到白洞上。该白洞将分析放入的对象类型,然后产生相应语义实例。在放入的对象是SSD文件或到SSD的URL的情况下,它将分别使用SSD。
它具有自己的管理界面(基本上是PIPE),以便发布并管理服务。除了其他参数外,它还允许用户设置使项目无效和/或被移除的缺省时间。在其中该服务使用户能够动态交换信息的P2P(对等)环境下,白洞非常有用。
图67示出白洞拖放界面6700。
公共联系人/日程安排/文件目录
通过显示服务,该SDSCM允许用户设置全局可用的联系人或日程安排或文件目录。在公共场所内,SDSCM是白洞SCSCM以及联系人/日程安排/文件管理软件的特殊用途。缺省情况下,服务在特定时间周期之后消失。该服务最适于诸如商店街、高大建筑以及校园的公共场所。
语义实例库服务
文件库
URL库
联系人库
日程安排库
地址库
服务库
这种服务允许用户存储该环境下的一个或者多个文件、URL、联系人、日程安排、地址、服务或任何其他语义实例。它接收一个或者多个URL、URL、联系人、日程安排、地址、服务或其他语义实例作为输入,而不产生输出,或者产生控制窗格作为输出,以便由用户控制服务。在调用它时,它拷贝该实例,并建立提供该实例的服务。它利用PIPE发布这些实例提供服务,并允许其他人使用PIPE管理这些新建立的服务。
该服务还是SDS。请参考对库服务的SDS方面的“SDS实施例”中的库所做的说明。
通用库
该通用库服务是所有语义实例库服务中的最一般形式。该服务匹配产生任何语义实例的任何一个服务。(该服务接受作为所有对象的超类的“事务”)。在调用它时,它拷贝该实例,并提供该实例以及用于实例提供服务的SDS。在作为内部服务或本地服务运行它时,它可以起语义实例高速缓存的作用。
该通用库并没有消除对诸如文件库、日程安排库的更专用库的需要,因为在许多环境下,并不始终要求允许用户保留该环境下的任意类型的对象。
图像/音频/视频服务控制
这种类型的SDSCM允许用户建立多媒体内容,而SDSCM可以自动使该多媒体内容用作这些多媒体内容的语义对象提供服务。或者,SDSCM允许用户使该多媒体内容可用,并对如何使它们可用进行控制。
例如,扫描SDSCM允许用户扫描他或她的材料,并将扫描的数据显示为图像实例提供服务。该显示允许用户设置扫描参数并尝试进行扫描直到他或她满意。在该结果满意时,该用户可以使该数据普遍可以用于例如在本地拷贝数据(通过与“本地拷贝”服务组成在一起)。通过该显示,用户可以设置临时口令。该服务可以根据页数或数据量对用户计费。
作为扫描SDSCM,数码相机和摄像机SDSCM可以建立图像提供服务和视频实例提供服务。或者,数字录音机SDSCM可以建立音频实例提供服务。
可拆卸介质发布器
在用户将可拆卸介质插入或连接到计算设备上时,该可拆卸介质发布器询问用户,该用户是否希望通过发布可拆卸介质上的文件。例如,用户将音频CD插入计算机,然后,可拆卸介质发布器询问该用户,她是否希望发布音频CD上的音频文件作为音频文件提供服务,允许其他人在音频CD上选择音频文件并产生选择的音频文件作为输出。其他可能性包括:(1)用于在用户将USB数码相机插入计算机时,发布图像提供服务的可拆卸介质发布器;(2)用于在用户将存储卡连接到计算机时,发布特定类型文件提供服务的可拆卸介质发布器。对于(2),可以建立该可拆卸介质发布器,以便如果在存储卡内发现多种类型的文件,则该可拆卸介质发布器发布多种类型的文件提供服务。
可以建立可拆卸介质发布器,以便在它检测到某个可拆卸介质插入或者连接到计算机时,它自动产生(各)发布服务。
传真接收机
在接收传真时,传真SDSCM产生图像、文件或传真数据实例提供服务。它建立用于多页的多图像实例提供服务,或者建立用于例如PDF文件的文件实例提供服务,以包括所有传真页,或建立传真数据专用的传真数据实例提供服务。它可以与OCR(光学字符识别)服务组成在一起,以对包括发送者的信息、头衔、备忘录等的传真数据产生更结构化的对象。
控制窗格切换
控制窗格切换是用于将服务控制用户界面从一个用户切换到另一个用户的SDSCM。这可以应用于具有控制窗格的任何SDS,例如“通过显示器观看”、“地图观看器”、“地图路线选择器”。该服务在其控制窗格上设置“切换”按钮。在用户点击该按钮时,建立用于对控制窗格提供URL的新服务(或多个新服务)。其他(各)用户可以检验新建立的服务,并将它与某些观看服务组成在一起,以显示该控制窗格,然后,控制原始SDS。
可以设计新建立的服务,以便在经过特定调用次数之后,就不出现它,从而限制访问该控制窗格的人数。(通常设置为1)。还可以将服务设置为经过特定时间周期后期满,以便它仅在给定时间周期内有效。可以建立它,以便原始用户使用的控制窗格自动关闭,或者询问该用户她是否希望关闭它,而且如果应答为是,则关闭它,或者如果应答为否,则保持它。
使用情况的预排工作(Walkthroughs of Use Cases)
接着,我们将利用TCC I描述任务计算使用情况。
在预排工作中,存在文件提供服务、日程安排提供服务以及联系人提供服务。它们是本地或遍布实例提供服务,它们分别提供文件、日程安排以及联系人。
办公室
让我们假定读者是一位销售人员,并在它们的会议室第一次遇到Bob及其小组。允许你连接到对访问者设置的无线网上。你的TCC I发现该会议室内存在许多服务。你去操作“组成窗格”。
商务卡交换
商务卡交换=联系人提供服务+插入联系人列表
TCC I发现运行在Bob的PDA上的Bob的“联系人提供服务”和运行在你的PDA上的“插入联系人列表”的组成。你认为Bob对你的商务非常重要,因此你就按下“执行”按钮以执行该组成。将执行Bob的“联系人提供服务”,TCC I获得其联系人。然后,TCC I利用他的联系人执行在你的PDA本机上运行的“插入联系人列表”。就在将“插入联系人列表”插入Bob的联系人之前,该服务对你弹出一个确认对话框,以检验服务将插入你的联系人管理软件中的信息。对于该服务,你按下“OK”按钮继续前进,然后,将它插入你的联系人管理软件。
表示
投影该表示=本地文件选择器+通过投影仪观看(URL观看器)
你启动你的产品表示。你使你的表示文件安装在你的PDA上。在会议室内,你使用“本地文件选择器”服务与“通过投影观看(URL观看器)”服务的组成。因此,你使你的表示投影到投影屏幕上,而使控制页面位于你的PDA上。利用该控制页面,你利用无线方法控制你的表示。不硬连接到VGA电缆,并按下正确的功能键。
留下该表示=本地文件选择器+文件库
如果没有问题,Bob要求你留下你的表示。当然,没有问题。你刚想,在上次你执行“本地文件选择器”时,应该建立了该表示文件的“文件提供服务”。无论如何,你要在会议室内执行“本地文件选择器”与“文件库”服务的组成。现在,可以从文件库提供的文件提供服务获得该表示文件。
打印使用说明书
打印使用说明书=收藏URL+打印(遍布)
Bob要求你对你们的产品提供更详细材料。你记着你们公司网站上有产品使用说明书,而且在你的收藏文件夹内,你有到该使用说明书的URL。你在会议室内执行本地“收藏URL”与“打印(遍布)”的组成。你取下在会议室内的打印机上印出的材料,将它交给Bob。
成员买书
买书=书提供服务+AMAZON.COM(众所周知的服务)
在开会期间,Bob向你介绍了一本新书。你在会议室内发现“书提供服务”,“书提供服务”对Bob的书提供书语义实例。你执行“书提供服务”与“AMAZON.COM web服务”的组成。即使AMZON.COM web服务不提供其SSD,TCC I仍具有该众所周知服务的SSD,而TCC I可以将AMAZON.COM web服务用作一个SDS。通过执行该组成,你可以检验关于该书的信息,而且可以购买它。
在该会议室内召开会议的日程安排
Bob和你安排在同一个会议室内召开下一次会议。Bob在其PDA的日程安排管理系统上建立日程安排项目。然后,他将该项目拖到“白洞服务”。
日程安排提供服务(白洞服务)+插入日程安排列表
你执行Bob的PDA上的“白洞服务”提供的“日程安排提供服务”与你的本地“插入日程安排列表”服务的组成。
日程安排提供服务(白洞服务)+日程安排库
与此同时,对于在该会议室内将“日程安排提供服务”用于下一次会议的其他人,Bob执行“白洞服务”提供的“日程安排提供服务”与该会议室内的“日程安排库”的组成,在执行后,“日程安排库”将提供“日程安排提供服务”。
利用白洞服务管理窗口,Bob停止“日程安排提供服务”。
获得到附近机场的路线指南
地址提供服务(遍布)+地图路线选择器
现在,我们准备好要走。Bob建议你执行你要去的机场的“地址提供服务”与“地图路线选择器”服务的组成。为了方便访问者,该会议室提供该地区内感兴趣地点的“地址提供服务”。你在该会议室内、提供地图路线选择器服务的LCD上看到从Bob的办公室到机场的路线。你利用你PDA的浏览器上的控制页面控制地图路线选择器。
以后表示
Bob做的表示=文件提供服务(文件库)+通过投影仪观看(URL观 看器)
在Bob之后对他公司内的其他成员说明你们的产品时,他使用你保留在会议室内的表示文件。他执行文件库提供的你的表示文件的“文件提供服务”与会议室内的“通过投影观看(URL观看器)”服务的组成,以给出该表示。
公共场所
下面的情况可以应用于诸如商店街、机场以及火车站的公共场所。在此,我们选择商店街情况。
你计划与朋友一起在节日进行购物。
保留备忘录
位置确定(本地/遍布)+L-便条
你已经等了你朋友15分钟。你确信你朋友最终会来的,但是你想找一个座位,然后喝一杯咖啡。因此,你执行该商店街提供的“位置确定”服务以及该商店街提供的“L-便条”服务,从而对你朋友留个便条。“位置确定”提供你的当前位置,将该当前位置送到“L-便条”服务以产生你的URL,从而在你的当前位置留下备忘录。
你留下用于告诉你朋友,你将在附近的咖啡馆等他的备忘录。
发现该备忘录
位置确定+(本地/遍布)+L-便条
之后,你朋友来了。但是你朋友未发现你在那里。你朋友执行“位置确定”服务和“L-便条”服务,以发现你留的消息并阅读它。
因特网服务台(internet kiosk)
阅读新闻=收藏URL+通过因特网服务台观看(URL观看器)
你到达该商店街附近的咖啡馆,要了一杯咖啡,坐在桌边。你发现在你所在的桌子上有一个因特网服务台。因特网服务台实际上是具有计算机的LCD。计算机被隐藏,而且为了不让人们把它搞乱,它既不设置键盘,又不设置鼠标。应该通过提供“通过因特网服务台观看(URL观看器)”的控制页面使用它。
你决定通过因特网服务台阅读新闻来消磨时间。你执行你的本地“收藏URL”与设置在咖啡馆内的“通过因特网服务台观看(URL观看器)”的组合。你从对话框中选择你收藏的新闻网站,在对话框中弹出“收藏URL”。然后,新闻网站出现在因特网服务台上。你利用你PDA上的浏览器上的控制页面控制该因特网服务台。
欣赏照片=本地文件选择器/白洞服务+通过因特网服务台观看 (URL观看器)
经过一段时间之后,你朋友出现了,连声道歉。你接受他的道歉。然后,你和你朋友开始谈论你上次旅游的情况。通过执行“本地文件选择器”与“通过因特网服务台(URL观看器)”的组成,你通过因特网服务台显示几张你的最佳照片。你在对话框内选择照片文件,然后,照片显示在因特网服务台上。
公用目录
然后,你和你朋友逛商店街。
公用联系人/日程安排目录+插入联系人/日程安排列表
你发现公用联系人/日程安排目录。你在目录中发现你希望进入的商场的联系人。你将它拖到白洞内。然后,联系人提供服务出现在TCC I上。你执行该服务和“插入联系人列表”服务,以将商场联系人插入你的PDA上的联系人管理系统中。
在该目录上你还发现一件感兴趣的事件。利用同样的步骤,你将该事件日程安排插入你的PDA上的日程安排管理系统。
10分钟之后(商店街经理已经设置缺省超时期间),服务消失。
商场联系人提供服务列表+列表选择器+插入联系人列表
另一种可能情况是与下面的情况类似。TCC I发现“商场联系人提供服务列表”。TCC I将“商场联系人提供服务列表”、“列表选择器”以及“插入联系人列表”的组成显示为“‘插入联系人列表’‘商场联系人之一’”。通过执行该组成,你得到弹出的对话框,以便你从该表中选择一个商场联系人。选择之后,你将该联系人插入你PDA上的联系人管理系统中。
楼层地图
位置确定(本地/遍布)+楼层地图
通过执行“位置确定”服务与“楼层地图”服务的组成,你发现你在该商店街内的位置。你获得对你的位置加了亮点的该商店街的楼层地图。
根据位置过滤服务
根据楼层,或者你所在的区域,你可以过滤服务。TCC I利用“位置确定”之一来过滤服务。TCC I将“位置确定”产生的“位置”的本体用于该过滤器所使用的级(例如楼层或区域)。你可以选择TCC I上对服务进行过滤的级。经过进行过滤,你在TCC I上就有合理数量的服务了。如果你选择区域级过滤,则你仅在你的PDA上获得区域或本地服务。
获得路线指南
地址选择器+地图路线选择器
购物之后,你和你朋友决定去你几个月前发现的一家餐馆。在你的联系人管理系统中有这家餐馆的地址,但是你不知道如何从商店街到该餐馆。幸运的是,你发现在其上具有“地图路线选择器”的因特网服务台,该因特网服务台是商店街为了方便访问者设置的。通过执行“地址选择器”和“地图路线选择器”的组成并在弹出的“地址选择器”对话框上选择该餐馆的地址,你在因特网服务台上发现该路线。
P2P
在该小节,我们将说明一些P2P情况。下面的情况不必进行因特网连接。它们应该通过WLAN和蓝牙的特定模式工作,而不会有任何问题。不访问本体的一个可能限制是,服务的组成仅局限于输入签名与输出签名完全匹配。它们可以通过把曾经使用过、经常使用和/或众所周知的本体本地保持在计算设备上来防止。
共享餐馆信息
白洞服务+插入联系人列表
你想与你朋友共享关于你最近发现的餐馆的信息。你将联系人项目从你的联系人管理系统拖放到你的PDA上的白洞服务上。然后,你朋友执行你的PDA上的联系人提供服务与你朋友的PDA上的“插入联系人列表”的组成,以将联系人插入他或她的联系人管理系统。
共享上次旅游中的照片
白洞服务+本地拷贝
你希望与你朋友共享上次旅游中的照片。在你的PDA上,你将照片文件从你的文件管理系统拖放到白洞服务上。然后,你朋友执行你的PDA上的文件提供服务与你朋友的PDA上的“本地拷贝”的组成,以将照片文件拷贝到他或她的文件系统中。
共享收藏的音乐
白洞服务+本地拷贝
你希望与你朋友共享你喜好的新发布的音乐。在你的PDA上,你将音乐文件从你的文件管理系统拖放到白洞服务。然后,你朋友执行你的PDA上的文件提供服务与你朋友的PDA上的“本地拷贝”的组成,以将音乐文件拷贝到他或她的文件系统中。
益处
任务计算对最终用户和开发商均提供了实质性好处。
最终用户
任务计算的主要受益者是最终用户。最终用户从任务计算受益,因为:(a)任务计算减少了使用当今的复杂环境所需的专业知识,(b)在执行复杂任务时,它们可以节省时间,以及(c)对于用户与遍布计算环境交互,任务计算是一种更自然、有效的方式。
任务计算试图重新定义用户如何与计算环境交互以及如何使用计算环境。任务计算的基本前提是,对用户提供可能处于用户当前环境中的任务,以帮助用户利用较简单任务,象搭积木一样,建立更复杂任务,并指导用户执行该复杂任务。一旦用户(或者由其他用户)定义了复杂任务,就可以再使用这种任务,非常象当今的流行应用程序中的宏。与宏(至少MICROSOFT OFFICE用户熟悉的宏)不同,积木任务以及获得的复杂任务可以跨越多个应用程序和多个计算平台(不是单个设备)。实际上,任务计算的一个目标是,用户不需要知道,也不需要关心所执行的实际组成任务,或者在何处(在哪个机器上)执行它们。任务计算的最终目标是,对用户显示用户可以特殊方式使用的资源(设备和服务)的简要说明(abstract view),以执行任意复杂性的任务。
以下我们可以对任务计算对最终用户的优点做个总结:
每天用于用户任务计算的计算不需要用户深刻理解她的计算环境和其内的可用资源。任务计算对用户显示用户当前环境中可能的和可行的可能性(要做的事务),并在建立并执行更复杂(而且可以再使用的)任务的过程中指导用户。
对于所有用户更节约时间
对于新手和高级用户,任务计算均可以节省时间,因为该系统(而不是用户)以与用户环境和对象一致的方式对应用程序之间的工作流和数据传送进行管理。此外,由于任务一旦被建立就可以再使用,所以用户只需一次性定义复杂任务。
遍布环境解决方案
所知晓的计算环境是遍布计算环境,其中充满了事先不被最终用户所知的设备和服务。此外,这种环境下的用户设备(用户使用它访问遍布环境的功能性的设备,例如,PDA、移动电话等)具有在物理上和功能上受限的用户界面,这意味着,作为“程序员”的用户的个人计算环境作法是不可行的。通过仅对用户显示可行的功能性,而且通过在这种环境下部分地自动执行复杂任务,同时通过减少用户监视任务执行过程并根据需要提供输入,任务计算以个人计算作法不能实现的方式,解决了遍布计算环境的特质问题。此外,因为任务计算的实时性意味着用户可以在他们规定和执行任务的时间“查看”什么可行,所以任务计算解决了遍布计算环境的动态性,其中设备和服务可以随时工作,而且最终用户通常事先对它们知之甚少。
开发商和商业机构
但是,最终用户不是从任务计算受益的唯一受影响方。商业机构和为他们开发应用程序的开发商是其他受益者。在过期的10年中,我们感受到web进步的革命性影响。Web包括各用户可用的大量系统和应用程序,同时,拥有并控制这些系统的商业机构必须通过开发商的劳动将这些(通常是后端)系统“引入”web。这种变革改变了用户与计算系统交互的方式,但是随着变革的进步,这是不完整的。用户与计算系统交互,进行搜索、输入、剪切和粘贴、处理和理解这些应用程序提供的任何输出。具有常识的用户理解如何对拖到任务或目标使用特定应用程序(web网站),或者正如通常发生的那样,为了实现一个目标,如何与多个web网站交互。该方法存在两个基本缺点:(a)用户被过度地涉及和依赖,以便执行复杂任务,如前面在本文件中描述的,以及(b)商业机构不能从将他们的应用程序引入web的投资中获得资金收益。因为呈现给用户的所有功能性被仔细地、但是不可改变地提供到web应用程序(用户面对着观看应用程序),使应用程序或系统成为web应用程序将产生一个静态系统。此外,为了建立新感兴趣的应用程序,该功能性不易与其他web应用程序(可能由其他商业机构拥有)的功能性组合在一起。最后,该设计时间(design-time)构建耗时,易出错并因此而非常昂贵。
最后一点是重点,因此需要对其做进一步详细说明。推广web服务的广泛努力部分地是因为当前web应用程序的局限性导致的。成功的web服务使得利用现有web应用程序,特别是将现有web应用程序的功能性表示为web服务,然后将它们用作新应用程序的积木,来开发新应用程序变得更加容易了。此外,从这些新“元”应用程序仍变成具有设计者将其设计到其实现过程中的功能性和可行性的静态应用程序意义上说,web服务是设计时间技术。
任务计算的目的在于,使功能性与提供它们的系统脱离关系,并丰富它们,以便对于更复杂的任务,用户以他们希望的任何方式将它们组合在一起。该新范例具有深远的效果,而且对于计算机工业提供最终用户功能性的过程有益。
图68示出任务计算之前的能力金字塔(Capability Pyramid)。通常,如图68中的金字塔所示,最终用户能力由建立在计算机(硬件和软件)平台顶部的应用程序提供。因为每个应用程序是对特定用途设计的,而因为它提供通过设计编程提供的用户功能性,所以扩展最终用户能力需要新应用程序(或设备),或者在这种应用程序与设备之间的定制连接。因此,少量提高最终用户能力要求在下面的层进行实质性投资(劳动力、金钱、时间),因为对用户提供的功能性与应用程序和这种应用程序运行的平台紧密相连。
该任务计算范例可以将大量附加能力(用户可以做的事务)传送到用户,而在对下面的层,即,设备和应用程序以及支持它们的平台提供的功能性进行很少量投资。
图69示出进行任务计算之后,相反的能力金字塔范例。将传统金字塔倒置的效果是,由于任务计算,所以利用给定的一组设备和应用程序增加用户能力的成本非常低。
任务计算的又一个益处在于,显著提高诸如web服务和UPnP服务的e服务的价值,因为它增加它们的用户基础和潜在用途。程序员/开发商建立Web服务,而且开发商将使用该web服务。为了利用它们建立应用程序,而且还因为缺少与这些e服务的功能性有关的较深语义并且其内部工作需要人检查,该约束与需要实质诀窍的程序设计界面的复杂性有关。此外,甚至简单发现(或者仅知道)这些e服务也是开发商驱动的过程,因为缺少语义。因为任务计算可以使这些e服务对于进行网上访问的所有人(以及任务计算客户机)中的非常广泛的用户基础可用,而且因为每个这种用户均可以以各种方式将这些e服务中的每个e服务组成在一起,所以与对这种e服务的开发商设计的e服务的任务不同的任务通常接受多个用户,并使用它们开发的e服务。
再参考图13和14,因为在现有web服务的顶部引入web服务的语义层抽象概念,而且因为构思、定义用户任务,而且就用户而论,在语义层执行,所以,升级提供该服务的实际服务(web服务),或者修改它,或者替换仅是以用户不察觉的方式,将web服务的语义描述对手头的新服务的连接进行变更;这种方式不存在与改变所采用的web服务相关联的成本。
这就是任务计算引起兴趣之处。与静态元-应用程序相反,通过实时建立并执行他们自己的任务,用户可以实时建立它们自己的“应用程序”。对于开发商和商业机构的益处在于,可以以各用户随心所欲的各种未计划方式,采用(使用)商业机构使其可以用作web服务的功能性。
应用程序
任务计算取决于语义描述服务和信息内容的能力。根据服务的语义描述,该系统使用户通过密集交互执行任务。在这个意义上,任务计算可以被看作与被称为语义web的web的下一次重复大致相关的语义启动应用程序。即使语义web的广泛成功取决于广泛采用关于任何事情“向那边(out there)”的本体,任务计算仍具有更适中的要求,因为不想使它成为完全自动的系统。
此外,任务计算还是一种解决新遍布(或普遍存在的)计算环境的复杂性的方法,这种计算环境由使其功能性可以用作服务的大量设备构成。
即使用户客户机设备的因特网连通性可以最完全采用任务计算,但是对于任务计算,不要求全时因特网连通性。受限连通性导致对系统产生受限本体可用性,并因此导致系统能力受限。但是,即使本体不可用,该系统仍提供某种功能性,因此,每当网络连通性不可用时,可以将经常使用的本体高速缓存或存储到用户设备内,并被TCC使用。
任务计算用途的一大类是遍布环境,因此利用无线装置的网络连通性非常有益(无线LAN特殊模式、无线LAN信息基础设施模式、蓝牙(PAN)、IR等)。
接着,我们将提供一些正在使用的任务计算的例子。我们假定,用户正在使用运行诸如TCC I的任务计算客户机的计算设备,或者正在使用可以与诸如TCC II的任务计算客户机交互的web浏览器。我们将对在不同环境和场所使用的任务计算例子进行说明。
家庭环境
许多家用电器提供可以利用较清楚、简单语义描述的功能性,因为这种功能性具有良好定义的域和有限范围。因此,家庭环境是任务计算的良好应用领域。随着家用电器变得更小,连接的家用电器的数量更多、更遍布(换句话说,“更不可视”),而且这些家用电器的数量不断增长,家庭环境下的用户发现(或找到)设备(或这些设备提供的服务)、以容易理解的方式对用户显示它们以及允许用户利用较少努力控制设备(或执行服务)变得非常难,这些就是任务计算的目标。
图70示出应用程序eHome 7000的例子。除了通常可能存在于家庭7002内的诸如具有TCE 7004的PC、家庭网关路由器(HGR)以及PDA 7006的传统计算设备外,其他多功能设备也连接到有线或无线网上。“家庭监视设备”7008、“视频适配器”7010以及“音频适配器”7012是3种这种设备。任务计算服务模块安装在它们内,这样将该设备变换为语义服务提供者。模块既可以是软件包,又可以是硬件附属装置。HGR可以是允许家庭用户互相共享文件,或者在所有者允许的情况下,与外部用户共享文件的共享文件服务器。在这种环境下,PC、PDA或移动电话7014可以用于进行任务计算。
在防火墙7016之外,存在遍布服务7018和动态服务入口7020,它们提供可以与用于任务计算用途的eHome服务组成在一起的附加服务。
家庭用户可以利用该任务计算环境执行各种任务。它们可以使用目录发布器以在其PC上层发布视频、音频以及图像目录,并在诸如TV和录音机的传统设备上播放它们。在家里,他们可以利用他们的PDA或移动电话遥控该设备。如果他们不在家,为了利用他们的PDA或移动电话遥控该设备,他们仍可以通过SSL反代理(reverse proxy)实现。他们可以将家庭监视设备视频作为视频文件存储到其PC内,并在之后,在家时,或者外出时,重新观看它。他们可以将约定或联系人存储到动态服务入口,以便之后随处使用它们。利用以上说明的任何一种任务计算发布机制,他们可以与他们的朋友共享图片。这些仅是家庭用户可以做的一些事务的例子。重要的是应该注意,在该环境下,未对所有这些任务进行编程。一旦该功能性可以用作服务,则该任务计算环境就可以使能所有这些任务。从用户的观点出发,利用用户使用的、设置在台式计算机、膝上型计算机、PDA或移动电话(无论位于家里还是位于家庭外部)上的任务计算客户机的用户界面,所有这些任务是可用的。
办公室环境
办公室环境是任务计算的另一个感兴趣应用。设想访问者(或雇员)在办公室中。我们假定访问者携带某种计算设备(或用于该事务的各种计算设备),例如膝上型计算机或PDA。在访问者在办公室内移动时,她的任务计算环境为她显示她可以根据其环境执行的事务表以及其他设备和服务的实时可用性。
可以利用各种服务“装备”该办公室环境本身,许多服务起源于办公室内的设备。
图71示出eOffice 7100的例子。在会议室7102内,运行“通过投影仪观看”、“音频播放器”、“数码照片像框”、“目录发布器”、“拨号器”、“通过因特网服务台观看”、“地图观看器和路线选择器”、“遍布打印”、“视频播放器”、“图像服务控制”以及许多“其他遍布服务”。在用户个人的设备上,安装TCE和某些“本地服务”。借助S-备忘录和白洞,将远程服务加入该环境。
再参考图71,通过网络7104,会议室7102连接到地图观看与路线选择器7106、通过服务台观看服务7108、拨号器7110、目录发布器服务7112、数码照片像框7114、音频播放器服务7122、视频播放器服务7124、遍布打印服务7126以及其他遍布服务7128。本地服务7120还与远程服务7130通信。
从用户的观点出发,重要的是请注意,用户事先不知道所有这些服务的可用性,而且她也不知道如何访问它们和使用它们。用户的任务计算环境负责自动识别这些服务、理解它们提供的功能、而且仅负责访问它们并使用它们。给定可用资源的情况下,用户负责定义她的任务。对于她,在特定环境下,资源与她可以执行的动作有关。办公室内的这些(原子)动作(作为服务执行的)包括:
使用观看服务
通过公用显示器
通过投影仪
查看对会议室安排的会议
将会议添加到会议室日程安排中
对于特定会议室对未来的访问者留下便条
将其他雇员或访问者的联系人信息附加到用户设备上的PIM应用程序中
查看当前位置附近的宾馆列表
查看当前位置附近的餐馆列表
在地图上观看选择的位置
观看本地机场的列表
为了对其执行某些动作,从用户设备选择文件或URL。
观看任意两个位置之间的路线
尽管这些动作(功能性或服务)中的一些动作的兴趣可能在它们自己的权利,但是任务计算的真正价值是,用户可以将这些服务的输入与输出组合在一起,以定义并执行更复杂动作(任务)。一旦用户准备好这样做,运行在用户设备上的任务计算环境负责对用户显示,可用动作(服务)可以被组合在一起(考虑“积木”比喻)并执行复合任务的可能方式。这些组成动作(任务)的例子包括:
通过公用显示器观看特定餐馆在地图上的位置,或者从当前位置到该餐馆或到机场的路线。
从用户的本地设备上选择要显示在公众可访问的显示器或投影仪上的URL或文件(例如,使用投影仪进行显示,而不必将电缆或导线连接到投影仪)
以类似于交换商务卡的方式,将会议室内共同参与人的联系人信息插入运行在她的PDA上的用户的PIM内。
将下一次会议的日程安排留在会议室内
重要的是请注意,这些更复杂任务都没有被设计到该系统内。用户负责利用她自己的设备上的用户界面“建立”这些复杂任务,同时与运行在她的设备上的任务计算环境交互。该环境负责执行用户定义的任务。该遍布环境下的可用服务的提供者(程序员)未考虑到他们可用的这些服务的特定用途。在取决于用户的希望和环境的实时(执行时间)中,这些服务用作实现更复杂任务的积木,用户将永远不必直接与这些服务交互。
公用设施(机场、火车站等)
在遍布环境下任务计算的另一个例子中,我们说明带着她的PDA或移动电话绕机场转的旅行者的任务计算经验。如图72所示,在机场内建立“遍布服务”,并将该服务连接到“网络”。让我们假定在该场所内下面的服务可用。
使用通过公用显示器的观看服务
查看在机场或周围区域内发生的事件列表
查看机场内的设施列表(休息室、餐馆、咖啡馆、吸烟区)
购买报纸或杂志
粘贴分类附加
为了对其执行某个动作,从用户设备选择文件或URL
在地图上观看选择的位置
观看两个位置之间的路线
观看航班信息(起飞、到达、入口)
关于地面运输的信息
如图72所示,遍布服务7018与网络7204交互,网络7024还与PDA7206(或移动电话)通信。
一旦用户或者通过web连接,或者利用诸如蓝牙或WLN的本地网络连接连接到网络,她就可以执行下面的任何一项任务:
通过公用显示器(旅行者选择的,或者由她的任务计算系统根据她的位置选择的)观看到旅行者的连接入口的方向指示(利用她的PDA上的、诸如MICROSOFT OUTLOOK的个人信息管理应用程序,或PIM中的旅行者的航班信息),
同样,观看到最近的吸烟区或休息室或咖啡馆或餐馆的方向指示,
通过公用显示器观看从机场到机场附近发生事件的位置的方向指示,并对她的PDA上的、旅行者的PIM应用程序附加正确条目。
图72示出应用机场7200的例子。图72示出客户机设备的屏幕画面7208。如果客户机设备含有TCE模块,则它们可以将它们的本地服务与遍布服务组成在一起。然而,这不是强制性的。
还应该注意,这些复杂任务均未被预编译,但是它们是用户利用该环境下的可用服务以及用户动态建立、而被用户的任务计算环境执行的服务,实时(利用可用资源)构建的。
零售区(咖啡馆、商店街等)
图73示出客户机设备的屏幕画面7308。此外,图73示出与网络7304通信的遍布服务7108,网络7304还与PDA 7306(或移动电话)通信。
与对机场的方式类似,在诸如咖啡馆、商店街等的遍布计算环境下,利用在上述例子中描述的概念,任务计算可以帮助最终用户完成复杂任务。例如,可以对咖啡馆应用同样的设置(图73)。单独、组成服务的提供者仍仅提供可以被用作积木的服务,以便用户构建并执行复杂任务。
携带PDA(或移动电话)的客户进入咖啡馆。咖啡馆提供的一些服务可以包括:
通过安装在座台上的显示器,或公用等离子体显示器,使用观看服务,
查看发生在特定咖啡馆或周围区域内的事件列表
对可能到该商场的朋友留下个人便条,
查看菜单,
购买报纸或杂志
粘贴分类附加
为了对其执行某个动作,从用户设备选择文件或URL
在地图上观看选择的位置
观看任何两个位置之间的路线
利用运行在她的PDA上的任务计算环境,客户可以尝试做以下事情:
浏览菜单并下订单,在她所在的桌子上传送该订单(因为TCE确定她的位置),
确定执行顺序、付款以及在订货准备好可以取时发出通知
浏览可用供应,并选择电子报纸以购买,然后在用户最终坐在任何位置时,在台式安装的LCD上显示该报纸。
发现某种事件的通告、根据判定参加一些事件,根据日程安排和指示检查该事件,而且最终将该事件附加到她的日程安排中,并将一个便条发送到朋友与她一起去,
对在她离开后可能到该咖啡馆的朋友留个便条,例如“我去‘UnitedArtists’电影院看‘Minority Report’了,如果你喜好请与我一起看”。她可以包括到电影院的方向和关于“Minority Report”日程安排。
在通过台式安装的显示器观看时,可以与朋友共享照片(存储在客户的PDA上),
在该咖啡馆内,为之后要到该咖啡馆的其他朋友保留照片。在最后的例子中,用户建立在他或她的PDA上提供照片文件的新服务,这样,他或她的朋友将执行该新服务以将它们拷贝到他们的PDA中。
为了这些任务中的一些任务,消费者可能必须访问在更广阔的因特网上提供的服务,但是仍可以从该咖啡馆位置进行访问。与以前相同,用户可以以以前未曾设计到系统内的方式,将可用服务用作复杂任务的积木。
台式机/膝上型机环境
遍布计算环境不是任务计算的唯一应用领域。任务计算还将用户在当今的个人计算环境下最终执行复杂任务的方式变换为用户使用她的膝上型机或台式机时的情况。
让我们对以下情况进行研究。正在浏览因特网的用户遇到感兴趣事件,说了一句她有兴趣参加。此发现之后,她手动执行以下操作:
在搜索引擎上输入位置名称(在这种情况下为宾馆),以查找该事件的准确地址。搜索引擎的一个例子是GOOGLETM
在浏览了返回的结果后,用户遇到具有关于该宾馆的进一步信息的网页,而在访问该宾馆的网页后,她可能发现该宾馆的准确街道地址。
掌握了该地址,她可以将该地址输入到因特网映射服务的搜索窗口内,以查看地图上的位置。
如果用户判定该位置便于参加,则她可以检查是否与她的台式机上的PIM应用程序内的日程安排冲突,然后,在判定参加该事件后,她可以回到映射服务,输入她的家庭地址或工作地址,并获得到该事件位置的消息指导。
该步骤之后,她可能将该事件附加到她的PIM应用程序,再输入事件信息,或许利用驾驶指南和/或报告通告。
最后,她希望使感兴趣加入该事件的同事注意该事件,并给他发送电子邮件,再附上该事件的描述以及到该事件的指南或地图。
甚至对于知道如何执行这一系列步骤的熟练用户,执行上述任务仍需要在在她的机器上调用应用程序以及将信息从一个应用程序传送到另一个应用程序方面花费相当长的时间(或许15-20分钟)。此外,在下一次用户遇到感兴趣事件时,她必须通过同样(或类似)的步骤,而且在执行复杂任务方面,花费同样长的不必要时间。最后,该手动过程易出错,这本身可能导致附加时延而且令用户不满。
让我们研究使用任务计算用户的经验如何不同(参考图74至76)。用户的任务计算客户机(TCC)被动运行,而用户忙于她的日常任务。
用户遇到感兴趣对话的网页。
在用户遇到一个事件的网页时,TCC识别网页上信息的性质(意义或语义),即这是一个特定类型的事件,识别事件的发起人、地址、时间等,对用户显示TCC可以代表用户执行的可能并可行的动作,如图74所示。
图75示出TCC识别在网页上描述了什么,并对用户建议一些提供当前内容和环境的可能动作。
用户可以选择发现该位置的地址的动作,这样支持TCC搜索因特网上含有该位置的地址的网页(宾馆名称)。
然后,TCC更新给出新信息的用户可用动作表,并动作给出新信息的、修改的动作表7500,如图75所示。
图75示出在用户首先进行选择以发现对话位置的地址后,TCC发现该地址并对用户显示新可能动作表。
然后,用户选择查看从她家到该位置的指南的动作,TCC实际显示有关位置表,以便如果可用,用户从诸如家庭地址、工作地址或用户的当前位置中进行选择。
如果用户判定该位置方便,则用户可以选择此时,在TCC显示的修改的屏幕上,将事件附加到她的PIM(如果与安排的其他活动不冲突)。此外,她可以选择包括将电子邮件发送到同事的动作(再从用户显示的表中选择)以及将所有相关信息附加到电子邮件7600,如76所示。
图76示出在用户在地图上进行选择以检验对话位置的地址的位置后,TCC显示具有选项的修改的动作表以保存此时之前的用户动作作为未来(再)使用的新任务。
在该处理过程的任何一部分,用户均可以进行选择以保存序列步骤和动作,作为未来使用的任务,因此,在下一次用户在同样或类似的情况下发现她自己时,组成任务(序列动作)可以变成TCC显示的可能并可行的动作表上的可用动作。
TCC仍负责执行每个这种动作,并在用户引导工作流的任何点对用户显示更新的可能并可行的动作。由于TCC能够“理解”网页的信息和可能动作以及它们的输入和输出的意义,所以结果处理过程比手动执行工作流快得多。
请注意,利用用户动作自动、动态改变该环境的情况。(新语义对象变成可用,因为用户导航web。)这些环境的变化触发了上述序列。
虚拟社区
利用任务计算,各个体可以构成虚拟社区,其成员可以共享与该社区有关的服务以及个人拥有的服务,例如,与拥有的设备有关的服务,和/或他们中的每个个体运行的服务,利用其他任意一般可用服务,每个成员可以为他们自己或者为该社区编写这些服务。
对该社区(或者由社区的成员,或者由提供或者支持该虚拟社区功能的实体)准备“社区服务发现”目录,而对其成员提供用于注册或去注册与该社区有关的服务以及个人拥有的服务,或者用于发现社区服务的界面。上述说明的发布与管理任务计算环境机制(SDSCM)可以用于共享社区内的服务。特别是,白洞可以用作用于注册诸如为社区提供服务的实例的图形用户界面。
用户可以编写并执行包括社区服务和每个单独用户可用的其他服务的任意组成。
企业应用程序集成(EAI)
即使它可能花费一段时间,但是我们仍相信任务计算可以逐渐应用于企业应用程序集成(EAI)应用领域。任务计算对EAI的一个可能应用是通过交互和使用服务语义,支持EAI应用的开发商。开发商具有较短的开发时间,而且对任务计算EAI应用的维护支持不易出错的服务集成过程和有效试错过程。
动态服务入口
“动态服务入口”基本上是一个语义web服务宿主。这可以是为了对其他免费商务提供附加值设置的、或者是为某个组织设置的室内服务等的收费服务。
动态服务入口的提供者准备一组在需要时可以利用某些访问控制的情况下,可以从网络上的某些区域访问的web服务。当然,用户可以访问这些服务的区域和情况越多,该用户就对用户越有用。
例如,动态服务入口的个人版可以是提供这种入口网站的功能性、被显示为语义web服务的“MY YAHOO !”的语义web服务版。在这种例子中,动态服务入口提供的服务可以包括:
●类属文档文件的远程文件夹服务
●对诸如音乐、图片、视频等的特定类型文件规定的远程文件夹服务
●用于联系人、日程安排等的个人信息管理(PIM)服务
●诸如天气、地图、金融信息、新闻等的信息提供服务
多媒体远程文件夹服务可以与在线购买数字内容组合在一起。例如,在用户购买一个音乐作品时,该音乐文件出现在音乐文件的远程文件夹上。
动态服务入口的提供者允许其用户具有这些web服务的语义服务描述(SDS)。提供者可以将附加在电子邮件上的这些SDS发送到用户,或者利用电子邮件或者通过web网页,将到这些SDS的URL通知用户。
通过利用诸如白洞的SDSCM,使这些SDS在本地或者遍布可用,用户可以在任务计算环境(TCE)下使用这些web服务。在用户使SDS在本地可用时,相应服务变得仅对该用户可用。在用户使SDS遍布可用时,相应服务变得不仅对该用户可用,而且对同一个环境下作为用户的其他人可用。在TCE的一个实施例中,用户可以将SDS文件本身或到该SDS文件的URL拖到白洞,以使它在本地或遍布可用。利用PIPE,用户可以将服务的可用性变更为本地可用或遍布可用,也可以临时保持该SDS。
在用户使动态服务入口提供的特定web服务的SDS对她自己可用时,该用户可以在TCE内使用该web服务。这意味着,用户可以使用与本地、遍布或其他远程服务组成在一起的web服务。这就是诸如“MY YAHOO!”的动态服务入口网站的优点。一个入口网站的各服务的互操作可以直到进入入口网站。结果某些入口网站对位于入口网站的数据和用户计算设备上的应用程序中的数据提供同步软件,但是该软件是独占的,而且互操作在此结束。如果你超过它,你必须在web网页与应用程序之间进行剪切和粘贴。可以在TCE内实现动态服务入口提供的语义web服务,以便不仅与入口网站内的服务,而且与计算设备、遍布环境下的设备本地的服务以及远程服务(一些服务可能是由其他动态服务入口提供的)互操作。这样显著提高了这种服务的利用率,而且对于用户容易做的事情,提高用户能力。
用户可以在任何位置使用与任务计算兼容的任何设备访问这些服务。用户可以使用具有web浏览器的任何设备通过TCC II访问这些服务。
用户可以在任何位置(在家、在办公室、在移动中等)使用与本地/遍布/(其他)远程服务组成在一起的这些服务。
可以将社团或室内动态服务入口看作一种新式ASP(应用程序服务提供者)。除了上述提到的个人版的服务外,它还可以提供社团、组织、雇员web服务。
该系统还包括永久或可拆卸存储器,例如磁盘和光盘、RAM、ROM等,它们上面可以存储和分布本发明的方法和数据结构。还可以通过经过例如诸如因特网的网络下载,分销这些方法。
根据详细说明,本发明的许多特征和优点将变得更加明显,因此,所附权利要求试图覆盖属于本发明实质范围的本发明的所有这些特征和优点。此外,由于本技术领域内的熟练技术人员容易设想出许多修改和变更,不要求本发明完全局限于所说明和描述的构建和运行过程,因此,所有修改和等效物均被再划分在本发明范围内。

Claims (76)

1.一种基于计算机的系统,该系统包括:
计算机系统,执行任务计算,从而使用户能够通过将可用功能性组合在一起来定义任务并执行这种任务。
2.根据权利要求1所述的基于计算机的系统,其中可用功能性起源于设备、计算应用程序以及通过远程过程调用可用的、包括web服务、UPnP、CORBA、RMI、RPC、DCE、DCOM的电子服务,或者该可用功能性包括以前定义的任务。
3.根据权利要求2所述的基于计算机的系统,其中所有可用功能性对用户抽象为一服务,而且以服务描述语言来表示每个服务。
4.根据权利要求3所述的基于计算机的系统,其中每个服务具有至少一个与它相关联的语义描述,
通过任意组成服务建立者、服务所有者或某个其他第三方,可以提供每个语义描述,并且
通过使其一个或者多个语义描述可用或不可用,可以使该服务可用或不可用。
5.根据权利要求4所述的基于计算机的系统,该系统进一步包括:
用于发现可用服务的装置;
用于根据所发现的服务与用户和她的环境的相关性,对服务进行过滤的装置;
用于规定可能与用户合作的任务的装置;
用于执行所规定的任务的装置;以及
用于建立、移除以及管理服务的可选装置。
6.根据权利要求5所述的基于计算机的系统,其中自动地,或者根据用户的指示,把规定的任务保存为新的可用服务。
7.根据权利要求6所述的基于计算机的系统,其中作为服务保存的以前规定的任务对建立它们的用户、对所有其他用户、或者对任何由用户定义的或预定义的用户组是可用的。
8.根据权利要求7所述的基于计算机的系统,其中用于发现服务的装置利用一服务发现协议,该服务发现协议包括如下任何一种,或者它们的任意组合:
UPnP、UDDI、本地服务资料库、Jini、蓝牙SDP、会合以及红外线(IR)。
9.根据权利要求8所述的基于计算机的系统,其中用于过滤所发现的服务的装置包括如下任何一种,或者它们的任意组合:
用户概况、手头任务、用户设备特性、用户位置、用户运动状态、用户网络连通性、用户规定的关键字、在被总体看待时一组服务的特征、单独服务特征。
10.根据权利要求9所述的基于计算机的系统,其中用于规定任务的装置包括如下任何一种,或者它们的任意组合:
基于计划的自动系统,或者
交互用户界面,支持以下任何一种,或者它们的任意组合:可视、语音、文本、盲文、触觉。
11.根据权利要求10所述的基于计算机的系统,其中用于执行所规定的任务的装置利用服务执行机制,该服务执行机制包括如下任何一种,或者它们的任意组合:web服务调用、UPnP动作、CORBA、RMI、RPC、DCE、DCOM、红外线(IR)、本地功能调用以及本地对象调用。
12.根据权利要求11所述的基于计算机的系统,其中用于建立、移除以及管理服务的装置包括如下任何一种,或者它们的任意组合:图形用户界面、服务执行、设备交互、由用户操作的设备的操作系统以及在用户操作的设备上执行的应用程序产生的事件。
13.根据权利要求12所述的基于计算机的系统,该系统进一步包括:
用于发现服务的模块;
用于过滤服务的模块;
用于根据用户目标自动规定任务,或者用于通过对用户提供关于可以如何将构成任务的服务组成在一起的信息,帮助用户规定任务的模块;
用于通过调用构成任务的服务并通过对用户提供在执行调用的服务时与调用的服务进行交互的装置,帮助用户执行任务的模块;以及
用户界面,帮助用户进行服务发现、服务过滤、服务组成、服务执行以及保存所定义的任务待未来使用。
14.根据权利要求13所述的基于计算机的系统,其中这些模块在单个计算设备上执行,或者其中这些模块或这些模块的子部件分步在多个计算设备上,而且可以被程序设计界面访问,所述程序设计界面可以访问优选运行在用户操作的设备上的用户界面。
15.根据权利要求12所述的基于计算机的系统,其中在服务过滤之前、在任务规定之前、在任务执行之前,用户进行服务发现。
16.根据权利要求15所述的基于计算机的系统,其中正在进行任务规定的用户把服务发现或服务过滤,或者它们二者重复进行一次或者多次。
17.根据权利要求16所述的基于计算机的系统,其中正在进行任务执行的用户把服务发现,或服务过滤,或任务规定,或者它们三者,或者任意连续的两个的任意组合重复进行一次或者多次。
18.根据权利要求15、16和17中任何一个所述的基于计算机的系统,该系统进一步包括用户界面,该用户界面支持服务发现、服务过滤、服务规定以及服务执行的工作流。
19.根据权利要求18所述的基于计算机的系统,其中用户界面是图形用户界面,而且它包括下面的任意组合:
发现窗格,用于显示所发现的服务和过滤的服务;
详情窗格,用于显示从发现窗格上选择的服务的附加信息;
组成窗格,用于显示发现窗格上的匹配服务的列表;
构建窗格,用于构建服务的组成;
信息窗格,用于显示关于该工具的处理过程的一般信息,包括关于执行进度的信息;
保存窗格,用于保存服务的组成;
其中所有窗格或窗格的子集可以同时对用户显示,而且每个窗格上的动作导致自动更新显示在其他窗格上的有关信息。
20.根据权利要求19所述的基于计算机的系统,其中或者通过从发现窗格上选择服务并选择构建功能,或者通过选择一对匹配服务并选择构建功能,用户可以移动到构建窗格。
21.根据权利要求19所述的基于计算机的系统,其中通过对后端系统自动确定的、可以进行插入或删除的每个可能位置,选择增加或者减少功能,用户可以对构建窗格上的当前编写的任务附加或者移除服务。
22.根据权利要求19所述的基于计算机的系统,其中正如下面的后端系统自动确定的那样,在构建窗格上或者在组成窗格上,在任务变得可执行时,通过选择执行功能,用户可以执行规定的任务。
23.根据权利要求19所述的基于计算机的系统,其中在用户部分地规定一个组成之前或之后,系统自动附加任何、预定或用户定义的兼容可用服务组成,而且在每当用户选择执行功能时,执行该完整组成。
24.根据权利要求19所述的基于计算机的系统,其中可以扩展要保存的组成,以便其中的服务满足与它们的特性有关的要求。
25.根据权利要求18所述的基于计算机的系统,其中用户界面是图形用户界面,而且它包括包含下面的任意组合的窗格:
发现窗格,用于显示所发现的服务和过滤的服务;
详情窗格,用于显示从发现窗格上选择的服务的附加信息;
组成窗格,用于显示发现窗格上的匹配服务的列表;
构建窗格,用于构建服务的组成;
信息窗格,用于显示关于该工具的处理过程的一般信息,包括关于执行进度的信息;
保存窗格,用于根据标准,保存服务的组成;
其中在任何给定时间,只有一个选项卡对用户可见,而且每个窗格上的动作导致自动更新显示在其他窗格上的有关信息。
26.根据权利要求25所述的基于计算机的系统,其中或者通过从发现窗格上选择服务并选择构建功能,或者通过根据组成选项卡选择一对匹配服务并选择构建功能,用户可以规定任务窗格。
27.根据权利要求25所述的基于计算机的系统,其中通过对后端系统自动确定的、可以进行插入或删除的每个可能位置,选择增加或者减少功能,用户可以对构建窗格上的当前编写的任务附加或者移除服务。
28.根据权利要求25所述的基于计算机的系统,其中正如下面的后端系统自动确定的那样,在构建窗格上或者在组成窗格上,在任务变得可执行时,通过选择执行功能,用户可以执行规定的任务。
29.根据权利要求25所述的基于计算机的系统,其中在用户部分地规定一个组成之前或之后,系统自动附加任何、预定或用户定义的兼容可用服务组成,而且在每当用户选择执行功能时,执行该完整组成。
30.根据权利要求25所述的基于计算机的系统,其中可以扩展要保存的组成,以便其中的服务满足与它们的特性有关的要求。
31.根据权利要求18所述的基于计算机的系统,其中用户界面是图形用户界面,而且它包括:第一窗格,用于显示所发现的服务和过滤的服务;第二窗格,用于显示用户编写的当前组成;以及用于在组成的历史中来回移动的多个控件;以及用于在每当可能时执行组成的控件。
32.根据权利要求31所述的基于计算机的系统,其中用户界面自动将选择的服务设置在组成序列的适当位置。
33.根据权利要求32所述的基于计算机的系统,其中每当可能时,包括在对于一个可以执行的组成、只能以单一方式组合可用的过滤服务时的情况,用户界面将自动完成组成。
34.根据权利要求18所述的基于计算机的系统,其中用户界面是web客户机。
35.根据权利要求34所述的基于计算机的系统,其中在执行任务时,用户的浏览器可能弹出新窗口,或将该浏览器重定向到一个新链接,该新链接允许用户输入与执行任务有关的信息或关于该执行的任务的反馈。
36.根据权利要求18所述的基于计算机的系统,其中用户界面是命令行界面,其中每次在用户输入可以与发现的和/或过滤的服务匹配的文本时,在用户按下预定键后,它插入匹配的服务,或者,如果存在多个匹配,则它提供它们的列表,以便用户通过进一步输入与多个服务中的一个服务匹配的文本,进行选择。
37.根据权利要求36所述的基于计算机的系统,其中用户选择的服务序列包括对应于任务的序列,而且可以随后通过按下预定键执行它。
38.根据权利要求14所述的基于计算机的系统,其中在同一个计算设备上执行发现模块、过滤模块、组成模块以及执行模块和用户界面。
39.根据权利要求38所述的基于计算机的系统,其中组成模块包括推理引擎,该推理引擎可以识别在给出组成服务的语义描述的情况下在一个组成中可以成功执行的各服务的所有可能的成对组合。
40.根据权利要求38所述的基于计算机的系统,其中组成模块包括推理引擎,该推理引擎可以识别在给出组成服务的语义描述的情况下可以总体地成功执行的各服务的所有可能组成。
41.根据权利要求39和40之任一所述的基于计算机的系统,其中利用包括计算资源的上限、计算时间的上限、组成中的服务数量的标准,或者利用要计算的成对匹配或组成的预定总数,可以限制推理引擎返回的各服务的可能成对匹配或组成的数量。
42.根据权利要求41所述的基于计算机的系统,其中推理引擎包括组成逻辑,其中该组成逻辑是一个规则,或一组规则,或一组逻辑语句。
43.根据权利要求38所述的基于计算机的系统,其中发现模块使用本地语义服务描述(SSD)数据库,或访问远程SSD数据库,并利用通过其发现服务的发现机制的特定服务ID,从这些数据库中检索所发现的服务的SSD。
44.根据权利要求43所述的基于计算机的系统,其中发现机制是UPnP,而ID是UPnP的唯一设备名(UDN)。
45.根据权利要求38所述的基于计算机的系统,其中被称为UPnP动作的机制用于检索指向服务的语义描述的一个或者多个指针。
46.根据权利要求14所述的基于计算机的系统,其中在与执行发现模块、过滤模块、组成模块以及执行模块的计算设备不同的计算设备上运行用户界面。
47.根据权利要求46所述的基于计算机的系统,其中用户界面是利用http与发现模块、过滤模块、组成模块以及执行模块通信的web客户机(浏览器)。
48.根据权利要求46所述的基于计算机的系统,其中用户界面是在最终用户的计算设备上执行的并通过以下这些模块的程序设计界面分别与发现模块、过滤模块、组成模块以及执行模块通信的应用程序。
49.根据权利要求14所述的基于计算机的系统,其中最终用户使用台式计算机、膝上型计算机、笔式计算机、PDA或移动电话中的任何一种。
50.根据权利要求12所述的基于计算机的系统,其中服务可以具有一个或者多个界面,以便在执行该服务之前或在执行该服务的过程中,用户与该服务交互。
51.根据权利要求14所述的基于计算机的系统,其中服务包括如下任何一种:
“通过显示器观看”,允许用户通过显示器观看用户规定的文档,并可选地控制如何显示它;
“通过多个显示器观看”,允许用户通过一个以上的显示器观看用户规定的文档,并可选地控制如何显示它;
“地图观看器”,允许用户观看用户规定位置的地图,并可选地控制如何显示它;
“地图路线选择器”,允许用户观看从用户规定的位置到预定的或用户规定的位置/从预定或用户规定位置到用户规定的位置的路线的地图或文本描述,并可选地控制如何显示它;
“实例提供服务”,在执行时,提供语义实例,其中语义实例是在本体中描述的类的实例;
“打印”,允许用户通过打印机以预定方式以特定格式打印用户规定的文档或语义实例,或者可选地控制如何打印它;
“传真”,允许用户将用户规定文档的传真发送到用户规定的传真号码,并可选地控制如何传真它;
“播放视频”,允许用户播放用户规定的视频内容,并可选地控制如何播放它;
“播放音频”,允许用户播放用户规定的音频内容,并可选地控制如何播放它;
“数码照片像框”,允许用户显示用户规定的图像内容,并可选地控制如何显示它;
“位置确定”,自动确定用户操作的设备的位置;
“目录发布器”,允许用户从同一种类型的一组实例中选择一个实例;
“电话拨号器”,允许用户拨用户规定的电话号码;
“TC存储器”,允许用户存储或检索文件;
“拷贝到可拆卸存储器”,允许用户将一个或一组文件存储到预定可拆卸存储介质,并可选地控制如何保存它们;
“电子邮件处理器”,允许用户将可选地具有附加的用户规定文档的电子邮件发送到用户规定的电子邮件地址,并可选地控制如何发送它;
“列表选择器”,允许用户从同一种类型的语义实例列表中选择语义实例;
“特性选择器”,允许用户从语义实例中选择一个特性;
“你的输入”,允许用户输入语义对象的属性值;
“实例观看器”,允许用户检查并修改语义实例;
“本地实例选择器”,允许用户选择计算设备本地的一个或者多个语义实例;
“语义实例拷贝器”,允许用户将语义实例拷贝到本地计算设备内;
“L-便条”,允许用户阅读并留下关于位置的便条;
“数据库发布器”,从数据库发布全部或部分表格;
“地点信息”,提供关于地点的信息;以及
“宿主服务”,利用客户机端的浏览器功能性实现其任务,其任务包括:“上载文件”,允许用户从客户机设备上载文件;“到输入的URL”,允许用户输入URL;以及“通过浏览器观看”,允许用户通过客户机设备观看文件。
52.根据权利要求12所述的基于计算机的系统,其中用于建立、移除以及管理服务的装置包括如下任何一种或它们的组合:
用于通过一个或者多个所述发现机制,使SDS可用的装置;
用于改变发现机制以便使用的装置;
用于保持SDS的装置;
用于将SDS恢复到发现机制之一的装置;
用于从发现机制移除SDS的装置;以及
用于改变其包括有效期、调用限制以及访问控制的发布参数的装置。
53.根据权利要求52所述的基于计算机的系统,其中用于建立、移除以及管理服务的装置包括如下任何一种或它们的组合:
“PIPE”,用于提供本地或远程API,以发布和可选地管理服务,并可选地对用户提供用户界面,以发布并管理服务;
“应用程序的语义实例剪贴程序”,用于在实例对应用程序可用时,发布实例,并可选地允许用户管理服务提供过程;
“具有实例提供服务建立过程的实例选择器”,用于允许用户发布用户为实例选择器服务选择的实例,并可选地允许用户管理服务提供过程;
“白洞”,用于允许用户通过其用户界面发布来自本地计算设备的对象作为语义实例,并可选地允许用户管理服务提供过程;
“公用目录”,用于允许用户通过设备发布实例,并可选地允许用户管理服务提供过程;
“库”,允许用户通过其服务调用过程发布实例,并可选地允许用户管理服务提供过程;
“图像/音频/视频服务控制”,允许用户发布设备建立的实例,或来自设备的实例,并可选地允许用户管理服务提供过程;
“可拆卸介质发布器”,用于允许用户通过插入计算设备中的可拆卸介质发布实例,并可选地允许用户管理服务提供过程;以及
“传真”,用于发布收到的文档,并可选地允许用户管理服务提供过程。
54.一种基于计算机的方法,该方法包括:
进行任务计算,从而使用户能够通过将可用功能性组合在一起来定义任务并执行这种任务。
55.根据权利要求54所述的基于计算机的方法,其中可用功能性起源于设备、计算应用程序以及通过远程过程调用可用的、包括web服务、UPnP、CORBA、RMI、RPC、DCE、DCOM的电子服务,或者该可用功能性包括以前定义的任务。
56.根据权利要求55所述的基于计算机的方法,其中所有可用功能性对用户抽象为一服务,而且以服务描述语言来表示每个服务。
57.根据权利要求56所述的基于计算机的方法,其中
每个服务具有至少一个与它相关联的语义描述,
通过任意组成服务建立者、服务所有者或某个其他第三方,可以提供每个语义描述,以及
通过使其一个或者多个语义描述可用或不可用,可以使该服务可用或不可用。
58.根据权利要求57所述的基于计算机的方法,该方法进一步包括:
发现可用服务;
根据所发现的服务对用户和她的环境的相关性,过滤服务;
规定可能与用户合作的任务;
执行规定的任务;以及
可选地建立、移除以及管理服务。
59.根据权利要求58所述的基于计算机的方法,其中自动地,或者根据用户的指示,把规定的任务保存为新可用服务。
60.根据权利要求59所述的基于计算机的方法,其中作为服务保存的以前规定的任务对建立它们的用户、对所有其他用户,或者对任何用户定义的或预定的用户组是可用的。
61.根据权利要求60所述的基于计算机的方法,其中用于发现服务的装置利用服务发现协议,服务发现协议包括如下任何一种,或者它们的任意组合:
UPnP、UDDI、本地服务资料库、Jini、蓝牙SDP、会合以及红外线(IR)。
62.根据权利要求61所述的基于计算机的方法,其中过滤所发现的服务的过程包括如下任何一种,或者它们的任意组合:
用户概况、手头任务、用户设备特性、用户位置、用户运动状态、用户网络连通性、用户规定的关键字、在被总体看待时一组服务的特征、单独服务特征。
63.根据权利要求62所述的基于计算机的方法,其中规定任务的过程包括如下任何一种,或者它们的任意组合:
基于计划的自动系统,或者
交互用户界面,支持以下要素中的任何一种,或者它们的任意组合:可视、语音、文本、盲文、触觉。
64.根据权利要求63所述的基于计算机的方法,其中用于执行规定的任务的装置利用服务执行机制,该服务执行机制包括如下任何一种,或者它们的任意组合:web服务调用、UPnP动作、CORBA、RMI、RPC、DCE、DCOM、红外线(IR)、本地功能调用以及本地对象调用。
65.根据权利要求64所述的基于计算机的方法,其中建立、移除以及管理服务的过程包括如下任何一种,或者它们的任意组合:图形用户界面、服务执行、设备交互、由用户操作的设备的操作系统以及在用户操作的设备上执行的应用程序产生的事件。
66.一种用于存储其在被计算机执行时使计算机执行如下功能的程序的计算机可读介质:
进行任务计算,从而使用户能够通过将可用功能性组合在一起来定义任务并执行这种任务。
67.根据权利要求66所述的计算机可读介质,其中可用功能性起源于设备、计算应用程序以及通过远程过程调用可用的、包括web服务、UPnP、CORBA、RMI、RPC、DCE、DCOM的电子服务,或者该可用功能性包括以前定义的任务。
68.根据权利要求67所述的计算机可读介质,其中所有可用功能性对用户抽象为一服务,而且以服务描述语言来表示每个服务。
69.根据权利要求68所述的计算机可读介质,其中
每个服务具有至少一个与它相关联的语义描述,
通过任意组成服务建立者、服务所有者或某个其他第三方,可以提供每个语义描述,以及
通过使其一个或者多个语义描述可用或不可用,可以使该服务可用或不可用。
70.根据权利要求69所述的计算机可读介质,进一步包括:
发现可用服务;
根据所发现的服务与用户和她的环境的相关性,过滤服务;
规定可能与用户合作的任务;
执行规定的任务;以及
可选地建立、移除以及管理服务。
71.根据权利要求70所述的计算机可读介质,其中自动地,或者根据用户的指示,把规定的任务保存为新可用服务。
72.根据权利要求71所述的计算机可读介质,其中保存为服务的以前规定的任务对建立它们的用户、对所有其他用户,或者对任何用户定义的或者预定的用户组是可用的。
73.根据权利要求72所述的计算机可读介质,其中发现服务的过程利用服务发现协议,服务发现协议包括如下任何一种,或者它们的任意组合:
UPnP、UDDI、本地服务资料库、Jini、蓝牙SDP、会合以及红外线(IR)。
74.根据权利要求73所述的计算机可读介质,其中过滤发现的服务的过程包括如下任何一种,或者它们的任意组合:
用户概况、手头任务、用户设备特性、用户位置、用户运动状态、用户网络连通性、用户规定的关键字、在被总体看待时一组服务的特征、单独服务特征。
75.根据权利要求74所述的计算机可读介质,其中规定任务的过程包括如下任何一种,或者它们的任意组合:
基于计划的自动系统,或者
交互用户界面,支持以下要素中的任何一种,或者它们的任意组合:可视、语音、文本、盲文、触觉。
76.根据权利要求75所述的计算机可读介质,其中执行规定的任务的过程利用服务执行机制,该服务执行机制包括如下任何一种,或者它们的任意组合:web服务调用、UPnP动作、CORBA、RMI、RPC、DCE、DCOM、红外线(IR)、本地功能调用以及本地对象调用。
77.根据权利要求76所述的计算机可读介质,其中建立、移除以及管理服务的过程包括如下任何一种,或者它们的任意组合:图形用户界面、服务执行、设备交互、由用户操作的设备的操作系统以及在用户操作的设备上执行的应用程序产生的事件。
CN2003101239632A 2002-12-19 2003-12-19 基于计算机的系统、方法和终端设备 Expired - Fee Related CN1527222B (zh)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US43443202P 2002-12-19 2002-12-19
US60/434,432 2002-12-19
US50101203P 2003-09-09 2003-09-09
US60/501,012 2003-09-09
US51174103P 2003-10-17 2003-10-17
US60/511,741 2003-10-17
US10/733,328 2003-12-12
US10/733,328 US8561069B2 (en) 2002-12-19 2003-12-12 Task computing

Publications (2)

Publication Number Publication Date
CN1527222A true CN1527222A (zh) 2004-09-08
CN1527222B CN1527222B (zh) 2012-03-21

Family

ID=32398272

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2003101239632A Expired - Fee Related CN1527222B (zh) 2002-12-19 2003-12-19 基于计算机的系统、方法和终端设备

Country Status (4)

Country Link
US (1) US8561069B2 (zh)
EP (1) EP1431875A1 (zh)
JP (1) JP2004199700A (zh)
CN (1) CN1527222B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102195997A (zh) * 2010-03-12 2011-09-21 陈海韵 基于WIFI及http技术的智能家居监控系统运行方法
CN101394428B (zh) * 2008-11-10 2012-11-28 北京邮电大学 一种服务定位方法
CN103270722A (zh) * 2011-01-10 2013-08-28 阿尔卡特朗讯 利用自动匹配在现实物体集合上的服务部署
CN105335132A (zh) * 2014-06-13 2016-02-17 阿里巴巴集团控股有限公司 一种自定义应用程序功能的方法、装置以及系统
CN106850315A (zh) * 2017-03-16 2017-06-13 郑州云海信息技术有限公司 一种自动化容灾系统
CN109844855A (zh) * 2016-10-03 2019-06-04 谷歌有限责任公司 任务的多重计算代理执行
CN110737766A (zh) * 2018-07-20 2020-01-31 西门子公司 用于在自主生产系统中提供透明性的方法和系统
CN113341864A (zh) * 2021-06-07 2021-09-03 重庆高新技术产业研究院有限责任公司 一种基于plc的控制相似性可逆向逻辑系统及其分析方法
CN114661851A (zh) * 2022-05-23 2022-06-24 山东省国土测绘院 一种在线轻量级快速响应的自然资源空间信息处理方法
US11663535B2 (en) 2016-10-03 2023-05-30 Google Llc Multi computational agent performance of tasks

Families Citing this family (174)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030093289A1 (en) * 2001-07-31 2003-05-15 Thornley Robert D. Reporting and collecting rent payment history
FR2834632A1 (fr) * 2002-01-15 2003-07-18 Oleg Tretiakoff Machine a lire portative pour les aveugles
CN1501267B (zh) * 2002-09-20 2010-05-12 富士施乐株式会社 链接信息制作设备、链接信息制作方法及文件处理系统
US8561069B2 (en) 2002-12-19 2013-10-15 Fujitsu Limited Task computing
KR100924776B1 (ko) * 2003-04-23 2009-11-03 삼성전자주식회사 우선순위 조정이 가능한 하이브리드 기기 및 그 사용자인터페이스방법
WO2004097600A2 (en) * 2003-04-28 2004-11-11 Sony Pictures Entertainment Inc. Content management for rich media publishing system
US20050091174A1 (en) * 2003-10-22 2005-04-28 International Business Machines Corporation Searching for services in a UDDI registry
US8117280B2 (en) * 2003-12-12 2012-02-14 Fujitsu Limited Task computing
US7761885B2 (en) * 2004-04-28 2010-07-20 Fujitsu Limited Task computing
US7395319B2 (en) 2003-12-31 2008-07-01 Checkfree Corporation System using contact list to identify network address for accessing electronic commerce application
CN101427220A (zh) * 2004-01-30 2009-05-06 国际商业机器公司 用于计算工具的计算环境的组件化自动供应和管理
JP2007538313A (ja) * 2004-04-29 2007-12-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 分散ネットワーキング・アーキテクチャ内にサービスをモデル化し、動的にデプロイするためのシステムおよび方法
CN1996303B (zh) * 2004-05-03 2010-10-13 Lg电子株式会社 为联网的媒体服务器中所存储的内容管理书签信息的方法和装置
US7823123B2 (en) * 2004-07-13 2010-10-26 The Mitre Corporation Semantic system for integrating software components
US7877726B2 (en) * 2004-07-13 2011-01-25 The Mitre Corporation Semantic system for integrating software components
GB2416872A (en) * 2004-07-30 2006-02-08 Canon Kk System for managing tasks on a network by using a service discover, a task manager and a service publisher
US20060047673A1 (en) * 2004-08-27 2006-03-02 Molander Mark E System and methods for controlling navigation area content via inline and dynamic search control
JP2008511934A (ja) * 2004-08-31 2008-04-17 インターナショナル・ビジネス・マシーンズ・コーポレーション エンタープライズ・データ統合システムのためのアーキテクチャ
US9552599B1 (en) * 2004-09-10 2017-01-24 Deem, Inc. Platform for multi-service procurement
US8099313B2 (en) * 2004-09-22 2012-01-17 Samsung Electronics Co., Ltd. Method and system for the orchestration of tasks on consumer electronics
US8185427B2 (en) * 2004-09-22 2012-05-22 Samsung Electronics Co., Ltd. Method and system for presenting user tasks for the control of electronic devices
US8412554B2 (en) * 2004-09-24 2013-04-02 Samsung Electronics Co., Ltd. Method and system for describing consumer electronics using separate task and device descriptions
US8032482B2 (en) 2004-09-30 2011-10-04 Microsoft Corporation Method, system, and apparatus for providing a document preview
US7647559B2 (en) 2004-09-30 2010-01-12 Microsoft Corporation Method and computer-readable medium for navigating between attachments to electronic mail messages
GB2419691A (en) * 2004-10-20 2006-05-03 Motorola Inc Method for generating user preferences
US8072909B2 (en) * 2004-11-15 2011-12-06 Applied Voice & Speech Technologies, Inc. Apparatus and method for notification of a party in a telephone conference
WO2006054859A1 (en) * 2004-11-16 2006-05-26 Lg Electronics Inc. Network device and information protocol for open network system
US7505051B2 (en) * 2004-12-16 2009-03-17 Corel Tw Corp. Method for generating a slide show of an image
US8065336B2 (en) * 2004-12-20 2011-11-22 Fujitsu Limited Data semanticizer
US20060143607A1 (en) * 2004-12-29 2006-06-29 Morris Robert P Method and system for allowing a user to create actions to be taken by a server
US20060143684A1 (en) * 2004-12-29 2006-06-29 Morris Robert P Method and system for allowing a user to specify actions that are to be automatically performed on data objects uploaded to a server
US8510737B2 (en) 2005-01-07 2013-08-13 Samsung Electronics Co., Ltd. Method and system for prioritizing tasks made available by devices in a network
US8069422B2 (en) * 2005-01-10 2011-11-29 Samsung Electronics, Co., Ltd. Contextual task recommendation system and method for determining user's context and suggesting tasks
ATE479952T1 (de) * 2005-02-02 2010-09-15 Sap Ag Methode zum durchführen eines dynamischen updates der bestandenen netzdienstleistungen
KR100715846B1 (ko) * 2005-02-14 2007-05-10 삼성전기주식회사 퍼베이시브 환경에서 Subtyping 기반의 탄력적인서비스 구성을 이용하는 응용 프로그램 재구성 방법 및 그시스템
US20060190579A1 (en) * 2005-02-23 2006-08-24 Alcatel Assisted command script template creation
US7720049B1 (en) * 2005-03-03 2010-05-18 Veraz Networks, Inc. Semantic service broker for telecommunications networks
US7512892B2 (en) * 2005-03-04 2009-03-31 Microsoft Corporation Method and system for displaying and interacting with paginated content
US8205013B2 (en) * 2005-05-02 2012-06-19 Samsung Electronics Co., Ltd. Method and system for aggregating the control of middleware control points
CN1877566B (zh) * 2005-06-09 2010-06-16 国际商业机器公司 基于现有本体产生新概念的系统和方法
US20060288347A1 (en) * 2005-06-20 2006-12-21 International Business Machines Corporation Exploiting entity relationships in proximity-based scheduling applications
US8234498B2 (en) 2005-07-25 2012-07-31 Britti Michael A Screening using a personal identification code
US8418254B2 (en) 2005-07-25 2013-04-09 Transunion Rental Screening Solutions, Inc. Applicant screening
JP4756947B2 (ja) * 2005-08-05 2011-08-24 キヤノン株式会社 情報処理装置及び方法
US8683334B2 (en) * 2005-08-19 2014-03-25 Intervoice Limited Partnership System and method for sharing access to service provider controls and subscriber profile data across multiple applications in a user interactive system
US20070043569A1 (en) * 2005-08-19 2007-02-22 Intervoice Limited Partnership System and method for inheritance of advertised functionality in a user interactive system
US7797636B2 (en) 2005-08-19 2010-09-14 Joseph Carter System and method for administering pluggable user interactive system applications
US8230491B2 (en) * 2005-08-19 2012-07-24 Opnet Technologies, Inc. Automatic access to network devices using various authentication schemes
US8302030B2 (en) 2005-09-14 2012-10-30 Jumptap, Inc. Management of multiple advertising inventories using a monetization platform
US20070061242A1 (en) * 2005-09-14 2007-03-15 Jorey Ramer Implicit searching for mobile content
US8503995B2 (en) 2005-09-14 2013-08-06 Jumptap, Inc. Mobile dynamic advertisement creation and placement
US8688671B2 (en) 2005-09-14 2014-04-01 Millennial Media Managing sponsored content based on geographic region
US8364540B2 (en) 2005-09-14 2013-01-29 Jumptap, Inc. Contextual targeting of content using a monetization platform
US8209344B2 (en) 2005-09-14 2012-06-26 Jumptap, Inc. Embedding sponsored content in mobile applications
US7752209B2 (en) 2005-09-14 2010-07-06 Jumptap, Inc. Presenting sponsored content on a mobile communication facility
US9703892B2 (en) 2005-09-14 2017-07-11 Millennial Media Llc Predictive text completion for a mobile communication facility
US9201979B2 (en) 2005-09-14 2015-12-01 Millennial Media, Inc. Syndication of a behavioral profile associated with an availability condition using a monetization platform
US20110145076A1 (en) * 2005-09-14 2011-06-16 Jorey Ramer Mobile Campaign Creation
US8156128B2 (en) 2005-09-14 2012-04-10 Jumptap, Inc. Contextual mobile content placement on a mobile communication facility
US8805339B2 (en) 2005-09-14 2014-08-12 Millennial Media, Inc. Categorization of a mobile user profile based on browse and viewing behavior
US8229914B2 (en) 2005-09-14 2012-07-24 Jumptap, Inc. Mobile content spidering and compatibility determination
US8989718B2 (en) 2005-09-14 2015-03-24 Millennial Media, Inc. Idle screen advertising
US20110106614A1 (en) * 2005-11-01 2011-05-05 Jumptap, Inc. Mobile User Characteristics Influenced Search Results
US9076175B2 (en) 2005-09-14 2015-07-07 Millennial Media, Inc. Mobile comparison shopping
US8195133B2 (en) 2005-09-14 2012-06-05 Jumptap, Inc. Mobile dynamic advertisement creation and placement
US8660891B2 (en) 2005-11-01 2014-02-25 Millennial Media Interactive mobile advertisement banners
US10911894B2 (en) 2005-09-14 2021-02-02 Verizon Media Inc. Use of dynamic content generation parameters based on previous performance of those parameters
US8131271B2 (en) 2005-11-05 2012-03-06 Jumptap, Inc. Categorization of a mobile user profile based on browse behavior
US7577665B2 (en) * 2005-09-14 2009-08-18 Jumptap, Inc. User characteristic influenced search results
US7660581B2 (en) 2005-09-14 2010-02-09 Jumptap, Inc. Managing sponsored content based on usage history
US8515400B2 (en) 2005-09-14 2013-08-20 Jumptap, Inc. System for targeting advertising content to a plurality of mobile communication facilities
US8819659B2 (en) 2005-09-14 2014-08-26 Millennial Media, Inc. Mobile search service instant activation
US7912458B2 (en) 2005-09-14 2011-03-22 Jumptap, Inc. Interaction analysis and prioritization of mobile content
US8666376B2 (en) 2005-09-14 2014-03-04 Millennial Media Location based mobile shopping affinity program
US8311888B2 (en) 2005-09-14 2012-11-13 Jumptap, Inc. Revenue models associated with syndication of a behavioral profile using a monetization platform
US9058406B2 (en) 2005-09-14 2015-06-16 Millennial Media, Inc. Management of multiple advertising inventories using a monetization platform
US8364521B2 (en) 2005-09-14 2013-01-29 Jumptap, Inc. Rendering targeted advertisement on mobile communication facilities
US8832100B2 (en) 2005-09-14 2014-09-09 Millennial Media, Inc. User transaction history influenced search results
US9471925B2 (en) 2005-09-14 2016-10-18 Millennial Media Llc Increasing mobile interactivity
US7702318B2 (en) 2005-09-14 2010-04-20 Jumptap, Inc. Presentation of sponsored content based on mobile transaction event
US7769764B2 (en) 2005-09-14 2010-08-03 Jumptap, Inc. Mobile advertisement syndication
US8615719B2 (en) 2005-09-14 2013-12-24 Jumptap, Inc. Managing sponsored content for delivery to mobile communication facilities
US20110313853A1 (en) 2005-09-14 2011-12-22 Jorey Ramer System for targeting advertising content to a plurality of mobile communication facilities
US8812526B2 (en) 2005-09-14 2014-08-19 Millennial Media, Inc. Mobile content cross-inventory yield optimization
US8103545B2 (en) 2005-09-14 2012-01-24 Jumptap, Inc. Managing payment for sponsored content presented to mobile communication facilities
US20110153428A1 (en) * 2005-09-14 2011-06-23 Jorey Ramer Targeted advertising to specified mobile communication facilities
US10038756B2 (en) 2005-09-14 2018-07-31 Millenial Media LLC Managing sponsored content based on device characteristics
US7676394B2 (en) 2005-09-14 2010-03-09 Jumptap, Inc. Dynamic bidding and expected value
US10592930B2 (en) 2005-09-14 2020-03-17 Millenial Media, LLC Syndication of a behavioral profile using a monetization platform
US8238888B2 (en) 2006-09-13 2012-08-07 Jumptap, Inc. Methods and systems for mobile coupon placement
EP1770515A1 (en) * 2005-09-27 2007-04-04 Sap Ag Enabling pervasive execution of workflows
FR2891972A1 (fr) * 2005-10-11 2007-04-13 France Telecom Procede de gestion automatique des associations entre services dans un environnement distribue
US8175585B2 (en) 2005-11-05 2012-05-08 Jumptap, Inc. System for targeting advertising content to a plurality of mobile communication facilities
US20070102521A1 (en) * 2005-11-10 2007-05-10 Urban Petersson Method and system for using barcoded contact information for compatible use with various software
US20070136746A1 (en) * 2005-12-08 2007-06-14 Electronics And Telecommunications Research Institute User context based dynamic service combination system and method
US8185423B2 (en) * 2005-12-22 2012-05-22 Canon Kabushiki Kaisha Just-in time workflow
US20070185721A1 (en) * 2005-12-30 2007-08-09 Shai Agassi Content center and method for business process applications
JP2007188184A (ja) * 2006-01-11 2007-07-26 Fujitsu Ltd アクセス制御プログラム、アクセス制御方法およびアクセス制御装置
KR100750160B1 (ko) * 2006-01-25 2007-08-17 삼성전자주식회사 UPnP 상에서 디바이스의 기능을 예약하는 방법 및 장치
FR2897177B1 (fr) * 2006-02-07 2008-06-06 Canon Kk Procede et dispositif de creation d'une sequence d'execution d'un ensemble d'operations d'un service web
US8028283B2 (en) * 2006-03-20 2011-09-27 Samsung Electronics Co., Ltd. Method and system for automated invocation of device functionalities in a network
US8972872B2 (en) * 2006-03-27 2015-03-03 Fujitsu Limited Building computing applications based upon metadata
US20070264972A1 (en) * 2006-05-15 2007-11-15 Motorola, Inc. Method and apparatus for a call task manager in a mobile communication device
US8132106B2 (en) 2006-06-23 2012-03-06 Microsoft Corporation Providing a document preview
EP1926284A1 (de) 2006-07-25 2008-05-28 Siemens Aktiengesellschaft Verfahren zum Bereitstellen eines Zusatzdienstes zu einem Basisdienst in einem Peer-to-Peer-Netzwerk
DE102006041868A1 (de) 2006-07-25 2008-01-31 Siemens Ag Verfahren zum Bereitstellen zusammengesetzter Dienste in einem Peer-to-Peer-Netzwerk
US9299039B1 (en) * 2006-08-23 2016-03-29 A9.Com, Inc. Managing task lists utilizing integrated information requests
US8150798B2 (en) 2006-10-10 2012-04-03 Wells Fargo Bank, N.A. Method and system for automated coordination and organization of electronic communications in enterprises
US7840636B2 (en) * 2006-12-04 2010-11-23 Intel Corporation Provider presence information
US20080195630A1 (en) * 2007-02-13 2008-08-14 Amadeus S.A.S. Web service interrogation method and apparatus
US20080270911A1 (en) * 2007-04-24 2008-10-30 Nehal Dantwala System and method to develop a custom application for a multi-function peripheral (mfp)
US20090083087A1 (en) * 2007-09-20 2009-03-26 Christian Wolter Modeling of task-based constraints and automated policy derivation
US8214244B2 (en) * 2008-05-30 2012-07-03 Strategyn, Inc. Commercial investment analysis
JP4568320B2 (ja) * 2007-11-19 2010-10-27 株式会社日立製作所 処理手順生成装置及び処理手順生成方法
US20090177634A1 (en) * 2008-01-09 2009-07-09 International Business Machine Corporation Method and System for an Application Domain
JP4963110B2 (ja) * 2008-01-25 2012-06-27 インターナショナル・ビジネス・マシーンズ・コーポレーション サービス検索システム、方法及びプログラム
US9646274B2 (en) * 2008-02-11 2017-05-09 Oracle International Corporation System and method for accessing business process instances through mobile devices
US20090222277A1 (en) * 2008-03-03 2009-09-03 Microsoft Corporation Defining and implementing custom task processes
CA2632793A1 (en) * 2008-04-01 2009-10-01 Allone Health Group, Inc. Information server and mobile delivery system and method
US8812986B2 (en) * 2008-05-23 2014-08-19 At&T Intellectual Property I, Lp Multimedia content information display methods and device
CN101605141A (zh) * 2008-08-05 2009-12-16 天津大学 基于语义的Web服务关系网络系统
US20100083150A1 (en) * 2008-09-30 2010-04-01 Nokia Corporation User interface, device and method for providing a use case based interface
US9154942B2 (en) * 2008-11-26 2015-10-06 Free Stream Media Corp. Zero configuration communication between a browser and a networked media device
US8219532B2 (en) * 2008-12-22 2012-07-10 International Business Machines Corporation Smart mediation system in a service oriented architecture
GB0901588D0 (en) * 2009-02-02 2009-03-11 Itis Holdings Plc Apparatus and methods for providing journey information
US20100205606A1 (en) * 2009-02-12 2010-08-12 Panzer Adi System and method for executing a complex task by sub-tasks
US8666977B2 (en) 2009-05-18 2014-03-04 Strategyn Holdings, Llc Needs-based mapping and processing engine
US20110029441A1 (en) * 2009-07-30 2011-02-03 Gupta Pronob K Method to generate workflow tasks directly from flowcharts for processing events in event-driven judicial case management systems with workflow control
US9111538B2 (en) * 2009-09-30 2015-08-18 T-Mobile Usa, Inc. Genius button secondary commands
US8995625B2 (en) * 2009-09-30 2015-03-31 T-Mobile Usa, Inc. Unified interface and routing module for handling audio input
US20110112992A1 (en) * 2009-11-09 2011-05-12 Palo Alto Research Center Incorporated Opportunistic fulfillment of tasks by suggestions from a personal device
WO2011086202A2 (es) * 2009-12-24 2011-07-21 Telefonica, S.A. Método y sistema de creación de servicios personalizados en comunicaciones móviles
CN101795288A (zh) * 2009-12-29 2010-08-04 华为终端有限公司 设备管理方法、系统及设备
US8266551B2 (en) * 2010-06-10 2012-09-11 Nokia Corporation Method and apparatus for binding user interface elements and granular reflective processing
US8689126B2 (en) * 2010-06-24 2014-04-01 Adobe Systems Incorporated Displaying graphical indications to indicate dependencies between scripts
KR101395506B1 (ko) * 2010-08-24 2014-05-15 한국전자통신연구원 서비스 추천 시스템 및 방법
US8621070B1 (en) * 2010-12-17 2013-12-31 Netapp Inc. Statistical profiling of cluster tasks
US9262057B2 (en) * 2011-03-11 2016-02-16 Microsoft Techology Licensing, Llc Providing item specific functionality via service-assisted applications
US8812590B2 (en) * 2011-04-29 2014-08-19 International Business Machines Corporation Asset sharing within an enterprise using a peer-to-peer network
CN102254334B (zh) * 2011-06-15 2012-12-05 武汉大学 一种基于dcom技术的地图符号化网络共享服务方法
US8510328B1 (en) * 2011-08-13 2013-08-13 Charles Malcolm Hatton Implementing symbolic word and synonym English language sentence processing on computers to improve user automation
RU2600106C2 (ru) 2011-12-28 2016-10-20 Нокиа Текнолоджиз Ой Переключатель приложений
US8996729B2 (en) 2012-04-12 2015-03-31 Nokia Corporation Method and apparatus for synchronizing tasks performed by multiple devices
US20130238964A1 (en) * 2012-03-06 2013-09-12 Apple Inc. Application for designing journals
US10528385B2 (en) 2012-12-13 2020-01-07 Microsoft Technology Licensing, Llc Task completion through inter-application communication
US9813307B2 (en) * 2013-01-28 2017-11-07 Rackspace Us, Inc. Methods and systems of monitoring failures in a distributed network system
US9397902B2 (en) 2013-01-28 2016-07-19 Rackspace Us, Inc. Methods and systems of tracking and verifying records of system change events in a distributed network system
US9516143B2 (en) * 2013-08-08 2016-12-06 Red Hat, Inc. System and method for assembly and use of integration applications
US11048736B2 (en) * 2013-12-05 2021-06-29 Lenovo (Singapore) Pte. Ltd. Filtering search results using smart tags
US10742520B2 (en) * 2013-12-31 2020-08-11 Citrix Systems, Inc. Providing mobile device management functionalities
US9483997B2 (en) 2014-03-10 2016-11-01 Sony Corporation Proximity detection of candidate companion display device in same room as primary display using infrared signaling
US9690546B2 (en) * 2014-03-26 2017-06-27 Software Ag Method and system for transitive traversal service discovery
US9696414B2 (en) 2014-05-15 2017-07-04 Sony Corporation Proximity detection of candidate companion display device in same room as primary display using sonic signaling
US10070291B2 (en) 2014-05-19 2018-09-04 Sony Corporation Proximity detection of candidate companion display device in same room as primary display using low energy bluetooth
US10075348B2 (en) 2014-07-25 2018-09-11 Cable Television Laboratories, Inc. Network service discovery
US9854028B2 (en) 2014-10-23 2017-12-26 Bloomberg Finance L.P. Apparatus and method for efficient, coordinated, distributed execution
CN105630583A (zh) * 2014-11-26 2016-06-01 阿里巴巴集团控股有限公司 一种数据处理方法和装置
US10289727B2 (en) * 2015-09-17 2019-05-14 International Business Machines Corporation Incorporation of semantic attributes within social media
US20180329726A1 (en) * 2015-10-28 2018-11-15 Ent. Services Development Corporation Lp Associating a user-activatable element with recorded user actions
US10339330B2 (en) * 2015-12-31 2019-07-02 Neustar, Inc. Data aggregation system for enabling query operations on restricted data that originates from multiple independent multiple sources
US10261830B2 (en) 2016-06-14 2019-04-16 Microsoft Technology Licensing, Llc Cross-device task execution
US11107021B2 (en) 2016-11-06 2021-08-31 Microsoft Technology Licensing, Llc Presenting and manipulating task items
US20180197125A1 (en) * 2017-01-06 2018-07-12 Microsoft Technology Licensing, Llc Tasks Across Multiple Accounts
US10467030B2 (en) * 2017-05-23 2019-11-05 Sap Se Single user display interface
US10635789B1 (en) * 2017-06-21 2020-04-28 Amazon Technologies, Inc. Request authorization using recipe-based service coordination
US11340872B1 (en) 2017-07-21 2022-05-24 State Farm Mutual Automobile Insurance Company Method and system for generating dynamic user experience applications
US20190102841A1 (en) 2017-10-04 2019-04-04 Servicenow, Inc. Mapping engine configurations with task managed workflows and grid user interfaces
EP3467642B1 (en) 2017-10-04 2023-10-04 ServiceNow, Inc. Guided configuration item class creation in a remote network management platform
US10684966B1 (en) 2019-02-21 2020-06-16 Amazon Technologies, Inc. Orchestrating dataflows with inferred data store interactions
US11409871B1 (en) * 2019-03-22 2022-08-09 Ca, Inc. Universal tracing of side-channel processes in computing environments
CN109992419A (zh) * 2019-03-29 2019-07-09 长沙理工大学 一种优化的协同边缘计算低延迟任务分配卸载方法
KR20200130151A (ko) * 2019-05-10 2020-11-18 현대자동차주식회사 M2m 시스템에서 서비스 엔티티를 확인하기 위한 방법 및 장치
US11948005B2 (en) 2020-06-29 2024-04-02 Amazon Technologies, Inc. Managed integration of constituent services of multi-service applications
US11941413B2 (en) 2020-06-29 2024-03-26 Amazon Technologies, Inc. Managed control plane service

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6002918A (en) 1989-06-29 1999-12-14 Symbol Technologies, Inc. Power-saving arrangement and method for mobile units in communications network
US5815811A (en) 1989-06-29 1998-09-29 Symbol Technologies, Inc. Preemptive roaming in a cellular local area wireless network
US5224205A (en) 1990-05-21 1993-06-29 International Business Machines Corp. Method of combining architecturally dissimilar computing networks into a single logical network
JPH05197573A (ja) 1991-08-26 1993-08-06 Hewlett Packard Co <Hp> タスク指向パラダイムによるタスク管理システム
US6496872B1 (en) 1994-05-16 2002-12-17 Apple Computer, Inc. Computer system for automatically instantiating tasks designated by a user
US6983227B1 (en) 1995-01-17 2006-01-03 Intertech Ventures, Ltd. Virtual models of complex systems
JPH10501901A (ja) * 1995-04-07 1998-02-17 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 画像の回転のための方法および装置
US5968116A (en) 1996-03-27 1999-10-19 Intel Corporation Method and apparatus for facilitating the management of networked devices
US6101528A (en) 1996-03-27 2000-08-08 Intel Corporation Method and apparatus for discovering server applications by a client application in a network of computer systems
US6067297A (en) 1996-06-28 2000-05-23 Symbol Technologies, Inc. Embedded access point supporting communication with mobile unit operating in power-saving mode
US6084528A (en) 1996-09-05 2000-07-04 Symbol Technologies, Inc. Intranet scanning terminal system
US5979757A (en) 1996-09-05 1999-11-09 Symbol Technologies, Inc. Method and system for presenting item information using a portable data terminal
DE69835314T2 (de) 1997-04-15 2007-05-10 Hewlett-Packard Development Co., L.P., Houston Verfahren und Vorrichtung zur formatgesteuerten Interaktion zwischen Geräten
US6324567B2 (en) 1997-06-11 2001-11-27 Oracle Corporation Method and apparatus for providing multiple commands to a server
US6144673A (en) 1997-10-24 2000-11-07 Motorola, Inc. Method and apparatus for providing broadcast group data
US6178426B1 (en) 1998-01-15 2001-01-23 Symbol Technologies, Inc. Apparatus with extended markup language data capture capability
US6188681B1 (en) 1998-04-01 2001-02-13 Symbol Technologies, Inc. Method and apparatus for determining alternative second stationary access point in response to detecting impeded wireless connection
US6173316B1 (en) 1998-04-08 2001-01-09 Geoworks Corporation Wireless communication device with markup language based man-machine interface
US6509913B2 (en) 1998-04-30 2003-01-21 Openwave Systems Inc. Configurable man-machine interface
US6901596B1 (en) 1998-05-07 2005-05-31 Hewlett-Packard Development Company, L.P. Method of communicating asynchronous events to remote procedure call clients
CN1115824C (zh) 1998-05-07 2003-07-23 三星电子株式会社 网络中的装置对装置命令与控制的方法和系统
US6556875B1 (en) * 1998-06-30 2003-04-29 Seiko Epson Corporation Device control system
US6456892B1 (en) 1998-07-01 2002-09-24 Sony Electronics, Inc. Data driven interaction for networked control of a DDI target device over a home entertainment network
US6286047B1 (en) 1998-09-10 2001-09-04 Hewlett-Packard Company Method and system for automatic discovery of network services
US6446096B1 (en) 1998-09-11 2002-09-03 International Business Machines Corporation Method and system for providing device-specific key control using role-based HTML element tags
US6560640B2 (en) 1999-01-22 2003-05-06 Openwave Systems, Inc. Remote bookmarking for wireless client devices
US6216158B1 (en) 1999-01-25 2001-04-10 3Com Corporation System and method using a palm sized computer to control network devices
US6792605B1 (en) 1999-06-10 2004-09-14 Bow Street Software, Inc. Method and apparatus for providing web based services using an XML Runtime model to store state session data
EP1069500A1 (en) 1999-07-12 2001-01-17 International Business Machines Corporation Downloadable user-interface
US6956833B1 (en) 2000-02-08 2005-10-18 Sony Corporation Method, system and devices for wireless data storage on a server and data retrieval
US6430395B2 (en) 2000-04-07 2002-08-06 Commil Ltd. Wireless private branch exchange (WPBX) and communicating between mobile units and base stations
KR20010109886A (ko) 2000-06-03 2001-12-12 윤종용 이동통신 단말기를 이용한 멀티미디어 서비스 시스템 및방법
US20020078255A1 (en) 2000-10-17 2002-06-20 Shankar Narayan Pluggable instantiable distributed objects
US6947404B1 (en) 2000-11-06 2005-09-20 Nokia Corporation Automatic WAP login
US20020107939A1 (en) * 2001-02-07 2002-08-08 Ford Daniel E. System and method for accessing software components in a distributed network environment
US20020116225A1 (en) 2001-02-15 2002-08-22 Margaret Morse Tracking and reporting client outcome
US7610045B2 (en) 2001-04-12 2009-10-27 Research In Motion Limited Advanced system and method for dynamically discovering, provisioning and accessing host services on wireless data communication devices
WO2002086679A2 (en) * 2001-04-25 2002-10-31 Metallect Corporation Service provision system and method
WO2003021978A1 (en) 2001-08-10 2003-03-13 Strix Systems, Inc. Virtual linking using a wireless device
US6859803B2 (en) 2001-11-13 2005-02-22 Koninklijke Philips Electronics N.V. Apparatus and method for program selection utilizing exclusive and inclusive metadata searches
WO2003069442A2 (en) 2002-02-12 2003-08-21 Sandpiper Software, Inc. Ontology frame-based knowledge representation in the unified modeling language (uml)
US7127261B2 (en) 2002-02-22 2006-10-24 Julian Van Erlach Enhanced telecommunication services
US6910037B2 (en) 2002-03-07 2005-06-21 Koninklijke Philips Electronics N.V. Method and apparatus for providing search results in response to an information search request
US20040054690A1 (en) 2002-03-08 2004-03-18 Hillerbrand Eric T. Modeling and using computer resources over a heterogeneous distributed network using semantic ontologies
US7159224B2 (en) 2002-04-09 2007-01-02 Sun Microsystems, Inc. Method, system, and articles of manufacture for providing a servlet container based web service endpoint
US7548847B2 (en) 2002-05-10 2009-06-16 Microsoft Corporation System for automatically annotating training data for a natural language understanding system
KR20040001185A (ko) 2002-06-27 2004-01-07 삼성전자주식회사 부분 상세 지도를 제공하는 지도 표시 장치 및 그 방법
US20040083205A1 (en) 2002-10-29 2004-04-29 Steve Yeager Continuous knowledgebase access improvement systems and methods
US8561069B2 (en) 2002-12-19 2013-10-15 Fujitsu Limited Task computing
JP2004318809A (ja) 2003-02-24 2004-11-11 Fuji Xerox Co Ltd 情報抽出規則生成装置および方法
US7376571B1 (en) 2003-03-31 2008-05-20 Unisys Corporation Logistics management system having task-oriented user interface
US20040207659A1 (en) 2003-04-02 2004-10-21 International Business Machines Corporation Program creation by combining web services using graphic user interface controls
US7406660B1 (en) 2003-08-01 2008-07-29 Microsoft Corporation Mapping between structured data and a visual surface
US20050049924A1 (en) 2003-08-27 2005-03-03 Debettencourt Jason Techniques for use with application monitoring to obtain transaction data
US20050080768A1 (en) 2003-10-10 2005-04-14 International Business Machines Corporation Methods and apparatus for dynamic service discovery from Web services representation chain
US20050160362A1 (en) 2004-01-15 2005-07-21 Petar Obradovic Systems and methods for performing variable data printing
US20060195411A1 (en) 2005-02-28 2006-08-31 Microsoft Corporation End user data activation
US7596754B2 (en) 2005-07-28 2009-09-29 Microsoft Corporation Application assistance
US8140987B2 (en) 2005-12-29 2012-03-20 Sap Ag GUI modeling of web services

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101394428B (zh) * 2008-11-10 2012-11-28 北京邮电大学 一种服务定位方法
CN102195997A (zh) * 2010-03-12 2011-09-21 陈海韵 基于WIFI及http技术的智能家居监控系统运行方法
CN102195997B (zh) * 2010-03-12 2015-08-19 陈海韵 基于WIFI及http技术的智能家居监控系统运行方法
CN103270722A (zh) * 2011-01-10 2013-08-28 阿尔卡特朗讯 利用自动匹配在现实物体集合上的服务部署
CN105335132A (zh) * 2014-06-13 2016-02-17 阿里巴巴集团控股有限公司 一种自定义应用程序功能的方法、装置以及系统
CN105335132B (zh) * 2014-06-13 2020-03-24 阿里巴巴集团控股有限公司 一种自定义应用程序功能的方法、装置以及系统
CN109844855A (zh) * 2016-10-03 2019-06-04 谷歌有限责任公司 任务的多重计算代理执行
US11663535B2 (en) 2016-10-03 2023-05-30 Google Llc Multi computational agent performance of tasks
CN109844855B (zh) * 2016-10-03 2023-12-05 谷歌有限责任公司 任务的多重计算代理执行
CN106850315A (zh) * 2017-03-16 2017-06-13 郑州云海信息技术有限公司 一种自动化容灾系统
CN110737766A (zh) * 2018-07-20 2020-01-31 西门子公司 用于在自主生产系统中提供透明性的方法和系统
CN113341864A (zh) * 2021-06-07 2021-09-03 重庆高新技术产业研究院有限责任公司 一种基于plc的控制相似性可逆向逻辑系统及其分析方法
CN114661851A (zh) * 2022-05-23 2022-06-24 山东省国土测绘院 一种在线轻量级快速响应的自然资源空间信息处理方法
CN114661851B (zh) * 2022-05-23 2022-08-16 山东省国土测绘院 一种在线轻量级快速响应的自然资源空间信息处理方法

Also Published As

Publication number Publication date
US8561069B2 (en) 2013-10-15
EP1431875A1 (en) 2004-06-23
CN1527222B (zh) 2012-03-21
US20040230636A1 (en) 2004-11-18
JP2004199700A (ja) 2004-07-15

Similar Documents

Publication Publication Date Title
CN1527222A (zh) 任务计算
CN1300677C (zh) 分布式计算服务平台
CN1957327A (zh) 数据处理设备,数据处理方法,和数据处理程序
CN1609795A (zh) 用于计算机平台的编程接口
CN1163837C (zh) 网络访问管理系统和方法
CN1639709A (zh) 服务器、信息提供方法和程序
CN1647070A (zh) 用于知识检索、管理、交付和表示的系统和方法
CN1745364A (zh) 用于扩展应用程序首选项类的系统和方法
CN1416551A (zh) 带光学数据读取器的信息处理设备、各种服务器及电子商业交易方法
CN1853180A (zh) 语义知识提取、管理、捕获、共享、发现、交付、表示之系统与方法
CN1783083A (zh) 动态概要模块
CN1834908A (zh) 用于将开发模式应用于基于组件的应用程序的系统和方法
US20130283189A1 (en) System and method for efficeint exchange of content while remaining device agnostic
CN1332879A (zh) 形成全方位服务研究当局与测试中心的方法及装置
CN1525687A (zh) 网络帧结构和用于提供通告的应用程序
CN1791853A (zh) 个人化文件夹
CN1365478A (zh) 捐赠处理系统
CN1625252A (zh) 信息提供系统和服务器、用户终端设备、内容显示设备及方法
CN1669018A (zh) 手持终端框架系统
CN1679028A (zh) 内容处理装置与内容显示装置
CN1406355A (zh) 执行信息通信和信息提供的信息通信系统
CN1647135A (zh) 离线电子学习
CN1839403A (zh) 经改进的慈善管理系统和商务方法
CN1692354A (zh) 信息管理系统、信息处理设备、信息处理方法、信息处理程序、和存储介质
CN1585948A (zh) 用于系统整合的应用程序视窗部件

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120321

Termination date: 20151219

EXPY Termination of patent right or utility model