CN1422481A - 把指定事件通知移动台应用程序的方法和设备 - Google Patents

把指定事件通知移动台应用程序的方法和设备 Download PDF

Info

Publication number
CN1422481A
CN1422481A CN01807530A CN01807530A CN1422481A CN 1422481 A CN1422481 A CN 1422481A CN 01807530 A CN01807530 A CN 01807530A CN 01807530 A CN01807530 A CN 01807530A CN 1422481 A CN1422481 A CN 1422481A
Authority
CN
China
Prior art keywords
mobile station
station application
protocol stack
allocate event
socket
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN01807530A
Other languages
English (en)
Inventor
N·阿波罗
H·吉尔基
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN1422481A publication Critical patent/CN1422481A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W68/00User notification, e.g. alerting and paging, for incoming communication, change of service or the like
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/164Adaptation or special uses of UDP protocol
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/165Combined use of TCP and UDP protocols; selection criteria therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/169Special adaptations of TCP, UDP or IP for interworking of IP based networks with other networks 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W80/00Wireless network protocols or protocol adaptations to wireless operation
    • H04W80/06Transport layer protocols, e.g. TCP [Transport Control Protocol] over wireless
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices

Abstract

本发明公开了一种在无线通信系统中把指定事件通知移动台应用程序的方法和设备。本发明包括应用程序接口(API),它利于移动台通信协议堆栈(它与通信网络通信)和移动台应用程序间的通信。移动台通信协议堆栈或移动台应用程序接口检测指定事件,并对移动台应用程序调用指定事件通知。

Description

把指定事件通知移动台应用程序的方法和设备
              背景
