US20020112038A1 - Method and system for remote configuration of process data access servers - Google Patents

Method and system for remote configuration of process data access servers Download PDF

Info

Publication number
US20020112038A1
US20020112038A1 US09/954,422 US95442201A US2002112038A1 US 20020112038 A1 US20020112038 A1 US 20020112038A1 US 95442201 A US95442201 A US 95442201A US 2002112038 A1 US2002112038 A1 US 2002112038A1
Authority
US
United States
Prior art keywords
configuration
bstr
data access
name
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US09/954,422
Other versions
US7779089B2 (en
Inventor
Rainer Hessmer
Ivan Todorov
Michael Hadrich
Louis Ross
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aveva Software LLC
Original Assignee
Invensys Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Invensys Systems Inc filed Critical Invensys Systems Inc
Priority to US09/954,422 priority Critical patent/US7779089B2/en
Assigned to WONDERWARE CORPORATION reassignment WONDERWARE CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HADRICH, MICHAEL, ROSS, LOUIS D., HESSMER, RAINER, TODOROV, IVAN A.
Publication of US20020112038A1 publication Critical patent/US20020112038A1/en
Assigned to INVENSYS SYSTEMS, INC. reassignment INVENSYS SYSTEMS, INC. MERGER (SEE DOCUMENT FOR DETAILS). Assignors: WONDERWARE CORPORATION
Assigned to DEUTSCHE BANK AG, LONDON BRANCH reassignment DEUTSCHE BANK AG, LONDON BRANCH SECURITY AGREEMENT Assignors: INVENSYS SYSTEMS, INC.
Application granted granted Critical
Publication of US7779089B2 publication Critical patent/US7779089B2/en
Assigned to INVENSYS SYSTEMS, INC. reassignment INVENSYS SYSTEMS, INC. RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: DEUTSCHE BANK, AG, LONDON BRANCH
Assigned to SCHNEIDER ELECTRIC SOFTWARE, LLC reassignment SCHNEIDER ELECTRIC SOFTWARE, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: INVENSYS SYSTEMS, INC.
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • H04L41/0226Mapping or translating multiple network management protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • H04L41/046Network management architectures or arrangements comprising network management agents or mobile agents therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/085Retrieval of network configuration; Tracking network configuration history
    • H04L41/0853Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0876Aspects of the degree of configuration automation
    • H04L41/0883Semiautomatic configuration, e.g. proposals from system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0894Policy-based network configuration management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/22Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/12Plc mp multi processor system
    • G05B2219/1208Communication, exchange of control, I-O data between different plc
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13121DDE direct data exchange, DLL dynamic library linking
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23262DDE direct data exchange, DLL dynamic library linking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/084Configuration by using pre-existing information, e.g. using templates or copying from other elements
    • H04L41/0843Configuration by using pre-existing information, e.g. using templates or copying from other elements based on generic templates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0866Checking the configuration
    • H04L41/0869Validating the configuration within one network element
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/288Distributed intermediate devices, i.e. intermediate devices for interaction with other intermediate devices on the same level

Definitions

  • the present invention generally relates to the field of computerized process control networks. More particularly, the present invention relates to configuration utilities that access server components within manufacturing/process control networks to tailor the operation of the server components.
  • An example of such a server component is a data access server system that supports access by supervisory level client applications to process control information.
  • Control processors execute control programs that read process status variables, execute control algorithms based upon the status variable data and desired set point information to render output values for the control points in industrial processes.
  • Such control processors and programs support a substantially self-running industrial process (once set points are established).
  • Data access servers facilitate placing process control data within reach of a variety of higher-level monitoring/control client applications.
  • process controllers generate status and control information concerning associated processes.
  • the controllers' process status and control information is stored within process control databases and/or distributed to a number of locations within the process control network.
  • Other process information is generated/stored within field devices (e.g., intelligent transmitters) having digital data communication capabilities.
  • the process information is retrieved from the databases and field devices by data servers for further processing/use by the process control system.
  • the data access servers provide the retrieved information to a variety of client applications providing high-level control and monitoring (both human and computerized) services.
  • the present invention comprises a new architecture and method for configuring data access servers from a remote location, thereby enabling a manufacturing/process control system administrator to configure multiple data access servers without having to physically go to each node on a network executing the data access servers.
  • the present invention establishes a centralized utility which allows configuring a set of networked data access servers (DAS) from one location.
  • DAS networked data access servers
  • a distributed configuration architecture facilitates remote configuration of process control data access servers.
  • a system embodying the present invention includes a control console from which a user operates a configuration editor.
  • the configuration editor includes a user interface infrastructure.
  • the configuration system also includes a configuration database that stores information describing specific configuration parameters for identified data access servers.
  • the configuration system further includes a rules database for storing a set of configuration rules associated with data access servers that are configurable via the configuration system.
  • the set of configuration rules guide the construction and/or editing of a configuration definition for a data access server.
  • the rules are specified for each node type.
  • remote connection to the configuration rules and parameters for a particular data access server is facilitated by a server agent that is executed upon remote nodes capable of running data access servers.
  • the server agents include executable procedures for notifying the configuration editor of the existence of data access servers upon their respective nodes.
  • An aspect of a particular embodiment of the present invention is the capability of the configuration system to support custom editor faceplates for each of the various types of configurable component (node) types supported within the configuration system.
  • FIG. 1 is a schematic drawing depicting an exemplary process control environment for the present invention wherein a process data access server includes a remote configuration utility that retrieves configuration information within other data access servers that, in turn, retrieve/receive process control information and provide such information to a variety of client applications residing at a monitoring/supervisory layer of a process control network;
  • a process data access server includes a remote configuration utility that retrieves configuration information within other data access servers that, in turn, retrieve/receive process control information and provide such information to a variety of client applications residing at a monitoring/supervisory layer of a process control network;
  • FIG. 2 depicts a multi-tiered software arrangement for carrying out remote configuration
  • FIG. 3 is a schematic drawing identifying a set of components making up the client and server components of a remote configuration facility in accordance with an embodiment of the present invention
  • FIG. 4 depicts a set of interfaces supported by a data access server Package Host in accordance with an exemplary embodiment of the present invention
  • FIG. 5 depicts a set of interfaces supported by an Editor Host in accordance with an exemplary embodiment of the present invention
  • FIG. 6 depicts a set of interfaces supporting access to a remotely stored configuration database
  • FIG. 7 is a sequence diagram summarizing a set of steps performed to open a node editor to commence editing a configuration for a selected data access server on a remote node;
  • FIG. 8 is a sequence diagram summarizing a set of steps for adding a node to a configuration hierarchy.
  • FIG. 9 is a sequence diagram summarizing a set of steps for saving changes made via the configuration facility in a remote configuration storage.
  • the remote configuration utilities and complimentary interfaces incorporated into data access server systems incorporating the present invention enable users to configure a data access server from a single remote computer.
  • An exemplary configuration utility architecture is disclosed for a data access server remote configuration carried out via an MMC (MICROSOFT Management Console) Snap-in.
  • MMC MICROSOFT Management Console
  • Snap-in a user creates, clears, examines and/or manipulates a selected data access server configuration for any data access server within its local node or on any network-connected node.
  • FIG. 1 an exemplary portion of a process control network 10 is illustratively depicted.
  • the present invention is useful in any network including a data access server.
  • the process control network 10 can be viewed as a set of devices connected to one or more network links associated with particular levels of the process control network 10 .
  • the depicted portion of the process control network 10 includes a fieldbus level 12 , a local control level 14 , and a supervisory control level 16 .
  • the illustratively depicted network 10 embodies a multi-level bus topology.
  • the present invention can be incorporated into process control networks embodying alternative network topologies (e.g., star networks, hybrid bus/star networks, etc.) including both single-level and hierarchical configurations.
  • a set of intelligent field devices 20 reside at the fieldbus level 12 .
  • the field devices include intelligent process variable transmitters that sense pressure, temperature, fluid flow, etc. in a controlled industrial process.
  • the field devices also include actuators such as those enabling opening and closing fluid flow valves for tanks, burners, etc.
  • Control processors 30 at the local control level 14 perform local control functions with regard to the set of intelligent field devices 20 .
  • the control processors 30 receive process state information provided by the intelligent field devices 20 .
  • State information includes, for example pressure, temperature, mass flow, volumetric flow, etc.
  • the control processors apply the received status information to a set desired points for the process, and then transmit control signals to actuators in order to obtain or maintain the desired set points.
  • the control processors are programmed/configured to store the status and control information associated with their control function.
  • the supervisory control level 16 includes higher level control applications programs that facilitate and/or implement enterprise/plant level decision making and supervisory (e.g., set point) control value designation functions.
  • An alarm server 40 receives process status data from a number of lower level sources, including both the control processors 30 and the field devices 20 .
  • the alarm server 40 compares the received status data against a set of alarm/event conditions and issues appropriate notifications to either monitors or control processes (e.g., control processors 30 ) in response to a detected alarm/event condition.
  • the control processors 30 issue appropriate signals to controlled field devices/actuators to address the event/alarm condition.
  • a historian 42 also operating at the supervisory control level 16 , archives data received from any of the aforementioned levels of the process control system.
  • a set of data access server nodes 50 a, 50 b, 50 c are interposed between the supervisory control level 16 's processing nodes and the lower levels of the process control system (e.g., the local control level 14 and fieldbus level 12 ).
  • the data access server node 50 b executing one or more logical DA servers, receives and/or extracts data from the field devices 20 (via channel 52 ) and/or the control processors 30 (via channel 54 ) and provides corresponding (possibly reformatted) data to processing nodes at the supervisory control level 16 of the process control network 10 —including one or more of the nodes executing one of the other data access servers.
  • the data access server nodes 50 a - c perform the task of providing data to a variety of client applications that obtain data in accordance with particular data exchange protocols and are otherwise unable to access process control data provided at the local control level 14 and fieldbus level 12 .
  • a method and system for supporting multiple client data exchange protocols is described in Todorov et al. U.S. patent application (number not yet assigned) filed on Sep. 14, 2001, and entitled “An Industrial Process Control Data Access Server Supporting Multiple Client Data Exchange Protocols,” which is incorporated herein by reference in its entirety including any references therein.
  • a configuration utility executed upon the data access server (DAS) 50 c (indicated in FIG. 1 by window 56 ), any of the other data access servers, or any supervisory-level 16 node, provides a means for remotely configuring process control system data access servers.
  • the data access server configuration utility is an application that executes upon a same node as a data access server. For example, as depicted in FIG. 1, the configuration utility executes upon a data access server node 50 c. However, there is no requirement for the configuration utility to reside upon any particular type of node (since it executes independently of DAS data acquisition/transmission processes).
  • the configuration utility (tool), through DAS agents instantiated on at least nodes 50 a and 50 b (to query the registry on each of those nodes) discovers the data access servers running on DAS nodes 50 a, 50 b, and 50 c and presents a list to a user.
  • the DAS agents are a tool for discovering data access servers on a network. The user is then able to select one or more of the data access servers of interest to perform configuration.
  • connections are established between the configuration utility running on DAS node 50 c and the data access servers, other components within the data access servers take over and handle information requests from the configuration utility. Those components are discussed herein below with reference to FIG. 2.
  • the configuration utility program is incorporated into a base library included within each of the data access server nodes 50 a, 50 b, and 50 c, and thus there is no need on the part of an administrator to add any special programs or executable code to support the operation of the configuration utility within the network.
  • a processing engine that carries out the core functionality of each DAS node 50 a - c hosts the configuration utility and exposes a default set of configuration information via a set of well-defined interfaces described herein below with reference to FIGS. 4 - 6
  • data access server node functionality can be enhanced, through customization of a server-specific part of the DA servers, by extending the scope of configurable features exposed by the data access servers to the configuration utility.
  • the present invention is not limited to any particular process control system network topology or technology.
  • the disclosed exemplary process control network comprises a hierarchically arranged digital system.
  • the present invention is incorporated within a monitoring node connected to a single-level process control network wherein the field devices, control processor(s), and supervisory control applications constitute nodes on a single bus.
  • the DAS receives data concerning conventional, analog field devices that utilize the 4-20 milliamp standard for process communications.
  • the configuration utility incorporates a generic multi-tier architecture.
  • the distinguishable tiers comprise an Interface, a Rule Interpretation, and a Configuration Persistence tier.
  • the configuration utility supports hot (on-line) configuration at the above-mentioned levels.
  • an arbitrary number of hierarchy levels can be defined.
  • the configuration utility supports performing remote configuration.
  • the generic multi-tier software architecture of the configuration utility comprises a data services layer 100 , a business services layer 110 , and a presentation services layer 120 .
  • the tiers are implemented via a ‘rules’ file, carried out at the data services layer 100 , that is associated with (specified for) each data access server.
  • the data access server-specific rules files specify a set of configuration hierarchy levels and information about properties that are defined for configuration nodes at each hierarchy level.
  • the information about properties includes: minimum/maximum number of child nodes allowed, names and types of child nodes allowed, default property values, minimum/maximum property values, and property names and types.
  • the “rules” file is implemented, by way of example, by a set of XML definitions. However, as those skilled in the art will readily appreciate, other languages/formats can be utilized to specify rules.
  • the encapsulation of the rule file access within the bottom tier allows future modifications to this scheme without affecting any other layers of the configuration hierarchy.
  • Also contained within the rules file are the GUIDs of the ActiveX faceplates that are activated for each hierarchy level.
  • the hierarchical organization supports a generic architecture allowing changes at one level to not affect other, unchanged, levels.
  • the main configuration MMC snap-in at the Presentation Services tier 120 uses the Business Services tier 110 as a “rules interpreter/enforcer” that prevents a user from building an invalid hierarchy structure in a tree-view of the configuration.
  • the Business Services tier 110 also ensures that data entered by a user is valid in view of rules specified by a particular data access server's rules file.
  • hot configuration refers to allowing a user to modify portions of a server's configuration and have those changes incorporated into the running and active server.
  • the actual pushing of updated configuration parameters relies on an interface, specified by a server developer, that facilitates notifying a server of its configuration changes.
  • a DAS Agent tracks currently active servers on a DAS node, and a user is allowed to make configuration modifications that are allowed for a current server state.
  • the ‘Rules’ file defines configuration nodes (leaves and/or branches) that can be added to the tree under the current node.
  • configuration tree architecture is defined by a data access server developer, and there is no pre-defined hierarchy structure that would otherwise restrict such development.
  • the MMC Snap-in that implements the configuration utility is executable on any network-accessible node in relation to a particular data access server (may be remote or local). Inter-node communications are carried out via DCOM.
  • a DAS agent installed on all server nodes, handles server locating/interfacing functions. Through DAS agents, the client (configuration utility) queries installed servers and/or currently running servers.
  • FIG. 3 a configuration software component arrangement is schematically depicted for implementing remote configuration information extraction/manipulation via a configuration utility installed on the data access server node 50 c.
  • An MMC snap-in module 200 also referred to herein as the DAS control client (DASCC 200 ), is written according to the requirements of Microsoft MMC utility and constitutes the main executable module invoked by a user from the MMC of WINDOWS 98 (and later WINDOWS versions) Resource Toolkit.
  • the MMC snap-in represents one of many potential ways to bundle the components of the configuration utility.
  • a Package Host 210 is a module (DLL) that encapsulates the communication within the persistence area for remote configuration.
  • the persistence area is a combination of a physical storage device and a logical organization of configuration/rules stored upon the physical storage device.
  • a persistence area can be a file with XML text stored upon a storage node.
  • the persistence area is partially defined as a relational database on a storage node.
  • the package host 210 fulfills the following tasks: (1) extracting available data from the persistence area and making it available for node editors, (2) validating and persisting the values provided by node editors into the persistence area, and (3) provide services t the DASCC relating to creating and deleting new/existing configuration hierarchy nodes.
  • a node package 220 is a server-specific (i.e., user customized from toolkit template) module providing custom validation logic for the business services 110 .
  • An editor host 230 module is a generic host for all custom faceplates (Node Editors) that a user developer may create in support of custom configuration interfaces for editing particular node types.
  • the editor host 230 provides a common GUI look and feel for all configuration hierarchies—such as for instance “Apply” the changes, “Restore” parameter values to the last persisted values, etc.
  • a node editor 240 like the node package, is a custom faceplate specific to each node type supported in a DAS configuration utility.
  • the node editor 240 is typically provided by a data access server developer and encapsulates the details of a particular node type configured on the editor host 230 .
  • a library of node editors 240 (one per node type supported by the configuration system) is stored on the DAS control client 200 's computer node.
  • the node editor instances (derived from a generic Node Editor interface definition) are stored on a remote node containing, for example, the configuration and rule information for a particular DAS.
  • a remote infrastructure 250 stored upon each of the remote nodes containing an accessible DAS, comprises a set of modules facilitating remote configuration.
  • the remote infrastructure 250 comprises, by way of example, two modules (and can be extended in case of future needs).
  • the first, DASConfigAccess.dll facilitates communicating with the storage/persistence area for purposes of accessing/storing the current configuration and rules for a selected data access server.
  • This interface abstracts the configuration editor from the various manners in which the configuration parameters and rules are stored on a system. This allows the configuration editor to operate with a variety of storage area formats (e.g., files, databases, etc.) without modification. access methods associated with particular storage format and access methods.
  • the second, DASAgent.exe facilitates querying the nodes for installed/active DAS instances, and reports back to the user's remote configuration utility.
  • Rules 270 are a persistence area, typically specified by a user during remote configuration and then stored at the remote DAS node, containing a description of all hierarchy parameters and their relations/associations.
  • XML listings are stored within a rules file, but alternative implementations are also contemplated such as a database.
  • the Rule file corresponds to a class
  • a configuration 280 corresponds to a set of instances of the “rule” defined class.
  • the configuration 280 is a persistence area (exists after remote configuration by a user ends) component of remote configuration identifying/describing all configured hierarchy nodes and their associated parameters.
  • XML is used in an exemplary embodiment, other embodiments of the invention specify the configuration in a different format/language (e.g., a database).
  • FIGS. 4, 5 and 6 comprise classes of objects associated with the remote configuration facility and the classes' associated interfaces.
  • FIG. 4 a set of interfaces are depicted that are implemented in a CNodeEditor class 290 from which a Node Editor 240 is instantiated.
  • a CNodeEditor class object is created for each type of configuration node based upon the interfaces specified herein below.
  • An IDASEditor interface 295 provides a mechanism for the Editor Host 230 to communicate with the Node Editor 240 .
  • An IDASEditorEvents 310 interface (described herein below with reference to an object class associated with the Editor Host 230 ) provides a mechanism for the Package Host 210 to notify a Node Editor 240 about context changes.
  • IDASEditor is an interface implemented by each Node Editor. It allows the Editor host to initialize the Node Editor and notify it about extenal events.
  • IDASEditor IUnknown ⁇ HRESULT Initialize ( [in] IDASPackageSite *pPackage, [in] IDASEditorSite *pHostSite, [in] BSTR bstrFullNodeName, [in] BSTR bstrNodeName, [in] BSTR bstrDelimeter, [in] VARIANT_BOOL bIsReadOnly, [in, unique] VARIANT* pVarAux); HRESULT Apply (); HRESULT Restore (); HRESULT Close (); ⁇ Description ⁇ vb ⁇ Operations Apply /*Notifies the Node Editor to persist (store) current data*/ Declaration HRESULT Apply () Return Value S_OK The status change was noted.
  • E_FAIL Failure Close /*Notifies the Node Editor that editor will be closed*/ Declaration HRESULT Close () Return Value S_OK CleanUp was succeeful.
  • E_FAIL Failure Initialize /*Initialize the Node Editor with parameters allowing it to communicate with DAS infrastructure*/ Declaration HRESULT Initialize ( [in] IDASPackageSite *pPackage, [in] IDASEditorSite *pHostSite [in] BSTR bstrFullNodeName, [in] BSTR bstrNodeName, [in] BSTR bstrDelimeter, [in] VARIANT_BOOL blsReadOnly, [in, unique] VARIANT* pVarAux) Return Value S_OK The status change was noted.
  • E_FAIL Failure Restore Declaration HRESULT Restore () /*Instruct the Node Editor to restore the last persisted values*/ Return Value S_OK The status change was noted.
  • IDASEditorHost IUnknown ⁇ HRESULT Initialize ( [in] IDASPackageSite *PackageSite, [in] BSTR strEditorGuid, [in] BSTR strFullNodePath, [in] BSTR strNodeName, [in] BSTR strNodeType, [in] BSTR bstrDelimiter); HRESULT Close( [in] BOOL bForce); HRESULT IsDirty( [out] BOOL* dirty); ⁇ Operations Close /*Notification that hosted Configuration Node Editor will be closed*/ Declaration HRESULT Close ( [in] BOOL bForce) Parameters BForce Flag specifying whether to Close and discard changes without prompting user to save changes or not: TRUE - discard changes (if any) and do not prompt user F
  • An IDASPackage interface 410 provides the mechanism for a Node Editor 240 to access the storage area.
  • the IDASPackage interface 410 also provides services to the DAS custom console (or DASCC). For instance when a user adds a new node to a configuration.
  • the DASCC presents an indication of “available” nodes in view of rules specified for a particular stored node. For example, a user configures in the rule file a node of type “TCP.”
  • the TCP node can have up to 3 child nodes of type PLC and up to 5 PyramidIntegrator nodes.
  • the Package Host 210 “compiles” the information from the rules and configuration and provide the results of the process to the DASCC 200 or Node Editors 240 .
  • IDASPackage provides information to the DASCC about the current DAS configuration and notifies the Package Host about user commands (like add/delete a node for example ) */ interface IDASPackage : IDispatch ⁇ HRESULT Initialize( [in, string] BSTR bstrServerGUID, [in] IUnknown* pCfgRules ); HRESULT GetChildren ( [in, string] BSTR bstrFullNodeName, [in, string] BSTR bstrNodeDelimiter, [out] SAFEARRAY (BSTR) *bstrArrayChildrenNames, [out] SAFEARRAY (BSTR) *bstrArrayChildrenTypes, [out] SAFEARRAY (BSTR) *bstrArrayChildrenTypes, [out] SAFEARRAY (BSTR) *bstrArrayChildrenTypes, [out] SAFEARRAY (B
  • An IDASPackageSite interface 420 supports a connection between Node Editors 240 and the values for their parameters. This interface does not communicate directly with the storage area. In the illustrative embodiment there is one more level of indirection between the storage area and the PackageHost 210 (that implements IDASPackageSite). This level of indirection is provided via a DASConfigAccess.dll that implements IIOSrvCfgPersist and IioSrvCfgRules interfaces in the Remote Infrastructure 250 .
  • pAttributeHandle The returned handle of the attribute. Can be used in Get/Set Attribute calls. Return Value S_OK Successfully set the value of the property. Remarks The GetAttrHandle operation gets the attribute handle that can then be used for Get/Set Attribute calls. The GetAttrHandle operation does not resolve array or property references. If these are needed, the client should update the appropriate MxAttributeHandle fields directly before issuing a Get or Set call.
  • GetAttribute Declaration HRESULT GetAttribute ( [in] DWORD attributeHandle, [in] DWORD PropID, [out, retval] VARIANT *pVarValue ) Parameters attributeHandle Handle of the attribute, retrieved from Shape Data Collection. PropID Requested Property ID pVarValue Receives the Value of the attribute/property. Return Value S_OK Successfully retrieved the value. Remarks Used to get the attribute values of a primitives.
  • GetPackageShapeInfo Declaration HRESULT GetPackageShapeinfo ( [in, string] BSTR bstrFullNodeName, [in] SHORT nSelection, [out] SAFEARRAY (BSTR)* bstrAttrNames ) Parameters BstrFullNodeName Full Node Name NSelection Specifies the type of array to return For all allowed values please refer to enumerator SHAPE_INFO_ENUM BstrAttrNames BSTR Safe array pointer. This array will be filled with reqested shape information for specifique node Return Value S_OK ShapeInfo was successfully retrieved.
  • An IIOSrCfgpersist interface 510 defines a set of methods for reading a current configuration for editing or saving a new configuration in the configuration Declaration [ object, dual, uuid(52088D9A-DED4-11D3-83F2-00A024A866AC), helpstring (“IIOSrvCfgPersist Interface”), pointer_default (unique) ] /* IIOSrvCfgPersist provides a way to persis the current configuration into the storage area and retreive this information later */ interface IIOSrvCfgPersist : IDispatch ⁇ HRESULT GetCfgFileName ( [in] BSTR ServerClsIdString, [out] BSTR * pFileName ); HRESULT SetCfgFileName ( [in] BSTR ServerClsI
  • E_FAIL The operation failed. E_OUTOFMEMORY Not enough memory E_INVALIDARG An argument to the function was invalid. DeleteCfgFile Declaration HRESULT DeleteCfgFile ( [in] BSTR bstrServerClsIdString, [in] BSTR bstrConfigurationSet ) Return Value S_OK The operation succeeded. E_FAIL The operation failed. E_OUTOFMEMORY Not enough memory E_INVALIDARG An argument to the function was invalid.
  • EnumCfgSets Declaration HRESULT EnumCfgSets ( [in] BSTR ServerClsIdString, [out] SAFEARRAY (BSTR) * pConfigSets ) Parameters pConfigSets returns list wit configuration set (only names, no path) GetCfgFileName Declaration HRESULT GetCfgFileName ( [in] BSTR ServerClsIdString, [out] BSTR * pFileName ) Return Value S_OK The operation succeeded. E_FAIL The operation failed. E_OUTOFMEMORY Not enough memory E_INVALIDARG An argument to the function was invalid.
  • GetDataObject Declaration HRESULT GetDataObject [in] BSTR ServerClsIdString, [in] BSTR Name, [out] BSTR * pType, [out] SAFEARRAY (BSTR) * pProperties )
  • GetHierarchyObject Declaration HRESULT GetHierarchyObject [in] BSTR ServerClsIdString, [in] BSTR Name, [out] BSTR * pType, [out] BSTR * pDelimiter, [out] SAFEARRAY (BSTR) * pProperties ) Return Value S_OK
  • E_FAIL The operation failed.
  • E_OUTOFMEMORY Not enough memory
  • E_INVALIDARG An argument to the function was invalid.
  • GetLeafObject Declaration HRESULT GetLeafObject ( [in] BSTR ServerClsIdString, [in] BSTR Name, [in] BSTR Parent, [out] BSTR * pType, [out] BSTR * pDelimiter, [out] SAFEARRAY (BSTR) * pProperties ) Return Value S_OK The operation succeeded. E_FAIL The operation failed. E_OUTOFMEMORY Not enough memory E_INVALIDARG An argument to the function was invalid.
  • E_FAIL The operation failed. E_OUTOFMEMORY Not enough memory E_INVALIDARG An argument to the function was invalid.
  • SaveCfgSetAs Declaration HRESULT SaveCfgSetAs ( [in] BSTR ServerClsIdString, [in] BSTR pConfigSet ) SetCfgFileName Declaration HRESULT SetCfgFileName ( [in] BSTR ServerClsIdString, [in] BSTR FileName ) Return Value S_OK The operation succeeded. E_FAIL The operation failed. E_OUTOFMEMORY Not enough memory E_INVALIDARG An argument to the function was invalid.
  • SetDataObject Declaration HRESULT SetDataObject [in] BSTR ServerClsIdString, [in] BSTR Name, [in] BSTR Type, [in, unique] SAFEARRAY (BSTR) * pProperties
  • SetHierarchyObject Declaration HRESULT SetHierarchyObject [in] BSTR ServerClsIdString, [in] BSTR Name, [in] BSTR Type, [in] BSTR Delimiter, [in, unique] SAFEARRAY (BSTR) * pProperties
  • Return Value S_OK The operation succeeded.
  • E_FAIL The operation failed.
  • E_OUTOFMEMORY Not enough memory
  • E_INVALIDARG An argument to the function was invalid.
  • An IIOSrCfgrules interface 520 defines a set of methods for extracting configuration rules from a storage area such as the rules 270 via the remote infrastructure 250 .
  • This interface insulates the caller from the particulars of extracting or storing data on a particular physical Declaration [ object, dual, uuid(52088D9A-DED4-11D3-83F2-00A024A866AD), helpstring(“IIOSrvCfgRules Interface”), pointer_default(unique) ] /*
  • This interface provides a way to extract the configuration rules from the rules storage area */ interface IIoSrvCfgRules : IDispatch ⁇ HRESULT GetCfgRuleFileName( [in] BSTR ServerClsIdstring, [out] BSTR * pFileName ); HRESULT SetCfgRuleFileName( [in] BSTR ServerClsIdString, [in] BSTR pFileName ); HRESUL
  • the configuration snap-in will display an edit field for each property.
  • PropertyType Array of property types. The configuration snap-in uses this type to perform validation on user input.
  • Default Value Array of property default values. The configuration snap-in uses this value to initialize user input values. Any configura- tion data client uses this as the default value if not present. In the case of VARIANT_EMPTY there is no default value.
  • the configuration snap-in uses this value to validate user input values. In case of type ‘STRING’ this represents the maximum number of (UNICODE) characters.
  • PropertyEditHeader Array of property edit headers The configuration snap-in uses this value to precede the edit field for user input.
  • PropertyEditUnit Array of property edit units The configura- tion snap-in uses this string to be diplayed after the edit field for user input.
  • PropertyEditHelp Array of property edit help strings The configuration snap-in uses this string to display an online help string on user request for the corresponding edit field.
  • PropertyAccessRights Array of property edit lock flags.
  • the configuration snap-in uses this value to determine the accessrights on this property. Remarks Gets the property rules for object type. Rules are user type based.
  • DAS server class ID pFileName pointer to file name Remarks retrieves the cfg rule file name of the active configuration file of the server. The configuration snap-in usually does not need to know this file name.
  • FIG. 7 a sequence diagram depicts a set of steps executed when a node editor opens and a particular data access server is selected by a user.
  • a user launches the DAS console client via an MMC.
  • the DASCC communicates with DAS Agents located on each node supporting a DAS to enumerate all DAS's on the network during step 602 .
  • a user selects one of the enumerated DAS's for configuration, and during steps 606 and 608 the DASCC issues requests to create an instance of the Package Host 210 object and an instance of the Editor Host 230 . If a node package or node editor is specified, then these objects too are instantiated.
  • the DASCC issues a request to the Package Host 210 to request a set of node configuration parameters for a node containing the data access server selected by the user during step 604 .
  • the Package Host 210 passes the read request to the remote infrastructure via the CIOSrvCfgPersist interface 510 .
  • the remote infrastructure calls the configuration storage 280 to read the existing parameters associated with the selected DAS during step 614 , and calls the rules storage 2270 to read any applicable rules associated with the selected DAS during step 616 .
  • the retrieved configuration parameters and rules are then returned to the calling Package Host 210 .
  • FIG. 8 a sequence diagram depicts a series of exemplary steps performed to edit an existing configuration, and in particular add a new node in a configuration hierarchy specified for a selected data access server.
  • the user selects a parent node (type) to add to a configuration by passing an appropriate user interface request to the DASCC 200 .
  • the DASCC 200 issues a request to the Package Host 210 to get a list of configuration parameters and rules associated with the selected node type (including any children nodes).
  • the Package Host 210 requests, from the CIOSrvCfgPersist object 500 , all rules for the selected node.
  • the CIOSrvCfgPersist object 500 passes the configuration rules request to the rules storage 270 .
  • the Package Host 210 issues a request to read the child node parameters for the selected node to the CIOSrvCfgPersist object 500 .
  • the request is passed to the configuration storage 280 .
  • the Package Host Upon receiving both the appropriate rules and parameters, the Package Host applies the configuration rules to the retrieved parameters to create an appropriate parent node structure.
  • FIG. 9 a sequence diagram depicts the steps for saving changes made to a configuration using the previously described distributed configuration components.
  • a user issuing a save request by selecting an “apply” button on the user interface of the Editor Host 230 during step 800 .
  • the Editor Host 230 passes a call to save configuration changes to the Node Editor 240 (node type-specific faceplate).
  • the Node Editor 240 calls the Package Host 210 with a request to save the new values of the node parameters.
  • the Package Host 210 with reference possibly to the custom node package 220 , validates the requested node change information during step 806 .
  • the Package Host 210 calls the CIOSrvCfgPersist object 500 requesting a save operation on a set of specified node parameters.
  • the CIOSrvCfgPersist object 500 carries out the save request at step 810 by storing the changed parameter values in the configuration storage 280 .
  • the CIOSrvCfgPersist object 500 determines whether the affected DAS is currently running. In the case that the DAS is running, at step 812 the CIOSrvCfgPersist object 500 notifies the corresponding DAS of the changes (including specifying the nodes that were changed).
  • the notification mechanism embodied in step 812 facilitates hot configuration of a running data access server.
  • the server reads the new values from the configuration storage 280 and updates its configuration at a point in time when such changes do not disrupt the ongoing operation of the DAS.
  • ⁇ DEFAULTVALUE> Key for the property default value under property rules.
  • ⁇ PROPERTYMIN> Key for the property minimum value under property rules.
  • ⁇ PROPERTYMAX> Key for the property maximum value under property rules.
  • ⁇ PROPERTYEDITHEADER> Key for the property edit field header under property rules.
  • ⁇ PROPERTYUNIT> Key for the property edit field unit under property rules.
  • ⁇ PROPERTYHELP> Key for the property edit field help under property rules..

Abstract

A remote configuration utility architecture is disclosed for a manufacturing/process control system data access server. Server agents, located on remote nodes, notify a configuration console of existing data access servers on the system. The configuration utility includes a control console from which a user selects one of the identified data access servers. Thereafter, the configuration console, via remote interfaces, obtains configuration parameters and associated rules associated with the selected data access server. The configuration utility thereafter displays the retrieved configuration information within a user interface faceplate defined for a type of configuration node selected for display/editing from the selected DAS. Using various faceplates for selected node types, the user creates, clears, examines and/or manipulates hierarchically arranged nodes for a configuration associated with the selected data access server.

Description

    CROSS REFERENCE TO RELATED APPLICATION
  • This application claims priority of Todorov et al. U.S. provisional application Serial No. 60/232,731 filed on Sep. 15, 2000, entitled “Remote Multiple Client Protocol Support,” the contents of which are expressly incorporated herein by reference in their entirety including the contents and teachings of any references contained therein.[0001]
  • FIELD OF THE INVENTION
  • The present invention generally relates to the field of computerized process control networks. More particularly, the present invention relates to configuration utilities that access server components within manufacturing/process control networks to tailor the operation of the server components. An example of such a server component is a data access server system that supports access by supervisory level client applications to process control information. [0002]
  • BACKGROUND OF THE INVENTION
  • Significant advances in industrial process control technology have vastly improved all aspects of factory and plant operation. Before the introduction of today's modem industrial process control systems, industrial processes were operated/controlled by humans and rudimentary mechanical controls. As a consequence, the complexity and degree of control over a process was limited by the speed with which one or more people could ascertain a present status of various process state variables, compare the current status to a desired operating level, calculate a corrective action (if needed), and implement a change to a control point to affect a change to a state variable. [0003]
  • Improvements to process control technology have enabled vastly larger and more complex industrial processes to be controlled via programmed control processors. Control processors execute control programs that read process status variables, execute control algorithms based upon the status variable data and desired set point information to render output values for the control points in industrial processes. Such control processors and programs support a substantially self-running industrial process (once set points are established). [0004]
  • Notwithstanding the ability of industrial processes to operate under the control of programmed process controllers at previously established set points without intervention, supervisory control and monitoring of control processors and their associated processes is desirable. Such oversight is provided by both humans and higher-level control programs at an application/human interface layer of a multilevel process control network. Such oversight is generally desired to verify proper execution of the controlled process under the lower-level process controllers and to configure the set points of the controlled process. [0005]
  • Data access servers facilitate placing process control data within reach of a variety of higher-level monitoring/control client applications. During the course of operation, process controllers generate status and control information concerning associated processes. The controllers' process status and control information is stored within process control databases and/or distributed to a number of locations within the process control network. Other process information is generated/stored within field devices (e.g., intelligent transmitters) having digital data communication capabilities. The process information is retrieved from the databases and field devices by data servers for further processing/use by the process control system. For example, the data access servers provide the retrieved information to a variety of client applications providing high-level control and monitoring (both human and computerized) services. [0006]
  • In systems containing data access servers, high-level control and monitoring applications rely upon the proper configuration of the data access servers to provide information upon which such applications rely for decision-making. Such information includes real-time process variable values, alarms, etc. Manufacturing/process control systems are modified due to changes in the process control devices and the processes themselves. Many data access servers operate in complex process control computing environments in a time-critical manner. In very large systems, with hundreds, or even thousands, of data access servers spread across hundreds or thousands of computers in many buildings, the cost (in time and resources) of configuring the operation of running data access servers and the devices from which they receive their data grows exponentially with the number of such servers. The delay in completing tuning operations also increases. Such delays are costly to manufacturers. Therefore, manufacturers generally seek to minimize the delays encountered when tuning the operation of a data access server and its associated process control devices. Thus, it is important in such instances to provide a means for quickly configuring multiple data access servers and to minimize the time that the process stands idle. [0007]
  • Moreover, it is important to quickly remedy configuration faults in an industrial/manufacturing process managed by a process control system. A data access server that is malfunctioning or unable to function because of an improper configuration can result in significant downtime for a manufacturing process. In many applications, if the information or control pathway provided by a data access server is unavailable, whole production lines can be brought to a standstill. [0008]
  • SUMMARY OF THE INVENTION
  • The present invention comprises a new architecture and method for configuring data access servers from a remote location, thereby enabling a manufacturing/process control system administrator to configure multiple data access servers without having to physically go to each node on a network executing the data access servers. The present invention establishes a centralized utility which allows configuring a set of networked data access servers (DAS) from one location. [0009]
  • In accordance with the present invention, a distributed configuration architecture facilitates remote configuration of process control data access servers. A system embodying the present invention includes a control console from which a user operates a configuration editor. The configuration editor includes a user interface infrastructure. The configuration system also includes a configuration database that stores information describing specific configuration parameters for identified data access servers. The configuration system further includes a rules database for storing a set of configuration rules associated with data access servers that are configurable via the configuration system. The set of configuration rules guide the construction and/or editing of a configuration definition for a data access server. In a particular embodiment of the invention, the rules are specified for each node type. [0010]
  • In an embodiment of the present invention, remote connection to the configuration rules and parameters for a particular data access server is facilitated by a server agent that is executed upon remote nodes capable of running data access servers. The server agents include executable procedures for notifying the configuration editor of the existence of data access servers upon their respective nodes. An aspect of a particular embodiment of the present invention is the capability of the configuration system to support custom editor faceplates for each of the various types of configurable component (node) types supported within the configuration system. [0011]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The appended claims set forth the features of the present invention with particularity. The invention, together with its objects and advantages, may be best understood from the following detailed description taken in conjunction with the accompanying drawings of which: [0012]
  • FIG. 1 is a schematic drawing depicting an exemplary process control environment for the present invention wherein a process data access server includes a remote configuration utility that retrieves configuration information within other data access servers that, in turn, retrieve/receive process control information and provide such information to a variety of client applications residing at a monitoring/supervisory layer of a process control network; [0013]
  • FIG. 2 depicts a multi-tiered software arrangement for carrying out remote configuration; [0014]
  • FIG. 3 is a schematic drawing identifying a set of components making up the client and server components of a remote configuration facility in accordance with an embodiment of the present invention; [0015]
  • FIG. 4 depicts a set of interfaces supported by a data access server Package Host in accordance with an exemplary embodiment of the present invention; [0016]
  • FIG. 5 depicts a set of interfaces supported by an Editor Host in accordance with an exemplary embodiment of the present invention; [0017]
  • FIG. 6 depicts a set of interfaces supporting access to a remotely stored configuration database; [0018]
  • FIG. 7 is a sequence diagram summarizing a set of steps performed to open a node editor to commence editing a configuration for a selected data access server on a remote node; [0019]
  • FIG. 8 is a sequence diagram summarizing a set of steps for adding a node to a configuration hierarchy; and [0020]
  • FIG. 9 is a sequence diagram summarizing a set of steps for saving changes made via the configuration facility in a remote configuration storage. [0021]
  • DETAILED DESCRIPTION OF AN ILLUSTRATIVE EMBODIMENT
  • The remote configuration utilities and complimentary interfaces incorporated into data access server systems incorporating the present invention enable users to configure a data access server from a single remote computer. An exemplary configuration utility architecture is disclosed for a data access server remote configuration carried out via an MMC (MICROSOFT Management Console) Snap-in. Through the remote configuration snap-in a user creates, clears, examines and/or manipulates a selected data access server configuration for any data access server within its local node or on any network-connected node. [0022]
  • Turning initially to FIG. 1, an exemplary portion of a process control network [0023] 10 is illustratively depicted. As previously mentioned, the present invention is useful in any network including a data access server. However, the value of performing remote configuration on data access servers increases with increases in the number of data access servers and the distance between monitoring stations and data access servers within a manufacturing/process control network. The process control network 10 can be viewed as a set of devices connected to one or more network links associated with particular levels of the process control network 10. In the exemplary embodiment, the depicted portion of the process control network 10 includes a fieldbus level 12, a local control level 14, and a supervisory control level 16. Though the exemplary embodiment is depicted as having three levels, those skilled in the art will readily appreciate the applicability of the present invention to a number of process control network architectures having more, less, or the same number of network levels. The illustratively depicted network 10 embodies a multi-level bus topology. However, the present invention can be incorporated into process control networks embodying alternative network topologies (e.g., star networks, hybrid bus/star networks, etc.) including both single-level and hierarchical configurations.
  • In the exemplary portion of a process control network depicted in FIG. 1, a set of [0024] intelligent field devices 20 reside at the fieldbus level 12. The field devices include intelligent process variable transmitters that sense pressure, temperature, fluid flow, etc. in a controlled industrial process. The field devices also include actuators such as those enabling opening and closing fluid flow valves for tanks, burners, etc.
  • [0025] Control processors 30 at the local control level 14, perform local control functions with regard to the set of intelligent field devices 20. The control processors 30 receive process state information provided by the intelligent field devices 20. State information includes, for example pressure, temperature, mass flow, volumetric flow, etc. The control processors apply the received status information to a set desired points for the process, and then transmit control signals to actuators in order to obtain or maintain the desired set points. The control processors are programmed/configured to store the status and control information associated with their control function.
  • The [0026] supervisory control level 16 includes higher level control applications programs that facilitate and/or implement enterprise/plant level decision making and supervisory (e.g., set point) control value designation functions. An alarm server 40 receives process status data from a number of lower level sources, including both the control processors 30 and the field devices 20. The alarm server 40 compares the received status data against a set of alarm/event conditions and issues appropriate notifications to either monitors or control processes (e.g., control processors 30) in response to a detected alarm/event condition. The control processors 30 issue appropriate signals to controlled field devices/actuators to address the event/alarm condition. A historian 42, also operating at the supervisory control level 16, archives data received from any of the aforementioned levels of the process control system. Such data is available for auditing and verification by a variety of application programs. A human machine interface (HMI) 44 is yet another node connected to the supervisory control level 16. The human-machine interface 44 provides a set of graphic/text user interface functions enabling a human to view the operation/status of the controlled process associated with the process control system with which the depicted items of FIG. 1 are associated.
  • In an exemplary embodiment of the present invention, a set of data [0027] access server nodes 50 a, 50 b, 50 c are interposed between the supervisory control level 16's processing nodes and the lower levels of the process control system (e.g., the local control level 14 and fieldbus level 12). The data access server node 50 b, executing one or more logical DA servers, receives and/or extracts data from the field devices 20 (via channel 52) and/or the control processors 30 (via channel 54) and provides corresponding (possibly reformatted) data to processing nodes at the supervisory control level 16 of the process control network 10—including one or more of the nodes executing one of the other data access servers. The data access server nodes 50 a-c perform the task of providing data to a variety of client applications that obtain data in accordance with particular data exchange protocols and are otherwise unable to access process control data provided at the local control level 14 and fieldbus level 12. A method and system for supporting multiple client data exchange protocols is described in Todorov et al. U.S. patent application (number not yet assigned) filed on Sep. 14, 2001, and entitled “An Industrial Process Control Data Access Server Supporting Multiple Client Data Exchange Protocols,” which is incorporated herein by reference in its entirety including any references therein.
  • A configuration utility executed upon the data access server (DAS) [0028] 50 c (indicated in FIG. 1 by window 56), any of the other data access servers, or any supervisory-level 16 node, provides a means for remotely configuring process control system data access servers. In an embodiment of the invention, the data access server configuration utility is an application that executes upon a same node as a data access server. For example, as depicted in FIG. 1, the configuration utility executes upon a data access server node 50 c. However, there is no requirement for the configuration utility to reside upon any particular type of node (since it executes independently of DAS data acquisition/transmission processes). In the illustrative embodiment of the present invention, the configuration utility (tool), through DAS agents instantiated on at least nodes 50 a and 50 b (to query the registry on each of those nodes) discovers the data access servers running on DAS nodes 50 a, 50 b, and 50 c and presents a list to a user. The DAS agents are a tool for discovering data access servers on a network. The user is then able to select one or more of the data access servers of interest to perform configuration. Once connections are established between the configuration utility running on DAS node 50 c and the data access servers, other components within the data access servers take over and handle information requests from the configuration utility. Those components are discussed herein below with reference to FIG. 2. It is also noted that in an embodiment of the present invention, the configuration utility program is incorporated into a base library included within each of the data access server nodes 50 a, 50 b, and 50 c, and thus there is no need on the part of an administrator to add any special programs or executable code to support the operation of the configuration utility within the network.
  • In the illustrative embodiment set forth in FIG. 1, a processing engine that carries out the core functionality of each DAS node [0029] 50 a-c hosts the configuration utility and exposes a default set of configuration information via a set of well-defined interfaces described herein below with reference to FIGS. 4-6 As mentioned herein above, data access server node functionality can be enhanced, through customization of a server-specific part of the DA servers, by extending the scope of configurable features exposed by the data access servers to the configuration utility.
  • Furthermore, it is reiterated that the present invention is not limited to any particular process control system network topology or technology. For example, the disclosed exemplary process control network comprises a hierarchically arranged digital system. However, in an alternative network embodiment the present invention is incorporated within a monitoring node connected to a single-level process control network wherein the field devices, control processor(s), and supervisory control applications constitute nodes on a single bus. In yet other cases, the DAS receives data concerning conventional, analog field devices that utilize the 4-20 milliamp standard for process communications. [0030]
  • A number of features contribute to enhancing the configuration of data access servers from a remote location. First, the configuration utility incorporates a generic multi-tier architecture. The distinguishable tiers comprise an Interface, a Rule Interpretation, and a Configuration Persistence tier. Second, the configuration utility supports hot (on-line) configuration at the above-mentioned levels. Third, an arbitrary number of hierarchy levels can be defined. Fourth, the configuration utility supports performing remote configuration. Each of these features is discussed in more detail below. [0031]
  • With reference to FIG. 2, the generic multi-tier software architecture of the configuration utility comprises a [0032] data services layer 100, a business services layer 110, and a presentation services layer 120. The tiers are implemented via a ‘rules’ file, carried out at the data services layer 100, that is associated with (specified for) each data access server. The data access server-specific rules files specify a set of configuration hierarchy levels and information about properties that are defined for configuration nodes at each hierarchy level. The information about properties includes: minimum/maximum number of child nodes allowed, names and types of child nodes allowed, default property values, minimum/maximum property values, and property names and types.
  • The “rules” file is implemented, by way of example, by a set of XML definitions. However, as those skilled in the art will readily appreciate, other languages/formats can be utilized to specify rules. The encapsulation of the rule file access within the bottom tier allows future modifications to this scheme without affecting any other layers of the configuration hierarchy. Also contained within the rules file are the GUIDs of the ActiveX faceplates that are activated for each hierarchy level. [0033]
  • The hierarchical organization supports a generic architecture allowing changes at one level to not affect other, unchanged, levels. The main configuration MMC snap-in at the [0034] Presentation Services tier 120 uses the Business Services tier 110 as a “rules interpreter/enforcer” that prevents a user from building an invalid hierarchy structure in a tree-view of the configuration. The Business Services tier 110 also ensures that data entered by a user is valid in view of rules specified by a particular data access server's rules file.
  • With regard to a second aspect of the disclosed remote configuration architecture, hot configuration refers to allowing a user to modify portions of a server's configuration and have those changes incorporated into the running and active server. The actual pushing of updated configuration parameters relies on an interface, specified by a server developer, that facilitates notifying a server of its configuration changes. A DAS Agent tracks currently active servers on a DAS node, and a user is allowed to make configuration modifications that are allowed for a current server state. [0035]
  • With regard to a third aspect of the disclosed remote configuration architecture, at any level within the hierarchy of a configuration tree (not to be confused with the program hierarchy depicted in FIG. 2), the ‘Rules’ file defines configuration nodes (leaves and/or branches) that can be added to the tree under the current node. Thus, configuration tree architecture is defined by a data access server developer, and there is no pre-defined hierarchy structure that would otherwise restrict such development. [0036]
  • With regard to a forth aspect of the disclosed remote configuration architecture, the MMC Snap-in that implements the configuration utility is executable on any network-accessible node in relation to a particular data access server (may be remote or local). Inter-node communications are carried out via DCOM. A DAS agent, installed on all server nodes, handles server locating/interfacing functions. Through DAS agents, the client (configuration utility) queries installed servers and/or currently running servers. [0037]
  • Turning to FIG. 3, a configuration software component arrangement is schematically depicted for implementing remote configuration information extraction/manipulation via a configuration utility installed on the data [0038] access server node 50 c. An MMC snap-in module 200, also referred to herein as the DAS control client (DASCC 200), is written according to the requirements of Microsoft MMC utility and constitutes the main executable module invoked by a user from the MMC of WINDOWS 98 (and later WINDOWS versions) Resource Toolkit. The MMC snap-in represents one of many potential ways to bundle the components of the configuration utility. A Package Host 210is a module (DLL) that encapsulates the communication within the persistence area for remote configuration. The persistence area is a combination of a physical storage device and a logical organization of configuration/rules stored upon the physical storage device. For example, a persistence area can be a file with XML text stored upon a storage node. Alternatively, the persistence area is partially defined as a relational database on a storage node. The package host 210 fulfills the following tasks: (1) extracting available data from the persistence area and making it available for node editors, (2) validating and persisting the values provided by node editors into the persistence area, and (3) provide services t the DASCC relating to creating and deleting new/existing configuration hierarchy nodes. A node package 220 is a server-specific (i.e., user customized from toolkit template) module providing custom validation logic for the business services 110.
  • An [0039] editor host 230 module (DLL) is a generic host for all custom faceplates (Node Editors) that a user developer may create in support of custom configuration interfaces for editing particular node types. The editor host 230 provides a common GUI look and feel for all configuration hierarchies—such as for instance “Apply” the changes, “Restore” parameter values to the last persisted values, etc. A node editor 240, like the node package, is a custom faceplate specific to each node type supported in a DAS configuration utility. The node editor 240 is typically provided by a data access server developer and encapsulates the details of a particular node type configured on the editor host 230. In an embodiment of the invention, a library of node editors 240 (one per node type supported by the configuration system) is stored on the DAS control client 200's computer node. However, this is not a requirement, and indeed in alternative embodiments of the invention the node editor instances (derived from a generic Node Editor interface definition) are stored on a remote node containing, for example, the configuration and rule information for a particular DAS.
  • A [0040] remote infrastructure 250, stored upon each of the remote nodes containing an accessible DAS, comprises a set of modules facilitating remote configuration. The remote infrastructure 250 comprises, by way of example, two modules (and can be extended in case of future needs). The first, DASConfigAccess.dll, facilitates communicating with the storage/persistence area for purposes of accessing/storing the current configuration and rules for a selected data access server. This interface abstracts the configuration editor from the various manners in which the configuration parameters and rules are stored on a system. This allows the configuration editor to operate with a variety of storage area formats (e.g., files, databases, etc.) without modification. access methods associated with particular storage format and access methods. The second, DASAgent.exe, facilitates querying the nodes for installed/active DAS instances, and reports back to the user's remote configuration utility.
  • [0041] Rules 270 are a persistence area, typically specified by a user during remote configuration and then stored at the remote DAS node, containing a description of all hierarchy parameters and their relations/associations. In an embodiment of the present invention, XML listings are stored within a rules file, but alternative implementations are also contemplated such as a database. In an analogy to the C++ programming language, the Rule file corresponds to a class, while a configuration 280 corresponds to a set of instances of the “rule” defined class. The configuration 280 is a persistence area (exists after remote configuration by a user ends) component of remote configuration identifying/describing all configured hierarchy nodes and their associated parameters. Again, while XML is used in an exemplary embodiment, other embodiments of the invention specify the configuration in a different format/language (e.g., a database).
  • FIGS. 4, 5 and [0042] 6 comprise classes of objects associated with the remote configuration facility and the classes' associated interfaces. Turning FIG. 4, a set of interfaces are depicted that are implemented in a CNodeEditor class 290 from which a Node Editor 240 is instantiated. A CNodeEditor class object is created for each type of configuration node based upon the interfaces specified herein below. An IDASEditor interface 295 provides a mechanism for the Editor Host 230 to communicate with the Node Editor 240. An IDASEditorEvents 310 interface (described herein below with reference to an object class associated with the Editor Host 230) provides a mechanism for the Package Host 210 to notify a Node Editor 240 about context changes.
    Declaration
    [
    object,
    uuid (320C0A36-AB7C-11d4-93E4-00B0D0201D61),
    pointer_default (unique)
    ]
    /*
    IDASEditor is an interface implemented by each Node Editor. It allows the
    Editor host to initialize the Node Editor and notify it about extenal events.
    */
    interface IDASEditor : IUnknown
    {
    HRESULT Initialize (
    [in] IDASPackageSite *pPackage,
    [in] IDASEditorSite *pHostSite,
    [in] BSTR bstrFullNodeName,
    [in] BSTR bstrNodeName,
    [in] BSTR bstrDelimeter,
    [in] VARIANT_BOOL bIsReadOnly,
    [in, unique] VARIANT* pVarAux);
    HRESULT Apply ();
    HRESULT Restore ();
    HRESULT Close ();
    }
    Description
    {vb}
    Operations
    Apply
    /*Notifies the Node Editor to persist (store) current data*/
    Declaration
    HRESULT Apply ()
    Return Value
    S_OK The status change was noted.
    E_FAIL Failure
    Close
    /*Notifies the Node Editor that editor will be closed*/
    Declaration
    HRESULT Close ()
    Return Value
    S_OK CleanUp was succeeful.
    E_FAIL Failure
    Initialize
    /*Initialize the Node Editor with parameters allowing it to communicate with
    DAS infrastructure*/
    Declaration
    HRESULT Initialize (
    [in] IDASPackageSite *pPackage,
    [in] IDASEditorSite *pHostSite
    [in] BSTR bstrFullNodeName,
    [in] BSTR bstrNodeName,
    [in] BSTR bstrDelimeter,
    [in] VARIANT_BOOL blsReadOnly,
    [in, unique] VARIANT* pVarAux)
    Return Value
    S_OK The status change was noted.
    E_FAIL Failure
    Restore
    Declaration
    HRESULT Restore ()
    /*Instruct the Node Editor to restore the last persisted values*/
    Return Value
    S_OK The status change was noted.
    E_FAIL Failure
  • With continued reference to FIG. 4, a set of interfaces are depicted that are implemented in a [0043] CDASEditorHost class 300 from which an Editor Host 230 is instantiated. One Editor Host object is instantiated for each DAS instance. An IDASEditorEvents 310 interface provides a mechanism for the Package Host 210 to notify an Editor Host 230 about context changes. The context changes include, for example: a change in the node name and a change in the parameters exposed by a particular Node Editor 240. IDASEditorEvents 310's operations are used to notify the Editor Host 230 and Node Editor 240 about events requiring action by these entities. In the case of the Editor Host 230, such calls are used, for example, by the Package Host 210.
    Declaration
    [
    object,
    uuid(320C0A33-AB7C-11d4-93E4-00B0D0201D61),
    pointer_default (unique)
    ]
    interface IDASEditorEvents : IUnknown
    {
    HRESULT OnNameChange
    (
    [in, string] BSTR bstrFullOldNodeName,
    [in, string] BSTR bstrOldNodeName,
    [in, string] BSTR bstrNewNodeName
    );
    HRESULT OnAtributeChange
    (
    [in, string] BSTR bstrFullNodeName,
    [in, string] BSTR bstrAttrName,
    [in] DWORD PropID,
    [in] VARIANT varNewValue
    );
    }
    Description
    {vb}
    OnAtributeChange
    /*Notifies the Node Editor about parameter changes */
    Declaration
    HRESULT OnAtributeChange
    (
    [in, string] BSTR bstrFullNodeName,
    [in, string] BSTR bstrAttrName,
    [in] DWORD PropID,
    [in] VARIANT varNewValue
    )
    Parameters
    BstrFullNodeName Specifies the full node name
    BstrAttrName Specifies the attribute name
    PropID Specifies the property ID
    VarNewValue New attribute Value
    Return Value
    S_OK Success
    OnNameChange
    /*Notifies the Node Editor about node name changes*/
    Declaration
    HRESULT OnNameChange
    (
    [in, string] BSTR bstrFullOldNodeName,
    [in, string] BSTR bstrOldNodeName,
    [in, string] BSTR bstrNewNodeName
    )
    Parameters
    bstrFullOldNodeName Specifies the full old node name
    BstrOldNodeName Specifies the node name
    BstrNewNodeName Specifies the node name
    Return Value
    S_OK Success
  • An [0044] IDASEditorHost interface 320 is implemented by EditorHost components and provides common functionality between the individual Node Editors. For instance it host the custom Node Editors and handles events such as when the user seeks to persist the new configuration data or restore the last persisted configuration data.
    Declaration
    [
    object,
    uuid(320C0A34-AB7C-11d4-93E4-00B0D0201D61),
    pointer_default (unique)
    ]
    interface IDASEditorHost : IUnknown
    {
    HRESULT Initialize (
    [in] IDASPackageSite *PackageSite,
    [in] BSTR strEditorGuid,
    [in] BSTR strFullNodePath,
    [in] BSTR strNodeName,
    [in] BSTR strNodeType,
    [in] BSTR bstrDelimiter);
    HRESULT Close(
    [in] BOOL bForce);
    HRESULT IsDirty(
    [out] BOOL* dirty);
    }
    Operations
    Close
    /*Notification that hosted Configuration Node Editor will be closed*/
    Declaration
    HRESULT Close (
    [in] BOOL bForce)
    Parameters
    BForce Flag specifying whether to Close and discard changes
    without prompting user to save changes or not:
    TRUE - discard changes (if any) and do not prompt user
    FALSE - prompt user if changes since last ‘Apply’
    Return Value
    S_OK Sucess.
    Initialize
    /*Initialize that editor host with parameters allowing it to communicate with
    the storage area*/
    Declaration
    HRESULT Initialize (
    [in] IDASPackageSite *PackageSite,
    [in] BSTR strEditorGuid,
    [in] BSTR strFullNodePath,
    [in] BSTR strNodeName,
    [in] BSTR strNodeType,
    [in] BSTR bstrDelimiter)
    Parameters
    PackageSite Interface to the Storage area
    strEditorGuid GUID for the custom editor
    strFullNodePath This is fully qualified name of the parent.
    strNodeName Specifies the Node Name
    strNodeType Specifies is Node Type
    bstrDelimiter Specifies is Node Type
    Return Value
    S_OK Succees.
    IsDirty
    /*Checks whether some of the parameters in the Node Editor were changed
    (state ‘dirty’) since the last “Apply”*/
    Declaration
    HRESULT IsDirty(
    [out] BOOL* dirty)
    Parameters
    Dirty Flag indicating whether the editor is “dirty” (has changed attributes)
    TRUE - the attributes has been change
    FALSE - no change from the last save operation
    Return Value
    S_OK Succees.
    An IDASEditorSite interface 330 provides a mechanism for the Node Editor 240 to
    communicate to the Editor host 230.
    Declaration
    [
    object,
    uuid(F4136354-C2A0-47db-89F1-463ADEDFFDFF),
    pointer_default (unique)
    ]
    interface IDASEditorSite : IUnknown
    {
    HRESULT OnStatusChange ();
    }
    Description
    {vb}
    Operations
    OnStatusChange
    Declaration
    HRESULT OnStatusChange ()
    Return Value
    S_OK The status change was noted.
  • Referring to FIG. 5, a set of interfaces are depicted that are implemented in a [0045] CDASPackage class 400. An IDASPackage interface 410 provides the mechanism for a Node Editor 240 to access the storage area. The IDASPackage interface 410 also provides services to the DAS custom console (or DASCC). For instance when a user adds a new node to a configuration. The DASCC presents an indication of “available” nodes in view of rules specified for a particular stored node. For example, a user configures in the rule file a node of type “TCP.” The TCP node can have up to 3 child nodes of type PLC and up to 5 PyramidIntegrator nodes. After the user adds 3 PLC nodes, the user will not be allowed to add more nodes of this type because the quota was exhausted. This test for configuration rule compliance is facilitated by the information provided by the PackageHost 210 to the DASCC 200. The Package Host 210 “compiles” the information from the rules and configuration and provide the results of the process to the DASCC 200 or Node Editors 240.
    Declaration
    [
    object,
    dual,
    uuid(320C0A37-AB7C-11d4-93E4-00B0D0201D61),
    pointer_default (unique)
    ]
    /*
    IDASPackage provides information to the DASCC about the current DAS
    configuration and notifies the Package Host about user commands (like
    add/delete a node for example )
    */
    interface IDASPackage : IDispatch
    {
    HRESULT Initialize(
    [in, string] BSTR bstrServerGUID,
    [in] IUnknown* pCfgRules
    );
    HRESULT GetChildren (
    [in, string] BSTR bstrFullNodeName,
    [in, string] BSTR bstrNodeDelimiter,
    [out] SAFEARRAY (BSTR) *bstrArrayChildrenNames,
    [out] SAFEARRAY (BSTR) *bstrArrayChildrenTypes,
    [out] SAFEARRAY (BSTR) *bstrArrayChildrenDelimiters
    );
    HRESULT GetPossibleChildTypes (
    [in, string] BSTR bstrFullNodeName,
    [out] SAFEARRAY (BSTR) *bstrChildTypes
    );
    HRESULT GetNodeProperties (
    [in, string ] BSTR bstrNodeType,
    [out] BSTR *strEditorGUID
    [out] BSTR *strDelimiter
    );
    HRESULT RenameNode (
    [in, string] BSTR bstrFullOldNodeName,
    [in, string] BSTR bstrOldNodeName,
    [in, string] BSTR bstrNewNodeName
    );
    HRESULT AddChild (
    [in, string] BSTR bstrFullNodeName,
    [in, string] BSTR bstrType,
    [in, string] BSTR bstrDelimiter
    );
    HRESULT DeleteChild (
    [in, string] BSTR bstrFullNodeName
    );
    HRESULT SelectionChange (
    [in, string] BSTR bstrFullNodeName,
    [in, string] BSTR bstrNodeType
    );
    HRESULT GetCfgSetFileName (
    [out] BSTR * pFileName
    );
    HRESULT SetCfgSetFileName (
    [in] BSTR bstrFileName
    );
    HRESULT EnumCfgSets (
    [out] SAFEARRAY (BSTR) * pConfigSets
    );
    HRESULT SwitchToCfgSet (
    [in] BSTR bstrConfigset
    );
    HRESULT SaveCfgSetAs (
    [in] BSTR bstrConfigset
    );
    HRESULT Clearconfig (
    );
    HRESULT DeleteCfgset (
    [in] BSTR bstrConfigset
    );
    }
    Operations
    AddChild
    Declaration
    HRESULT AddChild (
    [in, string] BSTR bstrFullNodeName,
    [in, string] BSTR bstrType,
    [in, string] BSTR bstrDelimiter
    )
    Parameters
    bstrFullNodeName Specifies fully qualified Node name
    BstrType Specifies node type
    bstrDelimiter Specifies the new Node Delimiter
    Return Value
    S_OK Success
    E_FAIL Error
    ClearConfig
    Declaration
    HRESULT Clearconfig (
    )
    Return Value
    S_OK Success
    E_FAIL Error
    DeleteCfgSet
    Declaration
    HRESULT DeleteCfgSet (
    [in] BSTR bstrConfigSet
    )
    Parameters
    bstrConfigSet Specify configation set name
    Return Value
    S_OK Success
    E_FAIL Error
    DeleteChild
    Declaration
    HRESULT DeleteChild (
    [in, string] BSTR bstrFullNodeName
    )
    Parameters
    bstrFullNodeName Specifies fully qualified node name
    Return Value
    S_OK Success
    E_FAIL Error
    EnumCfgSets
    Declaration
    HRESULT EnumCfgSets (
    [out] SAFEARRAY (BSTR) * pConfigSets
    )
    Parameters
    pConfigSets returns list wit configuration set (only names, no path)
    GetCfgSetFileName
    Declaration
    HRESULT GetCfgSetFileName (
    [out] BSTR * pFileName
    )
    Parameters
    pFileName full name
    GetChildren
    Declaration
    HRESULT GetChildren (
    [in, string] BSTR bstrFullNodeName,
    [in, string] BSTR bstrNodeDelimiter,
    [out] SAFEARRAY (BSTR) *bstrArrayChildrenNames
    [out] SAFEARRAY (BSTR) *bstrArrayChildrenTypes,
    [out] SAFEARRAY (BSTR) *bstrArrayChildrenDelimiters
    )
    Parameters
    bstrFullNodeName Specifies fully qualified node name
    bstrNodeDelimiter Specifies fully qualified node name
    bstrArrayChildrenNames Array with the names of the all children
    bstrArrayChildrenTypes Array with the types for each children
    bstrArrayChildrenDelimiters Array with the delimiters for each children
    Return Value
    S_OK Success
    E_FAIL Error
    GetNodeProperties
    Declaration
    HRESULT GetNodeProperties (
    [in, string ] BSTR bstrNodeType,
    [out] BSTR *strEditorGUID,
    [out] BSTR *strDelimiter
    )
    Parameters
    bstrNodeType Specifies node type
    StrEditorGUID Returns the Editor GUID for the specified Node type
    strDelimiter Returns Node delimiter
    Return Value
    S_OK Success
    E_FAIL Error
    GetPossibleChildTypes
    Declaration
    HRESULT GetPossibleChildTypes (
    [in, string] BSTR bstrFullNodeName,
    [out] SAFEARRAY (BSTR) *bstrChildTypes
    )
    Parameters
    bstrFullNodeName Specifies fully qualified node name
    bstrChildTypes Returns a list with child types
    Initialize
    Declaration
    HRESULT Initialize (
    [in, string] BSTR bstrServerGUID,
    [in] IUnknown* pCfgRules
    )
    Parameters
    BstrServerGUID Specifies Server Name (ProgID of the Server)
    PCfgRules Interface to the IOAgent on the node where the Server resides
    Return Value
    S_OK Success
    E_FAIL Error
    RenameNode
    Declaration
    HRESULT RenameNode (
    [in, string] BSTR bstrFullOldNodeName,
    [in, string] BSTR bstrOldNodeName,
    [in, string] BSTR bstrNewNodeName
    )
    Parameters
    bstrFullOldNodeName Specifies the Full Old Node a Name
    bstrOldNodeName Specifies the Full New name for a Node
    bstrNewNodeName Specifies the Full New name for a Node
    Return Value
    S_OK Success
    E_FAIL Error
    SaveCfgSetAs
    Declaration
    HRESULT SaveCfgSetAs (
    [in] BSTR bstrConfigSet
    )
    Parameters
    bstrConfigSet Specify configation set name
    Return Value
    S_OK Success
    E_FAIL Error
    SelectionChange
    Declaration
    HRESULT SelectionChange (
    [in, string] BSTR bstrFullNodeName,
    [in, string] BSTR bstrNodeType
    )
    Parameters
    BstrFullNodeName Specifies fully qualified node name
    BstrNodeType Specifies Node type
    Return Value
    S_OK Success
    E_FAIL Error
    SetCfgSetFileName
    Declaration
    HRESULT SetCfgSetFileName (
    [in] BSTR bstrFileName
    )
    SwitchToCfgSet
    Declaration
    HRESULT SwitchToCfgSet (
    [in] BSTR bstrConfigSet
    )
  • An [0046] IDASPackageSite interface 420 supports a connection between Node Editors 240 and the values for their parameters. This interface does not communicate directly with the storage area. In the illustrative embodiment there is one more level of indirection between the storage area and the PackageHost 210 (that implements IDASPackageSite). This level of indirection is provided via a DASConfigAccess.dll that implements IIOSrvCfgPersist and IioSrvCfgRules interfaces in the Remote Infrastructure 250.
    Declaration
    [
    object,
    uuid(320C0A39-AR7C-11d4-93E4-00B0D0201D61),
    pointer_default (unique)
    ]
    interface IDASPackageSite : IUnknown
    {
    HRESULT GetAttribute
    (
    [in] DWORD attributeHandle,
    [in] DWORD PropID,
    [out, retval] VARIANT *pVarValue
    );
    HRESULT SetAttribute
    (
    [in] DWORD attributeHandle,
    [in] DWORD PropID,
    [in] VARIANT varValue,
    [out, retval] VARIANT_BOOL* pbSuccessFlag
    );
    HRESULT GetAttrHandle
    (
    [in, string] BSTR attParent,
    [in, string] BSTR attName,
    [out, retval] DWORD* pAttributeHandle
    );
    HRESULT CloseAttrHandle
    (
    [in] DWORD attributeHandle
    );
    HRESULT GetPackageShapeInfo
    (
    [in, string] BSTR bstrFullNodeName,
    [in] SHORT nSelection,
    [out] SAFEARRAY (BSTR)* bstrAttrNames
    );
    HRESULT Commit
    (
    BSTR bstrFullNodeName,
    BSTR bstrType,
    BSTR bstrDelimiter,
    SHORT *CommitStatus
    );
    }
    Description
    {vb}
    Operations
    CloseAttrHandle
    Declaration
    HRESULT CloseAttrHandle
    (
    [in] DWORD attributeHandle
    )
    Parameters
    attributeHandle Handle of the attribute, retrieved from Shape Data Collection.
    Return Value
    S_OK ShapeInfo was successfully retrieved.
    Commit
    Declaration
    HRESULT Commit
    (
    BSTR bstrFullNodeName,
    BSTR bstrType,
    BSTR bstrDelimiter,
    SHORT *CommitStatus
    )
    Parameters
    bstrFullNodeName Full Node name
    bstrType Node type
    bstrDelimiter Node Delimiters
    CommitStatus Indicates the status of the Commit. Following values
    are defined COMMIT_OK - Changes are saved
    COMMIT_INVALID_HANDLE - invalid handle specified
    COMMIT_FAIL - The changes are not saved due to
    problems with the overall integrity of the node attributes
    COMMIT_REMOTE_FAIL - Remote method call has failed
    Return Value
    S_OK new values were successfully set
    E_FAIL Fail to save the change
    GetAttrHandle
    Declaration
    HRESULT GetAttrHandle
    (
    [in, string] BSTR attParent,
    [in, string] BSTR attName,
    [out, retval] DWORD* pAttributeHandle
    )
    Parameters
    attParent The parent of the attribute.
    attName The parent of the attribute.
    pAttributeHandle The returned handle of the attribute. Can be used in Get/Set
    Attribute calls.
    Return Value
    S_OK Successfully set the value of the property.
    Remarks
    The GetAttrHandle operation gets the attribute handle that can then be used
    for Get/Set Attribute calls. The GetAttrHandle operation does not resolve array or
    property references. If these are needed, the client should update the appropriate
    MxAttributeHandle fields directly before issuing a Get or Set call.
    GetAttribute
    Declaration
    HRESULT GetAttribute
    (
    [in] DWORD attributeHandle,
    [in] DWORD PropID,
    [out, retval] VARIANT *pVarValue
    )
    Parameters
    attributeHandle Handle of the attribute, retrieved from Shape Data Collection.
    PropID Requested Property ID
    pVarValue Receives the Value of the attribute/property.
    Return Value
    S_OK Successfully retrieved the value.
    Remarks
    Used to get the attribute values of a primitives.
    GetPackageShapeInfo
    Declaration
    HRESULT GetPackageShapeinfo
    (
    [in, string] BSTR bstrFullNodeName,
    [in] SHORT nSelection,
    [out] SAFEARRAY (BSTR)* bstrAttrNames
    )
    Parameters
    BstrFullNodeName Full Node Name
    NSelection Specifies the type of array to return For all allowed
    values please refer to enumerator
    SHAPE_INFO_ENUM
    BstrAttrNames BSTR Safe array pointer. This array will be filled
    with reqested shape information for specifique
    node
    Return Value
    S_OK ShapeInfo was successfully retrieved.
    SetAttribute
    Declaration
    HRESULT SetAttribute
    (
    [in] DWORD attributeHandle,
    [in] DWORD PropID,
    [in] VARIANT varValue,
    [out, retval] VARIANT_BOOL* pbSuccessFlag
    )
    Parameters
    AttributeHandle Handle of the attribute, retrieved from Shape Data Collection.
    PropID Requested Property ID
    VarValue Value of the property.
    pbSuccessFlag Signifies whether set was accepted.
    Return Value
    S_OK Successfully set the value of the property.
    Remarks
    Used to set the attribute values of a primitive.
  • Referring to FIG. 6, a set of interfaces are depicted that are implemented in a [0047] CIOSrvCfgpersist class 500. An IIOSrCfgpersist interface 510 defines a set of methods for reading a current configuration for editing or saving a new configuration in the configuration
    Declaration
    [
    object,
    dual,
    uuid(52088D9A-DED4-11D3-83F2-00A024A866AC),
    helpstring (“IIOSrvCfgPersist Interface”),
    pointer_default (unique)
    ]
    /*
    IIOSrvCfgPersist provides a way to persis the current configuration into
    the storage area and retreive this information later
    */
    interface IIOSrvCfgPersist : IDispatch
    {
    HRESULT GetCfgFileName (
    [in] BSTR ServerClsIdString,
    [out] BSTR * pFileName
    );
    HRESULT SetCfgFileName (
    [in] BSTR ServerClsIdString,
    [in] BSTR FileName
    );
    HRESULT EnumCfgSets (
    [in] BSTR ServerClsIdString,
    [out] SAFEARRAY (BSTR) * pConfigSets
    );
    HRESULT SwitchToCfgSet (
    [in] BSTR ServerClsIdString,
    [in] BSTR pConfigSet
    );
    HRESULT SaveCfgSetAs (
    [in] BSTR ServerClsIdString,
    [in] BSTR pConfigSet
    );
    HRESULT ClearCfgFile (
    [in] BSTR ServerClsIdString
    );
    HRESULT DeleteCfgFile (
    [in] BSTR bstrServerClsIdString,
    [in] BSTR bstrConfigurationSet
    );
    HRESULT SetHierarchyObject (
    [in] BSTR ServerClsIdString,
    [in] BSTR Name,
    [in] BSTR Type,
    [in] BSTR Delimiter,
    [in, unique] SAFEARRAY (BSTR) * pProperties
    );
    HRESULT GetHierarchyObject (
    [in] BSTR ServerClsIdString,
    [in] BSTR Name,
    [out] BSTR * pType,
    [out] BSTR * pDelimiter,
    [out] SAFEARRAY (BSTR) * pProperties
    );
    HRESULT RemoveHierarchyObject (
    [in] BSTR ServerClsIdString,
    [in] BSTR Name
    );
    HRESULT RenameHierarchyObject (
    [in] BSTR ServerClsIdString,
    [in] BSTR OldName,
    [in] BSTR NewName);
    HRESULT SetTopicObject (
    [in] BSTR ServerClsIdString,
    [in] BSTR Name,
    [in] BSTR Parent,
    [in] BSTR Type,
    [in] LONG UpdateInterval,
    [in, unique] SAFEARRAY (BSTR) * pProperties
    );
    HRESULT GetTopicObject (
    [in] BSTR ServerClsIdString,
    [in] BSTR Name,
    [in] BSTR Parent,
    [out] BSTR * pType,
    [out] LONG * pUpdateInterval,
    [out] SAFEARRAY (BSTR) * pProperties
    );
    HRESULT RemoveTopicObject (
    [in] BSTR ServerClsIdString,
    [in] BSTR Name,
    [in] BSTR Parent);
    HRESULT RenameTopicObject (
    [in] BSTR ServerClsIdString,
    [in] BSTR OldName,
    [in] BSTR Parent,
    [in] BSTR NewName);
    HRESULT SetLeafObject (
    [in] BSTR ServerClsIdString,
    [in] BSTR Name,
    [in] BSTR Parent,
    [in] BSTR Type,
    [in] BSTR Delimiter,
    [in, unique] SAFEARRAY (BSTR) * pProperties
    );
    HRESULT GetLeafObject (
    [in] BSTR ServerClsIdString,
    [in] BSTR Name,
    [in] BSTR Parent,
    [out] BSTR * pType,
    [out] BSTR * pDelimiter,
    [out] SAFEARRAY (BSTR) * pProperties
    );
    HRESULT RemoveLeafObject (
    [in] BSTR ServerClsIdString,
    [in] BSTR Name,
    [in] BSTR Parent);
    HRESULT RenameLeafObject (
    [in] BSTR ServerClsIdString,
    [in] BSTR OldName,
    [in] BSTR Parent,
    [in] BSTR NewName);
    HRESULT BrowseHierarchyObjects (
    [in] BSTR ServerClsIdString,
    [in] BSTR BranchName,
    [out] SAFEARRAY (BSTR) * pBranches,
    [out] SAFEARRAY (BSTR) * pLeaves,
    [out] SAFEARRAY (BSTR) * pTopics
    );
    HRESULT SetDataObject (
    [in] BSTR ServerClsIdString,
    [in] BSTR Name,
    [in] BSTR Type,
    [in, unique] SAFEARRAY (BSTR) * pProperties
    );
    HRESULT GetDataObject (
    [in] BSTR ServerClsIdString,
    [in] BSTR Name,
    [out] BSTR * pType,
    [out] SAFEARRAY (BSTR) * pProperties
    );
    HRESULT RemoveDataObject (
    [in] BSTR ServerClsIdString,
    [in] BSTR Name);
    HRESULT RenameDataObject (
    [in] BSTR ServerClsIdString,
    [in] BSTR OldName,
    [in] BSTR NewName);
    HRESULT BrowseDataObjects (
    [in] BSTR ServerClsIdString,
    [out] SAFEARRAY (BSTR) * pDataObjects
    );
    HRESULT GetSystemObject (
    [in] BSTR ServerClsIdString,
    [out] SAFEARRAY (BSTR) * pProperties
    );
    HRESULT SetSystemObject (
    [in] BSTR ServerClsIdString,
    [in, unique] SAFEARRAY (BSTR) * pProperties
    );
    HRESULT RemoveSystemObject (
    [in] BSTR ServerClsIdstring);
    }
    Operations
    BrowseDataObjects
    Declaration
    HRESULT BrowseDataObjects (
    [in] BSTR ServerClsIdString,
    [out] SAFEARRAY (BSTR) * pDataObjects
    )
    BrowseHierarchyObjects
    Declaration
    HRESULT BrowseHierarchyObjects (
    [in] BSTR ServerClsIdString,
    [in] BSTR BranchName,
    [out] SAFEARRAY (BSTR) * pBranches,
    [out] SAFEARRAY (BSTR) * pLeaves,
    [out] SAFEARRAY (BSTR) * pTopics
    )
    ClearCfgFile
    Declaration
    HRESULT ClearCfgFile (
    [in] BSTR ServerClsIdString
    )
    Return Value
    S_OK The operation succeeded.
    E_FAIL The operation failed.
    E_OUTOFMEMORY Not enough memory
    E_INVALIDARG An argument to the function was invalid.
    DeleteCfgFile
    Declaration
    HRESULT DeleteCfgFile (
    [in] BSTR bstrServerClsIdString,
    [in] BSTR bstrConfigurationSet
    )
    Return Value
    S_OK The operation succeeded.
    E_FAIL The operation failed.
    E_OUTOFMEMORY Not enough memory
    E_INVALIDARG An argument to the function was invalid.
    EnumCfgSets
    Declaration
    HRESULT EnumCfgSets (
    [in] BSTR ServerClsIdString,
    [out] SAFEARRAY (BSTR) * pConfigSets
    )
    Parameters
    pConfigSets returns list wit configuration set (only names, no path)
    GetCfgFileName
    Declaration
    HRESULT GetCfgFileName (
    [in] BSTR ServerClsIdString,
    [out] BSTR * pFileName
    )
    Return Value
    S_OK The operation succeeded.
    E_FAIL The operation failed.
    E_OUTOFMEMORY Not enough memory
    E_INVALIDARG An argument to the function was invalid.
    GetDataObject
    Declaration
    HRESULT GetDataObject (
    [in] BSTR ServerClsIdString,
    [in] BSTR Name,
    [out] BSTR * pType,
    [out] SAFEARRAY (BSTR) * pProperties
    )
    GetHierarchyObject
    Declaration
    HRESULT GetHierarchyObject (
    [in] BSTR ServerClsIdString,
    [in] BSTR Name,
    [out] BSTR * pType,
    [out] BSTR * pDelimiter,
    [out] SAFEARRAY (BSTR) * pProperties
    )
    Return Value
    S_OK The operation succeeded.
    E_FAIL The operation failed.
    E_OUTOFMEMORY Not enough memory
    E_INVALIDARG An argument to the function was invalid.
    GetLeafObject
    Declaration
    HRESULT GetLeafObject (
    [in] BSTR ServerClsIdString,
    [in] BSTR Name,
    [in] BSTR Parent,
    [out] BSTR * pType,
    [out] BSTR * pDelimiter,
    [out] SAFEARRAY (BSTR) * pProperties
    )
    Return Value
    S_OK The operation succeeded.
    E_FAIL The operation failed.
    E_OUTOFMEMORY Not enough memory
    E_INVALIDARG An argument to the function was invalid.
    GetSystemObject
    Declaration
    HRESULT GetSystemObject (
    [in] BSTR ServerClsIdString,
    [out] SAFEARRAY (BSTR) * pProperties
    )
    GetTopicObject
    Declaration
    HRESULT GetTopicObject (
    [in] BSTR ServerClsIdString,
    [in] BSTR Name,
    [in] BSTR Parent,
    [out] BSTR * pType,
    [out] LONG * pUpdateInterval,
    [out] SAFEARRAY (BSTR) * pProperties
    )
    Return Value
    S_OK The operation succeeded.
    E_FAIL The operation failed.
    E_OUTOFMEMORY Not enough memory
    E_INVALIDARG An argument to the function was invalid.
    RemoveDataObject
    Declaration
    HRESULT RemoveDataObject (
    [in] BSTR ServerClsIdString,
    [in] BSTR Name)
    Return Value
    S_OK The operation succeeded.
    E_FAIL The operation failed.
    E_OUTOFMEMORY Not enough memory
    E_INVALIDARG An argument to the function was invalid.
    RemoveHierarchyObject
    Declaration
    HRESULT RemoveHierarchyObject (
    [in] BSTR ServerClsIdString,
    [in] BSTR Name
    )
    Return Value
    S_OK The operation succeeded.
    E_FAIL The operation failed.
    E_OUTOFMEMORY Not enough memory
    E_INVALIDARG An argument to the function was invalid.
    RemoveLeafObject
    Declaration
    HRESULT RemoveLeafObject (
    [in] BSTR ServerClsIdString,
    [in] BSTR Name,
    [in] BSTR Parent)
    Return Value
    S_OK The operation succeeded.
    E_FAIL The operation failed.
    E_OUTOFMEMORY Not enough memory
    E_INVALIDARG An argument to the function was invalid.
    RemoveSystemObject
    Declaration
    HRESULT RemoveSystemObject (
    [in] BSTR ServerClsIdString)
    Return Value
    S_OK The operation succeeded.
    E_FAIL The operation failed.
    E_OUTOFMEMORY Not enough memory
    E_INVALIDARG An argument to the function was invalid.
    RemoveTopicObject
    Declaration
    HRESULT RemoveTopicObject (
    [in] BSTR ServerClsIdString,
    [in] BSTR Name,
    [in] BSTR Parent)
    Return Value
    S_OK The operation succeeded.
    E_FAIL The operation failed.
    E_OUTOFMEMORY Not enough memory
    E_INVALIDARG An argument to the function was invalid.
    RenameDataObject
    Declaration
    HRESULT RenameDataObject (
    [in] BSTR ServerClsIdString,
    [in] BSTR OldName,
    [in] BSTR NewName)
    Return Value
    S_OK The operation succeeded.
    E_FAIL The operation failed.
    E_OUTOFMEMORY Not enough memory
    E_INVALIDARG An argument to the function was invalid.
    RenameHierarchyObject
    Declaration
    HRESULT RenameHierarchyObject (
    [in] BSTR ServerClsIdString,
    [in] BSTR OldName,
    [in] BSTR NewName)
    Return Value
    S_OK The operation succeeded.
    E_FAIL The operation failed.
    E_OUTOFMEMORY Not enough memory
    E_INVALIDARG An argument to the function was invalid.
    RenameLeafObject
    Declaration
    HRESULT RenameLeafObject (
    [in] BSTR ServerClsIdString,
    [in] BSTR OldName,
    [in] BSTR Parent,
    [in] BSTR NewName)
    Return Value
    S_OK The operation succeeded.
    E_FAIL The operation failed.
    E_OUTOFMEMORY Not enough memory
    E_INVALIDARG An argument to the function was invalid.
    RenameTopicObject
    Declaration
    HRESULT RenameTopicObject (
    [in] BSTR ServerClsIdString,
    [in] BSTR OldName,
    [in] BSTR Parent,
    [in] BSTR NewName)
    Return Value
    S_OK The operation succeeded.
    E_FAIL The operation failed.
    E_OUTOFMEMORY Not enough memory
    E_INVALIDARG An argument to the function was invalid.
    SaveCfgSetAs
    Declaration
    HRESULT SaveCfgSetAs (
    [in] BSTR ServerClsIdString,
    [in] BSTR pConfigSet
    )
    SetCfgFileName
    Declaration
    HRESULT SetCfgFileName (
    [in] BSTR ServerClsIdString,
    [in] BSTR FileName
    )
    Return Value
    S_OK The operation succeeded.
    E_FAIL The operation failed.
    E_OUTOFMEMORY Not enough memory
    E_INVALIDARG An argument to the function was invalid.
    SetDataObject
    Declaration
    HRESULT SetDataObject (
    [in] BSTR ServerClsIdString,
    [in] BSTR Name,
    [in] BSTR Type,
    [in, unique] SAFEARRAY (BSTR) * pProperties
    )
    SetHierarchyObject
    Declaration
    HRESULT SetHierarchyObject (
    [in] BSTR ServerClsIdString,
    [in] BSTR Name,
    [in] BSTR Type,
    [in] BSTR Delimiter,
    [in, unique] SAFEARRAY (BSTR) * pProperties
    )
    Return Value
    S_OK The operation succeeded.
    E_FAIL The operation failed.
    E_OUTOFMEMORY Not enough memory
    E_INVALIDARG An argument to the function was invalid.
    SetLeafObject
    Declaration
    HRESULT SetLeafObject (
    [in] BSTR ServerClsIdString,
    [in] BSTR Name,
    [in] BSTR Parent,
    [in] BSTR Type,
    [in] BSTR Delimiter,
    [in, unique] SAFEARRAY (BSTR) * pProperties
    )
    Return Value
    S_OK The operation succeeded.
    E_FAIL The operation failed.
    E_OUTOFMEMORY Not enough memory
    E_INVALIDARG An argument to the function was invalid.
    SetSystemObject
    Declaration
    HRESULT SetSystemObject (
    [in] BSTR ServerClsIdString,
    [in, unique] SAFEARRAY (BSTR) * pProperties
    )
    SetTopicObject
    Declaration
    HRESULT SetTopicObject (
    [in] BSTR ServerClsIdString,
    [in] BSTR Name,
    [in] BSTR Parent,
    [in] BSTR Type,
    [in] LONG UpdateInterval,
    [in, unique] SAFEARRAY (BSTR) * pProperties
    )
    Parameters
    Name name of the topic
    Parent fully qualified name
    Return Value
    S_OK The operation succeeded.
    E_FAIL The operation failed.
    E_OUTOFMEMORY Not enough memory
    E_INVALIDARG An argument to the function was invalid.
    SwitchToCfgSet
    Declaration
    HRESULT SwitchToCfgSet (
    [in] BSTR ServerClsIdString,
    [in] BSTR pConfigSet
    )
  • An [0048] IIOSrCfgrules interface 520 defines a set of methods for extracting configuration rules from a storage area such as the rules 270 via the remote infrastructure 250. This interface insulates the caller from the particulars of extracting or storing data on a particular physical
    Declaration
    [
    object,
    dual,
    uuid(52088D9A-DED4-11D3-83F2-00A024A866AD),
    helpstring(“IIOSrvCfgRules Interface”),
    pointer_default(unique)
    ]
    /*
    This interface provides a way to extract the configuration rules from
    the rules storage area
    */
    interface IIoSrvCfgRules : IDispatch
    {
    HRESULT GetCfgRuleFileName(
    [in] BSTR ServerClsIdstring,
    [out] BSTR * pFileName
    );
    HRESULT SetCfgRuleFileName(
    [in] BSTR ServerClsIdString,
    [in] BSTR pFileName
    );
    HRESULT GetHostClsIds(
    [in] BSTR ServerClsIdString,
    [out] BSTR * pPackageClsIdString,
    [out] BSTR * pEditorHostClsIdString
    );
    HRESULT GetRulesForObjectType(
    [in] BSTR ServerClsIdstring,
    [in] BSTR ObjectType,
    [out] BSTR * pEditorClsIdString,
    [out] BSTR * pPackageClsIdString,
    [out] BSTR * pDelimiter
    );
    HRESULT GetCfgChildRulesForObjectType(
    [in] BSTR ServerClsIdString,
    [in] BSTR Type,
    [out] SAFEARRAY(BSTR) * ChildTypes,
    [out] SAFEARRAY(LONG) * ChildTypesMaxOccurs,
    [out] LONG * pOptions
    );
    HRESULT GetCfgPropertyRulesForObjectType(
    [in] BSTR ServerClsIdString,
    [in] BSTR Type,
    [out] SAFEARRAY(BSTR) * PropertyName,
    [out] SAFEARRAY(LONG) * PropertyType,
    [out] SAFEARRAY(VARIANT) * DefaultValue,
    [out] SAFEARRAY(VARIANT) * PropertyMin,
    [out] SAFEARRAY(VARIANT) * PropertyMax,
    [out] SAFEARRAY(BSTR) * PropertyEditHeader,
    [out] SAFEARRAY(BSTR) * PropertyEditunit,
    [out] SAFEARRAY(BSTR) * PropertyEditHelp,
    [out] SAFEARRAY(LONG) * PropertyAccessRights
    );
    }
    Operations
    GetCfgChildRulesForObjectType
    Declaration
    HRESULT GetCfgChildRulesForObjectType(
    [in] BSTR ServerClsIdstring,
    [in] BSTR Type,
    [out] SAFEARRAY(BSTR) * ChildTypes,
    [out] SAFEARRAY(LONG) * ChildTypesMaxOccurs,
    [out] LONG * pOptions
    )
    Parameters
    ServerClsIdString server ClsId.
    Type type name - if rules for the root are to be
    retrieved pass empty string:
    ChildTypes Get the array of possible child types. The
    configuration snap-in displays these types as
    choices to the user to create child objects
    ChildTypesMaxOccurs Number of maximum occurrences of the
    corresponding child object type.
    pOptions List of bit-options in returned DWORD
    currently 3 bits are defined:
    Remarks
    Gets the child rules for object type. Rules are user type based. This means
    that objects with the same user type have the same set of rules.
    GetCfgPropertyRulesForObjectType
    Declaration
    HRESULT GetCfgPropertyRulesForObjectType(
    [in] BSTR ServerClsIdString,
    [in] BSTR Type,
    [out] SAFEARRAY(BSTR) * PropertyName,
    [out] SAFEARRAY(LONG) * PropertyType,
    [out] SAFEARRAY(VARIANT) * DefaultValue,
    [out] SAFEARRAY(VARIANT) * PropertyMin,
    [out] SAFEARRAY(VARIANT) * PropertyMax,
    [out] SAFEARRAY(BSTR) * PropertyEditHeader,
    [out] SAFEARRAY(BSTR) * PropertyEditUnit,
    [out] SAFEARRAY(BSTR) * PropertyEditHelp,
    [out] SAFEARRAY(LONG) * PropertyAccessRights
    )
    Parameters
    ServerClsIdString server clsid.
    Type type name - if rules for the root are to be
    retrieved pass empty string:
    PropertyName Array of unique property names. The
    configuration snap-in will display an edit
    field for each property.
    PropertyType Array of property types. The configuration
    snap-in uses this type to perform validation
    on user input.
    Default Value Array of property default values. The
    configuration snap-in uses this value to
    initialize user input values. Any configura-
    tion data client uses this as the default value
    if not present. In the case of
    VARIANT_EMPTY there is no default
    value.
    PropertyMin Array of minimum property values. The
    configuration snap-in uses this value to
    validate user input values. In case of type
    ‘STRING’ this represents the minimum
    number of (UNICODE) characters.
    PropertyMax Array of maximum property values. The
    configuration snap-in uses this value to
    validate user input values. In case of type
    ‘STRING’ this represents the maximum
    number of (UNICODE) characters.
    PropertyEditHeader Array of property edit headers. The
    configuration snap-in uses this value to
    precede the edit field for user input.
    PropertyEditUnit Array of property edit units. The configura-
    tion snap-in uses this string to be diplayed
    after the edit field for user input.
    PropertyEditHelp Array of property edit help strings. The
    configuration snap-in uses this string to
    display an online help string on user request
    for the corresponding edit field.
    PropertyAccessRights Array of property edit lock flags. The
    configuration snap-in uses this value to
    determine the accessrights on this property.
    Remarks
    Gets the property rules for object type. Rules are user type based.
    This means that objects with the same user type have the same set of rules.
    GetCfgRuleFileName
    Declaration
    HRESULT GetCfgRuleFileName(
    [in] BSTR ServerClsIdString,
    [out] BSTR * pFileName
    )
    Parameters
    ServerClsIdString DAS server class ID
    pFileName pointer to file name
    Remarks
    retrieves the cfg rule file name of the active configuration file of the
    server. The configuration snap-in usually does not need to know this file
    name. This is only for informational purposes
    GetHostClsIds
    Declaration
    HRESULT GetHostClsIds
    [in] BSTR ServerClsIdString,
    [out] BSTR * pPackageClsIdString,
    [out] BSTR * pEditorHostClsIdString
    )
    Parameters
    ServerClsIdString DAS server class ID
    PPackageClsIdString Clsid of the package
    PEditorHostClsIdString Clsid of the editor host
    Remarks
    retrieves the editor ClsId for a given object type
    GetRulesForObjectType
    Declaration
    HRESULT GetRulesForObjectType(
    [in] BSTR ServerClsIdString,
    [in] BSTR ObjectType,
    [out] BSTR * pEditorClsIdString,
    [out] BSTR * pPackageClsIdString,
    [out] BSTR * pDelimiter
    )
    Parameters
    ServerClsIdString DAS server class ID
    Object Type object type (value of the type attribute of the
    corresponding object in the configuration
    file)
    pEditorClsIdString Clsid of the editor ActiveX responsible for
    editing all object properties
    pPackageClsIdString Clsid of the package
    pDelimiter Delimiter of the type (post delimiter)
    Remarks
    retrieves the editor ClsId for a given object type
    SetCfgRuleFileName
    Declaration
    HRESULT SetCfgRuleFileName
    [in] BSTR ServerClsIdstring,
    [in] BSTR pFileName
    Parameters
    ServerClsIdString DAS server class ID
    pFileName file name
    Remarks
    Sets the rules file name
  • Turning to FIG. 7, a sequence diagram depicts a set of steps executed when a node editor opens and a particular data access server is selected by a user. During [0049] step 600, a user launches the DAS console client via an MMC. In response, the DASCC communicates with DAS Agents located on each node supporting a DAS to enumerate all DAS's on the network during step 602. Next, during step 604 a user selects one of the enumerated DAS's for configuration, and during steps 606 and 608 the DASCC issues requests to create an instance of the Package Host 210 object and an instance of the Editor Host 230. If a node package or node editor is specified, then these objects too are instantiated.
  • After creating the above configuration components, at [0050] step 610 the DASCC issues a request to the Package Host 210 to request a set of node configuration parameters for a node containing the data access server selected by the user during step 604. At step 612 the Package Host 210 passes the read request to the remote infrastructure via the CIOSrvCfgPersist interface 510. The remote infrastructure calls the configuration storage 280 to read the existing parameters associated with the selected DAS during step 614, and calls the rules storage 2270 to read any applicable rules associated with the selected DAS during step 616. The retrieved configuration parameters and rules are then returned to the calling Package Host 210.
  • During [0051] step 618 the DAS control consol issues an “init” call on the previously created Editor Host 230. In response, during steps 620 and 622 the Editor Host 230 creates an instance of the Node Editor 240 custom face plate specified by the accessed node and then forwards the “init” call to the Node Editor 240. At step 624 the Node Editor 240 calls the Package Host 210 to obtain values for each parameter specified by the node (and any associated rules) and then displays the configuration parameters in accordance with the associated rules via the custom face plate during step 626. Thereafter, the user issues requests to the Node Editor 240 to change node parameters in association with a configuration session for the selected DAS.
  • Turning to FIG. 8, a sequence diagram depicts a series of exemplary steps performed to edit an existing configuration, and in particular add a new node in a configuration hierarchy specified for a selected data access server. During [0052] step 700 the user selects a parent node (type) to add to a configuration by passing an appropriate user interface request to the DASCC 200. In response, during step 702 the DASCC 200 issues a request to the Package Host 210 to get a list of configuration parameters and rules associated with the selected node type (including any children nodes). At step 704 the Package Host 210 requests, from the CIOSrvCfgPersist object 500, all rules for the selected node. Thereafter, the CIOSrvCfgPersist object 500 passes the configuration rules request to the rules storage 270. Next, at step 708 the Package Host 210 issues a request to read the child node parameters for the selected node to the CIOSrvCfgPersist object 500. In response at step 710 the request is passed to the configuration storage 280. Upon receiving both the appropriate rules and parameters, the Package Host applies the configuration rules to the retrieved parameters to create an appropriate parent node structure.
  • Thereafter, at [0053] step 714 the user issues an interface command to the DASCC 200 to add a new node of the previously selected type. Next, at step 716 the DASCC 200 issues a request to the Package Host 210 to add a new node to a selected/identified child node within a configuration hierarchy. At step 718 the Package Host 210 calls the CIOSrvCfgPersist object 500 to add a new node to the storage area for currently selected configuration. Thereafter, at step 720 the CIOSrvCfgPersist object 500 issues a request to the configuration storage 280 to store the created new node.
  • Turning to FIG. 9, a sequence diagram depicts the steps for saving changes made to a configuration using the previously described distributed configuration components. In response to a user issuing a save request by selecting an “apply” button on the user interface of the [0054] Editor Host 230 during step 800. In response, during step 802 the Editor Host 230 passes a call to save configuration changes to the Node Editor 240 (node type-specific faceplate). In response, during step 804 the Node Editor 240 calls the Package Host 210 with a request to save the new values of the node parameters. The Package Host 210, with reference possibly to the custom node package 220, validates the requested node change information during step 806. During step 808 the Package Host 210 calls the CIOSrvCfgPersist object 500 requesting a save operation on a set of specified node parameters. The CIOSrvCfgPersist object 500 carries out the save request at step 810 by storing the changed parameter values in the configuration storage 280. After the new configuration information is placed in the configuration storage 280, the CIOSrvCfgPersist object 500 determines whether the affected DAS is currently running. In the case that the DAS is running, at step 812 the CIOSrvCfgPersist object 500 notifies the corresponding DAS of the changes (including specifying the nodes that were changed). The notification mechanism embodied in step 812 facilitates hot configuration of a running data access server. In response, the server reads the new values from the configuration storage 280 and updates its configuration at a point in time when such changes do not disrupt the ongoing operation of the DAS.
  • The following is a set of type definitions utilized in an exemplary implementation of the [0055] Package Host 210 and the Node Editor 240.
    Type Definitions:
    ATTR_PROPERTYIDS
    Declaration
    enum
    {
    _PROPERTY_INVALID_PROPID_= 0,
    _PROPERTY_NAME_,
    _PROPERTY_TYPE_,
    _PROPERTY_VALUE_,
    _PROPERTY_MIN_,
    _PROPERTY_MAX_,
    _PROPERTY_HEADER_,
    _PROPERTY_EUNITS_,
    _PROPERTY_HELP_,
    _PROPERTY_ACCESSRIGHTS_,
    }
    Description
    Specifies the Attribute properties
    Elements
    _PROPERTY_VALUE
    _PROPERTY_HEADER
    _PROPERTY_MAX
    _PROPERTY_MIN
    _PROPERTY_INVALID_PROPID_ Zero is reserved for invalid PropID
    _PROPERTY_TYPE
    _PROPERTY_HELP
    _PROPERTY_ACCESSRIGHTS
    _PROPERTY_EUNITS
    _PROPERTY_NAME
    COMMIT_ENUM
    Declaration
    enum {
    COMMIT_OK = 1,
    COMMIT_INVALID_HANDLE,
    COMMIT_FAIL,
    COMMIT_REMOTE_FAIL
    }
    Description
    Specifies the options for status of Commit operation
    Elements
    COMMIT_INVALID_HANDLE
    COMMIT_REMOTE_FAIL
    COMMIT_OK
    COMMIT_FAIL
    IOSRVPROPERTY
    Declaration
    typedef struct tagIOSRVPROPERTY {
    [string] BSTR szKey;
    [string] BSTR szProperty; } IOSRVPROPERTY
    Description
    Describes a parameter's name and value.
    PROPERTYACCESSRIGHT
    Declaration
    typedef enum tagPROPERTYACCESSRIGHTS {
    PROPERTYACCESSRIGHT_ALL = 0,
    PROPERTYACCESSRIGHT_LOCKED = 1 } PROPERTYACCESSRIGHT
    Description
    Describes user access rights for a property
    SHAPE_INFO_ENUM
    Declaration
    enum {
    SHAPE_INFO_ATTRIBUTES = 1,
    SHAPE_INFO_NODES,
    SHAPE_INFO_TOPICS,
    SHAPE_INFO_LEAVES
    }
    Description
    Specifies the Shape information options
    Elements
    SHAPE_INFO_ATTRIBUTES
    SHAPE_INFO_TOPICS
    SHAPE_INFO_LEAVES
    SHAPE_INFO_NODES
  • The following is an example of the [0056] rule file 270 which makes up a first part of a remote configuration specification's persistence area. A set of tag explanations precedes the actual example.
    KEY XML Attributes Explanation
    <CONFIGURATIONRULES> NAME Root key for the configuration rules (DAS
    PACKAGEHOSTID related data is inside this root key only).
    EDITORHOSTID The presence of this root key potentially
    allows additional (user-) data to be stored
    in the same file under parallel root keys.
    <HIERARCHYNODE> TYPE Key for rule for an object of type “TYPE”
    EDITORID (related to a DAS object type).
    PACKAGEID TYPE (server specific class) and NAME
    DELIMITER are required - DELIMITER is optional
    (defaults to “.” If not present)
    <CHILDRULES> ENABLEDEVICEGROUPS Sub-key for CHILDRULES of an object
    ENABLEDEVICEITEMS of type “NAME”.
    ENABLESYSTEMITEMS DEVICEGROUPS, DEVICEITEMS,
    SYSTEMITEMS are keys for boolean
    flags allowing the specified objects on this
    branch object of type “NAME”.
    <“user type”> MAXOCCURENCES User type Key for an object under child
    MINOCCURENCES rules.
    <PROPERTYRULES> Key for properties/editor element
    <PROPERTYTYPE> Key for the variant property type under
    property rules.
    <DEFAULTVALUE> Key for the property default value under
    property rules.
    <PROPERTYMIN> Key for the property minimum value
    under property rules.
    <PROPERTYMAX> Key for the property maximum value
    under property rules..
    <PROPERTYEDITHEADER> Key for the property edit field header
    under property rules..
    <PROPERTYUNIT> Key for the property edit field unit under
    property rules..
    <PROPERTYHELP> Key for the property edit field help under
    property rules..
    ?xml version=“1.0” encoding=“UTF-8”?>
    <CONFIGURATIONRULES NAME=“DAS ABTCP” PACKAGEHOSTID=“{7F5B8DEE-AB78-11D4-93E4-
    00B0D0201D61}” EDITORHOSTID=“{5C9AF1AA-AEC8-11D4-93E6-00B0D0201D61}”>
    <HIERARCHYNODE TYPE=“$ROOT$”>
    <CHILDRULES ENABLEDEVICEGROUPS=“1” ENABLEDEVICEITEMS=“0”
    ENABLESYSTEMITEMS=“1”>
    <PORT_TCPIP MAXOCCURRENCES=“1”/>
    </CHILDRULES>
    <PROPERTYRULES>
    <UpdateInterval>
    <PROPERTYTYPE>VT_I4</PROPERTYTYPE>
    <DEFAULTVALUE>1000</DEFAULTVALUE>
    <PROPERTYMIN>0</PROPERTYMIN>
    <PROPERTYMAX>100000</PROPERTYMAX>
    <PROPERTYEDITUNIT>ms</PROPERTYEDITUNIT>
    <PROPERTYEDITHELP>Update interval of default topics for hierarchies without overriding
    configuration</PROPERTYEDITHELP>
    </UpdateInterval>
    <SlowPollInterval>
    <PROPERTYTYPE>VT_I4</PROPERTYTYPE>
    <DEFAULTVALUE>10000</DEFAULTVALUE>
    <PROPERTYMIN>0</PROPERTYMIN>
    <PROPERTYMAX>100000</PROPERTYMAX>
    <PROPERTYEDITIUNIT>ms</PROPERTYEDITUNIT>
    <PROPERTYEDITHELP>Update interval of topics for hierarchies in slow poll
    mode</PROPERTYEDITHELP>
    </SlowPollInterval>
    <CaseSensitive>
    <PROPERTYTYPE>VT_I4</PROPERTYTYPE>
    <DEFAULTVALUE>0<DEFAULTVALUE>
    <PROPERTYMIN>0</PROPERTYMIN>
    <PROPERTYMAX>1</PROPERTYMAX>
    <PROPERTYEDITUNIT>T/F</PROPERTYEDITUNIT>
    <PROPERTYEDITHELP>TRUE means case-sensitive Device Group and Item ID
    names</PROPERTYEDITHELP>
    </CaseSensitive>
    <DefaultPokeMode>
    <PROPERTYTYPE>VT_I4</PROPERTYTYPE>
    <DEFAULT VALUE>1</DEFAULTVALUE>
    <PROPERTYMIN>0</PROPERTYMIN>
    <PROPERTYMAX>2</PROPERTYMAX>
    <PROPERTYEDITUNIT/>
    <PROPERTYEDITHELP>0=Control, 1=Transition, 2=Optimized, </PROPERTYEDITHELP>
    </DefaultPokeMode>
    <DefaultDelimiter>
    <PROPERTYTYPE>VT_BSTR</PROPERTYTYPE>
    <DEFAULTVALUE>.</DEFAULTVALUE>
    <PROPERTYMIN>1</PROPERTYMIN>
    <PROPERTYMAX>3</PROPERTYMAX>
    <PROPERTYEDITUNIT/>
    <PROPERTYEDITHELP>Delimiter for hierarchies not configured</PROPERTYEDITHELP>
    </DefaultDelimiter>
    <SimulationMode>
    <PROPERTYTYPE>VT_I4</PROPERTYTYPE>
    <DEFAULTVALUE>0</DEFAULT VALUE>
    <PROPERTYMIN>0</PROPERTYMIN>
    <PROPERTYMAX>1</PROPERTYMAX>
    <PROPERTYEDITUNIT>T/F</PROPERTYEDITUNIT>
    <PROPERTYEDITHELP>TRUE means simulate for DAServers that support
    simulation</PROPERTYEDITHELP>
    </SimulationMode>
    <EnableSystemItems>
    <PROPERTYTYPE>VT_I4</PROPERTYTYPE>
    <DEFAULTVALUE>1</DEFAULTVALUE>
    <PROPERTYMIN>0</PROPERTYMIN>
    <PROPERTYMAX>1</PROPERTYMAX>
    <PROPERTYEDITUNIT>T/F</PROPERTYEDITUNIT>
    <PROPERTYEDITHELP>TRUE to allow system items</PROPERTYEDITHELP>
    </EnableSystemItems>
    <LinkTopicCache>
    <PROPERTYTYPE>VT_UI4</PROPERTYTYPE>
    <DEFAULTVALUE>0</DEFAULTVALUE>
    <PROPERTYMIN>0</PROPERTYMIN>
    <PROPERTYMAX>1</PROPERTYMAX>
    <PROPERTYEDITUNIT>T/F</PROPERTYEDITUNIT>
    <PROPERTYEDITHELP>TRUE merges all subscription items in a single cache</PROPERTYEDITHELP>
    </LinkTopicCache>
    <UniqueDeviceGroup>
    <PROPERTYTYPE>VT_UI4</PROPERTYTYPE>
    <DEFAULTVALUE>1</DEFAULTVALUE>
    <PROPERTYMIN>0</PROPERTYMIN>
    <PROPERTYMAX>1</PROPERTYMAX>
    <PROPERTYEDITUNIT>T/F</PROPERTYEDITUNIT>
    <PROPERTYEDITHELP>TRUE requires all device group names be unique</PROPERTYEDITHELP>
    </UniqueDeviceGroup>
    <ProtocolTimerTick>
    <PROPERTYTYPE>VT_UI4</PROPERTYTYPE>
    <DEFAULTVALUE>50</DEFAULTVALUE>
    <PROPERTYMIN>10</PROPERTYMIN>
    <PROPERTYMAX>100000</PROPERTYMAX>
    <PROPERTYEDITUNIT>ms</PROPERTYEDITUNIT>
    <PROPERTYEDITHELP>Protocol timer tick interval in milliseconds</PROPERTYEDITHELP>
    </ProtocolTimerTick>
    <TransactionTimeout>
    <PROPERTYTYPE>VT_UI4</PROPERTYTYPE>
    <DEFAULTVALUE>60000</DEFAULTVALUE>
    <PROPERTYMIN>10</PROPERTYMIN>
    <PROPERTYMAX>60000</PROPERTYMAX>
    <PROPERTYEDITUNIT>ms</PROPERTYEDITUNIT>
    <PROPERTYEDITHELP>Default transaction timeout for hierarchies with no
    configuration</PROPERTYEDITHELP>
    </TransactionTimeout>
    <LockConfigurationFile>
    <PROPERTYTYPE>VT_BOOL<PROPERTYTYPE>
    <DEFAULTVALUE>0</DEFAULTVALUE>
    <PROPERTYMIN>0</PROPERTYMIN>
    <PROPERTYMAX>1</PROPERTYMAX>
    <PROPERTYEDITUNIT>T/F</PROPERTYEDITUNIT>
    <PROPERTYEDITHELP>TRUE for non-Magellan configurers locked out</PROPERTYEDITHELP>
    </LockConfigurationFile>
    <SubscriptionTransactionRatio>
    <PROPERTYTYPE>VT_UI4</PROPERTYTYPE>
    <DEFAULTVALUE>2</DEFAULTVALUE>
    <PROPERTYMIN>1</PROPERTYMIN>
    <PROPERTYMAX>1000</PROPERTYMAX>
    <PROPERTYEDITUNIT/>
    <PROPERTYEDITHELP>Subscription / Transaction ratio</PROPERTYEDITHELP>
    </SubscriptionTransactionRatio>
    </PROPERTYRULES>
    </HIERARCHYNODE>
    <HIERARCHYNODE TYPE=“PORT_TCPIP” EDITORID=“{1B48839F-B68E-4CDA-A090-C8BD87932126}”
    PACKAGEID=“{7F5B8DEE-AB78-11D4-93E4-00B0D0201D61}” DELIMITER=“.”>
    <CHILDRULES>
    <PLC5_TCPIP MAXOCCURRENCES=“100”/>
    <SLC500_TCPIP MAXOCCURRENCES=“100”/>
    <PYRAMID_EI MAXOCCURRENCES=“100”/>
    </CHILDRULES>
    <PROPERTYRULES>
    <MaxQueuedMsgs>
    <!−−Maximum number of queued messages for a topic−−>
    <PROPERTYTYPE>VT_UI4</PROPERTYTYPE>
    <DEFAULTVALUE>4</DEFAULTVALUE>
    <PROPERTYMIN>1</PROPERTYMIN>
    <PROPERTYMAX>20</PROPERTYMAX>
    <PROPERTYEDITHEADER>Max QueuedMsgs</PROPERTYEDITHEADER>
    <PROPERTYEDITUNIT/>
    <PROPERTYEDITHELP>Number of Messages</PROPERTYEDITHELP>
    </MaxQueuedMsgs>
    <MaxSockets>
    <PROPERTYTYPE>VT_UI4</PROPERTYTYPE>
    <DEFAULTVALUE>200</DEFAULTVALUE>
    <PROPERTYMIN>1</PROPERTYMIN>
    <PROPERTYMAX>200</PROPERTYMAX>
    <PROPERTYEDITHEADER>Maximum number of sockets</PROPERTYEDITHEADER>
    <PROPERTYEDITUNIT/>
    <PROPERTYEDITHELP>Maximum number of sockets</PROPERTYEDITHELP>
    </MaxSockets>
    <MaxUnsolConn>
    <PROPERTYTYPE>VT_UI4</PROPERTYTYPE>
    <DEFAULTVALUE>20</DEFAULTVALUE>
    <PROPERTYMIN>1</PROPERTYMIN>
    <PROPERTYMAX>30</PROPERTYMAX>
    <PROPERTYEDITHEADER>Maximum number of peer-to-peer
    connections</PROPERTYEDITHEADER>
    <PROPERTYEDITUNIT/>
    <PROPERTYEDITHELP>Maximum number of peer-to-peer connections</PROPERTYEDITHELP>
    </MaxUnsolConn>
    <UnsolicitedMsgTimeout>
    <PROPERTYTYPE>VT_UI4</PROPERTYTYPE>
    <DEFAULTVALUE>5000</DEFAULTVALUE>
    <PROPERTYMIN>1000</PROPERTYMIN>
    <PROPERTYMAX>10000</PROPERTYMAX>
    <PROPERTYEDITHEADER>Timeout for peer-to-peer unsolicited
    communication</PROPERTYEDITHEADER>
    <PROPERTYEDITUNIT>MSec</PROPERTYEDITUNIT>
    <PROPERTYEDITHELP>Timeout for peer-to-peer unsolicited communication</PROPERTYEDITHELP>
    </UnsolicitedMsgTimeout>
    <FlipStringBytes>
    </−−Flip String Bytes−−>
    <PROPERTYTYPE>VT_BOOL</PROPERTYTYPE>
    <DEFAULTVALUE>0</DEFAULTVALUE>
    <PROPERTYMIN>0<PROPERTYMIN>
    <PROPERTYMAX>1</PROPERTYMAX>
    <PROPERTYEDITHEADER>Flip String Bytes</PROPERTYEDITHEADER>
    <PROPERTYEDITUNIT/>
    <PROPERTYEDITHELP>Flip String Bytes</PROPERTYEDITHELP>
    </FlipStringBytes>
    </PROPERTYRULES>
    </HIERARCHYNODE>
    <HIERARCHYNODE TYPE=“PLC5_TCPIP” PACKAGEID=“” EDITORID=“{85B57144-49F8-47D2-B5B7
    E55CD82CFBC2}” DELIMITER=“.”>
    <CHILDRULES ENABLEDEVICEGROUPS=“1”>
    <PROPERTYRULES>
    <HostName>
    <PROPERTYTYPE>VT_BSTR</PROPERTYTYPE>
    <DEFAULT VALUE/>
    <PROPERTYMIN>0</PROPERTYMIN>
    <PROPERTYMAX>255</PROPERTYMAX>
    <PROPERTYEDITHEADER>device IP address</PROPERTYEDITHEADER>
    <PROPERTYEDITUNIT/>
    <PROPERTYEDITHELP>Device IP Host Name/Address</PROPERTYEDITHELP>
    </HostName>
    <DataBlockSize>
    <PROPERTYTYPE>VT_UI4</PROPERTYTYPE>
    <DEFAULTVALUE>2000</DEFAULT VALUE>
    <PROPERTYMIN>2</PROPERTYMIN>
    <PROPERTYMAX>2000</PROPERTYMAX>
    <PROPERTYEDITHEADER>Message data block size (bytes) for PLC5 on
    Ethernet</PROPERTYEDITHEADER>
    <PROPERTYEDITUNIT/>
    <PROPERTYEDITHELP>Message data block size (bytes) for PLC5 on
    Ethernet</PROPERTYEDITHELP>
    </DataBlockSize>
    <ReplyTimeout>
    <PROPERTYTYPE>VT_UI4</PROPERTYTYPE>
    <DEFAULTVALUE>15</DEFAULTVALUE>
    <PROPERTYMIN>1</PROPERTYMIN>
    <PROPERTYMAX>300</PROPERTYMAX>
    <PROPERTYEDITHEADER>Reply Timeout</PROPERTYEDITHEADER>
    <PROPERTYEDITUNIT>Sec</PROPERTYEDITUNIT>
    <PROPERTYEDITHELP>Reply Timeout</PROPERTYEDITHELP>
    </ReplyTimeout>
    <SupportsPID>
    <PROPERTYTYPE>VT_BOOL</PROPERTYTYPE>
    <DEFAULTVALUE>1</DEFAULTVALUE>
    <PROPERTYMIN>0</PROPERTYMIN>
    <PROPERTYMAX>1</PROPERTYMAX>
    <PROPERTYEDITHEADER>Support PID and String Files</PROPERTYEDITHEADER>
    <PROPERTYEDITUNIT/>
    <PROPERTYEDITHELP>Support PID and String Files</PROPERTYEDITHELP>
    </SupportsPlD>
    <UnsolClientMsg>
    <PROPERTYTYPE>VT_BOOL</PROPERTYTYPE>
    <DEFAULTVALUE>1</DEFAULTVALUE>
    <PROPERTYMIN>0</PROPERTYMIN>
    <PROPERTYMAX>1</PROPERTYMAX>
    <PROPERTYEDITHEADER>Support Unsolicited ‘CLIENT’ Messaging</PROPERTYEDITHEADER>
    <PROPERTYEDITUNIT/>
    <PROPERTYEDITHELP>Support Unsolicited ‘CLIENT’ Messaging</PROPERTYEDITHELP>
    </UnsolClientMsg>
    <ConnectionTimeout>
    </−−Connection Timeout−−>
    <PROPERTYTYPE>VT_U4</PROPERTYTYPE>
    <DEFAULTVALUE>2000</DEFAULTVALUE>
    <PROPERTYMIN>1000</PROPERTYMIN>
    <PROPERTYMAX>20000</PROPERTYMAX>
    <PROPERTYEDITHEADER>Connection Attempt Timeout</PROPERTYEDITHEADER>
    <PROPERTYEDITUNIT/>MSec</PROPERTYEDITUNIT>
    <PROPERTYEDITHELP>Connection Attempt Timeout</PROPERTYEDITHELP>
    </ConnectionTimeout>
    </PROPERTYRULES>
    </HIERARCHYNODE>
    <HIERARCHYNODE TYPE=“SLC500_TCPIP” PACKAGEID=“”EDITORID=“{63B40882-4981-41F0-868B-
    CBCD508C0733}” DELIMITER=“.”>
    <CHILDRULES ENABLEDEVICEGROUPS=“1”/>
    <PROPERTYRULES>
    <HostName>
    <PROPERTYTYPE>VT_BSTR</PROPERTYTYPE>
    <DEFAULTVALUE>10.32.12.36</DEFAULTVALUE>
    <PROPERTYMIN>0</PROPERTYMIN>
    <PROPERTYMAX>255<PROPERTYMAX>
    <PROPERTYEDITHEADER>device IP address</PROPERTYEDITHEADER>
    <PROPERTYEDITUNIT/>
    <PROPERTYEDITHELP>Device IP Host Name/Address</PROPERTYEDITHELP>
    </HostName>
    <DataBlockSize>
    <PROPERTYTYPE>VT_UI4</PROPERTYTYPE>
    <DEFAULTVALUE>510</DEFAULTVALUE>
    <PROPERTYMIN>2</PROPERTYMIN>
    <PROPERTYMAX>510</PROPERTYMAX>
    <PROPERTYEDITHEADER>Data packet size for PLC5 on Ethernet</PROPERTYEDITHEADER>
    <PROPERTYEDITUNIT/>
    <PROPERTYEDITHELP>Data packet size for PLC5 on Ethernet</PROPERTYEDITHELP>
    </DataBlockSize>
    <ReplyTimeout>
    <PROPERTYTYPE>VT_UI4</PROPERTYTYPE>
    <DEFAULTVALUE>15</DEFAULTVALUE>
    <PROPERTYMIN>1</PROPERTYMIN>
    <PROPERTYMAX>300</PROPERTYMAX>
    <PROPERTYEDITHEADER>ReplyTimeout</PROPERTYEDITHEADER>
    <PROPERTYEDITUNIT>Sec</PROPERTYEDITUNIT>
    <PROPERTYEDITHELP>Reply Timeout</PROPERTYEDITHELP>
    </ReplyTimeout>
    <ConnectionTimeout>
    <!−−Connection Timout−−>
    <PROPERTYTYPE>VT_U4</PROPERTYTYPE>
    <DEFAULTVALUE>2000</DEFAULTVALUE>
    <PROPERTYMIN>1000</PROPERTYMIN>
    <PROPERTYMAX>20000</PROPERTYMAX>
    <PROPERTYEDITHEADER>Connection Attempt Timeout</PROPERTYEDITHEADER>
    <PROPERTYEDITUNIT>MSec</PROPERTYEDITUNIT>
    <PROPERTYEDITHELP>Connection Attempt Timeout</PROPERTYEDITHELP>
    </ConnectionTimeout>
    </PROPERTYRULES>
    </HIERARCHYNODE>
    <HIERARCHYNODE TYPE=“PYRAMID_EI” EDITORID=“{4D9DE9D0-48BB-489E-9CED-
    5284FFA3EFED}” DELIMITER=“.”>
    <CHILDRULES>
    <PYRAMID_KA MAXOCCURRENCES=“4”/>
    <PYRAMID_RM MAXOCCURRENCES=“1”/>
    <PYRAMID_PLC5250 MAXOCCURRENCES=“4”/>
    </CHILDRULES>
    <PROPERTYRULES>
    <HostName>
    <PROPERTYTYPE>VT_BSTR</PROPERTYTYPE>
    <DEFAULTVALUE>10.32.12.36</DEFAULTVALUE>
    <PROPERTYMIN>0</PROPERTYMIN>
    <PROPERTYMAX>255</PROPERTYMAX>
    <PROPERTYEDITHEADER>device IP address</PROPERTYEDITHEADER>
    <PROPERTYEDITUNIT/>
    <PROPERTYEDITHELP>Device IP Host Name/Address</PROPERTYEDITHELP>
    </HostName>
    <ConnectionTimeout>
    <!−−Connection Timout−−>
    <PROPERTYTYPE>VT_U4</PROPERTYTYPE>
    <DEFAULTVALUE>2000</DEFAULT VALUE>
    <PROPERTYMIN>1000</PROPERTYMIN>
    <PROPERTYMAX>20000</PROPERTYMAX>
    <PROPERTYEDITHEADER>Connection Attempt Timeout/PROPERTYEDITHEADER>
    <PROPERTYEDITUNIT>MSec</PROPERTYEDITUNIT>
    <PROPERTYEDITHELP>Connection Attempt Timeout</PROPERTYEDITHELP>
    </ConnectionTimeout>
    </PROPERTYRULES>
    </HIERARCHYNODE>
    <HIERARCHYNODE TYPE=“PYRAMID_PLC5250” PACKAGEID=“” EDITORID=“{A7EBCF9D-9ECE-
    4DD5-B417-506ABA20855F}” DELIMITER=“.”>
    <CHILDRULES ENABLEDEVICEGROUPS=“1”/>
    <PROPERTYRULES>
    <ReplyTimeout>
    <PROPERTYTYPE>VT_UI4</PROPERTYTYPE>
    <DEFAULTVALUE>15</DEFAULTVALUE>
    <PROPERTYMIN>1</PROPERTYMIN>
    <PROPERTYMAX>300</PROPERTYMAX>
    <PROPERTYEDITHEADER>ReplyTimeout/PROPERTYEDITHEADER>
    <PROPERTYEDITUNIT>Sec</PROPERTYEDITUNIT>
    <PROPERTYEDITHELP>Reply Timeout</PROPERTYEDITHELP>
    </ReplyTimeout>
    <DataBlockSize>
    <PROPERTYTYPE>VT_UI4</PROPERTYTYPE>
    <DEFAULTVALUE>2000</DEFAULT VALUE>
    <PROPERTYMIN>2</PROPERTYMIN>
    <PROPERTYMAX>2000</PROPERTYMAX>
    <PROPERTYEDITHEADER>Message packet size for PLC5 on Ethernet</PROPERTYEDITHEADER>
    <PROPERTYEDITUNIT/>
    <PROPERTYEDITHELP>Message packet size for PLC5 on Ethernet</PROPERTYEDITHELP>
    </DataBlockSize>
    </PROPERTYRULES>
    </HIERARCHYNODE>
    <HIERARCHYNODE TYPE=“PYRAMID_RM” EDITORID=“” DELIMITER=“:”>
    <CHILDRULES>
    <PORT_DHP MAXOCCURRENCES=“2”/>
    <PORT_DH MAXOCCURRENCES=“2”/>
    </CHILDRULES>
    </HIERARCHYNODE>
    <HIERARCHYNODE TYPE=“PYRAMID_KA” EDITORID=“{8A04DA4D-F6C0-4C1F-A771-
    806CDA40029F}” DELIMITER=“.”>
    <CHILDRULES>
    <PORT_DHP MAXOCCURRENCES=“2”/>
    <PORT_DH MAXOCCURRENCES=“2”/>
    </CHILDRULES>
    <PROPERTYRULES>
    <Pushwheel>
    <PROPERTYTYPE>VT_UI4</PROPERTYTYPE>
    <DEFAULT VALUE>1</DEFAULT VALUE>
    <PROPERTYMIN>1</PROPERTYMIN>
    <PROPERTYMAX>4</PROPERTYMAX>
    <PROPERTYEDITHEADER>Push Wheel</PROPERTYEDITHEADER>
    <PROPERTYEDITUNIT>
    <PROPERTYEDITHELP>Push Wheel</PROPERTYEDITHELP>
    </Pushwheel>
    </PROPERTYRULES>
    </HIERARCHYNODE>
    <HIERARCHYNODE TYPE=“PORT_DHP” EDITORID=“{2B22472C-2F98-4D1B-A211-7036FCBF9AA2}”
    PACKAGEID=“”DELIMITER=“.”>
    <CHILDRULES>
    <PLC5_DHP MAXOCCURRENCES=“100”/>
    <SLC500_DHP MAXOCCURRENCES=“100”/>
    <PLC3_DHP MAXOCCURRENCES=“100”/>
    </CHILDRULES>
    <PROPERTYRULES>
    <PortNumber>
    </−−Port Number−−>
    <PROPERTYTYPE>VT_UI4</PROPERTYTYPE>
    <DEFAULT VALUE>2</DEFAULTVALUE>
    <PROPERTYMIN>2</PROPERTYMIN>
    <PROPERTYMAX>3</PROPERTYMAX>
    <PROPERTYEDITHEADER>Channel Number</PROPERTYEDITHEADER>
    <PROPERTYEDITUNIT/>
    <PROPERTYEDITHELP>Channel Number</PROPERTYEDITHELP>
    </PortNumber>
    </PROPERTYRULES>
    </HIERARCHYNODE>
    <HIERARCHYNODE TYPE=“PORT_DH” PACKAGEID=“” EDITORID=“{67D79FDA-4DC4-43A2-9B24-
    5735C3E3B428}” DELIMITER=“.”>
    <CHILDRULES>
    <PLC2_DH MAXOCCURRENCES=“100”/>
    </CHILDRULES>
    <PROPERTYRULES>
    <PortNumber>
    <!−−Port Number−−>
    <PROPERTYTYPE>VT_UI4</PROPERTYTYPE>
    <DEFAULTVALUE>2</DEFAULTVALUE>
    <PROPERTYMIN>2</PROPERTYMIN>
    <PROPERTYMAX>3</PROPERTYMAX>
    <PROPERTYEDITHEADER>Channel Number</PROPERTYEDITHEADER>
    <PROPERTYEDITUNIT/>
    <PROPERTYEDITHELP>Channel Number</PROPERTYEDITHELP>
    </PortNumber>
    </PROPERTYRULES>
    </HIERARCHYNODE>
    <HIERARCHYNODE TYPE=“PLC5_DHP” EDITORID=“{BF71A6EF-818F-4406-9038-60745B9A1538}”
    DELIMITER=“.”>
    <CHILDRULES ENABLEDEVICEGROUPS=“1”/>
    <PROPERTYRULES>
    <NodeAddress>
    <PROPERTYTYPE>VT_UI4</PROPERTYTYPE>
    <DEFAULT VALUE>1</DEFAULT VALUE>
    <PROPERTYMIN>0</PROPERTYMIN>
    <PROPERTYMAX>63</PROPERTYMAX>
    <PROPERTYEDITHEADER>DH+ Node Nukmber</PROPERTYEDITHEADER>
    <PROPERTYEDITUNIT>Octal</PROPERTYEDITUNIT>
    <PROPERTYEDITHELP>Datahighway Plus Node Number</PROPERTYEDITHELP>
    </NodeAddress>
    <ReplyTimeout>
    <PROPERTYTYPE>VT_UI4</PROPERTYTYPE>
    <DEFAULTVALUE>15</DEFAULTVALUE>
    <PROPERTYMIN>1</PROPERTYMIN>
    <PROPERTYMAX>300</PROPERTYMAX>
    <PROPERTYEDITHEADER>ReplyTimeOut</PROPERTYEDITHEADER>
    <PROPERTYEDITUNIT>Sec</PROPERTYEDITUNIT>
    <PROPERTYEDITHELP>Reply TimeOut</PROPERTYEDITHELP>
    </ReplyTimeout>
    <DataBlockSize>
    <PROPERTYTYPE>VT_UI4</PROPERTYTYPE>
    <DEFAULTVALUE>240</DEFAULTVALUE>
    <PROPERTYMIN>2</PROPERTYMIN>
    <PROPERTYMAX>240</PROPERTYMAX>
    <PROPERTYEDITHEADER>Message packet size for PLC5 on Datahiway
    Plus</PROPERTYEDITHEADER>
    <PROPERTYEDITUNIT/>
    <PROPERTYEDITHELP>Message packet size for PLC5 on Datahiway Plus</PROPERTYEDITHELP>
    </DataBlockSize>
    </PROPERTYRULES>
    </HIERARCHYNODE>
    <HIERARCHYNODE TYPE=“SLC500_DHP” EDITORID=“{78FF43FC-EA3B-4B37-AFA9-
    D8D95CFB69A5}” DELIMITER=“.”>
    <CHILDRULES ENABLEDEVICEGROUPS=“1”/>
    <PROPERTYRULES>
    <NodeAddress>
    <PROPERTYTYPE>VT_UI4</PROPERTYTYPE>
    <DEFAULTVALUE>1</DEFAULTVALUE>
    <PROPERTYMIN>0</PROPERTYMIN>
    <PROPERTYMAX>63<IPROPERTYMAX>
    <PROPERTYEDITHEADER>DH+ Node Nukmber</PROPERTYEDITHEADER>
    <PROPERTYEDITUNIT>Octal</PROPERTYEDITIUNIT>
    <PROPERTYEDITHELP>Datahighway Plus Node Number</PROPERTYEDITHELP>
    </NodeAddress>
    <ReplyTimeout>
    <PROPERTYTYPE>VT_UI4</PROPERTYTYPE>
    <DEFAULTVALUE>15</DEFAULTVALUE>
    <PROPERTYMIN>1</PROPERTYMIN>
    <PROPERTYMAX>300</PROPERTYMAX>
    <PROPERTYEDITHEADER>ReplyTimeout</PROPERTYEDITHEADER>
    <PROPERTYEDITUNIT>MSec</PROPERTYEDITUNIT>
    <PROPERTYEDITHELP>Reply Timeout</PROPERTYEDITHELP>
    </ReplyTimeout>
    <DataBlockSize>
    <PROPERTYTYPE>VT_UI4</PROPERTYTYPE>
    <DEFAULTVALUE>204</DEFAULTVALUE>
    <PROPERTYMIN>2</PROPERTYMIN>
    <PROPERTYMAX>204</PROPERTYMAX>
    <PROPERTYEDITHEADER>Message packet size for PLC5 on Datahiway
    Plus</PROPERTYEDITHEADER>
    <PROPERTYEDITUNIT/>
    <PROPERTYEDITHELP>Message packet size for PLCS on Datahiway Plus</PROPERTYEDITHELP>
    </DataBlockSize>
    </PROPERTYRULES>
    </HIERARCHYNODE>
    <HIERARCHYNODE TYPE=“PLC3_DHP” EDITORID=“{F59F96D7-FA1D-4C9F-91F3-FABC09E00683}”
    DELIMITER=“.”>
    <CHILDRULES ENABLEDEVICEGROUPS=“1”/>
    <PROPERTYRULES>
    <NodeAddress>
    <PROPERTYTYPE>VT_UI4</PROPERTYTYPE>
    <DEFAULTVALUE>1</DEFAULTVALUE>
    <PROPERTYMIN>0</PROPERTYMIN>
    <PROPERTYMAX>63</PROPERTYMAX>
    <PROPERTYEDITHEADER>DH+ Node Nukmber</PROPERTYEDITHEADER>
    <PROPERTYEDITUNIT>Octal</PROPERTYEDITUNIT>
    <PROPERTYEDITHELP>Datahighway Plus Node Number</PROPERTYEDITHELP>
    </NodeAddress>
    <ReplyTimeout>
    <PROPERTYTYPE>VT_UI4</PROPERTYTYPE>
    <DEFAULTVALUE>15</DEFAULTVALUE>
    <PROPERTYMIN>1</PROPERTYMIN>
    <PROPERTYMAX>300</PROPERTYMAX>
    <PROPERTYEDITHEADER>ReplyTimeouts/PROPERTYEDITHEADER>
    <PROPERTYEDITUNIT>MSec</PROPERTYEDITUNIT>
    <PROPERTYEDITHELP>Reply Timeout</PROPERTYEDITHELP>
    </ReplyTimeout>
    <DataBlockSize>
    <PROPERTYTYPE>VT_UI4</PROPERTYTYPE>
    <DEFAULTVALUE>240</DEFAULTVALUE>
    <PROPERTYMIN>2</PROPERTYMIN>
    <PROPERTYMAX>240</PROPERTYMAX>
    <PROPERTYEDITHEADER>Message packet size for PLC5 on Datahiway
    Plus</PROPERTYEDITHEADER>
    <PROPERTYEDITUNIT/>
    <PROPERTYEDITHELP>Message packet size for PLC5 on Datahiway Plus</PROPERTYEDITHELP>
    </DataBlockSize>
    </PROPERTYRULES>
    </HIERARCHYNODE>
    <HIERARCHYNODE TYPE=“PLC2_DH” EDITORID=“9C53E368-C85A-44B1-8F7E-5EE6EE07DBED}”
    DELIMITER=“.”>
    <CHILDRULES ENABLEDEVICEGROUPS=“1”/>
    <PROPERTYRULES>
    <NodeAddress>
    <PROPERTYTYPE>VT_UI4</PROPERTYTYPE>
    <DEFAULTVALUE>1</DEFAULT VALUE>
    <PROPERTYMIN>0</PROPERTYMIN>
    <PROPERTYMAX>255</PROPERTYMAX>
    <PROPERTYEDITHEADER>DH Node Nukmber</PROPERTYEDITHEADER>
    <PROPERTYEDITUNIT>Octal</PROPERTYEDITUNIT>
    <PROPERTYEDITHELP>Datahighway Node Number</PROPERTYEDITHELP>
    </NodeAddress>
    <ReplyTimeout>
    <PROPERTYTYPE>VT_UI4</PROPERTYTYPE>
    <DEFAULTVALUE>15</DEFAULTVALUE>
    <PROPERTYMIN>1</PROPERTYMIN>
    <PROPERTYMAX>300</PROPERTYMAX>
    <PROPERTYEDITHEADER>ReplyTimeout</PROPERTYEDITHEADER>
    <PROPERTYEDITUNIT>MSec</PROPERTYEDITUNIT>
    <PROPERTYEDITHELP>Reply Timeout</PROPERTYEDITHELP>
    </ReplyTimeout>
    <DataBlockSize>
    <PROPERTYTYPE>VT_UI4</PROPERTYTYPE>
    <DEFAULTVALUE>240</DEFAULTVALUE>
    <PROPERTYMIN>100</PROPERTYMIN>
    <PROPERTYMAX>240</PROPERTYMAX>
    <PROPERTYEDITHEADER>Message packet size for PLC5 on Datahiway
    Plus</PROPERTYEDITHEADER>
    <PROPERTYEDITUNIT/>
    <PROPERTYEDITHELP>Message packet size for PLC5 on Datahiway Plus</PROPERTYEDITHELP>
    </DataBlockSize>
    </PROPERTYRULES>
    </HIERARCHYNODE>
    </CONFIGURATIONRULES>
  • The following is an example of the [0057] configuration file 280 which makes up a second part of a remote configuration specification's persistence area.
    KEY XML Attributes Explanation
    <DASConfiguration> Root key for the configuration (DAS related data is
    inside this root key only).
    The presence of this root key potentially allows
    additional (user-) data to be stored in the same file
    under parallel root keys.
    <DeviceNode> TYPE Key for a hierarchy level (related to a DAS object).
    NAME TYPE (server specific class) and NAME are required -
    DELIMITER DELIMITER is optional (defaults to “.” If not
    present)
    <ItemHint> TYPE Key for a pre-configured item or item hint.
    NAME TYPE (server specific class) and NAME are required
    <DeviceGroup> TYPE Key for an OPC access path/DDE/SL topic (related
    NAME to device groups).
    UPDATEINTERVAL NAME and UPDATEINTERVAL are required -
    TYPE (server specific class) is optional
    <Data> TYPE Key for DAServer global (user) settings.
    NAME TYPE (server specific class) and NAME are required
    <System> Key for DAServer global system settings.
    <?xml version=“1.0” encoding=“UTF-8”?>
    <DASConfiguration NAME=“Wonderware ABTCP (non-official)” DELIMITER=“.”>
     <!−−Wonderware AB TCP/IP Server−−>
     <created>03.29.2000 16:40</created>
     <user>Clement Lie</user>
     <DeviceNode TYPE=“PORT_TCPIP” NAME=“TCP” DELIMITER=“.”>
    </−−TCP/IP Port for ABTCP−−>
    <MaxQueuedMsgs>3</MaxQueuedMsgs>
    <MaxSockets>200</MaxSockets>
    <MaxUnsolConn>20</MaxUnsolConn>
    <UnsolicitedMsgTimeout>5000</UnsolicitedMsgTimeout>
    <DeviceNode TYPE=“PYRAMID_EI” NAME=“EI” DELIMITER=“.”>
    </−−Ethernet Interface Module of Pyramid Integrator−−>
    <HostName>P5250_1</HostName>
    <ConnectionTimeout>2000</ConnectionTimeout>
    <DeviceNode TYPE=“PYRAMID_PLC5250” NAME=“P5250_1” DELIMITER=“.”>
    <DataBlockSize>2000</DataBlockSize>
    <ReplyTimeout>15</ReplyTimeout>
    <DeviceGroup NAME=“P5250_1_Fast” UPDATEINTERVAL=“100”/>
    <DeviceGroup NAME=“P5250_1” UPDATEINTERVAL=“1000”/>
    <DeviceGroup NAME=“P5250_1_Slow” UPDATEINTERVAL=“5000”/>
    </DeviceNode>
    <DeviceNode TYPE=“PYRAMID_RM” NAME=“RM” DELIMITER=“.”>
    <DeviceNode TYPE=“PORT_DHP” NAME=“CH2” DELIMITER=“.”>
    <PortNumber>2</PortNumber>
    <DeviceNode TYPE=“PLC5_DHP” NAME=“P511_1” DELIMITER=“.”>
    <NodeAddress>6</NodeAddress>
    <DataBlockSize>240<DataBlockSize>
    <ReplyTimeout>15</ReplyTimeout>
    <DeviceGroup NAME=“P511_1” UPDATEINTERVAL=“1000”/>
    <DeviceGroup NAME=“P511_1_Fast” UPDATEINTERVAL=“100”/>
    <DeviceGroup NAME=“P511_1_Slow” UPDATEINTERVAL=“5000”/>
    </DeviceNode>
    </DeviceNode>
    <DeviceNode TYPE=“PORT_DHP” NAME=“CH3” DELIMITER=“.”>
    <PortNumber>3</PortNumber>
    <DeviceNode NAME=“SLC504_2” TYPE=“SLC500_DHP” DELIMITER=“.”>
    <NodeAddress>24</NodeAddress>
    <ReplyTimeout>15</ReplyTimeout>
    <DataBlockSize>204</DataBlockSize>
    </DeviceNode>
    <DeviceNode NAME=“P520E_2” TYPE=“PLC5_DHP” DELIMITER=“.”>
    <NodeAddress>7</NodeAddress>
    <ReplyTimeout>15</ReplyTimeout>
    <DataBlockSize>240</DataBlockSize>
    </DeviceNode>
    </DeviceNode>
    </DeviceNode>
    <DeviceNode TYPE=“PYRAMID_KA” NAME=“KA” DELIMITER=“.”>
    <Pushwheel>1</Pushwheel>
    <DeviceNode TYPE=“PORT_DHP” NAME=“CH2” DELIMITER=“.”>
    <PortNumber>2</PortNumber>
    <DeviceNode TYPE=“PLC3_DHP” NAME=“P310_1” DELIMITER=“.”>
    <NodeAddress>9</NodeAddress>
    <DataBlockSize>240</DataBlockSize>
    <ReplyTimeout>15</ReplyTimeout>
    <DeviceGroup NAME=“PLC3” UPDATEINTERVAL=“1000”/>
    <DeviceGroup NAME=“PLC3_Fast” UPDATEINTERVAL=“100”/>
    <DeviceGroup NAME=“PLC3_Slow” UPDATEINTERVAL=“5000”/>
    </DeviceNode>
    <DeviceNode NAME=“P520C_1” TYPE=“PLC5_DHP” DELIMITER=“.”>
    <NodeAddress>52</NodeAddress>
    <ReplyTimeout>15</ReplyTimeout>
    <DataBlockSize>240</DataBlockSize>
    </DeviceNode>
    <DeviceNode NAME=“P580E_1” TYPE=“PLC5_DHP” DELIMITER=“.”>
    <NodeAddress>5</NodeAddress>
    <ReplyTimeout>15</ReplyTimeout>
    <DataBlockSize>240</DataBlockSize>
    </DeviceNode>
    <DeviceNode NAME=“P520E_2” TYPE=“PLC5_DHP” DELIMITER=“.”>
    <NodeAddress>7</NodeAddress>
    <ReplyTimeout>15</ReplyTimeout>
    <DataBlockSize>240</DataBlockSize>
    </DeviceNode>
    </DeviceNode>
    <DeviceNode TYPE=“PORT_DH” NAME=“CH3” DELIMITER=“.”>
    <PortNumber>2</PortNumber>
    <DeviceNode TYPE=“PLC2_DH” NAME=“P216_1” DELIMITER =“.”>
    <NodeAddress>83</NodeAddress>
    <DataBlockSize>100</DataBlockSize>
    <ReplyTimeout>15</ReplyTimeout>
    </DeviceNode>
    </DeviceNode>
    </DeviceNode>
    </DeviceNode>
    <DeviceNode TYPE=“PLC5_TCPIP” NAME=“P520E_2” DELIMITER=“.”>
    <!−−PLC5 on TCP/IP−−>
    <HostName>P520E_2</HostName>
    <ReplyTimeout>300</ReplyTimeout>
    <DataBlockSize>1000</DataBlockSize>
    <SupportsPID>1</SupportsPID>
    <UnsolClientMsg>1</UnsolClientMsg>
    <ConnectionTimeout>2000</ConnectionTimeout>
    <DeviceGroup NAME=“P520E_2” UPDATEINTERVAL=“1000”/>
    <DeviceGroup NAME=“P520E_2_Slow” UPDATEINTERVAL=“5000”/>
    <DeviceGroup NAME=“P520E_2_Fast” UPDATEINTERVAL=“100”/>
    <DeviceGroup NAME=“P520E_2Unsol” UPDATEINTERVAL=“10000000000”/>
    </DeviceNode>
    <DeviceNode TYPE=“SLC500_TCPIP” NAME=“SLC505_2” DELIMITER=“.”>
    <HostName>SLC505_2</HostName>
    <ReplyTimeout>10</ReplyTimeout>
    <DataBlockSize>510<DataBlockSize>
    <ConnectionTimeout>2000</ConnectionTimeout>
    <DeviceGroup NAME=“SLC505_1_Fast” UPDATEINTERVAL=“100”/>
    <DeviceGroup NAME=“SLC505_1” UPDATEINTERVAL=“1000”/>
    <DeviceGroup NAME=“SLC505_1_Slow” UPDATEINTERVAL=“5000”/>
    </DeviceNode>
    <DeviceNode NAME=“MyPLC5” TYPE=“PLC5_TCPIP” DELIMITER=“.”>
    <HostName>10.32.12.36</HostName>
    <DataBlockSize>2000</DataBlockSize>
    <ReplyTimeout>3</ReplyTimeout>
    <SupportsPID>1</SupportsPID>
    <UnsolClientMsg>1</UnsolClientMsg>
    <ConnectionTimeout>2000</ConnectionTimeout>
    <DeviceGroup NAME=“Fast PLC5” TYPE=“Topic” UPDATEINTERVAL=“20”/>
    <DeviceGroup NAME=“Medium PLC5” TYPE =“Topic” UPDATEINTERVAL=“1000”/>
    <DeviceGroup NAME=“Slow PLCS” TYPE=“Topic” UPDATEINTERVAL=“10000”/>
    <DeviceItem TYPE=“” NAME=“N7:0”/>
    <DeviceItem TYPE=“” NAME=“N7:2”/>
    <DeviceItem TYPE=“” NAME=“N7:3”/>
    <DeviceItem TYPE=“” NAME=“N7:11”/>
    <DeviceItem TYPE=“” NAME=“N7:14”/>
    <DeviceItem TYPE=“” NAME=“N17:0”/>
    <DeviceItem TYPE=“” NAME=“N17:1”/>
    <DeviceItem TYPE=“” NAME=“N17:2”/>
    <DeviceItem TYPE=“” NAME=“N17:3”/>
    <DeviceItem TYPE=“” NAME=“N17:50”/>
    <DeviceItem TYPE=“” NAME=“N17:99”/>
    <DeviceItem TYPE=“” NAME=“N27:0”/>
    <DeviceItem TYPE=“” NAME=“N27:1”/>
    <DeviceItem TYPE=“” NAME=“N27:2”/>
    <DeviceItem TYPE=“” NAMF=“N27:3”/>
    <DeviceItem TYPE=“” NAME=“N27:50”/>
    <DeviceItem TYPE=“” NAME=“N27:99”/>
    <DeviceItem TYPE=“” NAME=“B3:0/8”/>
    <DeviceItem TYPE=“” NAME=“B13:0/180”/>
    <DeviceItem TYPE=“” NAME=“A9:0-8”/>
    <DeviceItem TYPE=“” NAME=“F8:2”/>
    <DeviceItem TYPE=“” NAME=“F8:12”/>
    <DeviceItem TYPE=“” NAME=“ST10:0”/>
    </DeviceNode>
    <DeviceNode NAME=“MyPLC37” TYPE=“PLC5_TCPIP” DELIMITER=“.”>
    <HostName>10.32.12.37</HostName>
    <DataBlockSize>2000</DataBlockSize>
    <ReplyTimeout>3</ReplyTimeout>
    <SupportsPID>1</SupportsPID>
    <UnsolClientMsg>1</UnsolClientMsg>
    <ConnectionTimeout>2000</ConnectionTimeout>
    <DeviceGroup NAME=“Fast PLC37” TYPE=“Topic” UPDATEINTERVAL=“20”/>
    <DeviceGroup NAME=“Medium PLC37” TYPE=“Topic” UPDATEINTERVAL=“1000”/>
    <DeviceGroup NAME=“Slow PLC37” TYPE=“Topic” UPDATEINTERVAL=“10000”/>
    <ItemHint TYPE=“” NAME=“N7:0-4”/>
    <ItemHint TYPE=“” NAME=“F8:0-3”/>
    <ItemHint TYPE=“” NAME=“BT9:0-3”/>
    <ItemHint TYPE=“” NAME=“N10:0-74”/>
    <ItemHint TYPE=“” NAME=“B11:0-0”/>
    <ItemHint TYPE=“” NAME=“PD12:0-0”/>
    <ItemHint TYPE=“” NAME=“N13:0-3”/>
    <ItemHint TYPE=“” NAME=“N14:0-4”/>
    <ItemHint TYPE=“” NAME=“N15:0-4”/>
    </DeviceNode>
     </DeviceNode>
     <System NAME=“SYSTEM” TYPE=“SYSTEM”>
    <UpdateInterval>1000</UpdateInterval>
    <SlowPollInterval>10000</SlowPollInterval>
    <CaseSensitive>0</CaseSensitive>
    <DefaultPokeMode>0</DefaultPokeMode>
    <DefaultDelimiter>“.”</DefaultDelimiter>
    <SimulationMode>0</SimulationMode>
    <EnableSystemItems>1</Enable SystemItems>
    <LinkTopicCache>0<LinkTopicCache>
    <UniqueDeviceGroup>1</UniqueDeviceGroup>
    <ProtocolTimerTick>60</ProtocolTimerTick>
    <TransactionTimeout>2000</TransactionTimeout>
    <LockConfigurationFile>0</LockConfigurationFile>
    <SubscriptionTransactionRatio>2</SubscriptionTransactionRatio>
     </System>
    </DASConfiguration>
  • Illustrative embodiments of the present invention and certain variations thereof have been provided in the Figures and accompanying written description. The present invention is not intended to be limited to these embodiments. Rather the present invention is intended to cover the disclosed embodiments as well as others falling within the scope and spirit of the invention to the fullest extent permitted in view of this disclosure and the inventions defined by the claims appended herein below. [0058]

