具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参阅图1,本发明实施例提供一种数据卡连网的方法,其主要包括:
101、数据卡连接到主机上后,利用以太网接口协议将所述数据卡映射成上网设备。
所述以太网接口协议为以太网络控制模型(Ethernet Working ControlModel,ECM)协议,或者,远端网络设备接口规范(Remote-Network DeviceInterface Specification,RNDIS)协议。
其中,步骤101中可以将数据卡直接映射成上网设备,也可以先将数据卡映射成存储设备,然后数据卡再进行模式切换,将数据卡映射成上网设备。其中,将数据卡映射成上网设备过程包括:该数据卡向主机上报符合以太网接口协议设备规范要求的设备描述符,所述设备描述符用于触发主机运行以太网接口驱动程序;该数据卡接收所述主机上运行的以太网接口驱动程序发送的符合以太网接口协议的初始化命令,根据该初始化命令进行初始化,使该数据卡具有上网功能。
如果先将数据卡映射成存储设备,则在该数据卡向主机上报符合以太网接口协议设备规范要求的设备描述符之前,主机会运行存储设备上存储的软件模块,然后采用应用程序或者驱动程序或者修改注册表的方式向数据卡发送模式切换命令,该模式切换命令触发数据卡向主机上报符合以太网接口协议设备规范要求的设备描述符,以便触发主机运行以太网接口驱动程序。
102、数据卡获取拨号信息,并利用所述拨号信息进行拨号以请求连接到网络。
其中,步骤102中,数据卡获取拨号信息包括:当有预存的拨号信息时获取预存的拨号信息,所述预存的拨号信息为用户上一次的拨号信息、运营商的拨号信息、***所述数据卡的用户识别卡中保存的拨号信息的一个拨号信息;当没有预存的拨号信息时,获取用户在web界面输入的拨号信息。当有预存的拨号信息时,首先利用预存的拨号信息进行自动拨号,而不需要用户手动输入,可以提高网络连接速度,提高用户体验。其中,拨号信息对于不同的网络可以有不同的形式,比如对于是宽带码分多址(Wideband CodeDivision Multiple Access,WCDMA)网络,拨号信息包括拨号号码和接入点名称(Access Point Name,APN)标识字符串;对于码分多址(Wideband CodeDivision Multiple Access,CDMA)网络,拨号信息包括拨号号码、用户名和密码。
其中,数据卡可以利用Web框架实现拨号,以请求连接到网络上。Web框架用于提供操作界面以完成拨号上网、短信、电话本等业务。具体的利用Web框架进行拨号的方式见后续实施例的详细描述。可选的,该数据卡也可以不使用Web框架进行拨号,而是利用PC客户端软件实现拨号。
103、数据卡接收所述网络为所述数据卡分配的地址。
104、所述上网设备为所述主机分配地址,利用所述上网设备为所述主机分配地址和网络为所述数据卡分配的地址,进行主机与网络间的通信。
其中,步骤102和步骤103是顺序执行的,步骤101与步骤102-步骤103没有执行上的先后顺序,可以并列执行。
本发明实施例利用以太网接口协议将数据卡映射为上网设备,使该数据卡具有上网功能,该具有上网功能的数据卡为主机分配地址,并利用为主机分配的地址和网络为数据卡分配的地址,进行主机与网络间的通信,这样,不需要安装驱动程序就可以使主机快速连接到网络上;另外,如果利用预存的拨号信息直接进行拨号上网,则可以进一步提高拨号速度。
为了使本发明上述实施例提供的技术方案更加清楚明白,如下实施例对数据卡连网方法进行详细介绍:
参阅图2,本发明实施例提供的数据卡连网方法包括:
201、数据卡连接到主机上。
该主机上可以运行任意操作***,比如Windows、Mac和Linux等操作***。
202、数据卡利用以太网接口协议将数据卡映射成上网设备,该上网设备为主机分配IP地址并发送给主机。
其中,将数据卡映射成上网设备的过程见后续图3所示实施例的详细介绍。
203、数据卡在***到主机上后,启动Web框架。
其中,数据卡上电后,Web框架自动启动。其中,Web框架包括包括:Web应用程序、Web协议栈和Web软件开发工具包。其中,Web协议栈包括:WEB服务器和TCP/IP协议栈,具体参见后续实施例的详细介绍。
204、数据卡利用移动宽带协议搜索网络,向搜索到的网络发送注册请求消息,接收到该网络发送的注册成功响应消息。
其中,步骤202、203和204没有执行上的先后顺序,其可以是并列执行的。
205、数据卡中的Web框架获取拨号信息,利用拨号信息进行拨号,以请求连接到数据卡在步骤204中已成功注册的网络,该网络为数据卡分配IP地址并向数据卡发送该IP地址。
其中,数据卡进行拨号上网的过程参见后续图4所示实施例的详细描述。
206、主机向数据卡发送访问请求消息,该访问请求消息的源地址是数据卡为主机分配的IP地址,数据卡接收到该访问请求消息后,将该访问请求消息的源地址修改为网络为数据卡分配的IP地址,向网络发送修改后的访问请求消息;网络向数据卡发送访问应答消息,该访问应答消息的目的地址是网络为数据卡分配的IP地址,数据卡接收到网络发送的访问应答消息后,将该访问应答消息的目的地址修改为数据卡为主机分配的IP地址,向主机发送修改后的访问应答消息。
其中,步骤201-步骤202的具体实现过程包括:
301、数据卡***到主机上,主机的USB主机驱动程序检测到有数据卡***。
该主机上可以运行任意操作***,比如Windows、Mac和Linux等操作***。
302、主机的USB主机驱动程序向数据卡发送USB命令。
该实施例中,该USB命令可以是一个USB设备枚举命令。
303、数据卡接收到该USB命令之后,向主机上报符合以太网接口协议设备规范要求的设备描述符,所述设备描述符用于触发主机运行以太网接口驱动程序。
该设备描述符描述该数据卡的特征,描述该数据卡为一个上网设备。
其中,以太网接口协议可以为ECM协议或者RNDIS协议,该步骤中,数据卡根据该USB命令,确定当前主机上运行的操作***是否是Windows操作***;如果当前主机上运行Windows操作***,则数据卡向主机上报符合RNDIS协议设备规范要求的设备描述符;如果当前主机上运行非Windows操作***,则数据卡向主机上报符合ECM协议设备规范要求的设备描述符。
具体的,可以是数据卡中的初始化模块接收到该USB命令之后,向主机上报符合以太网接口协议设备规范要求的设备描述符。
304、主机接收到设备描述符后,将以太网接口驱动程序加载到主机的内存中,运行该以太网接口驱动程序。
其中,以太网接口驱动程序可以是ECM驱动程序或者RNDIS驱动程序,以太网接口驱动程序是操作***自带的驱动程序,如果主机上运行的是Windows操作***,则该以太网接口驱动程序是RNDIS驱动程序,主机将RNDIS驱动程序加载到内存中并运行;如果当前主机上运行非Windows操作***,则该以太网接口驱动程序是ECM驱动程序,主机将ECM驱动程序加载到内存中并运行。
305、主机运行以太网接口驱动程序后,根据以太网接口协议规范调用操作***中的USB主机驱动程序向数据卡发送符合以太网接口协议的初始化命令。
306、数据卡根据接收到的初始化命令,进行相应的初始化操作,并向主机反馈符合以太网接口协议的响应消息,该响应消息表示该数据卡的初始化是否成功,如果初始化成功,则该数据卡就映射成一个上网设备。
具体的,可以是数据卡中的初始化模块接收到的初始化命令,对数据卡中的设备功能程序进行初始化,使该设备功能程序映射成以太网接口,使数据卡具有上网功能,然后,该初始化模块向主机反馈符合以太网接口协议的响应消息,其中,对数据卡中的设备功能程序进行初始化就是配置设备功能程序中的参数。
后续,如果主机接收到响应消息表示数据卡的初始化成功,则主机向数据卡发送地址分配请求消息,数据卡接收到该地址分配请求消息之后,为该主机分配IP地址并发送给主机。
具体的,数据卡中设备功能程序接收该地址分配请求之后发送给数据卡中的TCP/IP协议栈,数据卡中的TCP/IP协议栈为主机分配IP地址并发送给主机。
其中,步骤205的具体实现过程包括:
401、Web框架判断Web框架中是否保存有用户上一次的拨号信息,如果是,获取该用户上一次的拨号信息,执行406,如果否,执行402。
一般来说,用户拨号连接网络后,以后再上网时通常使用与上一次相同的拨号信息,所以该步骤中判断是否有用户上一次的拨号信息。
402、Web框架判断Web框架所保存的运营商配置表中是否有拨号信息,如果是,获取该拨号信息,执行406,如果否,执行403。
其中,运营商可以要求设备商在Web框架中加入运营商配置表,这样,在数据卡出厂时,该数据卡的Web框架中就保存有运营商配置表,该运营商配置表中存储运营商所配置的信息,该步骤是判断该运营商配置表中是否有运营商配置的拨号信息。
403、Web框架判断***该数据卡的用户识别卡中是否有拨号信息,如果是,获取该用户识别卡中的拨号信息,执行406,如果否,执行404。
其中,运营商可以在用户识别卡中预置拨号信息,其中,用户识别卡可以是SIM卡、USIM卡或者UIM卡等,其中,SIM卡是2G网络的用户识别卡;USIM卡是宽带码分多址(Wideband Code Division Multiple Access,WCDMA)网络的用户识别卡,UIM卡是码分多址(Wideband Code DivisionMultiple Access,CDMA)网络的用户识别卡。
404、Web框架判断Web框架所保存的设备商配置表中是否有拨号信息,如果是,获取该拨号信息,执行406,如果否,执行405。
Web框架中保存有设备商配置表,该设备商配置表中保存有设备商配置的信息,由于全球运营商使用的拨号信息大部分是公开的,所以设备商可以将拨号信息写入设备商配置表,这样,数据卡出厂时,该设备商配置表中就保存有该拨号信息了。
需要说明的是,上述步骤401-404是Web框架启动后,由Web框架中的拨号模块中的第一拨号模块进行执行的。
405、等待用户输入拨号信息,Web框架到获取用户在主机上的web界面输入的拨号信息。
由于在Web框架启动后,用户可以在Internet浏览器上输入数据卡的地址,打开Web框架界面,如果用户点击“拨号”按钮,则Internet浏览器上会显示拨号界面,用户在拨号界面上输入拨号信息。
数据卡的地址指该数据卡的Web框架的IP地址,或者该数据卡的Web框架的网址。
406、Web框架利用拨号信息进行拨号,以请求连接该数据卡已注册的网络。
需要说明的是,上述步骤401-404中的4个判断没有一定的先后执行顺序。可选的,可以先进行步骤402的判断,在步骤402的判断结果为否时,再进行步骤401的判断,在步骤401的判断结果为否时,再进行步骤403、步骤404的判断;或者,先进行步骤403的判断,在步骤403的判断结果为否时,再顺序进行步骤401、步骤402的判断,在步骤402的判断结果为否时,再进行步骤404的判断。
数据卡***到主机并连接到网络上后,会对来自主机的数据进行处理,该来自主机的数据包括两种类型,一种为互联网应用数据,该互联网应用数据流可以来自主机的Internet浏览器所浏览的网页,也可以来自互联网应用软件,比如QQ、MSN等即时通信软件。另一种为管理命令,该管理命令是用于操作数据卡业务的命令,比如发送短信等命令。
参阅图5A,如下描述一种对来自主机的数据流的处理过程:
501A、主机中的网络应用程序将数据下发给Web框架中的TCP/IP协议栈。
其中,主机中的网络应用程序包括互联网应用软件和Internet浏览器,互联网应用软件可以是QQ、MSN等即时通信软件。
502A、主机中的TCP/IP协议栈对数据进行封装,将封装后的数据包发送给网口映射程序。
503A、主机中的网口映射程序将该数据包通过USB端口发送给数据卡。
其中,该网口映射程序是主机侧网口映射程序,该主机侧网口映射程序包括:主机侧以太网接口驱动程序和主机侧USB驱动程序。具体的,主机侧以太网接口驱动程序接收到TCP/IP协议栈下发的数据包之后,调用操作***中的主机侧USB驱动程序将该数据包通过USB端口发送给数据卡。
504A、数据卡上的网口映射程序将该数据包发送给数据卡上的Web框架。
其中,数据卡上的网口映射程序为设备侧网口驱动程序,设备侧网口驱动程序包括:设备功能程序和设备侧USB驱动程序。具体的,设备侧USB驱动程序接收该数据包并发送给设备功能程序,设备功能程序将该数据包发送给Web框架。
505A、数据卡上的Web框架对该数据包进行解封装,根据该数据包的目的地址,确定数据包中的数据是管理命令还是互联网业务数据,如果是互联网业务数据,执行506A;如果是管理命令,执行507A。
具体的,如果该数据包的目的地址是数据卡的地址,则确定该数据包中的数据是管理命令,具体的数据卡的地址可以是数据卡的IP地址或者数据卡的域名等。
506A、数据卡上的Web框架将互联网业务数据发送给MBB无线协议栈,MBB无线协议栈对该互联网业务数据进行封装后向网络发送,结束本流程。
507A、数据卡上的Web框架根据该管理命令,对待显示的Web页面内容进行封装,向数据卡上的网口映射程序发送封装后的数据包。
其中,如果管理命令指示提供某个界面以供用户利用该界面实现具体的业务,比如,提供上网拨号界面以供用户在该界面上输入具体的拨号信息,或者提供短信发送界面,则待显示的Web页面内容为保存在Web框架中的html文件,比如dialup.html文件等。如果管理命令指示需要实现具体的业务,则Web框架需要根据该管理命令,实现具体的业务,并根据业务实现结果,刷新Web页面内容,该刷新后的Web页面内容就是待显示的Web页面内容。比如该管理命令指示向某个接收方电话号码发送具体的短信文本内容,则Web框架会调用单板软件提供的短信业务接口(该单板软件提供的短信业务接口是MBB的底层接口函数),将具体的短信文本内容发送给接收方电话号码,根据发送结果,即发送成功或者失败,刷新Web页面内容,将该刷新后的Web页面内容进行封装后发送,这样,后续主机上接收到后,就可以显示短信发送结果,通知用户短信发送成功还是失败。
508A、数据卡上的网口映射程序将封装后的数据包透传给主机上的网口映射程序。
509A、主机上的网口映射程序将封装后的数据包发送给主机上的TCP/IP协议栈。
510A、主机上的TCP/IP协议栈对封装后的数据包解封装,得到待显示的Web页面内容,发送给主机上的Internet浏览器,后续该主机上的Internet浏览器根据该待显示的Web页面内容,显示Web页面,比如显示拨号页面或者短信发送页面。
具体的,管理命令和互联网业务数据的传输如图5B所示,图5B中虚线表示管理命令,实线表示互联网业务数据。
如下图6A和图7A所示实施例将对Web框架如何处理数据流进行详细描述:
参阅图6A,如下描述对来自主机的数据流的一种具体处理方法,该方法假定来自主机的数据是管理命令,且该管理命令指示提供某个界面以供用户利用该界面实现具体的业务,比如,提供上网拨号界面以供用户在该界面上输入具体的拨号信息,或者提供短信发送界面,以供用户在该界面上输入具体的短信接收方电话号码和短信文本内容等,该方法具体包括:
步骤601A-603A与步骤501A-503A相同,在此不再赘述。
604A、数据卡上的网口映射程序将该数据包发送给数据卡上的Web协议栈。
605A、Web协议栈对该数据包进行解封装,根据该数据包的目的地址,确定数据包中的数据是管理命令还是互联网业务数据,如果是互联网业务数据,执行606A;如果是管理命令,执行607A。
具体的,如果该数据包的目的地址是数据卡的地址,则确定该数据包中的数据是管理命令,具体的数据卡的地址可以是数据卡的IP地址或者数据卡的域名等。
606A、Web协议栈将互联网业务数据发送给MBB无线协议栈,MBB无线协议栈对该互联网业务数据进行封装后向网络发送,结束本流程。
607A、如果该管理命令指示提供某个界面以供用户利用该界面实现具体的业务,则Web协议栈向Web应用程序查询该该界面所对应的Web页面内容,比如超文本标记语言(HyperText Mark-up Language,html)格式的文件,简称html文件。
其中,该Web页面内容可以是htm格式的文件,也可以是jsp(Java ServerPages)格式的文件或者动态服务器页面(Active Server Page,asp)格式的文件或者超级文本预处理语言(Hypertext Preprocessor,php)格式的文件。本发明实施例以html文件进行描述,在其他实施方式中,也可以采用其他格式的文件,不影响本发明的实现。
608A、Web协议栈对html文件进行封装,将封装后的数据包发送给数据卡上的网口映射程序。
609A、数据卡上的网口映射程序将该封装后的数据包透传给主机上的网口映射程序。
610A、主机上的网口映射程序将该封装后的数据包发送给主机上的TCP/IP协议栈。
611A、主机上的TCP/IP协议栈对该封装后的数据包进行解封装,发送给主机上的Internet浏览器,后续该主机上的Internet浏览器根据该html文件显示页面,比如显示拨号页面或者短信发送页面。
具体的,管理命令和互联网业务数据的传输如图6B所示,图6B中虚线表示管理命令,实线表示互联网业务数据。
参阅图7A,如下描述另一种对来自主机的数据流的处理过程,其具体包括:
步骤701A-707A与步骤601A-607A相同,在此不再赘述。
707A、如果该管理命令指示需要实现具体的业务,则Web协议栈将该管理命令发送给Web应用程序。
比如,该管理命令指示发送向某个接收方电话号码发送具体的短信文本内容,则Web协议栈将该管理命令发送给Web应用程序。
708A、Web应用程序根据管理命令,调用适用于发送Web服务消息包的发送接口,将Web服务消息包发送给Web协议栈,Web协议栈解析该Web服务消息包,将Web服务消息包中的数据内容和指示要实现的具体业务的指示信息发送给Web软件开发工具包。其中,该发送接口是应用程序编程接口(Application Programming Interface,API),该发送接口是基于可扩展标记语言(Extensible Markup Language,XML)和HTTP的接口,或者是基于JSON(JavaScript Object Notation)和HTTP的接口,其中,JSON是一种数据交换格式的接口。
续上述实例,数据内容包括短信文本内容和接收方电话号码。
709A、Web软件开发工具包实现具体的业务。
本发明实施例中,Web软件开发工具包包括:业务调用模块(即ServiceInvocation Layer,简称SIL)、业务容器(Service Container)和业务提供接口(Service Provider Interface,简称SPI)。其中,业务容器中包括各个具体的业务实现模块,每个业务实现模块上有一个或者多个业务实现接口,比如拨号模块中包括拨号接口,短信模块中可以包括短信发送接口、短信接收接口等,以便供业务调用模块进行调用;业务提供接口,供业务调用模块和/或业务实现接口进行调用,其按照数据卡上的单板软件支持的命令格式,对入口参数进行封装,然后调用的单板软件提供的通信适配层接口。需要说明的是,Web软件开发工具包中的业务实现接口和业务提供接口属于API接口。
其中,步骤708A中指示要实现的具体业务的指示信息指示了管理命令类型和具体的业务操作。管理命令类型指发送/修改,或者读取等,其中,发送/修改用参数“POST”表示,读取用参数“GET”表示。具体的业务操作可以分为简单业务操作和复杂业务操作,简单业务操作指执行简单的AT命令或者QMI命令等,这些AT命令或者QMI命令通常是由管理源在Internet浏览器上输入的,业务调用模块识别指示信息所指示的具体的业务操作为简单业务操作后则直接调用业务提供接口;复杂业务操作通常是用户进行的发送短信等操作,业务调用模块识别指示信息所指示的具体的业务操作为复杂业务操作后就需要调用具体的业务实现接口。该步骤利用业务调用模块、业务容器和业务提供接口实现具体的业务,具体实现过程见后续实施例的详细描述。
710A、Web软件开发工具包向Web应用程序返回业务实现结果。
711A、Web应用程序根据业务实现结果,刷新Web界面内容,并向Web协议栈发送刷新后的Web界面内容,该刷新后的Web界面内容就是待显示的Web界面内容。
后续步骤712A-715A与步骤507A-510A相同,在此不再赘述。
具体的,管理命令和互联网业务数据的传输如图7B所示,图7B中虚线表示管理命令,实线表示互联网业务数据。
如下以发送短信为例,具体描述数据流的处理过程:
801、用户利用Internet浏览器打开Web框架界面后,点击短信业务对应的按钮,则Internet浏览器获取指示提供短信发送页面的管理命令,该管理命令指示需要提供短信发送页面以供用户输入信息实现短信发送业务;Internet浏览器将该管理命令封装成HTTP格式的数据包后发送给主机上的TCP/IP协议栈,主机上的TCP/IP协议栈对HTTP格式的数据包进行封装后向数据卡发送。
802、数据卡的TCP/IP协议栈接收到数据包后,对该数据包进行解封装,根据该数据包的目的地址,确定该数据包中的数据是管理命令,将解封装得到的HTTP格式的数据包发送给HTTP服务器。HTTP服务器进行解封装后,获得指示提供短信发送页面的管理命令,根据该管理命令,到Web应用程序上查找该短信发送页面对应的html文件,将该html文件封装成HTTP格式的数据包,并发送给数据卡的TCP/IP协议栈。数据卡的TCP/IP协议栈对接收的来自HTTP服务器的数据包进行封装后发送给主机。
803、主机上的TCP/IP协议栈对来自数据卡的数据包进行解封装,得到HTTP格式的数据包并发送给Internet浏览器,Internet浏览器对HTTP格式的数据包进行解封装,得到短信发送页面对应的html文件,根据该html文件,显示短信发送页面,如图9所示。
804、用户在短信发送页面上输入接收方电话号码和短信文本内容,点击“发送”按钮,Web应用程序接收到短信发送命令,该短信发送命令是用于指示发送短信的管理命令。
具体的,Web应用程序接收到短信发送命令的过程包括:用户“点击”按钮之后,Internet浏览器获取短信发送命令,Internet浏览器将该短信发送命令封装成HTTP格式的数据包后发送给主机上的TCP/IP协议栈,主机上的TCP/IP协议栈对HTTP格式的数据包进行封装后向数据卡发送;数据卡的TCP/IP协议栈接收到数据包后,对该数据包进行解封装,根据该数据包的目的地址,确定该数据包中的数据是管理命令,将解封装得到的HTTP格式的数据包发送给HTTP服务器。HTTP服务器进行解封装后,获得短信发送命令,将短信发送命令发送给Web应用程序。
805、Web框架上的Web应用程序根据该短信发送命令,生成数据内容,调用适用于发送HTTP文件的发送接口,将HTTP文件发送给HTTP服务器。
其中,该步骤中的数据内容是HTTP格式的;
假定接收方电话号码为“12512345678”,短信文本内容为“This is a demosms text.”
则HTTP文件具体如下:
POST/api/sms/send HTTP/1.1
<?xml version=″1.0″encoding=″UTF-8″?>
<api version=″1.0″>
<request>
<number>13512345678</number>
<body>This is a demo sms text.</body>
</request>
</api>
其中,该HTTP文件包括数据头和数据内容,其中,数据头为POST/api/sms/send HTTP/1.1,其包括4个参数,POST、sms、send和HTTP/1.1。具体的,POST表示管理命令的类型为发送或者修改;HTTP/1.1表示HTTP协议的1.1版本;sms/send表示后续需要调用短信模块中的短信发送接口进行短信发送。
其中,该HTTP文件的数据内容主要包括两个字段,这两个字段的定义如表1:
字段名 |
类型 |
长度 |
说明 |
number |
string |
31 |
接收方电话号码 |
Body |
string |
1000 |
短信文本内容 |
表1
806、HTTP服务器接收到该HTTP文件后,解析该HTTP文件,将api/sms/send和数据内容发送给业务调用模块,即Service Invocation Layer,简称SIL。
807、业务调用模块根据api/sms/send,确定当前要进行的业务是发送短信,以接收方电话号码和短信文本内容为入口参数,调用业务容器(ServiceContainer)中的短信发送接口。
其中,业务容器中保存有各个业务实现接口,比如用于拨号上网的拨号接口、用于发送短信的短信发送接口等。
其中,短信发送接口的形式可以是:
int SendSms(String strPhoneNumber,String strBody)
业务调用模块从数据内容中解析出接收方号码和短信文本内容,以接收方号码和短信文本内容为短信发送接口的入口参数,调用该短信发送接口,即:
SendSms(“13512345678”,“This is a demo sms text.”)
808、短信发送接口将接收方号码和短信文本内容进行编码,以编码结果为入口参数调用短信发送业务提供接口。
短信发送业务提供接口的形式可以为:
int SPI_SendSms(String strPhoneNumber,String strBody)
那么,此时即调用:
SPI_SendSms(“13512345678”,“This is a demo sms text.”)
809、短信发送业务提供接口对编码结果进行封装,得到单板软件支持的封装结构,将该封装结构作为入口参数,调用短信发送业务对应的单板软件提供的短信业务接口。
其中,单板软件提供的短信业务接口为数据卡底层接口函数。
其中,单板软件支持的命令格式可以是AT命令,也可以是QIM命令。
其中,3GPP 27.005协议定了标准的AT命令。
810、短信发送业务对应的单板软件提供的短信业务接口发送短信,向短信发送业务提供接口返回发送短信发送结果,短信发送业务提供接口向短信发送接口返回短信发送结果;短信发送接口向业务调用模块返回短信发送结果,业务调用模块通过HTTP服务器向Web应用程序返回短信发送结果,Web应用程序根据短信发送结果,刷新Web页面内容。
811、Web应用程序将刷新后的Web页面内容发送给主机,主机显示短信发送结果。
其中,具体的Web应用程序将刷新后的Web页面内容发送给主机,以及主机显示短信发送结果的过程与步骤710A-715A的过程相似,在此不再赘述。
如下结合Web框架的具体结构,描述步骤405的具体实现过程。
1001、用户利用Internet浏览器打开Web框架界面后,点击拨号对应的按钮,则Internet浏览器获取指示提供拨号页面的管理命令,该管理命令指示需要提供拨号页面以供用户输入拨号信息实现拨号上网;Internet浏览器将该管理命令封装成HTTP格式的数据包后发送给主机上的TCP/IP协议栈,主机上的TCP/IP协议栈对HTTP格式的数据包进行封装后向数据卡发送。
1002、数据卡的TCP/IP协议栈接收到数据包后,对该数据包进行解封装,根据该数据包的目的地址,确定该数据包中的数据是管理命令,将解封装得到的HTTP格式的数据包发送给HTTP服务器。HTTP服务器进行解封装后,获得指示提供拨号页面的管理命令,根据该管理命令,到Web应用程序上查找该拨号页面对应的html文件,将该html文件封装成HTTP格式的数据包,并发送给数据卡的TCP/IP协议栈。数据卡的TCP/IP协议栈对接收的来自HTTP服务器的数据包进行封装后发送给主机。
1003、主机上的TCP/IP协议栈对来自数据卡的数据包进行解封装,得到HTTP格式的数据包并发送给Internet浏览器,Internet浏览器对HTTP格式的数据包进行解封装,得到短信发送页面对应的html文件,根据该html文件,显示拨号页面。
1004、用户在拨号页面上输入拨号信息,点击“确认”按钮,Web应用程序接收到拨号命令。
具体的,Web应用程序接收拨号命令的过程与上述接收短信发送命令的过程相似,在此不再赘述。
1005、Web框架上的Web应用程序根据该拨号命令,生成数据内容,调用适用于发送HTTP文件的发送接口,将HTTP文件发送给HTTP服务器。
HTTP文件包括数据头和数据内容,数据内容包括拨号信息,数据头包括指示拨号业务的指示信息。
1006、HTTP服务器接收到该HTTP文件后,解析该HTTP文件,将指示拨号业务的指示信息和数据内容发送给业务调用模块。
1007、业务调用模块根据指示拨号业务的指示信息,确定当前要进行的业务是拨号,以拨号信息为入口参数,调用业务容器(Service Container)中的拨号接口。
1008、拨号接口对拨号信息进行编码,以编码结果为入口参数调用拨号业务提供接口。
1009、拨号业务提供接口对编码结果进行封装,得到单板软件支持的封装结构,将该封装结构作为入口参数,调用通用拨号业务对应的单板软件提供的拨号业务接口。
1010、拨号业务对应的单板软件提供的拨号业务接口进行拨号,以请求链接到数据卡已注册的网络。
需要说明的是,在步骤801和步骤1001之前,需要打开Web框架界面,打开Web框架界面的过程包括:用户可以在Internet浏览器上输入数据卡的地址和页面文件(比如用户输入:http://192.168.1.1/index.html),则Internet浏览器将用户输入的内容进行封装,得到HTTP格式的数据包后发送给主机上的TCP/IP协议栈,主机上的TCP/IP协议栈对HTTP格式的数据包进行封装后向数据卡发送。数据卡的TCP/IP协议栈接收到数据包后,对该数据包进行解封装,根据该数据包的目的地址,确定该数据包中的数据是管理命令,将解封装得到的HTTP格式的数据包发送给HTTP服务器。HTTP服务器进行解封装后,到Web应用程序上查找index.html文件,将该index.html文件封装成HTTP格式的数据包,并发送给数据卡的TCP/IP协议栈。数据卡的TCP/IP协议栈对接收的来自HTTP服务器的数据包进行封装后发送给主机。主机上的TCP/IP协议栈对来自数据卡的数据包进行解封装,得到HTTP格式的数据包并发送给Internet浏览器,Internet浏览器对HTTP格式的数据包进行解封装,得到短信发送页面对应的index.html文件,根据该index.html文件,显示Web框架界面。
需要说明的是,也可以利用上述Web框架进行远程管理,如图11所示,假定主机A和主机B是移动网内的PC,主机C是移动网所连的公网中的一台PC;其中,图中的10.11.1.100是主机A利用数据卡拨号上网后移动网络分配给数据卡的地址;192.168.1.1是数据卡分配给主机A的地址;10.11.1.200为主机B的地址;231.11.22.33是主机C的地址,10.11.1.1是网关移动网络分配给网关的地址;202.12.6.12是公网分配给网关的地址;在主机B上的浏览器中输入“http://10.11.1.100”就打开数据卡上面的Web框架界面,然后就像主机A本地使用数据卡一样,进行远程管理任务,比如远程实现发送短信、拨号上网等。在主机C上的浏览器中输入“http://202.12.6.12/端口号”,运营商在网关上配置了端口号和移动网内网地址(即10.11.1.100)的对应关系,网关根据该对应关系,打开数据卡上面的Web框架界面,具体的主机C访问10.11.1.100的过程与已有技术相似,在此不再赘述。
参阅图12,本发明实施例提供一种数据卡,其包括:
初始化模块100,用于在数据卡连接到主机上后,向数据卡上报符合以太网接口协议设备规范要求的设备描述符,根据主机发送的符合以太网接口协议的初始化命令,配置设备功能程序的参数,使所述设备功能程序映射成以太网接口;
拨号模块200,用于获取拨号信息,利用所述拨号信息进行拨号以请求连接到网络;
通信模块300,用于在配置设备功能程序后,将所述配置后的设备功能程序发送的来自主机的数据发送给已连接的所述网络,将来自所述网络的数据发送给所述配置后的设备功能程序;
配置后的设备功能程序400,用于将来自主机的数据发送给通信模块,将来自通信模块的数据发送给主机。
其中,通信模块300包括:TCP/IP协议栈310和MBB无线协议栈320;
所述TCP/IP协议栈,用于在初始化设备功能程序后,给所述主机分配地址,当所述初始化后的设备功能程序发送的数据包中的数据是互联网业务数据时,利用TCP/IP协议栈为主机分配的地址和网络为数据卡分配的地址,向MBB协议栈发送第一数据包,所述第一数据包是源地址为网络为数据卡分配的地址、且包括所述互联网业务数据的数据包;接收MBB无线协议栈发送的数据包,向所述初始化后的设备功能程序发送第二数据包,所述第二数据包中的源地址为TCP/IP协议栈为主机分配的地址,所述第二数据包包括MBB无线协议栈发送的数据包中的互联网业务数据;
所述配置的设备功能程序,用于将所述TCP/IP协议栈为主机分配的地址发送给主机,将来自主机的数据包发送给TCP/IP协议栈;将来自TCP/IP协议栈的第二数据包发送给主机;
所述MBB无线协议栈,用于接收网络为数据卡分配的地址,将网络为数据卡分配的地址发送给所述TCP/IP协议栈,将来自TCP/IP协议栈的数据包进行处理,向网络发送处理后的数据包;将来自网络的数据包进行处理后发送给TCP/IP协议栈。
其中,拨号模块200用于当有预置的拨号信息时获取预置的拨号信息,利用预置的拨号信息进行拨号以请求连接到网络,所述预置的拨号信息为用户上一次的拨号信息、运营商的拨号信息、***所述数据卡的用户识别卡中保存的拨号信息的一个拨号信息;当没有预置的拨号信息时,利用用户输入的拨号信息进行拨号以请求连接到网络。
本发明实施例利用以太网接口协议将数据卡映射为上网设备,使该数据卡具有上网功能,该具有上网功能的数据卡为主机分配地址,并利用为主机分配的地址和网络为数据卡分配的地址,进行主机与网络间的通信,这样,不需要安装驱动程序就可以使主机快速连接到网络上。
参阅图13,本发明实施例提供一种数据卡,其包括:初始化模块10、设备功能程序40、Web框架20和单板软件30,
其中,初始化模块10和设备功能程序20与上述实施例中初始化模块100和设备功能程序200的结构和功能相似,在此不再赘述。
具体的,参阅图14,Web框架20包括:Web应用程序60、Web协议栈70和Web软件开发工具包80。
其中,Web应用程序60上保存有Web页面内容,该Web页面内容可以以html格式存在。Web协议栈70包括:WEB服务器71和TCP/IP协议栈72。Web软件开发工具包80包括:业务调用模块81、业务容器82和业务提供模块83。其中,业务容器中包括各个具体的业务实现模块,比如拨号模块、短信模块等,其中,拨号模块中包括第一拨号模块和拨号接口,短信模块中可以包括短信发送接口、短信接收接口等,其中,拨号接口、短信发送接口、短信接收接口等称为业务实现接口,以便供业务调用模块进行调用;业务提供模块内包括多个业务提供接口,以供业务调用模块和/或业务实现模块中的业务实现接口进行调用,业务提供接口按照数据卡上的单板软件支持的命令格式,对入口参数进行封装,然后调用单板软件提供的业务接口实现相应的业务。
下面对Web框架20中的各模块的功能进行详细介绍:
其中,TCP/IP协议栈72具有上述实施例中TCP/IP协议栈310的全部功能,在此不再赘述。且该TCP/IP协议栈72还用于判断所述初始化后的设备功能程序发送的数据的目的地址是否是数据卡的地址,如果否,则该所述初始化后的设备功能程序发送的数据是互联网业务数据;如果是,则该所述初始化后的设备功能程序发送的数据是管理命令,将所述管理命令发送给Web服务器;
Web服务器,用于判断管理命令是第一管理命令还是第二管理命令,其中,第一管理命令是用于指示需要提供预置Web界面内容的管理命令;第二管理命令是用于指示需要实现具体业务的管理命令;如果是第二管理命令,将所述第二管理命令发送给Web应用模块;如果是第一管理命令,根据所述第一管理命令,从所述Web应用模块上搜索所述第一管理命令所对应的Web界面内容,将搜索到的Web界面内容发送给TCP/IP协议栈,后续由该TCP/IP协议栈对该Web界面内容进行封装后发送给主机,主机中的Internet浏览器再根据该Web界面内容进行显示。
Web应用模块,用于根据第二管理命令,生成数据内容;调用适用于发送Web服务消息包的API接口,将Web服务消息包发送给WEB服务器,所述Web服务消息包包括数据头和数据内容,其中,所述数据头包括:指示待实现的具体业务的指示信息;
WEB服务器,还用于解析所述Web服务消息包,将所述数据内容和所述指示信息发送给Web软件开发工具包中的业务调用模块;
业务调用模块,用于根据所述指示信息,以所述数据内容中的参数为入口参数调用业务提供接口或者业务实现接口;其中,数据内容中的参数包括用户输入的信息;其中,业务提供接口或者业务实现接口属于API接口。
业务实现接口,用于对所述数据内容中的参数进行编码,确定需要调用的业务提供接口,以编码结果为入口参数调用业务提供接口;比如,如果管理命令是指示向某个电话号码发送短信,则该业务提供接口为短信发送接口。
业务提供接口,用于对所述编码结果或者所述数据内容中的参数进行封装,得到单板软件支持的封装结构,将所述封装结构作为入口参数,调用单板软件提供的业务接口。比如,如果管理命令是指示向某个电话号码发送短信,则该业务提供接口可以是短信发送业务提供接口。其中,业务调用模块、业务实现接口和业务提供接口间调用可参见图8、图10所示方法实施例的相应描述,在此不再赘述。
具体的,所述拨号模块包括:第一拨号模块和/或拨号接口;所述第一拨号模块,具体用于当有预置的拨号信息时获取预置的拨号信息,以预置的拨号信息为入口参数调用拨号业务提供接口;其中,拨号业务提供接口用于对所述编码结果进行封装,得到单板软件支持的封装结构,将所述封装结构作为入口参数,调用拨号业务对应的单板软件提供的拨号业务接口;拨号业务对应的单板软件提供的拨号业务接口进行拨号,以请求链接到数据卡已注册的网络。其中,拨号接口、拨号业务提供接口等属于API接口,一般是函数接口。具体的,与图4所示实施例相似,该第一拨号模块可先该第一拨号模块中是否保存有用户上一次的拨号信息,如果是,利用该用户上一次的拨号信息调用拨号业务提供接口,如果否,判断该第一拨号模块中所保存的运营商配置表中是否有拨号信息,当运营商配置表中有拨号信息时,利用该拨号信息调用拨号业务提供接口;当运营商配置表中没有拨号信息时,判断***该数据卡的用户识别卡中是否有拨号信息,当用户识别卡中有拨号信息时,利用该拨号信息调用拨号业务提供接口;当用户识别卡中没有拨号信息时,判断第一拨号模块中所保存的设备商配置表中是否有拨号信息,如果设备商配置表中有拨号信息时,则利用该拨号信息调用拨号业务提供接口。
当没有预置的拨号信息,则第一拨号模块没有拨号成功,主机没有连接到网络上,此时,用户可以通过主机的Internet浏览器打开Web框架界面,点击“拨号”按钮,则Internet浏览器上会显示拨号界面,用户在拨号界面上输入拨号信息,主机将指示拨号上网的管理命令发送给数据卡。此时,WEB服务器,用于将主机上的IE浏览器发出的第一Web服务消息包进行解封装,得到管理命令,将管理命令发送给Web应用模块;此时,该管理命令用于指示需要进行拨号上网业务;所述管理命令包括用户输入的拨号信息;并解析Web应用模块发送的第二Web服务消息包,将第二Web服务消息包中的指示信息和数据内容发送给业务调用模块;Web应用模块,用于根据所述TCP/IP协议栈发送的管理命令,生成数据内容,调用适用于发送第二Web服务消息包的应用程序编程接口API,将第二Web服务消息包发送给WEB服务器,所述第二Web服务消息包包括数据头和数据内容,其中,所述数据头包括:指示需要进行拨号上网业务的指示信息;所述数据内容包括用户输入的拨号信息;所述业务调用模块,用于根据所述指示信息确定需要进行拨号上网业务以用户输入的拨号信息为入口参数,调用拨号接口。其中,具体的拨号过程参见图10所示实施例的相应描述,在此不再赘述。
单板软件30包括MBB无线协议栈31、AT应用程序32和/或QMI应用程序33等,其中,AT应用程序32和QMI应用程序33中包括单板软件提供的业务接口,比如短信发送接口和拨号接口等。
需要说明的是,上述Web软件开发工具包80还可以包括:适配层接口(OSApdater),由于不同的设备平台可以有不同的操作***,为了软件开发的归一化,该适配层接口将不同操作***的编程接口进行封装,这样,就可以使Web软件开发工具包80中的具体业务实现接口不用考虑操作***的区别。
需要说明的是,该数据卡上还可以包括客户端软件,这样,当数据卡映射成存储设备之后,主机从存储设备中获取客户端软件并运行,然后进行拨号上网等业务。
本发明各实施例利用以太网接口协议将数据卡映射为上网设备,使该数据卡具有上网功能,该具有上网功能的数据卡为主机分配地址,并利用为主机分配的地址和网络为数据卡分配的地址,进行主机与网络间的通信,这样,不需要安装驱动程序和PC客户端软件就可以使主机快速连接到网络上;进一步的,现有技术中在安装驱动软件和PC客户端软件之后,用户双击PC客户端软件,PC客户端软件完成初始化以便给用户提供启动拨号的操作界面,这个过程大约需要5-10s,拨号上网过程本身需要5-10s,因此整个拨号上网过程需要10-20s,而本发明可以利用预置的拨号信息进行拨号,加快连网速度;进一步的,由于Web网页文件大小远远小于PC客户端软件,PC客户端软件大小为80M,Web网页文件大小为5M,因此减少了数据卡的硬件需求,降低了成本。进一步,由于PC机上OS主要有Windows、MacOS和Linux,其中,每一种又有多个子版本,比如,Linux的子版本包括:Ubuntu、Fedora和Debian等;数据卡不仅用于PC机,也可以用于嵌入式领域,此时OS就更变化多端了,有WindowsCE、WindowsMobile、Androi各种嵌入式Linux。几乎每一种OS都有自己特殊的开发平台、编程语言,而无法跨平台,现有技术中必须在每一种OS上开发独立的PC客户端软件,增加了PC客户端软件的开发难度,并且也浪费了大量人力物力。本发明用Web框架代替PC客户端软件,可以在各操作***上使用。
以上对本发明实施例所提供的数据卡及数据卡连网的方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。