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.