Abstract:
Apparatus and method for concurrently converting multiple video and audio formats and sources into different formats. The main elements of the system are: a. A Media Format Matrix (MFM) module, having multiple input and output channels. b. A Communicator module, having various network interfaces. c. A Storage module. The implementation of the system is based on standard networking protocols, used to transfer the data between the internal MFM, Communicator and storage elements. The system platform is built around an internal switched network infrastructure. The management architecture provides a scalable infrastructure for controlling and monitoring single or multiple internal and external system modules, and in addition single, multiple or clusters of systems.

Description:
CROSS-REFERENCE TO RELATED PATENT APPLICATIONS  
       [0001]     This patent application is a national stage application of PCT International Application No. PCT/IL02/00366, filed 13 May 2002 having Publication No. WO 02/093925, which claims priority from and is related to U.S. Provisional Patent Application Ser. No. 60/291,310, filed May 17, 2001, this U.S. Provisional Patent Application is hereby incorporated by reference in its entirety herein. 
     
    
     FIELD OF THE INVENTION  
       [0002]     The present invention relates to the processing of multiple video and audio data stream sources and formats and, in particular, to concurrent conversion of multiple video and audio formats and sources into different video and audio formats, in a multi input—multi output scalable and flexible system.  
       BACKGROUND OF THE INVENTION  
       [0003]     The plurality of formats, interfaces, media types, access networks and physical connections involved in video/audio streaming makes the design, implementation and control of digital video/audio broadcast systems very complex.  
         [0004]     The following list describes exemplary common standards used today in broadcast systems: 
        1. Uncompressed Video/Audio: Analog Composite, Analog S-Video, Digital SDI     2. Video color systems: PAL, NTSC, SECAM     3. Digital Video/Audio compression formats: MPEG1, MPEG2, MPEG4, WMT (Microsoft Windows Media Technology), QT (Apple QuickTime), RN (Real Networks), H26L and other proprietary and non-proprietary formats.     4. Audio interfaces: Analog Balanced, Analog Unbalanced, Digital Balanced and Unbalanced.     5. Compressed Audio/Video transmission protocols (Media interfaces): DVB-ASI, DVB-S, DVB-C, DHEI, SDTI, DV etc.     6. Network interfaces: Ethernet, ATM, IP, SDH etc.     7. Network interface physical layer: Copper twisted pair, Optical cables, Coaxial cable, USB etc.     8. Network layer 4 protocols: UDP, RTP, TCP etc.     9. Storage interfaces: SCSI, IDE, IEEE1394-FireWire etc.     10. Management protocols: SNMP, Telnet, RS232, RTSP, XML etc.        
 
         [0015]     Existing video/audio processing systems require multiple and different apparatus, with individual and different control of every element. Some flexibility can be obtained by combining various building blocks (e.g. Encoders, Decoders, Network interfaces, Video interfaces), and connecting them by external wires to a common control unit. However, this practice requires coordination between many equipment vendors, consumes large office space, and hence lacks flexibility and scalability.  
         [0016]     There is a need for a modular, configurable system for seamless concurrent handling of various video and audio input/output requirements in a scalable, robust manner.  
       SUMMARY OF THE INVENTION  
       [0017]     The apparatus and method of the present invention allow for multiple video and audio formats and sources to be converted into different formats in a concurrent mode of operation.  
         [0018]     The main elements of the system of the present invention are: 
        a. A Media Format Matrix (MFM) module, having multiple input and output channels.     b. A Communicator module, having various network interfaces.     c. A Storage module.        
 
         [0022]     The implementation of the system is based on standard networking protocols, used to transfer the data between the internal MFM, Communicator and storage elements. The system platform is built around an internal switched network infrastructure. This internal infrastructure enables the introduction of multiple interfaces and processing modules to the system, thus providing extensibility for future elements that will be required as new technologies emerge.  
         [0023]     The use of standard network protocols for transmission of data and control inside the system provides flexibility, simplicity and scalability to the system. The internal network topology is designed to eliminate any single point of failure, thus increasing the system&#39;s reliability.  
         [0024]     The management architecture of the present invention provides a scalable infrastructure for controlling and monitoring single or multiple internal and external system modules, and in addition single, multiple or clusters of systems.  
         [0025]     The system of the present invention can be used for a large variety of video and audio streaming environments and applications, serving a large-scale number of receivers and transmitters. Using the concept of the present invention may serve as a basis for any video/audio streaming system architecture. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0026]      FIG. 1  shows the basic MFM interfaces according to a first embodiment of the present invention;  
         [0027]      FIG. 2  shows the MFM connected to the communicator unit according to a second embodiment of the present invention;  
         [0028]      FIG. 3  shows the MFM and communicator of  FIG. 2 , with added storage devices, according to a third embodiment of the present invention;  
         [0029]      FIG. 4  is a schematic representation of the system architecture and internal data flows; and  
         [0030]      FIG. 5  depicts an exemplary application using the system of the present invention. 
     
    
     LIST OF ABBREVIATIONS COMMONLY USED IN THIS DOCUMENT  
       [0031]     ADSL—Asymmetric Digital Subscriber Line  
         [0032]     ASI—Asynchronous Serial Interface  
         [0033]     ATM—Asynchronous transfer mode  
         [0034]     CO—Central Office  
         [0035]     DVB—Digital Video Broadcast  
         [0036]     DSLAM—Digital Subscriber Line Access Multiplexer  
         [0037]     IP—Internet Protocol  
         [0038]     MFM—Multimedia Format Matrix  
         [0039]     MPEG—Motion Picture Expert Group  
         [0040]     RTP—Real Time Protocol  
         [0041]     RTSP—Real Time Streaming Protocol  
         [0042]     SDH—Synchronous Digital Hierarchy  
         [0043]     SDI—Serial Digital Interface  
         [0044]     SNMP—Simple Network Management Protocol  
         [0045]     TCP—Transmission Control Protocol  
         [0046]     VOD—Video On Demand  
         [0047]     UDP—User Datagram Protocol  
         [0048]     USB—Universal Serial Bus  
         [0049]     WMT—Windows Media Technology  
       DETAILED DESCRIPTION OF THE INVENTION  
       [0050]     The apparatus and method of the present invention are intended to overcome the shortcomings of existing video/audio processing systems, used for interchanging audio and video streams over a variety of media and network infrastructures and protocols. The functionalities of the present invention include a variety of video and audio processing and transmission features (e.g. Encoding, Decoding, Transcoding, Pre-Processing, splicing Transmission &amp; Reception of video/audio streams over various network and media interfaces etc), that can all be active simultaneously, and are all implemented using a simple set of internal modules that will be described below. The apparatus of the present invention provides flexible means of handling the various video, audio and network protocols requirements, while the method of implementation assures flexibility and scalability.  
         [heading-0051]     The Media Format Matrix (MFM) Functionality  
         [0052]      FIG. 1  presents a first embodiment of the present invention. Media Format Matrix (MFM)  10  is connected to multiple input channels, such as compressed video/audio streams  20  and uncompressed video/audio streams  23 . MFM  10  is also connected to multiple output channels, such as compressed video/audio streams  21  and uncompressed video/audio streams  22 .  
         [0053]     Management unit  24 , such as HPOV (HP Open View), is connected to MFM  10  by means of a standard communication interface  52  (e.g. Simple Network Management Protocol—SNMP over IP over Ethernet)  
         [0054]     The multiple input and output interfaces allow for multiple input formats to be transcoded, encoded, decoded or otherwise processed into different output streams, thus performing a parallel video/audio formats conversion for as many inputs and outputs as required.  
         [0055]     The modular architecture of the MFM, as will be explained below, allows for multiple inputs and outputs of many types and for concurrent performance of multiple operations.  
         [0056]     The implementation method of the switching fabric on which the MFM is based provides, in addition, simple means of duplicating the incoming or the processed streams, by that allowing seamless production of multiple copies in multiple formats out of the same video and audio stream.  
         [0057]     The MFM has the capability of switching its mode of operation on-the-fly, thus enabling video splicing—i.e. seamless switching from one input source (e.g. movie) to the another (e.g. commercial clip) while maintaining an un-interrupted output.  
         [0058]     The MFM switching capabilities allow also for simple implementation of redundancy. The MFM will be able to switch from one input stream to another when a failure is detected in the original input interface. The flexibility of the system allows defining N components as redundant to M others (M+N redundancy).  
         [0059]     In addition, the implementation method of the MFM, Communicator and Storage modules (described below) allows also the utilization of internal components within the system as redundant to others.  
         [0060]     The basic functionality modes enabled simultaneously within the MFM are summed up in the following table:  
                                                                                     /   To                   From   /       Uncompressed   Compressed                                        Uncompressed   Pre-Processing   Encoding           Compressed   Decoding   Transcoding                      
 
 For the purpose of this document, the following video and audio processing definitions will apply: 
        a. “Encoding” or “Compressing”—The process of compressing audio and video from their uncompressed form (analog or digital) into a predefined compressed format (e.g. MPEG, WMT etc).     b. “Decoding”—the process of converting audio and video from a compressed form, into an uncompressed stream (analog or digital)     c. “Transcoding”—the process of converting audio and video from one compressed format to another compressed format. Format change can include conversion from one compression protocol to another (e.g. MPEG to WMT), or conversion of other stream parameters (e.g. Bit rate or picture resolution) while maintaining the same compression protocol.     d. “Pre-Processing”—the process of handling uncompressed video and audio stream, to enhance their visual/audible properties.        
 
         [0066]     Typical formats of compressed video and audio that may be implemented are, for example: MPEG1, MPEG2, MPEG4, REAL video, QuickTime and WMT. Examples of uncompress live video and audio: Composite, S-Video, SDI, balanced/Unbalanced audio etc.  
         [heading-0067]     Communicator Functionality  
         [0068]      FIG. 2  presents a second embodiment of the present invention. A communicator module  30  is connected to MFM  10 . The Communicator module  30  allows for accessibility to a variety of communication transport networks, such as but not limited to: IP, ATM and SDH. The functionalities of the Communicator module  30  in this embodiment of the invention are: 
        a. Receiving input streams  26  from a local or wide area networks and feeding them into the MFM.     b. Receiving  21  compressed streams from the MFM and transmitting them to local or wide area distribution networks. 
 
 Storage Functionality 
         
         [0072]     In a further embodiment of the present invention, depicted in  FIG. 3 , a storage device  32 , such as SCSI Raid, IDE, IEEE1394 FireWire or others, can be connected to the MFM  10  or the Communicator module  30 . The storage device  32  enables the system to act as a video on-demand (VOD) server. The use of the storage  32  may reduce the number of required format conversions by providing an “input once—output many” mode of operation. A file may be initially stored in the storage module  32  in a specific format, and later be retrieved upon request by the MFM, transcoded and simultaneously transmitted to its destination or destinations. For example, a content supplier can broadcast a video stream from one stored file to as many clients as desired simultaneously, in different video formats and on different network interfaces.  
         [0073]     An additional mode of operation is off-line transcoding. In this mode a video/audio file is stored in the storage module in a specific format, and later retrieved by the MFM, transcoded and saved back to the storage. This mode allows later a simple retrieval of the file without the need to simultaneously transcode it upon transmission.  
         [0074]     A similar storage device may also, or alternatively, be connected to the communicator module  30 .  
         [0075]     The storage connectivity adds more functionality modes to the MFM of the present invention, which may be summed up as follows:  
                                                                         /   To                   From   /       Uncompressed   Compressed   Storage                                Uncompressed   Pre-Processing   Encoding   Encoding       Compressed   Decoding   Transcoding   Optional transcoding       Storage   Decoding   Transcoding   Off line Transcoding                  
 
 MFM, Communicator and Storage—Method of Implementation 
 
         [0077]      FIG. 4  is a schematic representation of the MFM, Communicator and storage module architecture and internal data flow.  
         [0078]     The MFM is implemented on the basis of a star topology switching fabric. The switching fabric is implemented in a central module, connected separately to every other module in the system (hence “star” topology). The star topology ensures uninterrupted and uncoupled performance of each separate internal and external module, and allows for concurrent multiple operation of various functions, such as encoding, decoding and transcoding. The switching fabric module  40  can use standard network protocols for transmission and switching, e.g. IP over Ethernet, ATM or proprietary ones. IP over Ethernet network protocol is the preferred network protocol to be used by the switching fabric modules, as IP over Ethernet star topology agrees with the industry standard Picmg 2.16 and other emerging industry standards.  
         [0079]     To allow redundancy it is preferable to use a multi-star topology, in which several switching fabric modules are each connected to all other modules in the system. This way if one of the switching modules fails, another one can be used instead without interrupting the data flow in the system. A dual star topology (two switching fabric modules) is the preferred implementation, as it agrees with industry standard Picmg 2.16  
         [heading-0080]     Internal Modules Description  
         [0081]     a. Encoding modules  41 —The encoding modules receive uncompressed video and audio  66  or  67 , and compress (encode) them into a predefined format. The compressed stream is then transmitted  65  from the encoding modules to the MFM switching fabric module  40 .  
         [0082]     The system may include many encoding modules, used to encode to various compressed formats.  
         [0083]     b. Decoding modules  42 —The decoding modules receive compressed video and audio streams  63  from the switching fabric, decode them into predefined uncompressed format, and output the generated uncompressed streams  64 .  
         [0084]     The system may include many decoder modules, used to decode to many uncompressed audio/video formats (analog, digital etc).  
         [0085]     c. Compressed stream interface modules  44 —The compressed stream interface modules receive compressed stream  60  inputs, encapsulate them into the network protocol used by the switching fabric (e.g. IP over Ethernet), and transmit them  58  to the switching fabric module  40 . Alternatively the compressed stream interface modules  44  can be used to receive compressed streams from the switching fabric module  40 , and transmit them  60  outside the system in a predefined format (e.g. DVB-ASI).  
         [0086]     The compressed stream module can, for example, be used to receive DVB transmissions from a satellite feed, extract specific programs, and transmit them using IP over Ethernet encapsulation towards the switching fabric module  40 .  
         [0087]     Additional functionality that may be implemented in the compressed stream interface module is scrambling and descrambling (conditional access) of compressed signals to and from satellite and cable TV feeds.  
         [0088]     The system can include many compressed stream interface modules  44 , used as interfaces to many compressed audio/video transmission formats (like DVB-ASI, DVB-DHEI, DVB-S etc) and conditional access formats.  
         [0089]     d. Transcoding modules  43 —Each transcoding module receives a compressed streams  61  from the switching fabric  40 , transcodes it to a different format (or bit rate, or resolution), and feeds the compressed stream  62  back to the switching fabric  40 .  
         [0090]     The transcoding module  43  implementation can be based on a combination of decoder and encoder modules, with optional pre-processing modules, as the decoder is used to uncompress the incoming compressed stream  61 , and the encoder is used to compress the stream to its target compressed format  62 . The system can include many transcoding modules  43 , to enable concurrent conversion to and from various audio/video formats (e.g. MPEG2 to WMT, MPEG2 to MPEG4, MPEG2 to MPEG2 bit rate change etc).  
         [0091]     e. Storage modules  46 ,  47 —Each storage module receives compressed streams  55 ,  115  from the switching fabric or the NIC module and stores it. The storage module can then retrieve the compressed stored stream and transmit it back  56 ,  114  to the switching fabric  40  or NIC module  48  for further processing and transmission. The system can include many storage modules to allow scalable storage and retrieval of many streams simultaneously.  
         [0092]     f. Network Interface Card (NIC) modules  48 —The NIC module  48  performs the Communicator functionalities of the system. It transmits the streams  50  coming from the switching fabric  40  into the required network interfaces  53 , and receives streams  54  from the network  59  and directs them  51  towards the switching fabric  40 .  
         [0093]     The NIC module  48  serves as the system&#39;s front end towards the distribution network  59 . In addition the NIC module  48  provides connectivity to storage modules  47 . The system can include many NIC modules to support various network interfaces (e.g. IP, ATM, IP over ATM etc) and storage devices. 
        g. Pre-Processing modules  49 —The Pre-Processing modules receive uncompressed audio and video  68 , perform picture and audio quality enhancement processing upon these streams, and transmit the resultant uncompressed streams towards encoding module  41  or towards outside the system  69  for external processing.        
 
         [0095]     h. Additional modules (not shown)—as new video and audio processing techniques and new network protocols may emerge, the system flexible and scalable architecture allows seamless addition of new modules. The new modules need only to be equipped with the appropriate interface to the switching fabric module  40 , and to have the appropriate predefined control protocol interface to be integrated into the system.  
         [0096]     i. Controller modules  45 —The controller modules serve as the system&#39;s management and control center. The controller module is responsible for the configuration of all the other modules according to requests received via the system management interface  52 . The Controller module is responsible for monitoring the health of the internal system modules, and may activate redundant components upon failure of others. To allow redundancy of the controller module itself, more than one controller modules may be connected to the system. A Two Controller configuration is the preferred implementation, as it agrees with industry standard Picmg 2.16 
        j. Switching fabric modules  40 —The Switching fabric modules are responsible for managing all network streaming running between the various system modules, and for routing each packet/cell coming out of the modules towards its predefined destination.        
 
         [0098]     The Switching fabric module  40  also serves as: 
        1. Stream aggregator; by delivering all network outbound streams to the NIC module  48 .     2. Multicast router—duplicating a single stream and transmitting its copies to several processing modules. This way the system can produce several streams in several formats out of a single compressed or uncompressed stream introduced as input. The Multicast functionality can be based on standard routing algorithms (e.g. IP multicast).        
 
         [0101]     When implementing Picmg 2.16 compliant switching fabric described above, a standard off the shelf switching board may be used (e.g. Performance Technologies PTI cpc4401).  
         [heading-0102]     Data flow—Utilization of the MFM, Communicator and Storage Modules  
         [0103]     The internal system modules described above can be used in a variety of combinations to produce all the required functionalities of the system. Following is an exemplary list:  
         [heading-0104]     a. Encoding Functionality  
         [0105]     An uncompressed input stream  66  enters the system via the appropriate interface located on the encoding module  41 . Alternatively, the uncompressed stream can be introduced  68  to the system via a pre-processing module  49 , enhanced by this module, and then fed  67  to the encoder module.  
         [0106]     The encoding module compresses the stream to the desired format and bit rate, and the resultant compressed stream is then transmitted  65  towards the switching fabric  40 . The compressed stream can then be directed by the switching fabric towards the NIC  48  module and transmitted to the distribution network  59 , and/or transmitted to a compressed stream interface module  44 , to be transmitted outside on a compressed stream interface  60  (e.g. DVB-ASI). The flexible architecture of the system allows in addition to monitor the quality of the resultant compressed stream. This can be achieved by configuring the switching fabric  40  to generate an additional copy of the compressed stream received from the encoder  41  towards a decoder module  42 . The decoder module  42  will decode the compressed stream, and provide an uncompressed audio/video signal  64  that can be compared to the original uncompressed stream  66  or  68 .  
         [heading-0107]     b. Decoding Functionality  
         [0108]     A compressed stream enters the system via the compressed stream interface module  44  (e.g. DVB input feed from satellite), and is transmitted in its compressed format  58  to the switching fabric module. Alternatively the compressed stream may be received from the network  59  (e.g. internet video clip), received by the NIC  48  module, and then fed  51  to the switching fabric module  40 . The compressed stream is then directed  63  by the switching fabric module to one or more decoding modules  42 , which decode the stream to its uncompressed format and outputs it  64 .  
         [heading-0109]     c. Transcoding Functionality  
         [0110]     A compressed stream enters the system via the compressed stream interface module  44  (e.g. DVB input feed from satellite), and is transmitted in its compressed format  58  to the switching fabric module. Alternatively the compressed stream may be received from the network  59  (e.g. internet video clip), received by the NIC  48  module, and then fed  51  to the switching fabric module  40 .  
         [0111]     The compressed stream is then directed  61  by the switching fabric module to one or more transcoding modules  43 , which transcodes the compressed stream to its desired format (or bit rate, or resolution) and feeds the stream back  62  to the switching fabric  40 .  
         [0112]     The transcoded stream can now be directed by the switching fabric: towards NIC modules  48  to be transmitted to the network  59 , and/or towards Compressed Stream Interface modules  44  to be transmitted  60  as compressed media, and/or  
         [heading-0113]     towards decoding modules  42  for decoding to allow content monitoring and viewing  64 .  
         [heading-0114]     d. Video on Demand Functionality  
         [0115]     A compressed stream enters the system via the compressed stream interface module  44  or via the NIC module  48 . The stream is fed through the switching fabric module  40  or directly via the NIC to the storage module  46  or  47  and saved as a file.  
         [0116]     Alternatively, the stream may enter the system in an uncompressed form  68 ,  66 , encoded by one of the encoding modules  41 , and then directed as compressed stream towards the storage modules  46 ,  47 .  
         [0117]     When the stream needs to be retrieved, it is fed back  56 ,  114  from the storage module towards the switching fabric  40  which directs it  61  towards one of the transcoding modules. The stream is then transcoded to the desired format (or bit rate, or resolution) and transmitted  62  as described above from the transcoding module to the switching fabric  40 , and from there directed towards the NIC module  48  and the network  59 , and/or directed from the switching module to one or more compressed stream interface modules  44  as compressed media  60 .  
         [0118]     Alternatively, the transcoded stream can be saved back  55 ,  115  into to the storage module (off line transcoding functionality). Later retrieval of the transcoded file will only call for transmission of the stream from the storage towards the switching fabric  40 , and then to the NIC module  48  or to Compressed stream interface module  44  to be transmitted outside.  
         [heading-0119]     Management and Control Architecture:  
         [0120]     The external manager  24  ( FIG. 4 ) configures and monitors the system, using management interface  52  to the controller module  45 . The controller module  45  controls the system elements (modules) via the switching fabric module  40 . The preferred management protocol is SNMP, as the same SNMP MIB can be implemented both in the controller module  45  and the rest of the internal and external modules. This way the system is composed out of modular components with identical management interfaces, each controlled individually by the controller module  45 , or directly by the external manager  24 .  
         [0121]     As IP over Ethernet protocol used by the system&#39;s switching fabric for internal streaming and control is identical to the protocols commonly used for local area networks, the system architecture allows simple connectivity of the switching fabric modules to an external local area network, by that allowing: 
        a. Control of external network elements (e.g. Routers, Video Switchers etc) by the internal controller module  45 .     b. Connecting several MFM units to form an MFM cluster. 
 
 Exemplary System description 
       
 
         [0125]      FIG. 5  presents an exemplary ADSL (Asymmetric Digital Subscriber Line) video distribution system, to be implemented with the system of the present invention, serving several functions:  
         [0126]     As a HeadEnd perspective, the system can be used as a main encoding or transcoding engine, where several different inputs and formats are encoded to a variety of output streams, which can then be transported on any packet/cell switching based networks.  
         [0127]     In a Central Office perspective, the system can provide video server system functionalities, by that allowing reduction of streams storage space required. In addition the Central Office system can be used to transcode and transmit audio and video inserted locally.  
         [heading-0128]     a. HeadEnd  70  Data Flow:  
         [0129]     At the service provider&#39;s HeadEnd, live uncompressed/compressed video sources  76 ,  77  are fed to the MFM. Compressed streams may originate from satellite feeds or an IP distribution network  76 . Uncompressed streams may originate from Video tape recorders or TV cameras.  
         [0130]     The MFM converts the incoming streams to formats that can be distributed in the service provider&#39;s distribution network  80  (typically low and constant bit rate streams). In addition, incoming content preview  78  is provided using the decoding functionality of the MFM.  
         [0131]     The Communicator element  73  transmits the converted streams to the Wide Area Network (WAN)  80  for distribution.  
         [heading-0132]     b. Central Office (CO)  90  Data Flow:  
         [0133]     In the Central Office (CO) local compressed/uncompressed content is introduced into the MFM  92  in the same manner described above for the HeadEnd. The MFM  92  transcodes the local content to a format that can streamed over the DSL network (typically low and constant bit rate). The Communicator  93  is then used to transmit the transcoded streams over the CO&#39;s ATM network towards the customers&#39; homes via the DSL lines. In addition, local storage  94  provides Video on demand functionalities to the customers connected to the CO.  
         [0134]     Local and external feeds are streamed out of the CO via a DSL Service Access Multiplexer (DSLAM)  98  to the customers&#39; homes.  
         [heading-0135]     c. Home  100  Data Flow:  
         [0136]     At the customers homes the video streams are received via the telephone line, and converted to Ethernet by an ATU-R  108  device. The streams are then transmitted to a TV set-top box  110  or to a home PC  106  for viewing.  
         [0137]     It is apparent from the example described above that the variety of video and audio processing and streaming functionalities needed to implement the network described in  FIG. 5  can all be achieved using the system of the present invention. By deploying the apparatus described in the present invention instead of a variety of different existing devices, the service provider deploying the ADSL network can reduce significantly its maintenance costs and occupied office space, gaining the inherent flexibility and scalability that the system of the present invention provides.