Claims (5)

What is claimed is:
1. A distributed configuration utility facilitating remote configuration of process control data access servers, the distributed configuration utility comprising:
a configuration editor located at a control console;
a configuration storage comprising descriptions of present server configurations;
a rules database for storing a set of configuration rules associated with each data access server configurable via the configuration utility, wherein the set of configuration rules provide a guide to the information within the configuration storage specifying a configuration for ones of the process control data access servers; and
a server agent, located on a computing node remote from the control console and containing a configurable process control data access server, the server agent including executable procedures for notifying the configuration editor of the existence of the configurable process control data access server and thereby facilitating establishing a configuration interface between the configuration editor and the configurable process control data access server.
2. The distributed configuration utility of claim 1 wherein the set of configuration rules specify configuration hierarchy levels.
3. The distributed configuration utility of claim 2 wherein the set of configuration rules specify properties associated with particular ones of configuration nodes of the configuration hierarchy levels.
4. The distributed configuration utility of claim 1 further comprising an executable notification mechanism that establishes a connection to an active data access server having changed configuration parameter values, and notifies the active data access server of the change to its configuration.
5. The distributed configuration utility of claim 1 further comprising a user editor host providing an interface supporting editor interface faceplates specified for particular component types of a process control data access server configuration.
US09/954,422 2000-09-15 2001-09-14 Method and system for remote configuration of process data access servers Active 2027-09-24 US7779089B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US09/954,422 US7779089B2 (en) 2000-09-15 2001-09-14 Method and system for remote configuration of process data access servers

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US23273100P 2000-09-15 2000-09-15
US09/954,422 US7779089B2 (en) 2000-09-15 2001-09-14 Method and system for remote configuration of process data access servers

