CA2584534C - System and method for remote assembly of messages to create a control message - Google Patents

System and method for remote assembly of messages to create a control message Download PDF

Info

Publication number
CA2584534C
CA2584534C CA002584534A CA2584534A CA2584534C CA 2584534 C CA2584534 C CA 2584534C CA 002584534 A CA002584534 A CA 002584534A CA 2584534 A CA2584534 A CA 2584534A CA 2584534 C CA2584534 C CA 2584534C
Authority
CA
Canada
Prior art keywords
tuple
location
user
application
call control
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
CA002584534A
Other languages
French (fr)
Other versions
CA2584534A1 (en
Inventor
Ramiro Liscano
Sonya Fullarton
Gunter Mussbacher
Tom Gray
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitel Networks Corp
Original Assignee
Mitel Networks Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from GB0110713A external-priority patent/GB2375264B/en
Application filed by Mitel Networks Corp filed Critical Mitel Networks Corp
Publication of CA2584534A1 publication Critical patent/CA2584534A1/en
Application granted granted Critical
Publication of CA2584534C publication Critical patent/CA2584534C/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • Y02B60/50

Landscapes

  • Telephonic Communication Services (AREA)
  • Selective Calling Equipment (AREA)

Abstract

The present invention relates to a system for remote assembly of messages to create a control message, comprising a shared coordination space for assembly of messages, and a plurality of components for performing predefined actions and for exchanging messages according to a predefined ontology. The plurality of components includes a first component for directing other ones of the components to publish information on the coordination space and in response gather several distinct pieces of the information and assemble the distinct pieces as a message by which to control the actions of said the component. According to preferred embodiment, the shared coordination space is a tuple space, one of the components is call control application for controlling a communication switch, and at least one other component is a directory application containing location information.

Description

SYSTEM AND METHOD FOR REMOTE ASSEMBLY OF MESSAGES TO
CREATE A CONTROL MESSAGE

Field of the Invention The present invention relates in general to the problem of component coordination in distributed systems, and more particularly to a system for remote assembly of messages for maintaining low latency collaboration among components while conserving bandwidth, particularly in wireless systems.
Backeround of the Invention Distributed network based systems are now commonly for the provision and creation of useful applications. Components (agent, objects...) are distributed on a network and cooperate together to provide desire services. Several techniques have been proposed to provide for the interaction of these components. These techniques are characterized by unique advantages and disadvantages. This disclosure describes a new system which improves on such prior art techniques.
The existing techniques are:
1. Remote method invocation or remote procedure call
2. Remote message passing
3. Remote execution In remote procedure calls or remote method invocation, the components are aware of the detailed operation of each other and can invoke specific behavior in each other. This has the severe disadvantage of requiring that any change in any component be checked for its implications on the expectation of any component that uses its services.

Remote message passing tries to avoid this problem by removing the need for close coupling between the components. With remote method invocations, a change in the detailed operation of one object would require the examination of the operation of all objects which invoke methods on it to ensure that the expectations of these objects have not been violated. This problem may be overcome by confining all interactions to the grammar and semantics of a defined set of messages. Agents or objects can be change or new objects or agents added as long as they follow the grammar and semantics of the messages. This allows for more openness and evolvability in systems operation.

However the message passing system suffers from the disadvantage of consuming excessive bandwidth in the passing of messages between agents or objects. This can be especially true in the case of wireless applications in which the radio bandwidth is limited and the data rate is low, resulting in high cost to transfer messages and high delay for the applications depending upon them. This has led to the development of the remote execution model of mobile code or mobile agents in which a program, instead of a set of messages, is passed. The program runs at the remote location to fulfill the invoking component's request. This has the advantage in some cases of conserving scarce bandwidth and improv:ing the latency of the applications.

However the remote execution model suffers from serious problems relating to security. Extensive measures must be taken to protect such a system against malicious users who may send damaging objects or agents to it. The measures taken to deal with security concernis in such systems weigh heavily against any benefit from conserved bandwidth.
Remote message passing systems are not as severely affected by these security concerns since they do not run independently on the system but are interpreted, which removes the most severe security concern that affect mobile code.

Voice communications is one area of considerable research and development in the application of distributed systems.

Many call control features provide by communication systems require location information. For example, the initiation of a phone call, the transfer of a call, and the inclusion of a person into a conference call all require user location information. In some ,, - ,C
4 cases, it is possible that useful location information is stored in different directory services.
According to the prior art, it is impossible for a user to elect to use different directory services during a call session unless the directory services all conform to a standard API
(Application Program Interface) and the application allows a selection of different directory applications. Also, since the directory applications have access to all of the user's private directory information through a set of APIs the user is relegated to trusting that the application is only accessing location data and not accessing some other private data.

Thus, it is desirable that directory services be provided whereby location information may be obtained from any directory application within the system with only minimal changes to the directory application while respecting each user's data privacy. It is also desirable to provide a user with the option of invoking a request to communicate from a directory application rather than initiating the request from the call control application.
This can be problematic when a user wishes to leverage a corporate directory service using a wireless device and the simplest interface to that information is via a WEB
browser. In this circumstance it is impossible to rely on a single application that leverages a set of APIs to such a corporate directory. Thus, there is a need in the industry to provide a system that is capable of leveraging assertion-based call control in order to minimize the coupling between the communication assertion components and the directory application.
This need is made more pronounced by the increasing prevalence of wireless communication devices. In an open environment, services are created for users by the combining of information from multiple sources. In the example above, a user's call request is combined with location information from an external directory to create a message to command an external switch (i.e. PBX). This standard technique is difficult to implement in a wireless environment because of the low bandwidth, error-prone connection provided by wireless devices and the difficulty in providing large amounts of computing power on such devices due to power and size constraints.

. I I IY.11=

Summary of the Invention According to the present invention, a method and system are provided for addressing the above-discussed need while overcoming the limitations of the prior art.
Generally, the invention provides for assembly of information to create a control message that is implemented outside of the wireless device, thereby avoiding device and connection constraints. The technique of the present invention provides this functionality by allowing a `remote assembly' of message in a way that allows the originator to retain control over services that are assembled in creating the full service.
Generally, the system of the present invention allows a component to create an action by sending multiple messages to other components. Rather than replying to the originator over a low capacity and error prone wireless link, these other components place their response in a common coordination space. According to the preferred embodiment, the coordination space is implemented as a tuple space and the message response is implemented as a tuple space publication action. One or more of the components subscribe to collections of these responses and regard a collection as a message and in response implicitly assemble it.

One example of such an action is the sending of a message indicating that a user wishes to call a specific person who is mobile. This requires that the originator determine where the mobile person is located, by consulting a location service. It is common that the user would also require authorization to contact the mobile person in a specific way (i.e.
long distance charges etc.). Thus, the user may be required to contact an authorization service for an authorization token. In a conventional system, the originator assembles a message and forwards it to a service provider. However gathering the necessary information requires several messaging steps using the wireless link. The use of a coordination space as taught by the present invention allows the location and authorization services to place information in the coordination space and for the communication switch that executes the message to obtain the message from the space by a method of implicit
-5-assembly. More particularly, the originator sends messages to the communication switch to alert it that the process is about to begin, and to the location and authorization services to require them to post information to the coordination space. The communication switch gathers this information and puts it together with the message information that it receives from the originator to implicitly generate the message.

The `remote assembly' model according to the present invention enjoys the benefits of both the remote messaging and remote execution models without the disadvantages set forth above. The system of the present invention conserves bandwidth in the same way as the remote execution model but also maintains the security advantages of the remote messaging model. Remote assembly according to the present invention maintains the benefits of loose coupling which are provided by remote messaging and remote execution over the remote method invocation and remote procedure call models.

As discussed above, in the remote assembly model messages are not required to be created at an isolated component (e.g. accessible only over a low speed wireless link).
Instead a group of components cooperate together to assemble a message in the coordination space, thereby obviating the need to create messages in an isolated location and send them over a low speed link.

This is especially important in applications where a message has to be assembled from information that is available only from directories in the network.
Queries are sent to more than one directory and potentially large objects are retrieved from them.
These objects are processed and assembled into a message and sent over the low speed link.
According to the prior art, many traversals of the low speed link would be required to do retrieve such potentially large objects. The remote assembly method of the present invention is designed to eliminate the need for these wasteful traversals.
-6-Brief Description of the Detailed Drawings A description of a preferred embodiment of the present invention is provided herein below `Nith reference to the accompanying drawings in which:
Figure 1 is a component interaction diagram showing a system for remote assembly of messages in accordance with the present invention;

Figure 2A is legend for the use case map of Figure 2B showing interaction among the components of Figure 1;

Figure 3 is a use case map showing interaction among components according to an alternative embodiment; and Figure 4 is a component interaction diagram for the alternative embodiment of Figure 3.

Detailed Description of Preferred Embodiments Before describing the `remote assembly model' of the invention in detail, a brief description is provided herein below of several different techniques for the creation of applications among multiple components.

A very common technique is to represent each component as an object and for each of the components to provide an API of method calls by which other components can control it. A well-know difficulty of this technique relates to intimately typing the implementations of multiple components together. A change in one component's implementations needs to be analyzed in order to discover how the change impacts the implementations of other components. This has obvious implications on system stability and evolution.
-7-One solution to this problem is a prior art model of message passing in which an agreement is made on a set standard messages, which can control an application. This decouples implementations since all commonality is now contained within the agreed messages, which can be an open-ended set.

The message passing model has its own difficulties in connection with the resources required for the exchange of messages. This is particularly important in the case of wireless connections in which the links connecting components have low bandwidth and are prone to error. Indeed, the advantages gained by the message passing model in the design of the application may be lost in practice due to the complicated nature of the solutions needed to overcome the limitation of the wireless link and the cost of the physical resources required to implement these solutions.

A previous attempt to solve this problem led to the prior art `remote execution' model in which messages are built up as scripts or small programs that can be exchanged between components. These scripts execute locally on one component and use the message link only for results or absolutely vital messages. This model solves the aforementioned messaging problem, but at the expense of the privacy and stability of the system due to opening up components to external scripts and programs. To address these problems, the components must be designed to protect themselves from malicious or badly designed external scripts, and an execution environment must be provided for the components. Both of these conditions imply complex resources allocation and limited system evolution.

The `remote assembly model' provided by the present invention obtains the benefits of messaging and remote execution without the disadvantages set forth above.

The system and method of the present invention incorporates Applicant's proprietary system for synchronized distributed processing using tuple spaces as set forth in Canadian Patent Application No. 2316549 filed August 15, 2000. This prior patent -g-application describes component coordination of features using a tuple space that ensures that a request in the tuple space solicits a permission first before performing the request.
The present invention extends the principles of the prior patent applications to coordination of call control functions and location directory services.
With reference to Figure 1, when a user 1 wishes to leverage directory dialling according to the present invention, the user selects a feature key or picks up the phone (not shown) which causes call control 3 to issue a command to the communication switch 5 (i.e.
PBX). The switch 5 communicates with a shared coordination space 7 to which location information is posted by a directory application 9. After the user selects the person's location from the directory application 9 the call control 3 uses the information in coordination space 7 to complete the call. The foregoing steps are recited in greater detail below following an explanation of the operation of shared coordination space 7. Many call control functions operate using directory services that function in a similar manner as placing a call except that the user activates these options by pressing a selection key on the phone set. Some examples of these call features are call transfer, forward call, conferencing call etc.

The system according to the present invention also allows the user to rever the interaction steps by the first choosing a location from the directory 9 and then requesting the call control feature. The system of the invention operates regardless of the order of the process.

As indicated above, shared storage space 7 is used for the coordination of location-based call control features and directory applications that offer location information to those call control features. This coordination is based on a mechanism in the shared space 7 that allows the call processing application 3 to register for location data and receive any location data asserted by directory application 9. More particularly, messages generated by the applications conform to a common agreement (ontology) or common grammar that allows for exchange via matching constituent parts within the shared space 7.

w As discussed above, one example of this type of shared data coordination system is a tuple space. According to the preferred embodiment of the invention, a tuple space is implemented as the communication mechanism between the call control 3 and directory application 9 (or multiple directory applications).

The tuple space 7 is a shared data storage that uses type-value pairs (tuples) as a representation of information in that shared storage. Type value pairs are defined in the following manner: (: typel value] : type2 value2 ... ). A type can be any alphanumeric name while a value can be a string, number, or another tuple. When the value is another tuple it is prefixed by the special name Tuple as is the following example (:first Tuple (:iteml telephone)).

Assertion-based call control using tuple space 7 requires that the tuple support certain operands. The fundamental operands required for the present invention to function are out, and in operands. The out and in operands can be used to respectively retract a tuple from and assert a tuple to the shared space 7.

Requests from call control 3 are synchronized with location data by defining a particular type that corresponds to location data (e.g. loc-data). Similarly, the data type is defined as a string. In particular, the Uniform Resource Identifier (URI) format is adopted for flexibility and to support different communication protocols being developed for IP
telephony. Also since the conununication switch 5 generally handles several hundred sessions an identifier is added to the tuples in order to associate the location data to a particular request from call control 3. In order to keep applications independent of each other, a user identifier is adopted rather than a session identifier created by the invocation of the call feature. It is therefore necessary for the user 1 to register with the call control application 3 before requesting location-based feature and selecting location information from the directory service 9. It is not relevant to the invention how the applications obtain the user identification. Users may use identification cards or be logged into a computer ,.,~, using a particular user name. Alternatively, the information may be stored as a cookie when a WEB interface is used. In the situation where both the call control 3 and directory application 9 reside on the same device a device identifier can be used to replace the user identifier.
In Figure 1, the telephony switch 5 supports location-based features referred to herein as LCFs (Location Call Features). These location features require a location parameter in order to perform their respective actions. The following set of steps defines the procedure for synchronizing call control request with location data using assertion-based call control according to the present invention.

Step 1: User 1 requests the use of a location-based feature from the call control application 3.

Step 2: The call control application 3 obtains the caller identification from the OS or prompts the user I and sends the request and user ID to switch 5. The call control application 3 can simply be an interface to the switch 5 (e.g. presented to the user 1 through the phone or a WEB page interface, etc.) Step 3: The switch 5 registers the request for location data by issuing an out (: userlD USER : loc-data ?loc) request to the tuple space 7.

Step 4: The user 1 launches the directory application 9 and selects the location information from the directory.

Step 5: After instructing the directory application 9 to place the data into the tuple space 7, the application augments this information with the user identification. An exemplary tuple is : userlD USER: loc-data 5555.

,,,.r M

Step 6: The request from switch 5 (:userlD USER : loc-data ?loc) matches with the incoming data (: userlD USER: loc-data 5555) resulting in execution by the switch 5 of the appropriate location-based call feature requested by the user 1.

The foregoing interaction among the components in Figure 1 can also be represented as a Use Case Map as shown in Figure 2B, where Figure 2A is a legend explaining the use case map symbols. In this representation, the call control 3 and directory application 9 are shown as applications that execute in a client browser and leverage the use of scripting languages to communicate with the tuple space 7.
The use case map is more comprehensive than the component interaction diagram of Figure 1 in that it can represent all possible user scenarios within the system. For example, there are two possible start points in the Use Case map (UCM): one from the directory application 9 and the other from the call control application (as indicated in the legend below, start points in UCMs are denoted as black dots). In Figure 1, the user 1 is shown interacting with the call control application 3 before requesting location data. However, as shown in Figure 2B it is possible to reverse the procedure and post the location data into the tuple space 7 before issuing the LCF.

The intuitive nature of Use Case Maps (UCMs) permits simple following of the paths defined in the diagrams to trace all possible scenarios. In order to facilitate the understanding of the UCM, the following legend defines the symbols used by the UCM notation of Figure 2B.

A first alternative embodiment of the present invention involves movement of the responsibility for communicating with the tuple space 7 from the communication switch 5 to the call control application 3. The preferred embodiment of Figures 1 and 2 is best suited for implementation on simple devices that have limited computing capability as well as on wireless devices wherein it is desirable to limit the size of the communication messages on the network. According to the IN

alternative embodiment illustrated in Figures 3 and 4, the call control 3 and directory applications 9 reside on the same device and there is no need to require a user identification type.

The following set of steps refers to Figure 4 and demonstrates the procedure for synchronizing call control requests with location data in the situation where the call control application 3 interacts with the tuple space 7 rather than the communication switch 7.

Step 1: User 1 request the use of a location-based feature from the call control application 3.

Step 2: The call control application 3 registers the request for location data by issuing an out (: loc-data ?loc) request to the tuple space 7. This may be a blocking or non-blocking operation. In the same operation the call control application 3 notifies the user I that it is waiting for location data.

Step 3: The user 1 launches an application that contains location information and is able to communicate with existing tuple space 7 (e.g. directory application 9 having the ability to communicate with the tuple space 7).
Step 4: After the user 1 selects the location information from the directory 9 and instructs the directory application 9 to place data into the tuple space 7, the directory application 9 then issues a in (: loc-data 5555) request that has the effect of placing into the tuple space 7 the tuple (: loc-data 5555).

Step 5: The (: loc-data ?loc) request matches with incoming (: loc-data 5555) data resulting in a response or event being sent to the call control application 3 with the specific tuple that matches the request. At the same time the (:
loc-data 5555) tuple is withdrawn from the tuple space 7.

, ,,,,~

N n Step 6: The call control application 3 now has sufficient data to proceed with the LCF request to the switch 5.

In summary, a method is provided for facilitating the development of location-based applications that leverage call control 3 without needing to know all of the feature access codes for the different location-based call control features available on the switch 5. This approach also allows one directory application to service a multitude of location-based call control features and conversely several directory applications can be used for a single call control entity 3.

It will be appreciated that, although embodiments of the invention have been described and illustrated in detail, various changes and modifications may be made. This invention can be applied to other communication features that required additional data other thian location data. In other words the tuples can be expanded to manage more information than location data. This information includes, for example, user authentication data or account information to complete a transaction. For these types of data, privacy and security are more relevant than for location information and require that the users have greater control over the type of information they are releasing to an application. Other forms of data may include resource identifiers that a particular communications feature can leverage. For example, the volume of a handset may be controlled using several different applications that can place their data type and data into a common tuple space. This would allow for user preferences to be received from applications other than the conventional phone set user interface.
All of the forgoing changes and modifications may be made without departing from the sphere and scope of the invention as defined by the claims appended herein.

, , õ õr

Claims (2)

What is Claimed is:
1. A method of synchronizing a call control request to a communication switch with location data from a directory application using a tuple space, comprising:

user initiation of a request for use of a location-based feature from a call control application;

receiving caller identification at said call control application and in response sending said request for use of a location-based feature and caller identification to said communication switch;

registering said request for use of a location-based feature at said communication switch by publishing an anti-tuple to said tuple space that includes said caller identification;

user selection of said location data from said directory application;

publishing a tuple to said tuple space that includes said location data from said directory application and said caller identification;

matching said tuple with said anti-tuple within said tuple space; and assembling a control message based on said caller identification and said location data, causing said communication switch to execute the location-based feature requested by the user.
2. A method of synchronizing a call control request to a communication switch with location data from a directory application using a tuple space, comprising:

user initiation of a request for use of a location-based feature from a call control application;

registering said request for use of a location-based feature by publishing an anti-tuple to said tuple space;

user selection of said location data from said directory application;

publishing a tuple to said tuple space that includes said location data from said directory application;

matching said tuple with said anti-tuple within said tuple space; and assembling a control message based on said request and said location data, causing said communication switch to execute the location-based feature requested by the user.
CA002584534A 2001-05-02 2002-04-30 System and method for remote assembly of messages to create a control message Expired - Lifetime CA2584534C (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB0110713.5 2001-05-02
GB0110713A GB2375264B (en) 2001-05-02 2001-05-02 Remote assembly of messages for distributed applications
CA002384066A CA2384066C (en) 2001-05-02 2002-04-30 Remote assembly of messages for distributed applications

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CA002384066A Division CA2384066C (en) 2001-05-02 2002-04-30 Remote assembly of messages for distributed applications

Publications (2)

Publication Number Publication Date
CA2584534A1 CA2584534A1 (en) 2002-11-02
CA2584534C true CA2584534C (en) 2009-10-06

Family

ID=38229493

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002584534A Expired - Lifetime CA2584534C (en) 2001-05-02 2002-04-30 System and method for remote assembly of messages to create a control message

Country Status (1)

Country Link
CA (1) CA2584534C (en)

Also Published As

Publication number Publication date
CA2584534A1 (en) 2002-11-02

Similar Documents

Publication Publication Date Title
CA2384066C (en) Remote assembly of messages for distributed applications
US9479400B2 (en) Servlet API and method for XMPP protocol
EP1941696B1 (en) Service chaining
US8291077B2 (en) Provision of services over a common delivery platform such as a mobile telephony network
EP1111505A1 (en) Architecture for executing applications in a data communications environment
US9294867B2 (en) Provision of services over a common delivery platform such as a mobile telephony network
JP2005515716A (en) Communication application server for converged communication services
CN112583628A (en) Method and system for calling core network capability
US9952888B2 (en) Method and system to dynamically instantiate virtual repository for any services
WO2014176991A1 (en) Multimedia service processing apparatus, method and system
WO2003017619A1 (en) A secure gateway with proxy service capability servers for service level agreement checking
GB2422221A (en) Provision of services over a common delivery platform such as a mobile telephony network
CA2584534C (en) System and method for remote assembly of messages to create a control message
US20060190539A1 (en) Provision of services over a common delivery platform such as a mobile telephony network
CN104753774A (en) Distributed enterprise integrated access gateway
CN100389584C (en) A security capability negotiation method for application server
WO2003001739A1 (en) A method of intelligent network management through opening interface in service management point (smp)
KR100629018B1 (en) The legacy interface system and operating method for enterprise wireless application service
CN107277864A (en) Reorientation method, service provider, unstructured supplementary data traffic center and system
KR20050043021A (en) Mobile terminal having session initiation protocol/instant messaging and presence service dynamic linking library on wireless internet platform
US20050136957A1 (en) Mobile connection broker
GB2422219A (en) A software development system
TWI248750B (en) Portable prepaid mediator (PPMD)
KR20230141743A (en) SYSTEM AND METHOD FOR ENABLING LEGAL INTERCEPTION MANAGEMENT (LIM) INTEGRATION
RU2001118029A (en) SYSTEM FOR CARRYING OUT NON-CASH FINANCIAL OPERATIONS

Legal Events

Date Code Title Description
EEER Examination request
MKEX Expiry

Effective date: 20220502