[go: up one dir, main page]

WO2001099361A1 - Method and system for selecting transmission means - Google Patents

Method and system for selecting transmission means Download PDF

Info

Publication number
WO2001099361A1
WO2001099361A1 PCT/SE2001/001440 SE0101440W WO0199361A1 WO 2001099361 A1 WO2001099361 A1 WO 2001099361A1 SE 0101440 W SE0101440 W SE 0101440W WO 0199361 A1 WO0199361 A1 WO 0199361A1
Authority
WO
WIPO (PCT)
Prior art keywords
computer
wap
application
tcp
protocol
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.)
Ceased
Application number
PCT/SE2001/001440
Other languages
French (fr)
Inventor
Lars Erik Resenius
Mats Jörgen PERSSON
Nils Torbjörn Alexander HOVMARK
Lars Erik Mauritz LAVÉN
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.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
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
Priority claimed from SE0002328A external-priority patent/SE520287C2/en
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Priority to AU2001266497A priority Critical patent/AU2001266497A1/en
Publication of WO2001099361A1 publication Critical patent/WO2001099361A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • 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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W48/00Access restriction; Network selection; Access point selection
    • H04W48/18Selecting a network or a communication service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W92/00Interfaces specially adapted for wireless communication networks
    • H04W92/16Interfaces between hierarchically similar devices
    • H04W92/18Interfaces between hierarchically similar devices between terminal devices