1.发明领域
本发明一般涉及无线通信领域。尤其本发明涉及一种在无线通信系统中把指定事件通知移动台应用程序的新颖方法和设备。
2.相关技术描述
A.无线通信
近来在无线通信和计算机相关技术中的革新以及因特网用户的空前增长已为移动运算铺设了一条捷径。事实上,移动运算的普及更需要现有的因特网结构能提供移动用户更多的支持。这个结构的生命线就是面向数据包的因特网协议(IP),它提供各种服务,包括在局域网和广域网(LAN和WAN)之间数据包(数据报)的寻址和路由选择。IP协议是在征求评论791(RFC 791)1981年9月公布的题为《INTERNETPROTOCOL DARPA INTERNET PROGRAM PROTOCOL SPECIFICATION》中定义的。
IP协议是把数据封装在发送的IP数据包中的网络层协议。在数据包头部添加了寻址和路由选择信息。例如,IP头部包含识别发送和接收主机的32比特地址。中间路由器使用这些地址为数据包选择通过网络到达在期望地址处的它的最终目的地的路线。这样,IP协议就允许在世界上任何因特网节点上产生的数据包被传送到世界上任何其他因特网节点。另一方面,传输层(它包括传输控制协议(TCP)或用户数据报协议(UDP))用于对特定应用程序的寻址。
对于移动用户现有趋势是使用移动计算机,比如笔记本或掌上型计算机,它与诸如蜂窝或便携式电话的无线通信设备结合来访问因特网。也就是说,正像用户传统地使用“有线”通信设备来把它们的计算机连接到陆上网络,移动用户使用无线通信设备(一般被称作为“移动台”(MS))来把它们的移动终端连接到这样的网络。就如这里所使用的,移动台或MS涉及公共无线电网络中的任何用户台。
图1(现有技术)说明了无线数据通信系统的高层框图,其中MS 110与交互工作功能器(IWF)108通过基站/移动交换中心(BS/MSC)106进行通信。IWF 108用作到因特网的访问点。IWF 108与BS/MSC 106耦合并通常与其联合定位,BS/MSC 106可以是本技术中已知的传统无线基站。另一个定址无线数据通信系统的标准协议是1999年12月公布的第3代合作工程2(“3GPP2”),题为“WIRELESS IP NETWORKSTANDARD”的标准。例如,3G无线IP网络标准包括包数据服务节点(“PDSN”),其功能类似于IWF 108。
在MS 110和IWF 108间寻址数据通信有各种协议。例如,1993年7月公布的通信工业协会(TIA)/电子工业协会(EIA)临时标准IS-95题为《MOBILESTATION-BASE STATION COMPATIBILITY STANDARD FOR DUAL-MODE WIDEBAND SPREADSPECTRUM CELLULAR SYSTEM》的协议通常提供宽带扩展频谱无线通信系统的标准。此外,1998年2月公布的标准TIA/EIA IS-707.5,题为《DATA SERVICE OPTIONS FORWIDEBAND SPREAD SPECTRUM SYSTEMS:PACKET DATA SERVICE》的协议定义了在TIA/EIA IS-95系统上支持包数据传输能力的需求并指定了包数据载体服务,它可被用于MS 110和IWF 108间通过BS/MSC 106的通信。此外,1999年3月公布的TIA/EIA IS-707-A.5标准,题为《DATA SERVICE OPTIONS FOR SPREAD SPECTRUMSYSTEMS:PACKET DATA SERVICES》的协议以及TIA/EIA IS-707-A.9标准,题为《DATA SERVICE OPTIONS FOR SPREAD SPECTRUM SYSTEMS:HIGH-SPEED PACKET DATASERVICES》的协议也定义了在TIA/EIA IS-95系统上支持包数据传输的需求。此外,另一个在MS 110和IWF 108间寻址通信的标准协议是1999年7月公布的TIA/EIA IS-2000,题为《INTRODUCTION TO CDMA 2000 STANDARDS FOR SPREADSPECTRUM SYSTEMS》的协议。
IS-707.5引入了在MS 110和BS/MSC 106间(Um接口)以及BS/MSC 106和IWF108间(L接口)的通信协议选项模型。例如,中继模型表示点对点协议(PPP)链路存在于MS 110和IWF 108之间的Um接口上的状态。PPP协议在征求评论1661(RFC1661)题为《THE POINT-TO-POINT PROTOCOL(PPP)》中作了详细描述。
图2(现有技术)是在每个IS-707.5中继模型实体中的协议堆栈示意图。图的最左边是以传统纵向格式显示的通信协议堆栈,它显示在MS 110上操作的协议层。MS 110协议堆栈被说明为通过Um接口逻辑连接于BS/MSC 106协议堆栈。接着BS/MSC 106协议堆栈被说明为通过L接口逻辑连接于IWF 108协议堆栈。
图2中所述的操作如下:高层协议200实体,比如在MS 110上运行的应用程序需要在因特网上发送数据,代表性的应用程序就是web浏览器程序(例如Netscape NavigatorTM、Microsoft Internet ExplorerTM)。web浏览器请求一个通用资源定位器(URL),例如超链接“ http://www.Qualcomm.com”。也在高层协议200中的域名系统(DNS)协议通过使用把域名译成因特网地址的域名解析把原本的主机名 www.Qualcomm.com译成32比特的数字IP地址。也为高层协议200的超文本传输协议(HTTP)为请求的URL构造GET消息并指定TCP用于发送该消息及HTTP操作。传输层202使用端口80(这在本技术中是已知的)作为把HTTP操作传送到此应用程序的目标端口。
TCP协议(就是传输层协议202)开启到由DNS指定的IP地址的连接并发送应用级HTTP GET消息。TCP协议指定IP协议用于消息传输。IP协议(就是网络层协议204)把TCP数据包发送到指定的IP地址。PPP(就是链路层协议206)对IP数据包进行编码并把它们发送到中继层协议208。中继层协议208的一个例子就是已说明的TIA/EIA-232F标准,它是在1997年10月公布的《INTERFACE BETWEEN DATATERMINAL EQUIPMENT AND DATA CIRCUIT-TERMINATING EQUIPMENT EMPLOYING SERIALBINARY DATA INTERCHANGE》中定义的。可以理解的是本领域普通技术人员已知的其他标准或协议可用于定义通过这些层的传输。例如,其他应用标准可以包括1998年9月公布的《UNIVERSAL SERIAL BUS(USB)SPECIFICATION,Revision 1.1》以及1999年7月公布的《BLUETOOTH SPECIFICATION VERSION 1.0A CORE》。最后,中继层协议208把PPP数据包传送到无线电链路协议(RLP)210,并随后到IS-95协议212以通过Um接口传输到BS/MSC 106。RLP协议210是在1998年2月公布的题为《DATA SERVICE OPTIONS FOR WIDEBAND SPREAD SPECTRUM SYSTEMS:RADIOLINK PROTOCOL》IS-707.2标准中定义的,而IS-95协议是在以上所指出的IS-95标准中定义的。
在BS/MSC 106上互补的中继层协议220通过Um接口及通过IS-95层218和随后的RLP层216接收PPP数据包。中继层协议220把它们通过L接口传送到IWF108上的中继层协议228。IWF 108上的PPP协议链路层226从中继层协议228接收PPP数据包并终止MS 110和IWF 108间的PPP连接。在IWF 108上把数据包从PPP层226传送到IP层224,为最终路由检测IP数据包头,在这个例子中就是www.Qualcomm.com
假设由MS 110产生的IP数据包的最终目的地不是IWF 108,那么就把数据包传送通过网络层协议224和链路层协议225到达因特网上的下一个路由器(图中未显示)。由此,根据IS-707.5标准中继模型,来自MS 110的IP数据包被传送通过BS/MSC 106和IWF 108通向它们在因特网中的最终期望的目的地。
在MS 110数据包到达它们的目的地之前,必须首先建立数据链路连接。就如RFC 1661所规定的,这需要点对点链路的每个端点(即PPP协议206和226)要首先发送PPP链路控制协议(LCP)数据包,以建立、配置和测试数据链路连接。在由LCP建立了链路之后,PPP协议206随后就可以发送网络控制协议(NCP)数据包以配置网络层协议204和224。PPP链路中IP的NCP是IP控制协议(IPCP)。IPCP在1992年5月公布的征求评论1332(RFC 1332)题为《THE PPP INTERNET PROTOCOLCONTROL PROTOCOL(IPCP)》中作了详细描述。但在IPCP协商前,可能要求一鉴定阶段。在配置了每个网络层协议后,来自每个网络层协议的数据包可在它们之间通过链路发送。
B.应用程序接口
支持在MS 110上的通信协议堆栈的大多数(不是所有)处理都是由应用程序执行的。通常,传统的数据网络使用应用程序接口(API)使运行在一台计算机的应用程序能与运行在另一台计算机上的应用程序进行通信。API使用“套接字”,它在基础的网络协议中使调用的应用程序免于有差别。为了完成网络间的通信,API包含的函数允许应用程序例如打开套接字、把数据发送到网络、从网络接收数据以及关闭套接字。普通网络程序设计接口包括Berkeley系统开发(BSD)套接字接口(它在UNIXTM操作系统下操作)以及WindowsTM套接字接口(WinSockTM)(它在WindowsTM操作系统下操作)。
由于BSD套接字和WinSockTM都不支持在无线MS 110(见图2)上的通信协议堆栈,所以就需要支持这样一个堆栈的新的API。尤其是,所需要的就是在无线通信系统中把指定事件通知MS 110应用程序的新的方法和设备。
                            发明概述
