In Point to Point communication system (“PTP” ) messages or data from a source node to a destination node are transmitted over a dedicated channel or line between the source and destination nodes (i.e. software processes or processor nodes). PTP systems allow communication between only two nodes or entities.
Point to multipoint (singlecast, multicast, or broadcast) connected entities, within a communication system can only receive and send messages from the source to a destination node through a hub or host. The messages or data in these systems contain information indicating the address or identity of the target node. In PMP system using a broadcast method all the connected entities or nodes receive the message only those target destinations intended to receive the information process the information, in such system an additional link is required to send messages to the hub. In PMP communication systems a message sent to a target node from a source node travels to the hub and then from the hub to the target node. Therefore, as communication between the nodes increases the hub or host can become an unnecessary choke point limiting the rate of data exchange. Furthermore when multiple target nodes are intended, the hub may be required to copy the message, one fore each additional target node, thus placing further strain on the resources of the communication system.
A multipoint to multipoint (MTM) system allows each connected, or subscribing entity to communicate messages with any of the other connected or subscribing entities. Consequently, each entity in the multipoint-to-multipoint system must maintain an address table containing the address of each entity in the system in order to facilitate communications in the MTM system. This requirement presents problems for large MTM systems. For example, maintaining large address tables for each system entity requires a large amount of memory space and therefore increases the cost of the system. Additionally, the probability of having an address error in the system increases as a function of the number of addresses that need to be stored in memory. Furthermore, the addition and/or deletion of an entity from the system requires updating each address table on the system which significantly increases the maintenance overhead of the system.
Sending messages to desired entities in prior art methods PTP, PMP and MTM requires the sending entity to know the address of the intended recipient entity. Processes that share information back and forth with other processes need the address or specific connection to communicate or directed the message.
Prior art processors are typically hard coded, that is their connections to other processors and respective databases are predetermined and specifically referenced in the code. Changes in system configurations and access to additional databases requires re-coding each processor not to reflect the changes and additions.
Therefore, there is a need for a communication system and method in an MTM system that overcomes the above-mentioned problems.
These and many other objects and advantages of the present invention will be readily apparent to one skilled in the art to which the invention pertains from a perusal of the claims, the appended drawings, and the following detailed description of the preferred embodiments.
A common channel server is a software messaging entity that facilitates communication between multiple processor nodes. The common channel server is a connectionless implementation of a UNIX standard Remote Procedure Call (RPC). RPC is a connection-oriented implementation of classic point to multi-point models. Specifically, with a common channel server the endpoints or processor nodes do not require the target's address to send a message, thereby providing an improvement that reduces software coupling, improve portability and encourages reuse.
The Common Channel Server mechanism, which is hidden from the endpoints, can utilize either a connectionless or connection-oriented approach, depending in large part upon the communication medium. The common channel server abstracts the communication medium into a generic form in much the same manner as a hardware abstraction layer.
An embodiment of a software-based system for facilitating connection-oriented data communications according to the invention is shown in
Another embodiment of a communication system utilizing a Common channel server mechanism is shown in
Each of the Common channel nodes has public and private channels. The public channel (the common channel) allows communication between the Common channel nodes. The private channel allows communication on same board of a particular Common Channel server. The nodes are operably connected by a communication thread 220, which carries the messages via the channel. A channel represents a data service that processes or agents can subscribe and/or contribute to.
In the implementation of the CCS system there is no code coupling between the processes, such coupling is supplanted by the access provided by the Common Channel Server. Furthermore, the processes or agents are unaware and unaffected by the number of nodes or other processes that hang off a channel. The process addresses the common channel and all remote processor on that common channel are able to receive the data message.
The common channel agents relay the data messages from the common channel to the respective processor node and vice versa. The common channel agent also formats the message for use by the respective processor node.
Each common channel maintains a list of known subscriber nodes, as well as a list of attached subscriber nodes. The common channel uses an auto-discovery process that initiates when a subscriber node attaches or is removed for the common channel.
For illustration a “notifiy_update” message is sent from the node agent 310 of line card A regarding a slot ID update. The node agent 310 passes the message through the reconfigure channel. The switch card sends records, needed to reconfigure switch card A over the distribution channel (singlecasted to specific CCS on the line Card A). The switch cards then sends a reconfigure command regarding the slot ID update over the reconfigure channel. Every processor on the reconfigure channel sees the reconfiguration message and reconfigures itself as necessary.
The common channels also facilitate auto-discovery as alluded to above. Several techniques utilizing the common channel can be used. The master processor can send a generic update message periodically requesting status, in which the processors return a status. The master would thus recognize new processor nodes. Alternatively, over the common channel, the newly attached processor would send out a notify update. The master processor would follow both methods by a response command over a common reconfigure channel reconfiguring the system including the newly attached processor.
a plurality of software interface modules, such as common channel servers 430 (CCS) each capable of sending data to and receiving data from a unique set of select ones of said software modules 440 via said first communication channel 450p and operatively connected to said second communication channel 450s. Each of said interface modules 430 communicate with other interface modules over said second communication channel 450s by sending and receiving data without requiring the address of the sending or the receiving. The communication may be facilitated with an interface or software module that is connection oriented and without requiring link establishment and link tear down procedures to thereby provide connection-oriented data communication.
The embodiment shown in
While preferred embodiments of the present invention have been described, it is to be understood that the embodiments described are illustrative only and the scope of the invention is to be defined solely by the appended claims when accorded a full range of equivalence, many variations and modifications naturally occurring to those of skill in the art from a perusal hereof.
The present application is related to co-pending and commonly assigned PCT International Application No. PCT/US02/03323 entitled “Dynamic Bandwidth Allocation”, PCT/US02/03322 entitled “Demodulator Bursty Controller Profile”, PCT/US02/03193 entitled “Demodulator State Controller”, PCT/US02/03189 entitled “Frame to Frame Timing Synchronization”, the disclosures of which are hereby incorporated herein by reference. The aforementioned applications are related to commonly assigned U.S. Pat. No. 6,016,313 entitled “System and Method for Broadband Millimeter Wave Data Communication” issued Jan. 18, 2000 and currently undergoing two re-examinations under Application Ser. No. 90/005,726 and application Ser. No. 90/005,974, U.S. Pat. No. 6,404,755 entitled “Multi-Level Information Mapping System and Method” issued Jun. 11, 2002, U.S. patent application Ser. No. 09/604,437, entitled “Maximizing Efficiency in a Multi-Carrier Time Division Duplex System Employing Dynamic Asymmetry”, which are a continuation-in-part of the 6,016,313 patent which are hereby incorporated herein by reference. The present application is related to co-pending and commonly assigned U.S. patent application Ser. No. 10/183,383, entitled “Look-Up Table for QRT”, U.S. patent application Ser. No. 10/183,488, entitled “Hybrid Agent-Oriented Object Model to Provide Software Fault Tolerance Between Distributed Processor Nodes”, now U.S. Pat. No. 6,868,067, U.S. patent application Ser. No. 10/183,486, entitled “Airlink TDD Frarne Format”, U.S. patent application Ser. No. 10/183,492, entitled “Data-Driven Interface Control Circuit and Network Performance Monitoring System and Method”, U.S. patent application Ser. No. 10/183,490, entitled “Virtual Sector Provisioning and Network Configuration System and Method”, U.S. patent application Ser. No. 10/183,489, entitled “System and Method for Supporting Automatic Protection Switching Between Multiple Node Pairs Using Common Agent Architecture”, U.S. patent application Ser. No. 10/183,384, entitled “System and Method for Transmitting Highly Correlated Preambles in QAM Constellations”, the disclosures of which is hereby incorporated herein by reference.