Publications (2)

Publication Number Publication Date
US20020112038A1 true US20020112038A1 (en) 2002-08-15
US7779089B2 US7779089B2 (en) 2010-08-17

Family

ID=22874318

Family Applications (4)

Application Number Title Priority Date Filing Date
US09/954,508 Active 2027-06-20 US7644120B2 (en) 2000-09-15 2001-09-14 Industrial process control data access server supporting multiple client data exchange protocols
US09/954,422 Active 2027-09-24 US7779089B2 (en) 2000-09-15 2001-09-14 Method and system for remote configuration of process data access servers
US09/954,423 Active 2028-07-07 US8095632B2 (en) 2000-09-15 2001-09-14 Method and system for performing remote diagnostics on a process data access
US12/652,562 Abandoned US20100205244A1 (en) 2000-09-15 2010-01-05 Industrial Process Control Data Access Server Supporting Multiple Client Data Exchange Protocols

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US09/954,508 Active 2027-06-20 US7644120B2 (en) 2000-09-15 2001-09-14 Industrial process control data access server supporting multiple client data exchange protocols

Family Applications After (2)

Application Number Title Priority Date Filing Date
US09/954,423 Active 2028-07-07 US8095632B2 (en) 2000-09-15 2001-09-14 Method and system for performing remote diagnostics on a process data access
US12/652,562 Abandoned US20100205244A1 (en) 2000-09-15 2010-01-05 Industrial Process Control Data Access Server Supporting Multiple Client Data Exchange Protocols

