WO2000048351A2 - Packet redirector - Google Patents
Packet redirector Download PDFInfo
- Publication number
- WO2000048351A2 WO2000048351A2 PCT/EP2000/001052 EP0001052W WO0048351A2 WO 2000048351 A2 WO2000048351 A2 WO 2000048351A2 EP 0001052 W EP0001052 W EP 0001052W WO 0048351 A2 WO0048351 A2 WO 0048351A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- message
- director
- handset
- server
- client
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/04—Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/564—Enhancement of application control based on intercepted application data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72403—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
- H04M1/72409—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by interfacing with external accessories
- H04M1/72412—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by interfacing with external accessories using two-way short-range wireless interfaces
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1036—Load balancing of requests to servers for services different from user content provisioning, e.g. load balancing across domain name servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M2250/00—Details of telephonic subscriber devices
- H04M2250/02—Details of telephonic subscriber devices including a Bluetooth interface
Definitions
- the present invention relates to the routing of messages from a client to one of a plurality or servers and the routing of a reply message back from the server to the client. It particularly relates to the adaptation of messages to achieve this routing.
- the functions of an electronic device can be created by defining clients and servers.
- the servers offer a service or set of services of a resource.
- the clients access the services by sending request messages to the appropriate server.
- the result of the access is then returned to the client as a reply message.
- the device may however have a plurality of similar resources which provide similar services. These duplicate services may be mutually independent with only one of the plurality being appropriate at any one time. Each of the duplicate resources will have an associated server.
- a routing means is therefore needed to route a request message for a service from an originating client to an appropriate one of a plurality of duplicate servers and to route a reply message from the appropriate server to the originating client.
- Such routing means are known. However, they are complex and have memories for associating a message identifier with the originating client. The identifier is sent in the message to the appropriate resource and is returned in the reply message. The memory is then accessed to identify the originating client to which the reply should be directed.
- a director for routing a message from a client to a chosen one of a plurality of servers to access a resource and for routing the response of the resource from the chosen server to the client wherein each message has an indication of its origin, an indication of its destination and a message body, comprising: first input means for receiving a first input message from the client, indicating its source as the client and its destination as the routing means; first output means for providing a first output message to the chosen server, indicating its source as the client and its destination as the chosen server; second input means for receiving a second input message from the chosen server in response to the first output message, indicating its source as the chosen server and its destination as the routing means and having as an addition, an indication identifying the client; and second output means for providing a second output message to the one client in response to the second input message, indicating its source as the routing means and its destination as the one client; said director being arranged to route input messages as output messages, creating the first output message by adapting the indication of destination of the
- the director interfaces with the client as if it were the server of the resource providing the service requested by the client as opposed to an intermediary between the client and server. Furthermore, the director does not store information, such as a routing table, associating the client with a message or a server.
- the director prefferably route the message received by reformatting them. In particular by reformatting their indications of origin and destination and, if necessary, editing the message by removing the addition.
- the director may be arranged to adapt second input messages having a predetermined format different to that of the first input messages and also different to the format of the output messages.
- the format for the second input message may differ by having the addition appended to it.
- the client prefferably uses a symbolic resource address identifying the service required.
- the symbolic address identifies the director as the controller of access to the servers providing that service.
- a radio handset may comprise the director and processor means including memory, for performing the functions of the handset by communicating between clients and servers.
- the client, server and director are each an entity and in particular are objects being specialisations of the same base class. Some of the entities may be within the handset, others may be within an ancillary device.
- the radio handset may also comprise: an interface coupled to the processor means for coupling to the ancillary device and communicating therewith to enhance the functions of the handset; and routing means, coupled to the processor means, and arranged to provide for communication between an entity in the handset and an entity in the ancillary device by enabling the creation of a proxy entity in the handset for transaction with the entity in the handset, the creation of a proxy entity in the ancillary device for transaction with the entity in the ancillary device and communication between the handset and ancillary device through the interface.
- the interface may include a radio transceiver.
- the routing means in the handset may be arranged to associate each entity within the handset with a task and to provide for communication between an originating entity in an originating task and a destination entity in a destination task by using one or more intra-task transactions and, if necessary, inter-task communication, each transaction involving two entities associated with the same task, said routing means being arranged to provide for communication between an originating entity and a destination entity by enabling, if the originating and destination tasks are the same, the transaction of the originating entity and the destination entity and by enabling, if the originating and destination tasks are different, the creation of a proxy entity in the originating task for transaction with the originating entity, the creation of a proxy entity in the destination task for transaction with the destination entity and communication between the originating and destination tasks via the interface, if necessary
- the client may be arranged to request a service using a symbolic address identifying the service.
- the routing means is then arranged to determine from the symbolic address if the service is provided within the handset or the originating task.
- the service may be provided by the director, which operates as a server to the client.
- Figures 1 and 2 illustrate a radio handset and ancillary device
- Figure 3 illustrate the division of a phone's features between a handset and ancillary device
- Figure 4 illustrates the connectivity layer
- Figures 5a and 5b illustrate symbolic routing tables
- Figure 6 schematically illustrates the tasks within the handset and the ancillary device
- Figure 7 illustrates the application object and server object
- FIG. 8 illustrates inter-task message delivery
- Figure 9 illustrates the proxy object
- Figures 10a and 10b illustrate inter-task message delivery
- Figure 11a illustrates routing of messages by a director
- Figure 11 b illustrates the reformatting of messages
- Figure 12 illustrates the director, and directed server objects
- Figures 13a and 13b illustrates message routing within a single task.
- Figures 1 and 2 illustrate a hand-portable radio communications device, henceforth referred to as a terminal or radio handset 2.
- the terminal 2 is small enough to be carried by hand and is preferably sized to fit into a pocket of a jacket.
- the terminal communicates with other terminals or devices using radio waves.
- the terminal 2 has a user interface comprising, for input, a keypad 24 having keys 24a and a microphone 20 and, for output, a speaker 18 and a display
- the size of keypad 24 and display 14 are necessarily limited by the size of the terminal 2.
- the terminal 2 is controlled by controller 4 and is powered by battery 26.
- the controller 4 receives signals from the microphone 20 and the keypad 24 and provides signals to the display 14 and the speaker 18.
- the terminal 2 has an interface 34 and a transceiver 3, which are used to communicate outside the terminal 2.
- the interface 34 is connected to the controller via bus 32.
- the interface may include a transceiver for radio or infra red communication and/or a port for direct electrical connection.
- the transceiver 3 is a radio frequency transceiver connected to an antenna 28 and controller 4. It is arranged to communicate via a radio frequency interface 30.
- the transceiver 3 includes a modulator 8 for modulating signals received from the controller 4 and a transmitter 6 which presents the modulated signals to the antenna 28.
- the transceiver 3 also includes a receiver 12 which processes signals received at the antenna 28 and provides them to a demodulator 10 which provides demodulated signals to the controller 4.
- the terminal 2 has a RAM memory 16 which is connected to the controller 4 via a bus.
- the terminal also has a SIM memory 22 connected to the controller 4 which provides information allowing the terminal 2 to function as a mobile phone. When functioning as a mobile phone, the terminal 2 transmits and receives radio frequency signals via the antenna 28.
- the terminal 2 is connected to an interface 42 of an accessory device 40 via the interface 34.
- the connection 36 between the interface 34 and interface 42 may be achieved in a number of ways.
- radio waves could be used.
- One suitable radio communication protocol is the wireless applications protocol (WAP) described in "WAP Architecture Version 30 April 1998". This requires the interface 34 to comprise a WAP stack and a radio transceiver and the interface 42 to likewise comprise a WAP stack and radio transceiver.
- WAP wireless applications protocol
- Another suitable protocol is the Bluetooth protocol described in co-pending UK Patent Application No 9820859.8, the contents of which are hereby incorporated by reference, which requires the interface 34 and interface 42 to include low power RF transceivers.
- a single accessory device 40 is shown in figures 1 and 2, the terminal 2 could make simultaneous connection with a plurality of such accessory devices.
- the transceiver 4/antenna 28 and the interface 34 are shown separately, they may be integrated.
- the fundamental functions of the terminal 2 are provided by the combination of the controller 4 and the memory 16.
- the accessory device 40 may be accessed by the controller 4 via the bus 32 and interface 34 and thus enhance the functionality of the terminal 2.
- the terminal 2 has a number of fundamental capabilities including system capabilities relating to its radio communication abilities (whether it involves the WAP, Bluetooth, GSM, AMPS or other communication protocols) and other capabilities which allow the terminal to provide the features of a database, a personal organiser, a word processor or a web browser.
- the fundamental capabilities are integrated together in a coherent way to provide the terminal's features.
- the phone's fundamental capabilities are organised in logical groups as resources. Each resource is accessed through a "server". The server encapsulates the resource to provide an interface through which the resource is accessed. "Applications” access resources through the servers and link them together with logic to provide the terminal's features. The applications and resources are connected via a connectivity layer (CL)
- FIG 3 illustrates the divisions of the functions of a terminal 2 which is operating as a phone.
- the phone illustratively has a call server 50 which encapsulates the phone's capabilities to make and receive telephone calls, an SMS server 52 which encapsulates the phone's capabilities of making and receiving short message service (SMS) messages and a phone book server #2 54 which encapsulates a database associating names and telephone numbers.
- the phone has a name search application 56 which can be used to search for a name within the phone book database served by the phone book server #2 54 and a speed dial application 58 which can be used to make a call via the call server 50.
- the accessory device 40 has a phone book server #1 62, encapsulating a database associating phone numbers and names, and a text message application 64 for creating and editing text messages.
- the servers 50, 52 and 54 and applications 56 and 58 within the phone are connected to each other and to the server 62 and application 64 in the accessory device via the connectivity layer 70.
- the connectivity layer 70 via the interfaces 34 and 42 and the connection 36 provides for communication between the terminal 2 and the accessory device 40.
- the text message application 64 may be utilised via the phone and used to access the SMS server 52, in addition, the name search application 56 may access the phone book in the accessory device via the phonebook server #1 62 in the accessory device 40.
- the controller 4 in the terminal 2 is typically a micro processor which is controlled by code. Within a terminal there may be a number of simultaneous functions which need to be carried out by the controller in parallel. However the controller may only be able to carry out one piece of code at a time and will have to task these functions. Tasking in this context means that the controller allocates its processing resources in a cyclic manner. That is it sequentially spends a short period of time on each task in an ordered series of tasks and then repeats the sequence. Tasks are therefore time division multiplexed but are logically distinct. Consequently over the course of several sequences the tasks necessary to perform a function are carried out. Using tasks allows the processing load on the controller to be balanced. An application is a piece of code which runs on the controller 4.
- the application is defined in the memory as an object.
- the memory 16 is used in the terminal 2.
- This object has an object address allowing it to be addressed in the memory and is a specialisation of a Connectivity Layer (CL) base class.
- the application uses the services of one or more servers to build features and can present these features to the user.
- a server encapsulates a resource with a standard interface. It is an object stored in memory.
- the memory 16 is used in the terminal 2.
- the object has an object address allowing it to be addressed in the memory and is a specialisation of the Connectivity Layer (CL) base class.
- CL Connectivity Layer
- Each server provides a service by controlling a resource or other server. It provides a standard interface to a resource which can be accessed only via the connectivity layer 70.
- the connectivity layer 70 is illustrated in more detail in figure 4.
- the connectivity layer is a combination of communication managers (CM) 80 and message protocol 82.
- CM communication managers
- a single communications manager controls each task.
- the CM 80 transmits messages between objects within a task (intra-task messages) using transactions involving the source object of the message and the destination object of the message.
- the message protocol 82 controls the routing of messages between tasks (inter-task messages).
- the inter-task communication may take any one of a number of forms of communication such as WAP, Bluetooth or a bus to another device or to another task.
- Each communications manager has a symbolic routing table.
- the symbolic routing table contains an entry for each object (each application and server), that the communications manager 80 interconnects to define its task, the local task.
- Each of the servers connected to the communications manager 80 has its object address associated with the symbolic address identifying the service provided by the resource it encapsulates.
- the reference numbers used in Figure 3 are illustratively used as object addresses.
- the communications manager 80 can use the symbolic routing table to identify from a symbolic address provided by an application, whether the server associated with that symbolic address is within the local task and to provide the associated object address to the application. If the service requested by an application is not within the local task, the communications manager 80 passes control to the message protocol 82.
- the message protocol 82 sends the request from the original communications manager to the communications manager which is interconnected to the appropriate server. Any suitable protocol may be used to send these extra-task messages. Communication between tasks is asynchronous.
- the communications manager queues intra-task messages. It handles extra- task messages such as those which need to go outside its local task and those received from outside its local task.
- the communications manager processes one message at a time and it is preferred for the communications manager to clear intra-task messages before servicing received extra-task messages.
- the connectivity layer 70 hides the physical location of a resource behind a standard interface.
- the CL provides an indirect message routing mechanism which allows applications to use symbolic addressing to access an appropriate server and the resource it encapsulates by sending a request message.
- the CL allows the server to return the results of the access to the appropriate application by sending a reply message.
- Applications can access resources without knowing or caring where the resource or server which controls the resource is implemented. The resource may therefore be within the terminal 2 or the accessory device 40.
- the application needs to know only the symbolic address of a resource and the protocol for interfacing with the connectivity layer to be able to access and use it.
- Figure 6 illustrates the terminal 2, connection 36 and the accessory device 40 previously described in relation to figures 1 and 2.
- This drawing is schematic illustrating how the tasks 90, and 90 2 of the accessory device and the tasks 90 3 , 90 4 and 90 5 of the terminal are interconnected via the connectivity layer 70.
- a task may be considered to comprise applications and servers linked by a communications manager.
- the CM which is itself within the task defines, using the symbolic routing table, the objects (i.e. applications and servers) within the task it controls.
- the CM, and objects in a task are stored in "local" portions of the memory. Pointers can be used within this local memory to point to objects within the same task. Pointers should not be used to point from one task to another task as this may cause conflict between tasks and the use of the term "pointer" should be understood in this light.
- the message protocol 82 interconnects each of the communication managers 80.
- Figure 6 is illustrative of the independence of the different tasks 90,.
- the task boundaries are illustrated by dotted lines and the task boundaries do not overlap.
- Each task 90 has an associated communications manager 80; which is in two-way communication with the message protocol 82.
- the task also includes a number of objects 100. These objects may be applications 102 or servers 104.
- the servers encapsulate a resource 106.
- An object within a task cannot directly communicate with another object, it can only communicate with the task's communications manager 80.
- the communications manager 80 effectively de-couples the applications from the services/resources they require.
- the application need only request the desired service from the communications manager 80 which then facilitates access to the necessary resource.
- This resource may be within the same task as the application or may be in another task within the same device or within a different device but linked to the original task via the message protocol 82.
- the destination server receives a request from the communications manager 80 within its own task and responds to that communications manager 80 the communications manager 80 ensures that the response is routed back to the correct application.
- Figure 7 illustrates the object orientated encapsulation in the communication manager 80.
- a base or abstract class 110 henceforth referred to as the connectivity later (CL) class has three portions: the name 112, attributes 114 and functions 116.
- the abstract CL class has two specialisations 120 and 130.
- the specialisation 120 represents an application object 102.
- the specialisation 120 has a name 122, attributes 124 (empty) and functions 126.
- the specialisation 130 represents a server object and has name 132, attributes 134 (empty) and functions 136.
- the specialisations 120 and 130 have a single function 126, the RECVMESSAGE function.
- the specialisations themselves have no attributes.
- a specialisation of an abstract class uses the attributes 114 and functions 116 of the abstract CL class 110.
- the abstract CL class 110 includes as attributes an object address and a symbolic resource address.
- the functions of the abstract CL class 110 include the SENDREQUEST function and SENDRESPONSE function. All objects of the abstract CL class 110 therefore share the same attributes 114 and functions 118.
- the application object 102 additionally has a RECVMESSAGE function 126.
- the server object 104 additionally has a RECVMESSAGE function 136. An object can only invoke a function in (transact with) another object of the same task.
- a first object can request services from a resource encapsulated by a second object (server). This is achieved by sending a message to the other server and receiving a reply message therefrom.
- the transactions in the CM 80 is as follows. The CM 80 operates differently if the second object is not within the local task.
- the process of intra-task communication is illustrated in figure 8.
- the communications manager 80 mediates communication between an application 102 and the server 104 encapsulating a response 106.
- the application and server are within the same task 90.
- the application wishes to access a service. It is aware of the service it requires and the symbolic address of this service. It is not aware of the object address of the server which provides this service.
- the application provides the symbolic address to the communications manager 80 and receives as a reply a pointer to the appropriate server *SERV.
- the communications manager uses its symbolic routing table to perform this function.
- the application has an object address APP and a pointer to the application is designated * APP.
- the server has an object address SERV and a pointer to the server object is designated *SERV.
- the application sends a message
- This function takes as its arguments a pointer to the originating first object (i.e. the first object's address), a pointer to the second destination object (i.e. the second object's address) and a pointer to the message body defining the service required.
- the communication manager queues the message and then send it onwards towards the server by calling the function
- the RECVMESSAGE function has as its arguments *APP, * SERV and * MSG.
- the RECVMESSAGE function takes as its arguments a pointer to the first originating object (i.e. the first object's address), a pointer to the second destination object (i.e. the second object address) and a pointer to the body of the message.
- the server receives the message and processes it accessing the resource 106. It then sends a reply message (RMSG) towards the application. This is achieved by calling the function SENDRESPONSE in the application object 102.
- This function has as arguments * SERV, * APP and a pointer to the reply message RMSG, * RMSG.
- the communications manager 80 places this message on its internal queue.
- the reply message RMSG is then sent to the application by calling the function RECVMESSAGE in the application object.
- the RECVMESSAGE function has as its arguments * SERV, * APP and * RMSG. Thus the application receives the reply message.
- a first object communicates with a second object 62 via the communications manager 80 by sending messages.
- These messages are particular types of messages involving one or more transactions.
- Intra-task messages are initiated by the object from which the message originates calling a function in (transacting with) the object to which the message is directed.
- the function includes a pointer to the originating object, a pointer to the destination object and a pointer to the body of the message.
- the message, the first object and the second object are all within a local memory space allocated to a single local task by the CM 80. In this way, message delivery within a task is completely isolated from the message delivery in other tasks.
- the destination object does not lie within the same local task.
- This problem is addressed by creating a proxy object within the same local task as the originating object and a proxy object in the same local task as the destination object.
- the proxy objects in the originating task looks to the originating object as if it is the destination object and transacts with the originating object.
- the proxy objects in the destination task looks to the destination object as if it is the originating object and transacts with the destination object.
- the proxy objects encapsulates the mechanism by which messages are sent between tasks. Consequently, a first object in a first task can send a message to a second object in a second task by transacting with a proxy object in the first task. The proxy object thereafter takes care of the communication from the first to second task through the message protocol 82.
- Figure 9 illustrates the object orientated encapsulation in the communications manager 80 including the specialisation 140 representing the connectivity layer (CL) proxy.
- the specialisation 140 represents a proxy object 108.
- the specialisation 140 has a name 142, attributes 144 (empty) and functions 146.
- the specialisation 140 has two functions; the SEND REQUEST function and the SEND RESPONSE function.
- the effects of calling the SEND REQUEST function and SEND RESPONSE function in the CL proxy object are different to the effects caused when calling the SEND REQUEST or SEND RESPONSE functions in the application or server objects.
- the proxy object represents an object executing in another task, it is never the final destination for a message, but an interface between tasks.
- the process of inter-task communication is illustrated in Figures 10a and 10b.
- the connectivity layer comprising the communications manager 80 of the originating task, the communications manager 80 of the destination task and the inter linking message protocol 82, mediates communication between an application 102 in the originating task and a server 104 encapsulating a resource 106 in the destination task.
- the application 102 wishes to access a service.
- the application provides the symbolic address of the desired resource to the communications manager 80 of the originating task.
- the communications manager 80 is unable to find an associated object address in its routing table as the symbolic address relates to a service provided in another task. It is therefore aware that the desired service lies outside the task it controls.
- the communications manager creates a proxy server and returns a pointer *P_SERV pointing to the proxy server object to the application 102.
- the communications manager 80 in the originating task also creates a temporary entry in its resource routing table associating the symbolic resource address received with the object address P_SERV of the proxy server created. This temporary entry is flagged as a proxy.
- the application 102 on receiving the pointer to the proxy server calls the SENDREQUEST function in the proxy server.
- the SENDREQUEST function has as its arguments a pointer * APP pointing to the application 102, a pointer *P_SERV pointing to the proxy server and a pointer *MSG pointing to the body of the message being sent.
- the communications manager 80 responds to the calling of SENDREQUEST in the proxy server by accessing the message protocol 82 in the connectivity layer 70.
- the message protocol 82 transfers a message from the originating task to the destination task across the task boundary.
- the extra-task message sent includes the address APP of the originating application 102, the symbolic resource address associated with the pointer *P_SERV and the address of the message being sent.
- the communications manager 80 in the destination task receives the message sent across the task boundary. From the symbolic resource address contained therein, it realises that the service required is within the task it controls.
- the communications manager 80 therefore creates a proxy object 109 having an address P_OBJ.
- the communications manager 80 accesses its symbolic routing table to obtain the object address SERV associated with the symbolic resource address.
- the communications manager 80 then makes an association between the application address APP received in the message across the task boundary and the address of the created proxy object 109.
- the association preferably makes the address of the proxy object the same as the address APP.
- the communications manager 80 allocates the portion of memory containing the message MSG and pointed to by the pointer *MSG to its own task.
- the communications manager 80 then calls the RECVMESSAGE function in the server 104.
- the RECVMESSAGE function has as its arguments the pointer * P_OBJ pointing to the proxy object 109, the pointer *SERV pointing to the server 104, and the pointer *MSG pointing to the message body now within the destination task. Consequently the arguments of the RECVMESSAGE function are pointers within the destination task only.
- the transaction does not cross the task boundary.
- the server receives the MSG and processes it accessing the resource 106. It then sends a reply message (RMSG) back towards the origin of the request.
- the reply message is sent by calling the function SENDRESPONSE in the proxy object 109.
- This function has as arguments *SERV, * P_OBJ, and *RMSG which is a pointer to the body of the reply message.
- the function SENDRESPONSE in the proxy object defines implicitly that a message sent by calling it is intended for another task.
- the communications manager 80 then sends the reply message from its task back to the originating task across the task boundary via the message protocol 82.
- the communications manager uses its symbolic routing table to replace the address of the server 104 (SERV) with the symbolic resource address and it uses the association it previously created between the address of the proxy object 109 and the address of the application 102 to send in the message across the task boundary, the symbolic address, the application address APP, and the address of the reply message RMSG.
- the communications manager 80 then releases the proxy object 109, removes the association between the proxy object address and the originating application address APP and de-allocates the portion of the memory which held the message MSG.
- the communications manager in the originating task 18 receives the extra- task message from the destination task via the message protocol 82.
- the communications manager 80 allocates the portion of the memory 16 holding the message RMSG to the task it controls. It uses the association it previously made between the symbolic resource address contained in the received message from the destination task with the address of the proxy server 108 to call the SENDRESPONSE function in the application 102.
- This function takes as its arguments *P_SERV pointing to the proxy server, *APP pointing to the application 102 and * RMSG pointing to the reply message now part of the same task. It will be appreciated that all the arguments of the function SENDRESPONSE are pointers within the originating task.
- the transaction does not cross the task boundary.
- the application 102 receives the reply message RMSG.
- the communications manager 80 releases the proxy server 108, removes the association of the address of the proxy server and the symbolic resource address from its symbolic routing table and de-allocates the portion of the memory 16 holding the message RMSG.
- a server offers a set of services to any application and can be inside or outside the terminal 2.
- the connectivity layer directs requests from applications to the appropriate server.
- the default server for a certain resource is the server to which the connectivity layer directs all requests for that resource.
- the combination of terminal and ancillary device, or the terminal itself, may contain two or more similar resources i.e. resources providing the same service identified by the same symbolic resource address.
- Each of the similar resources has a server.
- a terminal 2 operating as a multi-mode phone will have two types of resources for making and receiving calls and duplicate servers one for each resource.
- a first duplicate server accesses a first cellular/cordless system and a second duplicate server accesses a second cellular/.cordless system.
- the cellular system may be for GSM, AMPS, UMTS etc.
- the cordless system may be DECT.
- the phone may have cellular/cellular dual modes or cellular/cordless dual modes.
- the director defines which of the duplicate servers is the default server at any one time.
- the director may be one of the duplicate servers or may be a completely different entity.
- the director is a router which routes the request to the correct resource and returns any reply from the resource to the originating application that made the request.
- FIG 11a illustrates how a message is routed.
- Two separate applications APP1 152 and APP2 154 are illustrated. Each can make requests to access the resources of duplicate servers SERV1 156 and SERV2 158.
- the request message 160 is made to a director 150, which arbitrates which of the duplicate servers is the default server.
- the director 150 sends the request message 162 to the default duplicate server, SERV1 156 in this example.
- the server SERV1 156 performs its function and returns a reply message 164 to the director 150.
- the director 150 in response, provides the reply message 166 to the application APP1 152.
- the director 150 receives input signals 151 which are used to control the arbitration process. Thus depending upon the signal 151 , the signal 160 or a combination of both signals, the director chooses which of servers SERV1 and SERV2 to route the message to as message 162.
- Each of the messages 160, 162, 164 and 166 identify the origin and destination of the particular message.
- the message 160 identifies the originating application APP1 152 as the origin and identifies the director 150 as the destination.
- the director modifies the message 160 to produce the message 162.
- the message is reformatted so that the message 162 identifies the default server as the destination. The identification of the origin is not changed.
- the default server knows it is a directed server and that it can only receive messages from the director.
- the reply message 164 produced by the server SERV1 156 identifies the default server SERV1 as the origin and the director 150 as the destination.
- the reply message in addition identifies the originating application. This may be achieved by using a format in which the address of the originating application APP1 152 is appended to the end of the message 164.
- the director modifies the reply message 164 received from the default duplicate server SERV1 156.
- the message is reformatted.
- the appendix to message 164 is removed, the director 150 is identified as the origin and the originating application APP1 152 is identified as the destination.
- the modified reply message is sent to the originating application as message 166.
- Figure 11 b is a table illustrating the defined origin and the defined destination of each of the different messages 160, 162, 164 and 166 and whether a message has an additional address appended to it.
- Figure 12 illustrates how a director 150 and directed servers 156 and 158 can be implemented using an object oriented encapsulation of the connectivity layer.
- the base class 110 and the actual server specialisation 130 have been previously described with reference to Figure 7.
- the Director is an object formed as a specialisation 170 of the base class 110. It has as its attributes 174 a list of all the directed servers. It has as its functions 174 the functions SENDRESPONSE, SENDRESPONSE and RECVMESSAGE.
- the directed server is an object formed as a specialisation 190 of the base class 180 which is itself a specialisation of the base class 110. Neither the specialisation 180 or its specialisation 190 have attributes.
- the specialisation 180 has as functions, SENDREQUEST and SENDRESPONSE.
- the specialisation 190 representing the directed server has as a function, RECVMESSAGE.
- Figures 13a and 13b illustrates how the messages 160, 162, 164 and 166 are transferred by one object calling a function of another object.
- the application APP1 requests a service by sending a symbolic resource address identifying the service required to the communication manager of the application's task. Assuming the director is in the same task, the communications manager returns a pointer *DIR pointing to the director object by accessing its symbolic routing table. Otherwise a proxy will be created as previously described.
- the application APP1 calls the function SENDREQUEST in the director object.
- This function has as its arguments: *APP pointing to the origin of the message, the application APP1 ; * DIR pointing to the destination of the message, the director; and *MSG pointing to the body of the message sent.
- the director performs its arbitration process and determines which of the duplicate servers it controls is the default server, in this instance, the server SERV1.
- the director calls the SENDREQUEST function in the object SERV1.
- This function has as its arguments: * APP pointing to the effective origin of the message, the application APP1 ; *SERV1 pointing to the destination of the message, the server SERV1 ; and *MSG pointing to the body of the message sent.
- the message is queued in the communications manager, which then calls the function RECEIVEMESSAGE in the object SERV1.
- This function has as its arguments: *APP pointing to the effective origin of the message, the application APP1 ; *SERV1 pointing to the destination of the message, the server SERV1 ; and *MSG pointing to the body of the message sent.
- the server SERV1 performs its function and sends a reply message back towards the original application by calling the function SENDRESPONSE in the director object (see Figure 13b).
- This function has as its arguments: *SERV1 pointing to the origin of the message, the server SERV1 ; * DIR pointing to the destination of the message, the director; and * RMSG pointing to the body of the reply message being sent.
- the reply message includes a pointer to the originating application *APP.
- the reply message is queued in the communications manager, which then calls the function RECEIVEMESSAGE in the director object.
- This function has as its arguments: * SERV1 pointing to the origin of the message, the server SERV1 ; *DIR pointing to the destination of the message, the director; and *RMSG pointing to the body of the reply message.
- the director processes the message. It calls the function SENDRESPONSE in the application object APP1.
- This function has as its arguments: *DIR pointing to the origin of the message, the director; *APP1 pointing to the destination of the message, the application APP1 ; and * RMSG pointing to the body of the reply message.
- the message is queued by the communications manager, which then calls the function RECEIVEMESSAGE in the application APP1.
- This function has as its arguments: *DIR pointing to the origin of the message, the director; *APP1 pointing to the destination of the message, the application APP1 ; and *RMSG pointing to the body of the reply message.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
- Telephonic Communication Services (AREA)
- Medicines Containing Material From Animals Or Micro-Organisms (AREA)
- Peptides Or Proteins (AREA)
- Use Of Switch Circuits For Exchanges And Methods Of Control Of Multiplex Exchanges (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
Description
Claims
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000599168A JP2002537684A (en) | 1999-02-12 | 2000-02-10 | routing |
AT00907532T ATE246422T1 (en) | 1999-02-12 | 2000-02-10 | PACKAGE DIVERSION DEVICE |
US09/913,273 US6959185B1 (en) | 1999-02-12 | 2000-02-10 | Routing |
AU29091/00A AU2909100A (en) | 1999-02-12 | 2000-02-10 | Routing |
EP00907532A EP1173946B1 (en) | 1999-02-12 | 2000-02-10 | Packet redirector |
DE60004197T DE60004197T2 (en) | 1999-02-12 | 2000-02-10 | PACKETUMLEITEINRICHTUNG |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9903262.5 | 1999-02-12 | ||
GB9903262A GB2346766A (en) | 1999-02-12 | 1999-02-12 | Routing messages between a client and a selected server |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2000048351A2 true WO2000048351A2 (en) | 2000-08-17 |
WO2000048351A3 WO2000048351A3 (en) | 2001-11-08 |
Family
ID=10847689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP2000/001052 WO2000048351A2 (en) | 1999-02-12 | 2000-02-10 | Packet redirector |
Country Status (10)
Country | Link |
---|---|
US (1) | US6959185B1 (en) |
EP (1) | EP1173946B1 (en) |
JP (1) | JP2002537684A (en) |
KR (1) | KR100705439B1 (en) |
CN (1) | CN1197321C (en) |
AT (1) | ATE246422T1 (en) |
AU (1) | AU2909100A (en) |
DE (1) | DE60004197T2 (en) |
GB (1) | GB2346766A (en) |
WO (1) | WO2000048351A2 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6842772B1 (en) | 2000-03-14 | 2005-01-11 | Envoy World Wide, Inc | Application program interface for message routing and management system |
US6970535B2 (en) | 2001-04-25 | 2005-11-29 | Envoy Worldwide, Inc. | Wireless messaging system to multiple recipients |
US6999565B1 (en) | 2000-02-01 | 2006-02-14 | Envoyworldwide, Inc. | Multi-mode message routing and management |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8516047B2 (en) | 2000-11-06 | 2013-08-20 | Rick Castanho | System and method for service specific notification |
US6931463B2 (en) | 2001-09-11 | 2005-08-16 | International Business Machines Corporation | Portable companion device only functioning when a wireless link established between the companion device and an electronic device and providing processed data to the electronic device |
US7454195B2 (en) | 2001-11-16 | 2008-11-18 | At&T Mobility Ii, Llc | System for the centralized storage of wireless customer information |
US8660537B2 (en) * | 2001-11-16 | 2014-02-25 | At&T Mobility Ii Llc | System for the storage and retrieval of messages |
US7870202B2 (en) * | 2004-12-03 | 2011-01-11 | Clairmail Inc. | Apparatus for executing an application function using a smart card and methods therefor |
US7870201B2 (en) * | 2004-12-03 | 2011-01-11 | Clairmail Inc. | Apparatus for executing an application function using a mail link and methods therefor |
US7844674B2 (en) * | 2004-12-03 | 2010-11-30 | Clairmail Inc. | Architecture for general purpose trusted personal access system and methods therefor |
CA2627534A1 (en) * | 2005-11-15 | 2007-05-24 | Clairmail, Inc. | Application access utilizing a message link |
WO2009023258A2 (en) * | 2007-08-15 | 2009-02-19 | Clairmail, Inc. | Machine-implemented system and method for providing timed targeted promotional offers to individual payment account users with feedback |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1994028486A1 (en) * | 1993-05-21 | 1994-12-08 | Candle Distributed Solutions, Inc. | Method of selecting a server object to service a client object request within a network environment |
US5774660A (en) * | 1996-08-05 | 1998-06-30 | Resonate, Inc. | World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network |
GB2327829A (en) * | 1997-07-30 | 1999-02-03 | Ibm | Communications system with data-specific replacement protocols |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1123154C (en) * | 1996-12-09 | 2003-10-01 | 摩托罗拉公司 | System, device and method for routine selection dhcp configuration agreement packets |
US6253061B1 (en) * | 1997-09-19 | 2001-06-26 | Richard J. Helferich | Systems and methods for delivering information to a transmitting and receiving device |
US6230004B1 (en) * | 1997-12-01 | 2001-05-08 | Telefonaktiebolaget Lm Ericsson | Remote procedure calls using short message service |
GB2341963B (en) | 1998-09-24 | 2003-07-02 | Nokia Mobile Phones Ltd | Paging |
-
1999
- 1999-02-12 GB GB9903262A patent/GB2346766A/en not_active Withdrawn
-
2000
- 2000-02-10 WO PCT/EP2000/001052 patent/WO2000048351A2/en active IP Right Grant
- 2000-02-10 CN CNB008061327A patent/CN1197321C/en not_active Expired - Fee Related
- 2000-02-10 JP JP2000599168A patent/JP2002537684A/en not_active Ceased
- 2000-02-10 AU AU29091/00A patent/AU2909100A/en not_active Abandoned
- 2000-02-10 US US09/913,273 patent/US6959185B1/en not_active Expired - Fee Related
- 2000-02-10 AT AT00907532T patent/ATE246422T1/en not_active IP Right Cessation
- 2000-02-10 DE DE60004197T patent/DE60004197T2/en not_active Expired - Fee Related
- 2000-02-10 EP EP00907532A patent/EP1173946B1/en not_active Expired - Lifetime
- 2000-02-10 KR KR1020017009955A patent/KR100705439B1/en not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1994028486A1 (en) * | 1993-05-21 | 1994-12-08 | Candle Distributed Solutions, Inc. | Method of selecting a server object to service a client object request within a network environment |
US5774660A (en) * | 1996-08-05 | 1998-06-30 | Resonate, Inc. | World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network |
GB2327829A (en) * | 1997-07-30 | 1999-02-03 | Ibm | Communications system with data-specific replacement protocols |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6999565B1 (en) | 2000-02-01 | 2006-02-14 | Envoyworldwide, Inc. | Multi-mode message routing and management |
US7609821B2 (en) | 2000-02-01 | 2009-10-27 | Varolii Corporation | Multi-mode message routing and management |
US6842772B1 (en) | 2000-03-14 | 2005-01-11 | Envoy World Wide, Inc | Application program interface for message routing and management system |
US6970535B2 (en) | 2001-04-25 | 2005-11-29 | Envoy Worldwide, Inc. | Wireless messaging system to multiple recipients |
Also Published As
Publication number | Publication date |
---|---|
WO2000048351A3 (en) | 2001-11-08 |
KR20010111257A (en) | 2001-12-17 |
GB2346766A (en) | 2000-08-16 |
CN1197321C (en) | 2005-04-13 |
DE60004197D1 (en) | 2003-09-04 |
CN1352847A (en) | 2002-06-05 |
AU2909100A (en) | 2000-08-29 |
US6959185B1 (en) | 2005-10-25 |
ATE246422T1 (en) | 2003-08-15 |
GB9903262D0 (en) | 1999-04-07 |
EP1173946B1 (en) | 2003-07-30 |
JP2002537684A (en) | 2002-11-05 |
KR100705439B1 (en) | 2007-04-09 |
EP1173946A2 (en) | 2002-01-23 |
DE60004197T2 (en) | 2004-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1111505A1 (en) | Architecture for executing applications in a data communications environment | |
EP1173946B1 (en) | Packet redirector | |
KR100731151B1 (en) | Radio handset | |
JP2002330474A (en) | Method for handling call received at wireless mobile terminal comprising short-range interface, corresponding wireless mobile terminal and computer program | |
JP2004501587A (en) | Method and on-board microchip system for processing and transmitting data over a mobile telephone network | |
WO2003034762A1 (en) | A system, device and computer readable medium for providing a managed wireless network using short-range radio signals | |
EP1416353B1 (en) | Communication device, program and recording media | |
WO2006051858A1 (en) | Mobile telephone and file sharing method thereof | |
JP2011508464A (en) | Wireless communication device, universal IC card, and related method and communication device | |
WO2008086899A1 (en) | Methods for accessing a phone-based web server with a private ip address and related electronic devices and computer program products | |
JPH11355861A (en) | Method for applying parameters processing to display of radio communication mobile set in cooperation with subscriber identification module | |
KR100652161B1 (en) | A radio handset | |
KR100369899B1 (en) | Method and System for Automatical Identification of Bluetooth-Embedded Devices | |
WO2001041398A1 (en) | Accessing ad hoc bluetooth devices from a java application | |
CN113115400B (en) | Communication method and device | |
JP2004537886A (en) | Service application architecture for integrated network service providers | |
EP0966137B1 (en) | Method and apparatus for updating data in an electrical device | |
JP2003516653A (en) | Use of SIM tool between network and mobile phone | |
CN117278509A (en) | Rich media message interaction method, client, cloud equipment and communication system | |
CN114697928A (en) | Data communication method and communication terminal | |
CN107925699A (en) | For the communication terminal of multiple phone number services and the data separation display methods of the communication terminal | |
KR20050066093A (en) | Method for managing personal information of the mobile communication terminal |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 00806132.7 Country of ref document: CN |
|
AK | Designated states |
Kind code of ref document: A2 Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM 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 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: A2 Designated state(s): GH GM KE LS MW 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 BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2000907532 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1020017009955 Country of ref document: KR |
|
ENP | Entry into the national phase |
Ref document number: 2000 599168 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 09913273 Country of ref document: US |
|
AK | Designated states |
Kind code of ref document: A3 Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM 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 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: A3 Designated state(s): GH GM KE LS MW 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 BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
WWP | Wipo information: published in national office |
Ref document number: 1020017009955 Country of ref document: KR |
|
WWP | Wipo information: published in national office |
Ref document number: 2000907532 Country of ref document: EP |
|
WWG | Wipo information: grant in national office |
Ref document number: 2000907532 Country of ref document: EP |
|
WWG | Wipo information: grant in national office |
Ref document number: 1020017009955 Country of ref document: KR |