Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
DISTRIBUTED SYSTEM ARCHITECTURE
Document Type and Number:
WIPO Patent Application WO/2003/027872
Kind Code:
A2
Abstract:
A distributed system architecture comprising at least one agent wherein the or each agent has a predefined function and wherein the or each may input and/or output at least one of a plurality of data types and a wiring layer which defines at least one interaction with an agent and which defines the or each data type exchanged in the or each interaction. The system architecture may be implemented in a telecommunciations system.

Inventors:
WOOD IAN (GB)
Application Number:
PCT/GB2002/004301
Publication Date:
April 03, 2003
Filing Date:
September 23, 2002
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
EMPOWER INTERACTIVE GROUP LTD (GB)
WOOD IAN (GB)
International Classes:
H04M17/00; H04M17/02; H04W4/14; H04W88/18; H04W4/12; H04W24/04; H04W92/02; (IPC1-7): G06F15/16
Domestic Patent References:
WO2001058186A12001-08-09
WO1997036434A11997-10-02
Foreign References:
US6282579B12001-08-28
EP0723236A21996-07-24
EP1016989A22000-07-05
Other References:
MARTINI G ET AL: "Distributed architecture for applications based on the GSM short message service" SERVICES IN DISTRIBUTED AND NETWORKED ENVIRONMENTS, 1995., SECOND INTERNATIONAL WORKSHOP ON WHISTLER, BC, CANADA 5-6 JUNE 1995, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC,5 June 1995 (1995-06-05), pages 140-145, XP010148054 ISBN: 0-8186-7092-4
Attorney, Agent or Firm:
Kazi, Ilya (Mathys & Squire 100 Grays Inn Road London WC1X 8AL, GB)
Download PDF:
Claims:
Claims :
1. A system comprising: at least one agent wherein the or each agent has a predefined function and wherein the or each agent may input and/or output at least one of a plurality of data types; a wiring layer which defines at least one interaction with an agent and which defines the or each data type exchanged in the or each interaction.
2. A system according to Claim 1 further comprising at least one memory space comprising at least one portion of memory space, wherein the or each portion of memory space accepts at least one predefined data type.
3. A system according to any preceding claim wherein the wiring layer comprises : means for predefining the at least one input and/or output data type for the or each agent; means forpredefining theatleastone_data type accepted by the or each portion of memory space; means for predefining at least one interaction between agents and/or at least one interaction between at least one agent and at least one portion of. memory space.
4. A system according to any preceding claim wherein the at least one agent is able to perform at least one of a read, a write or a take function on the data stored in the at least one portion of memory space.
5. A system according to any preceding claim wherein the wiring may define more than one destination to which an agent may output data.
6. A system according to Claim 5 wherein the destination to which the agent outputs the data is selected according to at least one property of the data processed by the agent.
7. A system according to any preceding claim wherein the wiring layer defines, at a particular time, more than one set of interactions between agents, and/or between at least one agent and at least one portion of memory space, through which a given task may be performed.
8. A system according to Claim 7 wherein only one predefined set of interactions between components is used to perform a given task at any one time, but wherein the wiring layer may switch between the sets of interactions without affecting the operation of the system.
9. A system according to Claim 8 wherein the wiring layer, having switched from using a first set of interactions to using a second set of interactions to perform a given task, switches back to using the first set of interactions if the secondsetof interactions fails.
10. A system according to any preceding claim wherein the system is used to control an SMS messaging system within a mobile telecommunications network.
11. Apparatus comprising a network of interconnected components wherein communication between the components takes the form of messages sent between the interconnected components and characterised in that: each interconnected component broadcasts outgoing messages to a plurality of the other interconnected components; each interconnected component monitors a plurality of the messages broadcast onto the network and accepts any relevant messages.
12. Apparatus according to Claim 11 wherein outgoing messages are broadcast from each interconnected component to all of the other interconnected components.
13. Apparatus according to Claim 11 or Claim 12 wherein each interconnected component monitors all of the messages broadcast onto the network.
14. Apparatus according to any of Claims 11 to 13 wherein the network of interconnected components comprises at least one of : means for storing location information for elements in å telecommunications network; switching means for transmitting messages between applications and the telecommunications network; means for providing an external control interface for the apparatus.
15. Apparatus according to any of Claims 11 to 14 wherein the interconnected components are connected across a network separate to the telecommunications network. ..
16. Apparatus according to any of Claims 11 to 15 wherein the outgoing messages are broadcast repeatedly until an acknowledgement message is received.
17. Apparatus according to any of Claims 11 to 16 wherein each of the interconnected components monitors the status of the other components over the separate network.
18. Apparatus according to any of Claims 11 to 17 wherein the relevance of messages broadcast to the network is determined by each interconnected component according to at least one predetermined condition.
19. Apparatus according to Claim 18 wherein the at least one predetermined condition includes the type of data contained within the message.
20. Apparatus according to any of Claims 14 to 19 wherein the external control interface obtains information regarding a new connection between an application and the interconnected components and further broadcasts this information to the network of interconnected components.
Description:
Distributed System Architecture The present invention relates to the field of system architecture design. The invention relates particularly to the field of telecommunication systems and, in one embodiment, relates particularly to the field of Short Message Service (SMS) messaging systems in a mobile telecommunications network.

The architecture of prior art SMS messaging systems is designed around the large-scale hardware components that constitute the telecommunications network.

Hardware or software failure at a particular point in the network reduces operational capacity and may result in loss or delay of messages. Upgrades of the system are performed by adding large hardware components to the system, which are often expensive, and loss of service may be experienced throughout the upgrade period.

In addition, inefficiencies result from the need to introduce large and expensive items of equipment to upgrade the system, since periods of under-capacity in the system before the upgrade are often followed by periods of over-capacity when the new hardware is added. Software upgrades may also lead to loss of service as the software of each component on the network must be upgraded individually. To avoid loss of service in the network due to component failure, some prior art systems incorporate hardware and software redundancy. However, this gives only limited protection against component failure and requires expensive equipment to provide hardware redundancy and to back up network data.

Loosely coupled distributed system architectures provide a more flexible solution for networks of components and have been implemented for both large-scale and small-scale computing systems, for example, for computers communicating over a local network. A loosely coupled distributed architecture allows system processing and operation to take place across a plurality of components in the system and may allow transparent access to shared system resources. Hardware and software components can be selected dynamically to perform a particular task and software upgrades can be performed for all components of the system simultaneously, by the addition of new processes or software components. Since any software component

can run on any hardware in the network, hardware and software redundancies are both easily implemented without the need to purchase large amounts of extra equipment. However, dynamically defining the hardware and software to be used for each task may cause unnecessary delay in performing that task. This may become a particular problem if the system is designed to perform a small number of tasks repeatedly. In addition, although it adds flexibility to the system, dynamic distribution of tasks may also lead to instability in a large distributed network.

One embodiment of the present invention aims to provide a system architecture that is highly scalable and flexible, and that is also robust. The system may have particular application to telecommunication systems and to SMS messaging systems.

According to one embodiment, the system could be implemented using a distributed software architecture. Individual software elements, or agents, each performing a single simple task, may be controlled by a management system, or wiring. The wiring ensures that the correct agents are connected to allow the system to perform the tasks that comprise its functionality. New agents can be introduced to the system by the wiring and agents that are not functioning can also be removed or replaced.

This allows the system configuration to be upgraded in a live environment since any new agents that are introduced and that do not function appropriately cause the wiring to roll the system configuration back to the last known good configuration, minimising disruption. This live configuration mechanism, and the software redundancy, ensure that the system retains full functionality even if some of the agents fail.

A further advantage of this embodiment of the invention, using distributed software and hardware technologies, is that they can provide just-in-time scalability. As demand for the system grows, new hardware components can quickly be added to follow the growth in demand. This provides an advantage over conventional systems, which must add large hardware components and reconfigure software to incorporate the changes. This leads to periods of over-utilisation of the system,

before the new hardware is added, followed by periods of under-utilisation when the new hardware has been added but demand has not yet grown to utilise the hardware to its full potential.

According to a first aspect, there is provided a system comprising at least one agent wherein the or each agent has a predefined function and wherein the or each agent may input and/or output at least one of a plurality of data types and a wiring layer which defines at least one interaction with an agent and which defines the or each data type exchanged in the or each interaction.

Using the wiring layer to define the data types used by the at least one agent may provide flexibility in the coding of the system. For example, the data type used by a particular group of agents may be changed more easily at the wiring layer than by re-coding each agent individually.

Preferably, there is also provided at least one memory space comprising at least one portion of memory space wherein the or each portion of memory space accepts at least one predefined data type.

Preferably, the wiring layer comprises: means for predefining the at least one input and/or output data type for the or each agent; means for predefining the at least one data type accepted by the or each portion of memory space; means for predefining at least one interaction between agents and/or at least one interaction between at least one agent and at least one portion of memory space.

Predefining, during initialisation of the system, some or all of the interactions necessary for the system to operate may provide a more reliable, stable and more efficient system than those disclosed in the prior art. The long system initialisation period which may be necessary to set up the predefined interactions may be justified by the increased stability and efficiency of the operational system. Once the interactions within the system are defined, the operational system may be capable of processing messages more quickly than a standard distributed operating system,

since it is not necessary, in this embodiment, to define, in real-time, the interactions required to process each message. This may be particularly advantageous in a system such as an SMS messaging system which may be required to operate continuously for long periods of time after the initialisation period.

A further preferable feature is that the at least one agent is able to perform at least one of a read, a write or a take function on the data stored in the at least one portion of memory space.

The wiring may define more than one destination to which an agent may output data. The output destination may be selected according to at least one property of the data processed by the agent. This may allow different types of data to be processed in different ways by a particular agent.

Preferably, the wiring layer defines, at a particular time, more than one set of interactions between agents, and/or between at least one agent and at least one portion of memory space, through which a given task may be performed. This may allow redundancy to be introduced into the system so that tasks may still be performed even if some of the agents or portions of memory space, or a particular predefined set of interactions, fail.

More preferably, only one predefined set of interactions is used to perform a given task at any one time, but the wiring layer may switch between the sets of interactions without affecting the operation of the system. This may allow the wiring layer to perform load balancing between the sets of interactions or to select the set of interactions used to perform a particular task.

According to a further preferable feature, the wiring layer is arranged such that, if switching from using a first set of interactions to using a second set of interactions to perform a given task is unsuccessful, the wiring switches back to using the first set of interactions. This may provide a failure recovery mechanism by which the system may return to full functionality if the second set of interactions fails.

Preferably, the system is used to control an SMS messaging system within a mobile telecommunications network.

A second, apparatus, aspect comprises a network of interconnected components wherein communication between the components takes the form of messages sent between the interconnected components and characterised in that: each interconnected component broadcasts outgoing messages to a plurality of the other interconnected components and each interconnected component monitors the plurality of the messages broadcast onto the network and accepts any relevant messages. The processing of only relevant messages by system components may increase the efficiency of the system by reducing the number of messages processed by each network component. Broadcasting outgoing messages to a plurality, optionally all, of the interconnected components of the system may allow any component, or a plurality of components, in the distributed network to intercept and process the information contained within the message. It may also simplify the message-sending process, since messages may be broadcast to the network in general rather than to individual components.

Preferably, the network of interconnected components comprises at least one of : means for storing location information for elements in a telecommunications network, switching means for transmitting messages between applications and the telecommunications network and means for providing an external control interface for the apparatus.

Preferably, the interconnected components are connected across a network separate to the telecommunications network. This may reduce the load on the SS7 layer of the telecommunications network and facilitate fast and reliable communication between the interconnected components.

Preferably, the outgoing messages are broadcast repeatedly until an acknowledgement message is received. This feature may be used to ensure that each outgoing message is received by at least one component on the network.

According to a further preferable feature, each of the interconnected components monitors the status of the other components over the separate network. This may allow the components to ensure that they only send data over the network to components that are functioning, and may allow the function of any failed network component to be implemented efficiently by the remaining network components.

Preferably, the relevance of messages broadcast to the network is determined by each interconnected component according to at least one predetermined condition.

More preferably, the at least one predetermined condition includes the type of data contained within the message. This may allow, for example, location registers to identify and process only messages containing information regarding the location or availability of applications connected to the network.

Preferably, the external control interface means obtains information regarding any new connection between an application and the interconnected components and further broadcasts this information to the network of interconnected components.

Hence the external control interface may provide a mechanism by which the network, and its external connections, may be updated and modified.

One embodiment of the present invention will now be described with reference to the Figures in which: Fig. 1 is a schematic overview of a prior art system with a loosely coupled distributed architecture.

Fig. 2 is a schematic overview of one implementation of the system architecture of the present invention.

Fig. 3 is a schematic overview of one embodiment of the present invention in which the loosely coupled architecture is applied to a system which controls an SMS messaging system.

In prior art loosely coupled distributed architecture models, independent processes

50,52 perform specific tasks and share a common memory space 54, which may comprise queues 56 to which they may write and from which they may read or take data. Processes 50,52 (which may be simple functions or entire programs) may be called by users of the system, or a sequence of processes, which together perform a series of operations on a set of data, may be invoked by an external control program. In this prior art system, connections between processes, which allow the output of one process to form the input for a second process, may be implemented dynamically by a higher level control flow system when the series of processes is invoked.

In one embodiment of the present invention, the loosely coupled distributed architecture of the system consists of three main components: agents, message stores (or memory spaces) and the wiring layer. The three components and their operation will now be described with reference to Fig. 2.

In this embodiment, the agents, 20,22, 24,26, and 28, are autonomous entities, each designed and programmed to perform a specific function. The functions performed by the agents 20,22, 24,26, 28 may aid the processing of SMS messages in an SMS messaging system, for example, one agent 20 may parse a message for its destination address and send this information to another agent 22, 24,26, 28 for further processing.

The function of the agent 20,22, 24,26, 28 may involve"taking"or"reading"input data from a queue of data, which may be within a memory space 30,32, 34, processing the data in a predefined manner and outputting the processed data.

"Reading"data from a queue is distinct from"taking"data from a queue since, in reading data, an agent 20,22, 24,26, 28 does not remove the data from the queue.

A plurality of agents 20,22, 24,26, 28 may"read"the same data from a queue, but data that is"taken"from a queue is then not available for other agents to use.

Agents 20,22, 24,26, 28 may output data to other agents 20,22, 24,26, 28, pr may "write"the data to a queue in the message stores, as defined by the wiring.

The output destination of an agent 20,22, 24,26, 28 may be strictly defined by the wiring 10, or it may be defined conditionally, for example, the destination may be dependent on the outcome of the processing performed by the agent, or on the data type produced or processed by the agent. This may allow data to be output by an agent to one of a plurality of destinations depending on, for example, the results of the processing performed by the agent on the data, or the data type contained within the message. This may be used, for example, to output different data to different queues according to a priority assigned to the data.- The system may also include memory spaces, or message stores 30,32, 34. In this embodiment, the message stores 30,32, 34 receive and store only predetermined data types, which may be SMS messages. They may further allow stored data to be read or to be output from the store, particularly by the agents 20,22, 24,26, 28.

Message stores 30,32, 34 may comprise queues, as described above, in which data may be stored for processing by the agents. The queues may operate on a first-in-first-out (FIFO) basis, or the data may be organised in another manner, for example, the data may be prioritised according to at least one predetermined condition.

The wiring layer 10 is the external control flow mechanism of the system. In this embodiment, it connects together the agents 20,22, 24,26, 28 and the memory spaces 30,32, 34, statically and strictly defining the interactions between the components of the system. Interactions defined by the wiring layer 10 may allow the processing of messages within the system. The wiring may perform periodic checks for consistency within the system to ensure, for example, that agents or portions of memory are not sent the incorrect type of data.

Unlike prior art distributed system implementations, the interactions between system components, in this embodiment, are statically predefined by the external control flow system and not dynamically compiled when a process is invoked. The interactions may be defined during initialisation of the system. Redundancy may be introduced into the system by predefining a plurality of interactions, each of which

performs the same function, so that a process may be carried out even if some of the interaction paths fail. The processing throughput of the system may also be increased by allowing a plurality of sets of interactions to perform the same task on the incoming data. The incoming data may be split evenly between the sets of interactions, or a particular set of interactions may be selected for a particular set of incoming data based on predetermined conditions, such as the availability and geographical proximity of the hardware upon which the agents are running, or the priority assigned to the incoming data.

