一种基于移动增值业务的移植方法和系统的制作方法

文档序号:7961208阅读:103来源:国知局

专利名称::一种基于移动增值业务的移植方法和系统的制作方法
技术领域
:本发明属于移动通讯
技术领域
,涉及一种基于移动增值业务的移植方法和系统。
背景技术
:移动增值业务在我们的生活中随处可见,移动消息类业务,例如SMS,MMS,EMS,你可以通过他们订阅你喜欢的各种资讯;移动邮件业务,例如中国联通的彩E;浏览器类业务,例如WAP,WAP2.0可以给用户带来更多的表现形式;下载类业务,例如J2ME,BREW,Symbian,Windowsmobile等等。随着内容提供商和服务提供商的发展壮大,以及新的移动技术地发展,特别是3G以及4G的到来,移动增值业务会越来越丰富多彩。内容提供商和服务提供商面临越来越多移植工作,(1)把一个增值业务在同一平台的不同终端上移植,例如一款摩托罗拉手机上的j2me游戏,移植到诺基亚支持的j2me的手机上;(2)把一个增值业务在不同平台的同一终端上移植,例如把一种SMS服务移植到BREW上;(3)把一个增值业务在不同平台的不同终端上移植,例如把一个Symbian服务移植到一个不同终端的windowmobile上等等。对于(1)目前的移植方法还停留在源代码适配,就是直接对源代码进行移植,适合于目标移动终端执行,对工程师的要求比较高,对一般人员来说是难于移植,具有较高水平的专业工程师才能进行这种移植工作;对于(2)和(3),目前还没有好的方法,基本上是重新设计和开发,人力成本和时间成本都很高。因此,目前存在内容提供商和服务提供商对移动增值业务移植方法以及系统工具的需要,以给用户提供更加灵活,方便,丰富多彩的服务。
发明内容本发明所要解决的技术问题是针对上述问题,提供一种基于移动增值业务的移植方法和系统,使移动增值业务在不同移动平台不同移动终端之间、同一移动平台不同移动终端之间,不同移动平台相同移动终端之间能方便快捷地移植,大大降低移植的成本,提高移植效率和移植的质量。解决本发明技术问题所采用的技术方案是该基于移动增值业务的移植方法,包括下列步骤(1)、对移动增值业务的业务逻辑进行解析,分解为多种多层次的业务命令及相应的信息体,所述信息体包括命令所需的信息;(2)、对移动终端的软硬件平台进行解析,分解为多种多层次的资源标记及相应的信息体,所述信息体包括资源标记所需的信息;(3)、建立移动增值业务的移动平台间的映射关系,对移动平台间的同质属性和异质属性建立映射标记及相应的信息体,所述信息体包括映射标记所需的信息;(4)、根据移动增值业务的业务命令,移动终端的资源标记,移动终端平台间的映射标记生成目标移动终端或目标移动平台程序代码,完成移动增值业务的移植。以上步骤(1)中以将一项移动增值业务的业务逻辑分解成具有逻辑次序的业务命令及其对应的信息体;步骤(2)将各种移动终端的软硬件平台分解成的资源标记及其对应的信息体,步骤(3)建立不同移动平台间的同质和异质属性映射,步骤(4)自动或半自动的生成目标平台的程序代码或程序代码框架,还可辅助以测试手段和测试工具来测试流程,从而能够快速,高效的完成移动增值业务的移植。进一步优选的是对步骤(1)中移动增值业务的业务逻辑进行解析,不仅可以采用人工的方法解析,而且可以采用代码或文档解析的反向软件工程方法及自动或半自动技术,或者以上方法的结合。通过解析,移动增值业务的业务逻辑分解为多个业务命令及其相应的信息体,每个业务命令及相应信息体组合成一个业务命令体,并且在该业务命令体中包含逻辑次序标记,生成业务逻辑描述文件;进一步优选的是对步骤(2)中对移动终端平台的软硬件平台进行解析,不仅可以采用人工解析,而且可以采用代码或文档解析的反向软件工程方法及自动半自动技术,还可以采用探测程序从移动终端中获取,或者以上方法的结合。移动终端平台的软硬件信息被分解为多个资源标记及其相应的信息体,每个资源标记及相应信息体组合成一个资源单位体,由多个资源单位体生成终端资源描述文件;进一步优选的是对步骤(3)中对建立移动平台间的映射关系不仅可以采用人工解析,而且可以采用代码或文档解析的反向软件工程方法及自动半自动技术,或者二者的结合,移动平台间的映射关系分解为多个属性映射标记及其相应的信息体,属性映射标记及相应信息体组合成一个属性映射体,属性映射标记体生成平台映射描述文件;进一步优选的是对步骤(4)中生成目标移动终端平台程序代码不仅可以采用人工生成,而且可以采用代码生成技术的自动或半自动方法,或者二者的结合。根据业务逻辑描述文件,终端平台资源描述文件和平台映射描述文件,针对目标移动平台和移动终端,生成相关编程语言的程序代码或程序代码框架,对于程序代码框架需要人工完成部分代码实现;目标移动终端或目标移动平台的程序代码生成是以业务命令体中的逻辑次序作为程序逻辑索引,动态生成若干业务命令原语,业务命令原语对应相应的程序代码单元,以程序逻辑索引组织程序代码单元的智能化。步骤(4)生成目标移动平台程序代码后,以测试流程为辅助对目标平台和目标移动终端程序代码测试,可以采用人工测试,也可以采用自动或半自动化工具测试(例如,Rational的测试工具,移动义务开发平台自带的测试工具,以及自编的一些测试工具等),或者二者的结合。通过单元测试,仿真器测试和真实终端后应用就是成功移植后的移动增值业务了。代码单元测试是由业务命令原语对应相应的程序代码单元派生而成,仿真环境,移植环境和真实终端测试环境一起形成集成化环境。步骤(1)中对业务逻辑的解析包括对移动终端业务逻辑解析,对移动增值业务的服务器侧的部分接口进行逻辑解析,解析产生的业务逻辑描述文件贮存于数据库中。步骤(2)中对移动终端软硬件平台进行解析产生的移动平台间的映射关系的平台映射描述文件、移动终端资源描述文件以数据库方式储存。步骤(4)中生成的业务逻辑所对应的代码单元都存储在数据库中,数据库记载移动业务移植的记录和日志,并具备数据挖掘功能。移动终端是手机或手提电脑。本发明基于移动增值业务的移植方法可用于(1)把增值业务在同一平台的不同终端上移植;(2)把增值业务在不同平台的同一终端上移植;(3)把增值业务在不同平台的不同终端上移植。本发明方法对于现存的移动增值业务,内容提供商和服务提供商可以迅速的实现在各种移动平台上的服务,拓展了当前业务的市场价值。对于新兴的移动增值业务,内容提供商和服务提供商同样可以迅速的实现在各种其他移动平台上的服务,开拓新兴业务的市场价值。终端用户可以尽情享用更加丰富的移动增值业务了。本发明还提供一种基于移动增值业务的移植系统,该基于移动增值业务的移植系统,包括营运商无线网、运营商数据网、互联网、移动增值业务服务器、移动增值业务节点、移动终端,有移动增值业务移植服务器与运营商数据网连接或与互联网连接,或与互联网、运营商数据网同时连接,该移动增值业务移植服务器包括数据库和移植工具,移植工具包括移动增值服务移植处理器、业务逻辑解析模块、平台映射解析模块、移动终端资源探测模块以及移动终端资源解析模块,其中移动增值服务移植处理器其主要模块为移动增值业务代码生成模块,用于将当前移动平台的增值服务转变成目标移动终端或目标移动平台的程序代码,从而实现移动增值业务的移植;移动增值业务代码生成模块、平台映射解析模块、移动终端资源解析模块与数据库连接,移动终端资源探测模块与移动终端和移动终端资源解析模块连接。进一步优选的是移植工具还包括与业务逻辑解析模块连接的业务逻辑反向模块,用于从准备移植的移动增值业务代码中抽取业务逻辑,包括移动终端的程序代码,也包括移动增值业务服务器端的程序代码。进一步优选的是移植工具还包括业务命令体原语模块,该业务命令体原语模块与数据库连接。优选的是移动终端资源探测模块还与一终端应用适配器连接,该终端应用适配器连接有移动终端下载工具、移动终端仿真器,并与移动终端连接。本发明移植系统还包括测试工具,测试工具包括源代码即单元测试工具,以及其他自动化或半自动化测试工具,其中有单元测试生成模块、测试流程管理模块,移动终端、移动终端下载工具、移动终端仿真器、终端应用适配器、还有单元测试生成模块、测试流程管理模块、移动增值业务服务器适配模块组成测试集成环境,单元测试生成模块与移动增值业务代码生成模块连接,测试流程管理模块与测试集成环境内的其他模块相连接。上述移动增值业务移植服务器中业务逻辑反向模块,用于从代码中获得业务描述逻辑;业务逻辑解析模块,用于将业务逻辑以业务命令和相应信息体的方式生成业务逻辑描述文件;业务命令体原语模块,用于定义业务命令体原语及相应的不同平台的程序代码单元;移动终端资源解析模块,用于将移动终端的软硬件平台信息解析成资源标记和相应信息体的方式生成移动终端的软硬件平台资源描述数据;平台映射生成模块,用于将移动终端平台间的同质和异质属性生成由映射标记及相应的信息体组成的平台映射描述数据;数据库,用于存储移动终端软硬件平台的资源标记和相应信息体,存储移动终端平台间的平台映射描述数据,移动业务移植记录和日志,并具备数据挖掘功能。上述移动终端及相应的下载/仿真(如果支持下)/测试环境包括移动终端及相应数据电缆和充电器,移动终端仿真器,基于移动终端测试工具,基于移动终端仿真器的测试工具,由它们有机组成的集成环境。上述实现移动增值业务的移植系统还包括系统运营管理维护模块(OAM),用于系统配置,实施,管理,监测和维护。上述各种描述文件都是基于可扩展标记语言(XML)的数据文件。本发明基于移动增值业务的移植方法和系统是面向服务(serviceoriented)的描述技术与代码生成技术相互支撑的方法和软件实体,既是一种软件设计模式,又是一种移动增值业务在不同平台上的移植技术。简单的说,适合于任何移动增值业务平台中的应用到任何移动增值业务平台中的应用的适配移植(A2A,AnyToAny)。下面结合附图及实施例对本发明进行详细的说明,本发明的技术方法和其他目的,特征和优点将变得更加清楚,其中图1是本发明系统网络结构图图2是本发明中移植服务器105的结构框图图3是实施例一个WAP平台的天气播报增值服务的系统结构图图4是实施例中业务逻辑解析模块202生成业务逻辑描述文件203的流程图图5是实施例中移动终端资源解析模块208生成终端资源描述文件207的流程图图6是实施例中平台映射解析模块205生成平台映射描述文件207的流程图图7是实施例中移动增值业务代码生成模块218生成目标代码的流程图图8是实施例中测试流程管理模块215测试移植结果的流程图图9是本发明具体实施例的应用菜单结构图具体实施例方式下面,将参照附图对本发明进行详细说明。图1是本发明适用运营商的系统网络结构图。下面结合图1说明其各部分组成及功能。如图1所示系统包括运营商无线网101,可以是GSM/GPRS/CDMA/CDMA1X,以及WCDMA/CDMA1XEV-DO/TD-SCDMA,甚至小灵通等其他无线网络;运营商数据网102,是运营商的数据支撑网络;互联网103即Internet,移动增值业务节点104,是移动增值业务的信令节点或者移动增值业务的运营平台,例如短信网关,WAP网关,BREW的BDS系统等等以及相应的计费平台等;移动增值业务移植服务器105,即本发明的主体,可以与运营商数据网102连接或与互联网103连接,或与互联网103、运营商数据网102同时连接;移动增值业务服务器106与运营商数据网102和互联网103连接,个人电脑107,即可供终端用户使用的能连接互联网的个人电脑,根据移动增值业务的特点,个人电脑107并不是必须的;移动终端108,是用户的手机,可以通过运营商无线网101使用移动增值业务,也可以在不同的移动终端108间传播并使用移动增值业务,也可以通过个人电脑107传播并使用增值业务。图2是本发明中移动增值业务移植服务器105的结构框图。下面结合图2说明图中各部分组成及功能。业务逻辑反向模块201,用于从准备移植的移动增值业务代码中抽取业务逻辑,包括移动终端的程序代码也包括移动增值业务服务器端的程序代码;业务逻辑解析模块202,用于将准备移植的移动增值业务进行逻辑解析形成业务逻辑描述文件,同时可以从201中获得业务逻辑信息;业务逻辑描述文件203,是业务逻辑解析模块202生成的结果并存储于数据库217中;业务命令体原语模块204,用于定义业务命令体原语,以及业务命令体原语所对应的各种平台的程序代码单元;平台映射解析模块205,用于映射平台间的同质和异质属性,形成平台映射描述文件206;平台映射描述文件206,是平台映射解析模块205的生成结果并存储于数据库217中;移动终端资源探测模块220,用于从移动终端210直接获得资源信息;移动终端信息文档209,用来描述移动终端信息的原始文档;移动终端资源解析模块208,用于从移动终端解析资源信息,可以人工输入资源信息,也可以利用移动终端信息文档209和移动终端资源探测模块220的终端信息,形成移动终端平台资源描述文件207;移动终端平台资源描述文件207,是移动终端资源解析模块208的输出结果并存储于数据库217中;移动终端210,是一系列用户的手机;移动终端下载工具211,是与移动终端210对应的下载工具;移动终端仿真器212,是与移动终端210对应的仿真工具;终端应用适配器213,是与移动终端210对应的粘结程序,用于连接整个集成环境;单元测试生成模块214,是用于白盒测试的代码生成框架;测试流程管理模块215,用于监测和跟踪整个测试流程;移动增值业务服务器适配模块216,用于移动增值业务服务器端代码的适配与仿真;数据库217,用于存储系统的各种信息并具备数据挖掘功能;移动增值业务代码生成模块218,用于生成移动增值业务目标终端和目标平台的程序代码;OAM模块219,用于系统配置,实施,管理,监测和维护;其中移动终端210、移动终端下载工具211、移动终端仿真器212、终端应用适配器213、单元测试生成模块214、测试流程管理模块215、移动增值业务服务器适配模块216组成了测试集成环境200。这里以诺基亚6020手机上的一个基于WAP平台的天气播报服务作为当前移动增值业务,移植到LG950手机的BREW平台上作为实施例,属于将增值业务在不同平台的不同终端上移植,结合图3至图9来详细说明本发明的实现过程。图3是实施例一个WAP平台的天气播报增值服务的系统结构图。下面结合图3介绍诺基亚6020手机上的一个基于WAP平台的天气播报服务。用户通过移动终端108手机中的WAP浏览器接入运营商无线网101,从而连接移动增值业务节点104(WAP网关),通过互联网103访问移动增值业务服务器106,移动增值业务服务器106通过对移动增值业务节点104的访问获得手机的UAprofile,从而得知移动终端108类型,并生成相应的天气播报内容,如天气,风力,降水,气象指数以及相关图片等,其中服务计费信息主要通过移动增值业务节点104完成。图4至图9是本实施例的移动增值业务的移植方法及过程(1)、对移动增值业务的业务逻辑进行解析,分解为多种多层次的业务命令及相应的信息体,所述信息体包括命令所需的信息;图4是实施例中业务逻辑解析模块生成业务逻辑描述文件的流程图。下面结合图4来说明业务逻辑描述文件的生成。判断业务的体系结构,一个基于WAP平台的天气播报服务是一种网络应用,其移动增值业务服务器106就是一个典型的WAP服务器,由于知识产权的原因,不对诺基亚手机6020上的WAP浏览器做反向工程,而是只用人工方法进行业务逻辑解析。对业务逻辑的解析包括对移动终端业务逻辑解析,对移动增值业务的服务器侧的部分接口进行逻辑解析,解析产生的业务逻辑描述文件贮存于数据库中。业务接口是指诺基亚6020手机作为移动终端108中的WAP浏览器与提供天气播报服务的移动增值业务服务器106之间的接口。主要包括移动终端108中的WAP浏览器向移动增值业务服务器106提供终端类型,移动终端108中的WAP浏览器向移动增值业务服务器106发送业务请求,移动增值业务服务器106返回业务响应。我们得到以下的接口逻辑描述文件<interfaces><interfaceid="1"><service_requestid="1"><request>URL</request><param_itemid="terminaltype">nokia6020<param_item></service_request><service_responseid="1"><contentname="wheather">description</content><contentname="reference">description</content><contentname="wind">description</content><contentname="rain">description</content><contentname="image">imagefileURL</content></service_response><protocol>WTP</protocol></interface></interfaces>移动增值业务服务器的业务逻辑包括获得移动终端108的终端类型,匹配终端类型生成内容页面对移动终端108中的请求完成响应。我们得到以下的移动增值业务服务器端业务逻辑描述<serverside><service_commandname="Query_DB"sequenceid="2"><db_name>db</db_name><table_name>teminal</table_name><target>all</target><wherecondition="teminaltype">terminaltype</where></service_command><service_commandname="page_creation"sequenceid="3"><interfaceid="1">service_response</interface></service_command><serverside>客户端的业务逻辑包括向移动增值业务服务器106提供的终端类型,向移动增值业务服务器106发送业务请求,处理移动增值业务服务器106的业务响应,显示该业务。我们得到以下的客户端业务逻辑描述<clientside><service_commandname="request_file"sequenceid="1"><interfaceid="1">service_request</interface></service_command><service_commandname="page_display"sequenceid="4"><interfaceid="1">service_response</interface></service_command><clientside>由接口逻辑描述文件,移动增值业务服务器逻辑描述文件和客户端逻辑描述文件相结合组成了业务逻辑描述文件。以上多种多层次的业务命令为service_request,service_response,service_command相应的信息体为request,param_item,content,interface所述信息体包括命令所需的信息为相应标记所对应的内容。(2)、对移动终端的软硬件平台进行解析,分解为多种多层次的资源标记及相应的信息体,所述信息体包括资源标记所需的信息;对移动终端软硬件平台进行解析产生的移动平台间的映射关系的平台映射描述文件、移动终端资源描述文件以数据库方式储存。图5是实施例中移动终端资源解析模块生成终端资源描述文件的流程图。下面结合图5说明诺基亚6020移动终端资源描述文件的生成过程。首先,我们需要获得手机的相关信息文档。我们可以通过互联网获得诺基亚6020的有关信息,同时存储成html格式文件。移动终端资源解析模块读取数据库的手机资源关键字列表(例如屏幕大小,色深等),并存储在本地,然后,移动终端资源解析模块将诺基亚6020的html格式文件读入内存,从第一个关键字开始进行匹配,直到遍历完整个资源关键字列表,最后将资源关键字列表及匹配信息进行归一格式化,存贮到终端资源描述文件中。从而,我们得到以下的诺基亚6020终端资源描述文件<xmlversion="1.0"encoding="UTF-8"><xml><general><manufacture>nokia</manufacture><model>6020</model><marketing_time>200503</marketing_time></general><handware><ringer><melody>16</melody><format>midi</format><format>AMR</format><format>MP3</format></ringer><image><format>bmp</format><format>jpg</format><format>png</format></image><screen><material>TFT</material><longth>128</longth><width>128</width><color_depth>16</color_depth></screen><func_keys><funcid="1">top-left</func><funcid="2">top-right</func><funcid="send">bottom-left</func><funcid="end">bottom_right</func><funcid="ok">navigator</func></func_keys><memory><heap>500</heap><stack>8</stack><filesystem>3000</filesystem><filesize_max>125</filesize_max></memory></handware><software><OSversion="2">series40</OS><wapversion="2">openwave</wap><j2me>midp20</j2me><port>USB</port><MMS>1</MMS><email>1</email><sycml>1</sycml></software></xml>同样方法,可以得到目标移动终端LG950的终端资源描述文件<xmlversion="1.0"encoding="UTF-8"><xml><general><manufacture>LG</manufacture><model>950</model><marketing_time>200410</marketing_time></general><handware><ringer><melody>64</melody><format>midi</format><format>MMF</format></ringer><image><format>bmp</format><format>bci</format><format>jpg</format><format>png</format></image><screen><material>TFT</material><longth>176</longth><width>203</width><color_depth>16</color_depth></screen><func_keys><funcid="1">top-left</func><funcid="2">top-right</func><funcid="3">middle-left</func><funcid="4">middle-right</func><funcid="send">bottom-left</func><funcid="end">bottom_right</func><funcid="ok">center</func></func_keys><memory><heap>1000</heap><stack>8</stack><filesystem>1500</filesystem><filesize_max>none</filesize_max></memory></handware><software><OSversion="2">series40</OS><wapversion="1.2">openwave</wap><brewversion="2.1">qualcomm</brew><j2me>none</j2me><port>USB</port><email>1</email><sycml>none</sycml></software></xml>以上多种多层次的资源标记为general,hardware和software;相应的信息体为manufacture,model,marketing_time,ringer,image,screen,func_keys,memoryosversion,wap,email,brew等等,所述信息体包括资源标记所需的信息为相应标记所对应的内容;(3)、建立移动增值业务的移动平台间的映射关系,对移动平台间的同质属性和异质属性建立映射标记及相应的信息体,所述信息体包括映射标记所需的信息;图6是实施例中平台映射解析模块生成平台映射描述文件的流程图。下面结合图6来说明生成WAP2.0平台到BREW平台的映射描述文件的流程。首先,平台映射解析模块205从数据库217中获得有关平台映射的关键字列表,例如(protocol,push,security,version等等),读取当前平台和目标平台的技术参数,以平台映射的关键字列表为索引,遍历所有关键字对应的当前平台和目标平台的技术参数,生成WAP2.0到BREW2.1平台映射描述文件206。因而,我们可以得到<xmlversion="1.0"encoding="UTF-8"><xml><multiple_attributes><protocol><transport_layer_mapid=1src="wap20"target="brew21">WTP,TCP</ransport_layer_map><transport_layer_mapid=2src="wap20"target="brew21">WDP,UDP</ransport_layer_map><datalink_layer_mapid=1src="wap20"target="brew21">PPP,PPP</datalink_layer_map></protocol><terminal_type><terminal_type_mapid=1src="wap20"target="brew21">UAprofile,platfromid</terminal_type_map><terminal_type_mapid=2src="wap20"target="brew21"><mime_image><mime_image_same>jpg<format>bmp,bmp</format><format>jpg,jpg</format><format>png,png</format></mime_image_same><mime_image_diff>jpg<format>0,bci</format><format>wbmp,0</format></mime_image_diff></mime_image><mime_audio><mime_audio_same>jpg<format>midi,midi</format><format>mp3,mp3</format></mime_audio_same><mime_audio_diff>jpg<format>0,qcp</format></mime_audio_diff></mime_audio></terminal_type_map></terminal_type><security><DRM_MAPsrc="wap20"target="brew21">drm,digisign</DRM_MAP><SSL_MAPsrc="wap20"target="brew21">WSP,ISSL</SSL_MAP></security><push><PUSH_MAPsrc="wap20"target="brew21">wappush,brewpush</SSL_MAP></push><encoding><ENCODING_SAME_MAPsrc="wap20"target="brew21"><encoding_format>utf-8,utf-8</encoding_format><encoding_format>ascii,ascii</encoding_format></ENCODING_SAME_MAP><ENCODING_DIFF_MAPsrc="wap20"target="brew21"><encoding_format>gb13000,0</encoding_format><encoding_format>gb2312,0</encoding_format></ENCODING_DIFF_MAP></encoding><voice><VOICE_MAPsrc="wap20"target="brew21">WTA,ITAPI</VOICE_MAP></voice><extension><extension_same><typeid=1>plug-in,brewextension</type></extension_same><extension_diff><typeid=1>build-in,downloadable</type></extension_diff></extension></multiple_attributes><single_attributes><single_attributetarget="wap20"><attr>syncml</attr><attr>cookie</attr></single_attribute><single_attributetarget="brew21"><attr>timer</attr><attr>alarm</attr><attr>screensaver</attr><attr>addressbook</attr><attr>camera</attr><attr>directedSMS</attr></single_attribute></single_attributes></xml>以上对移动平台间的同质属性和异质属性建立映射标记为multiple_attributes和single_attributes,相应的信息体为protocol,terminal_type,security,push,encoding,voice,extension以及single_attribute。(4)、根据移动增值业务的业务命令,移动终端的资源标记,移动终端平台间的映射标记生成目标移动平台程序代码,完成移动增值业务的移植。目标移动终端和目标移动平台的程序代码生成是以业务命令体中的逻辑次序作为程序逻辑索引,动态生成若干业务命令原语,业务命令原语对应相应的程序代码单元,以程序逻辑索引组织程序代码单元的智能化。图7是实施例中移动增值业务代码生成模块(218)生成目标代码的流程图。下面结合图7来说明基于BREW平台的天气播报业务的程序代码生成流程。移动增值业务代码生成模块218读取天气播报业务的业务逻辑描述文件203,解析出业务命令体(service_command)列表及每个业务命令体相应的信息体,然后遍历业务命令体列表,将业务命令体对应成业务逻辑原语,并从数据库217中获得业务逻辑原语所对应的BREW平台的代码单元,最后,根据业务命令体中的逻辑次序将代码单元组成单元框架,根据终端平台资源描述文件和平台映射描述文件22从而生成BREW平台的程序代码框架。我们所得到的BREW程序代码框架如下(c文件,为了保持简明,删除了一些部分和注释)#include"AEEModGen.h"//Moduleinterfacedefinitions#include"AEEAppGen.h"//Appletinterfacedefinitions#include"AEEShell.h"//Shellinterfacedefinitions<!--SIPO<DPn="11">--><dpn="d11"/>#include"AEEFile.h"//Fileinterracedefinitions#include"AEETapi.h"//TAPIInterfacedefinitions#include"AEENet.h"//Socketinterfacedefinitions#include"AEEHtmlViewer.h"#include"mobileweather.bid"#include"AEESTDLIB.h"//Standardlib#include"AEEText.h"#include"AEEmenu.h"//Menuservice#include"mobileweather_res.h"typedefstruct_MobileWeather{AEEAppleta;//FirstelementofthisstructuremustbeAEEAppletAEEDeviceInfoDeviceInfo;//alwayshaveaccesstothehardwaredeviceinformationIDisplay*pIDisplay;//giveastandardwaytoaccesstheDisplayinterfaceIShell*pIShell;//giveastandardwaytoaccesstheShellinterfaceIMenuCtl*m_pIconMenu;//PointertoMainmenucontrolIStatic*m_pHelp;//PointertoStaticcontrolIStatic*m_pAbout;ITextCtl*m_pDNInput;IMenuCtl*m_pSoftkeyl;IMenuCtl*m_pMainMenu;IWeb*m_pIWeb;IHtmlViewer*m_pHTMLViewer;IFileMgr*m_pIFileMgr;uint16m_nStatus;}CMobileWeather;staticbooleanmobileweather_HandleEvent(CMobileWeather*pi,AEEEventeCode,uint16wParam,uint32dwParam);booleanmobileweather_InitAppData(CMobileWeather*pMe);voidmobileweather_FreeAppData(CMobileWeather*pMe);voidmobileweather_BuildMainMenu(CMobileWeather*pMe);voidmobileweather_Suspend(CMobileWeather*pMe);voidmobileweather_Resume(CMobileWeather*pMe);voidmobileweather_ShowHelp(CMobileWeather*pMe);voidmobileweather_ShowAbout(CMobileWeather*pMe);staticvoidmobileweather_NotifyCB(void*pvUser,HViewNotify*pNotify);staticvoidmobileweather_Start(CMobileWeather*pMe,char*pszUrl);intAEEClsCreateInstance(AEECLSIDClsId,IShell*pIShell,IModule*po,void**ppObj){*ppObj=NULL;if(ClsId==AEECLSID_MOBILEWEATHER){if(AEEApplet_New(sizeof(CMobileWeather),ClsId,pIShell,po,(IApplet**)ppObj,<!--SIPO<DPn="12">--><dpn="d12"/>(AEEHANDLER)mobileweather_HandleEvent,(PFNFREEAPPDATA)mobileweather_FreeAppData)==TRUE){//Addyourcodehere.....if(mobileweather_InitAppData((CMobileWeather*)*ppObj)){return(AEE_SUCCESS);}else{IAPPLET_Release((IApplet*)*ppObj);returnEFAILED;}return(AEE_SUCCESS);}}return(EFAILED);}staticbooleanmobileweather_HandleEvent(CMobileWeather*pi,AEEEyenteCode,uint16wParam,uint32dwParam){CMobileWeather*pMe=pi;if(pMe->m_pMainMenu!=NULL&amp;&amp;wParam!=AVK_CLR&amp;&amp;IMENUCTL_HandleEvent(pMe->m_pMainMenu,eCode,wParam,dwParam))returnTRUE;if(pMe->m_pSoftkey1!=NULL&amp;&amp;wParam!=AVK_CLR&amp;&amp;IMENUCTL_HandleEvent(pMe->m_pSoftkeyl,eCode,wParam,dwParam))returnTRUE;if(pMe->m_pDNInput&amp;&amp;ITEXTCTL_HandleEvent(pMe->m_pDNInput,eCode,wParam,<br/>dwParam))returnTRUE;switch(eCode){caseEVT_APP_START:ISHELL_ShowCopyright(pMe->a.m_pIShell);return(TRUE);caseEVT_COPYRIGHT_END://Addyourcodehere.....mobileweather_BuildMainMenu(pi);return(TRUE);caseEVT_APP_STOP:returnTRUE;caseEVT_APP_SUSPEND:mobileweather_Suspend(pMe);returnTRUE;caseEVT_APP_RESUME:mobileweather_Resume(pMe);returnTRUE;caseEVT_COMMAND:if(pMe->m_pMainMenu){intitem=IMENUCTL_GetSel(pMe->m_pMainMenu);<!--SIPO<DPn="13">--><dpn="d13"/>//addmore}elseif(pMe->m_pSoftkey1&amp;&amp;IMENUCTL_IsActive(pMe->m_pSoftkey1)){intitem=IMENUCTL_GetSel(pMe->m_pSoftkey1);switch(item){//addmoredefault:break;}}returnTRUE;caseEVT_KEY:if(wParam==AVK_CLR){//addmoreforyourimplementation}returnTRUE;default:break;}returnFALSE;}booleanmobileweather_InitAppData(CMobileWeather*pMe){pMe->DeviceInfo.wStructSize=sizeof(pMe->DeviceInfo);ISHELL_GetDeviceInfo(pMe->a.m_pIShell,&amp;pMe->DeviceInfo);pMe->pIDisplay=pMe->a.m_pIDisplay;pMe->pIShell=pMe->a.m_pIShell;if((ISHELL_CreateInstance(pMe->pIShell,AEECLSID_HTML,(void**)(&amp;pMe->m_pHTMLViewer))!=SUCCESS)||(ISHELL_CreateInstance(pMe->pIShell,AEECLSID_WEB,(void**)(&amp;pMe->m_pIWeb))!=SUCCESS)){IAPPLET_Release((IApplet*)pMe);returnFALSE;}IHTMLVIEWER_SetNotifyFn(pMe->m_pHTMLViewer,(PFNHVIEWNOTIFY)myiwebhtml_NotifyCB,pMe);IHTMLVIEWER_SetProperties(pMe->m_pHTMLViewer,HVP_SCROLLBAR);<br/>//addmorereturnTRUE;}<!--SIPO<DPn="14">--><dpn="d14"/>voidmobileweather_FreeAppData(CMobileWeather*pMe){if(pMe->m_pHTMLViewer){IHTMLVIEWER_SetNotifyFn(pMe->m_pHTMLViewer,NULL,pMe);IHTMLVIEWER_Release(pMe->m_pHTMLViewer);pMe->m_pHTMLViewer=NULL;}if(pMe->m_pIWeb){IWEB_Release(pMe->m_pIWeb);pMe->m_pIWeb=NULL;}//addmore}voidmobileweather_BuildMainMenu(CMobileWeather*pMe){CtlAddItempai;AEERectrc;rc.x=0;re.y=0;rc.dx=pMe->DeviceInfo.cxScreen;rc.dy=pMe->DeviceInfo.cyScreen;//Createtheiconviewmenuif(ISHELL_CreateInstance(pMe->a.m_pIShell,AEECLSID_MENUCTL,(void**)&amp;pMe->m_pMainMenu)!=SUCCESS)return;IMENUCTL_SetTitle(pMe->m_pIconMenu,MOBILEWEATHER_RES_FILE,IDS_MAIN,NULL);//addmoreIMENUCTL_SetRect(pMe->m_pIconMenu,&amp;re);IMENUCTL_SetActive(pMe->m_pIconMenu,TRUE);}voidmobileweather_Suspend(CMobileWeather*pMe){}voidmobileweather_Resume(CMobileWeather*pMe){}voidmobileweather_ShowHelp(CMobileWeather*pMe){}voidmobileweather_ShowAbout(CMobileWeather*pMe){<!--SIPO<DPn="15">--><dpn="d15"/>}staticvoidmobileweather_NotifyCB(void*pvUser,HViewNotify*pNotify){CMobileWeather*pMe=(CMobileWeather*)pvUser;switch(pNotify->code){caseHVN_REDRAW_SCREEN:IDISPLAY_ClearScreen(pMe->a.m_pIDisplay);IHTMLVIEWER_Redraw(pMe->m_pHTMLViewer);break;caseHVN_JUMP:caseHVN_SUBMIT://addmorecaseHVN_DONE:IHTMLVIEWER_SetRect(pMe->m_pHTMLViewer,&amp;pMe->m_rc);IHTMLVIEWER_Redraw(pMe->m_pHTMLViewer);break;}}staticvoidmobileweather_Start(CMobileWeather*pMe,char*pszUrl){//useIWeb_GetResponsetosubmitrequest//addmore}根据以上代码框架,可以很轻松的完成最终的程序代码。注意,服务器侧需要调整http请求和响应。图8是实施例中测试流程管理模块测试移植结果的流程图。下面结合图8来说明移动增值业务移植过程中的测试流程。单元测试生成模块214,移动增值业务代码生成模块读取天气播报业务的业务逻辑描述文件,解析出业务命令体(servicecommand)列表及每个业务命令体相应的信息体,然后遍历业务命令体列表,将业务命令体对应成业务逻辑原语,并从数据库中获得业务逻辑原语所对应的BREW平台的测试代码单元,最后,根据业务命令体中的逻辑次序将测试代码单元组成单元测试框架。实际上,这是面向测试的设计方法的一种体现。单元测试是一种白盒测试,当单元测试完成后,转入黑盒测试即集成测试。集成测试涉及到移动终端210,移动终端下载工具211,移动终端仿真器212等等,采用人工测试和自动化测试相结合的方法,在集成测试环境200中完成。对于需要运营商对资费代收代缴的业务,如WAP,BREW,J2ME,MMS等,测试中还要包括商用测试的过程。从单元测试到移动增值业务移植完成的整个过程是可监测,跟踪和记录的,由测试流程管理模块215来实现这一功能。通过从104(移动增值业务节点)下载移植后的天气播报BREW应用,用户使用LG930接入101(运营商无线网),从而连接103(互联网)访问106(应用服务器),106通过手机的终端类型信息生成相应的天气播报内容,如天气,风力,降水,气象指数以及相关图片等,最终在BREW平台上享受该服务。图9是本发明具体实施例的应用菜单结构图。说明了在LG950的brew平台上的天气播报服务的主页面包括开始,退出,关于,帮助四个菜单,在应用启动后,针对BREW业务的特点增加了“推荐给好友”的功能,该功能是通过发送短信实现的。尽管上面已经具体描述了本发明的一个实施示例,应该理解的是,本发明是一个适用于所有移动增值业务的移植方法和系统,在不脱离所附权利要求的构思和范围的情况下,可以进行各种变化和修改。权利要求1.一种基于移动增值业务的移植方法,包括下列步骤(1)、对移动增值业务的业务逻辑进行解析,分解为多种多层次的业务命令及相应的信息体,所述信息体包括命令所需的信息;(2)、对移动终端的软硬件平台进行解析,分解为多种多层次的资源标记及相应的信息体,所述信息体包括资源标记所需的信息;(3)、建立移动增值业务的移动平台间的映射关系,对移动平台间的同质属性和异质属性建立映射标记及相应的信息体,所述信息体包括映射标记所需的信息;(4)、根据移动增值业务的业务命令,移动终端的资源标记,移动终端平台间的映射标记生成目标移动终端或目标移动平台程序代码,完成移动增值业务的移植。2.根据权利要求1所述的基于移动增值业务的移植方法,其特征在于步骤(1)中对移动增值业务的业务逻辑进行解析,不仅可以采用人工解析业务逻辑,而且可以采用代码或文档解析的反向软件工程方法及自动半自动技术,或者二者的结合;步骤(2)中对移动终端软硬件平台的解析,不仅可以采用人工解析,而且可以采用代码或文档解析的反向软件工程方法及自动半自动技术,还可以采用探测程序从移动终端中获取,或者以上方法的结合;步骤(3)中建立移动平台间的映射关系不仅可以采用人工解析,而且可以采用代码或文档解析的反向软件工程方法及自动半自动技术,或者二者的结合;步骤(4)中生成目标移动终端平台程序代码不仅可以采用人工生成,而且可以采用代码生成技术的自动或半自动方法,或者二者的结合,目标移动终端或目标移动平台的程序代码生成是以业务命令体中的逻辑次序作为程序逻辑索引,动态生成若干业务命令原语,业务命令原语对应相应的程序代码单元,以程序逻辑索引组织程序代码单元的智能化。3.根据权利要求1所述的基于移动增值业务的移植方法,其特征在于步骤(1)中对业务逻辑的解析包括对移动终端业务逻辑解析,对移动增值业务的服务器侧的业务逻辑接口进行逻辑解析,解析产生的业务逻辑描述文件贮存于数据库中。4.根据权利要求1所述的基于移动增值业务的移植方法,其特征在于步骤(2)中对移动终端软硬件平台进行解析产生的移动平台间的映射关系的平台映射描述文件以数据库方式储存。5.根据权利要求1所述的基于移动增值业务的移植方法,其特征在于步骤(4)生成目标移动平台程序代码后,以测试流程为辅助对目标移动终端程序代码测试,可以采用人工测试,也可以采用自动或半自动化工具测试,或者二者的结合。6.根据权利要求1所述的基于移动增值业务的移植方法,其特征在于所述移动终端是手机或手提电脑。7.权利要求1-6之一所述的基于移动增值业务的移植方法用于(1)把增值业务在同一平台的不同终端上移植;(2)把增值业务在不同平台的同一终端上移植;(3)把增值业务在不同平台的不同终端上移植。8.一种基于移动增值业务的移植系统,包括营运商无线网(101)、运营商数据网(102)、互联网(103)、移动增值业务服务器(106)、移动增值业务节点(104)、移动终端(108),其特征在于有移动增值业务移植服务器(105)与运营商数据网(102)连接或与互联网(103)连接,或与互联网(103)、运营商数据网(102)同时连接,该移动增值业务移植服务器(105)包括数据库(217)和移植工具,移植工具包括移动增值服务移植处理器、业务逻辑解析模块(202)、平台映射解析模块(205)、移动终端资源探测模块(220)以及移动终端资源解析模块(208),其中移动增值服务移植处理器其主要模块为移动增值业务代码生成模块(218),用于将当前移动平台的增值服务转变成目标移动终端或目标移动平台的程序代码,从而实现移动增值业务的移植;移动增值业务代码生成模块(218)、平台映射解析模块(205)、移动终端资源解析模块(208)与数据库(217)连接,移动终端资源探测模块(220)与移动终端(108)和移动终端资源解析模块(208)连接。9.根据权利要求8所述的基于移动增值业务的移植系统,其特征在于移植工具还包括与业务逻辑解析模块(202)连接的业务逻辑反向模块(201),用于从准备移植的移动增值业务代码中抽取业务逻辑,包括移动终端的程序代码,也包括移动增值业务服务器端的程序代码。10.根据权利要求8所述的基于移动增值业务的移植系统,其特征在于移植工具还包括业务命令体原语模块(204),该业务命令体原语模块(204)与数据库(217)连接。11.根据权利要求8所述的基于移动增值业务的移植系统,其特征在于移动终端资源探测模块(220)还与一终端应用适配器(213)连接,该终端应用适配器(213)连接有移动终端下载工具(211)、移动终端仿真器(212),并与移动终端(210)连接。12.根据权利要求11所述的基于移动增值业务的移植系统,其特征在于还包括测试工具,测试工具包括源代码即单元测试工具,以及其他自动化或半自动化测试工具,其中有单元测试生成模块(214)、测试流程管理模块(215),移动终端(210)、移动终端下载工具(211)、移动终端仿真器(212)、终端应用适配器(213)、还有单元测试生成模块(214)、测试流程管理模块(215)、移动增值业务服务器适配模块(216)组成测试集成环境(200),单元测试生成模块(214)与移动增值业务代码生成模块(218)连接,测试流程管理模块(215)与测试集成环境(200)内的其他模块相连接。全文摘要本发明属于移动通讯
技术领域
,涉及一种基于移动增值业务的移植方法和系统。移植方法包括的步骤有(1)对移动增值业务的业务逻辑进行解析,分解为多种多层次的业务命令及相应的信息体;(2)对移动终端的软硬件平台进行解析,分解为多种多层次的资源标记及相应的信息体;(3)建立移动增值业务的移动平台间的映射关系,对移动平台间的同质属性和异质属性建立映射标记及相应的信息体;(4)根据移动增值业务的业务命令,移动终端的资源标记,移动终端平台间的映射标记生成目标移动平台程序代码,完成移动增值业务的移植。本发明适合于任何移动增值业务平台中的应用到任何移动增值业务平台中的应用的适配移植。文档编号H04W8/20GK1878347SQ20061008080公开日2006年12月13日申请日期2006年5月18日优先权日2006年5月18日发明者苏斌,赵明新申请人:苏斌,赵明新
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1