Definitions

  • the present invention relates to a method for communication, and to a system for carrying out such a method.
  • a number of computers may be connected to each other by means of a network.
  • the network may be a Local Area Network, LAN, connecting a number of computers within a building, such as in an office.
  • the network may also be a Wide Area Network, WAN, which connects a large number of computers over great distances.
  • a WAN may be used for connecting individual computers and for connecting several LAN's with each other and/or with individual computers.
  • the worldwide Internet, also known as the Internet, to which millions of computers are connected or connectable, may in this connection be regarded as a WAN.
  • the network enables the connected computers to communicate with each other, thereby greatly enhancing the usefulness of the individual computer.
  • the OSI Reference Model defines a seven layer model of data communication with physical transport of data bits at the lower layer and application protocols at the upper layers. Each of the layers provides a set of functions to the layer above and, in turn, relies on the functions provided by the layer below.
  • the seven layers of the OSI Reference Model are:
  • a combination of different protocol layers, as described above, is l ⁇ iown as a protocol suite.
  • TCP stands for
  • Transmission Control Protocol and IP stands for Internet Protocol.
  • the TCP/IP protocol suite comprises four layers:
  • the link layer sometimes also referred to as network interface layer, handles the hardware details of physically interfacing with the cable, or whatever type of media being used.
  • the network layer handles the movement of packets around the network.
  • the transport layer provides a flow of data for the application layer above.
  • an application in a first computer can communicate with an application in a second computer via a logical connection.
  • An aspect of the present invention relates to the problem of increasing the versatility of a computer in terms of communications via a network.
  • a computer-implemented method for communicating from a first application in a first computer comprising:
  • the base provider being adapted to provide data transport between said first computer and another computer, the first computer including said first application and said layered service provider;
  • the layered service provider evaluating a choice criteria in order to select a communications protocol for the communications request
  • the layered service provider delivering the communications request either to a TCP/IP data transmission means including a TCP/IP transport service provider; or to a WAP data transmission means including a base service provider, dependent on said evaluation.
  • This solution advantageously enables the first computer to optimize the communication by using the most appropriate communications protocol for the communications current request.
  • Another aspect of the present invention relates to the problem of establishing a communication between a WAP application and a Windows ® application, where the Windows ® application is not adapted for communication with a WAP application.
  • a first computer comprising:
  • said first application being a Windows®-application, a WinSock Transmission Control Protocol base provider, working under
  • Winsock SPI and a TCP/UDP/IP-stack, working under said WinSock Transmission Control Protocol base provider, wherein said first application comprises means for communicating by TCP/IP via said
  • the first computer further comprising: a WAP data transmission means, and a protocol selector adapted to operate as an interface between said WAP data transmission means and said first application.
  • a first bandwidth such as a GSM-telephone
  • a second device having a second bandwidth such as via a modem and a ordinary telephone line
  • the present invention uses a method for communicating, via a network, using WAP- protocols between a first application in a first computer and a second application in a second computer, where the first application comprises a Windows ® -application.
  • the first computer unit comprises a WinSock TCP-base provider, working under WinSock SPI, and a TCP/UDP/IP-stack, working under the WinSock TCP-base provider.
  • the first application comprises functions for communicating using TCP/IP via the TCP/UDP/IP-stack and the WinSock TCP-base provider.
  • the first computer comprises a protocol selector and a WAP-stack, wherein the protocol selector is adapted to operate as an interface between the WAP-stack and the first application.
  • the protocol selector operates between the WinSock SPI- and the WinSock TCP-base provider.
  • the first computer may comprise a WinSock UDP-base provider, which works under the WinSock SPI- and parallel with the WinSock TCP-base provider, where the TCP/UDP/IP-stack is working under the WinSock UDP-base provider.
  • the WAP-stack then works between the protocol selector and the WinSock UDP- base provider.
  • a connection may be achieved between the first and the second application via the TCP/UDP/IP-stack, the WinSock DP-base provider, the WAP- stack and the protocol selector.
  • the first computer comprises a WinSock-base provider for WAP, working under the protocol selector, parallel with the WinSock TCP-base provider, and that the WAP-stack works under the WinSock-base provider for WAP, parallel with the TCP/UDP-stack.
  • a connection between the first and the second application can be obtained via the WAP-stack, the WinSock-base provider for WAP and the protocol selector.
  • the protocol selector has three general tasks.
  • the protocol selector is adapted to translate between a WAP-protocol and one or several protocols corresponding to one or several applications, it is adapted to map incoming or outgoing WAP-requests or WAP-sessions to TCP-sockets, and it is adapted to be transparent for applications not communicating according to WAP.
  • the translating function is achieved in different manners, depending on how the first application works.
  • the protocol selector translates between WAP and HTTP according to established standardized specifications.
  • the protocol selector perforais a mapping of each command and response onto one or several of the fields in a WSP- message.
  • the protocol selector reads and writes, respectively, user name and password from and to respective header fields on associated messages according to WSP.
  • the present invention provides a plurality of embodiments.
  • a first socket is set up towards one or several ports within the second computer unit, and second sockets are set up towards one or several ports, said other ports being different from said first ports, corresponding to the second computer unit, and that the protocol selector communicates according to WAP or TCP/IP in dependence on the port used.
  • the first or the second computer unit is provided with a plurality of different IP-addresses, that one or several of these IP- addresses are chosen to receive WAP-requests or -sessions, and that said protocol selector communicates according to WAP or TCP/IP dependent on IP-address being used.
  • the first computer unit is connected to the network via a first device having a first bandwidth, such as a GSM- telephone, and in other cases it is connected to the network via a second device having a second bandwidth, such as a modem or a telephone line, where the first bandwidth is narrower than the second bandwidth.
  • the protocol selector reads the available bandwidth and selects to use communication according to WAP if the available bandwidth is equal to or lower than the first bandwidth, whereas a communication according to TCP/IP is used if the available bandwidth is higher than the first bandwidth.
  • the protocol selector performs a check to determine to which one or several applications an incoming WAP-request or - session relates.
  • This checking procedure can consist in detecting a predetermined field within a header in an incoming message.
  • the determination of to which application an incoming request or session belongs is performed by identifying a unique field in the request or session relating to URI, such as the protocol-identifying field, the host-identifying field, the port-identifying field, the path-identifying field, and/or a parameter field.
  • the checking procedure may also consist in a detection of a predetermined WSP- method being used by said request or session and which is unique for the first application using the WSP-method.
  • the present invention prescribes that, in case the first application used TCP-sockets, the protocol selector will store the part responses from the first application until a response is complete, and it will send the same to the second application as a complete response.
  • the protocol selectors may be embodied by a WinSock LSP.
  • a protocol selector according to the present invention may be utilized when the second computer unit consists of a computer adapted for communication according to WAP, such as a WAP-telephone or a computer unit connected to the network via a wireless telephone.
  • the second application consists of a WAP-gateway or a WAP- server.
  • the present invention is also useful in case the second computer unit comprises a computer unit having the same features as the first computer, and where the second application consists of a Windows ® -application. This situation allows for the first computer unit to communicate with the second computer unit via WAP if both computer units are equipped with features according to the present invention.
  • the network used in accordance with the present invention may be the worldwide Internet network.
  • the present invention advantageously enables the establishment of a communication between a WAP-application and a Windows ® -application, where unpacking and possible decryption are not made at any intermediate gateway.
  • the present invention enables communication which is not limited by the availability of gateways in the communication path, providing interpretation between WAP and e.g. HTTP.
  • the present invention advantageously provides so-called end-to-end security with an encrypted communication, which may only be unpacked by the receiver and where the WAP-application as well as the Windows ® -application has a possibility of mutual authentication.
  • Another advantage of the invention is that it enables for Windows ® -applications, normally communicating via a known protocol such as HTTP, to alternatively communicate by means of the more efficient WAP-protocol, and thereby save bandwidth.
  • Figure 1 shows a system comprising a network, which may be the Internet, for interconnecting a number of computers or terminals.
  • Figure 2 is a general illustration of the coiTimunication between the first application program and the second application program in terms of logical connections between mutually corresponding protocol layers.
  • Figure 3 A illustrates one embodiment of the WAP stack according to the invention, comprising a WSP layer, a WTLS layer and a WDP layer.
  • Figure 3B illustrates another embodiment of the WAP stack according to the invention, comprising a WSP layer and a WDP layer.
  • Figure 3C illustrates yet another embodiment of the WAP stack according to the invention, comprising a WSP layer, a WTP layer and a WDP layer.
  • Figure 3D illustrates yet another embodiment of the WAP stack according to the invention, comprising merely a WDP layer.
  • Figure 4 illustrates an embodiment of a computer as shown in Figure 1, comprising an application, which may be a Winsock application.
  • Figure 5 illustrates mapping of command and response onto one or several of the fields of a WSP message.
  • Figure 6 illustrates a translation including transfer of authentication data, such as user name and password from/to header fields in messages according to WSP.
  • Figure 7 shows schematically that a second computer makes a distinction between ports and IP addresses communicating according to WAP and ports that do notcommunicate according to WAP.
  • Figure 8 shows schematically different manners for a computer to connect to a network.
  • Figure 9 shows schematically a WAP request or session being connected to a specific first application by detecting a field corresponding to the request or session.
  • Figure 10 shows schematically the handling of part-answers 390 from a TCP/IP socket to a WAP application.
  • Figure 11 shows schematically examples of different types of second computers capable of communicating with a first computer.
  • Figure 12 shows schematically a computer program product and a computer readable medium.
  • Figure 13 is an illustration of another embodiment of a computer as shown in Figure 1.
  • Figure 1 shows a system 5 comprising a network 10, which may be the Internet, for interconnecting a number of computers or terminals.
  • a first computer 20:1 is connected to the network 10 by a connection 30: 1.
  • the connection 30:1 may, for example, comprise a cable for providing communication by the Ethernet protocol.
  • the first computer comprises a data port 40:1 with which the connection 30: 1 can exchange data.
  • the data port 40:1 comprises a hardware unit.
  • the computer 20: 1 has a user interface 50: 1 for enabling user interaction.
  • the computer may be a personal computer, PC.
  • the user interface may comprise a display 60:1 for displaying information to the user, a loudspeaker or an earphone 70: 1 for sound and a user input device 80: 1.
  • the user input device may comprise a keyboard and/or a mouse.
  • the user interface 50:1 may comprise a combined input/output device, such as a touch-sensitive display.
  • the user interface 50:1 enables information exchange between a user and an application layer program 90:1.
  • the application layer program 90:1 may comprise for example an E-mail program or a browser.
  • a computer 20:1 as illustrated by FIG. 1 may comprise a bus for communicating information, a processor coupled to the bus for processing information and a main memory coupled to the bus for storing information and instructions for the processor.
  • the main memory may store an application program which may be transferred to the main memory from another memory such as a mass storage device also coupled to the bus.
  • the computer 20: 1 also includes a read-only memory (ROM) coupled to the bus for storing fixed information and instructions for the processor.
  • ROM read-only memory
  • the mass storage device may be a conventional hard disk drive, floppy disk drive, compact disc read only memory (CD ROM) drive, or other magnetic or optical data storage device for reading and writing information.
  • the mass storage device is coupled to the bus for storing information and instructions for use by the processor.
  • a second computer 20:2 is connected to the network 10 by a connection 30:2.
  • the second computer 20:2 may comprise a user interface 50:2 similar to that of the first computer, and an application layer program 90:2.
  • the first application layer program 90:1 can communicate with the second application layer program 90:2 via the network 10. Such communication is achieved via communication means 100:1 in the first computer, the communication means 100:1 providing an interface between the application layer program 90:1 and the data port 40: 1. Similarly, there is a communication means 100:2 in the second computer for providing an interface between the application layer program 90:2 and the data port 40:2.
  • Figure 2 is a general illustration of the communication between the first application program 90:1 and the second application program 90:2 in terms of logical connections between mutually corresponding protocol layers.
  • the application layers 95 have a logical connection 110, enabling a data exchange between the first application program 90: 1 and the second application program 90:2.
  • the provision of the communication means 100:1 and 100:2, respectively, ( Figure 1) enables the application programs 90:1 and 90:2 to behave as if they were communicating directly with each other.
  • the communication means 100 includes a protocol suite comprising a plurality of protocol elements.
  • the physical layer 120 At the lowest level, the physical layer 120, there is an exchange of bits over bearers 130.
  • the bearers may include cables 30 communicating via Ethernet and/or wireless bit transfer via CDMA, GSM, CDPD or any other type of bit transfer.
  • Between the physical layer 120: 1 and the application layer 95: 1 there is provided a certain set of layers depending on the requirements for that particular communications session.
  • the communication means 100: 1 in the first computer 20:1 is adapted to select an appropriate protocol for a communications session.
  • the communication means 100 may chose between using the TCP/IP protocol suite or a WAP protocol suite.
  • the communication means 100:1 includes a protocol selector 140: 1 adapted to determine whether to communicate via the TCP/IP protocol or via the WAP protocol.
  • the protocol selector 140: 1 is embodied by Winsock 2 Layered Service Provider (LSP). Winsock 2 Layered Service Provider is described in the article "Unravelling the Mysteries of Writing a Winsock 2 Layered Service Provider" by Wei Hua, Jim Ohlund, Barry Butterklee; Microsoft Systems Journal, May 1999, the contents of which is hereby incorporated by reference.
  • the TCP/IP data transmission means 150: 1 may include a TCP/IP transport service provider operating to provide reliable data transport for the computer 20:1 over the physical layer 120:1.
  • the LSP 140: 1 determines that it is more appropriate to communicate via the Wireless Application Protocol (WAP)
  • the data received by LSP 140:1 from the application is routed to means 160: 1 for transmitting data in accordance with a WAP protocol.
  • the WAP data transmission means 160:1 may include a base service provider operating to provide reliable data transport for the computer 20:1 over the physical layer 120: 1.
  • the LSP 140:1 is adapted to translate the data between the protocol used by the application and the uppermost WAP layer utilized by the WAP data transmission means 160: 1.
  • the uppermost WAP layer is the Wireless Session Protocol, WSP.
  • the WSP is defined in Wireless Application Protocol Wireless Session Protocol WAP-203-WSP, Version 4 May 2000, the content of which is hereby incorporated by reference.
  • the WAP data transmission means 160:1 comprises a WAP stack 170 (Fig 4).
  • the WAP stack 170 is implemented as a base provider comprising means for implementing the actual details of a WAP protocol.
  • Figure 3 A illustrates one embodiment of the WAP stack according to the invention, comprising a WSP layer, a WTLS layer and a WDP layer.
  • Figure 3B illustrates another embodiment of the WAP stack according to the invention, comprising a WSP layer and a WDP layer.
  • Figure 3C illustrates yet another embodiment of the WAP stack according to the invention, comprising a WSP layer, a WTP layer and a WDP layer.
  • Figure 3D illustrates yet another embodiment of the WAP stack according to the invention, comprising merely a WDP layer.
  • Figure 4 illustrates an embodiment of the computer 20:1 comprising an application 90:1, which may be a Winsock application, a Winsock 2 API 200 : 1 , a protocol selector 140:1, which may be embodied by a Winsock 2 Layered Service Provider (LSP), a TCP base provider 210:1, a TCP/UDP/IP stack 220:1, a WAP stack 170:1 and a UDP base provider 230: 1.
  • LSP 140:1 is, according to an embodiment, adapted to translate information between the current application protocol used by the application 90: 1 and the WAP protocol used by the uppermost WAP layer as defined in Figure 3.
  • the application layer may comprise several applications 90: 1, as illustrated in Fig. 4.
  • the LSP 140: 1 is, according to an embodiment adapted to translate between a WAP protocol and an application protocol, and to map incoming or outgoing WAP requests or WAP sessions to TCP sockets when acting on information between boxes 160: 1 and 200, whereas the LSP 140: 1 is adapted to transparently forward information between boxes 210:1 and 200 for applications 90: 1 that do not communicate using the WAP protocol.
  • the LSP 140:1 is adapted to translate between the HTTP protocol and the WAP protocol when the application communicates according to HTTP. This translation is achieved in accordance with specifications that may be stored in a memory or storage device in the computer 20 as described above, such that the translation specifications are available for use by LSP 140: 1.
  • the application 90: 1 may operate in accordance with SOAP.
  • the application 90: 1 operates according to an Email protocol such as POP3, IMAP4 or SMTP.
  • the LSP 140: 1 is adapted to perform mapping of each command and each response onto one or several of the fields of a WSP message, as illustrated in Figure 5.
  • Figure 6 illustrates that the translation includes how to transfer authentication data, such as user name 240 and password 250 from/to header fields 260, 270 in messages 280 according to WSP.
  • the protocol selector (LSP) 140:1 is adapted to decide whether a communication is to be via TCP or WAP.
  • Fig. 7 shows schematically that first sockets 300 are set up towards one or several first ports 310 within the second computer unit 20:2, and that second sockets 320 are set up towards one or several ports 330, separated from the first ports 310, over the second computer unit 20:2.
  • the protocol selector 140:1 can choose to communicate according to WAP or TCP/IP in dependence of what port 31 ' that has been used. If, for example, the first ports 310 are used for WAP while the second ports 330 are used for other communications the protocol selector 140:1 will know that if the port 310' corresponding to the first ports 310, is used the communication according to WAP shall be used.
  • a computer can be assigned a number of different IP-addresses and therefor the same computer can be reached by different IP-addresses.
  • the first or the second computer 20: 1, 20:2 are assigned a number of different IP-addresses 341, 342, 343, 344.
  • IP- address 342 for the first computer and IP-address 343 for the second computer have been chosen for receiving WAP-requests or sessions.
  • the protocol selector 140: 1 can choose to communicate according to WAP or TCP/IP dependent on the IP-address used.
  • the first computer unit 20:1 can, as shown in Fig. 8, in certain cases be connected to the network via a first device 350, such as a GSM-telephone, having a first bandwidth 350b.
  • the first computer unit 20: 1" may be connected to the network 10 via a second device 360, such as a modem or a telephone connection, with a second bandwidth 360b.
  • the first bandwidth 350b is, in this case narrower than the second bandwidth 360b.
  • the protocol selector 140:1', 140:1" in the first computer reads the available bandwidth and chooses to communicate according to WAP if the available bandwidth is equal to or lower than the first bandwidth 350b.
  • the bandwidth selector 140: 1 will choose to communicate according to TCP/IP if the available bandwidth is higher than the first bandwidth 350b.
  • the protocol selector performs a checking procedure on an incoming WAP-request or session so as to determine to which one of the first applications 90: 1 that request or session relates.
  • this checking procedure may consist in a detection of predetermined field 380' within a header of an incoming message 380 identifying a current first application 90: 1 among several first applications 90: 1, 90:1', 90: 1".
  • the WAP-stack 160: 1 is used on a number of ports 370 and that these ports are used for making the checking procedure so as to determine to which first application an incoming WAP-request or session relates.
  • This URI consists of a number of fields, where
  • the second field is a value identifying field which in this example comprises " wap.cesam.com "
  • the third field is a port identifying field, which in this example comprises "805"
  • the fourth field is a path identifying field, which in this example comprises "/start.wml"
  • the fifth field is a parameter field, which in this example comprises "name ⁇ x".
  • the protocol selector 140:1 it is also impossible for the protocol selector 140:1 to identify to which first application a certain incoming request or session relates by identifying a unique field of a URI in the request or session.
  • a unique field may be the protocol identifying field, the value identifying field, the port identifying field, the path identifying field and/or a parameter field.
  • the checking procedure for determining to which application an incoming WAP-request or session relates can comprise detection of a certain predetermined WSP-method being used by the incoming request or session, said WSP-method being unique for the first application using this WSP-method.
  • the first application may also be identified by the TCP-port or TCP-ports, to which it is associated. In other modes an incoming request or session addresses a certain TCP-port and thereby also identifies a first application, which is associated with that particular port or port combination.
  • the protocol selector 140:1 stores part- answers 390 from the first application 90: 1 until a response 400 is complete, and sends it to the second application 90:2 as a complete response 410.
  • a protocol selector according to the invention enables communication between different types of computers in the network 10.
  • Fig. 11 shows that the second computer unit 20:2 can comprise a computer unit adapted for communication according to WAP such as a WAP-telephone or a computer unit connected to said network via a wireless telephone, or wireless terminal.
  • WAP such as a WAP-telephone
  • the second computer 20:2 can be embodied by a computer unit comprising a second application 90:2' comprising a WAP gateway or a WAP server.
  • the second computer 20:2" may comprise a computer unit having the same features as the first computer 20:1, whereby the second computer 20:2" comprises a protocol selector 140:2" according to the invention and a WAP- stack 160:2".
  • the second application 90:2" may be embodied by a Windows application and the first computer unit 20:1 can communicate with the second computer unit 20:2" via WAP.
  • the present invention may be used for different networks but is probably most useful where the network 10 involves the world wide Internet.
  • Fig. 12 illustrates that the present invention also comprises a computer program product 420 comprising computer program code 420' which, when executed by a computer unit 430, performs the functions of a protocol selector 140: 1 according to the invention, a WAP-stack 160:1 and, when applicable, the functions of a WinSock base provider for WAP.
  • the present invention relates to a computer readable medium 440, illustrated as a diskette in Fig. 12, the computer readable medium having computer program code 420" stored thereon, said computer program code, when executed by a computer unit 430, performing the function of a protocol selector 140:1, a WAP- stack 160: 1 and, when applicable, the functions of a WinSock base provider for WAP.
  • FIG 13 is an illustration of another embodiment of the computer 20:1 comprising an application 90:1, which may be a Winsock application, a Winsock 2 API 200:1, a protocol selector 140: 1 , which may be embodied by a Winsock 2 Layered Service Provider (LSP), a TCP base provider 210: 1, a TCP/UDP/IP stack 220:1, a WAP stack 170':1 and a Winsock base provider for WAP 500:1.
  • LSP Winsock 2 Layered Service Provider
  • the Winsock base provider for WAP 500: 1 operates under the protocol selector 140:1.
  • the WAP stack 170':1 operates under the Winsock base provider for WAP 500: 1 in direct connection with the port 40: 1.
  • the TCP/UDP/IP stack 220:1 is coupled to one of the computer's ports 40: 1, and the WAP stack 170': 1 is coupled to another one of the computer's ports 42:1.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

