公开/公告号CN102148869A
专利类型发明专利
公开/公告日2011-08-10
原文格式PDF
申请/专利权人 惠州TCL移动通信有限公司;
申请/专利号CN201110036919.2
申请日2011-02-12
分类号H04L29/08(20060101);H04L29/06(20060101);
代理机构深圳市威世博知识产权代理事务所(普通合伙);
代理人何青瓦;丁建春
地址 516006 广东省惠州市仲恺高新技术开发区23号小区
入库时间 2023-12-18 03:00:25
法律状态公告日
法律状态信息
法律状态
2013-05-01
授权
授权
2012-01-04
实质审查的生效 IPC(主分类):H04L29/08 申请日:20110212
实质审查的生效
2011-08-10
公开
公开
技术领域
本发明涉及JAVA应用程序向本地传递信息的方法及设备。
背景技术
Java,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。
JAVA技术是一个跨平台的软件技术。符合J2ME规范的JAVA应用程序(MIDlet)可以在不同的硬件设备上经过简单的调整和适配(甚至完全不需要调整)而运行,而不用考虑硬件设备平台的处理器及操作系统细节。JAVA本身的跨平台特性依赖于其抽象的程序运行环境也即JAVA虚拟机。实现JAVA虚拟机的核心部分功能通常被称为JAVA内核(Core),或者也简单的称为JVM。
不同的JAVA应用程序运行在同一个硬件设备上时需要对其资源和记录信息的管理,这部分功能通常称为JAVA应用程序管理器(JAM),或称为应用管理层,可以看作JAVA虚拟机的一部分,也可以看作JAVA内核之上的一个基础的应用层。
为了将JAVA技术的整体运行于另一个实体软硬件平台上,需要一些嫁接和适配的工作。于此相关的所有软件硬件配合部分通常被称为JAVA的适配及JAVA适配层。
运行在JAVA适配层之下的就是系统平台,以及一些底层应用程序。其他更高层的应用也可能与JAVA系统和JAVA应用程序发生通讯等操作,但往往不能直接通讯,而是通过JAVA适配层和JAVA内核和JAM的帮助。
JAVA技术是一个高度标准化的技术。通常情况下,任何没有被纳入标准的功能无法被JAVA应用程序创造性实现,否则该JAVA应用程序难以在不同系统间自由适应,也即难以跨平台运行。但在标准化技术滞后的情况下,一些新出现的应用需求必然导致对现有功能的扩展。
比如,存在这样一种应用需求,即用户强烈要求JAVA应用程序在后台运行时,设备能在前台提示一些关键信息,即JAVA应用程序能够向本地传递信息。目前能满足上述应用需求的技术是标准技术JSR211,能够实现JAVA应用程序与本地的双向交互。但是,JSR211涉及较广,需要JVM、JAVA应用程序管理器(JAM)、JAVA应用程序和平台的共同支持,实现成本很高。
发明内容
本发明主要解决的技术问题是提供一种JAVA应用程序向本地传递信息的方法及设备,能够在不改变现有技术标准的前提下实现设备后台运行的JAVA应用程序向设备本地应用模块传递信息的功能。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种JAVA应用程序向本地传递信息的方法,包括:使设备的JAVA应用程序通过调用标准的JAVA接口平台请求【PlatfromRequest(URL)】,将所述JAVA应用程序待传递信息传给JAVA虚拟机,其中在JAVA接口平台请求中域名之后,按预定规则集合有本JAVA应用程序名、本地应用模块名以及待传递信息,所述JAVA应用程序名对应待传递信息的来源,所述本地应用模块名是待传递信息要到达的目标应用模块名称;使所述JVM将JAVA接口平台请求交给JAVA适配层;使所述JAVA适配层判断JAVA接口平台请求中的被请求URL目标地址是否为当前设备回叫标准主机;在所述被请求URL目标地址为当前设备回叫标准主机时,使JAVA适配层按照所述预定规则解析出JAVA接口平台请求中域名之后的JAVA应用程序名、本地应用模块名以及待传递信息;使所述JAVA适配层根据JAVA应用程序名对JAVA应用程序进行鉴权;在所述JAVA应用程序鉴权通过时,将所述待传递信息发给所述本地应用模块名所对应的本地应用模块。
其中,使JAVA适配层按照所述预定规则解析出JAVA接口平台请求中域名之后的JAVA应用程序名、本地应用模块名以及待传递信息的步骤包括:使JAVA适配层检查JAVA接口平台请求中域名之后字符串中的第一分隔符和第二分隔符,将JAVA接口平台请求中域名之后、第一分隔符之前的内容解析出来,作为JAVA应用程序名;将第一分隔符之后、第二分隔符之前的内容解析出来,作为本地应用模块名;将第二分隔符之后至字符串结束的内容解析出来,作为待传递信息。
其中,将所述待传递信息发给所述本地应用模块名所对应的本地应用模块的步骤包括:将所述待传递信息整形后,发给所述本地应用模块名所对应的本地应用模块。
其中,将所述待传递信息发给所述本地应用模块名所对应的本地应用模块的步骤包括:将所述待传递信息通过线程之间的事件、进程之间的事件、或线程与进程之间的事件,发给所述本地应用模块名所对应的本地应用模块。
其中,使所述JVM将JAVA接口平台请求交给JAVA适配层的步骤包括:使所述JVM将JAVA接口平台请求作为普通请求交给JAVA适配层。
其中,所述JAVA适配层判断JAVA接口平台请求中的被请求URL目标地址是否为当前设备回叫标准主机步骤包括:所述JAVA适配层判断JAVA接口平台请求中的被请求URL目标地址是否为“Localhost”、“127.0.0.1”或“::1”。
为解决上述技术问题,本发明采用的另一个技术方案是:提供一种基于JAVA的设备,包括:请求发送单元,用于使设备的JAVA应用程序通过调用标准的JAVA接口平台请求,将所述JAVA应用程序待传递信息传给JAVA虚拟机,其中在JAVA接口平台请求中域名之后,按预定规则集合有本JAVA应用程序名、本地应用模块名以及待传递信息,所述JAVA应用程序名对应待传递信息的来源,所述本地应用模块名是待传递信息要到达的目标应用模块名称;第一传递单元,用于使所述JVM将JAVA接口平台请求交给JAVA适配层;地址判断单元,用于使所述JAVA适配层判断JAVA接口平台请求中的被请求URL目标地址是否为当前设备回叫标准主机;信息解析单元,用于在所述被请求URL目标地址为当前设备回叫标准主机时,使JAVA适配层按照所述预定规则解析出JAVA接口平台请求中域名之后的JAVA应用程序名、本地应用模块名以及待传递信息;程序鉴权单元,用于使所述JAVA适配层根据JAVA应用程序名对JAVA应用程序进行鉴权;第二传递单元,用于在所述JAVA应用程序鉴权通过时,将所述待传递信息发给所述本地应用模块名所对应的本地应用模块。
其中,所述信息解析单元具体用于使JAVA适配层检查JAVA接口平台请求中域名之后字符串中的第一分隔符和第二分隔符,将JAVA接口平台请求中域名之后、第一分隔符之前的内容解析出来,作为JAVA应用程序名;将第一分隔符之后、第二分隔符之前的内容解析出来,作为本地应用模块名;将第二分隔符之后至字符串结束的内容解析出来,作为待传递信息。
其中,第二传递单元具体用于将所述待传递信息通过线程之间的事件、进程之间的事件、或线程与进程之间的事件,发给所述本地应用模块名所对应的本地应用模块。
其中,所述地址判断单元具体用于所述JAVA适配层判断JAVA接口平台请求中的被请求URL目标地址是否为“Localhost”、“127.0.0.1”或“::1”。
本发明的有益效果是:区别于现有技术基于目前技术标准情况下、实现JAVA应用程序与设备本地应用模块之间信息传递成本过高的情况,本发明利用英特网技术中一个不能被重用的主机名,即Localhost作为JAVA应用程序与设备本地应用模块之间的桥梁,将待传递信息和本地应用模块名放入JAVA接口平台请求中,使JAVA适配层判断来自JVM的JAVA接口平台请求中的被请求URL目标地址是否为当前设备回叫标准主机,在判断为是时,将所述待传递信息发至本地应用模块,无需更改现有技术标准,简易方便且成本低,并且不会导致JAVA应用程序在其他平台上运行时出现严重副作用的情况。
附图说明
图1是本法JAVA应用程序向本地传递信息的方法实施例的流程图;
图2是本发明基于JAVA的设备实施例的原理框图。
具体实施方式
Localhost是一个英特网技术领域的标准主机名称,用来代表当前设备的回叫。“Localhost”“..Localhost”也是被预留的国际域名,即一个不能被重用的主机名。Localhost会被翻译为一个回叫IP地址,在IPV4时代是“127.0.0.1”,在IPv6时代是“::1”。对Localhost的本地请求,如http://Localhost,会永远显示本地WEB站点的主页(因为http被用作站点浏览的默认协议),如果存在的话。
因为Localhost的特殊性,大多数移动通讯设备因为不存在一个本地WEB站点,故不需要支持,也不必在本地接受这个地址以待浏览器等WEB应用的访问。这给本发明采用对该地址的请求以实现功能扩展创造了条件。
所述的功能扩展,包括:用户要求JAVA应用程序在后台运行时,设备能在前台提示一些来自JAVA应用程序的关键信息,即JAVA应用程序能够向本地传递信息。
为了简易快捷地实现这一市场需求,本发明扩展标准的JAVA接口,利用Localhost作为通道,实现后台JAVA应用程序的信息传递,本地收到信息后再进行相应处理。本方法不会导致该JAVA程序在其他平台上运行时出现严重副作用。以下具体描述本发明各实施例:
参阅图1,本发明JAVA应用程序向本地传递信息的方法实施例包括:
步骤101:使设备的JAVA应用程序通过调用标准的JAVA接口平台请求【PlatfromRequest(URL)】,将所述JAVA应用程序待传递信息传给JAVA虚拟机(JVM),其中在JAVA接口平台请求中域名之后,按预定规则集合有本JAVA应用程序名、本地应用模块名以及待传递信息,所述JAVA应用程序名对应待传递信息的来源,所述本地应用模块名是待传递信息要到达的目标应用模块名称;
步骤102:使所述JVM将JAVA接口平台请求交给JAVA适配层;
到此步骤时,一切都在遵循JAVA技术标准,不需要JVM的特别参与,也不会被JVM破坏数据。
步骤103:使所述JAVA适配层判断JAVA接口平台请求中的被请求URL目标地址是否为当前设备回叫标准主机(Localhost);
步骤104:在所述被请求URL目标地址为当前设备回叫标准主机时,使JAVA适配层按照所述预定规则解析出JAVA接口平台请求中域名之后的JAVA应用程序名、本地应用模块名以及待传递信息;
比如在一个例子中,对于JAVA接口平台请求中,URL格式为“http://”开头的PlatformRequest,现有JAVA技术标准要求调用设备上的浏览器访问指定的URL。而这部分是通过JAVA适配层的解释和对平台应用模块调用实现的。通过JAVA适配层,按照所述预定规则解析出JAVA接口平台请求中域名之后的JAVA应用程序名、本地应用模块名以及待传递信息。
步骤105:使所述JAVA适配层根据JAVA应用程序名对JAVA应用程序进行鉴权;
即按照JAVA应用程序名,判断该应用程序在适配层是否认识,该应用程序是否在本设备可以使用本方法,也即鉴权。
步骤106:在所述JAVA应用程序鉴权通过时,将所述待传递信息发给所述本地应用模块名所对应的本地应用模块。
以上可以了解,本发明利用英特网技术中一个不能被重用的主机名,即Localhost作为JAVA应用程序与设备本地应用模块之间的桥梁,将待传递信息和本地应用模块名放入JAVA接口平台请求中,使JAVA适配层判断来自JVM的JAVA接口平台请求中的被请求URL目标地址是否为当前设备回叫标准主机,在判断为是时,将所述待传递信息发至本地应用模块,无需更改现有技术标准,简易方便且成本低,并且不会导致JAVA应用程序在其他平台上运行时出现严重副作用的情况。
在另一个实施例中,使JAVA适配层按照所述预定规则解析出JAVA接口平台请求中域名之后的JAVA应用程序名、本地应用模块名以及待传递信息的步骤包括:
使JAVA适配层检查JAVA接口平台请求中域名之后字符串中的第一分隔符和第二分隔符,将JAVA接口平台请求中域名之后、第一分隔符之前的内容解析出来,作为JAVA应用程序名;将第一分隔符之后、第二分隔符之前的内容解析出来,作为本地应用模块名;将第二分隔符之后至字符串结束的内容解析出来,作为待传递信息。
所述分隔符可以是“/”,也可以是其他用于识别、分割的符合,比如以分隔符为“/”作为例子,则按照以下规则解析URL中域名部分之后字符串的信息:
URL在域名和端口部分之外的字符串,由“/”进行分割,代表目标路径信息也即目录和文件信息。其中有以下定义:
1)域名部分之后的第一级目录名被重载为“JAVA应用程序名”,用来指示本请求的来源,也即JAVA应用程序的名称。该名称(字符串)是由JAVA应用程序开发者与JAVA适配层实现者预先确定的,并不是JAVA应用程序本身的名字,或其安装文件的名字,或者其在安装之后的显示名字。
2)第二级目录名被重载为“本地应用模块名”,也即该JAVA应用程序要和本地进行通信的那一个应用模块,如电话本,电子邮件,桌面应用等。这也是需要双方预先确定的。
3)第三级目录开始到URL结束是应用相关的数据部分。具体格式由双方预先确定,本实施例不做特殊限定。
在解析之后进行信息提取:
1)提取JAVA应用程序名,也即读取第一级目录位置的信息。
2)在对JAVA应用程序进行鉴权后提取本地应用模块名,也即读取第二级目录位置的信息,并将第二级目录之后的URL的其余部分,作为应用信息,也即将要传递的信息内容。
上述JAVA应用程序名、本地应用模块名以及待传递信息集合的形式仅仅是一个应用例子,但本发明不限于上述例子,比如采用“%”作为分隔符。
在另一个实施例中,将所述待传递信息发给所述本地应用模块名所对应的本地应用模块的步骤包括:将所述待传递信息整形后,发给所述本地应用模块名所对应的本地应用模块。
经过信息整形后的待传递信息,更符合本地应用模块的接收要求。
在另一个实施例中,将所述待传递信息发给所述本地应用模块名所对应的本地应用模块的步骤包括:将所述待传递信息通过线程之间的事件、进程之间的事件、或线程与进程之间的事件,发给所述本地应用模块名所对应的本地应用模块。
待传递信息发给所述本地应用模块名所对应的本地应用模块的方式可以有很多,本发明不再赘述。
在另一个实施例中,使所述JVM将JAVA接口平台请求交给JAVA适配层的步骤包括:使所述JVM将JAVA接口平台请求作为普通请求交给JAVA适配层。
当然,也可以使所述JVM将JAVA接口平台请求作为特别请求交给JAVA适配层。
在另一个实施例中,所述JAVA适配层判断JAVA接口平台请求中的被请求URL目标地址是否为当前设备回叫标准主机步骤包括:所述JAVA适配层判断JAVA接口平台请求中的被请求URL目标地址是否为“Localhost”、“127.0.0.1”或“::1”。
下面举一个实际例子:
如JAVA应用程序需要向JVM提起如下的平台请求:
PlatfromRequest(http://172.0.0.1/MidletX/phonebook/new&name=JohnsonParker&number=00862156890000),按照本方法,代表一个叫MidletX的JAVA应用程序要求要把信息“new&name=JohnsonParker&number=00862156890000”传递给一个叫phonebook的本地应用模块。
参阅图2,基于本发明,还提供一种基于JAVA的设备实施例,包括:
请求发送单元,用于使设备的JAVA应用程序通过调用标准的JAVA接口平台请求PlatfromRequest,将所述JAVA应用程序待传递信息传给JAVA虚拟机JVM,其中在JAVA接口平台请求中域名之后,按预定规则集合有本JAVA应用程序名、本地应用模块名以及待传递信息,所述JAVA应用程序名对应待传递信息的来源,所述本地应用模块名是待传递信息要到达的目标应用模块名称;
第一传递单元,用于使所述JVM将JAVA接口平台请求交给JAVA适配层;
地址判断单元,用于使所述JAVA适配层判断JAVA接口平台请求中的被请求URL目标地址是否为当前设备回叫标准主机;
信息解析单元,用于在所述被请求URL目标地址为当前设备回叫标准主机时,使JAVA适配层按照所述预定规则解析出JAVA接口平台请求中域名之后的JAVA应用程序名、本地应用模块名以及待传递信息;
程序鉴权单元,用于使所述JAVA适配层根据JAVA应用程序名对JAVA应用程序进行鉴权;
第二传递单元,用于在所述JAVA应用程序鉴权通过时,将所述待传递信息发给所述本地应用模块名所对应的本地应用模块。
所述基于JAVA的设备可以是手机、便携式游戏机、个人数字助理、笔记本等等。
其中,所述信息解析单元具体用于使JAVA适配层检查JAVA接口平台请求中域名之后字符串中的第一分隔符和第二分隔符,将JAVA接口平台请求中域名之后、第一分隔符之前的内容解析出来,作为JAVA应用程序名;将第一分隔符之后、第二分隔符之前的内容解析出来,作为本地应用模块名;将第二分隔符之后至字符串结束的内容解析出来,作为待传递信息。
其中,所述第二传递单元具体用于将所述待传递信息通过线程之间的事件、进程之间的事件、或线程与进程之间的事件,发给所述本地应用模块名所对应的本地应用模块。
其中,所述地址判断单元具体用于所述JAVA适配层判断JAVA接口平台请求中的被请求URL目标地址是否为“Localhost”、“127.0.0.1”或“::1”。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
机译: 具有防止JAVA应用程序非法复制的JAVA虚拟机的终端设备和服务器,以及在终端设备中认证JAVA应用程序的方法
机译: Java应用程序的本地库调用设备及其使用该方法进行通信的方法
机译: 具有本地方法动态加载库的Java应用程序的调试方法