本发明针对以上在无线通信系统中提供把指定事件通知移动台应用程序的方法和设备所确定的需求。在一个实现中,本发明包括应用程序接口(API),它有助于移动台通信协议堆栈(它与通信网络通信)和移动台应用程序间的通信。移动台通信协议堆栈或移动台应用程序接口检测指定事件并把指定事件通知移动台应用程序。
                         附图简述
图1(现有技术)是无线通信系统的高层框图,其中移动台连接到因特网。
图2(现有技术)示意性地描述在TIA/EIA IS-707.5中继模型的每个实体中的协议堆栈。
图3示意性地描述本发明实施例的特征。
图4和5是检测指定事件的流程图。
图6是描述异步连接的框图。
图7是描述异步套接字输入的框图。
图8-10是本发明实施例的状态图。
                         详细描述
可以用各种方法实现本发明的实施例,包括软件、固件和/或硬件。因此,描述本发明的操作和行为时不会特指软件代码或硬件部件,可以理解的是,本领域的普通技术人员能够设计软件和/或硬件以实现本发明,它根据这里的描述把指定事件通知移动台应用程序。
图3描述了MS 110内的应用程序260、通信协议堆栈280和API 270。应用程序260和通信协议堆栈280(即协议层202、204、206、208、210、212)通过函数调用通信,这些函数调用是由API 270提供的。换句话说,API 270允许应用程序260和通信协议堆栈280在不同处理器和操作系统上运行而不损害功能。本领域的技术人员会理解,调用的函数可能有各种名字,而这并不离开本发明的范围。
应该指出的是,通信协议堆栈280包含多个发送队列和接收队列,它们存储数据。输出函数从应用程序280的存储器中读取数据,以把数据存储在通信协议堆栈280发送队列之一中。输入函数从通信协议堆栈280接收队列之一读取数据,以把数据存储在应用程序260的存储器中。
为了说明这个操作,MS 110接收IP数据包。MS 110的通信协议堆栈280拆分IP数据包,并把它们传送到传输层202(见图3)。IP数据包头部中的一字段指示传输,它可以是TCP也可以是UDP。根据在传输层头部指定的目标端口号,把数据传送到通信协议堆栈280合适的接收队列,它对应特定的套接字。然后可以把数据发送到应用程序260。
在某些状态中,可以希望用绕过协议堆栈280各层的数据包操作以减少等待时间的影响。这样的数据包包括自然分组数据,比如自然IP数据包,它缺少目标信息(即目标端口号)。这样,从自然IP数据包就不能确定目标应用程序。在这种状态中,通信协议堆栈280就可以把接收到的自然IP数据包发送到所有登录成支持IP协议的套接字。这就允许把有效载荷数据发送到目标应用程序。因特网控制信息协议分析机(它响应IP数据包)也可以接收自然分组数据。众所周知的ICMP分析机是在RFC 792(题为《INTERNET CONTROL MESSAGE PROTOCOL》)中定义的。例如,通信协议堆栈280在把接收的数据包沿着堆栈向上传递到应用程序260之前,就处理这些数据包,这就减少了应用程序260所进行的拆分量,从这个描述就更加明显了。
相反,应用程序260可以使用套接字通过Um接口发送自然分组数据,这个套接字简化了通信协议堆栈280和应用程序260间的通信。此外,应用程序260可以通过Um接口发送自然分组数据。而通信协议堆栈280把分组或自然分组数据封装在诸如IP数据包中,并把它们通过Um接口发送。在这个例子中,通信协议堆栈提供IP报头及校验和以产生IP数据包。另一方面对于ICMP,可以把特定协议类型复制到IP报头中。
就以上所指出的,应用程序260创建了一套接字(它提供至少一个协议层202、204、206、208、210、212和应用程序260间的通信),以减少使用通信协议堆栈280固有的等待时间。也就是说,应用程序260可以创建一套接字,它可以绕过传输层202、网络层204以及链路层206,这样就可以使应用程序260把有效载荷数据发送到RLP层210或从该层接收有效载荷数据。应用程序也可以创建一套接字,它使应用程序260把有效载荷数据发送到IS-95层212或从该层接收有效载荷数据。
在一个实施例中,应用程序260调用函数open_netlib()开启通信协议堆栈280并指定一应用程序标识。应用程序标识允许多个应用程序与通信协议堆栈280通信(即多任务)。例如,作为函数open_netlib()调用一部分,应用程序260指定一指向网络回叫函数和指向套接字回叫函数的指针。只要网络子系统指定事件(比如读取、写入、关闭话务信道(即Um)和/或链路层(即PPP 206))发生(或已被允许),网络回叫函数就通知应用程序260。只要套接字指定事件(比如读取、写入、关闭传输层(即TCP))发生(或已被允许),就调用套接字回叫函数通知应用程序260。对于本领域技术人员明显的是,通信网络至少包含话务信道、链路层和传输层之一。
一旦开启了通信协议堆栈280,就调用函数pppopen()初始化网络子系统连接,它包括话务信道和链路层。这是应用范围调用,不依靠单独的套接字。然而,它需要应用程序识别。网络子系统连接建立或失败后,就调用网络回叫函数提供指定事件通知。例如,如果没有建立话务信道,网络子系统就失败了。此外,还可以调用函数net_ioctl()设置网络子系统的特性。例如,这个调用可以指定套接字的数据率。
一旦建立了网络子系统连接,就可以创建套接字并通过调用函数socket()初始化。然而,在使用套接字函数之前,函数socket()的调用要返回套接字描述符。然后,应用程序260就可以调用函数async_select()记录指定事件以接收异步通知。作为函数调用的一部分,这个记录可以由应用程序260实现,以指定套接字描述符和需要通知的指定事件的比特掩码(即多种相“或”的事件)。例如,如果指定事件发生了(即被允许了)并且被通信协议堆栈280或API 270检测到了,那么就调用套接字回叫函数提供异步通知。回叫函数可以通过使用信号、消息,包括通过远程操作调用(RPC)的消息或硬件或软件的中断,把指定事件通知应用程序260。
一旦应用程序260被告知了指定事件,它随后就可以调用函数getnextevent()以确定要服务的指定事件。这个函数返回为特定套接字描述符发生的指定事件掩码。它也可以在发生的指定事件的掩码中清除这些比特。这样,应用程序260就不再接收禁止的指定事件的通知。应用程序260随后必须通过调用函数async_select()重新记录(即重新允许)这些特定的事件。
此外,应用程序260可以通过在指定事件比特掩码中清除相应的比特改变所记录的指定事件。如果在比特掩码中已清除了这个比特,那么仅仅指示无视这个请求。简而言之,在每个事件基础上例如通过调用函数async_deselect()禁止事件通知。
图4和5是检测指定事件的流程图。例如,如图4所示,在块400中,通信协议堆栈280等待应用程序260记录指定事件。在记录了指定事件之后,在块402中,通信协议堆栈280就查询存储器。在块404中,根据块402的查询信息可以检测指定事件。在块406中,例如当通信协议堆栈280的存储器(即发送队列)可用于接受足够量信息时,检测到了写入事件。从应用程序260可以发送数据。如果块404的查询信息不符合要求,那么就如块402一样,通信协议堆栈280继续查询存储器。
在图5中,就如块500中所示,通信协议堆栈280等待应用程序260记录指定事件。在这期间,可以禁止中断通知。这样,中断通知不能触发或不被触发。如在块500中,记录了指定事件后,在块502中根据指定事件的发生可以触发中断通知。例如当数据被写入通信协议堆栈280的存储器(即接收队列)中时就发生了读取事件。这样,在块504,当通信协议堆栈280接收了中断通知(它由于事件的发生而被触发)时,通信协议堆栈280检测到了所读取的事件。存储在通信协议堆栈280的存储器中的数据可以来自通信网路。此外,对于读取事件,可以向应用程序260发送所存储的数据。
最后,当套接字可用于重新使用时检测到了关闭事件,例如,这是因为终止了数据链路连接,比如传输层。
以下提供异步连接(见图6)和异步输入(见图7)的例子来说明异步事件通知的使用。
参照图6,进入通信协议堆栈280以及指定回叫函数都通过调用函数open_netlib()。调用函数pppopen()(A)初始化网络子系统连接(B)。在建立了网络子系统连接之后,调用回叫函数(C)报告网络子系统的可用性。
假设已开启并分配了套接字,调用函数connect()(D)初始化TCP连接(E)。此外,应用程序260调用函数async_select()(F)记录指定事件以接收通知。在这个例子中,所关心的指定事件是写入事件,它发生于建立连接后。
在建立了连接后,如果在掩码中记录了指定事件就调用回叫函数。如果是这样,那么调用回叫函数(G)提供异步通知。一旦通知了应用程序260,它就调用函数getnextevent()(H)确定发生了哪一个指定事件(I)。这个调用也在掩码(J)中清除了该事件(即写入事件)的比特。随后应用程序260必须通过调用函数async_select()重新记录该指定事件的通知。
在图7中,提供了异步套接字读取的说明。为了初始化读取,应用程序260调用函数read()(A)。假设缺少读取数据,应用程序260就调用函数async_select()(B)记录事件(即在掩码中设置相应比特)以接收通知。在这个例子中,所关心的指定事件是读取事件,当应用程序260有数据读取时它就发生了。
在接收队列里存储数据后,如果在掩码中指定了读取事件,就调用回叫函数。如果是这样,那么调用回叫函数(C)提供异步通知。一旦通知了应用程序260,它就调用函数getnextevent()(D)确定发生了哪一个事件(E)。这个调用也在掩码(F)中清除了该事件的比特。随后应用程序260必须通过调用函数async_select()重新允许该事件的通知。最后,为了读取存储在接收队列里的数据,应用程序260调用函数read()(G)。
在图8-10中,说明了本发明实施例的状态机。在图8-9中,假设开启了通信协议堆栈280并建立了网络子系统连接(即话务信道和链路层,如有必要,自然套接字可以绕过网络子系统)。本领域的技术人员会理解各个状态可能有不同的名字,这并不离开本发明的范围。
状态机(它可以在状态间异步转移)控制(即允许和禁止)指定事件,比如读取、写入及关闭。在操作开始可以禁止指定事件并在预定状态允许该指定事件,以帮助应用程序260识别MS 110的状态。
API 270也可以报告特定状态消息,它可以根据API 270的状态和应用程序260所调用的函数类型为应用程序260所特有(即不仅仅类属于)。特定状态消息可以反映基础通信网络的状态。例如,把状态消息报告给应用程序260作为函数调用的依据。
例如在图8中,说明了API 207的TCP套接字状态图。未初始化的套接字在“空”状态800开始。套接字由于还没被分配所以不“存在”。可以通过调用函数socket()创建和初始化套接字,这个函数返回与套接字有关函数一起使用的套接字描述符。在调用函数socket()后,状态机转移到“初始化”状态805。
在初始化状态805中,只要有可能调用函数close()终止TCP连接,状态机就转移回到空状态800。调用函数close()释放所有套接字有关资源。另一方面,调用函数connect()初始化TCP连接并把状态机转移到“正开启”状态810。
在正开启状态810,只要:(1)发生了网络子系统失败,(2)不能建立TCP连接或(3)IP地址已改变,状态机就转移到“关闭”状态815。在调用了函数close()(它终止TCP连接)之后,状态机也会把套接字转移到“正关闭”状态820,这时初始化终止过程。最后,在建立了TCP连接后,状态机转移到“开启”状态825。
在开启状态825,开启套接字以读取和写入。尤其是立即允许写入事件,同时根据数据是否被存储到通信协议堆栈280的存储器中而允许读取事件。只要:(1)发生了网络子系统失败;(2)不能建立TCP连接;(3)试图终止TCP连接,比如TCP重置、TCP异常终止或网络服务器初始化的TCP关闭以及(4)IP地址的改变,状态机就会转移到已关闭状态815。应用程序初始化的TCP连接终止(比如通过调用函数close()),使状态机转移到正关闭状态820。
在已关闭状态815,读取、写入和关闭事件都被断定了。在调用函数close()(它终止TCP连接)后,状态机转移到空状态800,它释放套接字并使其可再次使用。
在正关闭状态820中,只要:(1)发生了网络子系统失败;(2)试图终止TCP连接,比如TCP重置或TCP被网络服务器初始化关闭;(3)定时器到时和(4)IP地址的改变,状态机就会转移到“等待关闭”状态830。为了防止在终止TCP连接时的延迟,API 270提供定时器,它在TCP连接终止初始化后开启。如所见的,定时器到时就把状态机转移到等待关闭状态830。
在等待关闭状态830,调用函数close()终止TCP连接并把状态机转移到空状态800。关闭事件在这个状态830断定。
表1-3说明了API 270所支持的特定状态消息。在空状态(表1-3中没有显示)中,特定状态消息“没有另外资源可使用”(是说明性的)可报告给应用程序260。
                表1
状态 连接函数类型的特定状态消息
初始化 如果这是阻塞函数调用,那么阻塞操作
正开启 连接进行中
开启 已建立连接
正关闭 由于缺少初始尝试或连接尝试失败而不存在TCP连接
等待关闭 由于缺少初始尝试或连接尝试失败而不存在TCP连接;或通用网络错误;基础网络不可用
已关闭 通用网络错误;基础网络不可用;由于服务器重置而拒绝连接尝试;进行连接超时;或网络级IP地址已改变,它由于PPP重新同步而引起TCP连接重置
                         表2
状态 I/O函数类型的特定状态消息
初始化 由于缺少初始尝试或连接尝试失败而不存在TCP连接
正开启 如果这是阻塞函数调用,那么阻塞操作
开启 如果这是阻塞函数调用,那么阻塞操作(读取/写入的字节数)
正关闭 由于缺少初始尝试或连接尝试失败而不存在TCP连接
等待关闭 由于缺少初始尝试或连接尝试失败而不存在TCP连接;或通用网络错误;基础网络不可用
已关闭 通用网络错误;基础网络不可用;服务器重置连接;服务器重置的接收;由于超时或其他原因异常中断的TCP连接;或由于缺少初始尝试或连接尝试失败而不存在TCP连接
                表3
状态 关闭函数类型的特定状态消息
初始化 成功--没有报告错误情况
正开启 如果这是阻塞函数调用,那么阻塞操作
开启 如果这是阻塞函数调用,那么阻塞操作
正关闭 如果这是阻塞函数调用,那么阻塞操作
等待关闭 成功--没有报告错误情况
已关闭 成功--没有报告错误情况
通过举例,图9说明了API 270的UDP套接字的状态图。在“空”状态900未初始化的套接字开始。就以上关于空状态800所述,套接字由于还没被分配所以不“存在”。可以通过调用函数socket()创建和初始化套接字,这个函数返回与套接字有关函数一起使用的套接字描述符。在调用函数socket()后,状态机转移到“开启”状态905。
在开启状态905,开启套接字以读取和写入。尤其里立即允许写入事件,并根据数据是否被存储到通信协议堆栈280的存储器而允许读取事件。只要发生了网络子系统失败,状态机就会转移到“已关闭”状态910。应用程度初始化的UDP连接终止(比如通过调用函数close())使状态机转移到空状态900。
在已关闭状态910,读取、写入和关闭事件都被允许了。在调用函数close()(它终止UDP连接)后,状态机把套接字转移到空状态900,它释放套接字并使其可再次使用。
表4-6说明了API 270所支持的特定状态消息。在空状态(表4-6中没有显示)中,如上所述,特定状态消息“没有另外资源可使用”可报告给应用程序260。
            表4
状态 连接函数类型的特定状态消息
开启 成功--没有报告错误情况
已关闭 通用网络错误;基础网络不可用
                        表5
状态 I/O函数类型的特定状态消息
开启 如果这是阻塞函数调用,那么阻塞操作(读取/写入的字节数)
已关闭 通用网络错误;基础网络不可用
             表6