The present invention relates to a computer-implemented method for communicating from a first application (90:1), the method comprising: intercepting a communications request from the application in the native protocol of the communications request with a layered service provider (140:1) above a base provider (150:1, 160:1, 210:1, 230:1), the base provider being adapted to provide data transport between a first computer (20:1) and another computer (20:2), the first computer including said first application and said layered service provider; the layered service provider (140:1) evaluating a choice criteria in order to select a communications protocol for the communications request; the layered service provider (140:1) delivering the communications request either to a TCP/IP data transmission means (150:1, 210, 220) including a TCP/IP transport service provider; or to a WAP data transmission means (160:1) including a base service provider, dependent on said evaluation.

Description

METHOD AND SYSTEM FOR SELECTING TRANSMISSION MEANS
Technical Field of the Invention The present invention relates to a method for communication, and to a system for carrying out such a method.
Description of Related Art
A number of computers may be connected to each other by means of a network. The network may be a Local Area Network, LAN, connecting a number of computers within a building, such as in an office. The network may also be a Wide Area Network, WAN, which connects a large number of computers over great distances. A WAN may be used for connecting individual computers and for connecting several LAN's with each other and/or with individual computers. The worldwide Internet, also known as the Internet, to which millions of computers are connected or connectable, may in this connection be regarded as a WAN.
The network enables the connected computers to communicate with each other, thereby greatly enhancing the usefulness of the individual computer.
Individual computers interconnected via a network, such as the Internet, may be of different types, running on mutually different operating systems. In order to achieve reliable communication between computers in spite of such differences between individual computers the OSI (Open Systems Inteconnect) Reference Model (ISO 7498) was developed.
The OSI Reference Model defines a seven layer model of data communication with physical transport of data bits at the lower layer and application protocols at the upper layers. Each of the layers provides a set of functions to the layer above and, in turn, relies on the functions provided by the layer below. The seven layers of the OSI Reference Model are:
- Application layer - Presentation layer (Formatting of data and encryption)
- Session layer (Establishment and maintenance of sessions)
- Transport layer ( Provision of reliable and unreliable end-to-end delivery)
- Network layer (Packet delivery)
- Data Link layer ( Framing of units of information and error checking) - Physical layer (Transmission of bits on the physical hardware)
The text in parenthesis above indicates in broad terms the functions provided by the respective layer.
A combination of different protocol layers, as described above, is lαiown as a protocol suite.
The provision of such protocol suites on two computers that are physically connected via the lowest layer (the Physical layer) enables the application layer on the first computer to communicate with the application layer of the second computer in a standardized manner. In effect the application layers can communicate as though they were directly communicating with each other - in other words there is, from a logical point of view, a direct communication between the application layers.
An example of a protocol suite is the TCP/IP protocol suite. TCP stands for
Transmission Control Protocol, and IP stands for Internet Protocol. The TCP/IP protocol suite comprises four layers:
- Application layer
- Transport layer - Network layer - Link layer
The link layer, sometimes also referred to as network interface layer, handles the hardware details of physically interfacing with the cable, or whatever type of media being used. The network layer handles the movement of packets around the network. The transport layer provides a flow of data for the application layer above.
In this manner an application in a first computer can communicate with an application in a second computer via a logical connection.
Summary
An aspect of the present invention relates to the problem of increasing the versatility of a computer in terms of communications via a network.
This problem is addressed by a computer-implemented method for communicating from a first application in a first computer, the method comprising:
intercepting a communications request from the application in the native protocol of the communications request with a layered service provider above a base provider, the base provider being adapted to provide data transport between said first computer and another computer, the first computer including said first application and said layered service provider;
the layered service provider evaluating a choice criteria in order to select a communications protocol for the communications request;
the layered service provider delivering the communications request either to a TCP/IP data transmission means including a TCP/IP transport service provider; or to a WAP data transmission means including a base service provider, dependent on said evaluation.
This solution advantageously enables the first computer to optimize the communication by using the most appropriate communications protocol for the communications current request.
Another aspect of the present invention relates to the problem of establishing a communication between a WAP application and a Windows® application, where the Windows® application is not adapted for communication with a WAP application.
This problem is addressed by a first computer comprising:
a first application, said first application being a Windows®-application, a WinSock Transmission Control Protocol base provider, working under
Winsock SPI, and a TCP/UDP/IP-stack, working under said WinSock Transmission Control Protocol base provider, wherein said first application comprises means for communicating by TCP/IP via said
TCP/UDP/IP-stack and said WinSock Transmission Control Protocol base provider, the first computer further comprising: a WAP data transmission means, and a protocol selector adapted to operate as an interface between said WAP data transmission means and said first application.
This solution advantageously enables communication in accordance with the WAP- protocols between said first application in the first computer unit and a second application in a second computer unit. Additional problems addressed
It is a technical problem to provide a communication where unpacking and possible decryption is not performed at any intermediate gateway.
Moreover, it is a technical problem to achieve a communication, which is not limited to the availability of gateways in the communication path for interpreting between WAP and e.g. HTTP.
It is a technical problem to achieve so-called end-to-end security via WAP with an encrypted communication which can only be unpacked by the receiver and where both the WAP-application and the Windows®-application have a possibility of mutual authentication.
Moreover, it is a technical problem to achieve, for a Windows®-application adapted to communicate via a known protocol, such as HTTP, POP3, IMAP4 or SMTP, communication via the more efficient WAP-protocol, thereby saving bandwidth.
It is a technical problem to translate between a WAP-protocol and one or several pprroottooccoollss ccoorrrreessppoonnddiinngg ttoo one or several Windows®-applications without the use of WAP-gateways or proxies.
It is a technical problem in connection with such a method, to achieve a possibility of authentication by user name and password in an efficient and secure manner.
It is a technical problem to make certain applications communicate via WAP without hindering other applications from communicating in the usual manner via TCP.
It is a technical problem to provide an opportunity to, for a computer unit which in some cases is connected to a network via a first device with a first bandwidth, such as a GSM-telephone, and in other cases connected to the network via a second device having a second bandwidth, such as via a modem and a ordinary telephone line, where the first bandwidth is narrower than the second bandwidth, enabling to provide a possibility that the connection at the narrower bandwidth is performed, using WAP-protocols, and that the connection at the wider bandwidth is according to TCP/IP.
It is a technical problem to provide several Windows®-applications being server application on the same computer unit simultaneously communicating according to WAP.
It is a technical problem to handle the difference in that a protocol over TCP/IP works with part responses whereas WAP requires complete responses.
The solution
For the purpose of providing a solution to one or several of the above problems, the present invention uses a method for communicating, via a network, using WAP- protocols between a first application in a first computer and a second application in a second computer, where the first application comprises a Windows®-application.
The first computer unit comprises a WinSock TCP-base provider, working under WinSock SPI, and a TCP/UDP/IP-stack, working under the WinSock TCP-base provider.
Moreover, the first application comprises functions for communicating using TCP/IP via the TCP/UDP/IP-stack and the WinSock TCP-base provider. According to the present invention, the first computer comprises a protocol selector and a WAP-stack, wherein the protocol selector is adapted to operate as an interface between the WAP-stack and the first application.
Moreover, in accordance with the present invention, the protocol selector operates between the WinSock SPI- and the WinSock TCP-base provider.
According to a preferred embodiment of the present invention, the first computer may comprise a WinSock UDP-base provider, which works under the WinSock SPI- and parallel with the WinSock TCP-base provider, where the TCP/UDP/IP-stack is working under the WinSock UDP-base provider. According to the present invention, the WAP-stack then works between the protocol selector and the WinSock UDP- base provider.
In this case, a connection may be achieved between the first and the second application via the TCP/UDP/IP-stack, the WinSock DP-base provider, the WAP- stack and the protocol selector.
According to another preferred embodiment of the present invention, the first computer comprises a WinSock-base provider for WAP, working under the protocol selector, parallel with the WinSock TCP-base provider, and that the WAP-stack works under the WinSock-base provider for WAP, parallel with the TCP/UDP-stack.
In this case, a connection between the first and the second application can be obtained via the WAP-stack, the WinSock-base provider for WAP and the protocol selector.
The protocol selector according to the invention has three general tasks. The protocol selector is adapted to translate between a WAP-protocol and one or several protocols corresponding to one or several applications, it is adapted to map incoming or outgoing WAP-requests or WAP-sessions to TCP-sockets, and it is adapted to be transparent for applications not communicating according to WAP.
The translating function is achieved in different manners, depending on how the first application works. In the case that the first application works according to HTTP, the protocol selector translates between WAP and HTTP according to established standardized specifications.
This enables the first application to also work according to SOAP.
In case the first application works according an E-mail protocol, such as POP3, IMAP4 or SMTP, the protocol selector according to the present invention perforais a mapping of each command and response onto one or several of the fields in a WSP- message.
For the purpose of providing a possibility of handling messages where the first application requests authentication by user name or password, the protocol selector according to the present invention reads and writes, respectively, user name and password from and to respective header fields on associated messages according to WSP.
For the purpose of providing a possibility of determining whether a socket shall communicate according to WAP or TCP/IP, the present invention provides a plurality of embodiments.
According to one possible embodiment, a first socket is set up towards one or several ports within the second computer unit, and second sockets are set up towards one or several ports, said other ports being different from said first ports, corresponding to the second computer unit, and that the protocol selector communicates according to WAP or TCP/IP in dependence on the port used. According to another possible embodiment, the first or the second computer unit is provided with a plurality of different IP-addresses, that one or several of these IP- addresses are chosen to receive WAP-requests or -sessions, and that said protocol selector communicates according to WAP or TCP/IP dependent on IP-address being used.
According to another embodiment of the present invention, the first computer unit is connected to the network via a first device having a first bandwidth, such as a GSM- telephone, and in other cases it is connected to the network via a second device having a second bandwidth, such as a modem or a telephone line, where the first bandwidth is narrower than the second bandwidth. According to this embodiment, the protocol selector reads the available bandwidth and selects to use communication according to WAP if the available bandwidth is equal to or lower than the first bandwidth, whereas a communication according to TCP/IP is used if the available bandwidth is higher than the first bandwidth.
According to the present invention, the protocol selector performs a check to determine to which one or several applications an incoming WAP-request or - session relates.
This checking procedure can consist in detecting a predetermined field within a header in an incoming message.
In case the WAP-stack is used on several ports, it is possible to use these ports for the check procedure.
In case an application is addressed by means of an URI, the determination of to which application an incoming request or session belongs is performed by identifying a unique field in the request or session relating to URI, such as the protocol-identifying field, the host-identifying field, the port-identifying field, the path-identifying field, and/or a parameter field.
The checking procedure may also consist in a detection of a predetermined WSP- method being used by said request or session and which is unique for the first application using the WSP-method.
It is moreover possible to identify the first applications by the TCP-ports to which they listen.
For the purpose of handling the fact that a WAP-application requires a complete response whereas TCP-sockets leave part responses, the present invention prescribes that, in case the first application used TCP-sockets, the protocol selector will store the part responses from the first application until a response is complete, and it will send the same to the second application as a complete response.
According to the present invention, the protocol selectors may be embodied by a WinSock LSP.
A protocol selector according to the present invention may be utilized when the second computer unit consists of a computer adapted for communication according to WAP, such as a WAP-telephone or a computer unit connected to the network via a wireless telephone.
It is also useful when the second application consists of a WAP-gateway or a WAP- server.
The present invention is also useful in case the second computer unit comprises a computer unit having the same features as the first computer, and where the second application consists of a Windows®-application. This situation allows for the first computer unit to communicate with the second computer unit via WAP if both computer units are equipped with features according to the present invention.
The network used in accordance with the present invention may be the worldwide Internet network.
Advantages
The present invention advantageously enables the establishment of a communication between a WAP-application and a Windows®-application, where unpacking and possible decryption are not made at any intermediate gateway. Hence, the present invention enables communication which is not limited by the availability of gateways in the communication path, providing interpretation between WAP and e.g. HTTP.
Moreover, the present invention advantageously provides so-called end-to-end security with an encrypted communication, which may only be unpacked by the receiver and where the WAP-application as well as the Windows®-application has a possibility of mutual authentication.
Another advantage of the invention is that it enables for Windows®-applications, normally communicating via a known protocol such as HTTP, to alternatively communicate by means of the more efficient WAP-protocol, and thereby save bandwidth.
Brief Description of the Drawings
For simple understanding of the present invention, it will be described by means of examples and with reference to the accompanying drawings, of which Figure 1 shows a system comprising a network, which may be the Internet, for interconnecting a number of computers or terminals.
Figure 2 is a general illustration of the coiTimunication between the first application program and the second application program in terms of logical connections between mutually corresponding protocol layers.
Figure 3 A illustrates one embodiment of the WAP stack according to the invention, comprising a WSP layer, a WTLS layer and a WDP layer.
Figure 3B illustrates another embodiment of the WAP stack according to the invention, comprising a WSP layer and a WDP layer.
Figure 3C illustrates yet another embodiment of the WAP stack according to the invention, comprising a WSP layer, a WTP layer and a WDP layer.
Figure 3D illustrates yet another embodiment of the WAP stack according to the invention, comprising merely a WDP layer.
Figure 4 illustrates an embodiment of a computer as shown in Figure 1, comprising an application, which may be a Winsock application.
Figure 5 illustrates mapping of command and response onto one or several of the fields of a WSP message.
Figure 6 illustrates a translation including transfer of authentication data, such as user name and password from/to header fields in messages according to WSP. Figure 7 shows schematically that a second computer makes a distinction between ports and IP addresses communicating according to WAP and ports that do notcommunicate according to WAP.
Figure 8 shows schematically different manners for a computer to connect to a network.
Figure 9 shows schematically a WAP request or session being connected to a specific first application by detecting a field corresponding to the request or session.
Figure 10 shows schematically the handling of part-answers 390 from a TCP/IP socket to a WAP application.
Figure 11 shows schematically examples of different types of second computers capable of communicating with a first computer.
Figure 12 shows schematically a computer program product and a computer readable medium.
Figure 13 is an illustration of another embodiment of a computer as shown in Figure 1.
Detailed Description of Embodiments
In the following description similar features in different embodiments will be indicated by the same or similar reference numerals.
Figure 1 shows a system 5 comprising a network 10, which may be the Internet, for interconnecting a number of computers or terminals. A first computer 20:1 is connected to the network 10 by a connection 30: 1. The connection 30:1 may, for example, comprise a cable for providing communication by the Ethernet protocol. The first computer comprises a data port 40:1 with which the connection 30: 1 can exchange data. The data port 40:1 comprises a hardware unit.
The computer 20: 1 has a user interface 50: 1 for enabling user interaction. The computer may be a personal computer, PC. The user interface may comprise a display 60:1 for displaying information to the user, a loudspeaker or an earphone 70: 1 for sound and a user input device 80: 1. The user input device may comprise a keyboard and/or a mouse. The user interface 50:1 may comprise a combined input/output device, such as a touch-sensitive display.
The user interface 50:1 enables information exchange between a user and an application layer program 90:1. The application layer program 90:1 may comprise for example an E-mail program or a browser.
In general, a computer 20:1 as illustrated by FIG. 1 may comprise a bus for communicating information, a processor coupled to the bus for processing information and a main memory coupled to the bus for storing information and instructions for the processor.
For example, the main memory may store an application program which may be transferred to the main memory from another memory such as a mass storage device also coupled to the bus. The computer 20: 1 also includes a read-only memory (ROM) coupled to the bus for storing fixed information and instructions for the processor. The mass storage device may be a conventional hard disk drive, floppy disk drive, compact disc read only memory (CD ROM) drive, or other magnetic or optical data storage device for reading and writing information.
The mass storage device is coupled to the bus for storing information and instructions for use by the processor. A second computer 20:2 is connected to the network 10 by a connection 30:2. The second computer 20:2 may comprise a user interface 50:2 similar to that of the first computer, and an application layer program 90:2.
The first application layer program 90:1 can communicate with the second application layer program 90:2 via the network 10. Such communication is achieved via communication means 100:1 in the first computer, the communication means 100:1 providing an interface between the application layer program 90:1 and the data port 40: 1. Similarly, there is a communication means 100:2 in the second computer for providing an interface between the application layer program 90:2 and the data port 40:2.
Figure 2 is a general illustration of the communication between the first application program 90:1 and the second application program 90:2 in terms of logical connections between mutually corresponding protocol layers.
The application layers 95 have a logical connection 110, enabling a data exchange between the first application program 90: 1 and the second application program 90:2. Although the actual information exchange takes place via the underlying layers, the provision of the communication means 100:1 and 100:2, respectively, (Figure 1) enables the application programs 90:1 and 90:2 to behave as if they were communicating directly with each other. In order to provide this service to the application layer, the communication means 100 includes a protocol suite comprising a plurality of protocol elements. At the lowest level, the physical layer 120, there is an exchange of bits over bearers 130. The bearers may include cables 30 communicating via Ethernet and/or wireless bit transfer via CDMA, GSM, CDPD or any other type of bit transfer. Between the physical layer 120: 1 and the application layer 95: 1 there is provided a certain set of layers depending on the requirements for that particular communications session.
According to an embodiment of the invention the communication means 100: 1 in the first computer 20:1 is adapted to select an appropriate protocol for a communications session. According to one embodiment the communication means 100 may chose between using the TCP/IP protocol suite or a WAP protocol suite.
When the application 90:1 initiates a communication, a data is sent from the application 90:1 to the communication means 100:1. The communication means 100:1 includes a protocol selector 140: 1 adapted to determine whether to communicate via the TCP/IP protocol or via the WAP protocol. According to a preferred embodiment the protocol selector 140: 1 is embodied by Winsock 2 Layered Service Provider (LSP). Winsock 2 Layered Service Provider is described in the article "Unravelling the Mysteries of Writing a Winsock 2 Layered Service Provider" by Wei Hua, Jim Ohlund, Barry Butterklee; Microsoft Systems Journal, May 1999, the contents of which is hereby incorporated by reference.
When it is determined to set up the communication via the TCP/IP protocol, the data received from the application is transparently forwarded by LSP 140:1 to means 150: 1 for transmitting data in accordance with the TCP/IP protocol. The TCP/IP data transmission means 150: 1 may include a TCP/IP transport service provider operating to provide reliable data transport for the computer 20:1 over the physical layer 120:1.
Conversely, when the LSP 140: 1 determines that it is more appropriate to communicate via the Wireless Application Protocol (WAP), the data received by LSP 140:1 from the application is routed to means 160: 1 for transmitting data in accordance with a WAP protocol. The WAP data transmission means 160:1 may include a base service provider operating to provide reliable data transport for the computer 20:1 over the physical layer 120: 1. In this connection the LSP 140:1 is adapted to translate the data between the protocol used by the application and the uppermost WAP layer utilized by the WAP data transmission means 160: 1. According to a preferred embodiment the uppermost WAP layer is the Wireless Session Protocol, WSP. The WSP is defined in Wireless Application Protocol Wireless Session Protocol WAP-203-WSP, Version 4 May 2000, the content of which is hereby incorporated by reference.
The WAP data transmission means 160:1 comprises a WAP stack 170 (Fig 4). according to an embodiment the WAP stack 170 is implemented as a base provider comprising means for implementing the actual details of a WAP protocol. Figure 3 A illustrates one embodiment of the WAP stack according to the invention, comprising a WSP layer, a WTLS layer and a WDP layer.
Figure 3B illustrates another embodiment of the WAP stack according to the invention, comprising a WSP layer and a WDP layer.
Figure 3C illustrates yet another embodiment of the WAP stack according to the invention, comprising a WSP layer, a WTP layer and a WDP layer.
Figure 3D illustrates yet another embodiment of the WAP stack according to the invention, comprising merely a WDP layer.
Figure 4 illustrates an embodiment of the computer 20:1 comprising an application 90:1, which may be a Winsock application, a Winsock 2 API 200 : 1 , a protocol selector 140:1, which may be embodied by a Winsock 2 Layered Service Provider (LSP), a TCP base provider 210:1, a TCP/UDP/IP stack 220:1, a WAP stack 170:1 and a UDP base provider 230: 1. With reference to Figures 2, 3 and 4 the LSP 140:1 is, according to an embodiment, adapted to translate information between the current application protocol used by the application 90: 1 and the WAP protocol used by the uppermost WAP layer as defined in Figure 3. The application layer may comprise several applications 90: 1, as illustrated in Fig. 4.
Hence, the LSP 140: 1 is, according to an embodiment adapted to translate between a WAP protocol and an application protocol, and to map incoming or outgoing WAP requests or WAP sessions to TCP sockets when acting on information between boxes 160: 1 and 200, whereas the LSP 140: 1 is adapted to transparently forward information between boxes 210:1 and 200 for applications 90: 1 that do not communicate using the WAP protocol.
As an example the LSP 140:1 is adapted to translate between the HTTP protocol and the WAP protocol when the application communicates according to HTTP. This translation is achieved in accordance with specifications that may be stored in a memory or storage device in the computer 20 as described above, such that the translation specifications are available for use by LSP 140: 1. The application 90: 1 may operate in accordance with SOAP.
Alternatively the application 90: 1 operates according to an Email protocol such as POP3, IMAP4 or SMTP. According embodiments of the invention the LSP 140: 1 is adapted to perform mapping of each command and each response onto one or several of the fields of a WSP message, as illustrated in Figure 5.
Figure 6 illustrates that the translation includes how to transfer authentication data, such as user name 240 and password 250 from/to header fields 260, 270 in messages 280 according to WSP. As mentioned above, the protocol selector (LSP) 140:1 is adapted to decide whether a communication is to be via TCP or WAP.
Fig. 7 shows schematically that first sockets 300 are set up towards one or several first ports 310 within the second computer unit 20:2, and that second sockets 320 are set up towards one or several ports 330, separated from the first ports 310, over the second computer unit 20:2. According to an embodiment of the invention the protocol selector 140:1 can choose to communicate according to WAP or TCP/IP in dependence of what port 31 ' that has been used. If, for example, the first ports 310 are used for WAP while the second ports 330 are used for other communications the protocol selector 140:1 will know that if the port 310' corresponding to the first ports 310, is used the communication according to WAP shall be used.
It is known that a computer can be assigned a number of different IP-addresses and therefor the same computer can be reached by different IP-addresses. According to an embodiment of the invention the first or the second computer 20: 1, 20:2 are assigned a number of different IP-addresses 341, 342, 343, 344. In the Figure IP- address 342 for the first computer and IP-address 343 for the second computer have been chosen for receiving WAP-requests or sessions. In this manner the protocol selector 140: 1 can choose to communicate according to WAP or TCP/IP dependent on the IP-address used.
The first computer unit 20:1 can, as shown in Fig. 8, in certain cases be connected to the network via a first device 350, such as a GSM-telephone, having a first bandwidth 350b. In other cases the first computer unit 20: 1" may be connected to the network 10 via a second device 360, such as a modem or a telephone connection, with a second bandwidth 360b. The first bandwidth 350b is, in this case narrower than the second bandwidth 360b. According to the present invention the protocol selector 140:1', 140:1" in the first computer reads the available bandwidth and chooses to communicate according to WAP if the available bandwidth is equal to or lower than the first bandwidth 350b. Moreover the bandwidth selector 140: 1 will choose to communicate according to TCP/IP if the available bandwidth is higher than the first bandwidth 350b.
It is possible that several applications 90:1 in parallel are communicating simultaneously from the first computer 20:1, and it is also possible that several of these applications communicate according to WAP. According to an embodiment of the present invention the protocol selector performs a checking procedure on an incoming WAP-request or session so as to determine to which one of the first applications 90: 1 that request or session relates.
According to Fig. 9 this checking procedure may consist in a detection of predetermined field 380' within a header of an incoming message 380 identifying a current first application 90: 1 among several first applications 90: 1, 90:1', 90: 1".
Again referring to Fig. 7 it is here illustrated that the WAP-stack 160: 1 is used on a number of ports 370 and that these ports are used for making the checking procedure so as to determine to which first application an incoming WAP-request or session relates.
An application may be addressed by means of an URI which may for example look as follows: http://wap.cesam.com:803/start.wml?name:=x.
This URI consists of a number of fields, where
• the first fields are a protocol identifying field which in this example contains "http",
• the second field is a value identifying field which in this example comprises " wap.cesam.com ", • the third field is a port identifying field, which in this example comprises "805",
• the fourth field is a path identifying field, which in this example comprises "/start.wml", and
• the fifth field is a parameter field, which in this example comprises "name^x".
According to an embodiment of the present invention it is also impossible for the protocol selector 140:1 to identify to which first application a certain incoming request or session relates by identifying a unique field of a URI in the request or session. Such a unique field may be the protocol identifying field, the value identifying field, the port identifying field, the path identifying field and/or a parameter field.
Different applications can use different so-called WSP-methods. Some such methods are unique for some applications. According to the present invention the checking procedure for determining to which application an incoming WAP-request or session relates can comprise detection of a certain predetermined WSP-method being used by the incoming request or session, said WSP-method being unique for the first application using this WSP-method.
The first application may also be identified by the TCP-port or TCP-ports, to which it is associated. In other modes an incoming request or session addresses a certain TCP-port and thereby also identifies a first application, which is associated with that particular port or port combination.
A problem in this connection is that applications using TCP-sockets deliver part answers on a request while an application communicating according to WAP require complete responses. Thus, in order to solve this problem, according to the present invention, and as illustrated by Fig. 10, the protocol selector 140:1 stores part- answers 390 from the first application 90: 1 until a response 400 is complete, and sends it to the second application 90:2 as a complete response 410. Hence, a protocol selector according to the invention enables communication between different types of computers in the network 10.
Fig. 11 shows that the second computer unit 20:2 can comprise a computer unit adapted for communication according to WAP such as a WAP-telephone or a computer unit connected to said network via a wireless telephone, or wireless terminal.
The second computer 20:2 can be embodied by a computer unit comprising a second application 90:2' comprising a WAP gateway or a WAP server.
Additionally it is possible for the second computer 20:2" to comprise a computer unit having the same features as the first computer 20:1, whereby the second computer 20:2" comprises a protocol selector 140:2" according to the invention and a WAP- stack 160:2".
In this case the second application 90:2" may be embodied by a Windows application and the first computer unit 20:1 can communicate with the second computer unit 20:2" via WAP.
The present invention may be used for different networks but is probably most useful where the network 10 involves the world wide Internet.
Fig. 12 illustrates that the present invention also comprises a computer program product 420 comprising computer program code 420' which, when executed by a computer unit 430, performs the functions of a protocol selector 140: 1 according to the invention, a WAP-stack 160:1 and, when applicable, the functions of a WinSock base provider for WAP. Moreover the present invention relates to a computer readable medium 440, illustrated as a diskette in Fig. 12, the computer readable medium having computer program code 420" stored thereon, said computer program code, when executed by a computer unit 430, performing the function of a protocol selector 140:1, a WAP- stack 160: 1 and, when applicable, the functions of a WinSock base provider for WAP.
Figure 13 is an illustration of another embodiment of the computer 20:1 comprising an application 90:1, which may be a Winsock application, a Winsock 2 API 200:1, a protocol selector 140: 1 , which may be embodied by a Winsock 2 Layered Service Provider (LSP), a TCP base provider 210: 1, a TCP/UDP/IP stack 220:1, a WAP stack 170':1 and a Winsock base provider for WAP 500:1. The Winsock base provider for WAP 500: 1 operates under the protocol selector 140:1. According to one embodiment the WAP stack 170':1 operates under the Winsock base provider for WAP 500: 1 in direct connection with the port 40: 1. According to an embodiment the TCP/UDP/IP stack 220:1 is coupled to one of the computer's ports 40: 1, and the WAP stack 170': 1 is coupled to another one of the computer's ports 42:1.
The invention is not limited to the above examples and the embodiments but also comprises modifications within the scope of the claims.

