| Foreword | p. v |
| Foreword | p. vii |
| Preface | p. ix |
| About the Authors | p. xiii |
| Acknowledgements | p. xv |
| Introduction | p. 1 |
| OPC Foundation | p. 1 |
| Classic OPC | p. 3 |
| OPC Data Access | p. 4 |
| OPC Alarm and Events | p. 5 |
| OPC Historical Data Access | p. 6 |
| Other OPC Interface Standards | p. 6 |
| OPC XML-DA | p. 7 |
| Motivation for OPC UA | p. 8 |
| OPC UA Overview | p. 10 |
| OPC UA Specifications | p. 11 |
| OPC UA Software Layers | p. 13 |
| Evolution Not Revolution | p. 15 |
| Summary | p. 16 |
| Key Messages | p. 16 |
| Where to Find More Information? | p. 17 |
| What's Next? | p. 17 |
| Information Modeling: Concepts | p. 19 |
| Why Information Modeling? | p. 19 |
| Nodes and References | p. 22 |
| Reference Types | p. 25 |
| Objects, Variables and Methods | p. 30 |
| Types for Objects and Variables | p. 36 |
| Simple Object Types | p. 37 |
| Simple Variable Types | p. 39 |
| Complex Object Types | p. 42 |
| Instance Declarations | p. 45 |
| Complex Variable Types | p. 48 |
| Modelling Rules | p. 48 |
| Subtyping of Complex Types | p. 54 |
| Data Variables and Properties | p. 58 |
| Model Parent for Objects, Variables and Methods | p. 60 |
| Data Types | p. 61 |
| Data Type Node Class | p. 62 |
| Built-in and Simple Data Types | p. 63 |
| Enumeration Data Types | p. 63 |
| Structured Data Types | p. 64 |
| Specific Built-in Data Types | p. 68 |
| Summary on Data Types | p. 71 |
| Views | p. 71 |
| Events | p. 74 |
| Historical Access | p. 77 |
| Historical Data | p. 77 |
| Historical Events | p. 78 |
| Historical Address Space | p. 79 |
| Address Space Model and Information Models | p. 81 |
| Summary | p. 83 |
| Key Messages | p. 83 |
| Where to Find More Information? | p. 84 |
| What's Next? | p. 84 |
| Information Modeling: Example and Best Practice | p. 85 |
| Overview | p. 85 |
| Example | p. 85 |
| Application Scenario | p. 85 |
| Simple Scenario - Similar to Classic OPC | p. 87 |
| Advanced Scenario - Providing Full Power of OPC UA | p. 88 |
| Best Practices | p. 94 |
| Structuring with Objects, Reference Types and Views | p. 95 |
| Type Definitions (Object Types and Variable Types) | p. 96 |
| Providing Complex Data Structures | p. 100 |
| Providing User-Defined Data Types | p. 102 |
| Properties | p. 102 |
| Methods | p. 103 |
| Modelling Rules | p. 103 |
| Proxy Objects (Properties on References) | p. 104 |
| Summary | p. 105 |
| Key Messages | p. 105 |
| Where to Find More Information? | p. 105 |
| What's Next? | p. 106 |
| Standard Information Models | p. 107 |
| Overview | p. 107 |
| Handling Information Models | p. 107 |
| What is Specified by an Information Model? | p. 107 |
| How is an Information Model Specified? | p. 111 |
| How are Multiple Information Models Supported? | p. 111 |
| Base OPC UA Information Model | p. 112 |
| Capabilities and Diagnostics | p. 115 |
| Data Access | p. 115 |
| Historical Access and Aggregates | p. 116 |
| State Machine | p. 117 |
| Programs | p. 118 |
| Alarms and Conditions | p. 119 |
| Domain-Specific Information Models | p. 120 |
| Overview | p. 120 |
| Devices Information Model | p. 121 |
| Summary | p. 122 |
| Key Messages | p. 122 |
| Where to Find More Information? | p. 123 |
| What's Next? | p. 123 |
| Services | p. 125 |
| Overview | p. 125 |
| General Service Concepts | p. 126 |
| Timeout Handling | p. 127 |
| Request and Response Headers | p. 127 |
| Error Handling | p. 128 |
| Extensible Parameters | p. 129 |
| Communication Context | p. 129 |
| Convention for Describing Services in this Chapter | p. 131 |
| Finding Servers | p. 131 |
| Service Find Servers | p. 132 |
| Service Get Endpoints | p. 133 |
| Service Register Server | p. 134 |
| Connection Management Between Clients and Servers | p. 134 |
| Secure Channel Establishment | p. 135 |
| Creating an Application Session | p. 136 |
| Closing an Application Session | p. 138 |
| Cancel Outstanding Service Requests | p. 138 |
| Find Information in the Address Space | p. 139 |
| Services Used for Discovering the Address Space | p. 139 |
| Use Cases for Finding Information in the Address Space | p. 145 |
| Read and Write Data and Metadata | p. 155 |
| Reading Data | p. 155 |
| Writing Data | p. 157 |
| Subscribe for Data Changes and Events | p. 158 |
| Delivery of Changed Data and Events | p. 159 |
| Create and Manage Subscriptions | p. 164 |
| Create and Manage Monitored Items | p. 167 |
| Monitor Data Changes | p. 171 |
| Monitor Events | p. 173 |
| Monitor Aggregated Data | p. 175 |
| Calling Methods Defined by the Server | p. 176 |
| Access History of Data and Events | p. 177 |
| History Read Service | p. 177 |
| History Update Service | p. 183 |
| Find Information in Complex Address Space | p. 186 |
| Modify the Address Space | p. 187 |
| Adding Nodes | p. 188 |
| Creating References Between Nodes | p. 188 |
| Removing Nodes | p. 189 |
| Delete References Between Nodes | p. 189 |
| Summary | p. 189 |
| Key Messages | p. 189 |
| Where to Find More Information? | p. 190 |
| What's Next? | p. 190 |
| Technology Mapping | p. 191 |
| Overview | p. 191 |
| Data Encodings | p. 192 |
| OPC UA Binary | p. 192 |
| XML | p. 193 |
| Security Protocols | p. 194 |
| WS-Secure Conversation | p. 194 |
| UA-Secure Conversation | p. 196 |
| Transport Protocols | p. 198 |
| UA TCP | p. 198 |
| SOAP/HTTP | p. 199 |
| Available Mapping Implementations | p. 200 |
| Summary | p. 201 |
| Key Messages | p. 201 |
| Where to Find More Information? | p. 202 |
| What's Next? | p. 202 |
| Security | p. 203 |
| Why is Security so Important? | p. 203 |
| Organizational Perspective of Security | p. 204 |
| Technical Perspective of Security | p. 205 |
| Determining The Appropriate Level of Security | p. 206 |
| Security Assessments | p. 206 |
| The OPC UA Security Assessment | p. 209 |
| The OPC UA Security Model | p. 209 |
| Security Architecture | p. 209 |
| Securing the Communication Channel | p. 212 |
| Authentication and Authorization | p. 218 |
| Security Policies and Profiles | p. 222 |
| Certificates | p. 222 |
| What is a Certificate? | p. 222 |
| OPC UA Certificates | p. 224 |
| Public Key Infrastructure for OPC UA | p. 227 |
| What is a PKI? | p. 227 |
| Trust Models | p. 228 |
| Certificate Lifecycle Management | p. 231 |
| Available PKI Frameworks | p. 238 |
| PKI for Industrial Applications | p. 242 |
| Summary | p. 252 |
| Key Messages | p. 252 |
| Where to Find More Information? | p. 252 |
| What's Next? | p. 253 |
| Application Architecture | p. 255 |
| Introduction | p. 255 |
| Architectural Overview | p. 255 |
| Stack | p. 256 |
| Interface | p. 256 |
| Encoding Layer | p. 257 |
| Security Layer | p. 257 |
| Transport Layer | p. 257 |
| Platform Layer | p. 258 |
| Software Development Toolkit | p. 258 |
| UA-Specific Functionality | p. 258 |
| Common Functionality | p. 259 |
| Interfaces | p. 260 |
| Application | p. 260 |
| Client | p. 260 |
| Server | p. 261 |
| Deliverables Provided by the OPC Foundation | p. 261 |
| Stacks | p. 262 |
| SDKs | p. 262 |
| Applications | p. 263 |
| Summary | p. 263 |
| Key Messages | p. 263 |
| Where to Find More Information? | p. 263 |
| What's Next? | p. 264 |
| System Architecture | p. 265 |
| System Environment | p. 265 |
| Basic Architecture Patterns | p. 265 |
| Client-Server | p. 265 |
| Chained Server | p. 266 |
| Server-to-Server Communication | p. 267 |
| Aggregating Server | p. 268 |
| Redundancy | p. 269 |
| Client Redundancy | p. 269 |
| Server Redundancy | p. 270 |
| Discovery | p. 273 |
| Why discovery? | p. 273 |
| Discovery Entities | p. 274 |
| Discovery Process | p. 275 |
| Auditing | p. 277 |
| Overview | p. 277 |
| Audit Logs | p. 278 |
| Audit Events | p. 278 |
| Service Auditing | p. 279 |
| Use Cases | p. 279 |
| Summary | p. 281 |
| Key Messages | p. 281 |
| Where to Find More Information? | p. 281 |
| What's Next? | p. 282 |
| Mapping of COM OPC to OPC UA | p. 283 |
| Overview | p. 283 |
| OPC Data Access 2.05A and 3.0 | p. 283 |
| Address Space | p. 284 |
| Access Information | p. 285 |
| OPC XML-DA 1.01 | p. 286 |
| OPC Alarm and Events 1.1 | p. 286 |
| Address Space | p. 287 |
| Access Information | p. 288 |
| OPC Historical Data Access | p. 289 |
| Address Space | p. 290 |
| Access Information | p. 290 |
| Summary | p. 292 |
| Key Messages | p. 292 |
| Where to Find More Information? | p. 292 |
| What's Next? | p. 292 |
| Migration | p. 293 |
| Overview | p. 293 |
| Wrappers - Access COM Server from UA Client | p. 293 |
| Proxies - Access UA Server from COM Client | p. 295 |
| Native Development | p. 296 |
| Summary | p. 296 |
| Key Messages | p. 296 |
| Where to Find More Information? | p. 297 |
| What's Next? | p. 297 |
| Profiles | p. 299 |
| Motivation | p. 299 |
| Profiles, Conformance Units and Test Cases | p. 299 |
| Profiles for Server Applications | p. 300 |
| Profiles for Client Applications | p. 301 |
| Transport Profiles | p. 301 |
| Security Profiles | p. 302 |
| Certification Process | p. 302 |
| Summary | p. 303 |
| Key Messages | p. 303 |
| Where to Find More Information? | p. 303 |
| What's Next? | p. 303 |
| Performance | p. 305 |
| Overview | p. 305 |
| Performance Numbers | p. 306 |
| Summary | p. 309 |
| Key Messages | p. 309 |
| Where to Find More Information? | p. 309 |
| What's Next? | p. 309 |
| Conclusion and Outlook | p. 311 |
| OPC UA in a Nutshell | p. 311 |
| Is OPC UA Complicated? | p. 311 |
| Are OPC UA Services Difficult to Handle? | p. 312 |
| Is Information Modeling a Pain? | p. 314 |
| Transport Protocols and Encodings: Why So Many? | p. 317 |
| Implementation Issues | p. 319 |
| Migration of Existing Code | p. 319 |
| Management Summary | p. 321 |
| Outlook | p. 321 |
| Literature | p. 323 |
| Graphical Notation | p. 327 |
| Motivation and Relation to UML | p. 327 |
| Notation | p. 328 |
| Example | p. 330 |
| Node Classes and Attributes | p. 333 |
| Base Information Model Reference | p. 335 |
| Index | p. 337 |
| Table of Contents provided by Ingram. All Rights Reserved. |