用于小型脚印尺寸装置的智能书签的制作方法

文档序号:6465947阅读:295来源:国知局
专利名称:用于小型脚印尺寸装置的智能书签的制作方法
技术领域
本发明涉及计算机应用程序及小型脚印尺寸(footprint)装置。尤其是,本发明包括用于给在小型脚印尺寸装置上运行的应用和服务所使用的各种数据源对象作书签(bookmarking)的系统和方法。
“智能化”的小型脚印尺寸装置的领域正在快速发展和变化。小型脚印尺寸装置包括手持式计算机、个人数据助理(PDA)、蜂窝式电话、全球定位系统(GPS)接收机、游戏机(game console)和许多这样的装置。这些装置变得更加智能化而且互连。诸如Sun Microsystems,Inc.的JiniTM等技术以及诸如开放式服务网关倡议(Open Service Gateway Initiative)(OSGI)等倡议把传统的计算机网络的概念扩展到包括小型脚印尺寸装置。
此增加的装置互连引起了对新型的计算服务及集成计算服务(基于装置间及其基于装置内的服务)的新方法的需要。“服务”是在可被人、应用程序或其它服务所使用的装置内实现的或可从该装置访问的实体。服务的概念很广,并可以许多不同的尺度来考虑。例如,服务包括诸如共享打印、电子邮件、电话技术等常见的基于网络的服务。服务还包括诸如可控制本地网络内的装置的功耗的能量管理服务、在发生差错时允许装置把信息发送给服务技术人员的诊断服务、即时地把紧急情况等通知健康状况专业人员的健康状况监测服务等不常见的例子。
服务还包括位于本地机器(local machine)或装置内并可在其中执行的模块或应用。例如,本地应用程序可利用与HTTP服务器进行通信的服务、HTML交付(render)引擎服务、书签服务、用户界面服务等。在此例中,应用程序可共同使用这些服务来实现网络浏览器(web browser)程序。
如今,在单个小型脚印尺寸装置中共同执行多个服务和应用已变得越来越普遍。然而,由于通常小型脚印尺寸装置中的存储器、处理功率和其它资源非常有限,所以需要专门的轻便服务/应用包容框架(containment framework)来实现服务和应用程序的想要的集成。还想要使包容框架足够灵活和可扩充,以便为任何类型的小型脚印尺寸装置的任何类型的服务和应用提供框架。另一个目的是使包容框架可与诸如JiniTM网络中的装置可获得的服务等脱离装置的服务兼容和集成。这里所述的包容框架实现了上述目的。
轻便的包容框架可使诸如个人数据助理、智能蜂窝式电话等小型脚印尺寸装置运行传统上与桌面计算环境有关的多用途应用程序。例如,围绕包容框架的一个实施例建立了Sun Microsystem,Inc.销售的个人应用(Personal Applications)组。Personal Application组包括一组集成的紧凑的存储器效率高的应用,包括个人应用浏览器(Personal Applications Browser)、个人应用电子邮件客户(Personal applications Email Client)和个人组织器(Personal Organizer)。
随着小型脚印尺寸装置变得可获得这些类型的应用,越来越想要提供集成和抽象被各种应用或服务所使用或在其中实现的实体、对象和数据源的通用机构。使能这种类型的抽象和集成的一个途径是使书签服务把持久性索引提供给可在应用程序或服务中产生或使用的任何各种类型的实体、对象和数据源。例如,用户可给一封特定的电子邮件或来自联系列表的特定联系条目(entry)作书签,以方便今后查阅(reference)。
尤其想要在小型脚印尺寸装置环境内使能这种类型的书签系统。这样的系统可明显地降低进行特定操作所涉及的难度,因为通常用户在小型脚印尺寸装置上输入的装置非常有限。然而,实现这种类型的书签系统也是对小型脚印尺寸装置环境的一种特殊的挑战,因为需要一定水平的软件设施来实现想要的抽象和通用性,该软件设施还必需足够轻便以在小型脚印尺寸装置上运行。以下描述了实现小型脚印尺寸装置的这种书签系统的系统和方法。
本发明使小型脚印尺寸装置的用户可产生并存储查阅各种类型的对象和/或数据源(一种统称为数据源)的书签。每个书签可包括可用于指向(refer to)对象/数据源的统一资源定位器(Uniform Resource Locator)(URL)。书签系统可以是开放端的,实质上允许给任何类型的对象或数据源作书签。用户或应用今后可使用这些书签来查阅各数据源,以对该数据源进行诸如显示或编辑等某种动作。
例如,用户可给电子邮件客户内的一封特定电子邮件作书签。在此情况下,该书签可查阅包括代表该电子邮件的数据的某种封装(encapsulating)对象(叫做数据源)。因而,书签服务可与能封装各种类型的实体的激活(activation)框架合作。激活框架可把一种类型分配给一数据源,以把它区分于其它种类的数据源。激活框架还可使特定“动词”与一数据源类型有关,特定的可执行模块或例程可与一数据源类型和动词有关,在这里可调用该可执行模块对一特定数据源执行由该动词所指定的动作。
为了产生并存储查阅特定数据源的书签,在小型脚印尺寸装置的应用/服务包容框架内执行书签服务模块,它可被其它应用/服务所调用。以下描述用于小型脚印尺寸装置的轻便应用/服务框架。该书签服务可结合如上所述的激活框架一起操作。在一个实施例中,书签服务结合JavaBeansTM激活框架(ActivationFramework)(JAF)一起操作来实现所述的功能。
从以下详细描述并参考附图将使本发明的其它目的和优点变得明显起来,其中

图1是示出可被作上书签的各种类型的数据源的方框图;图2是示出产生查阅特定数据源的书签的过程的流程图;图3是示出使用书签来查阅各数据源的过程的流程图;图4是示出包括JavaBeansTMActivation Framework的主要元件的方框图;图5是示出典型的小型脚印尺寸装置的硬件体系结构的方框图;图6是示出运行包容框架内的应用和服务的系统中所涉及的硬件/软件层的典型层次;图7示出一示例网络,其中运行包容框架中的应用/服务的小型脚印尺寸装置连到基于本地服务的网络;图8示出发现过程,其中服务提供者找到一查找服务;图9示出连接(join)过程,其中服务提供者用一查找服务给它的服务登记;图10示出查找过程,其中客户从查找服务中请求一服务;图11示出服务调用过程,其中客户使用从查找服务接收到的服务对象调用一服务;图12是示出包容框架的基本体系结构的摘要方框图;图13和14示出在包容框架中使用模块请求收听者(listener)来模拟分层的包容环境;图15示出使用包(parcel)把模块组合在一起;图16是示出典型查找过程的流程图,当中央框架实例(instance)接收到从客户模块查找服务模块的查找请求时可进行该过程;以及图17是示出模块释放过程的流程图。
虽然本发明容许各种修改和其它形式,但通过附图中的例子来示出本发明的特定实施例,并在这里详细描述。然而,应理解,这些附图及其详细描述将不限于所揭示的特定形式,而相反,本发明将覆盖落在所附权利要求书所限定的本发明的精神和范围内的所有修改、等价物和变形。
图1-数据源的例子图1示出可被作上书签的数据源的一些例子。如上所述,书签服务可结合开式激活框架一起操作,从而允许对各种类型的数据源进行分类和封装。图1示出一些示例类型的数据源,在小型脚印尺寸装置上运行的典型应用程序的用户可能希望给这些数据源作书签。
如图1所示,用户可给一封特定的电子邮件作书签。例如,用户可在阅读电子邮件时选择产生该电子邮件的书签的特定命令。随后,用户使用该书签可快速地指向(refer to)该电子邮件。例如,用户可调用显示书签清单的书签服务。图1示出可被作上书签的其它数据源,诸如网络浏览器内被作上书签的网页及个人信息管理器程序内被作上书签的约定条目。
可以各种方式来组织书签。例如,系统可具有保存所有书签的中央清单,或不同的应用可具有它们自己的书签清单,或者可采取这些途径的各种组合。产生一书签的请求可能发生在各种情况下,诸如调用一书签服务并选择要作上书签的一数据源,或者发出来自一应用的调用书签服务等的命令。在一个实施例中,可从另一系统引进书签。
图1的书签可查阅本地或远程数据源。例如,所示的网页书签可查阅存储在远程服务器上的HTML页,或者所示的电子邮件书签可查阅另一系统上的电子邮件。
图2-产生书签图2是示出产生查阅特定数据源的书签的过程的流程图。注意,图2示出书签产生过程的一个实施例。增加、组合、修改或省略各步骤的其它实施例是可能的。
在图2的步骤600,用户调用一书签服务。例如,用户可发出下拉菜单命令以调用一书签服务,然后该书签服务的图形用户界面可出现在显示器上。在步骤602,用户选择要作上书签的特定数据源。例如,用户可浏览一目录结构,以找到包括诸如虚拟商务卡、图象等特定类型的数据源。可把步骤600和步骤602组合成单个步骤。例如,用户可发出来自一应用的命令,该命令指令书签服务给当前选中的数据源作书签。
在步骤604,书签服务产生查阅在步骤602选中的数据源的书签条目。该书签条目包括识别在步骤602选中的该特定数据源的信息。在一个实施例中,书签条目包括URL。
在步骤606,书签服务存储在步骤604中产生的书签条目。例如,在一个实施例中,可把书签条目存储在中央书签清单中,可由该书签服务本身来访问该清单,也可由该系统内运行的其它应用来访问该清单。在另一实施例中,系统可保存不同应用或数据源类型的不同书签清单。
图3-查阅被作上书签的数据源图3是示出使用书签来查阅各数据源的过程的流程图。注意,图3示出查阅书签的过程的一个实施例。增加、组合、修改或省略各步骤的其它实施例是可能的。
在步骤610,用户选择一书签条目。书签选择可发生在各种情况下。例如,用户可调用一书签访问并从由该书签访问呈现给用户的清单中选择特定的书签条目。用户还可通过例如从书签菜单中选择一特定菜单项目而从一应用中选择一特定书签。
在步骤612,用户选择对步骤610中选中的书签条目所查阅的数据源所进行的动作。例如,用户可对被作上书签的动作邮件选择“编辑”动作,或对被作上书签的图象选择“观看”动作等。用户可通过在可能动作的清单中进行选择来选择要进行的动作,或者可由用户动作的上下文来暗示要进行的动作。
在步骤614,为了对步骤610中选中书签条目所查阅的数据源进行步骤612中所指定的动作,调用适当的程序模块。步骤612和614假设存在使得对数据源类型定义动作及使特定程序模块映射到这些动作的激活框架。在一个实施例中,在小型脚印尺寸装置中运行的书签服务和/或应用程序利用JavaBeansTMActivation Framework(JAF)来实现步骤612和614。以下描述JavaBeansTMActivation Framework。
可把步骤610、612和614组合成单个步骤。例如,用户可访问显示了被作上书签的个人联系条目的个人联系清单服务中的菜单。然后,用户可从该菜单中挑选联系条目,使应用显示该联系条目。
JavaBeansTM应用框架在一个实施例中,利用JavaBeansTMActivation Framework(JAF)来提供封装数据源、定义数据源的动作等的基础设施。这一部分描述JavaBeansTMActivationFramework。
JAF实现的几个相关服务包括确定任意数据的类型、封装对数据的访问、发现对特定类型的数据可获得的操作以及例示相应于特定数据的所需操作的软件组件。把JAF包装成为JavaTM平台的标准扩充。
图4示出包括JAF体系结构的主要元素。注意,这里设施的框架不限于特定应用。
图4所示的数据处理程序(DataHandler)类在JAF知道的客户与其它子系统之间提供了相容界面。
数据源(DataSource)界面封装包含数据且可返还提供数据访问的流及定义描述数据的MIME类型的串的对象。可对普通数据源(网、文件系统、IMAP、ftp等)实现类。还可扩充数据源界面,以允许每个数据源用户定制。一旦在DataHandler中设定DataSource,则客户可确定对该数据可获得的操作。
为了方便,JAF包括两个DataSource类实现文件数据源(FileDataSource)访问保存在一文件中的数据。
URL数据源(URLDataSource)访问保存在URL处的数据。
命令映射(CommandMap)提供了这样的服务,该服务允许其界面的消费者确定一特定MIMI类型可获得的“命令”以及检索可对特定MIMI类型的对象进行操作(例如组件登记表)的对象检索界面。CommandMap可通过由CommandMap的特定实例的实现所定义的机构来产生和保存有关特定数据类型的可获得能力的清单。
JavaBeansTM包给实现命令的软件组件提供了编程模型。每个JavaBeansTM组件可使用形象化(externalization)或可实现命令对象(CommandObject)界面以允许把被分类的数据传送给该界面。
JAF定义了CommandMap界面,从而给CommandMap提供了灵活而可扩展的框架。CommandMap界面允许开发人员开发他们自己的找到系统中可获得哪些命令的方案。一个可能的实现可访问平台上的“类型登记表”或使用基于服务器的方案。JAF提供了以类似于RFC 1524(.mailcap)功能为基础的简单默认方案。
为了与JAF服务交互,Beans扩展了CommandObject界面。为了检索数据类型并作用于数据,JAF知道的JavaBeansTM组件可直接访问其DataSource和DataHandler对象。
使用JAF框架JAF框架的“正规”用户通过DataHandler而访问它(虽然把主要的子系统设计成也独立操作)。在构造DataHandler类时,基础DataSource对象与DataHandler相关。DataHandler检索来自DataSource的数据分类信息,或从构造器(constructor)中直接取得数据类型。一旦此初始化步骤完成,则可从DataHandler访问对数据项目所执行的命令清单。
当一应用发出对该清单的请求时,DataHandler使用所返还的MIME数据类型说明符(specifier),以从CommandMap对象中请求可获得的命令的清单。CommandMAp已知道可获得的命令(实现为Beans)及其所支持的数据类型。CommandMap根据被请求的MIME类型和CommandMap的语义把所有命令的整个清单的子集返还给DataHandler。
最终当该应用希望把一命令应用于某些数据时,它通过适当的DataHandler界面(使用CommandMap来检索用于对数据进行操作的适当Bean)来实现。包容器(container)(框架的用户)使数据与Bean之间相关。
JAF使用脚本该脚本使用假定的文件观察器(viewer)应用,以示出在实现JAF所涉及任务的正常流程。此文件观察器类似于CDE的‘dtfile’或Windows 95的浏览器(Explorer)应用程序。在被启动时,它给用户呈现可获得的文件的显示。它包括类似于功能的CDE的dtfile或Explorer的‘右鼠标’菜单,其中在该项目的弹出式菜单中列举了对选中的数据项目所进行的所有操作。
典型的用户启动该应用来查看文件目录。当用户通过点击而指定一文件时,该应用显示列举了该文件可获得的所有操作的弹出式菜单。文件系统观察器应用程序通常包括‘编辑’、‘查看’和‘打印’命令等可获得的操作。例如,选择‘查看’使该应用程序在观察器中打开选中的文件,该观察器可显示该文件中所保存的数据类型的数据。
为了清楚,把该应用所进行的任务的描述分成三个分立的步骤初始化此应用构造对文件系统的查看。
取得命令清单此应用呈现选中数据项目的命令清单。
执行命令此应用对选中的数据对象执行命令。
初始化以下所述的界面之一为‘DataSource’对象。此DataSource对象把基础数据对象封装成一类,这一类抽象出其基础数据存储机制并为其用户表现为公共数据访问和分类界面。文件观察器应用查询文件系统的内容。
该观察器例示目录中每个文件的DataSource对象。然后,它例示一个DataHandler,把该DataSource作为其构造器的自变量。DataHandler的例示不能没有DataSource。DataHandler对象给客户应用提供了对CommandMap的访问,这样提供了能访问可对数据进行操作的命令的服务。该应用保存DataHandler对象的清单,查询其名称和图标以产生其显示。
//对于目录中的每个文件File file=new File(file_name);DataSource ds=new FileDataSource(file);DataHandler dh=new DataHandler(ds);取得命令清单一旦该应用已被初始化且已把文件清单呈现给用户,则用户可选择该清单上的文件。在用户选择文件时,该应用显示了列举对该文件可获得的操作的弹出式菜单。
该应用通过从与文件有关的DataHandler对象中请求可获得的命令的清单来实现此功能。DataHandler从DataSource检索该数据的MIME类型,并向CommandMap查询该类型可获得的操作。此应用解释此清单,并在一弹出式菜单上把该清单呈现给用户。然后,用户可从该清单中选择一个操作。
//取得一对象的命令清单CommandInfo cmdInfo[]=dh.getPreferredCommands();PopupMenu popup=new PopupMenu(“Item Menu”);//以可获得的命令提供弹出for(i=0;i<cmdInfo.length;i++)popup.add(cmdInfo[i].getCommandName());//添加和示出弹出add(popup);popup.show(x_pos,y_pos);执行命令在用户已从弹出式菜单中选中一命令后,该应用使用适当的命令信息(CommandInfo)类来检索相应于选中命令的Bean,使用适当的机构(DataHandler、Externalization等)使该数据与该Bean相关。某些CommandObject(例如观察器)是从java.awt.Component中再细分得到的,且需要给它们提供母包容器。其它(类似于默认打印命令)可能不呈现用户界面。这使得它们足够灵活地起到独立观察器/编辑器的作用,或者可起到复合文档系统中的元件的作用。‘应用’负责给CommandObject提供执行的适当环境(包容,生命周期等)。
//取得命令对象Object cmdBean=cmdInfo[cmd_id].getCommandObject(dh,this.getClassLoader());//使用适当的串行化(serialization)/形象化my_awt_container.add((Component)cmdBean);另一脚本第一脚本是‘正规’情况。还存在应用已产生代表其数据的对象的情况。在此情况下,对把现有对象转换成输入流(InputStream)的DataSource产生的存储器中的实例未有效地使用系统资源,且可导致数据保真度的损失。
在这些情况下,该应用可使用DataHandler(对象obj(Object obj)、串mime类型(String mimeType))构造器来例示一DataHandler。DataHandler实现可变换(Transferable)界面,从而所使用的Bean可请求不同于InputStream的表象。DataHandler还为对它发出请求的消费者构造DataSource。数据内容处理程序(DataContentHandler)还扩展到允许从Object转换到InputStream。
以下代码是使用JAF的数据库前端的一个例子,它提供了就对象而言的查询结果。
/***使观察器查看我的查询结果*/Component getQueryViewer(QueryObject qo)throws Exception(String mime_type=qo.gatType();Object q_result=qo.getResultObject();DataHandler my_dh=new DataHandler(q_result,mime_type);return(Component)my_dh.getCommand(“view”).getCommandObject(my_dh,null));}JAF框架核心类界面DataSourceDataSource界面提供了具有某些任意数据集合的抽象(abstract)JavaBeansTMActivation Framework。它以适当的InputStream和输出流(OutputStream)的形式提供该数据及其访问的类型。
类DataHandlerDataHandler类为可以许多不同的源和格式获得的数据提供了相容的界面。它使用DataContentHandler管理简单的流-串转换及相关操作。它对可操作于数据的命令提供访问。使用CommandMap来找到这些命令。
界面DataContentHandler由可用来扩展Transferable界面的DataHandler实现的能力的对象来实现DatacontentHandler界面。通过DataContentHandler,可把此框架扩展到把流转换成对象及把对象写到流。
界面数据内容处理程序工厂(DataContentHandlerFactory)此界面定义了DataContentHandler的工厂。此界面的实现应把MIME类型映射成为DataContentHandler的一个实例。实现此界面的类的设计方式与Java.net.URL中所使用的内容处理程序(ContentHandler)机制的相同。
类CommandMapCommandMap类给观察器、编辑器、打印等系统中可获得的对象的登记提供了界面。开发人员期望使用以此包所包括的CommandMap(邮件盖命令映射(MailcapCommandMap))或开发他们自己的。注意,此类中的一些方法是抽象的。
界面CommandObjectActivation Framework知道的Beans实现此界面,以找出要求它们执行那条命令动词,并获得代表它们应操作的数据的DataHandler。也可使用不实现此界面的Beans。这些命令可使用可形象化(Externalizable)界面或使用应用专用的方法来获得数据。
类CommandInfoCommandMap实现使用CommandInfo类来描述命令请求的结果。它给请求者提供了被请求的动词及bean的实例。还有一种方法是返还实现该命令的类的名称,但不保证返还有效值。为此允许对CommandInfo进行再细分来提供特殊行为的CommandMap实现。例如,一可交付使用的框架(FrameworkDeliverables)。
JAF框架辅助类类FileDataSourceFileDataSource类实现封装文件的简单DataSource对象。它通过文件类型映射(FileTypeMap)对象来提供数据分类服务。
类FileTypeMapFileTypeMap是为文件提供数据分类界面的抽象的类。该类的实现将实行从文件名或File对象得到内容类型的取得内容类型(getContentType)方法。FileTypeMap可使用任何方案来确定数据类型,通过检查文件的文件扩展名(类似于Mime类型文件类型映射(MimetypesFileTypeMap))以打开文件并从尝试从该文件的内容中得到其类型。FileDataSource类使用默认的FileTypeMap(MimetypesFileTypeMap,除非改变)来确定文件的内容类型。
类MimetypesFileTypeMap此类扩展了FileTypeMap并提供其文件扩展名提供文件的数据分类。它使用.mime.types格式。
类URLDataSource此URLDataSource提供了把URL对象包装(wrap)在DataSource界面内的对象。URLDataSource简化在JavaBeansTMActivationFramework内管理URL所描述的数据,因为可使用这一类来产生新的DataHandler。
类MailcapCommandMapMailcapCommandMap扩展了CommandMap抽象类。它实现了其构造以邮件盖文件(RFC 1524)为基础的CommandMap。可通过编程和构造文件来构造MailcapCommandMap。
类激活数据特色(ActivationDataFlavor)ActivationDataFlavor是java.awt.datatransfer.DataFlavor的一个特殊子类。它允许JAF以等于方法通过新的构造器及改进的MIME分析来设定DataFlavor(数据特色)所存储的全部三个值。除了改进的分析以外,其语义与JDK的DataFlavor类相同。
类不支持的数据类型例外(UnsupportedDataTypeException)被请求操作的信号不支持被请求的数据类型。
类Mime类型(MimeType)如RFC 2045和2046中所定义的多用途因特网扩展(MIME)类型。
小型脚印尺寸装置应用/服务包容框架如上所述,诸如个人联系清单服务等在小型脚印尺寸装置上运行的书签服务或其它应用/服务可调用分开的服务模块对特定数据源执行用户选中的动作。由于该系统可以是开放端的,从而允许对各种类型的数据源定义各种动作,所以小型脚印尺寸装置的软件应用/服务可能需要或想要以模块化的可扩展轻便应用/服务包容框架为基础。以下描述这种包容框架。
图5-硬件体系结构方框5是示出典型小型脚印尺寸装置的硬件体系结构的方框图。如这里所使用的,小型脚印尺寸装置是一种硬件装置,它包括诸如处理器和系统存储器等计算资源,但对一个或多个资源的约束明显多于典型的桌上型计算机。例如,小型脚印尺寸装置可具有两兆字节或更少的存储器,而典型的桌上型系统可具有64兆字节或更多。此外,就处理器类型或处理器速度或这两者而言,典型的小型脚印尺寸装置的处理能力明显地低于典型桌上型计算系统。例如,个人数据助理器件可具有16MHz的处理器,而典型的桌上型系统可具有100MHz或更高的处理器速度。此外,典型的小型脚印尺寸装置可具有的显示器尺寸明显小于桌上型计算系统的显示器屏。例如,与桌上型监视器的显示器屏相比,手持式计算机的显示器屏通常较小。
注意,给出特定的数字只是为了示例,并用作比较。例如,虽然个人数据助理装置具有典型数值为上述两兆字节的存储器,但具有八兆字节或更大的存储器的个人数据助理也可以仍然是小型脚印尺寸装置。
与典型的桌上型计算系统相比,除了如上所述的存储器、处理器和显示器尺寸资源以外,小型脚印尺寸装置可能对其它资源类型也有约束。例如,典型的小型脚印尺寸装置可没有硬盘,可没有网络连接,或者可具有间歇的网络连接,或可具有无线网络连接等。
许多小型脚印尺寸装置是便携式的和/或比桌上型计算机小,但也不必如此。此外,许多小型脚印尺寸装置主要或专门由电池供电。此外,小型脚印尺寸装置通常可具有的可能的用途范围比典型的桌上型计算系统更有限或更窄。小型脚印尺寸装置包括以下例子手持式计算机、可佩戴的装置(例如,腕表式计算机)、个人数据助理(PDA),“智能”蜂窝式电话、机顶盒(set-top box)、游戏机、全球定位系统(GPS)单元、电子教科书装置等,但不限于此。由于新型的消费装置快速涌现,不可能提供小型脚印尺寸装置的详尽清单。然而,术语“小型脚印尺寸装置”试图包括合理地包含在上述术语的精神和范围内的这些器件。
图5示出典型的小型脚印尺寸装置的方框图。注意,根据需要,小型脚印尺寸装置可具有各种不同的体系结构。为了简化,省略了理解本发明的操作所不需要的硬件元件。
如图5所示,小型脚印尺寸装置包含处理器100。处理器100可以是各种类型中的任一种,包括例如Pentium类的x86处理器、PowerPC处理器、以及其它不太强大的处理器或专门为小型脚印尺寸装置所开发的处理器。处理器100可具有各种时钟速度,包括与桌上型计算机类处理器中找到的时钟速度相类似的时钟速度,以及诸如16MHz等较低的时钟速度。
如图5所示,该装置还包括系统存储器102。系统存储器102可包括RAM或ROM等各种类型的存储器。较之典型的桌上型计算机系统,典型的小型脚印尺寸装置可具有非常小的存储器存储容量。
小型脚印尺寸装置还可包括一个或多个输入机构。图5中示出输入机构104。该输入机构104可以是适用于特定装置的各种类型中的任一种。例如,输入机构可以是键盘、鼠标器、跟踪球、触笔、麦克风等。
小型脚印尺寸装置还可包括一个或多个显示机构。在图5中示出显示器106。然而,小型脚印尺寸装置可不包括显示器,或可包括诸如音频扬声器等其它类型的输出机构。显示机构106可以是适用于一特定装置的各种类型中的任一种。较之桌上型计算机系统的显示器,诸如智能蜂窝式电话的典型小型脚印尺寸装置的显示机构可较小。
图6-硬件/软件层次6示出运行包容框架内的应用和服务的系统中所涉及的硬件/软件层的典型层次。该图是示意性的,可添加、组合或省略各层以适应特定装置或实现。
图6中所示的基础层为装置硬件层120,它包括支持诸如处理器和系统存储器等软件资源所需的硬件资源。在一个实施例中,小型脚印尺寸装置的硬件(诸如图5中所示小型脚印尺寸装置的硬件例子)实现图6所示的硬件层120。然而,在其它实施例中,硬件层120可以在其它类型的装置中实现,诸如资源约束比诸如智能卡等典型小型脚印尺寸装置更多的装置。
如图6所示,从硬件层向上的下一层是操作系统层122。如本领域内众所周知,操作系统在装置硬件与装置上运行的软件之间起到接口层的作用,且用作诸如输入/输出、存储器管理等低级任务的管理器。图6所示的操作系统122可以是任意特定的操作系统,它支持图6所示的更高层。操作系统122可以是适用于或特别为在小型脚印尺寸装置中使用而编写的小而有效的操作系统。例如,操作系统122可以是Sun Microsystems,Inc.销售的JavaOS操作系统。
在一个实施例中,在JavaTM应用环境中把包容框架实现为一个或多个JavaTM类。如图6所示,从操作系统向上的下一层是JavaTM虚拟机层124和JavaTM应用编程界面(API)类库层126。这两层一起构成JavaTM应用环境或JavaTM平台。可使用JavaTM库126来建立实现包容框架的类并编译成字节码。这些字节码是在JavaTM虚拟机124上执行的指令,JavaTM虚拟机124与操作系统122和/或装置硬件120交互。
在一个实施例中,在个人Java(PersonalJava)JavaTM应用环境中实行包容框架,该环境是被设计成完全可定标、模块化和可配置同时需要最少的系统资源的JavaTM平台。PersonalJava包括JavaTM虚拟机和包括核心和任选API及类库的JavaTMAPI的子集。此外,PersonalJavaTMAPI包括在诸如JavaTM抽象窗口工具包(AWT)的专门版本等资源有限环境中的消费者应用所需的专用特征。PersonalJavaTMAWT库旨在调谐消费产品的视觉和触觉,从而提供图形和窗口特征,同时支持低分辨率的显示器和替换的输入装置(通过用于鼠标器和键盘类装置的扩充事件模型)。
再参考图6,把包容框架128示作JavaTM平台层往上的下一层。如上所述,包容框架128还可基于其它平台。如以下详细所述,包容框架128通过例如使能模块登记、查找、实例跟踪等管理程序模块。模块可提供各种服务。为了使用其它模块的服务,包容框架128使能请求其它模块的模块。可把应用实现为利用其它模块的服务的模块。因而,包容框架128提供轻便、可扩充的服务和应用框架,使应用共存并共享一模块化的代码基础(code base)。
这种类型的可扩充体系结构使得多个程序模块协作,这是对小型脚印尺寸装置的重要提高。历史上,小型脚印尺寸装置限于相对窄的使用。例如,蜂窝式电话通常用于通话及其它极少的用途。然而,随着各种技术的改进,使得小型脚印尺寸装置变得“更加智能化”,具有多用途处理器及更大的显示器屏幕等,想要扩充小型脚印尺寸装置中所使用的应用的领域。
本包容框架可使与桌上型计算环境相关的各类应用和服务在小型脚印尺寸装置中以膝上型计算机用户熟悉的方式合作。如图6所示及如上所述,可把在小型脚印尺寸装置上运行的服务和应用130实现为在包容框架层128上所建立的模块。例如,使用包容框架128的一个实施例建立了Sun Microsystems,Inc.所销售的Personal Applications组。该Personal Application Suite包括结合了诸如浏览器、电子邮件客户和个人组织器等应用的集合。
图6还示出包容框架128把装置外的服务132与装置上的应用/服务130相结合。例如,包容框架128可在小型脚印尺寸装置与诸如Jini网络等网络之间提供接口。小型脚印尺寸装置系统可登记其被网络中的其它装置或客户所使用的服务。包容框架还可使能小型脚印尺寸装置内的服务和应用来查找和使用其它网络装置所提供的服务。以下参考图7更详细地讨论把小型脚印尺寸装置的服务与网络服务相结合。
图7-11示例的网络装置和服各联合图7示出一示例网络,其中把运行包容框架中的应用/服务的小型脚印尺寸装置连到基于本地服务的网络。在所示的例子中,利用包容框架144的小型蜂窝式电话134连到该网络。还示出,打印机130和因特网使能的电视机132连到该网络。在此例中,假设打印机130和电视机132可进行操作以把服务输出给一网络并可使用该网络上其它装置的服务。例如,打印机可输出其打印服务138,因特网电视机可查找打印服务并使用它来打印网页。为了便于装置和服务以这种方式联合,查找服务136位于网络上。查找服务136可位于诸如网络服务器等分开的装置上。
可以各种方式来实现装置与服务的联合。例如,可从Sun Microsystems,Inc.获得的JiniTM技术包括组件和使能图7所示类型的分配系统的编程模型。在一个实施例中,图7所示的本地网络可以是一JiniTM网络,打印机130和因特网电视机132可以是JiniTM使能的装置。每个装置可进行操作以找到JiniTM网络查找服务并以此查找服务来登记该装置所提供的服务。查找服务把指示一服务所提供的功能的界面映射到实行此服务的对象的集合。
为了把其服务添加到一服务联合中,装置或其它服务提供者可使用“发现”协议首先找出适当的查找服务。图8示出此发现过程。如图所示,例如图7所示的打印机130等服务提供者164可在本地网络上播放使任意查找服务识别它们自己的请求。
服务提供者164一旦找到查找服务160,服务提供者164可使用“连接”协议以查找服务160登记该服务提供者的服务。图9示出此连接过程。服务提供者164可产生可被客户用来调用该服务的服务对象。如图9所示,然后可把用于所提供的服务的服务对象与包含有关所提供的服务的类型或名称的信息的服务属性或描述符一起装入查找服务160中。例如,在JiniTM网络中,图7所示的打印机130可产生包括用于打印服务138的JavaTM编程界面的服务对象。然后,打印机130可调用查找服务136的“登记”方法,把此服务对象与规定把服务138登记为打印服务的属性、打印分辨率及可能的纸张尺寸等一起传送。
服务提供者164一旦把其服务与查找服务160相连接,则其它网络客户可请求并使用这些服务。在图10中示出请求服务、调用查找的过程。在发现查找服务后,客户162可从查找服务160请求一服务,这通过使用被请求服务的描述来完成。查找服务160尝试匹配请求者给出的描述同已与查找服务相连接的服务。查找服务160可使用服务提供者164在连接过程中所提供的服务属性来进行此匹配。如果找到匹配,则查找服务160把适当的服务对象提供给客户162。例如,可把被请求服务的JavaTM界面提供给客户162。
客户162一旦接收到来自查找服务的服务对象,该客户可调用该服务。图11示出服务调用过程。在调用一服务时,客户162和服务提供者164可相互直接通信。可把各种交互协议中的任一种用于此通信。例如,所使用的协议可以是JavaTM远程方法调用(Remote Method Invocation)(RMI)、CORBA、DCOM等。客户从查找服务接收到的服务对象可通过例如调用RMI方法回调位于服务提供者处的代码,或者它可在本地执行来提供被请求的服务,或者它可使用这些途径的组合。
如图7所示,用于本地网络的查找服务136还可对诸如因特网154等外部网络起到网关的作用。因而,可把基于服务的分布式计算模型扩充到包括本地网络以外的客户和服务。例如,可把为Open Service Gateway Initiative(OSGI)所开发的技术转到实现这种类型的分布式计算系统。
这种在不同网络与因特网之间及跨这些网络共享的服务可使能待开发的新型应用。例如,商人可使用因特网服务来记录有关特定消费者的数据,广告服务提供者可使用此数据把上下文特定(context-specific)的广告推向消费者装置,这是依据该装置连到的本地网络等来完成的。例如,订户可进入一大型购物中心并通过无线连接把个人数据助理(PDA)连接到该购物中心的本地网络。基于因特网的消费者数据服务可与该购物中心网络的查找服务相连接,并可提供有关已接入购物中心网络的特定客户的信息。然后,在此购物中心网络中运行的服务可使用此数据以及诸如订户在购物中心内的当前位置、日期等其它因素,以产生个人化的广告并把这些广告推向订户的PDA。
以图7的基于网络的服务的许多其它例子是可能的。例如,网络使能的家用消费者装置可通过因特网利用电力公司所提供的服务来管理家庭耗电;安全服务提供者可通过网络服务监控家庭或特定装置,并可在财产被侵占时立即通知拥有者;健康服务提供者可通过与医疗器械通信来远程地监控病人的情况;等等。
在以上所列的例子中,假设装置透明地连到网络,把网络服务与装置所属服务相结合,并输出装置所属服务给网络客户所使用。这里所述的包容框架可提供把诸如个人数据助理、手持式计算机、智能蜂窝式电话等信息尺寸装置的服务和应用与网络服务联合相结合的必要界面。
如图7所示及以下更详细的描述,包容框架144具有它自身类型的查找服务146。包容框架144内的查找服务146可利用发现、连接、操作和服务调用过程,与如上所述的本地网络查找服务相类似地进行操作。例如,个人组织器应用152可利用诸如日程表服务、联系清单服务、书签服务等(未示出)各种服务。个人组织器应用152可获得通过包容框架查找服务146与这些服务进行通信的索引。
包容框架144可把它自己的查找服务146与诸如图7所示的本地网络查找服务136等装置外的查找服务相结合。这样,诸如包容框架的应用/服务148、150和152变得可获得诸如打印服务138和网络服务140等装置外的服务,反之亦然。例如,个人组织器应用152可从包容框架查找服务146中请求打印服务。包容框架查找服务146可首先搜索装置上的打印服务。如果未找到,则包容框架查找服务146可从网络查找服务136中请求打印服务。然后,可把打印服务138的服务对象返还个人组织器152。在图7中示出装置上的服务/应用与装置外的服务之间的接口142。以下细节有关如何实现把装置上/装置外的服务相结合。
如上所述,服务的客户自己可以是其它客户的服务。例如,图7所示智能蜂窝式电话的电子邮件客户“应用”150本身可以是在包容框架144上运行的客户或网络客户的服务。例如,在发生故障的情况下,图7所示的打印机130可请求一电子邮件服务,从而可把诊断信息发送给服务技术人员。如果网络查找服务136不能找到基于网络的电子邮件服务,则它可通过接口142从智能蜂窝式电话134中请求电子邮件服务。可把在包容框架144中运行的电子邮件应用/服务150的服务对象传送给发出请求的打印机客户130。在此例中,打印机客户130可直接与电子邮件应用/服务150进行通信,以把包含诊断信息的电子邮件发送给打印机服务技术人员。电子邮件应用/服务150可在能找到电子邮件服务器服务时立即发送该电子邮件,或者它可在以后蜂窝式电话用户连到不同网络而可利用此服务时发送电子邮件。
虽然以上描述参考了诸如JiniTM技术等特定协议和编程模型,但注意,这些特定技术只是示意性的。例如,可把包容框架内的应用和服务与利用各种类型的标准、协议和编程模型中任一种的客户、服务、装置、网络等相结合,这些标准、协议和编程模型包括JiniTM、CORBA、COM/DCOM、Bluetooth、CAL、CEBus、HAVi、Home API、HomePNA、HomePnP、HomeRF、VESA等,但不限于此。
图12-包容框架方框12是示出包容框架环境的基本体系结构的摘要方框图。如上所述,包容框架提供应用和服务的包容系统。在系统内,以模块为单元来管理这些应用和服务。包容框架是轻便的;在一个实施例中,模块可与进行所有模块管理的单个框架管理器对象交互。在这里把此管理器叫做中央框架实例。在一个实施例中,可把中央框架实例实现为JavaTM类的实例。图12示出中央框架实例170及包括/管理的代码和数据。注意,图12示出了包容框架的一个实施例。其它实施例可利用不同的体系结构和/或可以不同的编程语言或软件环境来实现。例如,在其它实施例中,可由多个对象或组件来进行图12所示中央框架实例170所进行的模块管理/包容。
如图12所示,中央框架实例170包括代表目前装载在该系统中的模块的数据182。包容框架体系结构是不分层的。因而,可把所装载的模块表示为不分层的模块清单或阵列。此不分层的系统有助于保持核心包容框架代码和在框架块(compact)内运行的模块。利用诸如JavaBeansTM组件等分层组件的系统可提供相关的益处,但这些益处以需要更多系统资源的更复杂的管理系统为代价。然而,包容框架确实提供了一种不分层模块机构,以获得分层包容系统的许多益处。以下针对图13和14来描述此机构。
如图12所示,在一个实施例中,中央框架实例170包括模块可调用的公共可访问的方法178。可把这些方法分成抽象组。例如,一组方法172可包括查找方法。查找方法实行如上所述的查找服务功能。模块可把查找方法的模块描述符传送到中央框架实例170,以找到特定的服务模块。以下针对图16描述包容框架查找过程。另一组框架方法174可包括用于装载和卸载模块的方法。在找到服务模块后,客户模块可请求中央框架实例170来装载该服务模块并把一索引返还被装载的模块。然后,客户模块可调用此服务。当客户结束使用时,可调用一框架方法来释放此服务模块。虽然被描述为个别的组,把方法分成查找和装载/卸载组的分割可以仅仅是概念上的分割。例如,在一个实施例中,查找方法还可装载与它匹配的模块并可把一索引返还此匹配的模块。
图12还示出系统数据180(叫做框架元数据),它可包括描述所装载模块的清单的数据182以及描述系统状态的其它数据。中央框架实例170的方法176的另一抽象组可包括反射(reflection)方法。反射方法与其它方法组稍有不同,因为它们对核心元数据提供直接访问。特定类的模块(叫做系统模块)可调用反射方法来获得对元数据180的访问。常规的模块不可以访问元数据180。
在接收到核心系统数据180的索引后,系统模块可以任何想要的方式使用或修改该数据。因而,包容框架完全可扩充。中央框架实例170表示可保持较小,可添加系统模块来实行还未被中央框架实例170使能的任何功能。例如,系统模块可使能以上针对图7-11所述的在包容框架内运行的应用/服务和以外部网络为基础的服务之间的结合。
在此例中,可把这种系统模块编写为符合外部网络的协议和编程模型的辅助查找服务。例如,对于JiniTM网络,可编写一系统模块,该模块发现JiniTM网络查找服务并连接此网络查找服务,把它自己登记为辅助查找服务。在网络客户请求服务时,网络查找服务可对于由系统模块所实行的查找服务。该系统模块可尝试在包容框架内找到与被请求服务的描述匹配的服务模块。如果未找到匹配,则系统模块可进行任何必要的步骤,以把该服务模块输出给网络客户,因为该系统模块完全可访问系统模块清单和元数据。例如,系统模块可把匹配的服务模块装入并登记在系统中,并把新装载的模块的诸如JavaTM界面等界面返还请求者。
图13和14-模拟分层环境常常想要建立分层的模块上下文。例如,系统中可存在几个相同类型的服务模块,但每个模块的表现可稍有不同。在分层包容系统中,可通过发出请求的模块的母模块或包含模块滤除一模块对一服务的请求,从而可把一特定服务模块的索引传回请求者。分层包容还具有其它固有的优点,诸如能在模块层次中容易地分配和存储数据。然而,如上所述,就诸如存储器和处理能力等所需的系统资源而言,完全实现分层包容系统可能很费钱。包容框架可给开发者和应用提供具有分层包容的许多益处而没有通常与其相关的高的开销成本。
例如,包容框架的一个实施例允许模块把它们本身登记为其它模块的模块请求收听者。例如,模块A可通过调用中央框架实例的添加请求收听者(AddRequestListerner)方法把它本身登记为模块B的请求收听者。当模块B随后调用中央框架实例的一个方法来找到特定服务时,中央框架实例检查模块B的任何模块请求收听者。在此情况下,它找到模块A为请求收听者,并请求模块A把所请求的服务模块提供给模块B。
图13和14示出模块请求收听者在包容框架中的示例使用。图13示出打印服务所需的概念上的模块层次。如图所示,在打印管理器模块190中封装两个打印服务模块192和194、打印服务A和打印服务B。例如,这两个打印服务192和194可打印到不同的位置,具有不同的分辨率和彩色能力等。这两个打印服务模块中的任一个可满足另一模块对一打印服务所作的查找请求。然而,想要利用选择并返还特定打印服务的打印管理器模块。例如,打印管理器190可选择客户模块据此作出打印请求的打印服务,或者打印管理器可显示请求用户输入想要的打印服务特性的对话框。
虽然包容框架利用不分层的包容模型,但可通过把打印管理器模块190登记为可请求一打印服务的客户模块的模块请求收听者来实现图13中所示的层次。图14示出可在一系统中运行的示例模块198。如上所述,这些模块本身可把其它模块用作服务。依据包容框架的不分层模型,所示的模块排列成不分层布局,而没有固有的模块包容。
在此例中,可操作网络浏览器模块196来作出打印请求,例如请求打印一网页。如图14所示,可把打印管理器模块190登记为网络浏览器模块196的一个模块请求收听者。在接收到来自网络浏览器196的打印服务请求时,包容框架查找服务可找到被登记为网络浏览器模块196的一个请求收听者的打印管理器模块190,并可请求该打印管理器模块190把打印服务模块提供给网络浏览器请求者196。然后,打印管理器模块190可返还打印服务模块A 192或打印服务模块B 194的索引,或打印管理器模块190可给用户呈现一对话框,以使用户决定返还哪一个打印服务模块等。因而,可对包容框架的不分层模块实现图13的想要的模块层次。
图15-包封装单元可把模块封装成一个个单元(叫做包)。此封装适用于几个目的。例如,包提供了作为一个单元管理有关代码和数据的便利机构。如果紧密相关的模块具有静态的相关性,则可把它们封装在一起成为一个包。可使用包来管理系统内的安装和升级。
图15示出一个示例的包200,它把有关个人信息管理器(PIM)的模块组合在一起。图中示出日程表模块202、联系清单模块204、约会模块208和用户界面模块206。如果需要,该包中可存在各种其它模块。PIM包200的模块还可利用在包容框架内运行的各种核心服务模块,诸如书签服务、查找服务等。使用PIM包可简化PIM应用的安装和升级。这样把PIM模块封装成一个包还有对多目标开发产生不同的代码单元的开发时间的益处。
包还提供了给不分层的模块提供运行时间上下文的附加方法。在把一模块装入系统中时,中央框架实例可存储指定该模块属于哪一个包(如果有的话)的元数据。服务模块以后可使用此信息,依据客户所属的包,给不同的框架模块提供不同的服务。例如,客户模块可使用文件访问服务模块来获得根目录。文件访问模块可依据客户所属的包,给不同的客户返还不同的根目录。
图16-模块请求流程16是示出中央框架实例可在接收到来自一客户模块的对一服务模块的查找请求时执行的典型查找过程的流程图。注意,图16是示意性的,可组合、省略或修改各步骤。例如,如上所述,可添加定制查找过程的系统模块。
在图16的步骤300中,中央框架实例接收来自请求者模块的模块查找请求。例如,请求者模块可调用中央框架实例的请求模块(RequestModule)方法,传送被请求的服务模块的模块描述符以及请求者模块本身的索引。可把请求模块的索引添加到系统数据中,从而保持跟踪服务模块用户。如以下更详细的描述,一模块可在其它模块都不使用它时被卸载。
请求者模块所传送的模块描述符指定了有关被请求模块(框架实例可使用它来尝试找到匹配的模块)的各种属性。此模块描述符可以是包括诸如被请求模块的服务类型、类的名称和/或服务专用属性等信息的对象。请求者还可把一文本描述传送到中央框架实例,中央框架实例可使用此文本描述来产生模块描述符对象。
在步骤302,中央框架实例查看是否对发出请求的模块登记了任何请求收听者模块。如果找到请求收听者,则在步骤304,框架实例把该请求通知请求收听者并指令该请求收听者尝试提供与模块请求描述符匹配的模块。如果请求收听者可提供匹配的模块,则执行进到步骤314。否则,可请求其它登记的请求收听者来提供一模块,直到找到匹配或不再有请求收听者。
如果未找到请求收听者,或者如果请求收听者不能提供被请求的模块,则执行进到步骤306。然而,在一个实施例中,如果对发出请求的模块登记一个或多个请求收听者,且它们都不能提供匹配的模块,则执行可在步骤304后停止。在步骤306,中央框架实例检查模块的清单,以确定模块之一是否与模块描述符匹配。如果找到匹配,则在步骤308,框架实例检查匹配的模块是否可提供多个实例。如果不是,则执行进到步骤314。
如果在步骤308找到的匹配模块可提供多个实例,则中央框架实例可继续搜索模块清单中的匹配。如果不再有要搜索的模块,则执行进到步骤310。在步骤310,框架实例搜索模块清单中模块提供者的模块。模块提供者模块是能提供被请求模块的模块。例如,可把网络查找模块输入为包容框架的模块提供者模块。
如果找到模块提供者模块,则在步骤312,中央包容实例把该请求通知模块提供者模块并指令该模块试图提供与模块请求描述符匹配的模块。如果找到匹配,则执行进到步骤314。如果模块提供者不能提供被请求的模块,则中央框架实例可搜索其它模块提供者模块并重复步骤312。如果该模块清单中不存在模块提供者或每一个模块提供者可提供被请求的模块,则通知请求者该请求不能完成,且执行结束。
可从步骤304、308或312到达步骤314。在所有情况下,找到与模块请求描述符匹配的模块。在步骤314,把请求者登记为匹配模块的用户,在步骤316,把匹配模块的索引返还请求者。在步骤314中还执行装载匹配模块并对其进行初始化所涉及的任何必要初始化步骤。例如,模块可具有在装载模块时调用的初始化(Initialize)方法。
如上所述,图16的流程图是示意性的,各种实施例可具有不同的查找/装载脚本。例如,模块可调用中央框架方法来装载服务模块而不返还匹配模块的索引,或者在某些情况下可忽略请求收听者等。
图17-模块释放流程图在客户模块结束使用一服务模块时,客户可调用中央框架实例的一个方法来释放该模块。图17是示出模块释放过程的流程图。图17的流程图是示意性的,可根据不同实施例的需要或要求组合、省略、添加或修改各步骤。
在步骤330,中央框架实例接收来自一用户模块的模块释放通知。如以上对图16所述,当用户模块请求一服务模块时,把此用户模块添加到服务模块的用户清单中。在步骤332,中央框架实例从被释放模块的用户清单中除去释放用户模块。在步骤334,框架实例通过例如检查释放模块的用户模块清单中是否存在其它模块,来确定任何其它用户模块释放使用此被释放的模块。如果是这样,则执行停止。
如果其它模块都不使用被释放的模块,则中央框架实例可尝试卸载被释放的模块。在步骤336,框架实例可调用被释放模块的可结束(CanFinalize)方法。如果可卸载该模块,则CanFinalize返还真,否则返还假。如果CanFinalize方法在步骤336返还假,则执行停止。否则,可调用释放模块的结束(Finalize)方法。此Finalize方法可执行诸如释放资源等卸载模块的任何必要步骤。然后可卸载该模块,根据特定实施例,这可能涉及垃圾回收等。
虽然已结合特定实施例描述了本发明,但它不限于这里提出的特定形式,相反,它将覆盖包含在附加权利要求书所限定的本发明的精神和范围内的合理的替代、修改和等价物。
权利要求
1.一种用于产生数据源的持久性索引的系统,其特征在于包括小型脚印尺寸装置,其中所述小型脚印尺寸装置包括处理单元和系统存储器;存储在所述系统存储器中的软件框架,其中所述软件框架支持程序模块,其中所述程序模块实行计算服务;由一个或多个所述程序模块实行的第一计算服务,其中所述第一计算服务可进行操作,以响应于用户选择一数据源而产生对所述数据源的持久性索引;由一个或多个所述程序模块实行的第二计算服务,其中所述第二计算服务可进行操作,以使用所述持久性索引来访问所述数据源。
2.如权利要求1所述的系统,其特征在于还包括可进行操作以产生封装所述数据源的实体的激活框架;所述第一计算服务产生的所述持久性索引查阅封装所述数据源的所述实体。
3.如权利要求2所述的系统,其特征在于所述激活框架还可进行操作,以调用所述第二计算服务对所述数据源执行操作。
4.如权利要求3所述的系统,其特征在于所述激活框架是JavaBeansActivation Framework。
5.如权利要求1所述的系统,其特征在于所述软件框架需要小于300千字节的存储器。
6.如权利要求1所述的系统,其特征在于小型脚印尺寸装置是来自于个人数据助理(PDA)、蜂窝式电话和全球定位系统(GPS)接收器所构成的一组小型脚印尺寸装置。
7.如权利要求1所述的系统,其特征在于小型脚印尺寸装置是来自于游戏机、可佩戴的计算装置、机顶盒和电子书籍装置所构成的一组小型脚印尺寸装置。
8.如权利要求1所述的系统,其特征在于小型脚印尺寸装置包括小于2兆字节的存储器。
9.如权利要求1所述的系统,其特征在于所述小型脚印尺寸装置包括小于二十平方英寸的显示器屏。
10.如权利要求1所述的系统,其特征在于所述小型脚印尺寸装置是专用电池操作的。
全文摘要
智能蜂窝式电话、个人数据助理等小型脚印尺寸装置的用户可产生和存储涉及各种类型对象和/或数据源的书签。每个书签可包括指向对象/数据源的统一资源定位器。书签系统可以是开放端的,允许对任何类型的对象或数据源作书签。以后,用户或应用可使用这些书签为查阅各数据源,以对其执行诸如显示或编辑等操作。描述了使得在小型脚印尺寸装置上运行服务的轻便应用/服务包容框架。书签服务可与能封装各种类型的实体的激活框架协作。
文档编号G06F17/30GK1277397SQ0011889
公开日2000年12月20日 申请日期2000年6月15日 优先权日1999年6月15日
发明者M·贝克 申请人:太阳微系统公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1