Country Status (5)

Country Link
US (4) US7644120B2 (en)
EP (3) EP1330737B1 (en)
CN (2) CN1261892C (en)
AU (5) AU9269101A (en)
WO (3) WO2002023405A1 (en)

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020135610A1 (en) * 2001-03-23 2002-09-26 Hitachi, Ltd. Visualization of multi-layer network topology
US20020194314A1 (en) * 2001-05-17 2002-12-19 Alexander Kouznetsov Application generator
US20030005104A1 (en) * 2001-05-30 2003-01-02 Ibm Server configuration tool
US20030200288A1 (en) * 2002-01-18 2003-10-23 Thiyagarajan Pirasenna Velandi Service management system for configuration information
US20030200286A1 (en) * 2002-03-08 2003-10-23 Sun Microsystems, Inc. Methods and systems for providing configuration data
US20040006652A1 (en) * 2002-06-28 2004-01-08 Prall John M. System event filtering and notification for OPC clients
US20050080897A1 (en) * 2003-09-29 2005-04-14 Capital One Financial Corporation Remote management utility
US20050114397A1 (en) * 2003-04-04 2005-05-26 Computer Associates Think, Inc. Method and system for management and configuration of remote agents
US20050122987A1 (en) * 2003-12-09 2005-06-09 Michael Ignatowski Apparatus and method for modeling queueing systems with highly variable traffic arrival rates
US20050165939A1 (en) * 2002-05-30 2005-07-28 Metso Automation Oy System, communication network and method for transmitting information
US20050171953A1 (en) * 2004-01-30 2005-08-04 International Business Machines Corporation Method, system, and article of manufacture for generating device specific requests
US6950931B2 (en) * 2002-05-30 2005-09-27 International Business Machines Corporation Server configuration using profile templates
US20060184654A1 (en) * 2005-02-11 2006-08-17 Microsoft Corporation Server-functionality role extensibility model
US20070055780A1 (en) * 2005-09-07 2007-03-08 Cartes Andrew C Methods and systems for sharing remote access
US20070255830A1 (en) * 2006-04-27 2007-11-01 International Business Machines Corporaton Identifying a Configuration For an Application In a Production Environment
US7386609B2 (en) 2003-02-20 2008-06-10 International Business Machines Corporation Method, system, and program for managing devices in a network
CN100456237C (en) * 2007-01-31 2009-01-28 华为技术有限公司 Method and device for accessing database
US7529814B2 (en) 2003-10-15 2009-05-05 International Business Machines Corporation Autonomic computing algorithm for identification of an optimum configuration for a web infrastructure
CN102999730A (en) * 2011-09-15 2013-03-27 微软公司 Securing data usage in computing devices
US20140090017A1 (en) * 2012-09-27 2014-03-27 Siemens Aktiengesellschaft Method and system for connecting a controller for a machine to a higher-level it system
US8993943B2 (en) 2010-10-20 2015-03-31 Trumpf Huettinger Gmbh + Co. Kg Systems for operating multiple plasma and/or induction heating systems and related methods
US9053492B1 (en) * 2006-10-19 2015-06-09 Google Inc. Calculating flight plans for reservation-based ad serving
US9503006B2 (en) 2010-10-20 2016-11-22 Trumpf Huettinger Gmbh + Co. Kg Plasma and induction heating power supply systems and related methods
US11023533B2 (en) * 2017-09-13 2021-06-01 Ping An Technology (Shenzhen) Co., Ltd. Node task data display method and apparatus, storage medium and computer equipment
US11128529B1 (en) * 2020-03-17 2021-09-21 Capital One Services, Llc Cloud infrastructure for isolation and run-time behavioral tuning through configuration externalization
US11424985B2 (en) * 2016-08-13 2022-08-23 Nicira, Inc. Policy driven network QOS deployment

Families Citing this family (140)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7146230B2 (en) * 1996-08-23 2006-12-05 Fieldbus Foundation Integrated fieldbus data server architecture
US20040194101A1 (en) * 1997-08-21 2004-09-30 Glanzer David A. Flexible function blocks
US6826590B1 (en) * 1996-08-23 2004-11-30 Fieldbus Foundation Block-oriented control system on high speed ethernet
US6999824B2 (en) * 1997-08-21 2006-02-14 Fieldbus Foundation System and method for implementing safety instrumented systems in a fieldbus architecture
US6928336B2 (en) * 2001-02-12 2005-08-09 The Stanley Works System and architecture for providing a modular intelligent assist system
US8073967B2 (en) 2002-04-15 2011-12-06 Fisher-Rosemount Systems, Inc. Web services-based communications for use with process control systems
US7016751B2 (en) * 2001-07-13 2006-03-21 Helix Technology Corporation Vacuum system central control information server
US7251248B2 (en) 2001-07-31 2007-07-31 Bridgeworks Ltd. Connection device
GB0118646D0 (en) * 2001-07-31 2001-09-19 Digital Interfaces Ltd A connection device
SE519905C2 (en) * 2001-10-05 2003-04-22 Abb Ab Data access method for a control system
US7225193B2 (en) * 2001-12-21 2007-05-29 Honeywell International Inc. Method and apparatus for retrieving event data related to an activity
US7073178B2 (en) * 2002-01-18 2006-07-04 Mobitv, Inc. Method and system of performing transactions using shared resources and different applications
US7246360B2 (en) * 2002-02-07 2007-07-17 Mobitv, Inc. Plug-in API for protocol and payload transformation
KR20040105767A (en) * 2002-03-12 2004-12-16 아이엘에스 테크놀로지, 인크. Diagnostic system and method for integrated remote tool access, data collection, and control
US20030204588A1 (en) * 2002-04-30 2003-10-30 International Business Machines Corporation System for monitoring process performance and generating diagnostic recommendations
US7363543B2 (en) * 2002-04-30 2008-04-22 International Business Machines Corporation Method and apparatus for generating diagnostic recommendations for enhancing process performance
US7599999B1 (en) * 2002-05-21 2009-10-06 Rockwell Automation Technologies, Inc. System and methodology that facilitates client and server data exchange in a distributed industrial automation environment
US20040003007A1 (en) * 2002-06-28 2004-01-01 Prall John M. Windows management instrument synchronized repository provider
US20040045009A1 (en) * 2002-08-29 2004-03-04 Bae Systems Information Electronic Systems Integration, Inc. Observation tool for signal processing components
DE10243783A1 (en) * 2002-09-20 2004-03-25 Sick Ag Electronic device for a bus system
US7467018B1 (en) * 2002-11-18 2008-12-16 Rockwell Automation Technologies, Inc. Embedded database systems and methods in an industrial controller environment
DE10313389A1 (en) * 2003-03-25 2004-10-07 Endress + Hauser Process Solutions Ag Method for transferring software code from a control unit to a field device in process automation technology
US20040148370A1 (en) * 2003-01-23 2004-07-29 Electronic Data Systems Corporation System and method for composing, configuring, deploying, and managing services using a graphical user interface
EP1460540A1 (en) * 2003-03-20 2004-09-22 Dassault Systèmes S.A. Server process with interface adapters for accessing data from various types of client processes
US7516161B1 (en) * 2003-08-27 2009-04-07 Sparta Systems, Inc. Administrative triggers
US7234084B2 (en) 2004-02-18 2007-06-19 Emerson Process Management System and method for associating a DLPDU received by an interface chip with a data measurement made by an external circuit
US7058089B2 (en) * 2004-02-18 2006-06-06 Rosemount, Inc. System and method for maintaining a common sense of time on a network segment
US7661066B2 (en) * 2004-03-26 2010-02-09 Sap Ag Visual administrator providing java management bean support
US7703019B2 (en) * 2004-03-26 2010-04-20 Sap Ag Visual administrator for specifying service references to support a service
SE532068C2 (en) * 2004-11-14 2009-10-13 Abb Research Ltd Method for presentation of data to an industrial control system
US20060133412A1 (en) * 2004-12-22 2006-06-22 Rockwell Automation Technologies, Inc. Integration of control and business applications using integration servers
US7706895B2 (en) * 2005-02-25 2010-04-27 Rockwell Automation Technologies, Inc. Reliable messaging instruction
US7565351B1 (en) 2005-03-14 2009-07-21 Rockwell Automation Technologies, Inc. Automation device data interface
US9201420B2 (en) 2005-04-08 2015-12-01 Rosemount, Inc. Method and apparatus for performing a function in a process plant using monitoring data with criticality evaluation data
US7233830B1 (en) 2005-05-31 2007-06-19 Rockwell Automation Technologies, Inc. Application and service management for industrial control devices
US7698691B2 (en) * 2005-09-20 2010-04-13 Microsoft Corporation Server application state
US7930363B2 (en) * 2005-10-12 2011-04-19 Powerreviews, Inc. Application service provider delivery system
CA2631756A1 (en) * 2005-12-01 2007-06-07 Firestar Software, Inc. System and method for exchanging information among exchange applications
US7489977B2 (en) * 2005-12-20 2009-02-10 Fieldbus Foundation System and method for implementing time synchronization monitoring and detection in a safety instrumented system
US8676357B2 (en) 2005-12-20 2014-03-18 Fieldbus Foundation System and method for implementing an extended safety instrumented system
US20070198554A1 (en) * 2006-02-10 2007-08-23 Sun Microsystems, Inc. Apparatus for business service oriented management infrastructure
US8125906B2 (en) * 2006-03-03 2012-02-28 Kiranmai Vedanabhatla Capture RCDT and SNTT SAS speed negotiation decodes in a network diagnostic component
US8769152B2 (en) * 2006-02-14 2014-07-01 Jds Uniphase Corporation Align/notify compression scheme in a network diagnostic component
US8607145B2 (en) * 2006-02-14 2013-12-10 Jds Uniphase Corporation Show OOB and speed negotiation data graphically in a network diagnostic component
US8576731B2 (en) * 2006-02-14 2013-11-05 Jds Uniphase Corporation Random data compression scheme in a network diagnostic component
CN101411124A (en) * 2006-02-14 2009-04-15 菲尼萨公司 Diagnostic functions in an in-line device
SE531389C2 (en) 2006-03-01 2009-03-17 Abb Ab Method for handling different versions of an application and an automation system
WO2007134008A2 (en) * 2006-05-08 2007-11-22 Firestar Software, Inc. System and method for exchanging transaction information using images
US7698242B2 (en) * 2006-08-16 2010-04-13 Fisher-Rosemount Systems, Inc. Systems and methods to maintain process control systems using information retrieved from a database storing general-type information and specific-type information
US10031830B2 (en) * 2006-10-13 2018-07-24 International Business Machines Corporation Apparatus, system, and method for database management extensions
US8332819B2 (en) * 2007-05-03 2012-12-11 Siemens Industry, Inc. Diagnostic and trouble-shooting methods in a wireless control and sensor network
US7856517B2 (en) 2007-05-25 2010-12-21 Red Hat, Inc. Data management interface with configurable plugins that determines whether to monitor for configuration data
US7716399B2 (en) * 2007-05-25 2010-05-11 Red Hat, Inc. Method and system for data management interface with intelligent plugins that determine whether to perform the requested data operation received from an application
US8145655B2 (en) * 2007-06-22 2012-03-27 International Business Machines Corporation Generating information on database queries in source code into object code compiled from the source code
DE102007032715B4 (en) * 2007-07-13 2009-04-09 Abb Ag System and method for monitoring data traffic on a fieldbus
US8769291B2 (en) * 2007-07-23 2014-07-01 Red Hat, Inc. Certificate generation for a network appliance
US8621027B2 (en) 2007-11-16 2013-12-31 Red Hat, Inc. Automatically providing identity information for a network appliance
US8191123B2 (en) * 2007-11-27 2012-05-29 Red Hat, Inc. Provisioning a network appliance
US8191122B2 (en) * 2007-11-27 2012-05-29 Red Hat, Inc. Provisioning a network appliance
DE102007062985B4 (en) * 2007-12-21 2014-01-02 Abb Research Ltd. Method and device for communication according to the standard protocol OPC UA in a client-server system
DE102008016048A1 (en) * 2008-03-28 2009-10-08 Abb Ag Process control system of an automation system
US20090302588A1 (en) * 2008-06-05 2009-12-10 Autoliv Asp, Inc. Systems and methods for airbag tether release
CN101364175B (en) * 2008-07-02 2013-11-20 深圳国人通信有限公司 Configuration method and device for embedded system
US9026918B2 (en) * 2008-10-16 2015-05-05 Accenture Global Services Limited Enabling a user device to access enterprise data
CN101738958B (en) * 2008-11-14 2012-05-02 四零四科技股份有限公司 Active monitoring system and method thereof
US20100153866A1 (en) * 2008-12-11 2010-06-17 Accenture Global Services Gmbh Method and system for modifying the execution of a native application running on a portable electronic device
US20100312879A1 (en) * 2009-06-09 2010-12-09 International Business Machines Corporation Plug-in provisioning integration in a clustered environment
US8155761B2 (en) * 2009-07-23 2012-04-10 Fisher-Rosemount Systems, Inc. Process control system with integrated external data sources
US8788513B2 (en) * 2009-10-30 2014-07-22 Dassault Systemes Americas Corp. Computer method and system providing access to data of a target system
US8775581B2 (en) * 2010-01-19 2014-07-08 Ianywhere Solutions, Inc. Controlling lifetime of server add-ins
US20110219387A1 (en) * 2010-03-04 2011-09-08 Microsoft Corporation Interactive Remote Troubleshooting of a Running Process
US9122764B2 (en) * 2010-03-24 2015-09-01 Fisher-Rosemount Systems, Inc. Methods and apparatus to access process data stored on a server
US9392072B2 (en) 2010-04-15 2016-07-12 Rockwell Automation Technologies, Inc. Systems and methods for conducting communications among components of multidomain industrial automation system
US8484401B2 (en) * 2010-04-15 2013-07-09 Rockwell Automation Technologies, Inc. Systems and methods for conducting communications among components of multidomain industrial automation system
US8984533B2 (en) 2010-04-15 2015-03-17 Rockwell Automation Technologies, Inc. Systems and methods for conducting communications among components of multidomain industrial automation system
DE102010040055B4 (en) * 2010-08-31 2023-08-17 Endress + Hauser Process Solutions Ag System for communication of several clients with several field devices in automation technology
CN101964798A (en) * 2010-10-15 2011-02-02 德讯科技股份有限公司 Multi-graphic protocol unified proxy system based on remote desktop protocol
US8898761B2 (en) * 2011-01-13 2014-11-25 International Business Machines Corporation Systems and methods for generating and validating configuration files for computing devices
US9927788B2 (en) 2011-05-19 2018-03-27 Fisher-Rosemount Systems, Inc. Software lockout coordination between a process control system and an asset management system
US8885665B2 (en) * 2011-05-31 2014-11-11 General Electric Company Systems and methods for foundation fieldbus alerts
US8667078B2 (en) * 2011-05-31 2014-03-04 General Electric Company Systems and methods of extracting, storing, and serving device definition file information
US8730054B2 (en) 2011-05-31 2014-05-20 General Electric Company Systems and methods to customize alert presentation
US8856302B2 (en) * 2011-05-31 2014-10-07 General Electric Company Systems and methods for foundation fieldbus alerts
US9576046B2 (en) 2011-11-16 2017-02-21 Ptc Inc. Methods for integrating semantic search, query, and analysis across heterogeneous data types and devices thereof
US9098312B2 (en) 2011-11-16 2015-08-04 Ptc Inc. Methods for dynamically generating an application interface for a modeled entity and devices thereof
US8909641B2 (en) 2011-11-16 2014-12-09 Ptc Inc. Method for analyzing time series activity streams and devices thereof
US20130184883A1 (en) * 2012-01-18 2013-07-18 General Electric Company System and method to control subsystems
US9667743B2 (en) * 2012-05-31 2017-05-30 Siemens Aktiengesellschaft Communication between two clients via a server
CN103577456B (en) 2012-07-31 2016-12-21 国际商业机器公司 For the method and apparatus processing time series data
KR101638656B1 (en) 2012-08-23 2016-07-11 엘에스산전 주식회사 System for Data Sharing and Apparatus for Industrial Device Management Based on Cloud Computing Environment
US9015212B2 (en) * 2012-10-16 2015-04-21 Rackspace Us, Inc. System and method for exposing cloud stored data to a content delivery network
US9049076B1 (en) * 2013-01-07 2015-06-02 Google Inc. Content selection with privacy features
US10425355B1 (en) * 2013-02-04 2019-09-24 HCA Holdings, Inc. Data stream processing for dynamic resource scheduling
WO2014145084A1 (en) 2013-03-15 2014-09-18 Ptc Inc. Methods for managing applications using semantic modeling and tagging and devices thereof
CN103235835B (en) * 2013-05-22 2017-03-29 曙光信息产业(北京)有限公司 For the inquiry implementation method and device of data-base cluster
DE102013108478A1 (en) * 2013-08-06 2015-02-12 Endress+Hauser Process Solutions Ag Method for expanding an embedded software component of a field device
US20150058392A1 (en) * 2013-08-20 2015-02-26 Cellco Partnership D/B/A Verizon Wireless Provisioning chain queuing and processing
CN104426880A (en) * 2013-09-03 2015-03-18 中国银联股份有限公司 Network-based centralized automatic file collection and distribution device
CN104468148B (en) * 2013-09-12 2019-03-22 中兴通讯股份有限公司 A kind of nginx server configuring maintenance method and system
CN104750049B (en) * 2013-12-31 2018-05-08 北京北方华创微电子装备有限公司 The method and system of gas circuit configuration processing in semiconductor manufacturing
US9413682B2 (en) 2014-02-07 2016-08-09 International Business Machines Corporation Provisioning legacy systems network architecture resource communications through a group of servers in a data center
US10310911B2 (en) 2014-03-14 2019-06-04 Google Llc Solver for cluster management system
US9762637B2 (en) 2014-03-21 2017-09-12 Ptc Inc. System and method of using binary dynamic rest messages
US9462085B2 (en) 2014-03-21 2016-10-04 Ptc Inc. Chunk-based communication of binary dynamic rest messages
US9467533B2 (en) 2014-03-21 2016-10-11 Ptc Inc. System and method for developing real-time web-service objects
US10338896B2 (en) 2014-03-21 2019-07-02 Ptc Inc. Systems and methods for developing and using real-time data applications
US10313410B2 (en) 2014-03-21 2019-06-04 Ptc Inc. Systems and methods using binary dynamic rest messages
US9660877B1 (en) 2014-03-21 2017-05-23 Cisco Technology, Inc. Transaction management in multi-protocol SDN controller
US10025942B2 (en) 2014-03-21 2018-07-17 Ptc Inc. System and method of establishing permission for multi-tenancy storage using organization matrices
US9560170B2 (en) 2014-03-21 2017-01-31 Ptc Inc. System and method of abstracting communication protocol using self-describing messages
US9350791B2 (en) 2014-03-21 2016-05-24 Ptc Inc. System and method of injecting states into message routing in a distributed computing environment
US9350812B2 (en) 2014-03-21 2016-05-24 Ptc Inc. System and method of message routing using name-based identifier in a distributed computing environment
US9961058B2 (en) 2014-03-21 2018-05-01 Ptc Inc. System and method of message routing via connection servers in a distributed computing environment
US9467536B1 (en) * 2014-03-21 2016-10-11 Cisco Technology, Inc. Shim layer abstraction in multi-protocol SDN controller
CN104363201B (en) * 2014-10-11 2017-10-20 中国农业银行股份有限公司 A kind of server operation variation and system
EP3015984A1 (en) * 2014-10-29 2016-05-04 Hewlett-Packard Development Company, L.P. Providing data from data sources
JP6337741B2 (en) * 2014-10-31 2018-06-06 富士通株式会社 Control program, control device, control method, and database system
US20160170405A1 (en) * 2014-12-10 2016-06-16 General Electric Company Systems and methods for memory map utilization
BR112017020503B1 (en) * 2015-03-27 2023-10-24 Bühler AG METHOD AND SYSTEM FOR PROCESS CONTROL OF POWER PLANTS IN A MACHINE-TO-MACHINE NETWORK BASED ON OPC-UA
CN104881254B (en) * 2015-05-27 2018-09-07 北京百度网讯科技有限公司 Date storage method and device
US10482231B1 (en) * 2015-09-22 2019-11-19 Amazon Technologies, Inc. Context-based access controls
US10495336B2 (en) * 2015-11-19 2019-12-03 Rockwell Automation Technologies, Inc. Energy operations across domains
US10048713B2 (en) * 2015-11-19 2018-08-14 Rockwell Automation Technologies Inc. Energy operations across domains
US10225149B2 (en) 2015-12-15 2019-03-05 Nicira, Inc. Method and tool for diagnosing logical networks
US20170187835A1 (en) * 2015-12-26 2017-06-29 Lee Booi Lim Technologies for unified and modular gateway abstraction
CN106982236B (en) * 2016-01-18 2020-07-28 阿里巴巴集团控股有限公司 Information processing method, device and system
US10243797B2 (en) 2016-03-14 2019-03-26 Nicira, Inc. Identifying the realization status of logical entities based on a global realization number
US10241820B2 (en) 2016-03-14 2019-03-26 Nicira, Inc. Determining the realization status of logical entities in logical networks
JP6696252B2 (en) * 2016-03-24 2020-05-20 富士ゼロックス株式会社 Communication program, communication device, and information processing device
JP6701859B2 (en) * 2016-03-24 2020-05-27 富士ゼロックス株式会社 Communication program, communication device, and communication system
CN109313453A (en) * 2016-06-14 2019-02-05 深圳市大疆创新科技有限公司 Support the loose impediment application and development independently of agreement
DE102016125171A1 (en) * 2016-12-21 2018-06-21 Endress+Hauser Process Solutions Ag Monitoring data transfer in a client-server-based device access system
US11323519B2 (en) * 2017-04-19 2022-05-03 Microsoft Technology Licensing, Llc Internet of things pub-sub data publisher
US10904088B2 (en) * 2018-11-15 2021-01-26 Western Digital Technologies, Inc. Reconfiguring network settings for operating configuration installation
CN109617232B (en) * 2018-12-13 2021-04-23 高新兴科技集团股份有限公司 4G module-based micro power supply monitoring equipment, system and method
JP6973427B2 (en) * 2019-02-15 2021-11-24 株式会社安川電機 Communication systems, communication methods, and programs
US10645196B1 (en) * 2019-04-26 2020-05-05 Clario Tech Limited Multicomponent software-controllable system and a method for interaction of server-client processes and a machine-readable carrier for performing the method
EP3761125A1 (en) * 2019-07-02 2021-01-06 Schneider Electric USA, Inc. Ensuring data consistency between a modular device and an external system
US11726995B2 (en) 2019-12-17 2023-08-15 Hewlett Packard Enterprise Development Lp System and method for value pack generation using generic SQL plugin for unified console
CN116260859A (en) * 2023-01-03 2023-06-13 重庆长安汽车股份有限公司 Data configuration system

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5165018A (en) * 1987-01-05 1992-11-17 Motorola, Inc. Self-configuration of nodes in a distributed message-based operating system
US5491791A (en) * 1995-01-13 1996-02-13 International Business Machines Corporation System and method for remote workstation monitoring within a distributed computing environment
US5812768A (en) * 1992-10-30 1998-09-22 Software Ag System for allocating adaptor to server by determining from embedded foreign protocol commands in client request if the adapter service matches the foreign protocol
US5872966A (en) * 1996-05-10 1999-02-16 Apple Computer, Inc. System and method for logging and enabling further manipulation of system state information
US5875306A (en) * 1996-10-01 1999-02-23 International Business Machines Corporation Reconfiguring computer resources in a distributed computer enterprise environment
US5887171A (en) * 1996-01-29 1999-03-23 Hitachi, Ltd. Document management system integrating an environment for executing an agent and having means for changing an agent into an object
US5987633A (en) * 1997-08-20 1999-11-16 Mci Communications Corporation System, method and article of manufacture for time point validation
US6041347A (en) * 1997-10-24 2000-03-21 Unified Access Communications Computer system and computer-implemented process for simultaneous configuration and monitoring of a computer network
US6049819A (en) * 1997-12-10 2000-04-11 Nortel Networks Corporation Communications network incorporating agent oriented computing environment
US6091811A (en) * 1997-11-13 2000-07-18 Lucent Technologies Inc. Ringing technique in automatic call distribution
US6154778A (en) * 1998-05-19 2000-11-28 Hewlett-Packard Company Utility-based multi-category quality-of-service negotiation in distributed systems
US6192364B1 (en) * 1998-07-24 2001-02-20 Jarg Corporation Distributed computer database system and method employing intelligent agents
US6247128B1 (en) * 1997-07-22 2001-06-12 Compaq Computer Corporation Computer manufacturing with smart configuration methods
US6247049B1 (en) * 1997-04-15 2001-06-12 British Telecommunications Public Limited Company Design of computer networks
US6721880B1 (en) * 2000-05-31 2004-04-13 Lucent Technologies Inc. Method and apparatus for maintaining configuration information in a computing environment
US6959332B1 (en) * 2000-07-12 2005-10-25 Cisco Technology, Inc. Basic command representation of quality of service policies

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1293819C (en) * 1986-08-29 1991-12-31 Thinking Machines Corporation Very large scale computer
CA2044022A1 (en) 1990-06-28 1991-12-29 Miriam A. Nihart Common agent computer management system and method
DE69129443T2 (en) * 1990-12-14 1999-01-14 Sun Microsystems Inc Process for operating time-critical processes in a window system environment
US5386566A (en) * 1991-03-20 1995-01-31 Hitachi, Ltd. Inter-processor communication method for transmitting data and processor dependent information predetermined for a receiving process of another processor
US5872928A (en) * 1995-02-24 1999-02-16 Cabletron Systems, Inc. Method and apparatus for defining and enforcing policies for configuration management in communications networks
US5655081A (en) * 1995-03-08 1997-08-05 Bmc Software, Inc. System for monitoring and managing computer resources and applications across a distributed computing environment using an intelligent autonomous agent architecture
US5882534A (en) * 1995-05-17 1999-03-16 Lg Semicon Co., Ltd. Method for fabricating a multistage phase shift mask
GB2301717B (en) * 1995-06-02 1999-08-11 Dsc Communications Network controller for monitoring the status of a network
US6732170B2 (en) * 1996-02-13 2004-05-04 Hitachi, Ltd. Network managing method, medium and system
US5819042A (en) 1996-02-20 1998-10-06 Compaq Computer Corporation Method and apparatus for guided configuration of unconfigured network and internetwork devices
US5845283A (en) * 1996-04-24 1998-12-01 Lingua Teq, Inc. Method and apparatus for rationalizing different data formats in a data management system
US5822534A (en) * 1996-06-04 1998-10-13 Sun Microsystems, Inc. Method and apparatus for selectively unmanaging elements on a network
US6718550B1 (en) * 1996-06-26 2004-04-06 Sun Microsystems, Inc. Method and apparatus for improving the performance of object invocation
US5958012A (en) * 1996-07-18 1999-09-28 Computer Associates International, Inc. Network management system using virtual reality techniques to display and simulate navigation to network components
US5884046A (en) * 1996-10-23 1999-03-16 Pluris, Inc. Apparatus and method for sharing data and routing messages between a plurality of workstations in a local area network
US6330008B1 (en) * 1997-02-24 2001-12-11 Torrent Systems, Inc. Apparatuses and methods for monitoring performance of parallel computing
US6038399A (en) * 1997-07-22 2000-03-14 Compaq Computer Corporation Computer manufacturing architecture with two data-loading processes
US6051449A (en) * 1997-08-06 2000-04-18 Micron Technology, Inc. Method and apparatus for Epoxy loc die attachment
US6134581A (en) 1997-10-06 2000-10-17 Sun Microsystems, Inc. Method and system for remotely browsing objects
US6314422B1 (en) * 1997-12-09 2001-11-06 Chrysler Corporation Method for softlinking between documents in a vehicle diagnostic system
CA2233794C (en) * 1998-02-24 2001-02-06 Luc Bessette Method and apparatus for the management of medical files
US6317786B1 (en) * 1998-05-29 2001-11-13 Webspective Software, Inc. Web service
US6480597B1 (en) * 1998-06-12 2002-11-12 Mci Communications Corporation Switch controller for a telecommunications network
WO2000013086A1 (en) * 1998-08-26 2000-03-09 Harris Corporation Diagnostic system and method for monitoring plural software applications using plural diagnostic tools
US6446136B1 (en) 1998-12-31 2002-09-03 Computer Associates Think, Inc. System and method for dynamic correlation of events
US6430598B1 (en) * 1999-01-29 2002-08-06 International Business Machines Corporation Method and system for deleting messages from a server
US6480901B1 (en) * 1999-07-09 2002-11-12 Lsi Logic Corporation System for monitoring and managing devices on a network from a management station via a proxy server that provides protocol converter
US6449739B1 (en) * 1999-09-01 2002-09-10 Mercury Interactive Corporation Post-deployment monitoring of server performance
US7600039B2 (en) * 2000-02-16 2009-10-06 Motorola, Inc. Label-based multiplexing
US6658598B1 (en) * 2000-02-17 2003-12-02 Motive Communications, Inc. Technical support chain automation with guided self-help capability using active content assertions
US6498835B1 (en) * 2000-02-29 2002-12-24 Ameritech Corporation Method and system for providing visual notification in a unified messaging system
US6601094B1 (en) * 2000-04-27 2003-07-29 Hewlett-Packard Development Company, L.P. Method and system for recommending an available network protocol
US6785723B1 (en) * 2000-06-22 2004-08-31 International Business Machines Corporation Tracking the transmission of web documents or files sent from resource locations through servers on the web to client computer stations which send tracked transmission characteristics data back to said servers

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5165018A (en) * 1987-01-05 1992-11-17 Motorola, Inc. Self-configuration of nodes in a distributed message-based operating system
US5812768A (en) * 1992-10-30 1998-09-22 Software Ag System for allocating adaptor to server by determining from embedded foreign protocol commands in client request if the adapter service matches the foreign protocol
US5491791A (en) * 1995-01-13 1996-02-13 International Business Machines Corporation System and method for remote workstation monitoring within a distributed computing environment
US5887171A (en) * 1996-01-29 1999-03-23 Hitachi, Ltd. Document management system integrating an environment for executing an agent and having means for changing an agent into an object
US5872966A (en) * 1996-05-10 1999-02-16 Apple Computer, Inc. System and method for logging and enabling further manipulation of system state information
US5875306A (en) * 1996-10-01 1999-02-23 International Business Machines Corporation Reconfiguring computer resources in a distributed computer enterprise environment
US6247049B1 (en) * 1997-04-15 2001-06-12 British Telecommunications Public Limited Company Design of computer networks
US6247128B1 (en) * 1997-07-22 2001-06-12 Compaq Computer Corporation Computer manufacturing with smart configuration methods
US5987633A (en) * 1997-08-20 1999-11-16 Mci Communications Corporation System, method and article of manufacture for time point validation
US6041347A (en) * 1997-10-24 2000-03-21 Unified Access Communications Computer system and computer-implemented process for simultaneous configuration and monitoring of a computer network
US6091811A (en) * 1997-11-13 2000-07-18 Lucent Technologies Inc. Ringing technique in automatic call distribution
US6049819A (en) * 1997-12-10 2000-04-11 Nortel Networks Corporation Communications network incorporating agent oriented computing environment
US6154778A (en) * 1998-05-19 2000-11-28 Hewlett-Packard Company Utility-based multi-category quality-of-service negotiation in distributed systems
US6192364B1 (en) * 1998-07-24 2001-02-20 Jarg Corporation Distributed computer database system and method employing intelligent agents
US6721880B1 (en) * 2000-05-31 2004-04-13 Lucent Technologies Inc. Method and apparatus for maintaining configuration information in a computing environment
US6959332B1 (en) * 2000-07-12 2005-10-25 Cisco Technology, Inc. Basic command representation of quality of service policies