Claims

Claims
1. A computer-implemented method for communicating from a first application (90: 1), the method comprising:
intercepting a communications request from the application in the native protocol of the communications request with a layered service provider (140:1) above a base provider (150: 1, 160:1; 210:1, 230:1), the base provider being adapted to provide data transport between a first computer (20:1) and another computer (20:2), the first computer including said first application and said layered service provider;
the layered service provider (140: 1) evaluating a choice criteria in order to select a communications protocol for the communications request;
the layered service provider (140:1) delivering the communications request either to a TCP/IP data transmission means (150:1, 210, 220) including a TCP/IP transport service provider; or to a WAP data transmission means (160: l)including a base service provider, dependent on said evaluation.
2. The method according to claim 1, comprising the step of delivering said request transparently to the TCP/IP data transmission means (150:1, 210, 220) when the TCP/IP communications protocol is selected.
3. The method according to claim 1 or 2, comprising the step of modifying the data content of said request, and delivering the modified request to the WAP data transmission means (160: 1) when the WAP communications protocol is selected.
4. A computer program comprising software code portions for performing the steps of claim 1, 2 or 3 when said product is run on a computer.
5. A computer program product comprising a computer readable medium, having stored thereon a computer program according to claim 4.
6. A first computer (20:1) comprising: a first application (90:1),
a layered service provider (140:1) above a base provider (150: 1, 160: 1; 210:1, 230:1),
said base provider being adapted to provide data transport between a first computer (20:1) and another computer (20:2);
said layered service provider (140: 1) being adapted to evaluate a choice criteria in order to select a communications protocol for the communications request;
said layered service provider (140:1) being adapted to deliver the communications request either to a TCP/IP data transmission means (150:1, 210, 220) including a TCP/IP transport service provider, or to a WAP data transmission means (160:l)including a base service provider, dependent on said evaluation.
7. The first computer (20: 1) according to claim 6, wherein the layered service provider (140: 1) is adapted to deliver said request transparently to the TCP/IP data transmission means (150: 1, 210, 220) when the TCP/IP communications protocol is selected.
8. The first computer (20: 1) according to claim 6 or 7, wherein the layered service provider (140: 1) is adapted to modify the data content of said request, and to deliver the modified request to the WAP data transmission means (160: 1) when the WAP communications protocol is selected.
9. The first computer (20: 1) according to any of claims 6 - 8, further comprising a user interface (50: 1) for user interaction with said first application (90:1).
10. The first computer (20:1), according to any of claims 6 - 9,wherein said first application (90:1) is a Windows®-application.
11. A computer system comprising a first computer according to any of claims 6-10, and a second computer (50:2), said first and second computers being connectable to a network, such as the Internet.
12. A first computer (20) comprising:
a first application (90), said first application being a Windows®- application, a WinSock Transmission Control Protocol base provider (210), working under Winsock SPI (200), and a TCP/UDP/IP-stack (220:1), working under said WinSock Transmission Control Protocol base provider (210), wherein said first application (90) comprises means for communicating by TCP/IP via said TCP/UDP/IP-stack and said WinSock Transmission Control Protocol base provider (210:1), the first computer (20) further comprising: a WAP data transmission means (160), and a protocol selector (140) adapted to operate as an interface between said WAP data transmission means (160) and said first application (20).
13. The computer according to claim 12, wherein the WAP data transmission means (160) comprises a WAP stack (170).
14. The computer according to claim 12, wherein the WAP stack (170) is a base provider comprising means for implementing a WAP protocol.
PCT/SE2001/001440 2000-06-21 2001-06-21 Method and system for selecting transmission means Ceased WO2001099361A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2001266497A AU2001266497A1 (en) 2000-06-21 2001-06-21 Method and system for selecting transmission means

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
SE0002328A SE520287C2 (en) 2000-06-21 2000-06-21 Method of communication using WAP protocol
SE0002328-3 2000-06-21
US29622601P 2001-06-05 2001-06-05
US60/296,226 2001-06-05

