The present disclosure relates to communication networks, and more specifically, to methods and systems for partial topic updates in an improved data distribution service.
A communication network may include network elements that route packets through the network. Some network elements may include a distributed architecture, wherein packet processing may be distributed among several subsystems of the network element (e.g., line cards). Thus, network elements may be modular and may include various sub-systems or sub-elements, which may include a shelf, a slot, a port, a channel and various combinations thereof. Each sub-system may be associated with a different software context, such as an execution thread for embedded software or embedded code that executes on the sub-system.
Accordingly, various software components associated with sub-systems in a network element (or among different network elements) communicate with one another, such as to exchange information, including status updates on hardware components associated with the sub-systems. The software architecture implemented in such network elements may include a data distribution service (DDS) for providing a standard interface to exchange information between ‘publishers’ and ‘subscribers’ using so-called ‘topics’ that in turn are comprised of individual fields. One example of a standard for DDS is promulgated by the Object Management Group (OMG) and defines a standardized exchange of data in a data-driven network architecture (see http://www.omg.org/spec/DDS/1.4/PDF/). In certain instances, a DDS may be incorporated into a network element software architecture as a middleware module having specific pre-defined functionality.
In one aspect, a disclosed method is for performing partial topic updates in an improved DDS. The method includes receiving, in an improved data distribution system (DDS), a partial topic update for a topic from a DDS publisher of the topic, the partial topic update consisting of a first field in the topic. In the method, second fields in the topic include all fields in the topic except the first field. In the method, the DDS publisher may be associated with a sub-system of a network element. Responsive to receiving the partial topic update, the method may also include reading the topic from the improved DDS, including the first field and the second fields, to determine a current DDS topic. The method may further include replacing the first field from the current DDS topic with the partial topic update to generate an updated DDS topic. In the method, the second fields in the current DDS topic are not modified. The method may still further include writing the updated DDS topic, including the partial topic update, to the DDS, wherein DDS subscribers to the topic receive the updated DDS topic.
In any of the disclosed embodiments of the method, reading the topic, replacing the first field, and writing the updated DDS topic are performed from a first thread with mutex locking with regard to the topic, where no other thread except the first thread is permitted to access the topic in the improved DDS after reading the topic and prior to writing the updated DDS topic.
In any of the disclosed embodiments of the method, the improved DDS is implemented in a network element. In the method, the topic may be an operational topic indicative of an operational status of the sub-system in the network element. In the method, the topic may include at least one of: events associated with the network element, alarms associated with the network element, and operational data associated with the network element. In the method, the DDS subscribers may include a screen user interface.
In any of the disclosed embodiments of the method, the improved DDS may be implemented in an embedded device.
In any of the disclosed embodiments of the method, the DDS publisher may not be enabled to publish at least some of the second fields in the topic.
Another disclosed aspect includes a network element enabled for performing partial topic updates in data distribution systems, and comprising a processor enabled to access memory media storing instructions executable by the processor to perform any of the embodiments of the method.
A further disclosed aspect includes non-transitory computer readable memory media storing instructions executable by a processor to perform any of the embodiments of the method.
For a more complete understanding of the present invention and its features and advantages, reference is now made to the following description, taken in conjunction with the accompanying drawings, in which:
In the following description, details are set forth by way of example to facilitate discussion of the disclosed subject matter. It should be apparent to a person of ordinary skill in the field, however, that the disclosed embodiments are exemplary and not exhaustive of all possible embodiments.
Throughout this disclosure, a hyphenated form of a reference numeral refers to a specific instance of an element and the un-hyphenated form of the reference numeral refers to the element generically or collectively. Thus, as an example (not shown in the drawings), device “12-1” refers to an instance of a device class, which may be referred to collectively as devices “12” and any one of which may be referred to generically as a device “12”. In the figures and the description, like numerals are intended to represent like elements.
Turning now to the drawings,
Each transmission medium 12 may include any system, device, or apparatus configured to communicatively couple network devices 102 to each other and communicate information between corresponding network devices 102. For example, a transmission medium 12 may include an optical fiber, an Ethernet cable, a T1 cable, a WiFi signal, a Bluetooth signal, and/or other suitable medium.
Network 100 may communicate information or “traffic” over transmission media 12. As used herein, “traffic” means information transmitted, stored, or sorted in network 100. Such traffic may comprise optical or electrical signals configured to encode audio, video, textual, and/or any other suitable data. The data may also be transmitted in a synchronous or asynchronous manner, and may be transmitted deterministically (also referred to as ‘real-time’) and/or stochastically. In particular embodiments, traffic may be communicated via a suitable communications protocol, including, without limitation, the Internet Protocol (IP). Additionally, the traffic communicated via network 100 may be structured in any appropriate manner including, but not limited to, being structured in frames, packets, or an unstructured bit stream.
Each network element 102 in network 100 may comprise any suitable system operable to transmit and receive traffic. In the illustrated embodiment, each network element 102 may be operable to transmit traffic directly to one or more other network elements 102 and receive traffic directly from the one or more other network elements 102.
Modifications, additions, or omissions may be made to network 100 without departing from the scope of the disclosure. The components and elements of network 100 described may be integrated or separated according to particular needs. Moreover, the operations of network 100 may be performed by more, fewer, or other components.
As noted above, network elements 102 may be modular and may include various sub-systems or sub-elements, such as a shelf, a slot, a port, a channel and various combinations thereof. Each sub-system or sub-element may be associated with a different software context, such as an execution thread for embedded software or embedded code that executes on the sub-system. Accordingly, network elements 102 may include corresponding processors and memory media for executing instructions to implement the different software contexts. Thus, the overall application software executing on a network element 102 may be comprised of different threads that execute asynchronously and at different individual controllers or processors, which are linked together within network element 102 by an internal network or bus. Additionally, the network element 102, or network 100, may communicate with a user interface application that enables a user, such as a network administrator, to monitor and control the operation and functionality of network elements 102, including monitoring and controlling the sub-elements and sub-components.
In order to facilitate communication of information, such as status and measurements associated with the individual the sub-elements and sub-components, a data distribution service (DDS) may be incorporated into the software architecture of network element 102. The DDS may be a middleware product that complies with an industry standard, such as promulgated by OMG in one example, while other DDS implementations may also be used in different embodiments. As such, the DDS system may be provided with certain fixed functionality for data distribution, but may have certain disadvantages, particularly when used in the network element software architecture. For example, the DDS may only support full topic updates, while different contexts of the application software on network element 102 may only be enabled to provide certain fields for a topic and not a full topic, because the topic fields may be associated with different sub-elements of network element 102 having their own execution thread.
In operation, as will be described in further detail herein, network elements 102 in network 100 may be enabled to support partial topic updates using an improved DDS, as disclosed herein. Specifically, a framework in the network element software architecture may provide a common application programming interface (API) for the application software used in network element 102. The framework API may include standardized functions available to the application software. The standardized functions in the framework API may include encapsulated functions to access the improved DDS. Additionally, the standardized functions in the framework API may be adapted to receive partial topic updates that are administered by the improved DDS, which may incorporate aspects of a standardized DDS, even when the standardized DDS used does not support partial topic updates. The framework API may accordingly receive a partial topic update, read the full topic from the improved DDS, swap the fields in the partial topic update from the topic, and write back the full topic to the DDS. The framework API may rely upon mutex locking to ensure integrity of the topics in the improved DDS. The framework API is implemented in a manner that is agnostic of topic type and topic fields for any topic and can work generically for any topic with any fields. The framework API can accordingly be used with new fields added to topics without any software modifications, which is desirable.
Referring now to
However, as noted, a standardized DDS may not support partial topic updates, in which some fields in topic 204 are generated by given publisher 202, while other fields are not (or cannot be) generated by the given publisher 202. The need for partial topic updates arises in the network element software architecture, because the sub-systems of network element 102 may each be DDS publishers 202 while executing in different contexts (or execution threads). As a result, the management of individual topics may become complex and may lead to customizations in the software architecture that are resource-intensive to perform and to maintain over time, and are, therefore, undesirable. Accordingly, an improved DDS with a framework API for supporting partial topic updates is disclosed herein. The improved DDS may support topic processing 300 with partial topic updates, as described herein.
Referring now to
In software architecture 300, DDS publishers are shown in the lower portion of
It is noted that software architecture 300 may provide various advantages. For example, software architecture 300 is not dependent on any given data model, such as the types, lengths, or formats of any given topic. Software architecture 300 allows application software in any context to process individual topic fields asynchronously and independently of one another. Publishing of one topic field may be separated from the publishing of another topic field in the same topic. New fields that may be later added to a topic in a change of the data model may be accommodated without relying on changes to the existing software already associated with the topic, such as existing DDS publishers. For example, when DDS middleware 306 includes Google Protocol Buffers to access topic messages, framework API 304 may be able to iterate over fields in any given topic and access or manipulate the values in the fields without having to specify any specific message type. Accordingly, framework API 304 may be agnostic to any given topic and the number and type of fields contained therein.
Referring now to
Another important feature of the methods and systems for partial topic updates in an improved DDS described herein is the implications for software maintenance. For example, as software example 400 is used over time, changes may be made to the topics in the improved DDS. For example, new topics may be added, or new fields may be added to an existing topic. However, because of partial topic updates supported by improved DDS 312, as fields are added to existing topics in improved DDS 312, existing DDS publishers 408 may remain unchanged with respect to their topic and field publishing functionality, and still operate with improved DDS 312. Even when a particular DDS publisher 408 previously performed a full topic update, but now performs a partial topic update because fields have been added to the topic, the DDS publisher 408 will still operate correctly without modification going forward, which is desirable because of the improved flexibility and reliability of the software that is achieved by not having to make modifications to existing software (which can be significant and substantial) as fields or topics are added in improved DDS 312.
The topic and fields shown in software example 400 may be referred to as so-called “operational topics”, which are used to communicate “operational data” indicative of various aspects of a current operational status of hardware components and connections between components included in network element 102, or included in another target platform of improved DDS 312.
The operational topics may include state of a given component (or entity), such as an optical interface, an Ethernet interface, a pluggable interface card (line card), and other similar components or entities. The state of the component may include general in-service or out-of-service properties (typically referred to as a “primary state”). The state of the component may also encompass properties that are determined by a condition or quality of the telecommunication signals transmitted (typically referred to as a “secondary state”). For example, a communication signal may be in an alarm state, or a given component may be out-of-service because another component on which the given component depends is out-of-service. In another example, a component could be out-of-service because a hardware element included in the component exhibits a fault. These exemplary state-related properties, among others, may be communicated using operational topics.
The operational topics may include various different hardware values, hardware settings, or hardware attributes that are displayed by user application 402, and which may be different for different components or entities. Thus, the operational topics may include trace messages (textual or numeric messages) that can be inserted into network traffic signals, such as by an end user in order to ensure that the network signals are connected properly from a sender to a receiver of the signals. The operational topics may also include trace messages that have been received in a network element. For example, the insertion of trace messages may be communicated from provisioning subsystem 608 to configuration handler 614 (see
The operational topics may describe provisioning attributes that certain hardware has been instructed to determine itself. One example of a provisioning attributes is the auto-negotiation feature that is specified in the Ethernet standard. When the auto-negotiation feature is enabled, the hardware (an Ethernet port) will negotiate the speed and duplex settings for an Ethernet connection based on the settings that are communicated from the hardware (Ethernet port) at the other end of the Ethernet connection. The operational topics may include various settings, such as auto-negotiation, which may be read and communicated using operational topics to enable users to have access to the settings via the operational topics.
The operational topics may include various types of calculations. For example, certain values may be calculated in low-level hardware or software layers, such as a spanloss value for reconfigurable optical add drop multiplexer (ROADM) network optical signals. Values, such as spanloss values, may be communicated using operational topics to enable users to have access to the values via the operational topics.
The operational topics may include other values such as incoming wavelengths for fiber optic signals, quality levels values, clockmode settings, signal labels (a value that communicates what kind of payload is carried over a customer traffic signal), among other examples.
The operational topics may include internal communications are not displayed by user application 402, but are internally used in certain software components. Some examples of internal communication include: a current shelf number, an IP address and a MAC address for a physical interface, a reason for the most recent system restart, firmware information for pluggable interface cards, among other internal information.
Referring now to
Method 500 may begin at step 502 by receiving a partial topic update in the improved DDS of a first field in a topic having second fields that include all the remaining fields, if any, except the first field. In some embodiments, the partial topic update includes a plurality of first fields, while the second fields include all the remaining fields in the topic except the first fields. At step 504, the topic is read from the DDS, including the first field and the second fields, to generate a current DDS topic. At step 506, the first field from the current DDS is replaced with the partial topic update to generate an updated DDS topic, where the second fields in the current DDS topic are not modified. At step 508, the updated DDS topic is written to the DDS.
Referring now to
In
In software architecture 600 shown in
Also shown in software architecture 600 in
At the bottom of
As noted above with respect to
Referring now to
As depicted in
In
As shown in
In various embodiments, network element 102 may be configured to receive data and route such data to a particular network interface 704 or port 706 based on analyzing the contents of the data or based on a characteristic of a signal carrying the data (e.g., a wavelength or modulation of the signal). In certain embodiments, network element 102 may include a switching element (not shown) that may include a switch fabric (SWF).
As noted previously, network element 102 may implement and execute improved DDS disclosed herein. For example, memory media 710 may store instructions corresponding to DDS middleware 306 and framework API 304. In some embodiments, memory media 710, memory media 716, or both may store instructions to implement a DDS publisher 202 or a DDS subscriber 206 (see
As disclosed herein, partial updates to an improved DDS are enabled by a framework API that enables different threads to asynchronously access a topic, while maintaining integrity of the topic in the improved DDS. New fields in a topic of the improved DDS may be added by new DDS publishers for the topic without altering the functionality of existing DDS publishers for the topic.
The above disclosed subject matter is to be considered illustrative, and not restrictive, and the appended claims are intended to cover all such modifications, enhancements, and other embodiments which fall within the true spirit and scope of the present disclosure. Thus, to the maximum extent allowed by law, the scope of the present disclosure is to be determined by the broadest permissible interpretation of the following claims and their equivalents, and shall not be restricted or limited by the foregoing detailed description.
This application claims priority from U.S. Provisional Application No. 62/357,773 filed Jul. 1, 2016, entitled “Optimization of Networks Carrying Super-Channels with Different Modulation Formats”.
Number | Date | Country | |
---|---|---|---|
62357773 | Jul 2016 | US |