Search

US-12619448-B2 - Defining architectures using declarative parametric language

US12619448B2US 12619448 B2US12619448 B2US 12619448B2US-12619448-B2

Abstract

A method is described in which a processor receives a file containing declarative parametric language. The declarative parametric language is parsed by the processor to generate a data structure. Then, within a binary executable file, at least three software components are combined based upon the data structure. The software components include a component data collector, a feature manager, and a managed object. The component data collector is software configured to collect data from at least one of a hardware component and a software component. The feature manager is software configured to selectively obtain first data from at least one component data collector and provide second data to at least one managed object. The managed object is software configured to expose the second data outside of the binary executable file.

Inventors

  • Thirumala Raju Mone
  • Santanu Sen

Assignees

  • INFINERA CORP.

Dates

Publication Date
20260505
Application Date
20190517

Claims (18)

  1. 1 . A method, comprising: receiving a file by a processor associated with a device having at least one hardware component, the file containing declarative parametric language, the declarative parametric language being computer programming code defining a data structure in a human-readable format, the data structure being one of a plurality of data structures; parsing the declarative parametric language in the file containing declarative parametric language, by a declarative language parser running on the processor, to generate the data structure; combining, within a binary executable file, at least three software components based at least in part upon the data structure, the at least three software components including a component data collector, a feature manager, and a managed object, the component data collector being a software component of the binary executable file configured to collect first data from at least one of the at least one hardware component and a software component, the feature manager being a software component of the binary executable file configured to selectively obtain first data from the component data collector and provide second data to the managed object, the managed object being a software component of the binary executable file configured to expose the second data outside of the binary executable file, the at least three software components being regressed, wherein the feature manager modifies the selectively obtained first data by combining the selectively obtained first data with third data to provide the second data, the third data being based on a mathematical function associated with the data structure; and generating, with the declarative language parser, a one-to-one map of each of the plurality of data structures.
  2. 2 . The method of claim 1 , wherein the data structure has at least one mapped property and at least one exposed property, the mapped property comprising an identifier of one or more Component Data Collector for collecting the first data, and the exposed property comprising a data structure for exposing the second data.
  3. 3 . The method of claim 1 , wherein the data structure has at least one mapped property and at least one exposed property, the mapped property comprising an identifier of one or more Component Data Collector for collecting the first data, and the exposed property comprising a data structure for exposing the second data.
  4. 4 . The method of claim 1 , wherein the device is a network node.
  5. 5 . The method of claim 1 , wherein the declarative parametric language in the file specifies a schema for the second data, and wherein the second data conforms with the schema.
  6. 6 . The method of claim 1 , wherein collecting data includes collecting data from a firmware component, the firmware component being an intermediary between the at least one hardware component and the software components.
  7. 7 . The method of claim 1 , wherein exposing the second data outside the binary executable file includes exposing the second data to an exposure interface of the device.
  8. 8 . The method of claim 1 , further comprising: receiving, by the processor from an EEPROM, an initialization data for the component data collector having at least a data format for the first data and a hardware configuration data for the at least one hardware component; and wherein combining the at least three software components includes the component data collector being software configured to collect first data from at least one of the hardware component and the software component, wherein the first data has the data format.
  9. 9 . The method of claim 1 , wherein receiving a file by a processor associated with a device having at least one hardware component includes the at least one hardware component comprising one or more of: a photo diodes and associated driver, a Raman amplifier module, a variable optical attenuator, a gain block, a fixed optical add drop multiplexer card, and a reconfigurable optical add drop multiplexer card.
  10. 10 . A system, comprising: a processor; a hardware component; and a non-transitory computer readable medium storing computer executable instructions that when executed by the processor causes the processor to: receive a file containing declarative parametric language, the declarative parametric language being computer programming code defining a data structure in a human-readable format, the data structure being one of a plurality of data structures; parse, with a declarative language parser running on the processor, the file containing declarative parametric language to generate the data structure; and combine, within a binary executable file, at least three software components based at least in part upon the data structure, the software components including a component data collector, a feature manager, and a managed object, the component data collector being a software component of the binary executable file configured to collect a first data from at least one of the hardware component and a software component, the feature manager being a software component of the binary executable file configured to selectively obtain the first data from the component data collector and provide a second data to the managed object, the managed object being a software component of the binary executable file configured to expose the second data outside of the binary executable file, the at least three software components being regressed, the declarative language parser generating a one-to-one map of each of the plurality of data structures, wherein the feature manager modifies the selectively obtained first data by combining the selectively obtained first data with third data to provide the second data, the third data being based on a mathematical function associated with the data structure.
  11. 11 . The system of claim 10 , wherein the data structure includes a first identifier identifying the component data collector, a second identifier identifying the feature manager, and a third identifier identifying the managed object, and at least one of a rule and parameter, the rule or parameter specifying an operation or constraint.
  12. 12 . The system of claim 10 , wherein the data structure has at least one mapped property and at least one exposed property, the mapped property comprising an identifier of at least one Component Data Collector for collecting the first data, and the exposed property comprising a data-structure for exposing the second data.
  13. 13 . The system of claim 10 , wherein the device is a network element.
  14. 14 . The system of claim 10 , wherein the declarative parametric language in the declarative parametric language file specifies a schema for the second data, and wherein the second data conforms with the schema.
  15. 15 . The system of claim 10 further comprising a firmware component and the at least one component data collector, the firmware component being a second non-transitory computer readable medium storing computer executable instructions that when executed by the processor causes the processor to collect a hardware data from each of the hardware components and store the hardware data to a shared memory location, the shared memory location being a location in memory that can be accessed by both the firmware component and the software component, and the at least one component data collector being software further configured to collect data from a shared memory location.
  16. 16 . The system of claim 10 further comprising an exposure interface comprising a display, the display being configured to show the second data bound to the data structure of the managed object.
  17. 17 . The system of claim 10 , further comprising: an EEPROM storing an initialization data for the component data collector having at least a data format for the first data and a hardware configuration data for the hardware component; and wherein the component data collector is further configured to collect first data from the hardware component, the first data has the data format.
  18. 18 . The system of claim 10 , wherein the hardware component comprises one or more of: a photo diodes and associated driver, a Raman amplifier module, a variable optical attenuator, a gain block, a fixed optical add drop multiplexer card, and a reconfigurable optical add drop multiplexer card.

