US20070198724A1 - OPC server redirection manager - Google Patents

OPC server redirection manager Download PDF

Info

Publication number
US20070198724A1
US20070198724A1 US11/786,510 US78651007A US2007198724A1 US 20070198724 A1 US20070198724 A1 US 20070198724A1 US 78651007 A US78651007 A US 78651007A US 2007198724 A1 US2007198724 A1 US 2007198724A1
Authority
US
United States
Prior art keywords
opc
server
client
redirection manager
redirection
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.)
Abandoned
Application number
US11/786,510
Inventor
Ellen Hawkinson
Timothy Fortin
Anuradha Vidyashankar
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.)
ANTHONY MIOLOGOS ESQ
Honeywell International Inc
Original Assignee
Honeywell International 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 Honeywell International Inc filed Critical Honeywell International Inc
Priority to US11/786,510 priority Critical patent/US20070198724A1/en
Publication of US20070198724A1 publication Critical patent/US20070198724A1/en
Assigned to HONEYWELL INTERNATIONAL INC. reassignment HONEYWELL INTERNATIONAL INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: FORTIN, TIMOTHY J., HAWKINSON, ELLEN B., VIDYASHANKAR, ANURADHA
Abandoned legal-status Critical Current

Links

Images

Classifications

    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • 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/55Push-based network 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/563Data redirection of data network streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security 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/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34263OLE object linking and embedding, OPC ole for process control
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/10015Access to distributed or replicated servers, e.g. using brokers
    • 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/59Providing operational support to end devices by off-loading in the network or by emulation, e.g. when they are unavailable
    • 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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection

Definitions

  • the present invention generally relates to an OPC server redirection manager, which is an intermediate OPC server that forwards all OPC calls made by clients to actual OPC servers that communicate with data sources.
  • the OPC server redirection manager maintains the information necessary to take appropriate action when a target OPC server fails and ensures that no bad status is returned to a client.
  • OPC® OLE FOR PROCESS CONTROL®
  • OPC® is an emerging industry standard that facilitates integration by allowing automation systems to share information and interoperate with other industrial automation, process control, and other business systems for plants or factories.
  • O-P-C originally stood for Object Linking and Embedding (OLE) for Process Control, but OLE has been restructured from object-oriented to object-based and renamed ActiveX.
  • OPC standard is a non-proprietary technical specification that is maintained by the OPC Foundation®.
  • OPC The OPC specification is based upon the Microsoft® OLE (now ActiveX), Component Object Model (COM), and Distributed Component Object Model (DCOM) technologies.
  • OPC defines a standard set of interfaces, properties, and methods for use in process control, manufacturing, and automation applications. These applications include distributed control systems, programmable logic controllers, input/output (IO) systems, smart field devices, and other servers of real-time information.
  • the ActiveX/COM technologies define how individual software components interact and share data.
  • OLE Automation OPC can provide office applications with plant floor data via local area networks (LANs), remote sites, or the Internet.
  • OPC provides many benefits to end users and hardware and software manufacturers, including open connectivity, high performance, and improved vendor productivity.
  • OPC provides open connectivity giving users a choice among a wider variety of plant floor devices and client software, allowing better utilization of best-in-breed applications. Because OPC is an open standard, software and hardware manufacturers devote less time to connectivity issues and more time to application issues, eliminating significant duplicate effort. OPC fosters greater interoperability between automation and control applications, field devices, and business and office applications.
  • redirection systems provide inferior functionality to the redirection manager according to the present invention and they appear to have different architectures.
  • One redirection system is implemented as a Microsoft Windows® service, whereas the redirection manager according to the present invention uses a private connection approach to limit the impact of failure.
  • Redirection systems implement OPC data access, whereas the redirection manager according to the present invention has redirection servers that implement those as well as OPC alarms and events. Redirection systems appear to implement server/node health via a ping mechanism, whereas the redirection manager according to the present invention uses a monitoring approach with less network traffic overhead.
  • Certain OPC servers synchronize the internal OPC server database for performance and consistency reasons. The redirection manager according to the present invention optionally provides this capability.
  • redirection systems provide a service to which all clients connect. If that service fails, then all connected clients are impacted. By contrast, clients using the redirection manager according to the present invention have a private connection. If the private connection fails, then only the connected client is impacted. Conventional redirection systems use a ping mechanism for detection. This is less efficient than the redirection manager according to the present invention, which uses notification providers to alert the redirection manager when target nodes or servers fail.
  • the present invention overcomes these problems by maintaining the information necessary for taking appropriate action when the target OPC server fails and for ensuring that no bad status is returned to the client.
  • Any existing OPC client needing seamless failover between target OPC data access and/or alarm and event servers will connect to a uniquely configured instance of the redirection manager instead of connecting to the primary server.
  • the client application continues to perform OPC related tasks as usual. Because each client connection is unique, the redirection manager itself is not a single point of failure.
  • Each configured redirection manager instance monitors the health of the target server node and the target server itself by subscribing to failure events. Use of subscription rather than polling (via ping) reduces network traffic.
  • the present invention also provides many additional advantages as described below.
  • One embodiment of the present invention is a redirection management method.
  • a first private connection is granted from the first OPC client to a first instance of an OPC redirection manager.
  • a second private connection is granted from the second OPC client to a second instance of the OPC redirection manager.
  • a connection is made to a first target OPC server.
  • Another connection is made to an OPC server status change provider for the first target OPC server.
  • additional connections are made to at least one additional target OPC server, including a second target OPC server configured to backup the first target OPC server.
  • an OPC add-group request is received from the first OPC client and it is forwarded to the first target OPC server to service.
  • a plurality of add-group interfaces associated with the OPC add-group request are implemented by creating at least one group.
  • the OPC add-group request is forwarded to each of the additional target OPC servers to store the group(s) as inactive. Information is stored that is related to the OPC add-group request, including the group(s).
  • An OPC on-data-change request is received by the redirection manager from the first OPC client and a connection is established between the first target OPC server and a first sink object.
  • the sink objects belong to the redirection manager.
  • Another connection is established between the second target OPC server and a second sink object.
  • Information related to the OPC on-data-change request, including the at least one group is stored.
  • a first on-data-change request is provided to the first OPC client from the redirection manager following the redirection manager's receipt of the on-data-change request from the first target OPC server.
  • Upon receiving an active-server-failed event from the OPC server status change provider for the first target OPC server Upon receiving an active-server-failed event from the OPC server status change provider for the first target OPC server, a switchover is performed to the second target OPC server.
  • At least one group is activated on the second target OPC server and a second on-data-change request is provided to the first OPC client from the redirection manager following the redirection manager's receipt of the on-data-change request from the second target OPC server.
  • the first target OPC server is now available is received from the OPC server status change provider, a connection is made to the first target OPC server and previously stored information is used to add the group(s) to the first target OPC server.
  • Another embodiment of the present invention is a method of redirection management.
  • interfaces associated with the OPC create-event-subscription request are implemented.
  • the OPC create-event-subscription request is forwarded to a primary target OPC server for service. It is also forwarded as inactive to at least one additional target OPC server, including a secondary target OPC server configured to backup the primary target OPC server.
  • Information related to the OPC create-event-subscription request is stored, including state information.
  • a connection is made by the redirection manager to the primary target OPC server. Additional connections are made by the redirection manager to an OPC server status change provider for the primary target OPC server and to additional target OPC server(s). If it is determined that the primary target OPC server supports OPC alarms and events, an alarms-and-events module is loaded. At least one on-event request is provided to the OPC client from the primary target OPC server. Upon receiving an active-server-failed event from the OPC server status change provider for the primary target OPC server, a switchover to the secondary target OPC server is performed and the alarms-and-events module is notified of the switchover.
  • a currently active event is synchronized with the secondary target OPC server to prevent loss of data and an OPC on-event request is provided to the OPC client from the secondary target OPC server.
  • OPC server status change provider When notice from the OPC server status change provider is received that the primary target OPC server is now available, a connection is made to the primary target OPC server and it is established with the state information.
  • Anther embodiment of the present invention is an OPC redirection management system comprising a first OPC server, a second OPC server, and a first redirection manager.
  • the first OPC server is capable of servicing an OPC request.
  • the second OPC server is configured to backup the first OPC server.
  • the first redirection manager is capable of forwarding an OPC request on behalf of a first OPC client to either the first OPC server or the second OPC server.
  • the first OPC client is capable of establishing its own private connection with the first redirection manager.
  • the first redirection manager is capable of connecting to the second OPC server upon failure of the first OPC server to provide seamless service to the first OPC client.
  • the first redirection manager is capable of storing information associated with the OPC request for use upon failure of the first OPC server.
  • the OPC redirection management system may also comprise a third OPC server, a fourth OPC server, and a second redirection manager.
  • the fourth OPC server is configured to backup the third OPC server.
  • a second OPC client is capable of establishing its own private connection with the second redirection manager.
  • the second redirection manager is capable of connecting to the fourth OPC server upon failure of the third OPC server to provide seamless service to the second OPC client.
  • the first OPC server is capable of being configured to backup a third OPC server.
  • the OPC request may be of type data access or alarm and events.
  • the OPC redirection management system may also comprise a primary server node, a secondary server node, and a client node.
  • the primary server node comprises the first OPC server, a primary node status change provider, and a primary OPC status change provider.
  • the secondary server node comprises the second OPC server, a secondary node status change provider, and a secondary OPC status change provider.
  • the client node comprises the first OPC client, the first redirection manager, a client node status change provider, and a client OPC status change provider.
  • the first redirection manager comprises data access and subscription state data and a switchover manager.
  • the first OPC server comprises an item cache and a condition database.
  • the first OPC client is a process control application.
  • the first OPC server communicates with a device to service the OPC request so that the first OPC client receives information about the device as a result of the OPC request.
  • Another embodiment of the present invention is a machine-readable medium storing executable instructions for performing a method.
  • a first private connection is granted from the first OPC client to a first instance of an OPC redirection manager.
  • a second private connection is granted from the second OPC client to a second instance of the OPC redirection manager.
  • a connection is made to a node status change provider for the second OPC client.
  • the redirection manager fails and the private connection for the second OPC client is lost, the first private connection for the first OPC client is maintained.
  • a connection is made to a first target OPC server.
  • Another connection is made to an OPC server status change provider for the first target OPC server.
  • Another connection is made to a second target OPC server configured to backup the first target OPC server.
  • FIG. 1 is a block diagram of a single client connection for a redirection manager system architecture according to the present invention.
  • FIG. 2 is a block diagram of multiple client connections to multiple instances of a redirection manager according to the present invention.
  • FIG. 3 is a sequence diagram of how a client connection is made by a redirection manager, according to the present invention.
  • FIG. 4 is a sequence diagram of how a redirection manager maintains state information related to an OPC add-group request, according to the present invention.
  • FIG. 5 is a sequence diagram of how a redirection manager handles OPC on-data-change requests, according to the present invention.
  • FIG. 6 is a sequence diagram of how a redirection manager handles the failure of the active target OPC server, according to the present invention.
  • FIG. 7 is a sequence diagram of how a redirection manager synchronizes an alternate target OPC server when it becomes available, according to the present invention.
  • FIG. 8 is a sequence diagram of how a redirection manager maintains state information on behalf of a client for an OPC create-event subscription request, according to the present invention.
  • FIG. 9 is a sequence diagram of how a redirection manager handles failure of the active target OPC server when the target servers support OPC alarms and events, according to the present invention.
  • FIG. 10 is a sequence diagram of how a redirection manager synchronizes an alternate target OPC server when it becomes available, according to the present invention.
  • FIG. 1 shows a single client connection for a redirection manager system architecture according to the present invention.
  • a client node 100 Within a client node 100 is an OPC client 101 which is connected to a single instance of a redirection manager 102 that, in turn, communicates with components inside a primary OPC server node 104 and components inside a backup OPC server node 106 .
  • Components inside primary OPC server node 104 and backup OPC server node 106 communicate with a device 108 .
  • OPC client 101 connects to redirection manager 102 instead of directly connecting to primary OPC server node 104 .
  • Redirection manager 102 is configured for OPC client 101 using a configuration utility. Once configuration is complete, OPC client 101 continues to perform OPC related tasks as usual. Each configured redirection manager 102 is registered so that it points to an installed executable. At the time of client connection, a new instance of redirection manager 102 is created. This new instance executes in a unique process address space. It is identifiable to OPC client 101 by a unique identification for status purposes.
  • Client node 100 has an OPC server status change provider 110 and a node status change provider 112 .
  • Redirection manager 102 is an intermediate OPC server that forwards OPC requests made by OPC client 101 to primary OPC server node 104 that communicates with device 108 . Redirection manager 102 maintains the information necessary to take appropriate actions when primary OPC server node 104 fails and ensures that no bad status is returned to OPC client 101 . Redirection manager 102 has data access and subscription state data 114 and a switchover manager 116 to change the active server.
  • Primary OPC server node 104 communicates with device 108 and other data sources that OPC client 101 wants access to reading and writing data and is configured to be a primary server for redirection manager 102 .
  • primary OPC server node 104 is configurable as a secondary server for a different redirection manager than redirection manager 102 (see FIG. 2 ).
  • the active OPC server is either primary OPC server node 104 or the backup OPC server node 106 and is the server that is currently servicing the OPC requests for OPC client 101 through redirection manager 102 .
  • Primary OPC server node 104 has an OPC server 118 with an item cache 120 and a condition database 122 , a node status change provider 124 , and an OPC server status change provider 126 . Current data values are stored in item cache 120 and alarm states are stored in condition database 122 .
  • Secondary or backup OPC server node 106 is the active OPC server when primary OPC server node 104 fails.
  • backup OPC server node 106 is configurable as a primary server for a different redirection manager (see FIG. 2 ).
  • backup OPC server node 106 has an OPC server 128 with an item cache 130 and a condition database 132 , a node status change provider 134 , and an OPC server status change provider 136 .
  • Device 108 is a data source that is capable of servicing data access or IO requests as well as pushing alarms and events to OPC servers.
  • Redirection manager 102 is an OPC server that may support OPC Data Access 2.05 and 1.0A, OPC Alarms and Events 1.0 and OPC Security 1.0 interfaces as well as other OPC data access, OPC alarms and events and other OPC interfaces known presently or in the future. It is not a true OPC server in the sense that it does not communicate with real data sources, and instead is used to forward client calls to and from the actual OPC servers and to maintain state information allowing it to switch to a backup server when the primary server fails. Redirection manager 102 is implemented as an out-of-process .exe server (see FIG. 2 ). There is one .exe server per client connection to redirection manager 102 .
  • OPC requests that alter the state of the client connection but do not request IO are made to both the primary and backup servers, e.g., primary OPC server node 104 and backup OPC server node 106 .
  • IO requests are only made to primary OPC server 118 . This puts the secondary in a hot-standby mode.
  • redirection manager 102 activates the backup OPC server 128 and issues IO requests. Since OPC client 101 is unaware of the switch, it can significantly reduce error handling scenarios in OPC client 101 itself. Redirection manager 102 supports a cold-standby redundancy scheme as well. In this case, state is not replicated to backup OPC server 128 . All state is set up at switchover time.
  • Redirection manager 102 also supports optional browsing interfaces. Redirection manager 102 forwards all the calls to either primary OPC server 118 or backup OPC server 128 or to all servers, while maintaining state information related to the calls for redirection purposes.
  • the server that is currently servicing IO requests is referred to as the active server. In the event, the currently active server fails, redirection manager 102 , as part of the switchover process, sets one of the backup servers to be the new active server.
  • Redirection manager 102 saves the state of the requests of OPC client 101 to redirect them or reissue them to a backup server when the primary server fails and also for various other scenarios.
  • One approach is to categorize the client calls as IO and non-IO requests. The classification is made as follows. Those OPC requests that alter the state of the client connection but do not request IO are classified as non-IO requests, such as add-group, add-item, create-event-subscription, and set-filter-calls. Client IO calls are classified as IO requests, such as read, write, and ack-condition.
  • Non-IO calls are maintained as long as OPC client 101 is running.
  • One scenario where this information is needed is to sync-up a backup server that comes up after OPC client 101 has made add-group and add-items calls.
  • the IO call information is persisted only until either the primary or backup server services the call. Once the call successfully completes, the IO information about the call is deleted.
  • Redirection manager 102 examines all the errors returned by the active server. Those errors which indicate a failure along the communication path between redirection manager 102 and the active server will cause redirection manager 102 to initiate a switchover. Those errors which do not indicate a failure along this communication path are forwarded to OPC client 102 . OPC client 101 handles these errors the same way as it would if connected to the servers directly. Redirection manager 102 saves the state of all non-IO calls and hence can attempt the re-sync. All OPC calls categorized as non-IO are sent to both the primary and backup servers. The call has to succeed on the active server before the request is issued to the backup server. If the request fails on the backup, the error is logged but not returned to the client.
  • the backup server is considered out of sync with the active server.
  • the Redirection Manager attempts to re-sync the backup on a switchover. If the re-sync fails, the Redirection Manager does not switchover to the secondary.
  • redirection manager 102 establishes a connection with the target servers, e.g., primary OPC server node 104 and backup OPC server node 106 . Also, redirection manager 102 establishes connections with status change providers, such as OPC server status change provider 110 to subscribe to events that may trigger switchover manager 116 . For node failures, redirection manager 102 connects to node status change provider 112 . Node status change provider 112 communicates with peer node status change providers, such as node status change provider 106 to monitor the health of other nodes.
  • redirection manager 102 establishes a remote subscription connection to the OPC server status change providers, such as OPC server status change providers 126 and 136 on each target OPC server node, such as primary OPC server node 104 and backup OPC server node 106 . Changes in server state are forwarded to redirection manager 102 . If primary OPC server node 104 's OPC server 118 transitions from a running state, then redirection manager 102 initiates a switchover to backup OPC server node 106 through switchover manager 116 . If backup OPC server 128 transitions from the running state and becomes unavailable, subsequent transition to running results in synchronization.
  • OPC server status change providers 126 and 136 on each target OPC server node, such as primary OPC server node 104 and backup OPC server node 106 . Changes in server state are forwarded to redirection manager 102 . If primary OPC server node 104 's OPC server 118 transitions from a running state, then redirection
  • Redirection manager 102 reports its status to OPC server status change provider 110 . This enables integration with a hosting system status display component. The health of the connection from OPC client 101 to redirection manager 102 as well as the health of target OPC servers 118 , 128 are exposed to the user.
  • OPC client 101 makes OPC requests to redirection server 102 as if it were directly connected to target OPC servers 118 , 128 .
  • redirection manager 102 forwards the request to the active and backup OPC servers 118 , 128 .
  • Requests to activate the group collection are only performed on the active OPC server.
  • Group data collection is inactive on the backup servers.
  • requests to activate event subscriptions are only performed on the active OPC server. Event subscriptions remain inactive on the backup OPC servers.
  • redirection manager 102 is optimized to synchronize the device namespace handles without requesting multiple conversion operations for device 108 .
  • Redirection manager 102 makes all the OPC calls or requests to primary OPC server 118 and backup OPC server 128 on separate threads. This allows OPC calls that fail due to server failure to be reissued to backup OPC server 128 .
  • primary OPC server 118 waits on a request-complete event signaled by the thread issuing the call to backup OPC server 128 . Once the event is signaled, primary OPC server 118 returns the results back to OPC client 101 .
  • Redirection manager 102 also waits on an active-server-failed event to be signaled when the active server fails. If this event is signaled, redirection manager 102 looks for an alternate server and reissues the failed request to that server.
  • An internal timeout period is added to the waits to take care of those scenarios that notification providers or redirection manager 102 itself may not handle. In this way, if either of the above two events are not signaled, redirection manager 102 is not left hanging forever.
  • the timeout period is provided as a configuration option.
  • Redirection manager 102 implements all the callbacks of OPC client 101 . It intercepts the callbacks of the active OPC server, holds all the sink interfaces of OPC client 101 , and issues the callbacks to OPC client 101 . This ensures that no bad values are returned to OPC client 101 during switchover. For data access, no asynchronous read or write calls are missed when the active server fails before callback can happen. Redirection manager 102 keeps track of whether the callbacks were completed, and reissues the call again to the backups when the switchover happens.
  • Redirection manager 102 callback forwards the event to the client on-event callback or forwards the data request to the on-data-change callback.
  • redirection manager 102 activates the client subscriptions or data access groups on the secondary server. Redirection manager 102 refreshes event subscriptions and starts processing callbacks from the secondary server.
  • FIG. 2 is a block diagram of multiple client connections to multiple instances of a redirection manager according to the present invention.
  • Client node 200 has an installed redirection manager binary executable 202 .
  • a configuration tool creates entries for registered redirection managers in a registration table 204 that resides in the Microsoft Windows( registry. Configuring includes identifying the target OPC servers.
  • client such as client one 206
  • redirection manager such as redirection manager one 208
  • a new instance of the installed redirection manager binary executable 202 is created.
  • Each instance executes in its own process space, is independent of any other running instance, and is visible to the native operating system.
  • Clients connect to various multiple registered redirection managers, such as redirection manager one, two, three, and four. If the first instance of redirection manager one 208 fails, then only client one 206 is effected, because client three 216 has its own private connection to the second instance of redirection manager one 218 .
  • the registered redirection managers communicate with multiple OPC servers, such as OPC server 210 . Multiple OPC servers reside in server nodes, such as server node 212 . Multiple server nodes reside in clusters, such as OPC server node cluster 214 . There can be any number of clients, redirection managers, OPC servers, server nodes, and OPC server node clusters.
  • FIGS. 3-10 are sequence diagrams for a number of scenarios of how a redirection manager operates according to the present invention.
  • the redirection manager is designed to accommodate two or more target OPC servers, the sequence diagrams use only two target OPC servers (i.e., primary and secondary). This is for illustrative purposes only, to make the sequence diagrams simpler and more easily understood.
  • the first target to which the redirection manager successfully connects is referred to as the active server.
  • the remaining target OPC servers are referred to as alternates.
  • the redirection manager according to the present invention supports specifications from both the OPC data access and OPC alarms and events initiatives. In the following scenarios, a particular initiative may be mentioned, but the redirection manager according to the present invention is able to service both data access clients and alarms and events clients simultaneously.
  • FIGS. 3-10 summarizes the specific events in the corresponding figure. However, there is not a one-to-one correspondence between the event numbers in the tables and the step numbers in FIGS. 3-10 .
  • FIG. 3 shows how a client connection is made by a redirection manager, according to the present invention.
  • Each of the components identified in the boxes along the top of FIG. 3 run in separate processes. These components are client 101 , redirection manager 102 , node status change provider 112 , primary OPC server 118 , primary server status change provider 126 , secondary OPC server 128 , and secondary server status change provider 136 .
  • FIG. 3 assumes some starting conditions.
  • the user or administrator has used a configuration tool to create a named instance of a redirection manager server.
  • This instance includes the identification of target OPC servers.
  • This information is stored by the configuration tool into a registry location known to the redirection manager runtime (see FIG. 2 ). All target OPC servers are available.
  • Table 1 generally describes the specific events shown in FIG. 3 . Each event in Table 1 is implemented in example methods shown in FIG. 3 .
  • TABLE 1 Client Connection Event Description of Event 1 OPC client 101 connects to redirection manager 102 using standard COM connection mechanisms.
  • 2 Redirection manager 102 as a COM server, responds to the connection request by granting OPC client 101 its own private connection that results in a unique process. This is possible because redirection manager 102 establishes with COM that each instance of redirection manager is to execute in its own process. A second client to the same redirection manager 102 gets its own process.
  • 3 Redirection manager 102 uses the Microsoft Windows ® registry to determine if the user/administrator has made the necessary configurations.
  • Redirection manager 102 connects to the target OPC servers, primary OPC server 118 and secondary OPC server 128, using standard COM mechanisms. 4 Redirection manager 102 supports the OPC data access initiative by default. If redirection manager 102 determines that the target OPC servers, primary OPC server 118 and secondary OPC server 128, support the OPC alarms and events initiative, redirection manager 102 loads an alarms and events support module to expand its default capabilities. If it is determined that the target OPC servers do not support the OPC alarms and events initiative, redirection manager 102 favors conservation of system resources and thus does not load this module.
  • redirection manager 102 establishes connection with the status change providers. It connects to node status change provider 112 on the local node. Then, it connects to primary server status change provider 126 and secondary server status change provider 136 on the target OPC server nodes. These providers notify redirection manager 102 of status changes, such as failure for either the node or OPC servers.
  • FIG. 4 shows how a redirection manager maintains state information related to an OPC add-group request, according to the present invention.
  • the components involved in this scenario are client 101 , redirection manager 102 , a redirection group 400 (in data access and subscription state data 114 ), a primary add-group thread 402 (created by redirection manager 102 ), a secondary add-group thread 404 (created by redirection manager 102 ), primary server 118 , and secondary server 128 .
  • the scenario assumes that both primary server 118 and secondary server 128 are available.
  • FIG. 4 assumes some starting conditions.
  • the administrator has made the necessary configuration using the redirection manager configuration utility to register redirection manager 102 .
  • the OPC client 101 made a connection to redirection manager 102 .
  • Table 2 generally describes the specific events shown in FIG. 4 . Each event in Table 2 is implemented in example methods shown in FIG. 4 .
  • the AddGroupThread forwards the AddGroup call to one of the target OPC servers, primary server 118. Once the call succeeds the thread sets the request-complete event and exits. 4 On receiving the request-complete event, redirection manager 102 creates redirection group object 400 that implements all the OPC group interfaces. 5 Redirection manager 402 repeats steps 2 and 3 for each of the remaining target OPC servers. However, the OPC group is established as inactive on each of these remaining target OPC servers. 6 Redirection manager 102 saves state information related to the AddGroup call as well as the OPC group interface pointers returned by the target OPC servers in the redirection group object 400.
  • FIG. 5 shows how a redirection manager handles OPC on-data-change requests, according to the present invention.
  • the components involved in this scenario are client 101 , a redirection group 400 (which is part of data access and subscription state data 114 ), a redirection manager (RDM) primary sink 502 , a redirection manager (RDM) secondary sink 504 , a primary group 506 (which is part of primary OPC server 118 ), and a secondary group 508 (which is part of secondary OPC server 128 ).
  • This scenario describes how redirection manager 102 handles OPC on-data-change requests and assumes that all the target OPC servers are available.
  • FIG. 5 assumes some starting conditions.
  • the OPC client 101 has connected to the redirection manager and has added groups and items.
  • the groups and items have been added to all the target OPC servers.
  • Table 3 generally describes the specific events shown in FIG. 5 . Each event in Table 3 is implemented in example methods shown in FIG. 5 .
  • FIG. 6 shows how a redirection manager handles the failure of the active target OPC server, according to the present invention.
  • the components involved in this scenario are OPC client 101 , redirection group 400 , redirection manager (RDM) primary sink 502 , redirection manager (RDM) secondary sink 504 , primary group 506 , primary component status provider 126 , and secondary group 508 .
  • RDM redirection manager
  • RDM redirection manager
  • FIG. 6 assumes some starting conditions.
  • OPC client 101 has connected to the redirection manager.
  • OPC client 101 is receiving OnDataChange( ) calls from the redirection manager via the active target OPC server.
  • the active target OPC server fails.
  • Table 4 generally describes the specific events shown in FIG. 6 . Each event in Table 4 is implemented in example methods shown in FIG. 6 .
  • the redirection manager connects to the status change providers and is subscribing for events.
  • 2 OPC Client 101 sets up callbacks and is receiving OnDatachange( ) calls.
  • 3 The status change provider on the node of the active target OPC server notifies the redirection manager about the OPC server failure. 4
  • the redirection manager switches over to one of the remaining target OPC servers. This becomes the new active target OPC server.
  • the redirection manager sets the appropriate groups on this target OPC server to active. 5
  • the redirection manager starts receiving OnDataChange( ) calls from the new active target OPC server when the group data changes.
  • FIG. 7 shows how a redirection manager synchronizes an alternate target OPC server when it becomes available, according to the present invention.
  • the components involved in this scenario are OPC client 101 , redirection manager. 102 , primary OPC server 118 , primary server status change provider 126 , secondary OPC server 128 , and secondary server status change provider 136 .
  • FIG. 7 assumes some starting conditions.
  • OPC client 101 has connected to redirection manager 102 and is being serviced by the active target OPC server.
  • An alternate target OPC server that was previously not running, starts.
  • Table 5 generally describes the specific events shown in FIG. 7 . Each event in Table 5 is implemented in example methods shown in FIG. 7 .
  • FIG. 8 shows how a redirection manager maintains state information on behalf of a client for an OPC create-event subscription request, according to the present invention.
  • the components involved in this scenario are OPC alarms and events client 101 , redirection event server (redirection manager) 102 , a redirection subscription object 804 (which is part of data access and subscription state data 114 ), a separate thread 806 (created by redirection manager 102 ), primary event server 118 , and secondary event server 128 .
  • This scenario describes how the redirection manager maintains state information on behalf of an OPC alarm and events client. Specifically, this is shown for the state information related to an OPC CreateEventSubscription call.
  • This scenario assumes that both the Primary and Secondary servers are available. A switchover event is used in lieu of an active-server-failed event, as in the OPC data access scenarios. Because the redirection manager's OPC alarms and events capabilities are contained within a separate module which is only loaded if alarms and events support is needed by OPC alarms and events client 800 , the module itself does not monitor the availability or health of the target servers. Instead, the redirection manager's alarms and events module relies on those facilities contained within the main redirection manager. These main facilities detect a target server failure or service a request to manually switch to an alternate target server, but in either case the alarms and events module simply receives the more generic switchover event.
  • FIG. 8 assumes some starting conditions. Both primary and secondary servers are available.
  • OPC alarms and events client 800 made a connection to the redirection manager.
  • the redirection manager loaded the alarms and event support module, after detecting that the target OPC servers support OPC alarms and events.
  • OPC alarms and events requests made by the client are being serviced by this module.
  • Table 6 generally describes the specific events shown in FIG. 8 . Each event in Table 6 is implemented in example methods shown in FIG. 8 .
  • Event Description of Event 1 OPC alarms and events client 800 calls IOPCEventServer::CreateEventSubscription.
  • the redirection manager creates redirection subscription object 800 that implements all of the OPC event subscription interfaces.
  • the redirection manager creates separate thread 802 and passes the CreateEventSubscription parameters as well as primary event server 118's IOPCEventServer interface as arguments to thread 802. 4
  • the redirection manager waits for one of two events, a request- complete event or a switchover event.
  • Separate thread 802 which is handling the create subscription request, forwards the call to one of the target OPC servers. Once the call succeeds, separate thread 802 sets the request- complete event and exits. 6
  • the redirection manager repeats steps 2-4 for each of the remaining target OPC servers. However, the OPC subscription is established as inactive on each of these remaining target OPC servers. 7
  • the redirection manager saves state information related to the CreateEventSubscription call as well as the OPC subscription interface pointers returned by the target OPC servers.
  • FIG. 9 shows how a redirection manager handles failure of the active target OPC server when the target servers support OPC alarms and events, according to the present invention.
  • the components involved in this scenario are OPC alarms and events client 101 , redirection event server (redirection manager) 102 , a redirection subscription 900 (which is part of data access and subscription state data 114 ), a thread 902 (created by redirection manager 102 ), a primary server subscription (primary OPC server) 118 , and a secondary server subscription (secondary OPC server) 128 .
  • FIG. 9 assumes some starting conditions.
  • the target OPC servers support OPC alarms and events.
  • OPC alarms and events client 101 has connected to the redirection manager.
  • OPC alarms and events client 101 is receiving OnEvent( ) calls from the redirection manager via the active target OPC event server.
  • the active target OPC event server fails.
  • Table 7 generally describes the specific events shown in FIG. 9 . Each event in Table 7 is implemented in example methods shown in FIG. 9 .
  • redirection manager 102 sets the switchover event which alerts functionality within the alarms and events module that a switchover is in progress.
  • 5 Event subscriptions within the target OPC event server are set to active from inactive.
  • 6 Redirection manger 102 issues a refresh request to each newly active subscription on behalf of OPC alarms and events client 101. This gives OPC alarms and events client 900 the opportunity to synchronize its view of currently active events or inactive but unacknowledged events with that of the target server. This also ensures that any events which may have occurred during the switchover are still presented to the client and not lost.
  • 7 Redirection manager 102 starts receiving OnEvent( ) calls from the new active target OPC event server as new events occur.
  • FIG. 10 shows how a redirection manager synchronizes an alternate target OPC server when it becomes available, according to the present invention.
  • the components involved in this scenario are node status change provider 112 , redirection event server (redirection manager) 102 , a redirection subscription 1000 (which is part of data access and subscription state data 114 ), a thread 1002 (created by redirection manager 102 ), and secondary event server (secondary OPC server) 128 .
  • FIG. 10 assumes some starting conditions.
  • the target OPC servers support OPC alarms and events.
  • the OPC client has connected to the redirection manager and is being serviced by the active target OPC event server.
  • An alternate target OPC event server that was previously not running, starts.
  • Table 8 generally describes the specific events shown in FIG. 10 . Each event in Table 8 is implemented in example methods shown in FIG. 10 .
  • the redirection manager receives notice from a status change provider that an alternate target OPC event server is now running. 2
  • the redirection manager connects to this alternate target OPC event server and notifies the alarms and events module that the new target is available.
  • the alarms and events module uses saved state information to add the OPC event subscriptions and apply subscription-specific filters and other settings to this alternate OPC event server. 4
  • the redirection manager marks this alternate target OPC server as available for a potential switchover.

Abstract

An OPC redirection manager maintains the information necessary for taking appropriate action when the target OPC server fails and for ensuring that no bad status is returned to the client. Any existing OPC client needing seamless failover between target OPC data access and/or alarm and event servers will connect to a uniquely configured instance of the redirection manager instead of connecting to the primary server. The client application continues to perform OPC related tasks as usual. Because each client connection is unique, the redirection manager itself is not a single point of failure. Each configured redirection manager instance monitors the health of the target server mode and the target server itself by subscribing to failure events.

Description

    CROSS REFERENCE
  • This application is a divisional application of U.S. patent application Ser. No. 10/403,704, filed on Mar. 31, 2003, which claims priority of U.S. Provisional Patent Application Ser. No. 60/392493, filed on Jun. 28, 2002, entitled “OPC Server Redirection Manager.”
  • BACKGROUND
  • 1. Field of the Invention
  • The present invention generally relates to an OPC server redirection manager, which is an intermediate OPC server that forwards all OPC calls made by clients to actual OPC servers that communicate with data sources. In particular, the OPC server redirection manager maintains the information necessary to take appropriate action when a target OPC server fails and ensures that no bad status is returned to a client.
  • 2. Description of the Related Art
  • OLE FOR PROCESS CONTROL® (OPC®) is an emerging industry standard that facilitates integration by allowing automation systems to share information and interoperate with other industrial automation, process control, and other business systems for plants or factories. (The letters O-P-C originally stood for Object Linking and Embedding (OLE) for Process Control, but OLE has been restructured from object-oriented to object-based and renamed ActiveX.) The OPC standard is a non-proprietary technical specification that is maintained by the OPC Foundation®.
  • In the past, each software or application developer needed to write a custom interface (or server/driver) to exchange data with hardware field devices. The OPC standard replaced this practice by providing a common interface that permits this work to be done once, and then easily reused by Human Machine Interface (HMI), Supervisory Control and Data Acquisition (SCADA) control and custom applications.
  • The OPC specification is based upon the Microsoft® OLE (now ActiveX), Component Object Model (COM), and Distributed Component Object Model (DCOM) technologies. OPC defines a standard set of interfaces, properties, and methods for use in process control, manufacturing, and automation applications. These applications include distributed control systems, programmable logic controllers, input/output (IO) systems, smart field devices, and other servers of real-time information. The ActiveX/COM technologies define how individual software components interact and share data. By using the Microsoft® Visual Basic object-oriented component, OLE Automation, OPC can provide office applications with plant floor data via local area networks (LANs), remote sites, or the Internet.
  • OPC provides many benefits to end users and hardware and software manufacturers, including open connectivity, high performance, and improved vendor productivity. OPC provides open connectivity giving users a choice among a wider variety of plant floor devices and client software, allowing better utilization of best-in-breed applications. Because OPC is an open standard, software and hardware manufacturers devote less time to connectivity issues and more time to application issues, eliminating significant duplicate effort. OPC fosters greater interoperability between automation and control applications, field devices, and business and office applications.
  • Some redirection systems provide inferior functionality to the redirection manager according to the present invention and they appear to have different architectures. One redirection system is implemented as a Microsoft Windows® service, whereas the redirection manager according to the present invention uses a private connection approach to limit the impact of failure. Redirection systems implement OPC data access, whereas the redirection manager according to the present invention has redirection servers that implement those as well as OPC alarms and events. Redirection systems appear to implement server/node health via a ping mechanism, whereas the redirection manager according to the present invention uses a monitoring approach with less network traffic overhead. Certain OPC servers synchronize the internal OPC server database for performance and consistency reasons. The redirection manager according to the present invention optionally provides this capability.
  • Other redirection systems provide a service to which all clients connect. If that service fails, then all connected clients are impacted. By contrast, clients using the redirection manager according to the present invention have a private connection. If the private connection fails, then only the connected client is impacted. Conventional redirection systems use a ping mechanism for detection. This is less efficient than the redirection manager according to the present invention, which uses notification providers to alert the redirection manager when target nodes or servers fail.
  • The present invention overcomes these problems by maintaining the information necessary for taking appropriate action when the target OPC server fails and for ensuring that no bad status is returned to the client. Any existing OPC client needing seamless failover between target OPC data access and/or alarm and event servers will connect to a uniquely configured instance of the redirection manager instead of connecting to the primary server. The client application continues to perform OPC related tasks as usual. Because each client connection is unique, the redirection manager itself is not a single point of failure. Each configured redirection manager instance monitors the health of the target server node and the target server itself by subscribing to failure events. Use of subscription rather than polling (via ping) reduces network traffic. The present invention also provides many additional advantages as described below.
  • SUMMARY OF THE INVENTION
  • One embodiment of the present invention is a redirection management method. In response to a first client connection request for a first OPC client, a first private connection is granted from the first OPC client to a first instance of an OPC redirection manager. In response to a second client connection request for a second OPC client, a second private connection is granted from the second OPC client to a second instance of the OPC redirection manager. According to one embodiment, even though the second private connection for the second OPC client is lost when the second instance of the OPC redirection manager fails, the first private connection for the first OPC client is maintained. A connection is made to a first target OPC server. Another connection is made to an OPC server status change provider for the first target OPC server. According to another embodiment, additional connections are made to at least one additional target OPC server, including a second target OPC server configured to backup the first target OPC server.
  • Upon receiving an active-server-failed event from the OPC server status change provider for the first target OPC server, a switchover to the second target OPC server is performed. Notice is received from the OPC server status change provider that the first target OPC server is now available and a connection is made to the first target OPC server.
  • Assuming no failure had occurred, an OPC add-group request is received from the first OPC client and it is forwarded to the first target OPC server to service. Upon receiving a request-complete event from the first target OPC server, a plurality of add-group interfaces associated with the OPC add-group request are implemented by creating at least one group. The OPC add-group request is forwarded to each of the additional target OPC servers to store the group(s) as inactive. Information is stored that is related to the OPC add-group request, including the group(s).
  • An OPC on-data-change request is received by the redirection manager from the first OPC client and a connection is established between the first target OPC server and a first sink object. The sink objects belong to the redirection manager. Another connection is established between the second target OPC server and a second sink object. Information related to the OPC on-data-change request, including the at least one group is stored. A first on-data-change request is provided to the first OPC client from the redirection manager following the redirection manager's receipt of the on-data-change request from the first target OPC server. Upon receiving an active-server-failed event from the OPC server status change provider for the first target OPC server, a switchover is performed to the second target OPC server. At least one group is activated on the second target OPC server and a second on-data-change request is provided to the first OPC client from the redirection manager following the redirection manager's receipt of the on-data-change request from the second target OPC server. Notice that the first target OPC server is now available is received from the OPC server status change provider, a connection is made to the first target OPC server and previously stored information is used to add the group(s) to the first target OPC server.
  • Another embodiment of the present invention is a method of redirection management. In response to an OPC create-event-subscription request from an OPC client, interfaces associated with the OPC create-event-subscription request are implemented. The OPC create-event-subscription request is forwarded to a primary target OPC server for service. It is also forwarded as inactive to at least one additional target OPC server, including a secondary target OPC server configured to backup the primary target OPC server. Information related to the OPC create-event-subscription request is stored, including state information.
  • A connection is made by the redirection manager to the primary target OPC server. Additional connections are made by the redirection manager to an OPC server status change provider for the primary target OPC server and to additional target OPC server(s). If it is determined that the primary target OPC server supports OPC alarms and events, an alarms-and-events module is loaded. At least one on-event request is provided to the OPC client from the primary target OPC server. Upon receiving an active-server-failed event from the OPC server status change provider for the primary target OPC server, a switchover to the secondary target OPC server is performed and the alarms-and-events module is notified of the switchover. A currently active event is synchronized with the secondary target OPC server to prevent loss of data and an OPC on-event request is provided to the OPC client from the secondary target OPC server. When notice from the OPC server status change provider is received that the primary target OPC server is now available, a connection is made to the primary target OPC server and it is established with the state information.
  • Anther embodiment of the present invention is an OPC redirection management system comprising a first OPC server, a second OPC server, and a first redirection manager. The first OPC server is capable of servicing an OPC request. The second OPC server is configured to backup the first OPC server. The first redirection manager is capable of forwarding an OPC request on behalf of a first OPC client to either the first OPC server or the second OPC server. The first OPC client is capable of establishing its own private connection with the first redirection manager. The first redirection manager is capable of connecting to the second OPC server upon failure of the first OPC server to provide seamless service to the first OPC client. The first redirection manager is capable of storing information associated with the OPC request for use upon failure of the first OPC server.
  • The OPC redirection management system may also comprise a third OPC server, a fourth OPC server, and a second redirection manager. The fourth OPC server is configured to backup the third OPC server. A second OPC client is capable of establishing its own private connection with the second redirection manager. The second redirection manager is capable of connecting to the fourth OPC server upon failure of the third OPC server to provide seamless service to the second OPC client. The first OPC server is capable of being configured to backup a third OPC server. The OPC request may be of type data access or alarm and events.
  • The OPC redirection management system may also comprise a primary server node, a secondary server node, and a client node. The primary server node comprises the first OPC server, a primary node status change provider, and a primary OPC status change provider. The secondary server node comprises the second OPC server, a secondary node status change provider, and a secondary OPC status change provider. The client node comprises the first OPC client, the first redirection manager, a client node status change provider, and a client OPC status change provider. The first redirection manager comprises data access and subscription state data and a switchover manager. The first OPC server comprises an item cache and a condition database. The first OPC client is a process control application. The first OPC server communicates with a device to service the OPC request so that the first OPC client receives information about the device as a result of the OPC request.
  • Another embodiment of the present invention is a machine-readable medium storing executable instructions for performing a method. In response to a first client connection request for a first OPC client, a first private connection is granted from the first OPC client to a first instance of an OPC redirection manager. In response to a second client connection request, a second private connection is granted from the second OPC client to a second instance of the OPC redirection manager. A connection is made to a node status change provider for the second OPC client. When the redirection manager fails and the private connection for the second OPC client is lost, the first private connection for the first OPC client is maintained. A connection is made to a first target OPC server. Another connection is made to an OPC server status change provider for the first target OPC server. Another connection is made to a second target OPC server configured to backup the first target OPC server. Upon receiving an active-server-failed event from the OPC server status change provider for the first target OPC server, a switchover to the second target OPC server is performed.
  • These and other features, aspects, and advantages of the present invention will become better understood with reference to the following drawings, description, and appended claims.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a block diagram of a single client connection for a redirection manager system architecture according to the present invention.
  • FIG. 2 is a block diagram of multiple client connections to multiple instances of a redirection manager according to the present invention.
  • FIG. 3 is a sequence diagram of how a client connection is made by a redirection manager, according to the present invention.
  • FIG. 4 is a sequence diagram of how a redirection manager maintains state information related to an OPC add-group request, according to the present invention.
  • FIG. 5 is a sequence diagram of how a redirection manager handles OPC on-data-change requests, according to the present invention.
  • FIG. 6 is a sequence diagram of how a redirection manager handles the failure of the active target OPC server, according to the present invention.
  • FIG. 7 is a sequence diagram of how a redirection manager synchronizes an alternate target OPC server when it becomes available, according to the present invention.
  • FIG. 8 is a sequence diagram of how a redirection manager maintains state information on behalf of a client for an OPC create-event subscription request, according to the present invention.
  • FIG. 9 is a sequence diagram of how a redirection manager handles failure of the active target OPC server when the target servers support OPC alarms and events, according to the present invention.
  • FIG. 10 is a sequence diagram of how a redirection manager synchronizes an alternate target OPC server when it becomes available, according to the present invention.
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
  • In the following detailed description, reference is made to the accompanying drawings. These drawings form a part of this specification and show by way of example specific preferred embodiments in which the present invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the present invention. Other embodiments may be used. Structural, logical, and electrical changes may be made without departing from the spirit and scope of the present invention. Therefore, the following detailed description is not to be taken in a limiting sense and the scope of the present invention is defined only by the appended claims.
  • FIG. 1 shows a single client connection for a redirection manager system architecture according to the present invention. Within a client node 100 is an OPC client 101 which is connected to a single instance of a redirection manager 102 that, in turn, communicates with components inside a primary OPC server node 104 and components inside a backup OPC server node 106. Components inside primary OPC server node 104 and backup OPC server node 106 communicate with a device 108.
  • OPC client 101 connects to redirection manager 102 instead of directly connecting to primary OPC server node 104. Redirection manager 102 is configured for OPC client 101 using a configuration utility. Once configuration is complete, OPC client 101 continues to perform OPC related tasks as usual. Each configured redirection manager 102 is registered so that it points to an installed executable. At the time of client connection, a new instance of redirection manager 102 is created. This new instance executes in a unique process address space. It is identifiable to OPC client 101 by a unique identification for status purposes. In addition to an instance of redirection manager 102, Client node 100 has an OPC server status change provider 110 and a node status change provider 112.
  • Redirection manager 102 is an intermediate OPC server that forwards OPC requests made by OPC client 101 to primary OPC server node 104 that communicates with device 108. Redirection manager 102 maintains the information necessary to take appropriate actions when primary OPC server node 104 fails and ensures that no bad status is returned to OPC client 101. Redirection manager 102 has data access and subscription state data 114 and a switchover manager 116 to change the active server.
  • Primary OPC server node 104 communicates with device 108 and other data sources that OPC client 101 wants access to reading and writing data and is configured to be a primary server for redirection manager 102. In addition, primary OPC server node 104 is configurable as a secondary server for a different redirection manager than redirection manager 102 (see FIG. 2). The active OPC server is either primary OPC server node 104 or the backup OPC server node 106 and is the server that is currently servicing the OPC requests for OPC client 101 through redirection manager 102. Primary OPC server node 104 has an OPC server 118 with an item cache 120 and a condition database 122, a node status change provider 124, and an OPC server status change provider 126. Current data values are stored in item cache 120 and alarm states are stored in condition database 122.
  • Secondary or backup OPC server node 106 is the active OPC server when primary OPC server node 104 fails. In addition, backup OPC server node 106 is configurable as a primary server for a different redirection manager (see FIG. 2). Like primary OPC server node 104, backup OPC server node 106 has an OPC server 128 with an item cache 130 and a condition database 132, a node status change provider 134, and an OPC server status change provider 136.
  • Device 108 is a data source that is capable of servicing data access or IO requests as well as pushing alarms and events to OPC servers.
  • Redirection manager 102 according to the present invention is an OPC server that may support OPC Data Access 2.05 and 1.0A, OPC Alarms and Events 1.0 and OPC Security 1.0 interfaces as well as other OPC data access, OPC alarms and events and other OPC interfaces known presently or in the future. It is not a true OPC server in the sense that it does not communicate with real data sources, and instead is used to forward client calls to and from the actual OPC servers and to maintain state information allowing it to switch to a backup server when the primary server fails. Redirection manager 102 is implemented as an out-of-process .exe server (see FIG. 2). There is one .exe server per client connection to redirection manager 102. Those OPC requests that alter the state of the client connection but do not request IO are made to both the primary and backup servers, e.g., primary OPC server node 104 and backup OPC server node 106. IO requests are only made to primary OPC server 118. This puts the secondary in a hot-standby mode. In the event that primary OPC server 118 fails, redirection manager 102 activates the backup OPC server 128 and issues IO requests. Since OPC client 101 is unaware of the switch, it can significantly reduce error handling scenarios in OPC client 101 itself. Redirection manager 102 supports a cold-standby redundancy scheme as well. In this case, state is not replicated to backup OPC server 128. All state is set up at switchover time.
  • Redirection manager 102 also supports optional browsing interfaces. Redirection manager 102 forwards all the calls to either primary OPC server 118 or backup OPC server 128 or to all servers, while maintaining state information related to the calls for redirection purposes. The server that is currently servicing IO requests is referred to as the active server. In the event, the currently active server fails, redirection manager 102, as part of the switchover process, sets one of the backup servers to be the new active server.
  • Redirection manager 102 saves the state of the requests of OPC client 101 to redirect them or reissue them to a backup server when the primary server fails and also for various other scenarios. One approach is to categorize the client calls as IO and non-IO requests. The classification is made as follows. Those OPC requests that alter the state of the client connection but do not request IO are classified as non-IO requests, such as add-group, add-item, create-event-subscription, and set-filter-calls. Client IO calls are classified as IO requests, such as read, write, and ack-condition.
  • Persisting state of these calls is handled differently. Non-IO calls are maintained as long as OPC client 101 is running. One scenario where this information is needed is to sync-up a backup server that comes up after OPC client 101 has made add-group and add-items calls. The IO call information is persisted only until either the primary or backup server services the call. Once the call successfully completes, the IO information about the call is deleted.
  • Redirection manager 102 examines all the errors returned by the active server. Those errors which indicate a failure along the communication path between redirection manager 102 and the active server will cause redirection manager 102 to initiate a switchover. Those errors which do not indicate a failure along this communication path are forwarded to OPC client 102. OPC client 101 handles these errors the same way as it would if connected to the servers directly. Redirection manager 102 saves the state of all non-IO calls and hence can attempt the re-sync. All OPC calls categorized as non-IO are sent to both the primary and backup servers. The call has to succeed on the active server before the request is issued to the backup server. If the request fails on the backup, the error is logged but not returned to the client. At this point, the backup server is considered out of sync with the active server. The Redirection Manager attempts to re-sync the backup on a switchover. If the re-sync fails, the Redirection Manager does not switchover to the secondary.
  • During initialization, redirection manager 102 establishes a connection with the target servers, e.g., primary OPC server node 104 and backup OPC server node 106. Also, redirection manager 102 establishes connections with status change providers, such as OPC server status change provider 110 to subscribe to events that may trigger switchover manager 116. For node failures, redirection manager 102 connects to node status change provider 112. Node status change provider 112 communicates with peer node status change providers, such as node status change provider 106 to monitor the health of other nodes. Similarly, redirection manager 102 establishes a remote subscription connection to the OPC server status change providers, such as OPC server status change providers 126 and 136 on each target OPC server node, such as primary OPC server node 104 and backup OPC server node 106. Changes in server state are forwarded to redirection manager 102. If primary OPC server node 104's OPC server 118 transitions from a running state, then redirection manager 102 initiates a switchover to backup OPC server node 106 through switchover manager 116. If backup OPC server 128 transitions from the running state and becomes unavailable, subsequent transition to running results in synchronization.
  • Redirection manager 102 reports its status to OPC server status change provider 110. This enables integration with a hosting system status display component. The health of the connection from OPC client 101 to redirection manager 102 as well as the health of target OPC servers 118, 128 are exposed to the user.
  • OPC client 101 makes OPC requests to redirection server 102 as if it were directly connected to target OPC servers 118, 128. For each client group creation, redirection manager 102 forwards the request to the active and backup OPC servers 118, 128. Requests to activate the group collection are only performed on the active OPC server. Group data collection is inactive on the backup servers. Similarly, requests to activate event subscriptions are only performed on the active OPC server. Event subscriptions remain inactive on the backup OPC servers.
  • Requests to collect particular data sources may require conversion to a name within the namespace of device 108. If device 108 is remotely located, this name conversion operation may be costly in terms of performance. Therefore, redirection manager 102 is optimized to synchronize the device namespace handles without requesting multiple conversion operations for device 108.
  • Redirection manager 102 makes all the OPC calls or requests to primary OPC server 118 and backup OPC server 128 on separate threads. This allows OPC calls that fail due to server failure to be reissued to backup OPC server 128. After creating the thread, primary OPC server 118 waits on a request-complete event signaled by the thread issuing the call to backup OPC server 128. Once the event is signaled, primary OPC server 118 returns the results back to OPC client 101. Redirection manager 102 also waits on an active-server-failed event to be signaled when the active server fails. If this event is signaled, redirection manager 102 looks for an alternate server and reissues the failed request to that server. An internal timeout period is added to the waits to take care of those scenarios that notification providers or redirection manager 102 itself may not handle. In this way, if either of the above two events are not signaled, redirection manager 102 is not left hanging forever. The timeout period is provided as a configuration option.
  • There is an approach followed for callbacks both for data access as well as alarm and events. Redirection manager 102 implements all the callbacks of OPC client 101. It intercepts the callbacks of the active OPC server, holds all the sink interfaces of OPC client 101, and issues the callbacks to OPC client 101. This ensures that no bad values are returned to OPC client 101 during switchover. For data access, no asynchronous read or write calls are missed when the active server fails before callback can happen. Redirection manager 102 keeps track of whether the callbacks were completed, and reissues the call again to the backups when the switchover happens. Redirection manager 102 callback forwards the event to the client on-event callback or forwards the data request to the on-data-change callback. When the active server fails, redirection manager 102 activates the client subscriptions or data access groups on the secondary server. Redirection manager 102 refreshes event subscriptions and starts processing callbacks from the secondary server.
  • FIG. 2 is a block diagram of multiple client connections to multiple instances of a redirection manager according to the present invention. Client node 200 has an installed redirection manager binary executable 202. A configuration tool creates entries for registered redirection managers in a registration table 204 that resides in the Microsoft Windows( registry. Configuring includes identifying the target OPC servers. When a client, such as client one 206, connects to a registered redirection manager, such as redirection manager one 208, a new instance of the installed redirection manager binary executable 202 is created. Each instance executes in its own process space, is independent of any other running instance, and is visible to the native operating system. Clients connect to various multiple registered redirection managers, such as redirection manager one, two, three, and four. If the first instance of redirection manager one 208 fails, then only client one 206 is effected, because client three 216 has its own private connection to the second instance of redirection manager one 218. The registered redirection managers, in turn, communicate with multiple OPC servers, such as OPC server 210. Multiple OPC servers reside in server nodes, such as server node 212. Multiple server nodes reside in clusters, such as OPC server node cluster 214. There can be any number of clients, redirection managers, OPC servers, server nodes, and OPC server node clusters.
  • FIGS. 3-10 are sequence diagrams for a number of scenarios of how a redirection manager operates according to the present invention. Although the redirection manager is designed to accommodate two or more target OPC servers, the sequence diagrams use only two target OPC servers (i.e., primary and secondary). This is for illustrative purposes only, to make the sequence diagrams simpler and more easily understood. The first target to which the redirection manager successfully connects is referred to as the active server. The remaining target OPC servers are referred to as alternates. The redirection manager according to the present invention supports specifications from both the OPC data access and OPC alarms and events initiatives. In the following scenarios, a particular initiative may be mentioned, but the redirection manager according to the present invention is able to service both data access clients and alarms and events clients simultaneously.
  • Each table below for FIGS. 3-10 summarizes the specific events in the corresponding figure. However, there is not a one-to-one correspondence between the event numbers in the tables and the step numbers in FIGS. 3-10.
  • FIG. 3 shows how a client connection is made by a redirection manager, according to the present invention. Each of the components identified in the boxes along the top of FIG. 3 run in separate processes. These components are client 101, redirection manager 102, node status change provider 112, primary OPC server 118, primary server status change provider 126, secondary OPC server 128, and secondary server status change provider 136.
  • FIG. 3 assumes some starting conditions. The user or administrator has used a configuration tool to create a named instance of a redirection manager server. This instance includes the identification of target OPC servers. This information is stored by the configuration tool into a registry location known to the redirection manager runtime (see FIG. 2). All target OPC servers are available.
  • Table 1 generally describes the specific events shown in FIG. 3. Each event in Table 1 is implemented in example methods shown in FIG. 3.
    TABLE 1
    Client Connection
    Event Description of Event
    1 OPC client 101 connects to redirection manager 102 using
    standard COM connection mechanisms.
    2 Redirection manager 102, as a COM server, responds to the
    connection request by granting OPC client 101 its own private
    connection that results in a unique process. This is possible
    because redirection manager 102 establishes with COM that
    each instance of redirection manager is to execute in its own
    process. A second client to the same redirection manager 102
    gets its own process.
    3 Redirection manager 102 uses the Microsoft Windows ® registry
    to determine if the user/administrator has made the necessary
    configurations. (The user is expected to have used a separate
    configuration tool to define the target OPC servers.) Redirection
    manager
    102 connects to the target OPC servers, primary OPC
    server
    118 and secondary OPC server 128, using standard COM
    mechanisms.
    4 Redirection manager 102 supports the OPC data access initiative
    by default. If redirection manager 102 determines that the target
    OPC servers, primary OPC server 118 and secondary OPC
    server
    128, support the OPC alarms and events initiative,
    redirection manager 102 loads an alarms and events support
    module to expand its default capabilities. If it is determined that
    the target OPC servers do not support the OPC alarms and
    events initiative, redirection manager 102 favors conservation of
    system resources and thus does not load this module.
    5 Next, redirection manager 102 establishes connection with the
    status change providers. It connects to node status change
    provider
    112 on the local node. Then, it connects to primary
    server status change provider 126 and secondary server status
    change provider
    136 on the target OPC server nodes. These
    providers notify redirection manager 102 of status changes, such
    as failure for either the node or OPC servers.
  • FIG. 4 shows how a redirection manager maintains state information related to an OPC add-group request, according to the present invention. The components involved in this scenario are client 101, redirection manager 102, a redirection group 400 (in data access and subscription state data 114), a primary add-group thread 402 (created by redirection manager 102), a secondary add-group thread 404 (created by redirection manager 102), primary server 118, and secondary server 128. The scenario assumes that both primary server 118 and secondary server 128 are available.
  • FIG. 4 assumes some starting conditions. The administrator has made the necessary configuration using the redirection manager configuration utility to register redirection manager 102. Also, the OPC client 101 made a connection to redirection manager 102.
  • Table 2 generally describes the specific events shown in FIG. 4. Each event in Table 2 is implemented in example methods shown in FIG. 4.
    TABLE 2
    OPC Data Access Scenario: AddGroup
    Event Description of Event
    1 OPC client 101 calls IOPCServer::AddGroup( ).
    2 Redirection manager 102 creates a separate thread,
    AddGroupThread, and passes the AddGroup parameters as well
    as primary server 118's IOPCServer interface as arguments to
    the thread. Redirection manager 102 now waits on two events,
    request-complete event and active-server-failed event. The
    primary reason for issuing the client request on a separate thread
    is to avoid lengthy COM/DCOM timeouts in the event the target
    server fails.
    3 The AddGroupThread forwards the AddGroup call to one of the
    target OPC servers, primary server 118. Once the call succeeds
    the thread sets the request-complete event and exits.
    4 On receiving the request-complete event, redirection manager
    102 creates redirection group object 400 that implements all the
    OPC group interfaces.
    5 Redirection manager 402 repeats steps 2 and 3 for each of the
    remaining target OPC servers. However, the OPC group is
    established as inactive on each of these remaining target OPC
    servers.
    6 Redirection manager 102 saves state information related to the
    AddGroup call as well as the OPC group interface pointers
    returned by the target OPC servers in the redirection group
    object
    400.
  • FIG. 5 shows how a redirection manager handles OPC on-data-change requests, according to the present invention. The components involved in this scenario are client 101, a redirection group 400 (which is part of data access and subscription state data 114), a redirection manager (RDM) primary sink 502, a redirection manager (RDM) secondary sink 504, a primary group 506 (which is part of primary OPC server 118), and a secondary group 508 (which is part of secondary OPC server 128). This scenario describes how redirection manager 102 handles OPC on-data-change requests and assumes that all the target OPC servers are available.
  • FIG. 5 assumes some starting conditions. The OPC client 101 has connected to the redirection manager and has added groups and items. The groups and items have been added to all the target OPC servers.
  • Table 3 generally describes the specific events shown in FIG. 5. Each event in Table 3 is implemented in example methods shown in FIG. 5.
    TABLE 3
    OPC Data Access Scenario: OnDataChange
    Event Description of Event
    1 OPC Client 101 creates a sink that implements the callback
    interface.
    2 OPC Client 101 establishes a connection between the redirection
    manager group object's connection point and its sink object by
    calling Advise.
    3 Redirection manager creates separate sink objects for each of
    the target OPC server connections.
    4 Redirection manager establishes a connection between each of
    the target OPC server's connection point and its sink objects by
    calling Advise.
    5 When the active server detects changes in the group data it calls
    the OnDataChange( ) method on the corresponding sink of the
    redirection manager.
    6 On receiving the callback, redirection manager forwards the data
    to the client's OnDataChange( ) method.
  • FIG. 6 shows how a redirection manager handles the failure of the active target OPC server, according to the present invention. The components involved in this scenario are OPC client 101, redirection group 400, redirection manager (RDM) primary sink 502, redirection manager (RDM) secondary sink 504, primary group 506, primary component status provider 126, and secondary group 508.
  • FIG. 6 assumes some starting conditions. OPC client 101 has connected to the redirection manager. OPC client 101 is receiving OnDataChange( ) calls from the redirection manager via the active target OPC server. The active target OPC server fails.
  • Table 4 generally describes the specific events shown in FIG. 6. Each event in Table 4 is implemented in example methods shown in FIG. 6.
    TABLE 4
    OPC Data Access Scenario: Active Target OPC Server Fails
    Event Description of Event
    1 The redirection manager connects to the status change providers
    and is subscribing for events.
    2 OPC Client 101 sets up callbacks and is receiving
    OnDatachange( ) calls.
    3 The status change provider on the node of the active target OPC
    server notifies the redirection manager about the OPC server
    failure.
    4 The redirection manager switches over to one of the remaining
    target OPC servers. This becomes the new active target OPC
    server. The redirection manager sets the appropriate groups on
    this target OPC server to active.
    5 The redirection manager starts receiving OnDataChange( ) calls
    from the new active target OPC server when the group data
    changes.
  • FIG. 7 shows how a redirection manager synchronizes an alternate target OPC server when it becomes available, according to the present invention. The components involved in this scenario are OPC client 101, redirection manager. 102, primary OPC server 118, primary server status change provider 126, secondary OPC server 128, and secondary server status change provider 136.
  • FIG. 7 assumes some starting conditions. OPC client 101 has connected to redirection manager 102 and is being serviced by the active target OPC server. An alternate target OPC server that was previously not running, starts.
  • Table 5 generally describes the specific events shown in FIG. 7. Each event in Table 5 is implemented in example methods shown in FIG. 7.
    TABLE 5
    OPC Data Access Scenario:
    Alternate Target OPC Server Becomes Available
    Event Description of Event
    1 Redirection manager 102 receives notices from an OPC server
    status change provider that an alternate target OPC server is
    now running.
    2 Redirection manager 102 connects to this alternate target OPC
    server and uses its state information to add the OPC groups and
    OPC items to this alternate target OPC server.
    3 Redirection manager 102 marks this alternate target OPC server
    as available for a potential switchover.
  • FIG. 8 shows how a redirection manager maintains state information on behalf of a client for an OPC create-event subscription request, according to the present invention. The components involved in this scenario are OPC alarms and events client 101, redirection event server (redirection manager) 102, a redirection subscription object 804 (which is part of data access and subscription state data 114), a separate thread 806 (created by redirection manager 102), primary event server 118, and secondary event server 128.
  • This scenario describes how the redirection manager maintains state information on behalf of an OPC alarm and events client. Specifically, this is shown for the state information related to an OPC CreateEventSubscription call. This scenario assumes that both the Primary and Secondary servers are available. A switchover event is used in lieu of an active-server-failed event, as in the OPC data access scenarios. Because the redirection manager's OPC alarms and events capabilities are contained within a separate module which is only loaded if alarms and events support is needed by OPC alarms and events client 800, the module itself does not monitor the availability or health of the target servers. Instead, the redirection manager's alarms and events module relies on those facilities contained within the main redirection manager. These main facilities detect a target server failure or service a request to manually switch to an alternate target server, but in either case the alarms and events module simply receives the more generic switchover event.
  • FIG. 8 assumes some starting conditions. Both primary and secondary servers are available. OPC alarms and events client 800 made a connection to the redirection manager. The redirection manager loaded the alarms and event support module, after detecting that the target OPC servers support OPC alarms and events. OPC alarms and events requests made by the client are being serviced by this module.
  • Table 6 generally describes the specific events shown in FIG. 8. Each event in Table 6 is implemented in example methods shown in FIG. 8.
    TABLE 6
    OPC Alarms and Events Scenario:
    Create Event Subscription
    Event Description of Event
    1 OPC alarms and events client 800 calls
    IOPCEventServer::CreateEventSubscription.
    2 The redirection manager creates redirection subscription object
    800 that implements all of the OPC event subscription interfaces.
    3 The redirection manager creates separate thread 802 and
    passes the CreateEventSubscription parameters as well as
    primary event server 118's IOPCEventServer interface as
    arguments to thread 802.
    4 The redirection manager waits for one of two events, a request-
    complete event or a switchover event. As is true for all
    redirection manager scenarios utilizing separate thread 802, the
    primary reason for issuing the request in this manner is to avoid
    lengthy COM/DCOM timeouts in the event that the target server
    fails.
    5 Separate thread 802, which is handling the create subscription
    request, forwards the call to one of the target OPC servers.
    Once the call succeeds, separate thread 802 sets the request-
    complete event and exits.
    6 The redirection manager repeats steps 2-4 for each of the
    remaining target OPC servers. However, the OPC subscription is
    established as inactive on each of these remaining target OPC
    servers.
    7 The redirection manager saves state information related to the
    CreateEventSubscription call as well as the OPC subscription
    interface pointers returned by the target OPC servers.
  • FIG. 9 shows how a redirection manager handles failure of the active target OPC server when the target servers support OPC alarms and events, according to the present invention. The components involved in this scenario are OPC alarms and events client 101, redirection event server (redirection manager) 102, a redirection subscription 900 (which is part of data access and subscription state data 114), a thread 902 (created by redirection manager 102), a primary server subscription (primary OPC server) 118, and a secondary server subscription (secondary OPC server) 128.
  • FIG. 9 assumes some starting conditions. The target OPC servers support OPC alarms and events. OPC alarms and events client 101 has connected to the redirection manager. OPC alarms and events client 101 is receiving OnEvent( ) calls from the redirection manager via the active target OPC event server. The active target OPC event server fails.
  • Table 7 generally describes the specific events shown in FIG. 9. Each event in Table 7 is implemented in example methods shown in FIG. 9.
    TABLE 7
    OPC Alarms and Events Scenario:
    Active Target OPC Server Fails
    Event Description of Event
    1 Redirection manager 102 connects to status change providers
    and is subscribing for events.
    2 The OPC alarms and events client 101 has set up subscription
    callbacks and is receiving OnEvent( ) calls.
    3 The status change provider on the node of the active target OPC
    event server notifies the redirection manager about the OPC
    server failure.
    4 Redirection manager 102 switches over to one of the remaining
    target OPC event servers and declares this to be the new active
    server. As part of its switchover activities, redirection manager
    102 sets the switchover event which alerts functionality within the
    alarms and events module that a switchover is in progress.
    5 Event subscriptions within the target OPC event server are set to
    active from inactive.
    6 Redirection manger 102 issues a refresh request to each newly
    active subscription on behalf of OPC alarms and events client
    101. This gives OPC alarms and events client 900 the
    opportunity to synchronize its view of currently active events or
    inactive but unacknowledged events with that of the target
    server. This also ensures that any events which may have
    occurred during the switchover are still presented to the client
    and not lost.
    7 Redirection manager 102 starts receiving OnEvent( ) calls from
    the new active target OPC event server as new events occur.
  • FIG. 10 shows how a redirection manager synchronizes an alternate target OPC server when it becomes available, according to the present invention. The components involved in this scenario are node status change provider 112, redirection event server (redirection manager) 102, a redirection subscription 1000 (which is part of data access and subscription state data 114), a thread 1002 (created by redirection manager 102), and secondary event server (secondary OPC server) 128.
  • FIG. 10 assumes some starting conditions. The target OPC servers support OPC alarms and events. The OPC client has connected to the redirection manager and is being serviced by the active target OPC event server. An alternate target OPC event server that was previously not running, starts.
  • Table 8 generally describes the specific events shown in FIG. 10. Each event in Table 8 is implemented in example methods shown in FIG. 10.
    TABLE 8
    OPC Alarms and Events Scenario:
    Alternate Target OPC Server Becomes Available
    Event Description of Event
    1 The redirection manager receives notice from a status change
    provider that an alternate target OPC event server is now
    running.
    2 The redirection manager connects to this alternate target OPC
    event server and notifies the alarms and events module that the
    new target is available.
    3 The alarms and events module uses saved state information to
    add the OPC event subscriptions and apply subscription-specific
    filters and other settings to this alternate OPC event server.
    4 The redirection manager marks this alternate target OPC server
    as available for a potential switchover.
  • It is to be understood that the above description is intended to be illustrative and not restrictive. Many other embodiments will be apparent to those of skill in the art upon reviewing the above description, such as adaptations of the present invention to revisions to the OPC specification or including the present invention in a larger system so that some components named clients are servers or vice-versa. The present invention has applicability to fields outside process control and industrial automation. Therefore, the scope of the present invention should be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled.

Claims (11)

1. An OPC redirection management system, comprising:
a first OPC server capable of servicing an OPC request;
a second OPC server configured to backup said first OPC server; and
a first redirection manager capable of forwarding an OPC request on behalf of a first OPC client to either said first OPC server or said second OPC server;
wherein said first OPC client is capable of establishing its own private connection with said first redirection manager; and
wherein said first redirection manager is capable of connecting to said second OPC server upon failure of said first OPC server to provide seamless service to said first OPC client.
2. The system according to claim 1, wherein said first redirection manager is capable of storing information associated with said OPC request for use upon failure of said first OPC server.
3. The system according to claim 1, further comprising:
a third OPC server;
a fourth OPC server configured to backup said third OPC server; and
a second redirection manager;
wherein a second OPC client is capable of establishing its own private connection with said second redirection manager; and
wherein said second redirection manager is capable of connecting to said fourth OPC server upon failure of said third OPC server to provide seamless service to said second OPC client.
4. The system according to claim 1, wherein said first OPC server is capable of being configured to backup a third OPC server.
5. The system according to claim 1, wherein said OPC request is of type data access.
6. The system according to claim 1, wherein said OPC request is of type alarm and events.
7. The system according to claim 1, further comprising:
a primary server node comprising said first OPC server, a primary node status change provider, and a primary OPC status change provider;
a secondary server node comprising said second OPC server, a secondary node status change provider, and a secondary OPC status change provider; and
a client node comprising said first OPC client, said first redirection manager, a client node status change provider, and a client OPC status change provider.
8. The system according to claim 7, wherein said first redirection manager comprises:
data access and subscription state data; and
a switchover manager.
9. The system according to claim 7, wherein said first OPC server comprises an item cache and a condition database.
10. The system according to claim 1, wherein said first OPC client is a process control application.
11. The system according to claim 1, wherein said first OPC server communicates with a device to service said OPC request so that said first OPC client receives information about said device as a result of said OPC request.
US11/786,510 2002-06-28 2007-04-12 OPC server redirection manager Abandoned US20070198724A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/786,510 US20070198724A1 (en) 2002-06-28 2007-04-12 OPC server redirection manager

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US39249302P 2002-06-28 2002-06-28
US10/403,704 US7496668B2 (en) 2002-06-28 2003-03-31 OPC server redirection manager
US11/786,510 US20070198724A1 (en) 2002-06-28 2007-04-12 OPC server redirection manager

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US10/403,704 Division US7496668B2 (en) 2002-06-28 2003-03-31 OPC server redirection manager

Publications (1)

Publication Number Publication Date
US20070198724A1 true US20070198724A1 (en) 2007-08-23

Family

ID=30003258

Family Applications (3)

Application Number Title Priority Date Filing Date
US10/403,704 Active 2025-07-16 US7496668B2 (en) 2002-06-28 2003-03-31 OPC server redirection manager
US11/786,508 Expired - Lifetime US7451215B2 (en) 2002-06-28 2007-04-12 OPC server redirection manager
US11/786,510 Abandoned US20070198724A1 (en) 2002-06-28 2007-04-12 OPC server redirection manager

Family Applications Before (2)

Application Number Title Priority Date Filing Date
US10/403,704 Active 2025-07-16 US7496668B2 (en) 2002-06-28 2003-03-31 OPC server redirection manager
US11/786,508 Expired - Lifetime US7451215B2 (en) 2002-06-28 2007-04-12 OPC server redirection manager

Country Status (7)

Country Link
US (3) US7496668B2 (en)
EP (1) EP1518385B1 (en)
JP (1) JP4342441B2 (en)
CN (1) CN1679294A (en)
AU (1) AU2003248788B2 (en)
CA (1) CA2490980A1 (en)
WO (1) WO2004004283A1 (en)

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040246944A1 (en) * 2001-10-08 2004-12-09 Ronald Lange System and method for accessing an appliance, especially an automation appliance comprising a standardised interface
US20050028024A1 (en) * 2003-07-29 2005-02-03 Yokogawa Electric Corporation Process data collection system
US20050198385A1 (en) * 2004-01-30 2005-09-08 Aust Brian S. System and method for generating a consistent user name-space on networked devices
US20060248310A1 (en) * 2005-04-29 2006-11-02 Microsoft Corporation System and method for monitoring interactions between application programs and data stores
US20060282830A1 (en) * 2005-06-13 2006-12-14 Microsoft Corporation Analysis of the impact of application programs on resources stored in data stores
US20080243634A1 (en) * 2008-06-10 2008-10-02 The Go Daddy Group, Inc. Providing website hosting overage protection by transference to an overflow server
US20080243536A1 (en) * 2008-06-10 2008-10-02 The Go Daddy Group, Inc. Providing website hosting overage protection by storage on an independent data server
US7587594B1 (en) * 2004-08-30 2009-09-08 Microsoft Corporation Dynamic out-of-process software components isolation for trustworthiness execution
US20100005336A1 (en) * 2006-05-26 2010-01-07 Carsten Jordan Method and Device for Exchanging Data on the Basis of the Opc Communications Protocol Between Redundant Process Automation Components
US20100042715A1 (en) * 2008-08-18 2010-02-18 Jeffrey Tai-Sang Tham Method and systems for redundant server automatic failover
US20100145480A1 (en) * 2008-12-08 2010-06-10 Kabushiki Kaisha Toshiba Information recording/reproducing apparatus and information recording/reproducing method
US20110022187A1 (en) * 2009-07-23 2011-01-27 Fisher-Rosemount Systems, Inc. Process control system with integrated external data sources
US8522147B2 (en) 2011-09-20 2013-08-27 Go Daddy Operating Company, LLC Methods for verifying person's identity through person's social circle using person's photograph
US8538065B2 (en) 2011-09-20 2013-09-17 Go Daddy Operating Company, LLC Systems for verifying person's identity through person's social circle using person's photograph
US8738605B2 (en) 2012-03-30 2014-05-27 Go Daddy Operating Company, LLC Systems for discovering sensitive information on computer networks
US8738604B2 (en) 2012-03-30 2014-05-27 Go Daddy Operating Company, LLC Methods for discovering sensitive information on computer networks
US9141789B1 (en) 2013-07-16 2015-09-22 Go Daddy Operating Company, LLC Mitigating denial of service attacks
US9141669B2 (en) 2013-01-22 2015-09-22 Go Daddy Operating Company, LLC Configuring an origin server content delivery using a pulled data list
US9160809B2 (en) 2012-11-26 2015-10-13 Go Daddy Operating Company, LLC DNS overriding-based methods of accelerating content delivery
US9286331B2 (en) 2010-05-06 2016-03-15 Go Daddy Operating Company, LLC Verifying and balancing server resources via stored usage data
US20160094644A1 (en) * 2014-09-26 2016-03-31 Red Hat, Inc. Process transfer between servers
US9384208B2 (en) 2013-01-22 2016-07-05 Go Daddy Operating Company, LLC Configuring a cached website file removal using a pulled data list
US9391854B2 (en) 2011-04-19 2016-07-12 Huawei Technologies Co., Ltd. Method and router for packet processing during server failure
US9438493B2 (en) 2013-01-31 2016-09-06 Go Daddy Operating Company, LLC Monitoring network entities via a central monitoring system
RU2676423C2 (en) * 2014-06-25 2018-12-28 Сименс Акциенгезелльшафт Method and device for implementing the concept of transactions in opc-ua through timeout mechanism
US20190342396A1 (en) * 2017-04-18 2019-11-07 Mitsubishi Electric Corporation Data server unit and communication system

Families Citing this family (182)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004102852A (en) * 2002-09-12 2004-04-02 Hitachi Ltd Hot standby computer system
US7860966B2 (en) * 2003-09-23 2010-12-28 American Power Conversion Corporation User interface provisioning
GB0324627D0 (en) * 2003-10-22 2003-11-26 Waterleaf Ltd Redundant gaming system
US7440553B2 (en) * 2004-02-04 2008-10-21 Samsung Electronics Co., Ltd. Apparatus and method for checkpointing a half-call model in redundant call application nodes
EP1591849A1 (en) * 2004-04-27 2005-11-02 Siemens Aktiengesellschaft Redundant automation system comprising a master and a stand-by automation device
US8321591B2 (en) * 2004-09-30 2012-11-27 Rockwell Automation Technologies, Inc. Directory structure in distributed data driven architecture environment
GB0519246D0 (en) 2005-09-21 2005-10-26 Ibm A method, apparatus and computer program for handling web server failure
WO2007061330A1 (en) * 2005-11-25 2007-05-31 Siemens Aktiengesellschaft Method and apparatus for reducing server workload in an automation system
JP4920391B2 (en) * 2006-01-06 2012-04-18 株式会社日立製作所 Computer system management method, management server, computer system and program
US8234384B2 (en) * 2006-11-13 2012-07-31 Jemmac Software Limited Computer systems and methods for process control environments
US7975024B2 (en) * 2007-02-14 2011-07-05 Yakov Nudler Virtual personal computer access over multiple network sites
WO2009042964A1 (en) * 2007-09-28 2009-04-02 Schweitzer Engineering Laboratories, Inc. Amplitude and phase comparators for line protection
US20090088990A1 (en) * 2007-09-30 2009-04-02 Schweitzer Iii Edmund O Synchronized phasor processor for a power system
US8135838B2 (en) 2008-04-08 2012-03-13 Geminare Incorporated System and method for providing data and application continuity in a computer system
US8386622B2 (en) * 2008-05-16 2013-02-26 Palo Alto Research Center Incorporated Method and apparatus for facilitating communication in a content centric network
US9456054B2 (en) 2008-05-16 2016-09-27 Palo Alto Research Center Incorporated Controlling the spread of interests and content in a content centric network
EP2141894A1 (en) * 2008-06-30 2010-01-06 Siemens Aktiengesellschaft Method for secure data transmission in an automation system encompassing several networked computer units, computer program and automation system
US8275825B2 (en) * 2009-06-03 2012-09-25 International Business Machines Corporation Thermal management using distributed computing systems
US8131847B2 (en) * 2009-08-12 2012-03-06 Cellco Partnership Mechanism to detect restricted access via internet hotspot
US8923293B2 (en) 2009-10-21 2014-12-30 Palo Alto Research Center Incorporated Adaptive multi-interface use for content networking
KR101109489B1 (en) 2010-10-27 2012-02-07 현대제철 주식회사 Apparatus for communicating between control system
CN102520687B (en) * 2011-12-12 2014-02-19 攀钢集团攀枝花钢钒有限公司 Object linking and embedding for process control (OPC)-based general interface system and its control method
DE102012003242A1 (en) 2012-02-20 2013-08-22 Phoenix Contact Gmbh & Co. Kg Method for fail-safe operation of a process control system with redundant control devices
EP2823617B1 (en) * 2012-05-31 2018-07-11 Siemens Aktiengesellschaft Communication between two clients via a server
US9037920B2 (en) * 2012-09-28 2015-05-19 Honeywell International Inc. Method for performing condition based data acquisition in a hierarchically distributed condition based maintenance system
US9280546B2 (en) 2012-10-31 2016-03-08 Palo Alto Research Center Incorporated System and method for accessing digital content using a location-independent name
US9400800B2 (en) 2012-11-19 2016-07-26 Palo Alto Research Center Incorporated Data transport by named content synchronization
US10430839B2 (en) 2012-12-12 2019-10-01 Cisco Technology, Inc. Distributed advertisement insertion in content-centric networks
US9978025B2 (en) 2013-03-20 2018-05-22 Cisco Technology, Inc. Ordered-element naming for name-based packet forwarding
CN103197654A (en) * 2013-04-17 2013-07-10 清华大学 Monitoring system of standard semiconductor equipment based on organic photo conductor (OPC)
CN103218751B (en) * 2013-04-25 2017-04-05 清华大学 The technical recipe DPS that quasiconductor based on XML is equipped
US9935791B2 (en) 2013-05-20 2018-04-03 Cisco Technology, Inc. Method and system for name resolution across heterogeneous architectures
US9185120B2 (en) 2013-05-23 2015-11-10 Palo Alto Research Center Incorporated Method and system for mitigating interest flooding attacks in content-centric networks
US9444722B2 (en) 2013-08-01 2016-09-13 Palo Alto Research Center Incorporated Method and apparatus for configuring routing paths in a custodian-based routing architecture
US9088558B2 (en) 2013-08-21 2015-07-21 Owl Computing Technologies, Inc. Secure one-way interface for OPC data transfer
US9407549B2 (en) 2013-10-29 2016-08-02 Palo Alto Research Center Incorporated System and method for hash-based forwarding of packets with hierarchically structured variable-length identifiers
US9282050B2 (en) 2013-10-30 2016-03-08 Palo Alto Research Center Incorporated System and method for minimum path MTU discovery in content centric networks
US9276840B2 (en) 2013-10-30 2016-03-01 Palo Alto Research Center Incorporated Interest messages with a payload for a named data network
US9401864B2 (en) 2013-10-31 2016-07-26 Palo Alto Research Center Incorporated Express header for packets with hierarchically structured variable-length identifiers
US9311377B2 (en) 2013-11-13 2016-04-12 Palo Alto Research Center Incorporated Method and apparatus for performing server handoff in a name-based content distribution system
US10129365B2 (en) 2013-11-13 2018-11-13 Cisco Technology, Inc. Method and apparatus for pre-fetching remote content based on static and dynamic recommendations
US10101801B2 (en) 2013-11-13 2018-10-16 Cisco Technology, Inc. Method and apparatus for prefetching content in a data stream
US10089655B2 (en) 2013-11-27 2018-10-02 Cisco Technology, Inc. Method and apparatus for scalable data broadcasting
US9503358B2 (en) 2013-12-05 2016-11-22 Palo Alto Research Center Incorporated Distance-based routing in an information-centric network
US9379979B2 (en) 2014-01-14 2016-06-28 Palo Alto Research Center Incorporated Method and apparatus for establishing a virtual interface for a set of mutual-listener devices
US10098051B2 (en) 2014-01-22 2018-10-09 Cisco Technology, Inc. Gateways and routing in software-defined manets
US10172068B2 (en) 2014-01-22 2019-01-01 Cisco Technology, Inc. Service-oriented routing in software-defined MANETs
US9374304B2 (en) 2014-01-24 2016-06-21 Palo Alto Research Center Incorporated End-to end route tracing over a named-data network
US9531679B2 (en) 2014-02-06 2016-12-27 Palo Alto Research Center Incorporated Content-based transport security for distributed producers
US9954678B2 (en) 2014-02-06 2018-04-24 Cisco Technology, Inc. Content-based transport security
US9678998B2 (en) 2014-02-28 2017-06-13 Cisco Technology, Inc. Content name resolution for information centric networking
US10089651B2 (en) 2014-03-03 2018-10-02 Cisco Technology, Inc. Method and apparatus for streaming advertisements in a scalable data broadcasting system
US9836540B2 (en) 2014-03-04 2017-12-05 Cisco Technology, Inc. System and method for direct storage access in a content-centric network
US9473405B2 (en) 2014-03-10 2016-10-18 Palo Alto Research Center Incorporated Concurrent hashes and sub-hashes on data streams
US9626413B2 (en) 2014-03-10 2017-04-18 Cisco Systems, Inc. System and method for ranking content popularity in a content-centric network
US9391896B2 (en) 2014-03-10 2016-07-12 Palo Alto Research Center Incorporated System and method for packet forwarding using a conjunctive normal form strategy in a content-centric network
US9407432B2 (en) 2014-03-19 2016-08-02 Palo Alto Research Center Incorporated System and method for efficient and secure distribution of digital content
US9916601B2 (en) 2014-03-21 2018-03-13 Cisco Technology, Inc. Marketplace for presenting advertisements in a scalable data broadcasting system
US9363179B2 (en) 2014-03-26 2016-06-07 Palo Alto Research Center Incorporated Multi-publisher routing protocol for named data networks
US9363086B2 (en) 2014-03-31 2016-06-07 Palo Alto Research Center Incorporated Aggregate signing of data in content centric networking
US9716622B2 (en) 2014-04-01 2017-07-25 Cisco Technology, Inc. System and method for dynamic name configuration in content-centric networks
US9473576B2 (en) 2014-04-07 2016-10-18 Palo Alto Research Center Incorporated Service discovery using collection synchronization with exact names
US10075521B2 (en) 2014-04-07 2018-09-11 Cisco Technology, Inc. Collection synchronization using equality matched network names
US9390289B2 (en) 2014-04-07 2016-07-12 Palo Alto Research Center Incorporated Secure collection synchronization using matched network names
US9451032B2 (en) 2014-04-10 2016-09-20 Palo Alto Research Center Incorporated System and method for simple service discovery in content-centric networks
US9203885B2 (en) 2014-04-28 2015-12-01 Palo Alto Research Center Incorporated Method and apparatus for exchanging bidirectional streams over a content centric network
US9992281B2 (en) 2014-05-01 2018-06-05 Cisco Technology, Inc. Accountable content stores for information centric networks
US9609014B2 (en) 2014-05-22 2017-03-28 Cisco Systems, Inc. Method and apparatus for preventing insertion of malicious content at a named data network router
US9455835B2 (en) 2014-05-23 2016-09-27 Palo Alto Research Center Incorporated System and method for circular link resolution with hash-based names in content-centric networks
US9276751B2 (en) 2014-05-28 2016-03-01 Palo Alto Research Center Incorporated System and method for circular link resolution with computable hash-based names in content-centric networks
US9516144B2 (en) 2014-06-19 2016-12-06 Palo Alto Research Center Incorporated Cut-through forwarding of CCNx message fragments with IP encapsulation
US9537719B2 (en) 2014-06-19 2017-01-03 Palo Alto Research Center Incorporated Method and apparatus for deploying a minimal-cost CCN topology
US9467377B2 (en) 2014-06-19 2016-10-11 Palo Alto Research Center Incorporated Associating consumer states with interests in a content-centric network
US9426113B2 (en) 2014-06-30 2016-08-23 Palo Alto Research Center Incorporated System and method for managing devices over a content centric network
US9699198B2 (en) 2014-07-07 2017-07-04 Cisco Technology, Inc. System and method for parallel secure content bootstrapping in content-centric networks
US9959156B2 (en) 2014-07-17 2018-05-01 Cisco Technology, Inc. Interest return control message
US9621354B2 (en) 2014-07-17 2017-04-11 Cisco Systems, Inc. Reconstructable content objects
US9729616B2 (en) 2014-07-18 2017-08-08 Cisco Technology, Inc. Reputation-based strategy for forwarding and responding to interests over a content centric network
US9590887B2 (en) 2014-07-18 2017-03-07 Cisco Systems, Inc. Method and system for keeping interest alive in a content centric network
US9535968B2 (en) 2014-07-21 2017-01-03 Palo Alto Research Center Incorporated System for distributing nameless objects using self-certifying names
US9882964B2 (en) 2014-08-08 2018-01-30 Cisco Technology, Inc. Explicit strategy feedback in name-based forwarding
US9503365B2 (en) 2014-08-11 2016-11-22 Palo Alto Research Center Incorporated Reputation-based instruction processing over an information centric network
US9729662B2 (en) 2014-08-11 2017-08-08 Cisco Technology, Inc. Probabilistic lazy-forwarding technique without validation in a content centric network
US9391777B2 (en) 2014-08-15 2016-07-12 Palo Alto Research Center Incorporated System and method for performing key resolution over a content centric network
US9800637B2 (en) 2014-08-19 2017-10-24 Cisco Technology, Inc. System and method for all-in-one content stream in content-centric networks
US9467492B2 (en) 2014-08-19 2016-10-11 Palo Alto Research Center Incorporated System and method for reconstructable all-in-one content stream
US9497282B2 (en) 2014-08-27 2016-11-15 Palo Alto Research Center Incorporated Network coding for content-centric network
US10204013B2 (en) 2014-09-03 2019-02-12 Cisco Technology, Inc. System and method for maintaining a distributed and fault-tolerant state over an information centric network
US9553812B2 (en) 2014-09-09 2017-01-24 Palo Alto Research Center Incorporated Interest keep alives at intermediate routers in a CCN
US10069933B2 (en) 2014-10-23 2018-09-04 Cisco Technology, Inc. System and method for creating virtual interfaces based on network characteristics
US9536059B2 (en) 2014-12-15 2017-01-03 Palo Alto Research Center Incorporated Method and system for verifying renamed content using manifests in a content centric network
US9590948B2 (en) 2014-12-15 2017-03-07 Cisco Systems, Inc. CCN routing using hardware-assisted hash tables
US10237189B2 (en) 2014-12-16 2019-03-19 Cisco Technology, Inc. System and method for distance-based interest forwarding
US9846881B2 (en) 2014-12-19 2017-12-19 Palo Alto Research Center Incorporated Frugal user engagement help systems
US10003520B2 (en) 2014-12-22 2018-06-19 Cisco Technology, Inc. System and method for efficient name-based content routing using link-state information in information-centric networks
US9473475B2 (en) 2014-12-22 2016-10-18 Palo Alto Research Center Incorporated Low-cost authenticated signing delegation in content centric networking
US9660825B2 (en) 2014-12-24 2017-05-23 Cisco Technology, Inc. System and method for multi-source multicasting in content-centric networks
US9954795B2 (en) 2015-01-12 2018-04-24 Cisco Technology, Inc. Resource allocation using CCN manifests
US9946743B2 (en) 2015-01-12 2018-04-17 Cisco Technology, Inc. Order encoded manifests in a content centric network
US9602596B2 (en) 2015-01-12 2017-03-21 Cisco Systems, Inc. Peer-to-peer sharing in a content centric network
US9832291B2 (en) 2015-01-12 2017-11-28 Cisco Technology, Inc. Auto-configurable transport stack
US9916457B2 (en) 2015-01-12 2018-03-13 Cisco Technology, Inc. Decoupled name security binding for CCN objects
US9462006B2 (en) 2015-01-21 2016-10-04 Palo Alto Research Center Incorporated Network-layer application-specific trust model
US9552493B2 (en) 2015-02-03 2017-01-24 Palo Alto Research Center Incorporated Access control framework for information centric networking
US10333840B2 (en) 2015-02-06 2019-06-25 Cisco Technology, Inc. System and method for on-demand content exchange with adaptive naming in information-centric networks
US10075401B2 (en) 2015-03-18 2018-09-11 Cisco Technology, Inc. Pending interest table behavior
US10116605B2 (en) 2015-06-22 2018-10-30 Cisco Technology, Inc. Transport stack name scheme and identity management
US10075402B2 (en) 2015-06-24 2018-09-11 Cisco Technology, Inc. Flexible command and control in content centric networks
US20170013064A1 (en) * 2015-07-10 2017-01-12 Bos Solutions Automated opc connectivity
US10701038B2 (en) 2015-07-27 2020-06-30 Cisco Technology, Inc. Content negotiation in a content centric network
US9986034B2 (en) 2015-08-03 2018-05-29 Cisco Technology, Inc. Transferring state in content centric network stacks
US10610144B2 (en) 2015-08-19 2020-04-07 Palo Alto Research Center Incorporated Interactive remote patient monitoring and condition management intervention system
US9832123B2 (en) 2015-09-11 2017-11-28 Cisco Technology, Inc. Network named fragments in a content centric network
US10355999B2 (en) 2015-09-23 2019-07-16 Cisco Technology, Inc. Flow control with network named fragments
US10313227B2 (en) 2015-09-24 2019-06-04 Cisco Technology, Inc. System and method for eliminating undetected interest looping in information-centric networks
US9977809B2 (en) 2015-09-24 2018-05-22 Cisco Technology, Inc. Information and data framework in a content centric network
US10454820B2 (en) 2015-09-29 2019-10-22 Cisco Technology, Inc. System and method for stateless information-centric networking
US10263965B2 (en) 2015-10-16 2019-04-16 Cisco Technology, Inc. Encrypted CCNx
US9794238B2 (en) 2015-10-29 2017-10-17 Cisco Technology, Inc. System for key exchange in a content centric network
US9807205B2 (en) 2015-11-02 2017-10-31 Cisco Technology, Inc. Header compression for CCN messages using dictionary
US10009446B2 (en) 2015-11-02 2018-06-26 Cisco Technology, Inc. Header compression for CCN messages using dictionary learning
US10021222B2 (en) 2015-11-04 2018-07-10 Cisco Technology, Inc. Bit-aligned header compression for CCN messages using dictionary
US10097521B2 (en) 2015-11-20 2018-10-09 Cisco Technology, Inc. Transparent encryption in a content centric network
US9912776B2 (en) 2015-12-02 2018-03-06 Cisco Technology, Inc. Explicit content deletion commands in a content centric network
US10097346B2 (en) 2015-12-09 2018-10-09 Cisco Technology, Inc. Key catalogs in a content centric network
US10078062B2 (en) 2015-12-15 2018-09-18 Palo Alto Research Center Incorporated Device health estimation by combining contextual information with sensor data
CN105630613B (en) * 2015-12-23 2019-01-01 杭州真鹏科技有限公司 A kind of integrated system and method for big quantity measured signal
CN105607957B (en) * 2015-12-23 2019-01-25 杭州真鹏科技有限公司 A kind of data acquisition analysis system based on OPC DA
US10257271B2 (en) 2016-01-11 2019-04-09 Cisco Technology, Inc. Chandra-Toueg consensus in a content centric network
US9949301B2 (en) 2016-01-20 2018-04-17 Palo Alto Research Center Incorporated Methods for fast, secure and privacy-friendly internet connection discovery in wireless networks
US10305864B2 (en) 2016-01-25 2019-05-28 Cisco Technology, Inc. Method and system for interest encryption in a content centric network
US10043016B2 (en) 2016-02-29 2018-08-07 Cisco Technology, Inc. Method and system for name encryption agreement in a content centric network
US10038633B2 (en) 2016-03-04 2018-07-31 Cisco Technology, Inc. Protocol to query for historical network information in a content centric network
US10051071B2 (en) 2016-03-04 2018-08-14 Cisco Technology, Inc. Method and system for collecting historical network information in a content centric network
US10003507B2 (en) 2016-03-04 2018-06-19 Cisco Technology, Inc. Transport session state protocol
US10742596B2 (en) 2016-03-04 2020-08-11 Cisco Technology, Inc. Method and system for reducing a collision probability of hash-based names using a publisher identifier
US9832116B2 (en) 2016-03-14 2017-11-28 Cisco Technology, Inc. Adjusting entries in a forwarding information base in a content centric network
US10212196B2 (en) 2016-03-16 2019-02-19 Cisco Technology, Inc. Interface discovery and authentication in a name-based network
US10067948B2 (en) 2016-03-18 2018-09-04 Cisco Technology, Inc. Data deduping in content centric networking manifests
US11436656B2 (en) 2016-03-18 2022-09-06 Palo Alto Research Center Incorporated System and method for a real-time egocentric collaborative filter on large datasets
US10091330B2 (en) 2016-03-23 2018-10-02 Cisco Technology, Inc. Interest scheduling by an information and data framework in a content centric network
US10033639B2 (en) 2016-03-25 2018-07-24 Cisco Technology, Inc. System and method for routing packets in a content centric network using anonymous datagrams
US10320760B2 (en) 2016-04-01 2019-06-11 Cisco Technology, Inc. Method and system for mutating and caching content in a content centric network
US9930146B2 (en) 2016-04-04 2018-03-27 Cisco Technology, Inc. System and method for compressing content centric networking messages
US10425503B2 (en) 2016-04-07 2019-09-24 Cisco Technology, Inc. Shared pending interest table in a content centric network
US10027578B2 (en) 2016-04-11 2018-07-17 Cisco Technology, Inc. Method and system for routable prefix queries in a content centric network
US10404450B2 (en) 2016-05-02 2019-09-03 Cisco Technology, Inc. Schematized access control in a content centric network
US10320675B2 (en) 2016-05-04 2019-06-11 Cisco Technology, Inc. System and method for routing packets in a stateless content centric network
US10547589B2 (en) 2016-05-09 2020-01-28 Cisco Technology, Inc. System for implementing a small computer systems interface protocol over a content centric network
KR102485385B1 (en) * 2016-05-10 2023-01-04 엘에스일렉트릭(주) Scada system
US10084764B2 (en) 2016-05-13 2018-09-25 Cisco Technology, Inc. System for a secure encryption proxy in a content centric network
US10063414B2 (en) 2016-05-13 2018-08-28 Cisco Technology, Inc. Updating a transport stack in a content centric network
US10103989B2 (en) 2016-06-13 2018-10-16 Cisco Technology, Inc. Content object return messages in a content centric network
US10305865B2 (en) 2016-06-21 2019-05-28 Cisco Technology, Inc. Permutation-based content encryption with manifests in a content centric network
US10148572B2 (en) 2016-06-27 2018-12-04 Cisco Technology, Inc. Method and system for interest groups in a content centric network
US10009266B2 (en) 2016-07-05 2018-06-26 Cisco Technology, Inc. Method and system for reference counted pending interest tables in a content centric network
US9992097B2 (en) 2016-07-11 2018-06-05 Cisco Technology, Inc. System and method for piggybacking routing information in interests in a content centric network
US10122624B2 (en) 2016-07-25 2018-11-06 Cisco Technology, Inc. System and method for ephemeral entries in a forwarding information base in a content centric network
US10069729B2 (en) 2016-08-08 2018-09-04 Cisco Technology, Inc. System and method for throttling traffic based on a forwarding information base in a content centric network
US10956412B2 (en) 2016-08-09 2021-03-23 Cisco Technology, Inc. Method and system for conjunctive normal form attribute matching in a content centric network
US10033642B2 (en) 2016-09-19 2018-07-24 Cisco Technology, Inc. System and method for making optimal routing decisions based on device-specific parameters in a content centric network
US10212248B2 (en) 2016-10-03 2019-02-19 Cisco Technology, Inc. Cache management on high availability routers in a content centric network
US10447805B2 (en) 2016-10-10 2019-10-15 Cisco Technology, Inc. Distributed consensus in a content centric network
CN106564053B (en) * 2016-10-14 2018-10-16 广州励丰文化科技股份有限公司 The mechanical arm console and method that a kind of multi-track is combined with remote media
CN106335044B (en) * 2016-10-14 2018-07-20 广州励丰文化科技股份有限公司 The mechanical arm console and method that the full-time pattern of multi-track is combined with local media
CN106363628A (en) * 2016-10-14 2017-02-01 广州励丰文化科技股份有限公司 Mechanical arm control console and method for combining multiple rails with local media
CN106363631B (en) * 2016-10-14 2018-09-04 广州励丰文化科技股份有限公司 A kind of mechanical arm console and method based on ultrasonic ranging
CN106363626B (en) * 2016-10-14 2018-09-04 广州励丰文化科技股份有限公司 A kind of mechanical arm console that human body infrared thermal imaging is combined with remote media and method
CN106335045B (en) * 2016-10-14 2018-07-20 广州励丰文化科技股份有限公司 The mechanical arm console and method that a kind of remote media is combined with speech detection
CN106363632B (en) * 2016-10-14 2018-09-11 广州励丰文化科技股份有限公司 A kind of mechanical arm console and method based on near-field communication detection
CN106346473B (en) * 2016-10-14 2018-09-04 广州励丰文化科技股份有限公司 A kind of mechanical arm console and method based on performance site speech detection
CN106363630B (en) * 2016-10-14 2018-09-11 广州励丰文化科技股份有限公司 The mechanical arm console and method that local media is combined with near-field communication detection
CN106335059B (en) * 2016-10-14 2018-09-04 广州励丰文化科技股份有限公司 The mechanical arm console and method that near-field communication detection is combined with remote media
CN106335043A (en) * 2016-10-14 2017-01-18 广州励丰文化科技股份有限公司 Mechanical arm control console and method based on human body infrared thermal imaging detection
CN106363627B (en) * 2016-10-14 2018-07-20 广州励丰文化科技股份有限公司 A kind of mechanical arm console and method based on pressure sensitive
CN106553194B (en) * 2016-10-14 2018-10-16 广州励丰文化科技股份有限公司 A kind of mechanical arm console that local media is combined with pressure sensitive and method
US10135948B2 (en) 2016-10-31 2018-11-20 Cisco Technology, Inc. System and method for process migration in a content centric network
US10243851B2 (en) 2016-11-21 2019-03-26 Cisco Technology, Inc. System and method for forwarder connection information in a content centric network
CN109474540B (en) * 2018-09-12 2022-06-10 奇安信科技集团股份有限公司 Method and device for identifying OPC (optical proximity correction) flow
EP3758333B1 (en) * 2019-06-25 2022-09-28 Schneider Electric Industries SAS Method for configuring an industrial automation system
CN111158329A (en) * 2020-01-15 2020-05-15 南通大学 Network configuration monitoring system based on OPC and MQTT
CN115002128B (en) * 2022-05-25 2023-06-06 上海哥瑞利软件股份有限公司 Control method for OPC client to realize main and standby reliability improvement

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020194377A1 (en) * 1999-11-18 2002-12-19 Gregory David Doolittle Method, system and program products for managing thread pools of a computing environment to avoid deadlock situations
US20040024891A1 (en) * 1998-10-16 2004-02-05 Russell L. Agrusa Process control

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2002251731A1 (en) * 2001-01-04 2002-07-16 Roy-G-Biv Corporation Systems and methods for transmitting motion control data
US6725104B2 (en) * 2001-09-21 2004-04-20 Siemens Aktiengesellschaft Method and apparatus for E-mail based communication with automated facilities and devices

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040024891A1 (en) * 1998-10-16 2004-02-05 Russell L. Agrusa Process control
US20020194377A1 (en) * 1999-11-18 2002-12-19 Gregory David Doolittle Method, system and program products for managing thread pools of a computing environment to avoid deadlock situations

Cited By (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040246944A1 (en) * 2001-10-08 2004-12-09 Ronald Lange System and method for accessing an appliance, especially an automation appliance comprising a standardised interface
US7689669B2 (en) * 2001-10-08 2010-03-30 Siemens Aktiengesellschaft System and method for accessing a process control automation device from a network client
US20050028024A1 (en) * 2003-07-29 2005-02-03 Yokogawa Electric Corporation Process data collection system
US7328372B2 (en) * 2003-07-29 2008-02-05 Yokogawa Electric Corporation Process data collection system which reduces communication load for accessing data
US20050198385A1 (en) * 2004-01-30 2005-09-08 Aust Brian S. System and method for generating a consistent user name-space on networked devices
US8108483B2 (en) * 2004-01-30 2012-01-31 Microsoft Corporation System and method for generating a consistent user namespace on networked devices
US7587594B1 (en) * 2004-08-30 2009-09-08 Microsoft Corporation Dynamic out-of-process software components isolation for trustworthiness execution
US7665098B2 (en) 2005-04-29 2010-02-16 Microsoft Corporation System and method for monitoring interactions between application programs and data stores
US20060248310A1 (en) * 2005-04-29 2006-11-02 Microsoft Corporation System and method for monitoring interactions between application programs and data stores
US20060282830A1 (en) * 2005-06-13 2006-12-14 Microsoft Corporation Analysis of the impact of application programs on resources stored in data stores
US20100005336A1 (en) * 2006-05-26 2010-01-07 Carsten Jordan Method and Device for Exchanging Data on the Basis of the Opc Communications Protocol Between Redundant Process Automation Components
US8132042B2 (en) * 2006-05-26 2012-03-06 Siemens Aktiengesellschaft Method and device for exchanging data on the basis of the OPC communications protocol between redundant process automation components
US20080243536A1 (en) * 2008-06-10 2008-10-02 The Go Daddy Group, Inc. Providing website hosting overage protection by storage on an independent data server
US20080243634A1 (en) * 2008-06-10 2008-10-02 The Go Daddy Group, Inc. Providing website hosting overage protection by transference to an overflow server
US7904345B2 (en) 2008-06-10 2011-03-08 The Go Daddy Group, Inc. Providing website hosting overage protection by transference to an overflow server
US20100042715A1 (en) * 2008-08-18 2010-02-18 Jeffrey Tai-Sang Tham Method and systems for redundant server automatic failover
US8700760B2 (en) 2008-08-18 2014-04-15 Ge Fanuc Intelligent Platforms, Inc. Method and systems for redundant server automatic failover
US20100145480A1 (en) * 2008-12-08 2010-06-10 Kabushiki Kaisha Toshiba Information recording/reproducing apparatus and information recording/reproducing method
US8155761B2 (en) 2009-07-23 2012-04-10 Fisher-Rosemount Systems, Inc. Process control system with integrated external data sources
US20110022187A1 (en) * 2009-07-23 2011-01-27 Fisher-Rosemount Systems, Inc. Process control system with integrated external data sources
US9286331B2 (en) 2010-05-06 2016-03-15 Go Daddy Operating Company, LLC Verifying and balancing server resources via stored usage data
US9391854B2 (en) 2011-04-19 2016-07-12 Huawei Technologies Co., Ltd. Method and router for packet processing during server failure
US8538065B2 (en) 2011-09-20 2013-09-17 Go Daddy Operating Company, LLC Systems for verifying person's identity through person's social circle using person's photograph
US8522147B2 (en) 2011-09-20 2013-08-27 Go Daddy Operating Company, LLC Methods for verifying person's identity through person's social circle using person's photograph
US8738604B2 (en) 2012-03-30 2014-05-27 Go Daddy Operating Company, LLC Methods for discovering sensitive information on computer networks
US8738605B2 (en) 2012-03-30 2014-05-27 Go Daddy Operating Company, LLC Systems for discovering sensitive information on computer networks
US9160809B2 (en) 2012-11-26 2015-10-13 Go Daddy Operating Company, LLC DNS overriding-based methods of accelerating content delivery
US9141669B2 (en) 2013-01-22 2015-09-22 Go Daddy Operating Company, LLC Configuring an origin server content delivery using a pulled data list
US9384208B2 (en) 2013-01-22 2016-07-05 Go Daddy Operating Company, LLC Configuring a cached website file removal using a pulled data list
US9438493B2 (en) 2013-01-31 2016-09-06 Go Daddy Operating Company, LLC Monitoring network entities via a central monitoring system
US9141789B1 (en) 2013-07-16 2015-09-22 Go Daddy Operating Company, LLC Mitigating denial of service attacks
RU2676423C2 (en) * 2014-06-25 2018-12-28 Сименс Акциенгезелльшафт Method and device for implementing the concept of transactions in opc-ua through timeout mechanism
US20160094644A1 (en) * 2014-09-26 2016-03-31 Red Hat, Inc. Process transfer between servers
US11146629B2 (en) * 2014-09-26 2021-10-12 Red Hat, Inc. Process transfer between servers
US20190342396A1 (en) * 2017-04-18 2019-11-07 Mitsubishi Electric Corporation Data server unit and communication system
US10805399B2 (en) * 2017-04-18 2020-10-13 Mitsubishi Electric Corporation Data server unit and communication system including master-slave management circuitry

Also Published As

Publication number Publication date
JP2005531855A (en) 2005-10-20
WO2004004283A1 (en) 2004-01-08
CN1679294A (en) 2005-10-05
US7496668B2 (en) 2009-02-24
JP4342441B2 (en) 2009-10-14
CA2490980A1 (en) 2004-01-08
AU2003248788A1 (en) 2004-01-19
US7451215B2 (en) 2008-11-11
AU2003248788B2 (en) 2007-08-09
EP1518385B1 (en) 2011-08-17
US20070198709A1 (en) 2007-08-23
US20040006624A1 (en) 2004-01-08
EP1518385A1 (en) 2005-03-30

Similar Documents

Publication Publication Date Title
US7496668B2 (en) OPC server redirection manager
US7076691B1 (en) Robust indication processing failure mode handling
US8091092B2 (en) Locally providing globally consistent information to communications layers
JP4721195B2 (en) Method for managing remotely accessible resources in a multi-node distributed data processing system
US8230056B2 (en) Enterprise management system
US7370223B2 (en) System and method for managing clusters containing multiple nodes
AU2002363958B2 (en) Real composite objects for providing high availability of resources on networked systems
US7143167B2 (en) Method and system for managing high-availability-aware components in a networked computer system
US20030005350A1 (en) Failover management system
US7146532B2 (en) Persistent session and data in transparently distributed objects
JP2005531864A (en) System event filtering and notification to OPC clients
WO1997049034A1 (en) Job taking-over system
CN100563233C (en) Fault-tolerance method during a kind of Common Object Request Broker Architecture is used
CN107888491A (en) HSB standby systems and the AC double hot standby methods based on two layers of networking VRRP agreements
JPH09305558A (en) Data base server for duplex system
JP2000057033A (en) Distributed exclusive control system
JPH1078939A (en) Transaction assurance method and system therefor
AU1953000A (en) A method of advising an object of the unavailability of other objects in a distributed object environment

Legal Events

Date Code Title Description
AS Assignment

Owner name: HONEYWELL INTERNATIONAL INC., NEW JERSEY

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HAWKINSON, ELLEN B.;FORTIN, TIMOTHY J.;VIDYASHANKAR, ANURADHA;REEL/FRAME:021399/0672

Effective date: 20030331

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION