Abstract:
A method of compressing and restoring an Internet Protocol (IP) packet which is transmitted through a broadcast network is provided. According to the method, by using a characteristic of a transmission structure of a broadcast network, that is unlike ordinary packet switching communication networks, a field value that can be removed from a header part of an IP packet is determined. Then, the determined field value is removed from the header, and an IP packet having a header formed with the remaining field values is generated, thereby compressing the header of the IP packet more effectively compared to the header of the conventional static IP packet. In addition, by transmitting a compressed IP packet instead of a static IP packet which is periodically transmitted according to the conventional method, compatibility that the compression method can be used together with conventional compression methods is guaranteed.

Description:
CROSS-REFERENCE TO RELATED PATENT APPLICATIONS 
       [0001]    This application claims priority from Korean Patent Application No. 10-2007-0078186, filed on Aug. 3, 2007, in the Korean Intellectual Property Office, the disclosure of which is incorporated herein in its entirety by reference. 
       BACKGROUND OF THE INVENTION 
       [0002]    1. Field of the Invention 
         [0003]    Methods consistent with the present invention relate to compressing and restoring an Internet Protocol (IP) packet which is transmitted through a broadcast network, and more particularly, to compressing an IP packet by using a characteristic of a transmission structure of a broadcast network, that is unlike ordinary packet switching communication networks, by which a field value that can be removed from a header part of an IP packet is determined, the determined field value is removed from the header, and an IP packet having a header formed with the remaining field values is generated, and to restoring the compressed IP packet. 
         [0004]    2. Description of the Related Art 
         [0005]      FIG. 1  is a schematic diagram illustrating a method of transmitting IP packets through a broadcast network according to conventional technology. 
         [0006]    In an ordinary process for broadcasting multimedia content through a broadcast network, first, a content provider generates the multimedia content as a data stream. Then, in order to transmit the data through networks, the data is fragmented into smaller IP packets. 
         [0007]    A receiving end receives the plurality of IP packet fragments, multiplexes the packets, and finally broadcasts the packets to unspecified multiple users. Since a broadcast network generally transmits data to multiple users as receivers, data is not exchanged in a state in which a 1:1 or N:1 communication path is established. The broadcast network should also consider users who randomly access broadcast channels. 
         [0008]    When data is broadcast in this way, the conventional method compresses an IP packet by using omission of redundant data in the header of the IP packet in order to reduce the size of the IP packet to be transmitted. 
         [0009]    Referring to  FIG. 1 , when time points are expressed as t, t+1, t+2, . . . , t+n, according to the conventional method, a static IP packet which is not compressed is transmitted at time t. An IP packet including a header having a differential value with respect to the previous IP header (at time t) is transmitted at time t+1. However, since unspecified multiple users can access broadcast channels at an arbitrary time while packets are transmitted, a static IP packet having a whole header should be transmitted periodically. Accordingly, an IP packet which is not compressed is transmitted at time t+n as illustrated in  FIG. 1 . 
         [0010]    However, since the static IP packet appearing in the conventional method is not compressed, a method of improving the conventional technology is necessary. 
       SUMMARY OF THE INVENTION 
       [0011]    The present invention provides a method of compressing an IP packet by using a characteristic of a transmission structure of a broadcast network, by which a field value that can be removed from a header part of an IP packet is determined, the determined field value is removed from the header, and an IP packet having a header formed with the remaining field values is generated, and a method of restoring the compressed IP packet. 
         [0012]    According to an aspect of the present invention, there is provided a method of compressing an original Internet Protocol (IP) packet which is transmitted through a broadcast network, the method including: determining a field value including a fixed value in a header of the original IP packet by using a characteristic of the broadcast network; removing the determined field value from the header; and generating an IP packet which with a header formed only with the remaining field values, in other words excluding the removed field value. 
         [0013]    If the original IP packet is a fragmented IP packet, the method may further include performing preprocessing for restoring the original IP packet to a single IP packet by assembling the fragmented IP packet. 
         [0014]    The determining of the field value may be performed by referring to a template having a header of a fixed IP packet. 
         [0015]    In the determining of the field value, at least one predefined fixed value among field values included in the header of the original IP packet, a field value that can be calculated from an encapsulation header added to the generated IP packet, and a field value that can be calculated from the header of the generated IP packet may be determined, wherein the generated IP packet is encapsulated according to a transmission structure of the broadcast network. 
         [0016]    The at least one predefined fixed value may include at least one among the length of the header (Internet Header Length, IHL), type of service, and time to live (TTL), and the field value that can be calculated from the encapsulation header may be the total length of the generated IP packet, and the field value that can be calculated from the header of the IP packet may be a header checksum. 
         [0017]    The header of the generated IP packet may include at least one among an IP version, a protocol, a source address, and a destination address. 
         [0018]    In the performing of the preprocessing, if the version of the original IP packet is version 4 (IPv4), converting the original IP packet to version 6 (IPv6) may be further included and if the version of the original IP packet is IPv6, converting the original IP packet to IPv4 may be further included. 
         [0019]    The header of the original IP packet may comply with a request for comment 791 (RFC.791) Internet Protocol standard. 
         [0020]    The protocol field value in the header of the generated IP packet may be formed as 4 bits. 
         [0021]    According to another aspect of the present invention, there is provided a method of compressing an original IP packet and transmitting the compressed IP packet through a broadcast network, the method including: determining a field value that has a fixed value in a header of the original IP packet by using a characteristic of the broadcast network; removing the determined field value from the header; generating an IP packet with a header formed only with the remaining field values, in other words excluding the removed field value; adding an encapsulation header with the generated IP packet as a payload to generate an encapsulation IP packet; and transmitting the encapsulation IP packet. 
         [0022]    The adding of the encapsulation header may further include inserting transmission type information indicating whether or not the generated IP packet included in the payload is a compressed packet. 
         [0023]    According to another aspect of the present invention, there is provided a method of restoring a compressed IP packet which is transmitted through a broadcast network, the method including: determining a field value removed in the header of the compressed IP packet by using a characteristic of the broadcast network; inserting a field value that has a predefined fixed value to the determined field value; and generating an IP packet by using a header having the inserted field value. 
         [0024]    In the determining of the field value, at least one predefined fixed value among field values removed from the header of the compressed IP packet, a field value that can be calculated from an encapsulation header added to the compressed IP packet, and a field value that can be calculated from the header of the generated IP packet may be determined, wherein the compressed IP packet is encapsulated according to a transmission structure of the broadcast network. 
         [0025]    The predefined fixed value may include at least one among the length of the header (Internet Header Length, IHL), type of service, and time to live (TTL), and the field value that can be calculated from the encapsulation header may be the total length of the compressed IP packet, and the field value that can be calculated from the header of the generated IP packet may be a header checksum. 
         [0026]    The header of the generated IP packet may comply with an RFC.791 Internet protocol standard. 
         [0027]    According to another aspect of the present invention, there is provided a method of receiving an encapsulation IP packet which is transmitted through a broadcast network and restoring the IP packet, the method including: detecting from an encapsulation header added to the received encapsulation IP packet, transmission type information indicating whether or not an IP packet included in the payload of the encapsulation IP packet is a compressed packet; if the IP packet included in the payload of the encapsulation IP packet is a compressed IP packet according to the detected transmission type information, determining a field value removed in the header of the compressed IP packet by using a characteristic of the broadcast network; inserting a field value that has a predefined fixed value to the determined field value; and generating an IP packet by using a header having the inserted field value. 
         [0028]    According to another aspect of the present invention, there is provided a computer readable recording medium having embodied thereon a computer program for executing the methods. 
         [0029]    According to another aspect of the present invention, there is provided a system encoder having a compression apparatus for implementing the methods. 
         [0030]    According to the method of compressing and restoring an IP packet which is transmitted through a broadcast network according to the present invention, even a static IP packet which is periodically transmitted according to the conventional technology can be compressed. Compared to the conventional static IP packet which is 20 bytes long, the compressed header of the IP packet according to an exemplary embodiment of the present invention is 9 bytes long, and a compression effect 55% better than that of the conventional technology can be achieved. 
         [0031]    In addition, by transmitting a compressed IP packet according to the present invention instead of a static IP packet which is periodically transmitted according to the conventional method, compatibility that the compression method of the present invention can be used together with conventional compression methods is guaranteed. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0032]    The above and other features of the present invention will become more apparent by describing in detail exemplary embodiments thereof with reference to the attached drawings in which: 
           [0033]      FIG. 1  is a schematic diagram illustrating a method of transmitting IP packets through a broadcast network according to conventional technology; 
           [0034]      FIG. 2  is a diagram illustrating a data structure of a header format of an RFC. 791 IP packet which is used in an exemplary embodiment of the present invention; 
           [0035]      FIG. 3  is a flowchart illustrating a method of compressing an IP packet which is transmitted through a broadcast network according to an exemplary embodiment of the present invention; 
           [0036]      FIG. 4  is a diagram illustrating a data structure of a header shown after performing a method of compressing an IP packet according to an exemplary embodiment of the present invention; 
           [0037]      FIG. 5  is a flowchart illustrating a method of compressing an IP packet including a preprocessing process according to an exemplary embodiment of the present invention; 
           [0038]      FIG. 6  is a diagram illustrating each operation for processing an IP packet according to an exemplary embodiment of the present invention; 
           [0039]      FIG. 7  is a flowchart illustrating a method of compressing and transmitting an IP packet through a broadcast network according to an exemplary embodiment of the present invention; 
           [0040]      FIG. 8  is a diagram illustrating a data structure of an IP packet encapsulated according to a transmission structure of a broadcast network according to an exemplary embodiment of the present invention; 
           [0041]      FIG. 9  is a flowchart illustrating a method of restoring a compressed IP packet which is transmitted through a broadcast network according to an exemplary embodiment of the present invention; and 
           [0042]      FIG. 10  is a flowchart illustrating a method of receiving and restoring an encapsulated IP packet which is transmitted through a broadcast network according to an exemplary embodiment of the present invention. 
       
    
    
       [0043]    In the drawings, whenever the same element reappears in subsequent drawings, it is denoted by the same reference numeral. Though the drawings illustrate exemplary embodiments of the present invention, the drawings are not drawn according to a reduced scale, and the thicknesses of layers and regions may be exaggerated for clarity. 
       DETAILED DESCRIPTION OF THE INVENTION 
       [0044]    The attached drawings for illustrating exemplary embodiments of the present invention are referred to in order to gain a sufficient understanding of the present invention, the merits thereof, and the objectives accomplished by the implementation of the present invention. 
         [0045]    Hereinafter, the present invention will be described in detail by explaining exemplary embodiments of the invention with reference to the attached drawings. 
         [0046]      FIG. 2  is a diagram illustrating a data structure of a header format of a request for comments 791 (RFC.791) IP packet which is used in an exemplary embodiment of the present invention. 
         [0047]    In the exemplary embodiments of the present invention which will be described hereinafter, the RFC.791 protocol will be used. The RFC.791 protocol is a standard recommendation by the Internet Engineering Task Force (IETF), which provides procedures for implementing technologies on the Internet. 
         [0048]    Referring to  FIG. 2 , each field value included in the header of the RFC.791 will now be explained. 
         [0049]    (i) Version: IP version information (e.g., IPv4, IPv6), 4 bits 
         [0050]    (ii) IHL: the length of an Internet header, 4 bits 
         [0051]    (iii) Type of Service: the type of a service (e.g., low delay, high reliability, best effort), 1 byte 
         [0052]    (iv) Total Length: the total length of an IP packet, 2 bytes 
         [0053]    (v) Identification, Flags, Fragment Offset: a packet identifier, a flag, a fragment offset (information for reassembling a fragmented IP packet), 4 bytes 
         [0054]    (vi) Time to Live (TTL): a hop count that can survive on an IP network, 1 byte 
         [0055]    (vii) Protocol: a protocol (e.g., UDP, TCP), 1 byte 
         [0056]    (viii) Header Checksum: a header checksum, 2 bytes 
         [0057]    (ix) Source Address: an address of a source, 4 bytes 
         [0058]    (x) Destination Address: an address of a destination, 4 bytes 
         [0059]    (xi) Options: option information, variable 
         [0060]      FIG. 3  is a flowchart illustrating a method of compressing an IP packet which is transmitted through a broadcast network according to an exemplary embodiment of the present invention. 
         [0061]    Referring to  FIG. 3 , the method of compressing an IP packet which is transmitted through a broadcast network includes an operation  310  for determining a field value, that has a fixed value, in the header of an IP packet by using a characteristic of the broadcast network, an operation  320  for removing the determined field value, and an operation  330  for generating an IP packet which is formed only with the remaining field values, in other words excluding the removed field value. 
         [0062]    The basic idea of this compression method is that IP headers which are transmitted through a broadcast network have almost the same in format ion. 
         [0063]    This is because the types of transmitted IP packets are limited due to characteristics of the broadcast network. Accordingly, if a characteristic of the broadcast network and an IP header are analyzed, common IP header information can be determined. If this information is known as standard information by a transmission end and a reception end in advance, that is, if a template having the header of an IP packet is kept, a method of including only the uncommon data in the header of each IP packet can be employed. 
         [0064]    According to an exemplary embodiment of the present invention utilizing this principle, a field value that has a fixed value in the header of an IP packet is determined by using a characteristic of a broadcast network in operation  310 . In other words, from the characteristic of the broadcast network, a fixed value or a value that can be calculated through inference after the packet is transmitted is determined. Each field value in the IP packet header illustrated in  FIG. 2  will now be explained in this regard. 
         [0065]    (1) Options: this is a field for adding information in addition to predefined fields in the IP header. Since an option value is generally not used in data transmission through a broadcast network, this can be removed. 
         [0066]    (2) IHL: the length of the header is fixed as 20 bytes because the option field is not used. Accordingly, this field does not need to be transmitted, and can be removed. 
         [0067]    (3) Type of Service: this is a field for indicating a service type (low delay, high reliability, best effort) for optimizing a transmission method in a transmission network having a limited bandwidth. Accordingly, this field does not have to be used in a broadcast network which has a sufficient bandwidth. 
         [0068]    (4) Total Length: this field indicates the total length of an IP packet. The length is a value that can be calculated from an encapsulation header of an encapsulation IP packet which is encapsulated and transmitted according to the transmission structure of a broadcast network. Accordingly, this field does not need to be transmitted, and can be removed. 
         [0069]    (5) Identification, Flags, Fragment Offset: because the size of an IP packet that can be processed by an apparatus relaying IP packets in a communication network, such as a router or hub, is limited, these information fields are used in order to divide an IP packet which exceeds the limited size. In order to prevent repetition of a process of fragmenting and reassembling IP packets at each relaying apparatus, these information fields are set in advance as a least permissible value from among the Maximum Transmission Unit (MTU) values of the routers in a relaying path, and are used. However, an operation for broadcasting data through the broadcast network is performed at the end of the path for transmitting data in a communication network to unspecified many persons who are final users. Accordingly, even though a fragmented IP packet is reassembled to one IP packet and transmitted, additional overheads, such as the above-mentioned process of fragmenting and reassembling an IP packet, do not occur in an operation for broadcasting data through the broadcast network. Accordingly, these values can be removed. 
         [0070]    (6) Time to Live (TTL): this information indicates a hop count that can survive on an IP network, and is used to prevent an IP packet from being a zombie packet on a network. However, since an IP packet which is transmitted through a broadcast network has only one path, a case in which an IP packet becomes a zombie packet during transmission does not occur. Accordingly, this value does not need to be used, and can be removed. 
         [0071]    (7) Header Checksum: this information is to identify integrity of data of the header information of the encapsulated IP packet. In an ordinary encapsulation header for transmitting an IP packet in a broadcast network, information for identifying integrity of a payload is already included, and it can be determined whether or not an IP packet has an error. Accordingly, a receiving end can calculate a header checksum value from the header of an IP packet stored in a received payload. Therefore, this field does not need to be transmitted, and can be removed. 
         [0072]    Therefore, as described above, the option value (Options), the length of the header (IHL), the service type (Type of Service), the total length of the IP packet (Total Length), the packet identification, flags, fragment offset (Identification, Flags, Fragment Offset), time to live (TTL), and the header checksum (Header Checksum) are removed from the IP header in operation  320 . 
         [0073]      FIG. 4  is a diagram illustrating a data structure of a header shown after performing a method of compressing an IP packet according to an exemplary embodiment of the present invention. 
         [0074]    Referring to  FIG. 4 , the header of the compressed IP packet includes only the IP version, protocol, source address, and destination address. 
         [0075]    In addition, since the protocol used for a broadcast network is limited, the field value of the protocol in the generated header of the IP packet can be reconstructed as 4 bits. Each protocol value is reconstructed as 4 bits by collecting only protocol values that are mainly used in a broadcast network from 8-bit contents defined in the RFC.791. This value is determined between a transmission end and a reception end in advance. 
         [0076]    Accordingly, considering that the header of the static IP packet, illustrated in  FIG. 2 , which is a conventional full IP packet, is 20 bytes long, the compressed header of the IP packet according to the present invention, which includes only the IP version information (4 bits), protocol (4 bits), source address (4 bytes), and destination address (4 bytes), is 9 bytes long, a compression effect 55% better than that of the conventional technology can be achieved. 
         [0077]    In addition, the compression method according to the present invention can be used together with the conventional compression method in a mixed manner. That is, instead of the static IP packet which is periodically transmitted according to the conventional method, the compressed IP packet according to the present can also be transmitted. 
         [0078]      FIG. 5  is a flowchart illustrating a method of compressing an IP packet including a preprocessing process according to an exemplary embodiment of the present invention. 
         [0079]    Referring to  FIG. 5 , an IP packet is first input in operation  510 , and it is determined whether or not the input IP packet is fragmented IP packet in operation  520 . 
         [0080]    If the determination result indicates that the input IP packet is a fragmented one, a preprocessing operation for restoring a single IP packet by assembling the fragmented IP packet is performed in operation  530 . Then, as described above, a field value including a fixed value in the header of the IP packet is determined in operation  540 , the determined field value is removed from the header of the IP packet in operation  550 , and an IP packet which is formed only with the remaining field values, in other words excluding the removed field value, is generated in operation  560 . 
         [0081]    That is, the process for making a single IP packet of the fragmented IP packets is added before compression of the IP packet, which will now be explained with reference to  FIG. 6 . 
         [0082]      FIG. 6  is a diagram illustrating each operation for processing an IP packet according to an exemplary embodiment of the present invention. 
         [0083]    As illustrated in  FIG. 6 , in operation  620 , an original IP packet  610  is fragmented into a plurality of IP packets according to the size limitation (MTU) of a minimum IP packet size that can be processed by an apparatus for relaying an IP packet, such as a router or hub, in a communication network, such as an Ethernet network. 
         [0084]    Since the headers of these fragments of the IP packet do not have uniformity, it is necessary to make one IP packet through the preprocessing process according to the present invention so that the header can be the same as a template header. 
         [0085]    Accordingly, the fragmented IP packet is restored to a single IP packet in operation  630 , and by performing the compression method, described above, for the header of the preprocessed IP packet, a compressed IP packet is finally generated in operation  640 . 
         [0086]    In addition, when necessary, a process of converting the IP packet from IPv4 to IPv6 when the version of the IP packet is IPv4, or from IPv6 to IPv4 when the version of the IP packet is IPv6 may further be included in the preprocessing process. 
         [0087]      FIG. 7  is a flowchart illustrating a method of compressing and transmitting an IP packet through a broadcast network according to an exemplary embodiment of the present invention. 
         [0088]    Referring to  FIG. 7 , in addition to the compression method of an IP packet described above, that is, an operation  710  for determining a field value including a fixed value in a header of an IP packet, removing the determined field value, and generating an IP packet which is formed only with the remaining field values, an operation  720  for adding an encapsulation header with the generated IP packet as a payload, and an operation  740  for transmitting an encapsulation IP packet to which the encapsulation header is added are further included. 
         [0089]    When the compressed IP packet described above is transmitted through a broadcast network, a separate encapsulation process is performed. In this case, the compressed IP packet becomes payload data to be transmitted and an encapsulation header is added. The encapsulation header may include payload type information and other information such as a CRC value guaranteeing integrity of payload data. 
         [0090]    In order to describe the encapsulation header more specifically,  FIG. 8  illustrating a data structure of an IP packet encapsulated according to a transmission structure of a broadcast network according to an exemplary embodiment of the present invention can be referred to. 
         [0091]    The encapsulation IP packet is formed with an encapsulation header  810  and a payload  820 . The payload includes the IP packet (IP header  821 +payload  822 ) having the IP header  821  compressed according to the compression method described above. 
         [0092]    More specifically, the encapsulation header  810  may include transmission type information (payload_type)  811  indicating whether or not an IP packet included in the payload is a compressed packet. That is, when an IP packet is transmitted through a broadcast network, in operation  730  transmission type information (payload_type) indicating whether or not an IP packet included in the payload is a compressed packet is inserted. For example, if the transmission type information is “0x00”, it may indicate an ordinary IP packet, and if the transmission type information is “0x01”, it may indicate a compressed IP packet of the present invention. This transmission type information value can be expressed in a variety of ways. 
         [0093]    Accordingly, the inserted transmission type information is detected in a reception end later, and it can be determined whether or not data included in the payload of the encapsulation IP packet is a compressed IP packet. 
         [0094]      FIG. 9  is a flowchart illustrating a method of restoring a compressed IP packet which is transmitted through a broadcast network according to an exemplary embodiment of the present invention. 
         [0095]    Referring to  FIG. 9 , the method of restoring a compressed IP packet according to the current exemplary embodiment includes an operation  910  for determining a field value removed from the header of the compressed IP packet by using a characteristic of a broadcast network, an operation  920  for inserting a field value including a predefined fixed value to the determined field value, and an operation  930  for generating an IP packet by using the header having the inserted field value. 
         [0096]    This is performing in reverse order the IP packet compression method, described above. In operation  910  for determining which field values are removed, predefined fixed value or values that can be calculated through inference from the received encapsulation header are determined. 
         [0097]    Then, the predefined fixed value or values obtained by calculating through inference from the encapsulation header by extracting required parameters, are inserted into the removed field in operation  920 . This can be performed by referring to a template of an IP header which a reception end has in advance, as standard information. 
         [0098]    For example, in the case of the IHL, the length of an IP header is fixed as 20 bytes, and therefore the fixed value is inserted. In the case of Type of Service, a predefined fixed value (for example, “High Reliability”) can be inserted. In the case of “Total Length”, it indicates the total length of the IP packet, and can be calculated as the length value of the payload excluding the length of the encapsulation header. In the case of Identification, Flags, Fragment Offset, the flag value can be set as “no fragment”. In the case of Time to Live (TTL), a fixed value such as “1” can be used. 
         [0099]    In the case of Header Checksum, it can be recalculated according to a checksum calculation method defined in the RFC.791 with the header value of the restored IP packet as an input. In the case of “Options”, the value is not used, and therefore the field is left as being empty. 
         [0100]    Finally, an IP packet having all field values of a standardized header is generated in operation  930 , and transferred to an apparatus of a reception end in an operation for processing an IP packet. 
         [0101]      FIG. 10  is a flowchart illustrating a method of receiving and restoring an encapsulated IP packet which is transmitted through a broadcast network according to an exemplary embodiment of the present invention. 
         [0102]    Referring to  FIG. 10 , an operation  1010  for detecting from an encapsulation header added to a received encapsulation IP packet, transmission type information indicating whether or not an IP packet is a compressed packet is performed. 
         [0103]    Then, if the detected transmission type information indicates that the IP packet is a compressed packet in operation  1020 , the restoring method described above is performed, including determining a field value removed from the header of the compressed IP packet, inserting a field value including a predefined fixed value to the determined field value, and generating an IP packet by using the header having the inserted field value. 
         [0104]    As described above, since the transmission type information (payload_type) indicating whether or not an IP packet included in the payload is a compressed packet is included in the encapsulation header, when the detected transmission type information indicates a compressed IP packet and not an ordinary IP packet, for example, the restoring process of the current exemplary embodiment is performed in operation  1030 . 
         [0105]    This transmission type information can also be known through program specific information (PSI) such as a program map table (PMT) or a program association table (PAT) in a transport stream (TS) of an MPEG-2 system. 
         [0106]    It can also be known by using a packet identifier (PID). 
         [0107]    As described above, the exemplary embodiments of the present invention can be easily applied and implemented in a variety of broadcast transmission systems using IP packets, such as digital video broadcasting-handheld (DVB-H) and media forward link only (Media-FLO). 
         [0108]    The present invention can also be embodied as computer readable code on a computer readable recording medium. The computer readable recording medium may be any data storage device that can store data which can be thereafter read by a computer system. Examples of the computer readable recording medium include read-only memory (ROM), random-access memory (RAM), CD-ROMs, magnetic tapes, floppy disks, and optical data storage devices. The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion. 
         [0109]    While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present invention as defined by the following claims. The exemplary embodiments should be considered in descriptive sense only and not for purposes of limitation. Therefore, the scope of the invention is defined not by the detailed description of the invention but by the appended claims, and all differences within the scope will be construed as being included in the present invention.