Publications (1)

Publication Number Publication Date
WO2001099361A1 true WO2001099361A1 (en) 2001-12-27

Family

ID=26655152

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/SE2001/001440 Ceased WO2001099361A1 (en) 2000-06-21 2001-06-21 Method and system for selecting transmission means

Country Status (2)

Country Link
AU (1) AU2001266497A1 (en)
WO (1) WO2001099361A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006094909A1 (en) 2005-03-10 2006-09-14 International Business Machines Corporation Method for communication between an application and a client
KR101314604B1 (en) * 2006-12-14 2013-10-07 엘지전자 주식회사 Method for connecting wireless internet in mobile terminal and Mobile terminal thereof and System thereof

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0613274A2 (en) * 1993-01-29 1994-08-31 International Business Machines Corporation Socket structure for concurrent multiple protocol access
EP0751656A2 (en) * 1995-06-27 1997-01-02 Canon Kabushiki Kaisha Protocol independent and adaptive network interface
EP0942554A2 (en) * 1998-01-27 1999-09-15 Moore Products Co. Network communications system manager
WO2000049493A1 (en) * 1999-02-16 2000-08-24 Terrace Mountain Systems Inc. Generic communications protocol translator

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0613274A2 (en) * 1993-01-29 1994-08-31 International Business Machines Corporation Socket structure for concurrent multiple protocol access
EP0751656A2 (en) * 1995-06-27 1997-01-02 Canon Kabushiki Kaisha Protocol independent and adaptive network interface
EP0942554A2 (en) * 1998-01-27 1999-09-15 Moore Products Co. Network communications system manager
WO2000049493A1 (en) * 1999-02-16 2000-08-24 Terrace Mountain Systems Inc. Generic communications protocol translator

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006094909A1 (en) 2005-03-10 2006-09-14 International Business Machines Corporation Method for communication between an application and a client
US7945676B2 (en) 2005-03-10 2011-05-17 International Business Machines Corporation Processing requests transmitted using a first communication protocol directed to an application that uses a second communication protocol
US8510376B2 (en) 2005-03-10 2013-08-13 International Business Machines Corporation Processing requests transmitted using a first communication directed to an application that uses a second communication protocol
KR101314604B1 (en) * 2006-12-14 2013-10-07 엘지전자 주식회사 Method for connecting wireless internet in mobile terminal and Mobile terminal thereof and System thereof