状态 关闭函数类型的特定状态消息
开启 成功--没有报告错误情况
已关闭 成功--没有报告错误情况
图10说明了控制网络子系统(比如话务信道(即Um)和链路层(即PPP206))的状态图。调用函数open_netlib()开启网络子系统并初始化套接字进入“已关闭”状态1000。调用函数pppopen()初始化网络子系统连接,它使套接字转移到“正开启”状态1005。通过进入的PPP呼叫到MS 110的寻呼也使套接字转移到正开启状态1005。在这两种情况下,经过成功协商,MS 110尝试通过话务信道同步和建立RLP和PPP。
在正开启状态1005,在建立了网络子系统连接后,套接字转移到“开启”状态1010。另一方面,如果没有建立网络子系统,那么套接字转移回到已关闭状态1000。
在开启状态1010,调用回叫函数识别应用程序1060指定的事件,比如允许的读取、写入和关闭。在这个时刻,MS 110能够通过话务信道通信。然而,只要发生了网络子系统失败(它调用回叫函数),套接字就会转移到“已关闭”状态1000。应用程序初始化的网络子系统连接终止(比如通过调用函数close())使套接字转移到正关闭1015。
在正关闭状态1015,只要终止了网络子系统连接,套接字就转移到已关闭状态1000。在已关闭状态1000,调用回叫函数识别允许的应用程序260指定的事件。
表7说明了相应于特定函数调用并由API 270支持的特定状态消息。
                         表7
函数调用(以及说明) 特定状态消息
socket()创建套接字并返回套接字描述符 不支持的地址;无效应用程序标识;对于套接字协议是错误类型;无效或不支持的套接字参数;不支持的协议;或没有更多的套接字资源可使用
connect() 如果这是阻塞函数调用,那么阻塞操作;
初始化TCP连接 无效套接字描述符;由于服务器重置的接收而拒绝连接尝试;连接超时;应用程序缓冲不是地址空间有效部分;对地址长度或消息长度指定的无效长度;网络级IP地址已改变,它由于PPP重新同步而引起TCP连接重置;连接进行中;套接字描述符已连接;通用网络错误;基础网络不可用;指定了无效服务器地址;地址已使用;或需要的目标地址
pppopen()建立网络连接 如果这是阻塞函数调用,那么阻塞操作;指定了无效应用程序标识;或网络连接终止进行中
net_ioctl()设置网络特性 指定了无效应用程序标识;无效请求或参数;网络连接已建立;或网络连接进行中
open_netlib()开启通信协议堆栈 没有更多应用程序可用一超过开启应用程序的最大数
close_netlib()关闭通信协议堆栈 指定了无效应用程序标识;存在现有已分配的套接字;或仍建立着网络连接
bind()对于用户套接字,添加本地地址和到套接字的端口值 指定了无效套接字描述符;指定了无效或不支持的操作;地址已使用;无效操作;或
指定了无效地址参数
close()关闭套接字让它可再次使用 指定了无效套接字描述符;或如果这是阻塞函数调用,那么阻塞操作
pppclose()关闭网络连接 如果这是阻塞函数调用,那么阻塞操作;指定了无效应用程序标识;或网络连接终止进行中
netstatus()报告网络连接的状态 指定了无效应用程序标识;基础网络不可用;网络连接已建立并可用;网络连接进行中;网络连接终止进行中;没有CDMA(即话务信道)服务可用;CDMA服务可用,但由于基站不支持服务选项,初始化失败;或CDMA服务可用,但初始化失败,然而不是由于基站不支持服务选项
async_select()记录特定套接字的指定事件 指定了无效套接字描述符
getnextevent()获得已发生的下一个套接字描述符和事件 指定了无效套接字描述符;或指定了无效应用程序标识
write()写入指定数量字节--连续或非连续缓冲 指定了无效套接字描述符;没有现存的TCP连接;服务器重置TCP连接;由于超时或其他失败,异常中断了TCP连接;网络级IP地址已改变,它由于PPP重新同步而引起TCP连接重置;
TCP连接已关闭;网络不可用;应用程序缓冲不是地址空间有效部分;或没有空余缓冲区可用于写入
read()读取指定数量字节--连续或非连续缓冲 指定了无效套接字描述符;没有现存的TCP连接;服务器重置TCP连接;由于超时或其他失败,异常中断了TCP连接;网络级IP地址已改变,它由于PPP重新同步而引起TCP连接重置;TCP连接已关闭;网络不可用;应用程序缓冲不是地址空间有效部分;没有空余缓冲区可用于读取;或接收了文件结束标识
sendto()发送指定数量的字节 指定了无效套接字描述符;不支持的地址族;没有空余缓冲区可用于写入;网络不可用;应用程序缓冲不是地址空间有效部分;不支持的指定选项;或目标地址已请求
recvfrom()读取指定数量字节 指定了无效套接字描述符;不支持的地址族;没有空余缓冲区可用于写入;网络不可用;应用程序缓冲不是地址空间有效部分;或不支持的指定选项
在另一个实施例中,机器可以读取包含已编码信息的机器可读取介质,比如已编码软件代码,来完成以上所述把指定事件通知移动台应用程序的过程。机器可读取介质可以从存储设备(比如存储器或存储盘)或从通信网络接受已编码信息。在制造该介质时,机器可读取介质也可用编码信息编程。该机器可以包括应用程序260、通信协议堆栈280和API 270中的至少一个,而机器可读取介质可以包括存储器或存储盘。
虽然结合特定实施例显示了本发明,但不应考虑受此限制。当然,本发明仅仅由所附权利要求和它们的等价物的范围限定。

Claims (24)

