A system of intelligent devices, a method for providing such a system and a computer data signal
35 claims: 17 independent, 18 dependent
- 1PATENTKRAV 1. En metod för att tillhandahålla ett system av intelligenta anordningar anslutna till varandra genom ett nätverk, varvid anordningarna interagerar med varandra och automatiskt upptäcker nya anordningar genom att sända och ta emot meddelande över nätverket, varvid metoden innefattar att:a) en intelligent anordning ansluts till en annan intelligent anordning via en anslutning som har ett kommunikationsprotokoll, b) anslutningen upptäcks och anslutningens kommunikationsprotokoll identifieras och c) för var och en av anordningarna skapas en kanal, anpassad för att sända och mottaga meddelanden mellan anordningarna över det identifierade kommunikationsprotokollet, var och en av kanalerna är anpassade för att översätta och tolka meddelanden av det identifierade kommunikations protokollet och d) ett meddelande sänds från den ena av nämnda anordningar till den andra anordningen via nämnda kanaler.
- 2En metod enligt krav 1, innefattande nya kanaler skapas genom en upprepning av stegen a - c hos krav 1 för åtminstone ytterligare en intelligent anordning som är ansluten till en av de andra anordningarna via en anslutning som har ett annat kommunikationsprotokoll.
- 3En metod enligt krav 1 eller 2, innefattande stegen att en av anordningarna kopplas från en annan anordning, frånkopplingen upptäcks och för var och en av anordningarna tas de icke anslutna kanalerna bort.
- 4En metod enligt något av föregående krav, varvid nämnda protokoll är något av TCP/IP, UDP/TCP/IP, Bluetooth eller nollmodem, telefonmodem, GSM, GPRS. 524 262
- 5En metod enligt något av kraven 2-4, innefattande stegen att ett meddelande med ett destinationsadressfält skapas och meddelandena sänds via åtminstone en av kanalerna hos anordningen.
- 6En metod enligt krav 5, innefattande stegen ett direkt meddelande skapas genom att en destinationsadress läggs i destinationsadressfältet, varvid destinationsadressen innefattar adressen till åtminstone en sändande kanal och åtminstone en mottagande kanal och meddelandet sänds via den kanal som specificeras i destinationsadressen.
- 7En metod enligt något av kraven 2-6, innefattande stegen att:- ett direkt meddelande mottages på en av kanalerna hos anordningen, - meddelandets destinationsadress läses, - om destinationsadressen motsvarar anordningens adressen avsänds meddelandet till en hanterare hos anordningen för vidare behandling och tolkning, annars sänds meddelandet vidare via en av de andra kanalerna hos anordningen, vilken kanal är specificerad i destinationsadressen.
- 8En metod enligt krav 7, innefattande att adressen för den mottagande kanalen tas bort från destinationsadressen hos meddelandet efter mottagande av meddelandet.
- 9En metod enligt krav 8, innefattande att adressen för den vidarebefordrande kanalen tas bort från destinationsadressen hos meddelandet innan meddelandet sänds vidare.
- 10En metod enligt krav 5 innefattande stegen att ett utsändningsmeddelande skapas och meddelandet sänds via alla kanalerna hos anordningen. 524 262
- 11En metod enligt något av kraven 2-10, innefattande stegen att ett utsändningsmeddelande tas emot på en av kanalerna hos anordningen och utsändningsmeddelandet sänds vidare via alla de andra kanalerna hos anordningen.
- 12En metod enligt något av kraven 5, 6, 10, innefattande att adressen till den enhet som genererade meddelandet läggs in i ett vägvalsfält i meddelandet.
- 13En metod enligt något av kraven 7-9 och 11, innefattande att adressen hos den mottagande kanalen läggs in i ett vägvalsfält i meddelandet efter mottagande av meddelandet från en kanal.
- 14En metod enligt kraven 12 eller 13, innefattande att adressen för den sändande kanalen läggs in i vägvalsfältet i meddelandet före sändning eller vidarebefordran av meddelandet.
- 15En metod enligt något av kraven 12-14, innefattande att följande steg utförs när en ny kanal har skapats:- ett sökmeddelande skapas, - sökmeddelandet sänds via alla tidigare kanaler hos anordningen, - svar på sökmeddelandet tas emot från andra anordningar anslutna till anordningen via de tidigare kanalerna, och - svaren vidarebefordras via den nya tillagda kanalen.
- 16En metod enligt krav 15, innefattande att sökmeddelandet sänds via den nya kanalen, svaren på sökmeddelandet mottas från andra anordningar anslutna till anordningen via den nya kanalen och svaren vidarebefordras via alla de tidigare kanalerna.
- 17En metod enligt något av de föregående kraven, innefattande att en del av bandbredden hos kanalerna som ansluter två intelligenta anordningar reserveras för sändning och mottagande av meddelande från en specifik källa i en av anordningarna till en specifik destination i den andra anordningen. 524 262
- 18En metod enligt krav 17, innefattande att ett meddelande för reservationsbegäras skapas, meddelandet för reservationsbegäran sänds och nämnda kanaler tillfrågas om de har tillräckligt med bandbredd.
- 19En metod enligt krav 18 varvid meddelandet för reservationsbegäran innehåller storleken på den begärda bandbredden och en option för att acceptera lägre bandbredd.
- 20Ett system innefattande ett antal intelligenta anordningar anslutna till varandra genom ett nätverk, varvid anordningarna är anpassade för att interagera med varandra och att automatiskt upptäcka nya anordningar genom att sända och mottaga meddelande över nätverket, varvid var och en av de intelligenta anordningarna har en hårdvaruenhet (6) och en mjukvaruenhet (4), kännetecknat av att nätverket innefattar ett flertal anslutningar med olika kommunikationsprotokoll och att nämnda mjukvaruenhet innefattar medel (24a-24d) för att upptäcka en ny anslutning mellan anordningarna, att identifiera kommunikationsprotokollet hos den nya anslutningen och för att skapa en kanal (9a-9c) anpassad för att översätta och tolka meddelanden av det identifierade kommunikations protokollet och att i samverkan med andra kanaler sända och mottaga meddelanden mellan anordningarna över det bestämda kommunikationsprotokollet.
- 21Ett system enligt krav 20, kännetecknat av att nämnda upptäckande och skapande medel (24a-24d) är anpassat för att känna igen ett antal fördefinierade kommunikationsprotokoll och att skapa kanaler (9a-9c) anpassade för att sända och mottaga meddelanden mellan anordningarna över nämnda fördefinierade kommunikationsprotokoll.
- 22Ett system enligt krav 20, kännetecknat av att nämnda upptäckande och skapande medel innefattar ett antal kanaldrivare (24a-24d) som var och en är anpassad för att känna igen ett fördefinierat kommunikationsprotokoll och för att skapa en kanal 524 262 anpassad för att sända och mottaga meddelanden mellan anordningarna över nämnda fördefinierade kommunikationsprotokoll.
- 23Ett system enligt något av kraven 20-22, kännetecknat av att nämnda upptäckande och skapande medel (24a-24d) är anpassat för att upptäcka frånkoppling av anordningarna och för att ta bort kanalen vid frånkoppling.
- 24Ett system enligt något av kraven 20-23, kännetecknat av att mjukvaruenheten innefattar en meddelandehanteringsenhet (28-31) som hanterar skapandet av nya meddelanden och tar hand om meddelanden mottagna från andra anordningar.
- 25Ett system enligt något av kraven 20-24, kännetecknat av att nämnda meddelandehanteringsenhet innefattar moduler för hantering av fjärranrop (30), för prenumeration på data (31) och för att upptäcka och hämta information om nya anordningar (29).
- 26Ett system enligt något av kraven 24-25, kännetecknat av att mjukvaruenheten innefattar en kanalhanteringsenhet (22) som hanterar mottagande, sändning och vidarebefordran av meddelanden via kanalerna hos anordningen och skickar över meddelanden till och från meddelandehanteringsenheten.
- 27Ett system enligt krav 26 kännetecknat av att meddelandehanteringsenheten (28-31) är anpassad för att skapa ett meddelande som har ett destinationsadressfält och kanalhanteringsenheten (22) är anpassad för att sända meddelandet via en eller flera av kanalerna (9a-9c) hos anordningen i beroende av innehållet i adressfältet.
- 28Ett system enligt krav 26 eller 27, kännetecknat av att kanalhanteringsenheten (22) är anpassad för att ta bort adressen för den mottagande kanalen från destinationsadressen hos det mottagna meddelanden och för att ta bort adressen för den vidarebefordrande kanalen från destinationsadressen hos vidarebefordrade meddelanden. 524 262
- 29Ett system enligt något av kraven 26-28, kännetecknat av att kanalhanteringsenheten (22) är anpassad för att uppdatera ett vägvalsfält i meddelandet genom att lägga till adressen för den 5 sändande kanalen till vägvalsfältet innan sändning eller vidarebefordran av meddelandet och att lägga till adressen för den mottagande kanalen till vägvalsfältet etter att meddelandet har mottagits från en kanal. 10 30. Ett system enligt något av kraven 20-29, kännetecknat av att var och en av kanalerna innefattar en bandbreddsdel (8) tillgänglig för åtminstone en reservation för meddelanden från en specifik källa i en första intelligent anordning till en specifik destination i en annan intelligent anordning, ansluten till den första 15 anordningen via nätverket, och en bandbreddsdel (80) som inte kan reserveras. 31. En dataprogramprodukt för att tillhandahålla kommunikation i ett system av intelligenta anordningar anslutna till varandra ge20 nom ett nätverk, varvid datorprogramprodukten innefattar ett dataläsbart medium på vilket finns ett datorläsbart programmedel som när det körs på ett datorsystem får datorsystemet att utföra åtminstone stegen b och c hos krav 1. 25 32. En datorprogramprodukt enligt krav 31, som får datorsystemet att utföra stegen hos något av kraven 2-19. 33. Ett datorläsbart medium för att tillhandahålla kommunikation i ett system av intelligenta anordningar anslutna till varandra
- 3030 genom ett nätverk, varvid ett program finns skrivet på det datorläsbara mediet, varvid programmet är sådant att det får datorn att utföra åtminstone stegen b och c hos krav 1.
- 3134. Ett datorläsbart medium enligt krav 33, varvid programmet
- 3235 får datorn att utföra stegen hos något av kraven 2-19. 524 262 35. En datordatasignal för att tillhandahålla kommunikation i ett system av intelligenta anordningar anslutna till varandra genom ett nätverk, i form av ett meddelande kommunicerat mellan anordningarna, varvid anordningarna är anpassade för att interagera med varandra och automatiskt upptäcka nya anordningar, kännetecknat av att nämnda anordningar innefattar ett flertal kanaler anpassade för att sända och mottaga meddelanden mellan anordningar över olika kommunikationsprotokoll och att meddelandena har ett adressfält innefattande namn på alla kanalerna genom vilket meddelandet måste passera på sin väg till sin destination.
- 3336. En datordatasignal enligt krav 35 kännetecknad av att meddelandet passerar genom åtminstone tre kanaler på väg till sin destination och nämnda adressfält innefattar namnet på nämnda åtminstone tre kanaler.
- 3437. En datordatasignal enligt krav 35 eller 36 kännetecknad av att meddelandet har ett vägvalsfält innefattande namnen på alla kanaler genom vilka meddelandet måste passera på sin väg till den sist besökta platsen.
- 3538. En datordatasignal enligt något av kraven 35-37, kännetecknat av att meddelandet innefattar en begäran om reservation av bandbredd i en eller flera av kanalerna. 524 262 1/4
Independent claims35
121 paragraphs in 10 sections, as filed
(54) NAME Method and system for automatic collaboration between intelligent devices in a network (56) PUBLISHING PUBLICATIONS:
Yi.Min Wang et al, Microsoft Research, A Toolkit for Building Dependable and Extensible Home Networking Applications, Feb. 14 2000
RFC 791, Internet Protocol, Darpa Internet Program Protocol Specification (57) SUMMARY:
A system comprising a plurality of intelligent devices connected to each other through a network (15), wherein the devices are adapted to interact with each other and automatically detect new devices by transmitting and receiving messages over the network, each of the intelligent devices having a hardware unit and a software unit (4a-4c). The network comprises a plurality of connections with different communication protocols and said software unit comprises means for detecting a new connection between the devices, for identifying the communication protocol of the new connection and for creating a channel (9) adapted to transmit and receive messages between the devices over the device. determined communication protocol.
A method of providing such a system comprising connecting an intelligent device to another intelligent device via a connection having a communication protocol, detecting the connection and identifying the communication communication protocol of the connection and creating a channel adapted for transmitting and receiving for each of the devices messages between the devices over the particular communication protocol.
A computer data signal for providing communication in a system in the form of a message communicated between the devices. The messages have an address field containing the names of all the channels through which the message must pass on its way to its destination.
4a 4b
I- -
<img file="SE524262C2_D0001.tif" />
HD
HD
HD
The numbers in brackets indicate international identification code, INID code. Letters in clamps indicate international document code.
524 262
SUMMARY
A system comprising a plurality of intelligent devices connected to each other through a network (15), wherein the devices are adapted to interact with each other and automatically detect new devices by transmitting and receiving messages over the network, each of the intelligent devices having a hardware unit and a software unit (4a-4c). The network comprises a plurality of connections with different communication protocols and said software unit comprises means for detecting a new connection between the devices, for identifying the communication protocol of the new connection and for creating a channel (9) adapted to transmit and receive messages between the devices over the device. determined communication protocol.
A method of providing such a system comprising connecting an intelligent device to another intelligent device via a connection having a communication protocol, the connection being detected and the communication communication protocol of the connection being identified and for one and the devices creating a channel adapted to transmit and receive messages between the devices over the particular communication protocol.
A computer data signal for providing communication in a system in the form of a message communicated between the devices. The messages have an address field containing the names of all the channels through which the message must pass on its way to its destination.
(Figure 2) ί
524 262
FIELD OF THE INVENTION
The present invention relates to a method of providing a system of intelligent devices connected to each other through a network, the devices interacting with each other and automatically detecting new devices by transmitting and receiving messages over the network.
The invention further relates to a system comprising a number of intelligent devices connected to each other via a network, which devices are adapted to interact with each other and automatically detect new devices by transmitting and receiving messages over the network, each of the intelligent devices having a hardware - and a software unit.
The invention further relates to a computer data signal comprising a message communicated between intelligent devices connected to each other through a network, which devices are adapted to interact with each other and automatically detect new devices.
The invention further relates to a computer data signal for providing communication in a system of intelligent devices connected to each other via a network, in the form of a message communicated between the devices, which devices are adapted to interact with each other and automatically cover new devices.
ϊ
524 262
A device is a physical unit capable of performing work, for example, a sensor, a motor, a valve, a cylinder, an industrial robot, heating, ventilation, and air conditioning devices, or consumption devices such as washing machines and lighting appliances. If the device is provided with a hardware unit containing a processor and a software unit so that the device can perform logical operations then it becomes an intelligent device.
For example, the invention is useful for automation in industrial, building and home contexts, whereby information is exchanged between devices or between devices and control systems. In particular, but not exclusively, the invention is suitable for use in conjunction with embedded intelligence devices.
BACKGROUND OF THE ART
Modern industrial control systems for process control and manufacturing are developed for use in large automation systems for heavy industries, such as oil and gas as well as paper and pulp. These control systems must be able to handle thousands of data signals and software objects that represent real devices, which places high demands on the hardware on which it is to be run. In a traditional control system, all communication between the control system and the devices takes place and there is no direct communication between the devices. The devices transmit information to the control system regarding their status and condition, and the control system sends control signals to the devices. This results in large control systems and extensive network communication between the control systems and the devices. Such large industrial control systems that require extensive hardware are not suitable for small users who have only a few devices to be controlled.
It is a trend today to provide embedded intelligence in industry and consumer devices, so-called embedded devices524,262. An embedded device includes hardware and software to perform operations on data from the device and to perform calculations and logical decisions. In general, embedded devices have limited processing power and limited memory.
It is also known to connect embedded devices to a network and to have them communicate with each other. A system of embedded devices is capable of controlling and monitoring devices locally, thus reducing the need for a control system and reducing the communication load in the system.
A requirement for a control system is that it should be easy to configure when a new device is connected to the system. To that end, a number of standards have been developed to automatically detect new devices, which are generally known as “Plug and
Play ". One of the communication standards for home automation is “Universal Plug and Play (UPnP). UPnP is an architecture for peer to peer network connection between personal computers of all types and embedded devices. When a new device is connected to the network, the device sends a message to all the other devices in the network with information about itself.
The UPnP specifies communication protocols such as "Simple Service Protocol" (SSDP) for device discovery, "Simple Object Access Protocol" (SOAP) for remote method calls, and "General Event Notification Architecture (GENA) for data subscriptions. These communication protocols are all based on existing Internet protocols, for example TCP / IP (Transmission Control Protocol / Internet Protocol), thus all communication between devices using UPnP is dependent on TCP / IP. If a message is to be transmitted via any media other than the Internet, using a protocol other than TCP / IP, the messages must be translated from TCP / IP to other protocols. Later when the message is received, it must be translated back to TCP / IP before it can be interpreted by SSDP, GENA or SOAP. Such other media and protocols are, for example, wireless communication, using bluetooth, direct connection via a series of null modem cables or communications using tele524262 phonemems, "Global System for Mobile telecommunications" (GSM) or "General Packet Radio Service" ( GPRS). Other useful protocols for wireless transmission are UMTS, AMPS or DAMPS.
TCP / IP generally requires extensive use of memory. In addition, the translation between TCP / IP and other protocols requires both time and memory and processor capacity. This is disadvantageous in connection with small embedded devices which are usually limited by memory and processor capacity. Moreover, when the devices are not connected to the Internet, it is disadvantageous to use TCP / IP.
SUMMARY OF THE INVENTION
The object of the present invention is to provide a method for providing a system of intelligent devices that interact with each other and automatically detect new devices by transmitting and receiving messages over a network including a plurality of different communication protocols and physical connections. a method that is not dependent on a particular protocol and which allows devices with limited memory to communicate with other devices on the network.
This object is achieved by the initially defined method, characterized in that it comprises the steps of connecting an intelligent device to another intelligent device via a connection having a communication protocol, detecting the connection and identifying the communication communication protocol of the connection, for each of the devices a channel is created, adapted to transmit and receive messages between devices over the particular communication protocol. With such a method, an intelligent device can be connected to another intelligent device regardless of the communication protocol of the connection between them and it will be possible for the devices to send messages to each other without having to translate between different protocols. Thanks to the fact that no translation is needed, less memory and less processor capacity is needed. Because it is possible to choose between different communication protocols, a communication protocol that requires less memory can be selected if the memory is limited.
According to a preferred embodiment of the invention, new channels are created by repeating the above steps for at least one more intelligent device which is connected to one of the devices via a connection having a different communication protocol. Thus, an intelligent device can be connected to a number of other intelligent devices via different protocols.
According to a preferred embodiment of the invention, the method comprises the step of disconnecting an intelligent device from another intelligent device, detecting the disconnection and destroying the unconnected channels of each device. Thus, channels are dynamically created and destroyed depending on the connection and disconnection of intelligent devices on the network and each intelligent device will only include the channels needed at the moment.
According to a further preferred embodiment of the invention, the method comprises the step of creating a message having a destination address field, messages being sent via at least one of the channels of the device. First, the message is created regardless of which protocol is to be used to send the message and then the message is sent via one or more channels that handle the translation of the message into the protocol needed to send it. Since the creation and sending of a message is handled separately, it is possible to create the message regardless of the protocol used to send it. In this way, the creation and management of messages can take place uniformly, despite the use of different communication protocols.
According to a further preferred embodiment of the invention, the method comprises the steps of creating a direct message
524 262, that a destination address is added to the destination address field, the destination address comprising the address of at least one transmitting channel and at least one receiving channel and the message being transmitted via the channels specified in the destination address. Because the messages include information about which channels the messages are to be sent between, it is easy to manage the transmission and forwarding of the messages.
According to a further preferred embodiment of the invention, the method comprises the steps of receiving a direct message on one of the channels of an intelligent device, reading the destination address of the message. If the destination address corresponds to the address of the device, the message is transmitted to a handler of the device for further processing and interpretation. Otherwise, the message is forwarded via one of the other channels of the device, which channel is specified in the destination address. In this way, it is possible to send a message through a channel having a first protocol and forwarding it to other intelligent devices via connections having second protocols.
According to a further embodiment of the invention, the method comprises the step of removing the address of the receiving channel from the destination address of the message after the message is received. If the messages are to be forwarded to another intelligent device, the method includes the step of removing the address of the forwarding channel from the destination address of the message before the message is forwarded. In this way, used channels are removed from the address and the address will always contain the addresses of the remaining channels through which the message is to pass.
According to a further embodiment of the invention, the method comprises the step of creating a broadcast message and transmitting the message through all the channels of the device. The embodiment further comprises the step of receiving the broadcast message by one of the channels of the device and the broadcast message sharing is further transmitted via all the other channels of said device.
According to a further embodiment of the invention, the method comprises the steps of adding the address of the unit that generated the message to a path selection field in the message. The embodiment further comprises the step of adding the address of the receiving channel to a path selection field in the message after the message has been received from a channel. The embodiment further includes the step of adding the address of the transmitting channel to the path selection field in the message before sending or forwarding the message. A road selection field is created along the path of the message to make it possible to follow the path of the message. The Road Selection bar contains information about each channel through which the message has passed on the path the message has followed from the site where it was generated up to the last visited site.
According to a further embodiment of the invention, the method comprises the following steps when a new channel is created: a search message is created, the search message is transmitted via all previous channels of the device, responses to the search message are received from other devices connected to the device via the previous channels and the replies are transmitted via the new channel added. Thus, all new devices connected to the device via the new channel will receive information on the addresses of all previous devices already connected to the device. Information on the addresses of the previous devices is included in the road selection field.
According to one embodiment of the invention, the method further comprises the following steps when a new channel is created: the new message is transmitted via the new channel, responses to search messages from other intelligent devices connected to the device via the new channel are received and the responses are transmitted through all the previous channels. . In this way, all previous devices connected to the device via the previous channels will receive information
524 262 about the addresses of all the new devices connected to the device via the new channel.
In yet another embodiment of the invention, the method comprises the steps of reserving a portion of the bandwidth of channels connecting two intelligent devices for transmitting and receiving messages from a specific source in one of the devices to a specific destination in the other device. There are situations where predictable response times for messages are necessary to achieve real-time performance. This is accomplished by reserving part or parts of a channel's bandwidth for such messages. According to one embodiment thereof, the method further comprises the steps of creating a reservation request message, the reservation request message being sent and said channels being asked if they have sufficient bandwidth.
According to a further embodiment of the invention, the reservation request message contains the size of the requested bandwidth and an option to accept lower bandwidth. In some applications, the requested bandwidth must be accepted, otherwise it is not possible to send the message. In other applications, it is possible to accept a lower bandwidth than the requested one. By this embodiment, it is possible to request a high bandwidth, and if requested, a lower bandwidth is not accepted and thus obtain as much bandwidth as possible.
A further object of the present invention is to provide a system comprising a plurality of intelligent devices connected to each other, which devices are adapted to interact with each other and automatically detect new devices by transmitting and receiving messages over a network including a plurality of different communication protocols and / or physical connections. A system that allows intelligent devices with limited memory to communicate with other intelligent devices on the network.
524 262
This object is achieved by the initially defined system characterized in that the network comprises a plurality of connections with different communication protocols and said software unit comprises means for detecting a new connection between the devices, identifying the communication protocol of the new connection and creating a channel adapted to transmit and receiving messages between the devices over the particular communication protocol. By providing the device with channels adapted to transmit and receive messages over different communication protocols, the creation and handling of the messages can be done separately from the communication management and thus can be done independently of any communication protocol.
According to yet another embodiment of the invention, said detection and creation means are adapted to recognize a number of predefined communication protocols and to create channels adapted to transmit and receive messages between devices over said predefined communication protocols. In one embodiment thereof, said discovery and creation means comprise a plurality of channel drivers each adapted to recognize a predefined communication protocol and to create a channel adapted to transmit and receive messages between the devices over said predefined communication protocols.
According to a further embodiment of the invention, said detecting and creating means are adapted to detect disconnection of devices and to take abortion channels at disconnection. Removing the channels when they are no longer needed saves memory and unconnected channels are avoided.
According to a further embodiment of the invention, the software unit comprises a message management unit which handles the creation of new messages and processes messages received from other devices. The message management is thus separated from the handling of the communication by the member countries. Preferably, said message management unit comprises modules for remote call handling, data subscription and for detecting and retrieving information about new devices. According to an embodiment thereof, the software unit comprises a channel management unit which handles receiving, sending and forwarding messages via the channels of the device and transmitting the messages to and from the message management unit.
According to a further embodiment of the invention, the message management unit is adapted to create a message having a destination address field and the channel management unit is adapted to transmit messages via one or more channels of the device, depending on the contents of the address field. According to an embodiment thereof, the channel management unit is adapted to remove the address of the receiving channel from the destination address of received messages and to remove the address of the forwarding channel from the destination address of retransmitted messages.
A further object of the invention is to provide a computer data signal suitable for communication between devices in a system according to the invention. This object is achieved with a computer data signal comprising a message having an address field containing the name of all channels through which the message has passed on its way to its destination.
BRIEF DESCRIPTION OF THE DRAWINGS
The invention will now be explained in more detail by means of various described embodiments of the invention and with reference to the accompanying drawings.
Fig. 1 shows a physical device and its software presentation.
524 262
Fig. 2 shows the architecture of a system according to an embodiment of the invention.
Fig. 3 shows a block diagram of a program module representing the device.
Fig. 4 shows in more detail how three program modules are connected to each other in the network.
Fig. 5 shows an example of addressing and creating a road selection field in a system according to the invention.
Fig. 6 shows the bandwidth reservation of a channel.
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS OF THE INVENTION
A system according to the invention comprises a number of intelligent devices connected to each other through a network. A device is a device that performs some type of work, such as an engine, cylinder, computer or industrial robot. An intelligent device in a system according to the invention comprises at least one device, a hardware device having a processor, memory and I / O connections, and a software device having a program module which provides functionality for controlling and monitoring the device and for interacting with these devices. The program module includes one or more services. A service provides a set of functions for controlling and monitoring the device, for example, subscribing to data or executing control commands. A device may have one or more services. When the device has more than one service, each service represents a group of functionality of a specific type, for example for diagnosing the device or for controlling the device.
Each service belongs to a service provider. A service provider represents a device or subsystem comprising one
524 262 multiple devices and / or service providers and is a purely logical entity. The program module may have more than one service provider, each representing different devices. The software module provides the communication framework, communication functionality and the execution environment for the services and represents a node in the network. The software module handles all communication to and from the services. The software module is designed in software and implements protocols for detecting a device, remote method call, data subscription, alarm or event generation. The program module generates and sends messages from services belonging to the module and receives and interprets messages for said services.
Figure 1 shows a device 1 which is an engine and its software presentation. The device is represented by a service provider 2 that addresses three services 3a-3c, each of which represents a group of functionality for monitoring and controlling the device. The first service 3a includes functions for diagnostics, the second service 3b includes functions for man-machine interaction, and the third service 3c includes control functions for the device. The service provider 2 and the services 3a-3c are located in the program module 4. The device comprises a hardware unit 6 comprising a processor on which the program module 4 is run and memory for saving the program module. The hardware unit 6 comprises a number of physical connections 7 for electrical or optical connection to other devices. The program module 4 further comprises a number of channels 9a-9c adapted to transmit and receive messages to other devices over various communication protocols. The task of a channel is to translate and interpret messages of a particular communication protocol.
Intelligent and value-added functionality is provided by the services. The services provide knowledge of each other via announcement when starting and stopping the services. After gathering knowledge of each other, they can manipulate other services by calling exposed methods as well as receiving status information by subscribing to variables, alarms or events in other services. In this way, the physical device of a service can be handled by manipulating and reading this data.
Figure 2 shows the architecture of a system according to the invention. The system comprises a plurality of program modules 4a-4c, each hosting one or more services 3 and service providers 2 representing devices. The services and service providers can be added and removed as needed. Services and service providers are connected via virtual links. The program modules are connected to other program modules through channels 9 which create a network 15. The network 15 includes a number of additional program modules not shown in Figure 2.
The program modules communicate with each other by means of messages. In order to reach a program module from another program module, the notifiers have to go through a number of program modules that transmit the messages, that is, all program modules do not have direct connection to all other program modules in the network. Each channel in a program module is connected to a channel of another program module. However, multiple channels can connect two program modules. In general, a program module handles services and service providers and provides the interaction between local and remote services, where local services are services that are in the same program module and remote services are services found in other program modules within the same network.
Figure 3 shows a block diagram of a program module 4. The program module includes services 3a-3c, channels 9a-9c, an administrator manager 20 that handles the administration of the services and the service provider, for example, start, stop, interrupt, move and assign a new name. The program module 4 further comprises a channel manager 22 which handles forwarding, routing and sending of messages, a number of channel drivers 24a-24c creating new channels, a register 26 containing all the necessary information regarding the program module, the service providers and services belonging to the module and a number of different handlers 2831 A search manager 28 handles the search for devices on
524 262 network. An announcement handler 29 manages discovery mechanisms to detect new devices, service providers, and services. An RMI handler 30 handles remote method calls. One
AEV Manager 31 handles subscriptions to alarms, events and variables.
The program module comprises a plurality of channel drivers 24a-24d, each divided for a particular type of physical or wireless connection having a specific communication protocol. The task of the channel driver is to detect new connections between devices of the connection type for which the channel driver is intended and to create channels adapted to transmit and receive messages between devices using communication protocols for that type of connection. Thus, the channel driver listens for connection attempts and also attempts to make connections. Upon connection, a channel is created and the channel manager is notified of its existence. When disconnected, the channel driver removes the channel from the program module.
Channel driver 24a is a serial link channel driver. A serial channel driver creates serial link channels that provide communication between devices over a serial cable. The connection of a serial link is point to point. The serial link channel driver inspects whether serial ports are added or removed and reflects this by creating and deleting channels. The communication protocol for a serial link is simple and involves transmitting and receiving a serial stream of characters.
Channel driver 24b is a TCP / IP channel driver. A TCP / IP channel driver can create two types of channels. The first type of channel is a multi-user connection using "User Datagram Protocol" (UDP) and the second type of channel is a dedicated socket pair defined by an IP address and port number. With a multi-user channel, a message can be sent to all other no35s connected to the same local network. It can also be used to send messages to nodes specified by IP addresses. The type of connection between TCP / IP channels and more
524 262 user functions are point to several points, while the type of connection between socket park channels is point to point. Channel driver 24c is a blue tooth channel driver. A blue-tooth channel driver creates channels adapted for wireless transmission via a blue-tooth protocol. The connection between two blue tooth ducts is point to point type.
Channel driver 24d is a telephone network channel driver and can create point-to-point and multiple-point channels. In the first case, the channel is equal to a serial line channel. In the second case, the channel may be connected to multiple nodes with different telephone numbers and the channel's task is to remember and manage all telephone numbers and thus send a multi-user message. Similar to the serial line channel, the protocol for a telephone network channel is simple and includes the transmission and reception of a serial stream of characters.
A channel is an independent object used with a second channel to connect two different program modules. A channel is created and destroyed dynamically by the channel driver. In order to connect two program modules, each of the program modules must contain a channel of the correct type, that is, the two channels used to connect the corresponding pair of program modules must be of the same type. A single point-to-point channel can be used to connect a program module to several others.
Thus, two types of communication links can be created using channels: point to point and point to multiple points. A point to point communication link is a connection between two channels of a type that can only be connected to another channel only. An example of a point-to-point channel is a serial line. One point to several points communication link is a connection between channels connected to a number of other channels. An example of a point to multiple point channel is a TCP / IP channel with UDP. A number of program modules connected via point to several point links form a local network in the system. Using a single point to multiple point channel allows a message
524 262 is transmitted to all program modules on the local network. A point to multiple point channel is addressable, which means that a direct message must specify a network address for the channel to know the destination channel.
In the example shown in Figure 3, the program module comprises three channels 9a-9b. Channel 9a is a blue tooth channel used by the program module for connection to other program modules which also has a blue tooth channel. The two blue-tooth channels will form the requested communication link. Channel 9b is a TCP / IP channel that the program module uses to connect to other program modules that have a TCP / IP channel. Channel 9c is a serial line channel. Each channel 9a-9c provides an interface that allows a channel manager to send messages and to query the status of the channels. The channels notify the channel manager when new data has arrived.
Each message coming from the program module arrives via one of channels 9a-9c connected to the program module.
The channel in question will transmit the message to the channel manager 22. The channel manager 22 is responsible for handling messages from other handlers 28-31 in the program module or from other program modules. Channel manager 22 examines a received message and determines whether the receiving program25 module is addressed by the received message. If this is the case, the channel manager transmits the message to the appropriate handler according to the message type for further processing. If the message does not address the receiving program module, the channel manager will forward it to the next program module through the channel provided by the destination address of the message. The channel manager will also send forward announcement and search messages through all the other channels.
Managers 28-31 have in common that they handle incoming messages and create outgoing messages according to specified functionality protocols. A functionality protocol specifies the rules for communication between services. According to
524 In the invention, the functionality protocol and the communication protocol are separated. The handlers create messages according to the functionality protocol and the channels translate the messages into the communication protocol required to send the messages over a certain connection. In this way, all messages are handled and created in the same way, regardless of the type of connection to which it is to be transmitted, that is, regardless of the communication communication protocol.
The Announcement Manager is responsible for handling Announcement messages such as "alive" and "bye-bye" messages and for transferring them to services that may be of interest to the message. The RMI manager has two main tasks: to construct outgoing remote method call messages and to handle incoming remote method call messages. The AEV Manager handles subscription notifications, renewed subscriptions as well as recall and publish alarms, events and variables.
A search manager is responsible for managing incoming and outgoing search messages. Herein, an incoming message refers to a message arriving via one of the channels of the program module. Outbound search messages refer to messages generated by services contained in the application module. When a search message arrives in a program module, the program manager performs the search by looking in the registry. If the registry manager finds a match between the search criteria and the register information, it will generate the corresponding response message and send it back to the channel manager. The channel manager will in turn send it back to the program module that started the search. When a service associated with the application module sends out a search message, the message is first passed to the search manager. The search manager creates a search message and sends it to the channel manager, which broadcasts the message to the entire network through all available external search channels. Matches in remote program modules will generate response message that will spread to
524 262 services that send the search message through the Notification Manager.
When a service wishes to be connected, disconnected or announced its removal from the system, the administration manager modifies the register and the channel manager will transmit the message to the entire system via the channels.
Figure 4 shows in more detail how three program modules 41, 42, 43 are connected to each other in the network. The program module 41 includes a blue tooth channel 45 connected to a corresponding blue tooth channel 48 of the program module 42. The channels 45 and 48 form a point-to-point communication link between the modules 41 and 42. The program module 42 also includes a serial channel 49 connected to a corresponding serial channel 52 of the program module 43. The serial channels 49 and 52 form a point-to-point communication link between modules 42 and 43. The program module 41 further comprises a point-to-point TCP / IP channel 46 connected to a corresponding TCP / IP channel 53 of the program module 43 and to a plurality of other program modules. forming a local network 55. TCP / IP channels 46 and 53 form an addressable point to multiple points communication link between modules 41 and 43.
General message management mechanisms for route selection, forwarding and sending are performed by the channel manager. Forwarding of incoming point to point messages, ie messages that have a receiving address is called routing. The messages can be of two different types: either a direct message having a destination address or a broadcast message having an empty destination address. A broadcast message is sent to each program module on the network. Each message includes a message-specific portion, a destination address field, and a route selection field. The message-specific section contains one or more fields specific to the type of message. The road selection field includes the path that the message follows from the location where it was generated up to the last visited site.
524 262
Each channel has a name that is unique within the program module, or if it is an addressable channel connected to a local network, the name is unique within the local network. The address of the message includes the name of all channels through which the message must pass on its way to the destination application module, the name of the destination service provider and the name of the destination service. The road selection field is constructed in the same way as the address field and it includes the name of the sending service, the name of the sending service provider and the names of all channels through which the message has passed on its way to the most recently searched location.
Figure 5 shows a network comprising a number of program modules 60-68 connected to each other through the network. The network includes two local TCP / IP networks 70, 71 and a local telecom network 72. As an example, the program module 62 sends a direct message to the program module 66. The message travels from program module 62 to program module 63 via a serial link channel BT4 connected to a serial link channel BT3 of program module 63 . Program module 63 transmits the message to program modules 64 via a TCP / IP channel IP1 and TCP / IP network 70. The messages are received by a TCP / IP channel IP3 of program module 64. Program module 64 transmits the message through a telephone network channel TNR1 through the telephone network 72 to program module 66 which receives the message through a TNR2 telephone network channel. When the message is sent from a service of program module 62, the address field contains the address:
BT4 / BT3 / IP1 / IP3 / TNR1 / TNR2 / receiving service provider / receiving service.
When the message arrives at program module 66, the route selection field will contain the following address:
BT4 / BT3 / IP1 / IP3 / TNR1 / TNR2 / Broadcasting Service / Broadcasting Service Provider
524 262
Thus, a complete route selection field can be used directly as a destination address.
If a program module sends a broadcast message, the address field is empty and the receiving program modules will transmit the message on all their channels except on the channel that received the broadcast message. For example, if program module 63 receives a broadcast message from program module 62, it will transmit the message on channels BT1, BT2 and IP1.
If a program module receives a message through a channel, the message will be forwarded to the channel manager who decides what to do with the message by examining the address field and the type of message. Depending on the result, it will either send the message to a suitable handler for further processing or transmit it either through other channels or through a defined channel.
The procedure for routing a message is as follows; If the message arrives from a channel, the first address in the address bar is deleted. The destination channel is set to the second address in the address field. If the target channel is an addressable channel, the third address in the address field is used as the address of the local network and the message is sent through the target channel. If the message arrives from one of the handlers instead, the target channel is set to the first address in the address field. If the target channel exists, the message is transmitted via that channel, otherwise an unreceived message is created and sent to the source using the road selection field.
An announcement or a search message arriving at a channel is forwarded to all the other channels of the program module, these channels not being included in the path selection field and transmitted either to the announcement manager or the search manager. Before the channel manager sends an announcement
524 262 or search message, the name of the transmitting channel is added to the route selection field in the message. This forwarding procedure ensures that all services will receive a notification / search response from each path (sequence of channels) that the message can travel between two program modules and hand over the decision on which path to use for the service.
When a message is forwarded (for broadcast messages) or routed (according to the address field in point to point request), the path selection field is created according to the following procedure. If the message arrives via a channel, the name of the arriving channel is added to the beginning of the route selection field. If the message arrives from an internal handler, nothing is added to the road selection field (the name of the service provider and the service has already been added to the manager). A message is sent over all the other channels and the name of the transmitting channel is added at the beginning of the road selection field.
The channel manager examines the type of incoming message and if the destination address is empty, ie does not contain any channel names, the channel manager transmits the message to the appropriate manager. For each type of message there is a specialized handler. For each point-to-point message, either a request or a response, the corresponding handler sends a receive confirmation message letting the origin of the message know that the message has been received and processed and thus there is no longer any need to resend the message.
When a service, service provider, program module or channel is removed from the system, the other program modules must be notified. The message is done by "alive" or "bye-bye" messages. When a service is removed from the system, the program module containing the service sends a "bye-bye" message through all its channels. This message is created and sent by the notification manager when he receives such an order from the register. Immediately when the message is sent, the service can be removed from
524 262 system. Similarly, the program module sends a "bye-bye" message when a service provider or channel is removed. When a program module is removed, all its channels must be automatically deleted and a "bye-bye" message must be sent for each channel.
When a service, service provider, or program module is added to the system, the other program modules in the system must be notified. When a service is added to the system, the program10 module containing the service must send an "alive" message through all its channels. This message is created and sent by the notification manager when it receives such an order from the register. When a service provider is added to the system, the corresponding program module sends a "live" message on all its channels. When a program module is added, all other program modules in the system will be informed of the location and lifetime of the added program module via an "alive" message transmitted through all channels.
To introduce a new channel and inform all devices included in the network that a new path is available, the channel manager performs the following procedure: when a new channel is added to a program module, the channel manager generates a search message transmitted through all the previous channels of the program module.
Accordingly, since devices include network responses to search messages, the channel manager will transmit the replies via the newly added channel. If the added channel is of type point to multiple points, a search for the new channel is also performed and responses are converted to "alive" announcements sent to the first network. This procedure will introduce the new path and allow the connection of two independent networks.
In this way, a channel can be used to connect two independent networks. The channel manager is responsible for connecting the two networks. When a new channel is created by a first program module on a first network and connected to a channel of a second pro524,262 gram module on a second network, the channel manager performs a search within the contained program module and within the first network via the channels already connected to the program module. In response to the search messages, the program modules on the first network generate "alive" announcement for all devices, such as services found in the search. The "Alive" announcement is broadcast through the new channel and forwarded to all the other program modules on the other network. Similarly, the second program module performs a search on the second network10 and generates the corresponding "alive" message which is sent to all the program modules on the first network. In this way, all the devices on both networks will be informed of all other devices that they may be interested in.
There are situations when predictable response times for RMI, alarms, events or variable publishing or information access are necessary to obtain real-time functionality. This is accomplished by reserving part or parts of a channel's resource pool of bandwidth only for the needs of a service. The channel manager keeps track of each channel's reservations, that is, the allowable traffic load for each channel and the type of messages passed through the reserved bandwidth resource.
Figure 6 shows the bandwidth resource of a channel. A channel initially contains a bandwidth resource portion 80 that cannot be reserved and a portion 82 available for one or more reservations. The bandwidth resource 80 that cannot be reserved is used for all other messages. The reserved bandwidth resources are used only for dedicated messages. When a reservation is necessary, that portion of bandwidth resource 81 is reserved until no more reservations can be made. As shown in Figure 6, three portions 82, 83, 84 of the bandwidth resource pool 81 have been reserved. The part of the bandwidth pool that has not yet been reserved is used temporarily for all other messages.
524 262
When a service needs a reserved path, that is, bandwidth, to another service for its messages, it sends out a reservation request. The request is transmitted to the channel manager. The channel manager asks the channel to use for its bandwidth. If the channel has sufficient bandwidth and the channel manager allows parts of it to be reserved, the channel manager will create a reservation request message that is sent to the next channel manager, if any, in the chain. When the next channel manager receives a reservation request message, it first asks the channel used for the incoming messages about its bandwidth. Thus, if the target service is in another program module, the channel manager must query the channel used for the outgoing messages about its bandwidth.
Finally, when the message reaches the program module, which is part of the target service, the channel manager will ask this service about its bandwidth. All reservation requests are granted if each channel and service has sufficient bandwidth and each channel manager estimates that it is possible to manage the reserved route. The last visited channel manager will then send a reservation response message containing the allocated bandwidth to the channel manager who originally sent the request. If any reservation request cannot be refused, the chain of requests will fail. The last visited channel manager will then send off a reservation response message containing the lowest granted bandwidth available to the channel manager that originally sends the request. If all available bandwidth has already been re-served for one of the instances, the reservation response message will return with an allocated bandwidth of zero. In this case, no reservation will be made. The channel manager will send a response to the service that originally sends the reservation request, to let you know if the reservation was granted.
524 262
The reservation request includes an opportunity to accept a lower bandwidth than requested. If it is accepted to have a lower bandwidth, a flag named accept lower flag is set to true in the reservation request. Otherwise, the lower flag is set to false. The granting process depends on accepting the lower flag. If accepting the lower flag is set to false, the chain of request will fail as soon as the request cannot be fulfilled. However, if the accept low flag is set to true, the chain of request will continue and the lowest bandwidth granted will be returned via the reservation response message.
The present invention is not limited to the embodiments shown but can be varied and modified within the scope of the following claims. For example, which handlers in the program module can be varied depending on the functionality desired by the program module.
524 262
Contents10
5 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5
6 members in 4 offices
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 0103535 | Sweden | A | |
| SE20010003535 | – | – | – |
Members6
| Document | Office | Kind | |
|---|---|---|---|
| WO03036873A1 | World Intellectual Property Organization (WIPO) | A1 | |
| SE524262C2This record | Sweden | C2 | |
| EP1446915A1 | European Patent Office (EPO) | A1 | |
| US2005063317A1 | United States of America | A1 | |
| US7936779B2 | United States of America | B2 | |
| EP1446915B1 | European Patent Office (EPO) | B1 |
1 legal event, as the office reported them to INPADOC
Events
| Event | Code | |
|---|---|---|
| Patent has lapsedLapsedNUG | NUG |
Numbers
- Publication, DOCDB
- 524262
- Publication, EPODOC
- SE524262
- Application
- 103535
- Application, DOCDB
- 0103535
- Application, EPODOC
- SE20010003535
Titles2
- Swedish
- Metod och system för automatisk samverkan mellan intelligenta enheter i ett nätverk
- English
- Method and system for automatic interaction between intelligent devices in a network
Classification
- CPC, 5
- H04L69/18
- H04W40/00
- H04W80/00
- H04W76/10
- H04L41/12
- IPC, 3
- H04L12 24
- H04L12 56
- H04L29 06
