用于在移动设备上共享库的方法和设备的制作方法

文档序号:6375129阅读:252来源:国知局
专利名称:用于在移动设备上共享库的方法和设备的制作方法
技术领域
本发明一般来讲涉及Java库,更具体来讲涉及在有限存储器Java设备上的应用程序之间共享Java库设备。
背景技术
由加利福尼亚州Santa Clara的Sun微系统公司开发的Java平台允许同一软件在各种计算机、用电设备、电子仪器及其他设备上运行。Java的一个优点在于基于Java技术的软件在支持Java平台的任何型号的设备上工作的能力。
Java平台的一个特定的特征是用于移动设备的Java运行时环境的可用性,比如包括可以从伊利诺斯州Schaumburg的摩托罗拉公司获得的iDEN电话在内的蜂窝式电话。这种环境被称为移动信息设备简档(MIDP),并且提供移动设备所需的核心应用程序功能性。
在高容量Java设备中的当前安装和类载入模型的MIDP中存在局限性。例如,如图1中所示,在当前模型中有一个集中的Romized类库10,其由所有应用程序12、12’、12”、12等等共享。然而,在应用程序自身之间没有共享类。这是一种正如MIDP 1.0规范所定义的所谓的“Sandbox安全模型”。因此,这种构造的第一个局限性就在于除非更新固件,否则无法更新该Romized类库。这导致丢失所有安装的应用程序。第二,应用程序能够将它们自己的库打包到一个Java存档(jar)文件中,这导致类库的潜在的重复。也就是说,每一应用程序具有它自己的类库组,而即使这些库可能是完全相同的。对于有限存储器设备而言,比如移动式电话等等,这不是高效率的。


图1是现有技术的Java Romized类库的方框图;图2是具有根据本发明的iJDL的Java Romized类库的方框图;图3是根据本发明的具有iJDL支持的类载入的流程图;以及图4是根据本发明的图3中的具有iJDL支持的类载入的流程图的延续。
具体实施例方式
为了解决在应用程序之间高效地共享库的需求,提供了一种新的共享库结构,以下简称iDEN Java动态库(iJDL)。iJDL具有多个优点。例如,iJDL可以在应用程序之间共享,能够被添加、移除、更新或者直接从网络中搜索到,并且可被充分配置为最大化地利用有限闪速存储器空间。有益的是,iJDL模型仍然符合由Sun所提议的MIDP 1.0规范所定义的标准Sandbox安全模型。
还可以提供Java应用程序管理器(JAM)来向用户提醒网络上可得到的共享库的任何更新。实际的更新是在接收到用户确认之后自动地执行的。为了安全性,iJDL的使用可以受到验证,以致仅仅授权的供应商被允许使用它。
如图2中所示,iJDL模型也使用被载入到诸如闪速类型存储器之类的存储器(Romized)100中的类库。iJDL 102、104、106提供应用程序108、108’、108”、108之间的接口。这些应用程序能够共享类库,从而节省有限闪速存储器空间。
每一iJDL 102、104、106具有描述信息文件(.jdl)以及jar文件(.jar)。iJDL描述信息文件的格式被定义如下必备属性iJDL-Name/*iJDL的友好名称*/
iJDL-Vendor/*供应商名称*/iJDL-Version/*版本号(xx.xx.xx)*/iJDL-Jar-Size/*iJDL包的大小*/iJDL-Jar-URL/*iJDL包的位置*/iJDL-1/*类路径*/iJDL-2/*类路径*/…iJDL-n/*类路径*/MicroEdition-配置/*CLDC-1.0*/MicroEdition-简档/*MIDP-1.0*/类路径可以是.jar文件或者统一资源定位标识(URL)。
可选属性包括iJDL-说明/*iJDL的说明*/iJDL授权/可以使用iJDL的应用程序的标准*/对于授权而言,使用应用程序的供应商名称来确定一个应用程序是否可以使用iJDL。例如,*——不管供应商为谁,任何应用程序都可以使用它;以及*摩托罗拉*——供应商名称必须包含“摩托罗拉”。iJDL包采用标准.jar格式,并且不要求MANIFEST.MF。为了进一步的增强安全性,iJDL描述信息文件可以被签名。
Java系统提供一种添加/移除/更新iJDL的方式。例如,当添加/移除/更新时,iJDL检验所有可以使用这一iJDL的应用程序,并且据此通知用户。从网络中检索类是基于会话的,并且可以被高速缓存以供以后使用。类载入器可以设置持久性的并且安全的HTTP连接来从信任的网络站点检索库。
对于使用iJDL的应用程序,在应用程序描述信息文件中添加额外的新属性,iJDL-path,这规定了所使用的特定iJDL(或多个iJDL)及其版本号。还可以规定多个iJDL的。例如iJDL-path-1xxx1.jdl,版本号iJDL-path-2xxx2.jdl,版本号…iJDL-path-nxxxn.jdl,版本号其中版本号被用于核对iJDL的版本。如果发生不匹配,则应用程序管理器据此通知用户。
应用程序通过Class.forName()方法访问iJDL中的类,其具有多个优于已知类访问方法的优点。例如,iJDL不需要编译和封装应用程序,并且更新iJDL不要求重新编译和重新分配应用程序。此外,只要iJDL保留同一接口,则可以在不修改或者重新设定应用程序的情况下更新细节。此外,还可以在不载入iJDL类的情况下安装应用程序。因而,只有当使用iJDL类的时候,以真正动态的方式载入它们。有益的是,必要时,在没有iJDL支持的情况下,应用程序仍可以通过对.jar文件中的库打包来正确地运行和执行。
图3图示出具有iJDL支持的类载入过程。在步骤150中,例如发起类A的载入。在步骤152,如果在Romized类库中发现该类,则过程退出并返回一条成功消息。否则,在步骤154,该过程确定类是否在该.jar文件中。如果是的话,则在步骤156中,从该应用程序.jar文件中载入该类。
如果没有在该.jar文件中找到该类,则在步骤158检验该.jad文件以确定它是否具有iJDL-path-x属性。如果没有在该.jad文件中找到iJDL-path-x属性,则过程退出,并附上一条失败消息。然而,如果找到iJDL-path-x属性,则在步骤160中,该过程进行检验以查看该类路径是否被验证过并得到了授权。不是的话,则该过程退出,并附上一条失败消息。
如果该类已经被验证过并得到了授权,则在步骤162发起从iJDL中载入该类的过程。在步骤164中,该过程确定类路径是否是一个文件。如果是的话,则在步骤166中,则从该iJDL.jar文件中载入该类。否则,在步骤168中,从网络中检索该类。
在步骤170中,当试图从网络中检索该类的时候,该过程确定网络服务是否可用。如果服务是不可用的话,则该过程退出,并附上一条失败消息。否则,在步骤172中,该系统确定是否从网络成功地检索到该类,优选的是经由一条安全超级文本传输协议(HTTPS)连接。否则的话,则该过程退出,并附上一条失败消息。然而,如果成功地检索到该类,则在步骤174中,它被以特定名称“x”来高速缓存,并且在步骤176中从“x”中载入该类。
应当被理解的是本发明的其他变型及其修改方案在其各个方面的实现方式对于本领域中的技术人员是清楚直观的,并且本发明不被所描述的具体实施例所限制。因此本发明意图涵盖属于此处公开和主张的基本底层原理的精神和范围的任何以及所有的修改方案、变型、或等效物。
权利要求
1.共享库结构,包括存储在存储器中的类库;被配置为访问该类库的多个应用程序;以及被配置为允许该多个应用程序共享访问多个类库的多个动态库。
2.如权利要求1所述的共享库结构,进一步包括用于表明更新的共享类库的可用性的应用程序管理器。
3.如权利要求2所述的共享库结构,进一步包括用于向应用程序管理器表明更新的共享类库的位置的标记符。
4.如权利要求3所述的共享库结构,其中该标记符包括统一资源定位标识。
5.如权利要求1所述的共享库结构,其中该动态库包括描述信息文件和存档文件。
6.如权利要求5所述的共享库结构,其中所述动态库包括动态库的友好名称;供应商名称;动态库的版本号;动态库包的大小;动态库包的位置;类路径;配置文件;以及简档文件。
7.如权利要求6所述的共享库结构,进一步包括动态库的说明。
8.如权利要求6所述的共享库结构,进一步包括用于确定应用程序是否被允许使用动态库的授权属性。
9.如权利要求6所述的共享库结构,进一步包括用于规定所使用的动态库的身份以及版本号的动态库路径属性。
10.在Java兼容设备中,类载入方法包括以下步骤确定预定类是否被载入到该Java兼容设备的存储器中;确定是否提供了该类的类路径属性;确定该类路径是否已经被验证并得到了授权;以及从动态库中载入该类。
全文摘要
一种用于在应用程序之间共享库的共享库结构(iJDL)。该iJDL能够被添加、移除、更新或者直接从网络中搜索到,并且可被充分配置为最大化地利用有限闪速存储器空间。该iJDL模型符合由Sun所提议的MIDP1.0规范所定义的标准Sandbox安全模型。还可以提供Java应用程序管理器(JAM)来向用户提醒网络上可得到的共享库的任何更新。为了安全性,iJDL可以受到验证,以致仅仅授权的供应商被允许使用它。
文档编号G06F9/445GK1732458SQ200380107365
公开日2006年2月8日 申请日期2003年12月17日 优先权日2002年12月23日
发明者庄瑞强, 林志翰, 比伦·帕特尔 申请人:摩托罗拉公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1