1.一种把指定事件通知移动台应用程序的方法,该方法包括:
在移动台通信协议堆栈和通信网络间进行通信;
在所述移动台通信协议堆栈和所述移动台应用程序间通过移动台应用程序接口进行通信;
用所述移动台通信协议堆栈和所述移动台应用程序接口中的至少一个检测所述指定事件;以及
对于所述移动台应用程序调用所述指定事件的通知。
2.按权利要求1所述的方法,其特征在于进一步包括调用异步通知。
3.按权利要求1所述的方法,其特征在于调用通知包括回叫函数。
4.按权利要求1所述的方法,其特征在于进一步包括用信号把所述指定事件通知所述移动台应用程序。
5.按权利要求1所述的方法,其特征在于进一步包括用消息把所述指定事件通知所述移动台应用程序。
6.按权利要求1所述的方法,其特征在于进一步包括用中断把所述指定事件通知所述移动台应用程序。
7.按权利要求3所述的方法,其特征在于为网络子系统事件调用所述回叫函数。
8.按权利要求3所述的方法,其特征在于为套接字事件调用所述回叫函数。
9.一种在把指定事件通知移动台应用程序的设备,该设备包括:
与通信网络进行通信的移动台通信协议堆栈;
利于所述移动台通信协议堆栈和所述移动台应用程序间通信的移动台应用程序接口;
其中用所述移动台通信协议堆栈和所述移动台应用程序接口中的至少一个检测所述指定事件;以及
其中对所述移动台应用程序调用所述指定事件的通知。
10.按权利要求9所述的设备,其特征在于所述通知包括调用异步通知。
11.按权利要求9所述的设备,其特征在于所述通知包括回叫函数。
12.按权利要求9所述的设备,其特征在于所述通知由信号传送。
13.按权利要求9所述的设备,其特征在于所述通知由消息传送。
14.按权利要求9所述的设备,其特征在于所述通知由中断传送。
15.按权利要求11所述的设备,其特征在于为网络子系统事件调用所述回叫函数。
16.按权利要求11所述的设备,其特征在于为套接字事件调用所述回叫函数。
17.一种机器可读取介质,它包括已编码信息,其中由机器读取时所引发的过程有:
在移动台通信协议堆栈和通信网络间进行通信;
在所述移动台通信协议堆栈和所述移动台应用程序间通过移动台应用程序接口进行通信;
用所述移动台通信协议堆栈和所述移动台应用程序接口中的至少一个检测所述指定事件;以及
对所述移动台应用程序调用所述指定事件的通知。
18.按权利要求17所述的机器可读取介质,其特征在于进一步包括调用异步通知。
19.按权利要求17所述的机器可读取介质,其特征在于调用通知包括回叫函数。
20.按权利要求17所述的机器可读取介质,其特征在于进一步包括用信号把所述指定事件通知所述移动台应用程序。
21.按权利要求17所述的机器可读取介质,其特征在于进一步包括用消息把所述指定事件通知所述移动台应用程序。
22.按权利要求17所述的机器可读取介质,其特征在于进一步包括用中断把所述指定事件通知所述移动台应用程序。
23.按权利要求19所述的机器可读取介质,其特征在于为网络子系统事件调用所述回叫函数。
24.按权利要求19所述的机器可读取介质,其特征在于为套接字事件调用所述回叫函数。
CN01807530A 2000-03-30 2001-03-29 把指定事件通知移动台应用程序的方法和设备 Pending CN1422481A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US53949600A 2000-03-30 2000-03-30
US09/539,496 2000-03-30

Publications (1)

Publication Number Publication Date
CN1422481A true CN1422481A (zh) 2003-06-04

Family

ID=24151466

Family Applications (1)

Application Number Title Priority Date Filing Date
CN01807530A Pending CN1422481A (zh) 2000-03-30 2001-03-29 把指定事件通知移动台应用程序的方法和设备

Country Status (9)

Country Link
EP (1) EP1273154A2 (zh)
JP (1) JP2003530021A (zh)
KR (1) KR20030010591A (zh)
CN (1) CN1422481A (zh)
AU (1) AU2001289299A1 (zh)
CA (1) CA2402359A1 (zh)
IL (1) IL151347A0 (zh)
MX (1) MXPA02009369A (zh)
WO (1) WO2001076178A2 (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9037995B2 (en) 2007-01-07 2015-05-19 Apple Inc. Application programming interfaces for scrolling operations
US9285908B2 (en) 2009-03-16 2016-03-15 Apple Inc. Event recognition
CN102750083B (zh) * 2007-01-07 2016-03-16 苹果公司 用于手势操作的应用编程接口
US9298363B2 (en) 2011-04-11 2016-03-29 Apple Inc. Region activation for touch sensitive surface
US9311112B2 (en) 2009-03-16 2016-04-12 Apple Inc. Event recognition
US9323335B2 (en) 2008-03-04 2016-04-26 Apple Inc. Touch event model programming interface
US9389712B2 (en) 2008-03-04 2016-07-12 Apple Inc. Touch event model
US9483121B2 (en) 2009-03-16 2016-11-01 Apple Inc. Event recognition
US9684521B2 (en) 2010-01-26 2017-06-20 Apple Inc. Systems having discrete and continuous gesture recognizers
US9733716B2 (en) 2013-06-09 2017-08-15 Apple Inc. Proxy gesture recognizer
US9798459B2 (en) 2008-03-04 2017-10-24 Apple Inc. Touch event model for web pages
US10216408B2 (en) 2010-06-14 2019-02-26 Apple Inc. Devices and methods for identifying user interface objects based on view hierarchy
US10963142B2 (en) 2007-01-07 2021-03-30 Apple Inc. Application programming interfaces for scrolling

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100674091B1 (ko) * 2004-12-03 2007-01-24 한국전자통신연구원 인터럽트로 이벤트의 발생을 알리기 위한 분산 제어네트워크 장치 및 그 방법
EP2403226A1 (en) 2010-06-30 2012-01-04 Runs NV Method for real-time monitoring of packet-based telecom services, and corresponding server and client device

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6023721A (en) * 1997-05-14 2000-02-08 Citrix Systems, Inc. Method and system for allowing a single-user application executing in a multi-user environment to create objects having both user-global and system global visibility
US5974541A (en) * 1997-07-22 1999-10-26 National Instruments Corporation GPIB system and method which provides asynchronous event notification

Cited By (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10817162B2 (en) 2007-01-07 2020-10-27 Apple Inc. Application programming interfaces for scrolling operations
CN102750083B (zh) * 2007-01-07 2016-03-16 苹果公司 用于手势操作的应用编程接口
US9760272B2 (en) 2007-01-07 2017-09-12 Apple Inc. Application programming interfaces for scrolling operations
US10481785B2 (en) 2007-01-07 2019-11-19 Apple Inc. Application programming interfaces for scrolling operations
US11954322B2 (en) 2007-01-07 2024-04-09 Apple Inc. Application programming interface for gesture operations
US10613741B2 (en) 2007-01-07 2020-04-07 Apple Inc. Application programming interface for gesture operations
US10175876B2 (en) 2007-01-07 2019-01-08 Apple Inc. Application programming interfaces for gesture operations
US9448712B2 (en) 2007-01-07 2016-09-20 Apple Inc. Application programming interfaces for scrolling operations
US9037995B2 (en) 2007-01-07 2015-05-19 Apple Inc. Application programming interfaces for scrolling operations
US9529519B2 (en) 2007-01-07 2016-12-27 Apple Inc. Application programming interfaces for gesture operations
US9575648B2 (en) 2007-01-07 2017-02-21 Apple Inc. Application programming interfaces for gesture operations
US9665265B2 (en) 2007-01-07 2017-05-30 Apple Inc. Application programming interfaces for gesture operations
US11449217B2 (en) 2007-01-07 2022-09-20 Apple Inc. Application programming interfaces for gesture operations
US10963142B2 (en) 2007-01-07 2021-03-30 Apple Inc. Application programming interfaces for scrolling
US9720594B2 (en) 2008-03-04 2017-08-01 Apple Inc. Touch event model
US9690481B2 (en) 2008-03-04 2017-06-27 Apple Inc. Touch event model
US10521109B2 (en) 2008-03-04 2019-12-31 Apple Inc. Touch event model
US10936190B2 (en) 2008-03-04 2021-03-02 Apple Inc. Devices, methods, and user interfaces for processing touch events
US11740725B2 (en) 2008-03-04 2023-08-29 Apple Inc. Devices, methods, and user interfaces for processing touch events
US9971502B2 (en) 2008-03-04 2018-05-15 Apple Inc. Touch event model
US9389712B2 (en) 2008-03-04 2016-07-12 Apple Inc. Touch event model
US9323335B2 (en) 2008-03-04 2016-04-26 Apple Inc. Touch event model programming interface
US9798459B2 (en) 2008-03-04 2017-10-24 Apple Inc. Touch event model for web pages
US10719225B2 (en) 2009-03-16 2020-07-21 Apple Inc. Event recognition
US9965177B2 (en) 2009-03-16 2018-05-08 Apple Inc. Event recognition
US9285908B2 (en) 2009-03-16 2016-03-15 Apple Inc. Event recognition
US11163440B2 (en) 2009-03-16 2021-11-02 Apple Inc. Event recognition
US9483121B2 (en) 2009-03-16 2016-11-01 Apple Inc. Event recognition
US11755196B2 (en) 2009-03-16 2023-09-12 Apple Inc. Event recognition
US9311112B2 (en) 2009-03-16 2016-04-12 Apple Inc. Event recognition
US10732997B2 (en) 2010-01-26 2020-08-04 Apple Inc. Gesture recognizers with delegates for controlling and modifying gesture recognition
US9684521B2 (en) 2010-01-26 2017-06-20 Apple Inc. Systems having discrete and continuous gesture recognizers
US10216408B2 (en) 2010-06-14 2019-02-26 Apple Inc. Devices and methods for identifying user interface objects based on view hierarchy
US9298363B2 (en) 2011-04-11 2016-03-29 Apple Inc. Region activation for touch sensitive surface
US9733716B2 (en) 2013-06-09 2017-08-15 Apple Inc. Proxy gesture recognizer
US11429190B2 (en) 2013-06-09 2022-08-30 Apple Inc. Proxy gesture recognizer

Also Published As

Publication number Publication date
IL151347A0 (en) 2003-04-10
MXPA02009369A (es) 2003-02-12
JP2003530021A (ja) 2003-10-07
WO2001076178A2 (en) 2001-10-11
AU2001289299A1 (en) 2001-10-15
EP1273154A2 (en) 2003-01-08
KR20030010591A (ko) 2003-02-05
CA2402359A1 (en) 2001-10-11
WO2001076178A3 (en) 2002-02-28

Similar Documents

Publication Publication Date Title
CN1199420C (zh) 在移动台中检测指定事件的方法和设备
CN1422482A (zh) 移动台应用程序识别指定事件的方法和设备
JP4971513B2 (ja) 移動局のアプリケーションが生のパケット化されたデータを受信および送信するための方法および装置
CN1422481A (zh) 把指定事件通知移动台应用程序的方法和设备
CN1620157A (zh) 用于移动站应用识别指定状态消息的方法和装置
AU2001251105A1 (en) Method and apparatus for a mobile station application to receive and transmit raw packetized data
CN1439215A (zh) 用移动站应用来服务指定事件的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication