The present application relates generally to communication and data networks and, more specifically, to the use of XML-based resource data structures for configuring and managing such networks.
Computer software is used in a wide range of applications, including business (or enterprise) applications, telecommunications, aerospace and defense systems, industrial (e.g., factory or process) control systems, agriculture, energy production and distribution, education, entertainment, and a plethora of other applications. In these applications, computer software frequently provides functions, methods, and/or behaviors that operate upon data that is formatted according to standard protocols.
Network element devices (e.g., cellular base stations or controllers, mobile switching centers, wireless access points, gateways, SoftSwitches, wireless handsets, server nodes, etc.) are complex computing platforms containing many physical components. These physical components may include radio frequency (RF) cards, interface boards, channel elements, trunk lines, vocoders, backplanes, process controllers, and the like.
From an operational (or management) viewpoint of the network, each of these components is typically referred to as a “managed resource”. Managed resources may also include logical resources such as frequency assignments (FAs) of cellular base stations, base station sectors, operational measurement groups, and the like. Additionally, the network element device itself may be regarded as a managed resource in some instances. Thus, the network element may be regarded as a managed resource containing other managed resources.
Managed resources support operational control via commands and internal control via system events. A managed resource may be represented within executable software code by one or more data structures that are referred to as a “resource data structure” (RDS). A resource data structure (RDS) describes the managed resource in terms of a collection of attributes that may be accessed programmatically. Each attribute is given a type according to its characteristics (e.g., string, character, integer, long, array, table, etc.) Each attribute has a current value as stored in the resource data structure. Resource data structures are accessed in support of internal operations and network management operations, such as update, retrieve, notify, lock, shutdown, and others.
However, when the format of a resource data structure is changed during a network update or during an error correction procedure (i.e., a patch operation), software applications that use the resource data structure often must be modified to accommodate the changed data format. Various approaches have been used to reduce the amount of change that must be made to application software when extending the software to new functions or to support new objects. For example, in class-based programming (e.g., C++, Java), sub-classes are derived from a base class to provide functionality for different data formats. However, this approach requires that the derived classes be conceived of and developed from the beginning.
Additionally, while the legacy application software may not need to be changed, new application software may be required to support the methods appropriate for the new data format. The problems associated with modifying software programs to accommodate changes in data structure formats is particularly acute in network applications where dozen, hundreds, or even thousands of network elements may require modification to accommodate the changed data formats.
Therefore, there is a need in the art for improved methods and structures for accommodating changes in resource data structures in network environments. In particular, there is a need for methods and structures for accommodating changes in resource data structures that do not require extensive changes in software applications that access the resource data structures.
An improved method of resource data structure (RDS) implementation is provided for use in a variety of networks. The resource data structure is suitable for configuring a network element of the network and is implemented using extensible Markup Language (XML) code.
An improved network that uses XML-based resource data structures also is provided. The network comprises: i) a plurality of network elements; ii) a configuration manager for managing and configuring the plurality of network elements; and iii) a plurality of resource data structures suitable for configuring the plurality of network elements of the network. Each of the resource data structures is implemented using extensible Markup Language (XML) code.
A method of managing a plurality of network elements in a network also is provided. The method comprises the steps of: i) accessing a first resource data structure suitable for configuring a first network element of the network, wherein the first resource data structure is implemented as extensible Markup Language (XML) code; and ii) parsing the XML code of the first resource data structure and configuring the first network element. The method further comprises the step of generating from the XML code associated with the first resource data structure a binary resource data structure that may be accessed by the first network element. The method also comprises the step of storing data attribute values associated with the first resource data structure in a shared memory that may be accessed by the first network element.
Before undertaking the DETAILED DESCRIPTION OF THE INVENTION below, it may be advantageous to set forth definitions of certain words and phrases used throughout this patent document: the terms “include” and “comprise,” as well as derivatives thereof, mean inclusion without limitation; the term “or,” is inclusive, meaning and/or; the phrases “associated with” and “associated therewith,” as well as derivatives thereof, may mean to include, be included within, interconnect with, contain, be contained within, connect to or with, couple to or with, be communicable with, cooperate with, interleave, juxtapose, be proximate to, be bound to or with, have, have a property of, or the like; and the term “controller” means any device, system or part thereof that controls at least one operation, such a device may be implemented in hardware, firmware or software, or some combination of at least two of the same. It should be noted that the functionality associated with any particular controller may be centralized or distributed, whether locally or remotely. Definitions for certain words and phrases are provided throughout this patent document, those of ordinary skill in the art should understand that in many, if not most instances, such definitions apply to prior, as well as future uses of such defined words and phrases.
For a more complete understanding of the present disclosure and its advantages, reference is now made to the following description taken in conjunction with the accompanying drawings, in which like reference numerals represent like parts:
The improved resource data structures disclosed herein are implemented as extensible Markup Language (XML) files that define the data structure(s) of resource type(s) to be processed by reusable (or generic) software application(s) within network elements. A software application accesses an XML file defining the data structure of one or more objects and the software application then adapts its processing in accordance with the XML definition of the data structure of the objects. The use of XML files allows the software applications to be written generically (i.e., without the use of hard-coded data structures). In effect, the programming data structure is read from the XML file, stored in memory, and operated on by the generic software application.
Advantageously, implementing resource data structures in XML format provides a mechanism for managing telecommunication network elements (NEs) that is adaptable to process management information for newly defined network elements, without modifying the executable software applications. In a telecommunication network environment, network elements may include, for example, core packet switches, wireless base stations, WiFi access points, routers, packet data server nodes (PDSNs), packet control function (PCF) units, mobile switching centers (MSCs), SoftSwitches, and innumerable other telecommunication nodes.
New types of network elements are constantly deployed into networks. Advantageously, the data structure associated with the new network element may be defined in an XML file according to the principles of the present disclosure. Thereafter, executable software on other network elements may read the XML file and adapt their operations to process the management information associated with the new network element based on the structure defined in the XML-based resource data structure (RDS). The executable software parses the XML file to determine the structure of the network element and uses this structure to interact with management information associated with the network element.
The use of XML-based resource data structures according to the principles of the present disclosure may also be extended beyond the specific field of telecommunication networks described above to the more general field of computer programs or software applications. Any software application (i.e., executable code) that is written to generically process objects whose data structures are determined by parsing an XML file definition of the object data structure falls within the scope of the present disclosure. This makes the software application highly reusable with only minimal labor. Thus, the present disclosure is applicable in all software application domains, including business (or enterprise) applications, telecommunications, aerospace and defense systems, industrial (e.g., factory or process) control systems, agriculture, energy production and distribution, education, entertainment, and many other applications.
Proprietary networks 110a and 110b may comprise any of a wide variety of both small-sized networks (e.g., local area networks (LANs), etc.) and large-sized networks (e.g., wide-area networks (WANs), etc.), including, for example, corporate (or enterprise) networks, industrial (e.g., factory or process) control networks, financial trading networks (e.g., commodities exchange, stock exchange), academic (or university) networks, among many others. Proprietary network 110a comprises a plurality of networks elements (NEs), including server 11a and network nodes 112a and 113a, among others, that are coupled by conventional network connection architecture 114a, which may be wireline or wireless. Similarly, proprietary network 110b comprises a plurality of networks elements (NEs), including server 111b and network nodes 112b and 113b, among others, that are coupled by conventional network connection architecture 114b, which also may be wireline or wireless. By way of example, connection architectures 114a and 114b may comprise Ethernets, token rings, or IEEE-802.11 wireless networks.
In corporate or academic embodiments, servers 111 may comprise mainframe computers and nodes 112 and 113 may comprise computer workstations. In industrial embodiments, nodes 112 and 113 may comprise individual process controllers and servers 111 may comprise central control systems that control and coordinate the overall operations of the individual process controllers.
Wireless network 120 comprises a plurality of networks elements (NEs), including, among others, packet data server node (PDSN) 121, packet control function (PCF unit) 122, mobile switch center (MSC) 123, and a plurality of base stations 124, including exemplary base stations 124a and 124b. The network elements in wireless network 120 are coupled by conventional network connection architecture 125, which may be wireline or wireless. By way of example; connection architecture 125 may comprise a high-speed Ethernet, a fiber optic system, or a microwave communication system. PDSN 121 and PCF unit 122 provide mobile terminals 126 with access to Internet 140. MSC 123 provides mobile terminals 126 with access to PSTN 130.
The network elements in proprietary networks 110, wireless network 120, PSTN 130, and IP network 140 may include both physical resources and logical resources. The sub-components of these network elements may also comprise network elements in their own right. For example, in PSTN 130, the network elements may include a variety of switch types, including SoftSwitches, service control points (SCPs), switch transfer points (STPs), trunk lines, gateways, and the like. However, individual line cards within a switch, for example, also may be viewed as network elements within the larger network element (i.e., the switch). Similarly, in wireless network 120, each one of base stations 124 may comprise a base station controller (BSC) and at least one base transceiver subsystem (BTS). From the network viewpoint, the BSC and each BTS may be regarded as individual network elements within the larger network element (i.e., the base station 124). Likewise, logical resources associated with base stations 124, such as the frequency assignment (FA) and the sectors of each base station 124, may be regarded as network elements.
The present disclosure provides a novel way of defining a resource data structure (RDS) for a managed resource within a network element. By defining the resource data structure using extensible Mark-up Language (XML) code, source code for applications may be written to parse and understand these structures in a generic manner. Thus, the underlying application code may be reused for different types of managed resources across elements obtain their critical data structures via XML files and then process management commands against these resources by using generic code operating on the resultant structures in memory. The resultant structures within the generic code can be either XML (as read in) or binary (after conversion for performance reasons).
XML is widely used in web services and provides a data representation syntax that allows diverse data to be shared across different platforms. XML syntax is simple and human-readable, yet flexible and powerful enough to accommodate complex data structures. The present disclosure extends the use of XML from web services into the telecommunication network element arena to describe critical data structures. The use of XML files to describe critical resource data structures is particularly advantageous in wireless and wireline networks where maximum flexibility is desired. By structuring the network element software around an XML definition, application software executing on the network element may be developed generically and becomes reusable from application to application. A new project simply builds a new XML file describing the new or modified RDS.
One particularly beneficial use of an XML file to define a resource data structure (RDS) is in network operation, administration and management (OA&M) applications where configuration and operational measurement data may be described using XML format. In a network environment, a configuration manager (CM) node performs the detailed recording and updating of information that describes the resources of a network, including all hardware, software, and logical components. A performance management (PM) node performs the collection and transfer of measurements depicting the operational performance of a managed resource.
Configuration manager 210 resides on a network element (i.e., a processing node) in communication network 200 and comprises XML library application programming interface (API) 215. Application code 250 comprises configuration management (CM) library application programming interface (API) 255. Application node 250 and shared memory 240 reside in a managed resource network element. XML RDS file 220 is associated with the managed resource network element and may reside in a database in network 200 that is external to the network element. Binary RDS file 230 also is associated with the network element and may reside in the network element. It will be understood that communication network 200 comprises a large number of network elements, each having an associated XML RDS file 220, optional binary RDS file 230, shared memory 240, and application code 250. However, for the purposes of simplicity and clarity, it is necessary only to illustrate and describe these components with respect to one network element.
Configuration manager 210 is essentially a collection of software components that provides generic code to read, parse, and understand the XML definitions in XML RDS file 220 in order to provide support for application code 250 and manager commands to access and update the configuration data. Communication network 200 may also comprise a performance manager (not shown) that is very similar to configuration manager 210. The performance manager is essentially a collection of software components that provides generic code to read, parse, and understand the XML definitions in order to provide support for application code 250 and manager commands to access and update operational measurement data.
In conventional telecommunication network elements, resource configuration is largely achieved through hard-coding data structures and behavior logic directly within the source code program itself. Programming languages (e.g., C++) may be used to explicitly define type structures for managed network elements. These type structures include all attributes which make up the resource.
Unfortunately, this approach makes the source code specific to the resources being managed as defined by the current system. The resultant code (both type structures and behavior logic) is difficult to reuse in a new system that has different managed resources, since the new resources will have different type structures. Often, this forces network developers to start from scratch.
Next, configuration manager 210 creates shared memory segments based on the RDS specified within XML RDS file 230 and stores the shared memory segments in shared memory 240 (process step 515). The shared memory segments contain the actual data attribute values for each managed resource. CM library API 255 in application code 250 reads binary RDS file 230 to understand the structure of the resource types (process step 520). If binary RDS file 230 is not implemented, CM library API 255 reads XML RDS file 220 instead.
Based on processing needs, software applications, such as application code 250 may need to access and/or update the RDS associated with a managed resource.
Initially, application code 250 invokes CM library API 255 to change the value of an RDS attribute (process step 605). CM library API 255 accesses the binary version of the RDS in binary RDS file 230 (or the version stored in local memory) to determine the location in shared memory 240 that requires the update (process step 610). Typically, CM library API 255 stores a copy of the RDS information within CM library API 255 in object form to avoid disk access for each invocation. CM library API 255 then updates the value(s) of the requested RDS attribute in shared memory 240 (process step 615). It is noted that interaction with configuration manager 210 is not required.
Initially, the management platform (not shown) invokes configuration manager 210 to change the value of an RDS attribute (process step 705). Configuration manager 210 accesses the XML version of the RDS (or binary RDS for optimization purposes) in XML RDS file 220 to determine the location in shared memory 240 that requires the update (process step 710). Configuration manager 210 then updates the value of the requested RDS attribute in shared memory 240 (process step 715). It is noted that interaction with application code 250 is not required.
Although the present disclosure has been described with an exemplary embodiment, various changes and modifications may be suggested to one skilled in the art. It is intended that the present disclosure encompass such changes and modifications as fall within the scope of the appended claims.
The present application is related to U.S. Provisional Patent No. 60/653,149, filed Feb. 15, 2005, entitled “Network Element Common OA&M Platform System”. U.S. Provisional Patent No. 60/653,149 is assigned to the assignee of the present application and is hereby incorporated by reference into the present disclosure as if fully set forth herein. The present application hereby claims priority under 35 U.S.C. §119(e) to U.S. Provisional Patent No. 60/653,149.
Number | Date | Country | |
---|---|---|---|
60653149 | Feb 2005 | US |