Also Published As

Publication number Publication date
AU2001266497A1 (en) 2002-01-02

Similar Documents

Publication Publication Date Title
US6950879B2 (en) Using virtual network address information during communications
KR100393273B1 (en) An Online Data Communicating System and a Method in a Private Network
US6937604B2 (en) Device for data communications between wireless application protocol terminal and wireless application server, and method thereof
US7899047B2 (en) Virtual network with adaptive dispatcher
US7925693B2 (en) NAT access control with IPSec
EP1303096A2 (en) Virtual network with adaptive dispatcher
US20030145106A1 (en) System and method for directing wireless data packet traffic
EP0972380A1 (en) Intelligent communication server and communication system incorporating same
Groenbaek Conversion between the TCP and ISO transport protocols as a method of achieving interoperability between data communications systems
KR20050002608A (en) Network load balancing with connection manipulation
MXPA04006451A (en) TRANSPORTATION SYSTEM FOR INSTANT MESSAGING.
JP4163616B2 (en) Data packet router for mobile communication devices
CN100435127C (en) Communication system and related method providing enhanced client-server communication
JP3666654B2 (en) Internet communication method {MethodforanInternetCommunication}
US6618393B1 (en) Method and apparatus for transparent support of network protocols with header translation
EP1602034A2 (en) Communications interchange system
EP1028561B1 (en) Device for data communications between wireless application protocol terminal and wireless application server, and method thereof
WO2001099360A1 (en) A method of communication
US8416754B2 (en) Network location based processing of data communication connection requests
US6976054B1 (en) Method and system for accessing low-level resources in a network device
WO2001099361A1 (en) Method and system for selecting transmission means
US6845397B1 (en) Interface method and system for accessing inner layers of a network protocol
GB2327829A (en) Communications system with data-specific replacement protocols
JP3575369B2 (en) Access routing method and access providing system
CA2281752C (en) Communications server performing protocol conversion and communication system incorporating the same

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)

Free format text: (EXCEPT US)

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP