具体实施方式
在说明本发明的各实施例之前,首先将定义本说明书中使用的某些术语。
“移动消息传送”是指发送和/或接收数据,比如经由无线网向或者从移动装置发送和/或接收文本消息、电子邮件、提示、日历预约、视频、音频、图像和其它类型的数据。
“多媒体消息业务(MMS)”是经由得到各种移动装置广泛支持的网络发送和接收图形、视频、声音和其它多媒体内容的业务。
“多媒体消息业务中心(MMSC)”是通常由无线网络操作员操作的系统,其中所述无线网络操作员接收MMS消息并把消息引导到预期收件人。
“短消息”是具有有限大小和预定义格式的消息,该消息可被web服务器读取并用来封装向或从移动装置传送的数据。
“短消息服务(SMS)”是经由得到各种移动装置广泛支持的网络发送和接收短文本消息的业务。
“短消息服务中心(SMSC)”是通常由无线网络操作员操作的系统,所述无线网络操作员接收SMS消息并把该消息引导到预期收件人。
“简单对象访问协议(SOAP)”是使用可扩展标记语言(XML)对web服务请求和答复中的信息编码的消息传送协议。
“web服务器”是存储在服务器上的可用于经由互联网访问的一组独立的模块应用程序或者服务器。web服务器向客户机应用程序提供所存储的各种应用程序的功能,而不需要客户机应用程序提供该功能。为了使用该服务器,客户机调用应用程序和/或以该服务器可读的格式向web服务器传送数据。
图1示出了根据本发明实施例向移动装置发送消息的系统。系统100包括两个web服务器115和145,两个客户机系统105和135,两个分别包括短消息服务中心(SMSC)和/或多媒体消息业务中心(MMSC)的无线网络操作员系统120和150,和多个移动装置125、130、155和160。在实际实施中,可以使用任何数量的web服务器、客户机系统、无线网络操作员系统和移动装置。
客户机系统105和135可以经由互联网110或者其它网络连接一个或多个web服务器115和145。web服务器115的供应商可以与无线网络操作员整合在一起或者与其分离。当分离时,web服务器115可以经由互联网110或者其它网络连接无线网络操作员系统。作为选择,web服务器145的供应商可以是提供无线业务并因此还维护无线网络操作员系统150的相同实体。在此情况下,web服务器145可以经由互联网165或者其它类型网络连接无线网络操作员系统150。正如将要看见的那样,web服务器115和145提供一组模块应用程序,用于经由预定的接口从客户机系统105和/或135向一个或多个移动装置125、130、155和/或160传送内容。这样,为了向移动装置发送消息,客户机系统可以将内容数据给予web服务器,而不需要执行与该传递关联的附加功能。
客户机系统105或者135的用户可以启动向一个或多个移动装置125、130、155和166发送消息。例如,客户机系统105或135的用户在观看电子邮件的同时,可以选择将该消息转发到移动装置125、130、155和/或160。客户机系统105或135随后产生一个或多个短消息,以封装转发的电子邮件的内容。也就是,客户机系统产生web服务器115或者145可读的消息。短消息可以包括短消息服务(SMS)消息或者多媒体消息业务(MMS)消息格式的内容数据,或者包括可由接收内容的移动装置读取的类似格式的内容数据。封装内容的短消息遵从参照图4所述的模式或者类似格式。一旦产生短消息,客户机系统105或者135就经由互联网110上与web服务器115或者145建立的信道相web服务器115或145发送消息。在一个实例中,可以使用广泛支持的简单对象访问协议(SOAP)方便地向web服务器115或者145发送短消息。
如下面将要详细说明的那样,web115或者145分析短消息,检验发送短消息的客户机系统105或者135的用户的可信性和授权,并且如果用户被验证并且被授权,则向无线网络操作员系统120或者150发送短消息的内容。此外,web服务器115或145可以执行其它功能,比如检验短消息的错误,记录该消息以及发送该消息的结果等。在某些情况下,web115或者145甚至可以修改短消息中含有的内容的格式,将其变成特定移动装置可读的格式。
在web业务115和无线网络操作员系统120可以由分离实体操作的情况下,无线操作员系统120包括SMSC网关(未示出)和/或MMSC(未示出),以用于接收和处理web服务器115发送的短消息,以及将短消息转发到SMSC和/或MMSC。然而,如果web服务器145和无线操作员系统150可以由一个相同实体维护,则web服务器可以把短消息直接传送给SMSC和/或MMSC以及无线网络操作员系统150。
成功处理的短消息将由无线网络操作员系统120或者150输入到SMSC或者MMSC的队列中,无线操作员系统向web服务器115或145发送答复,以通知web服务器115或者145消息传递的状态。也就是,无线网络操作员系统120或者150向web服务器115或者145通知消息是否被成功的传递给SMSC或者MMSC队列,如果未成功传递,则可以返回错误信息。无线网络操作员系统120或者150随后向被指定为收件人的移动装置发送消息。
随后,web服务器115或者145根据无线网络操作员系统120或者150的答复,产生对来自客户机系统105或者135的短消息的答复,并且把该答复发送给客户机。也就是,web服务器115或者145将根据来自无线网络操作员120或150的答复产生答复消息。下面将详细讨论答复消息的格式,答复消息通常可以包括消息传递的成功或失败的指示、返回代码、错误代码或者其它信息。web服务器115或者145向客户机系统105或者135发送答复,该客户机系统又可以把答复通知给用户。
图2示出了可以实施本发明实施例的适当计算系统环境的实例。该系统200代表可以用来充当提供web业务的客户机系统或者服务器的系统。在其最基本配置中,系统200通常包括至少一个处理单元202以及存储器204。根据精确的配置和计算装置的类型,存储器204可以是易失性的(如RAM)、非易失性的(比如ROM,闪存等)或者两者的某些组合。该最基本配置由虚线206显示在图2中。此外,系统200还可以有附加特征/功能。例如,装置200还可以包括附加存储器(可拆卸和/或不可拆卸),包括磁或光盘或者磁带。这样的存储器在图2中被显示为可拆卸存储器208和不可拆卸存储器210。计算机存储媒介包括采用任何方法和技术实现的易失性和非易失性、可拆卸和不可拆卸媒介,用于存储诸如计算机可读指令、数据结构程序模块或者其它数据的信息。存储器204、可拆卸存储器208和非易失性存储器210都是计算机存储媒介的实例。计算机存储媒介包括(但不限于)RAM、ROM、EEPROM、闪存或者其它存储器技术、CD-ROM、数字通用盘(DVD)或者其它光存储器、盒式磁带、磁带、磁盘存储器或者其它磁存储器,或者可以用来存储预期信息并可以由系统200访问的任何其它媒介。任何这样的计算机存储媒介都可以是系统200的部分。
系统200通常包括允许系统与其它装置通信的通信连接212。通信连接212是通信媒介的实例。通信媒介通常体现已调制数据信号(比如载波或者其它传送机制)中的计算机可读指令、数据指令、程序模块或者其它数据,并且包括任何信息传送媒介。术语“已调制数据信号”是指具有一个或多个其特征集并且以编码信号中信息的方式改变的信号。例如(但不限于),通信媒介包括有线媒介如有线网或者直接有线连接,以及无线媒介如声音、RF、红外和其它无限媒介。这里使用的术语计算机可读媒介包括存储媒介和通信媒介。
系统200还可以有输入装置214如键盘、鼠标、笔、语音输入装置、触摸输入装置等。还可以包括输出装置216,如显示器、扬声器、打印机等。所有这些装置都是本领域公知的,因此不需要深入讨论。
计算机装置,比如系统200通常包括至少某些形式的计算机可读媒介。计算机可读媒介可以是可以由系统200访问的任何可用媒介。例如(但不限于),计算机可读媒介可以包括计算机存储媒介和通信媒介。
图3显示了本发明实施例的向移动装置发送消息的功能部件。该实例包括经由互联网315或者其它网络连接web服务器310的客户机系统305。作为选择,客户机系统305可以是向另一个移动装置发起消息的移动装置。在这种情况下,所述部件和操作将与参照客系统305讨论的相同。
客户机系统305包括消息传送应用程序320,比如Microsoft Outlook或者其它应用程序,以及web业务客户机325。在执行期间,应用程序320可以通过选择用户接口单元的用户发起向移动装置发送消息。例如,Microsoft Outlook的用户可以希望向分离平台上的或者使用分离消息应用程序的他的合作者PDA或者蜂窝电话发送日历预约。在答复时,应用程序320然后调用、例示或者触发web业务客户机模块325。
web业务客户机325包括用户接口模块340、消息生成模块330以及web业务通信模块326。用户接口模块340询问包含在该消息中的特定信息。例如,用户接口模块340提示用户目的地信息,比如目的地装置的业务供应商、电话号码和/或其它标识信息。因此,用户接口模块340可以询问用户信息,比如将由web服务器310使用的用户标识和/或口令,用于下面将要描述的消息的认证和/或授权。在另一个实施例中,可以根据需要预置和检索用户信息,以允许消息生成的更自动处理。
一般来说,将待发送到目的地移动装置的内容变换成目的地移动装置可读的格式。例如,由于SMS和MMS得到大多数移动装置的支持,因此这些格式便于传送内容数据。此外,由于诸如SMS消息或者MMS消息的消息具有预定义的大小限制,因此对照该限制检查内容。如果内容尺寸超过内容的大小限制,消息生成模块330把内容划分成多个大于一条短消息的待封装的段。这种划分或者分割可以通过默认完成。在其它情况下,可以询问用户,以确定用户是否同意准许把数据划分成多个消息。
然后,消息生成模块330生成可由web服务器可读的短消息,以封装待发送给目的地移动装置的内容。例如,可以依据预定方案生成XML消息。下面将参照图4说明这种短消息和示范方案的细节。作为选择,可以使用web服务器可读的另一个格式或者方案。
一旦生成短消息,web业务通信模块326就经由互联网315上建立的信道向web服务器310发送短消息345。在一个实例中,利用广泛支持的简单对象访问协议(SOAP)可以方便地向web310发送短消息。
web310包括定义web业务模块350的web业务描述语言(WSDL)文件335。也就是,WSDL文件335可以包括web业务模块350支持的业务的XML或者其它描述。示范性WSDL文件被列在表1中。
表1
<?xml version=″1.0″encoding=″utf-8″?>
<definitions xmlns:http=″http://schemas.xmlsoap.org/wsdl/http/″
xmlns:soap=″http://schemas.xnlsoap.org/wsdl/soap/″xmlns:s=″http://www.w3.org/200l/XMLSchema″
xmlns:sO=″urn:Microsoft.Office.OMMS.OMMWS″xmlns:soapenc=″http://schemas.xmlsoap.org/soap/encoding/″
xmlns:tm=″http://microsoft.com/wsdl/mime/textMatching/″xmlns:mime=″http://schemas.xmlsoap.org/wsdl/mime/″
targetNamespace=″urn:Microsoft.Office.OMMS.OMMWS″xmlns=″http://schemas.xmlsoap.org/wsdl/″>
<types>
<s:schema elementFormDefault=″qualified″targetNamespace=″urn:Microsoft.Office.OMMS.OMMWS″>
<s:element name=″sendXml″>
<s:complexType>
<s:sequence>
<s:element minOccurs=″0″maxOccurs=″1″name=″SMSData″type=″s:string″/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name=″sendXmlResponse″
<s:complexType>
<s:sequence>
<s:element minOccurs=″0″maxOccurs=″1″name=″sendXmlResult″type=″s:string″/>
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
</types>
<message name=″sensXmlSoapIn″>
<part name=″parameters″element=″s0:sendXml″/>
</message>
<message name=″sendXmlSoapOut″>
<part name=″patameters″element=″s0:sendXmlResponse″/>
</message>
<portType name=″OMMWebServiceSoap″>
<operation name=″sendXml″>
<documentation>This method handles the request from Microsoft Office Mobile Message Add-
in.</documentation>
<input message=″s0:sendXmlSoapIn″/>
<output message=″s0:sendXmlSoapOut″/>
</operation>
</portType>
<binding name=″OMMWebServiceSoap″type=″s0:OMMWebServiceSoap″>
<soap:binding transport=″http://schemas.xmlsoap.org/soap/http″style=″document″/>
<operation name=″sendXml″>
<soap:operation soapAction=″um:Microsoft.Office.OMMS.OMMWS/sendXml″style=″document″/>
<input>
<soap:body use=″literal″>
</input>
<output>
<soap:body use=″literal″/>
</output>
</operation>
</binding>
<service name=″OMMWebService″>
<documentation>Microsoft Office Mobile Message Web Service.</documentation>
<port name=″OMMWebServiceSoap″binding=″sO:OMMWebServiceSoap″>
<soap:address location=″http://localhost/OMMWS/OMMWebService.asmx″/>
</port>
</service>
</definitions>
web业务模块350接收来自客户机系统305的短消息。WEB业务模块350然后分析短消息,并向认证模块370传送发件人的标识信息。认证模块370确定客户机系统305的用户是否为他所声称授权发送消息的用户。该确定可以通过将发件人信息如标识和口令与用户数据库375中的信息进行比较完成。如果web服务器310的供应商不同于无线业务的供应商,则可以由无线业务供应商而不是web服务器310维护用户数据库375。在此情况下,认证模块370可以向无线网络操作员的SMSC或者MMSC请求用户信息。
如果客户机系统305的用户是可信的并被授权,则web业务模块350向通信模块365传送短消息的内容。通信模块365随后向无线网络操作员的SMSC发送消息。如上所述,无线网络操作员回送指示消息传送成功或者失败的答复。通信模块365该答复并将其传送给web业务模块350。web业务模块350根据来自无线网络操作员系统的答复,也生成对来自客户机系统305的短消息345的答复。也就是,web业务模块350根据来自无线网络操作员的答复生成答复。下面将参照图5详细讨论答复的格式,该答复通常包括消息传递的成功或者失败的指示、返回代码、错误代码或者其它信息。web业务模块350然后经由互联网315向客户机系统305发送答复380。此外,跟踪/记录模块360可以记录关于短消息345和答复380的信息,比如发件人的标识、时间、结果、错误代码等。
客户机系统305的web业务通信模块325接收答复380并分析该答复以及把结果传送给接口模块340。用户接口模块340随后把消息的成功或者失败通知给客户机系统305的用户。例如,用户接口模块可以打开窗口或者其它用户接收元件,以显示指示消息的成功或者失败的消息。指示失败的消息还指示错误代码或者消息。
图4显示了本发明实施例的从客户机系统到移动装置的消息的示范格式。该实例显示了短消息的一个可能的格式。然而,该格式可以根据具体实施而变化。例如,可以包括附加元素,可以以不同顺序安排这些元素,或者省略某些所示的元素。可以以XML方案或者另一个类似方式定义该消息格式。表2是定义如图4所示的消息格式的示范性XML方案。
表2
<?xml version=″1.0″encoding=″utf-8″?>
<xs:schema targetNamespace=″urn:Microsoft.Office.OMMS.SMSData″elementFormDefault=″qualified″
xmlns=″urn:Microsoft.Office.OMMS.SMSData″xmlns:mstns=″urn:Microsoft.Office.OMMS.SMSData″
xmlns:xs=″http://www.w3.org/2001/XMLSchema″>
<xs:element name=″SMSData″>
<xs:complexType>
<xs:sequence>
<xs:element name=″Carrier″type=″xs:string″minOccurs=″1″maxOccurs=″1″/>
<xs:element name=″Id″type=″xs:string″maxOccurs=″1″minOccurs=″1″/>
<xs:elemcent name=″Password″type=″xs:string″maxOccurs=″1″minOccurs=″1″/>
<xs:element name=″ToMobile″type=″xs:string″maxOccurs=″1″minOccurs=″1″/>
<xs:element name=″Message″type=″xs:string″minOccurs=″1″maxOccurs=″unbounded″/>
<xs:element name=″MsgType″type=″xs:string″minOccurs=″1″maxOccurs=″1″/>
<xs:element name=″Scheduled″type=″xs:time″minOccurs=″0″maxOccurs=″1″/>
<xs:element name=″MMS″minOccurs=″0″maxOccurs=″1″>
<xs:complexType>
<xs:simpleContent>
<xs:extension base=″xs:boolean″>
<xs:attribute name=″format″type=″xs:string″default=″text″use=″optional″/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
图4所示的消息格式包括业务供应商元素405,发件人ID元素410、口令元素415、目的地元素420、消息字段425、消息类型元素430、调度元素435和消息格式元素440。
业务供应商元素405由表2中的名称“通信公司”标识,该业务供应商元素405指示建立web业务的业务供应商。根据业务供应商是否也是无线业务通信公司的确定,可以与参照图1所述的无线业务的合作通信公司的SMSC或者MMSC或者网关进行通信。
发件人ID元素410指示关于消息发件人的用户名或者其它标识信息。发件人ID元素410由表2中的名称“Id”标识。web服务器和目的地移动装置可以利用该信息标识消息的发送局。例如,web服务器可以利用发件人ID元素410跟踪或者记录消息或者确定发件人是否授权发送消息。
口令元素415由表2中的名称“口令”标识,它指示发件人的口令。例如,web服务器可以使用该口令标识和验证消息的发件人。
目的地元素420指示目的地移动装置的电话号码、地址或其它标识。目的地元素420由表2中的名称“ToMobile”标识。该信息从web传送到向移动装置传递消息的无线网络业务操作员。
消息元素425由表2中的名称“消息”标识,它含有消息的内容。例如,消息元素425可以包含电子邮件的文本、日历预约、作业提示或者其它类型的内容。在发送的内容超过小消息的预定大小的某些情况下,消息元素425可以包含以上讨论的大内容的部分。
消息类型元素430指示传递的内容类型。例如,消息类型元素430可以指示消息元素425中的数据是电子邮件消息或者日历预约。消息类型元素430油表2中的名称“MsgType”标识。
调度元素435可以指示向目的地移动装置传递消息的特定时间。调度元素435由表2中的“调度”名称标识。该信息可以指示,例如,web服务器应当向无线网络业务操作员(该操作员向目的地移动装置传递消息)传递消息的时间和日期。
消息格式元素440由表2中的“MMS”名称指示,元素440指示消息元素425中含有的消息类型。例如,消息格式元素440可以指示消息元素425是否为SMS消息或者MMS消息。
图5示出了本发明实施例的从web服务器对客户机系统或者移动装置的答复的示范格式。该实例示出了对短消息答复的一个可能的格式。然而,该格式可以根据具体实施而改变。例如,可以包含附加元素、以不同顺序安排元素或者可以省略某些所示的元素。可以按XML方案或者以类似方式定义该答复格式。表3是如图5所示的用于定义答复格式的示范性XML方案。
表3
<?xml version=″1.0″encoding=″utf-8″?>
<xs:schema targetNamespace=″urn:Microsoft.Office.OMMS.Response″elementFormDefault=″qualified″
xmlns=″urn:Microsoft.Office.OMMS.Response″xmlns:mstns=″urn:Microsoft.Office.OMMS.Response″
xmlns:xs=″http://www.w3.org/2001/XMLSchema″id=″Response″>
<xs:element name=″Response″>
<xs:complexType>
<xs:sequence>
<xs:element name=″Result″minOccurs=″1″maxOccurs=″unbounded″>
<xs:complexType>
<xs:sequence>
<xs:element name=″ToMobile″minOccurs=″0″maxOccurs=″1″>
<xs:complexType mixed=″true″>
<xs:sequence>
<xs:element name=″Count″type=″xs:string″minOccurs=″0″
maxOccurs=″1″/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name=″RetCode″type=″xs:string″maxOccurs=″1″minOccurs=″1″>
<xs:element name=″ErrCause″type=″xs:string″maxOccurs=″1″minOccurs=″1″/>
<xs:element name=″Message″type=″xs:string″maxOccurs=″1″minOccurs=″1″/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
图5所示的答复格式包括一个或多个结果元素505和535。每个结果元素包括代表发送结果的细节的多个子元素。在该实例中,结果元素505和535包括:任选收件人元素510;任选计数元素515,它是收件人元素510的字段(如果存在的话);返回代码元素520;错误原因元素525;消息元素530。
结果元素505或者535由表3中的名称“结果”标识,该元素指示具有相同返回代码的处理结果。也就是,返回元素505指示向目的地装置发送消息的无线网络业务操作员的结果。此外,结果元素505可以指示web服务器执行的检验结果,比如消息的可信性和认证检验。多结果元素可以用于多个或者分割消息的情况。例如,如果发送两个短消息,其中一个导致错误,则答复中可以包括两个结果元素。在此情况下,一个结果元素可以指示成功结果,而另一个结果元素指示错误结果。
可选收件人元素510指示目的地移动装置的电话号码、地址或者其它标识信息。收件人元素510由表3中的“ToMobile”名称标识。可以省略收件人元素510,通常指示存在错误以及该错误与收件人毫无关系。例如,如果发件人提供有效口令,则得到的错误与收件人毫无关系。因此,收件人元素510可以从答复500中省略,因为它与错误无关。
是收件人元素510的字段的可选计数元素515由表3中的“计数”名称标识,元素515指示在分离消息或者多消息事件中收件人元素505对应的消息的数量。例如,计数元素可以指示3,意味着用结果元素505指示的结果传递的三个消息。为了进一步显示,考虑一个客户机系统向一个移动装置发送一组5个消息的实例。如果三个消息被成功传送,而两个消息由于消息未被认可而失败,则将返回两个结果。一个结果将用3的计数指示成功结果,其它结果用2的计数指示不成功结果。
返回代码元素520可以包含数值或者其它代码,用于指示答复对应的消息的web业务处理的结果。例如,返回代码元素520可以指示web业务错误、SMSC错误、认证错误和其它。返回代码元素520由表3中的“RetCode”名称标识。
错误原因元素525由表3中的“ErrCause”名称标识,该元素525可以包含错误原因的成份的指示。例如,如果原始短消息中的用户口令是无有效的,则错误原因元素525可以指示客户机为错误原因。在另一个实例中,如果业务供应商的SMSC向web服务器返回一个指示消息传递失败的答复,则错误原因元素525可以把SMSC指示为原因。
消息元素530由表3中的“Message”名称标识,该元素530可以包含描述错误的消息。例如,元素530可以包含描述错误原因性质的文本或者其它容易阅读的信息。该消息可以被显示给客户机系统或者发起移动装置的用户,以把错误的性质通知给用户。
答复中的一组以上的结果元素通常指示存在具有相同返回代码的一组以上的结果。每个成功的结果元素遵从相同格式,如上述的示范格式。为了进一步说明,考虑客户机系统同时向三个移动装置发送相同消息的实例。如果两个消息被成功传送到第一两个收件人的每一个,并且另一个消息由于收件人电话号码不正确而失败,则将返回两个结果。一个结果将用成功返回代码指示成功结果,而另一个结果用无效收件人号码返回代码指示不成功结果。
本发明的各个实施例的逻辑操作被实施为(1)计算机实施动作的序列或者在计算机系统上运行的程序模块;(2)互连机器逻辑电路或者计算机系统内的电路模块。该实施是依赖于实现本发明的计算机系统的性能要求的选择事务。所以,这里所述的构成本发明实施例的逻辑操作在不同时间被称之为操作、结构装置、动作或者模块。本领域熟练技术人员将会认识到这些操作、结构装置、动作和模块可以被实施在软件、固件、专用数字逻辑以及任何组合中,而不背离所附权利要求所述的本发明的精神和范围。
图6是根据本发明实施例向移动装置发送消息的流程图。该实例涉及启动向移动装置发送消息的客户机系统,其中客户机系统可以是移动装置或者不是移动装置。
在该实例中,操作开始于由客户机系统执行的收集操作605。收集操作605收集包含在短消息中的信息。例如,可以打开窗口或者其它用户接口元素,以询问用户目的地移动装置的无线业务通信公司、号码或者地址以及用户的名称或标识及口令。此外,还可以收集消息类型、传递调度以及消息内容。
然后,生成操作610生成封装将发送给目的地移动装置的内容的一个或多个短消息。例如,生成遵从表2中所列方案的XML文件。如上所述,如果将发送给目的地移动装置的内容大于预定的小消息大小,则可以把内容划分成多个最小部分。在此情况下,将生成每个部分的小消息。
一旦一个或多个短消息已经被生成,发送操作615就将短消息从客户机系统发送到web服务器。可以经由互联网或其它网络上的客户机系统与web服务器之间建立的信道,使用简单对象访问协议(SOAP)执行该发送。
web服务器执行的接收操作620随后从客户机系统接收短消息。然后,询问操作625确定是否允许该消息。该确定也许基于多种因素。例如,第一因素可以是客户机系统的用户是否已经提供了有效标识和令。另一因素可以是客户机系统的用户是否被授权根据向web服务器的当前付款账户发送消息。此外,可以对短消息执行测试,以确定它是否被很好地形成以及是否满足其它可能的要求。
如果在询问操作625确定将允许该消息,则发送操作630在调度时间或者如果未指示调度时间则立即,向目的地业务供应商的SMSC发送短消息,以向移动装置传送。生成操作635然后生成答复如遵从表3所列方案的XML文件,该答复指示消息的失败,加之合适的返回代码、错误代码以及错误消息,然后把该答复发送给客户机系统。
如果在询问操作625上确定将不允许该消息,则生成操作635生成答复如遵从表3所列方案的XML文件,该答复指示消息的失败,加之合适的返回代码、错误代码以及错误消息,然后把该答复发送给客户机系统。
图7是根据本发明实施例生成短消息并将其发送给移动装置的流程图。这些操作可以以多种方式启动。首先,可以以交互模式启动生成和发送短消息,其中客户机系统的用户或者启动的移动装置经由系统或装置的用户接口触发消息。在另一实例中,当发生某些时间或者经过某些时间或者其它条件时,可以自动地执行消息生成和发送。例如,一个系统可以被配置成自动地向移动装置转发所有电子邮件。
在图7所示实例中,操作开始于收集操作705。收集操作705收集发件人信息,比如发件人用户名或者其它标识、口令和发件人专用的其它可能信息。通过询问用户、读取用户预先提供的保存信息或者其它方式,可以执行数据的收集。
然后,收集操作710收集目的地信息。也就是,收集操作710可以打开窗口或者其它用户接口元素,并询问用户目的地信息,比如目的地移动装置的业务供应商,目的地移动装置的小区号、以及其它可能的标识信息。
收集操作712收集诸如消息的传递时间的信息。例如,用户可以要求尽快或者在某个以后时间、指定时间传递消息。因此,用户可以指定传递的时间和日期。此外,手机操作712可以收集传递的其它细节。例如,用户可以指示是否允许把大于短消息尺寸的数据分割成用于传递的多个短消息。如同其它数据一样,该信息可以被预配置和自动检索,或者通过询问用户收集该信息。
收集操作715然后收集被封装在一个或多个短消息中的将发送给目的地移动装置的内容。例如,收集操作715可以读取电子邮件消息、日历预约、字处理文件、电子表格或其它信息。待发送的信息可以被用户标识,或者可以通过上下文推断,其中在观看数据的同时,启动消息的生成,比如敲打按钮或者其它用户接口元素。
询问操作720确定待发送的数据是否应当被包含在一个或多个短消息中。例如,SMS消息具有一个预定的大小限制。如果数据大于该限制,并且确定分割消息,则把数据划分成一个以上的消息。可以根据上述的收集操作712中收集的传递信息做出分割数据的确定。如果,在询问操作720,确定数据长度大于小消息大小并且用户选择分割该数据,则分割操作725将把内容划分成多个部分,每个部分小得足以被包含在小消息内。
生成操作730随后生成一个或多个封装内容数据的小消息。也就是,生成操作730生成遵从表2中所列的方案的XML文件,该文件包含所收集的发件人信息、目的地信息以及内容信息。
最后,发送操作735向web服务器发送一个或多个小消息。如上所述,小消息可以经由互联网或者其它网络上的客户机系统或启动移动装置与web服务器之间建立的信道,发送给使用SOAP的web服务器。
图8是根据本发明实施例处理到移动装置的短消息的流程图。操作开始于接收操作805。接收操作805接收来自客户机系统或者启动移动装置的短消息。
分析操作810然后分析所接收的消息。也就是,根据标识和读取如参照图4所述的各个元素的XML文件的界限符,分析已接收消息。
询问操作815然后确定发起消息的用户是否是可信的以及是否授权发送消息。通过将诸如标识和口令的发件人信息与用户数据库中的信息进行比较,可以做出这些确定。例如,可以对照已记录信息检查发件人标识和口令。此外,发送消息的权限检查可以基于发件人是否具有向业务供应商付账的当前账户。如果发件人验证失败或者没有权限,则生成操作820生成具有适当答复代码、返回代码、错误代码、错误消息等地答复消息。返回操作845然后向发件人发送答复,以及记录操作850记录消息和结果。
如果在询问操作815上,确定发件人是可信的并且被授权,则操作825向短消息所指示的无线业务供应商的SMSC发送短消息。
询问操作830然后检查来自SMSC的答复,以确定该消息是否被成功放置在SMSC的传送队列中。如果消息没有被成功排队,则生成操作835生成具有适当答复代码、返回代码、错误代码、错误消息等地答复消息。返回操作845然后将答复回送给发件人,以及记录操作850记录消息和结果。
如果在询问操作830确定消息已经被成功排队,则生成操作840生成具有适当答复代码、返回代码、错误代码、错误消息等地答复消息。返回操作845随后将答复回送给发件人,并且记录操作850记录消息和结果。
图9是根据本发明实施例处理来自web服务器的答复的流程图。在该实例中,操作开始于接收操作905。接收操作905接收来自web业务的答复。
分析操作910随后分析该答复。也就是,根据标识和读取如参照图5所述的各元素的XML文件的界限符,分析所接收的答复。
最后,可选通知操作915把基于答复数据排队的消息的成功或者失败通知给用户。该操作是可选的,因为在某些情况下,不希望该通知。例如,如果消息被成功地放置于SMSC地传送队列中,可以不提供通知。在其它情况中,所有答复都可以提示用户的通知。通知可以取打开窗口或者其它用户接口元素的形式,以把消息的成功或失败通知给用户。该通知可以包括来自答复的返回代码、错误代码和/或错误消息。
上述各个实施例仅仅用于举例说明,而不应当构成对本发明的限制。本领域的熟练技术人员将容易地识别,不遵从实施例和这里所述的应用,并且不背离所附权利要求所述的本发明真实精神和范围,可以对本发明做出的各种修改和变化。