In this embodiment, it is possible to modify the interactions between system components without affecting the operation of the system, hence allowing live configuration updates and the introduction of new processes or agents. However, in this embodiment, this is not a dynamic procedure. It may be achieved by simultaneously defining two sets of interactions between system components, each set being designed to perform the same function. A new agent, and so new functionality, may be introduced into the system by being incorporated into the new, second set of predefined interactions. The upgrade is performed when the control -flow system switches-from using the first set of interactions to using the second set, which may contain a new agent. Continuity of service may be ensured by the fact that the control flow system can switch back to the first set of interactions if the second set of interactions fails to operate satisfactorily.

During the system initialisation process, the control flow system, or wiring layer 10, defines the input and output data types for the system components and the interactions between them. The wiring also allocates portions of the memory spaces 30, 32, 34 for particular types of data. The pre-prepared portions of memory are then ready for immediate use by the system when it starts to operate. Predefining the interactions and allocating memory blocks may necessitate a long system initialisation period, but the resulting system is both static and stable from the beginning of its operating period.

One embodiment of the system may provide the further feature of platforms 40,42.

Platforms may provide an interface between the wiring 10 and the agents 20,22, 24, 26,28 and memory spaces 30,32, 34.

The application of the loosely coupled distributed architecture to a particular system will now be described with reference to Fig. 3. In this embodiment, the architecture is applied to components of an SMS messaging network, which are interconnected over a network separate to the mobile telecommunications SS7 network 72, for example over an IP network 70. In an SMS messaging system, such network components may include switching means 86,88 for transferring messages between components, and files 82,84 containing location information for mobile devices orfor applications connected to the mobile telecommunications network 72.

In this embodiment, the individual components each monitor the status of the other components on the IP network 70, for example by using the"ping"command. The network components may communicate by broadcasting messages to other components on the network 70. In this embodiment, messages may be broadcast simultaneously to all components on the network 70, rather than being sent to particular components in response to requests for information. Each component may monitor the messages broadcast to the network and use or store any relevant information contained within them. For example, a location register file 82,84 may broadcast a message to the IP network 70 when an application contained within its file listings becomes available to receive SMS messages. The switching components of the network 86,88 may store this information in order to determine later which location register file 82,84 to consult for the location of that application.

In this embodiment, the system further incorporates a service node 80, which may contain a database of system information, such as a list of applications connected to the system and a list of switching means available to deliver messages to the applications. The service node 80 may allow external control of the system, for example to add new SMS messaging applications. Information added into the database may be broadcast to all components in the network, as described above, so that new applications may be incorporated into the location information files 82, 84.

In one embodiment, the service node 80 may be used to modify and/or control the wiring 10, which was described above, and so the service node 80 may be used to control and modify the operation of the systems. Agents 20,22, 24,26, 28 and memory spaces 30,32, 34 may be distributed over the interconnected system components, which may allow a plurality of hardware components, which may be geographically distributed, to perform any particular task. This may provide load balancing capabilities, based on geographical and availability conditions of the system hardware or software.

Delivery of messages broadcast to the internal IP network 70 may be ensured by the further feature that components may be designed to send the information to the network repeatedly until an acknowledgement message is received from at least one of the network components. However, this is not the same as the prior art system in which a message is sent to a particular network component at predetermined time intervals until an acknowledgement of receipt of that message is received from that network component.

Since, ir-l-this embodiment, the SMS messaging network is a distributed network, load balancing may be performed between network components with the same functionality. The IP network 70 may allow location information to be exchanged between VMLR 82,84 components so that more than one VMLR is able to deal with location queries for a particular application. Similarly, more than one VMRS 86,88 may be able to transfer and route messages between the application and the SS7 mobile network 72. The VMRS 86,88 or VMLR 82,84 that is used may be selected according to factors such as the geographical location of the component in relation to the mobile terminal and the load on each component at a particular time.

Modifications of detail may be made to the embodiments described above and features may be provided independently of other features or in other combinations unless otherwise stated.