发明内容
本发明主要解决的技术问题是提供一种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应用程序在其他平台上运行时出现严重副作用的情况。
具体实施方式
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”。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。