Cited By (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020135610A1 (en) * 2001-03-23 2002-09-26 Hitachi, Ltd. Visualization of multi-layer network topology
US20020194314A1 (en) * 2001-05-17 2002-12-19 Alexander Kouznetsov Application generator
US6832366B2 (en) * 2001-05-17 2004-12-14 Simdesk Technologies, Inc. Application generator
US20030005104A1 (en) * 2001-05-30 2003-01-02 Ibm Server configuration tool
US7062529B2 (en) * 2001-05-30 2006-06-13 International Business Machines Corporation Server configuration tool
US7032014B2 (en) * 2002-01-18 2006-04-18 Sun Microsystems, Inc. Service management system for configuration information
US20030200288A1 (en) * 2002-01-18 2003-10-23 Thiyagarajan Pirasenna Velandi Service management system for configuration information
US20030200286A1 (en) * 2002-03-08 2003-10-23 Sun Microsystems, Inc. Methods and systems for providing configuration data
WO2003100609A1 (en) * 2002-05-17 2003-12-04 Simdesk Technologies, Inc. Application generator
EA007778B1 (en) * 2002-05-17 2007-02-27 Симдеск Текнолоджиз, Инк. Application generator
US20050165939A1 (en) * 2002-05-30 2005-07-28 Metso Automation Oy System, communication network and method for transmitting information
US6950931B2 (en) * 2002-05-30 2005-09-27 International Business Machines Corporation Server configuration using profile templates
US20040006652A1 (en) * 2002-06-28 2004-01-08 Prall John M. System event filtering and notification for OPC clients
US7849179B2 (en) 2003-02-20 2010-12-07 International Business Machines Corporation System and program for managing devices in a network
US20080228909A1 (en) * 2003-02-20 2008-09-18 International Business Machines Corporation System and program for managing devices in a network
US7386609B2 (en) 2003-02-20 2008-06-10 International Business Machines Corporation Method, system, and program for managing devices in a network
US20050114397A1 (en) * 2003-04-04 2005-05-26 Computer Associates Think, Inc. Method and system for management and configuration of remote agents
US7711803B2 (en) * 2003-04-04 2010-05-04 Computer Associates Think, Inc. Method and system for management and configuration of remote agents
US20050080897A1 (en) * 2003-09-29 2005-04-14 Capital One Financial Corporation Remote management utility
US7529814B2 (en) 2003-10-15 2009-05-05 International Business Machines Corporation Autonomic computing algorithm for identification of an optimum configuration for a web infrastructure
US20080151923A1 (en) * 2003-12-09 2008-06-26 International Business Machines Corporation Apparatus for modeling queueing systems with highly variable traffic arrival rates
US7376083B2 (en) 2003-12-09 2008-05-20 International Business Machines Corporation Apparatus and method for modeling queueing systems with highly variable traffic arrival rates
US20050122987A1 (en) * 2003-12-09 2005-06-09 Michael Ignatowski Apparatus and method for modeling queueing systems with highly variable traffic arrival rates
US7668096B2 (en) 2003-12-09 2010-02-23 International Business Machines Corporation Apparatus for modeling queueing systems with highly variable traffic arrival rates
US7587421B2 (en) 2004-01-30 2009-09-08 International Business Machines Corporation Method, system, and article of manufacture for generating device specific requests
US20050171953A1 (en) * 2004-01-30 2005-08-04 International Business Machines Corporation Method, system, and article of manufacture for generating device specific requests
US20060184654A1 (en) * 2005-02-11 2006-08-17 Microsoft Corporation Server-functionality role extensibility model
US7536449B2 (en) * 2005-02-11 2009-05-19 Microsoft Corporation Server-functionality role extensibility model
US7822857B2 (en) 2005-09-07 2010-10-26 Hewlett-Packard Development Company, L.P. Methods and systems for sharing remote access
US20070055780A1 (en) * 2005-09-07 2007-03-08 Cartes Andrew C Methods and systems for sharing remote access
US7756973B2 (en) 2006-04-27 2010-07-13 International Business Machines Corporation Identifying a configuration for an application in a production environment
US20070255830A1 (en) * 2006-04-27 2007-11-01 International Business Machines Corporaton Identifying a Configuration For an Application In a Production Environment
US9053492B1 (en) * 2006-10-19 2015-06-09 Google Inc. Calculating flight plans for reservation-based ad serving
CN100456237C (en) * 2007-01-31 2009-01-28 华为技术有限公司 Method and device for accessing database
US9503006B2 (en) 2010-10-20 2016-11-22 Trumpf Huettinger Gmbh + Co. Kg Plasma and induction heating power supply systems and related methods
US8993943B2 (en) 2010-10-20 2015-03-31 Trumpf Huettinger Gmbh + Co. Kg Systems for operating multiple plasma and/or induction heating systems and related methods
CN102999730A (en) * 2011-09-15 2013-03-27 微软公司 Securing data usage in computing devices
US10165007B2 (en) * 2011-09-15 2018-12-25 Microsoft Technology Licensing, Llc Securing data usage in computing devices
US20140090017A1 (en) * 2012-09-27 2014-03-27 Siemens Aktiengesellschaft Method and system for connecting a controller for a machine to a higher-level it system
US9787682B2 (en) * 2012-09-27 2017-10-10 Siemens Aktiengesellschaft Method and system for connecting a controller for a machine to a higher-level IT system
US11424985B2 (en) * 2016-08-13 2022-08-23 Nicira, Inc. Policy driven network QOS deployment
US11799729B2 (en) 2016-08-13 2023-10-24 Nicira, Inc. Policy driven network QoS deployment
US11023533B2 (en) * 2017-09-13 2021-06-01 Ping An Technology (Shenzhen) Co., Ltd. Node task data display method and apparatus, storage medium and computer equipment
US11128529B1 (en) * 2020-03-17 2021-09-21 Capital One Services, Llc Cloud infrastructure for isolation and run-time behavioral tuning through configuration externalization
US11588685B2 (en) 2020-03-17 2023-02-21 Capital One Services, Llc Cloud infrastructure for isolation and run-time behavioral tuning through configuration externalization

Also Published As

Publication number Publication date
EP1327348B1 (en) 2015-10-21
US7779089B2 (en) 2010-08-17
US20020116453A1 (en) 2002-08-22
EP1327348A4 (en) 2009-08-05
US8095632B2 (en) 2012-01-10
WO2002023405A1 (en) 2002-03-21
EP1330737A4 (en) 2009-11-11
EP1330724A1 (en) 2003-07-30
US20100205244A1 (en) 2010-08-12
EP1330737B1 (en) 2014-02-26
CN1261892C (en) 2006-06-28
EP1330724A4 (en) 2009-11-11
EP1330724B1 (en) 2018-11-14
US7644120B2 (en) 2010-01-05
AU2001292691B2 (en) 2007-05-24
WO2002023875A1 (en) 2002-03-21
CN1474976A (en) 2004-02-11
CN100521711C (en) 2009-07-29
CN1504041A (en) 2004-06-09
EP1330737A1 (en) 2003-07-30
EP1327348A1 (en) 2003-07-16
WO2002023364A1 (en) 2002-03-21
AU9268901A (en) 2002-03-26
AU2001292689B2 (en) 2006-10-26
AU2001292690A1 (en) 2002-03-26
US20020112044A1 (en) 2002-08-15
AU9269101A (en) 2002-03-26

Similar Documents

Publication Publication Date Title
US7779089B2 (en) Method and system for remote configuration of process data access servers
AU2001292691A1 (en) A method and system for remote configuration of process data access servers
JP4768085B2 (en) Configuration database system, distributed configuration database system, method of storing and using configuration data, database server, method of providing access to database components, to components stored in database Of using a database server to provide parallel access and process control system
US5828851A (en) Process control system using standard protocol control of standard devices and nonstandard devices
JP4739496B2 (en) Process control system, configuration database system, method of using configuration data in process control system, and method of performing configuration operations in process control system
EP1299780B1 (en) Automated tool management in a multi-protocol environment
JP6194252B2 (en) Process control system
US6098116A (en) Process control system including a method and apparatus for automatically sensing the connection of devices to a network
US7287230B2 (en) Configuring a GUI element to subscribe to data
AU2001292689A1 (en) An industrial process control data access server supporting multiple client data exchange protocols
US20030037119A1 (en) Graphical programming system and method including nodes for programmatically accessing data sources and targets
US7756963B2 (en) Automated tool management in a multi-protocol environment
US9049044B1 (en) Method of management and distribution of device adapters for element management systems
JP4806513B2 (en) Automated tool management in a multi-protocol environment

Legal Events

Date Code Title Description
AS Assignment

Owner name: WONDERWARE CORPORATION, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HESSMER, RAINER;TODOROV, IVAN A.;HADRICH, MICHAEL;AND OTHERS;REEL/FRAME:012609/0558;SIGNING DATES FROM 20011217 TO 20020115

Owner name: WONDERWARE CORPORATION, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HESSMER, RAINER;TODOROV, IVAN A.;HADRICH, MICHAEL;AND OTHERS;SIGNING DATES FROM 20011217 TO 20020115;REEL/FRAME:012609/0558

AS Assignment

Owner name: INVENSYS SYSTEMS, INC.,MASSACHUSETTS

Free format text: MERGER;ASSIGNOR:WONDERWARE CORPORATION;REEL/FRAME:017846/0653

Effective date: 20020331

Owner name: INVENSYS SYSTEMS, INC., MASSACHUSETTS

Free format text: MERGER;ASSIGNOR:WONDERWARE CORPORATION;REEL/FRAME:017846/0653

Effective date: 20020331

AS Assignment

Owner name: DEUTSCHE BANK AG, LONDON BRANCH,UNITED KINGDOM

Free format text: SECURITY AGREEMENT;ASSIGNOR:INVENSYS SYSTEMS, INC.;REEL/FRAME:017921/0766

Effective date: 20060713

Owner name: DEUTSCHE BANK AG, LONDON BRANCH, UNITED KINGDOM

Free format text: SECURITY AGREEMENT;ASSIGNOR:INVENSYS SYSTEMS, INC.;REEL/FRAME:017921/0766

Effective date: 20060713

STCF Information on status: patent grant

Free format text: PATENTED CASE

AS Assignment

Owner name: INVENSYS SYSTEMS, INC., MASSACHUSETTS

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:DEUTSCHE BANK, AG, LONDON BRANCH;REEL/FRAME:030982/0663

Effective date: 20080723

FPAY Fee payment

Year of fee payment: 4

AS Assignment

Owner name: SCHNEIDER ELECTRIC SOFTWARE, LLC, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INVENSYS SYSTEMS, INC.;REEL/FRAME:041935/0683

Effective date: 20161221

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552)

Year of fee payment: 8

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FEPP Fee payment procedure

Free format text: 11.5 YR SURCHARGE- LATE PMT W/IN 6 MO, LARGE ENTITY (ORIGINAL EVENT CODE: M1556); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 12