next up previous contents
Next: Basic PyOPC Architecture Up: main Previous: Installation/Quickstart   Contents

Architecture and Basic Concepts

The PyOPC framework supports the rapid development of OPC XML-DA compliant clients and servers and provides the following features:

Open source:
PyOPC and all underlying technologies are open source projects.

Multi-platform capable:
The underlying programming language of PyOPC is Python, which is available on most platforms, such as Microsoft Windows, Linux, Mac OS X and others. Applications built with PyOPC can be run on all platforms with Python support. A good introduction to the Python programming language can be found in [PIL05] and [MAR03].

Ease of use:
Various complex functionality of the OPC XML-DA specification is automatically handled by the PyOPC framework, therefore the developer does not need to cope with it. Nevertheless, the programmer may also choose to override this functionality and thus implement it in his own way.

Extensible and reusable:
Basic framework functionality can be extended by the programmer, moreover, OPC servers built with PyOPC can be added to the framework as a custom libraries, which can then be reused by other applications.

An OPC XML-DA compliant framework needs to support several technologies, especially building servers which process concurrent requests and handle the SOAP and HTTP protocol. Although Python has an extensive collection of libraries, it does not fulfill these requirements. Therefore two additional Python frameworks are used, which have to be available on systems that provide PyOPC based applications. These basic technologies are illustrated in figure 2.

Figure 2: Underlying Technologies of the PyOPC Framework

Zolera Soap Infrastructure (ZSI):
This SOAP framework enables parsing and serializing SOAP messages. PyOPC uses ZSI to read and create OPC XML-DA compliant SOAP messages7.

Twisted is an asynchronous client/server framework. It implements a variety of Internet protocols, such as HTTP and SMTP and uses an event based mechanism to enable the development of clients and servers which can handle concurrent requests.

In order to develop applications with Twisted, the programmer has to lay out his program according to this event-based architecture. Therefore building complex server applications with PyOPC require some understanding of the basic concepts of Twisted. More information about this framework can be found at [FET06].

next up previous contents
Next: Basic PyOPC Architecture Up: main Previous: Installation/Quickstart   Contents
Hermann Himmelbauer 2006-11-07