Description

BACKGROUND As the pace of the development and use of technology increases and expands to new market segments, so too does the demand for hardware that can maintain or surpass the current network capacity need for running the technology. Due to the ever-increasing use of the internet and the need for quick retrieval of large amounts of data, this demand on hardware is especially true in the data network field. Additionally, the ever-changing technology demands on a network service provider require network service providers to add new features or configurations to existing hardware at an ever-increasing rate. Traditionally, when the capacity of a network node is exceeded thereby creating a bottleneck for data transmissions or when new features or configurations are developed to increase node efficiency or capability, there are three options available to meet these new requirements. The first option is to increase the number of nodes; however, this is not always an efficient solution as increasing the number of nodes can increase the costs of running additional nodes and can decrease efficiencies due to software incompatibilities between the nodes. The second option is to upgrade the node to a newer hardware that can more efficiently handle the demand of the network and eliminate the bottleneck. Upgrading the hardware can be done in at least two ways, adding new hardware components to the device that is already present or replacing the device with another device having new hardware. This hardware replacement solution can also decrease efficiencies due to possible software incompatibilities between the nodes as well as the need to compile and validate new software in order to take advantage of the newly added hardware features. The third option is to update the software running on the network node to more efficiently use the hardware present. The solution of updating the software can, again, increase costs to compile the software and update the device, decrease efficiency between devices running different software, increase validation overhead, and introduce bugs in the code, that is computer code that does not run as expected, does not perform its intended task, or breaks functionality already in place. The need to add new features and configurations is constant and pressing. Typically, adding a new feature or configuration may require either a replacement of or an update to the software of each node in the system. This kind of update is cost prohibitive to implement on a short timescale and would need to be rolled out over an extended period of time. Because the development of new features and configurations will typically exceed the rollout pace, by the time the new feature or configuration is rolled out to the entire system, an improvement has already been made that needs to be implemented. If any of these improvements break existing compatibility, segments of the network may be inoperable. What is needed is a method for, without breaking existing functionality, quickly and efficiently adding support for new features and configurations, reducing product development lifecycle, implementing plug-n-play and zero-touch software, and introducing new hardware quickly and efficiently, and a system to implement this method. SUMMARY The problem of quickly and efficiently adding support for new features and configurations, reducing product development lifecycle, implementing plug-n-play and zero-touch software, and introducing new hardware quickly and efficiently, all without breaking existing functionality, is solved by parsing declarative parametric language in a file to a declarative language parser. The declarative language parser generates a data structure, and combines, within a software application binary executable file, at least three software components based at least in part upon the data structure. The software modules and the source code are atomized, that is decoupled, which allows single-component restarting. Thus, when any software component is updated or modified, the software component can be restarted independent of the other software components or hardware components providing upgradeability without impacting the up-time of other hardware components or software components. In one embodiment, the software components can be selected from a group consisting of at least one each of a component data collector, a feature manager, and a managed object. The component data collector is software configured to collect data from at least one of a hardware component and a software component. The feature manager is software configured to selectively obtain first data from at least one component data collector and provide second data to at least one managed object. The managed object is software configured to expose the second data outside of the binary executable file. Thus, a new combination of the software components within the binary executable file to provide a new feature or update an existing feature can