- ... networks1
- It
should be mentioned that Ethernet-based solutions, commonly known as
Industrial Ethernet, are emerging, which can be seen as an alternative
to fieldbus technologies. Although a direct connection between
Industrial and legacy Ethernet is most often not possible,
establishing vertical integration may proof to be easier with this
technology.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... UDDI2
- UDDI stands for ``Universal Description,
Discovery and Integration'' and is a standard which deals with the
discovery of Web Services. UDDI is further described in
section 2.5.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... ``WSDL''3
- WSLD stands for ``Web Services Definition
Language'' and is a standardized language which can be used for
describing technical issues of Web Services. WSDL is further described
in section 2.4.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... RSS4
- RSS stands for ``Really
Simple Syndication'' and is used for distributing news and the content
of news-like Web Sites.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... UDP5
- The
``Transmission Control Protocol (TCP) and ``User Datagram Protocol''
(UDP) are commonly used transport protocols in combination with the
network protocol ``Internet Protocol'' (IP). A good introduction to
these protocols is given in [TAN02]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... W3C6
- The World Wide Web
Consortium was created in October 1994 to lead the World Wide Web to
its full potential by developing common protocols that promote its
evolution and ensure its interoperability. W3C has around 450 member
organizations from all over the world and has earned international
recognition for its contributions to the growth of the Web.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
XML7
- XML is a markup language like HTML and is a subset of
SGML. XML is further described in section 2.1.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
model8
- The OSI reference model, developed by the International
Standards Organization (ISO), is a standard reference model for
networking protocols used in various layers. For further references
see [TAN02].
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
SGML-based9
- The ``Standard Generalized Markup Language''
(SGML) was developed in the 1970s and is a very mature and flexible
but also quite complex markup language. Most of today's markup
languages are based on SGML.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... structure10
- 1:n means in
this context that each child has exactly one parent but a parent can
have zero, one or multiple children.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
(DTD)11
- DTD is also derived from SGML and is part of the XML
standard. The syntax of DTD is similar to XML but is not XML
compliant, moreover, it has various limitations, such as lack of
extensibility and weak data typing. DTD is commonly used today but is
expected to be replaced by XML Schema in the near future. Further
information about DTD can be found in chapter 5 of [BIR01]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
strings12
- It is also possible to define custom simple types,
such as strings with a fixed length, or even use regular expressions
for defining patterns which the elements must match.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
datatypes13
- Serialization means that language specific data
types are transformed into an independent format, e.g. into text
format. As this independent format is strictly defined by SOAP it can
easily be de-serialized into data types of another language. To fulfill
this task, the SOAP standard defines various data types, like
integers, strings or arrays that can be mapped to their corresponding
counterparts in any high level programming language, like C/C++, Java
or script languages like Perl or Python.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... header14
- The SOAPAction header
element can be used for indicating the purpose and/or destination of a
SOAP message. It can only be applied to SOAP messages that are
transported via the HTTP protocol.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... protocol15
-
For example, HTTP does not by itself support state-fulness, which is
often required for transactions or authentication purposes.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... SOAPActor16
- A
SOAP node can contain any numbers of actors, in other words, a node
can play the role of several different SOAP Actors. [LIV02]
describes this in a more specific way: Actor role = SOAP node
functionality.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... faults17
- SOAP Faultcodes are meant to be
extensible. That means specific error codes to these main four codes,
such as ``Client.AuthenticationError'' or ``Server.PowerFail''
can be appended to these four generic Faultcodes.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... defined18
- It should be noticed
that these two approaches to the encoding of SOAP messages has caused
some confusion which has led to the development of SOAP frameworks
that implement only one encoding standard. This has led to
incompatibilities between different SOAP frameworks which greatly
reduces interoperability between SOAP Web Services.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... SSL19
- The Secure Socket Layer (SSL) is
commonly used together with HTTP and technically adds a security layer
between HTTP and TCP. More information about SSL can be found in
[THO00].
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
type20
- XSD simple or complex types are allowed
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... ``port''21
- A WSDL
port must not be confused with a TCP socket type port.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... standard22
- The
UDDI community contains over 220 companies. Therefore its support of
the industry and its acceptance is guaranteed.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
aggregated23
- In fieldbus environments multiple nodes are often
needed to fulfill certain tasks. In such cases it makes sense to
present these nodes in groups where aggregated fieldbus nodes perform
specific functions.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... capabilities24
- Values from fieldbus nodes
most often can be polled, which basically means that one device
requests values of another device. Another way of transmitting data
are notifications where certain events trigger devices to send
data to one or more other devices.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... Foundation25
- OPC stands for ``OLE for Process
Control'' where OLE is an abbreviation of ``Object Linking and
Embedding'', a standard created by Microsoft which enables simple data
transfer between OLE aware applications. OLE is the predecessor of
COM/DCOM.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
environments26
- There are products available that provide DCOM
also on non-Microsoft platforms. One example would be EntireX DCOM by
Software AG that brings the DCOM programming model to UNIX. However,
these alternatives often have limitations and are not very
widespread.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
options27
- Examples of common quality bits would be ``good'',
``bad'', ``badDeviceFailure'' or ``uncertain''.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... data.28
- The COM/DCOM-based standards
of OPC enable read/write operations to OPC Items only through OPC
Groups. This is different with XML-based standards of OPC, which
enable direct read/write operations to OPC Items. OPC Groups do not
play an important role in these standards.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... space29
- Address space in this context refers to which
OPC Groups and OPC Items are available on the server and how they are
addressed.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... environment.30
- COM/DCOM incorporates a special data
type called ``VARIANT'', which is used to represent several common data
types like integers, strings and date/time types.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... server.31
- Polling
is perfectly supported by the HTTP protocol as it follows its simple
request/response method.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... design.32
- COM/DCOM has different
connection and communication abilities that enable asynchronous data
transfers.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... times.33
- The hold time
specifies a minimum delay which is based on the maximum update rate of
the underlying device. The setting of the wait time has to be
balanced so that possible server errors are detected in a reasonable
time. Moreover, it is important keep in mind possible timeout values
of underlying network protocols which must be greater than the sum of
hold/wait time and the network latency.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... objects.34
- This
perfectly fits the XML data structure where elements can contain other
elements and form a parent/children-like structure.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... precision35
- Resolution describes the accuracy of
a real value in comparison to precision, which defines the number of
decimal places.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... units36
- The International System (SI)
provides the seven basic units kilogram(kg), meter(m),
second(sec), Kelvin(K), ampere (A), mole (Mol) and candela (cd). Any
other unit can be represented by these basic units.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... ``hour''37
- The conversion equation is
defined as
where ``scalar'' are
hours in this example.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... quality38
- The quality element
describes the status of the value, such as ``ok'', ``disabled'' or
``fault''. An additional element ``display'' may be used to provide a
detailed description for applications.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
periodically39
- oBIX defines a so-called ``lease time'' which
must not be exceeded.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... updates40
- oBIX is currently a working draft, so
future releases of oBIX could implement appropriate techniques.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... architecture41
- REST
is another approach to implement Web Services and differs by design
much from SOAP Web Services. REST is a very abstract
definition. Instead of defining a standard, it is an architectural
guideline. REST calls resources ``nouns'' and access functions
``verbs''.The main idea is to provide resources, referenced by URIs
and access/modify them by four basic HTTP functions GET, PUT,
POST and DELETE. These resources are modeled by
self-describing XML documents that may reference other
resources. Serialization issues are not described by REST. More
information can be found in [FIE00].
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... BACNet/WS42
- BACNet stands for
``Building Automation and Control Networks'' and is an American
national standard, a European pre-standard and an ISO global
standard.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... ``Aliases''43
- The attribute
``Aliases'' contains all reference nodes while the attribute
``Reference'' contains the path to the referred node
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
form44
- The canonical data format applies to the encoding rules
used in the XML Schema standard.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... assigned45
- An example of a polymorphic parameter
would be a function that returns values of multiple data
types.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
``getArrayRange''46
- This service can be used to retrieve parts
of arrays.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... ``getArraySize''47
- The getArraySize service
returns the number of items in an array attribute.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... ``interval''48
- This parameter
specifies the time interval between values. If the requested interval
is shorter than the actual sample rate, the server returns
interpolated values.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
defined49
- It has to be noted that every node contains the
attribute ``children'', which could be used for browsing the data
structure. However, this attribute is optional and it is not described
in the standard how to utilize it for browsing.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... LON50
- The
``Local Operating Network'' (LON) was developed by the company Echelon
around 1990 and is based on a decentralized architecture, containing
of multiple nodes that contain logic.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... points''51
- In LON fieldbuses, data points basically map
directly to network variables.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
levels52
- Priority level ``0'' is the highest priority while
``255'' is the lowest. The default priority, which is set during the
boot process is ``255''.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... messages53
- Alternatively, the XML
files can be modified by hand and uploaded to the gateway with the
File Transfer Protocol (FTP). This method has the huge drawback that
the i.LON 100 has to be restarted, in order for the configuration
changes to take effect.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
XML54
- Encoded XML files are created by escaping the characters
``
'', ``
'' and ``SPMamp;''. Encoded XML is treated like a character
string by XML parsers and is therefore not verified.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
function55
- Alternatively, the log files may be downloaded with
FTP.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
mind56
- Clients located on upper enterprise levels will use
these Web services to access the underlying fieldbus. Such Web
services should be designed in a compatible style, so that one
client can easily retrieve fieldbus data from different
services.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... solutions57
- For instance, the standard will specify
generic read/write operations which are available in all fieldbus
systems. A vendor may now choose to implement his own enhanced
read/write operation instead of using the generic one. This way, basic
operations may become fieldbus specific.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
operations58
- An example would be HTTP, which is only a
request/response protocol and is therefore unsuitable for asynchronous
services such as alarming notifications.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
complex59
- Moreover, some of these tricks may not work in
certain environments or may lead to undetermined states. An example
would be the ``Advanced Subscription'' as described in [OPCXMLDA]
where custom TCP/IP timeouts could possibly lead to unpredictable
errors or problems.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... resource-centric60
- Resources are represented by
documents, which are commonly written in HTML or XML.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... structure61
- If for example single
elements of the underlying data structure are linked together,
operations for browsing may become unnecessary.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... structures62
- For example, Profibus has a very
different underlying concept compared to LON which results in
different data structures.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
holders63
- This addressing scheme conforms to ``pointers'' in
common programming languages
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... complicated64
- In case of a high
number of data points, an operation which lists available data points
will return a huge data set. To circumvent this problem, browse
results may be limited by filtering rules. Data points that do not
match certain criteria will not be returned.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... delimiters65
- This addressing scheme is similar
to URLs and could look like /item1/item2/item3.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... viewpoints66
- There may be a
technical perspective of a system and also a logical or a geographical
viewpoint, such as aggregating similar technical devices compared to
arranging data after geographic locations.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
languages67
- Localization not only deals with translating
text. Other localization issues are country-specific date/time
formats, currency and others.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... way68
- If no Locale is
specified or no appropriate localized fieldbus data is available, the
default locale will be returned.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... implement69
- Nevertheless certain conversion
functions may have to be implemented by the gateway as the fieldbus
itself may provide fieldbus data in units other than the SI system
defines.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
sensor70
- A short introduction to accessing Web Services
through WSDL with python can be found in [PIL05].
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... means71
- For instance,
if an application returns the average temperature of a building and
one temperature sensor fails, the missing temperature may be
approximated by the application.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
applications72
- An example for such a design would be the IGUANA
gateway, which is described in detail in chapter
5.1.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... message73
- A better approach would be to name the
attributes such as <value>12.2</value> and de-serialize
them according to the element names. This way, additional attributes,
which are inserted in the SOAP body due to extension purposes, could
be ignored by clients.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
8)74
- Storing data in elements is called hierarchical model
whereas storing data in attributes is called canonical model. However,
often data will be stored in a mixture of these two models.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... parser75
- This applies to
both XML parser types, namely the ``Document Object Model'' (DOM) and
the ``Simple API for XML'' (SAX).
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... speed76
- Fieldbus SOAP messages are small in size
and simple, moreover, the bandwidth is not a limiting factor as
Internet/fieldbus gateways may be connected to clients via fast LAN
networks. Therefore the document size and the processing speed will
not matter for most applications.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
types77
- Datapoints may represent various sensors, which provide
data of different types, such as a simple counter (integer type), a
temperature (float type) or complex data (string type).
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...bacnet78
- [BACNET/WS]
calls the data point value ``polymorphic'' and encodes the data as
simple strings.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
timestamp79
- This timestamp is generated by the
fieldbus. Possible fieldbus latency and other timing issues will be
compensated by the underlying fieldbus technology itself.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... vary80
- When multiple
SOAP requests have to be processed by the Internet/fieldbus gateway,
or the gateway is busy with other tasks, the encoding/decoding process
cannot be predicted and may vary.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... (WANs)81
- The underlying technology may for
instance be Ethernet, Frame Relay, ISDN.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
traffic82
- The problem with this approach is that network
devices, which are prone to congestion issues, have to implement QoS,
which is not the case for commonly used network devices.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... timeouts83
- Proxies
in between or lower level protocols also have timeouts that could be
lower than the HTTP timeout.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... message84
- It
would also be possible to implement an SMTP server into the client, so
that SMTP messages can be received directly by the client. However,
setting up appropriate SMTP routing may prove difficult and will
possibly involve other servers due to security restrictions, which may
be inappropriate.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... paths85
- These modules may be seen
as clients and servers, which is denoted with the arrows in the
picture. For instance, the ``Extended Service Daemon'' (ESD) is a
client of the FAN daemons and the Internet Notification Originator,
while it is a server for the Internet front-ends. On the other hand,
the Internet front-ends are clients of the ESD.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
UNIX86
- Currently, the IGUANA gateway is implemented on a LINUX
operating system
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... values87
- Indexed datapoints are
currently used for historical data.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
type88
- This property must not be confused with the encoding
type of the value, which may be different to the fieldbus specific
data type.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... mode89
- This property denotes the
accessibility of the datapoint, such as read-only or read-write.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... 01.01.197090
- This data type
corresponds to the ``time_t'' data type of the POSIX.1
standard, also known as ``UNIX timestamp''.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... C3''91
- The IGUANA BINHEX data type must not be
confused with the BinHex data type, which was introduced by Apple and
is described by RFC 1741. Although the data types are similar, RFC
1741 introduces a simple mechanism to compress repetitive
characters.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... ESD92
- Other
protocols would be the FAND protocol, which is basically a subset of
the ESD protocol and is used for the communication between the ESD and
the FAN daemons and the ``Internet Notification Originator'' (INO)
protocol, which is designed for the communication between an INO
daemon and the ESD.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
entities93
- For instance, characters like ``<,>,&,''
would be converted to ``<,>,&''
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...<[!CDATA[...]]>''94
- Between the
brackets all characters are allowed except two closing brackets.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... used95
- ESD may also be transported via HTTP without the use
of SOAP. This way, the good communication abilities of HTTP may be
used without the need of an XML parser or SOAP framework.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... whitespace96
- Whitespace
are the characters ``ASCII space'', ``horizontal tab'' (HT),
``line-feed'' (LF) and ``carriage-return'' (CR).
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... whitespace97
- The XML specification
states that whitespace in element contents must not be altered by the
XML parser with the only exception that a CR or CR/LF has to be
converted to a single line feed. This is different to HTML, where
whitespace is removed by the parser.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... systems98
- For instance, LON provides appropriate
metadata, such as a location string, while other fieldbus systems do
not.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... same99
- The
minor difference is that the IGUANA BINHEX encoding has whitespace
between each octet, while the XML Schema hexBinary has none.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... computer100
- Although it seems most appropriate to
place the OPC server directly on the IGUANA gateway, hardware
limitations or the lack of appropriate OPC toolkits may lead to
implementations, where the OPC server is situated outside of the
gateway. In such cases, it will often be placed on a personal
computer, which may also be used for client applications.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...xmlda-encoding-items101
- Another way would be to
map IGUANA encodings to OPC data types, such as mapping SCALARBIN to a
float data type or TIME to a time compliant data type in a 1:1 mapping
style. However, the encoding of the IGUANA gateway may be extended;
For instance a new encoding style may be introduced which would also
map to a float data type but is different from the SCALARBIN
encoding. This would lead to n:1 mappings in which case retrieving
data in certain encoding styles would be impossible.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... encoding102
- This
encoding style was created for transferring binary content over
text-based mail systems. More information can be found in
[R2045].
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... element.103
- The
``ItemPath'' element is not necessary and can be omitted.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... escaped104
- One possible way would be to use the
exclamation mark (``!'') for this purpose, as this character must not
be part of the address. This way, a string, such as
ab/cd/e would be escaped as ab!/cd!/e.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... client105
- Interestingly SOAP faults,
as depicted in the XML-DA specification, do not conform to the SOAP
standard. The SOAP 1.1 standard specifies in section 4.1.1 that the
element
must contain one of four specific codes,
which differs from the OPC XML-DA specification, where custom error
codes are embedded in the
element.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... error106
- Moreover, the OPC property
``quality'' has to be set to ``Bad''.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... codes107
- To
be specific, the standard specifies 20 error codes and 3 so-called
``Success Codes'', which are more or less warning messages. Error
codes always begin with the characters ``E_'' while success codes
start with ``S_''. Custom result codes have to follow this
convention.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... server108
- A possible solution would be to set SOAP faults
as the default error handling. This way, unknown ESD error codes will
trigger SOAP faults.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
all109
- A meaningful example would be an OPC Item that is the
parent of another Item, which is commonly used in cases of
hierarchical addressing. Such a ``parent Item'' would not need any
properties because it serves as a logical container of other OPC
Items.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... mandatory110
- For
instance, the property ``dataType'' is used to define the Item's
canonical data type. This information is needed for read operations
that do not specify the requested data type. Without the ``dataType''
property the client would not know to which data type the requested
fieldbus data should be mapped.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
metadata111
- The IGUANA gateway has a datapoint property called
``DataType'' which seems like a corresponding property. However, this
property defines the FAN-specific data type which is in a fieldbus
specific format and is implemented for fieldbus specific
clients. Therefore it cannot be used for the OPC ``dataType'' Item
property.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... error112
- Setting the
quality property to ``Good'' would be a bad solution, as there may be
underlying fieldbus systems that implement data quality. In such a
case the fieldbus data may be ``Bad'' or ``Uncertain'', which is not
reported by the IGUANA gateway. This would be misleading which is the
reason why the property should be omitted if no error occurs.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... valid113
- There may be fieldbus
devices which provide cached data. In such cases it is impossible to
set an accurate time.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... translated114
- The
two available ESD Access strings ``RO'' and ``RW'' would be translated
to ``readable'' and ``readWriteable''.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... property115
- The available
encodings on the gateway may be extended without implementing these
encoding styles in the OPC server. In this case OPC Items that
represent these new encoding styles will not be available. Hence this
information may be conveyed by the ``SetOfEncodings'' property.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... gateway116
- This information is vital for
interpreting timestamps that are returned by the OPC Read service.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... elements117
- Elements cannot only be OPC items but may
also be branches which are logical elements of the hierarchy tree and
do not contain fieldbus data by themselves.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... level118
- The service does not descend in the hierarchy
and does therefore not recursively list items in lower levels.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
response119
- OPC Servers may implement so-called ``Continuation Points''
that may be used to browse elements that exceed the maximum elements.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... fieldbus120
- It should be denoted that
cache updates are not done automatically but have to be issued by
specific ESD commands, called ``REFRESHNODELIST'' and
``UPDATENODELIST''.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... service121
- The
IGUANA Gateway offers asynchronous notifications which look like a
promising counterpart to the OPC Subscription service. However, the
IGUANA notification system has several limitations: Obtaining changes
of fieldbus data is done by polling datapoints instead of asynchronous
notifications from the fieldbus itself. Therefore polling may be
directly implemented by simple ESD-read commands by the OPC server
itself. Moreover, certain aspects of the OPC Subscription Service, such
as deadband or buffering, are not supported by the IGUANA gateway.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... used122
- The
operating system of the IGUANA gateway is Linux, therefore the
software developer is limited to Web Service frameworks that are
available for this environment.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... CGI-style123
- The Common Gateway Interface (CGI) is a
popular technique for calling programs from a HTTP server.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... FTP124
- The File Transfer Protocol (FTP) is a simple
protocol for transferring data between Internet devices
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
rights125
- The ESD implements a property called ``Access'', which
denotes if a datapoint is read-writeable. However, these access
rights are adopted from the fieldbus itself and cannot be configured
in the ESD.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... system126
- Examples would be the ``LiXMO Suite'' from
Technosoftware AG or the ``Toolbox C++'' from Softing AG.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... operations127
- This is
needed for OPC subscriptions, where fieldbus data is periodically
polled.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
used128
- An alternative implementation of .Net is ``Mono'', which
runs on a variety of platforms, including Linux. However, it is
uncertain whether it would provide the necessary functionality, and
its hardware requirements are also relatively high.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... typecode129
- This simple OPC
SOAP message is used to retrieve the status of an OPC XML-DA compliant
server
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
dictionaries130
- A Python dictionary is basically a hash table:
Given keys are hashed and stored with associated data in a
table.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...devel-uml1131
- For simplicity reasons, not all
methods/attributes have been depicted in this figure
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
implemented132
- There is no support for ``duration'' and
fractions of seconds (milliseconds) and time zones are ignored
by the ZSI as the date is stored in a Python data type without
support for this information.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... itself133
- Unfortunately it is not
possible to retrieve this needed information directly from the
generated typecodes, as they are based on a concept called
``Metaclasses'', a technique were methods and attributes of an object
are not defined in the class but in a Metaclass and are dynamically
created at object creation time and are thus not found along with the
generated typecodes.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...JUNIT134
- This book introduces tests with a Java
library called ``JUnit''. The Python unit testing library is very
closely related to JUnit.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... handler135
- If for instance
the URL ``http://some.url/myws'' is the base address for the
Web Service, URLs such as ``http://some.url/myws/handler1'' and
``http://some.url/myws/handler2'' could be used.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... server136
- This problem may be solved by limiting the
number of concurrent client connections and ESD requests in the OPC
server. This way, excessive connections would be declined with an
error message by the OPC server.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
rates137
- The OPC client may request a sampling rate, which
defines how fast the server should poll the fieldbus for value
changes. If the server cannot sample at the requested rate, it may
revise the rate and notify the client about this change.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... degree138
- For
instance, the server should return immediately and ignore the hold
time in case all requested items are erroneous, hence the items have
to be checked immediately. On the other hand, value changes that occur
within the hold time should be returned by the server. Therefore the
items have to be checked when the hold time has expired.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... created139
- Python
offers an elegant way of creating functions during runtime with
so-called ``closures'', which are basically functions within
functions. More information about this technique can be found in
[MAR03].
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... changed140
- ``Changed''
means in this context that the new value exceeds the previously
defined deadband.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... subscription141
- Subscriptions are
associated with one client only. However the OPC XML-DA specification is
quite loose on this topic and does not explicitely prohibit multiple
queries to one subscription but does not define how the server should
react in such a situation: For instance, the server could return
changed values to all concurrent clients but could also return it to
only one. Due to these uncertainties, this server blocks all other
requests to a subscription object in case a poll is taking
place.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
commands142
- For instance, the subscription architecture will
periodically retrieve fieldbus data with the ESD READ command.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
delays143
- Delays for ESD READ/WRITE commands can also be
specified in the XML configuration file.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
commands144
- As denoted above, one XML-DA request message may
contain multiple items, which then results in multiple concurrent ESD
commands.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... command145
- For instance, the address
``/LON/GATE1/01:02/01/STRING'' is translated to the ESD command ``READ
LON.GATE1!01@01:02 STRING''.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... complicated146
- Therefore SOAP
was initially the acronym for ``Simple Object Access Protocol''. Later
it was called ``Service Oriented Architecture Protocol''. The current
SOAP 1.2 specification states that the word ``SOAP'' is no acronym
anymore, as none of the names above are correct anymore. This fact
alone is a hint to the increasing complexity of SOAP.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
follows147
- Fortunately many of these questions were answered in
the Internet forum on the OPC web site by a helpful OPC
representative.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... SPR148
- SPR is
used as an acronym for the OPC XML-DA operation ``Subscription Polled
Refresh''
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... immediately149
- There were minor issues with
qualified names (QNames) which were incorrectly implemented.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... client150
- This test client was available from
Advosol Inc., and was part of an evaluation version an OPC XML-DA
software development kit. This SDK is compatible with the Microsoft
Windows operating system and can be downloaded from their web page,
namely http://www.advosol.com. The client has a graphical user
interface, which supports all needed OPC functionality.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
hardware151
- The PC hardware consists of a Athlon XP 1600+ with
768MB main memory. All tests were done with Python 2.4.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... test152
- The parser is denoted by the numbers 1
to 3 in the test results. For instance GSR-1 refers to the GetStatus
result message with parser 1, while GSR-2 refers to the GetStatus
result message with parser 2.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... possible153
- Parsing is
implemented via a Python library that provides an interface to the
extremely efficient ``Expat'' XML parser, which is written in C. On
the other hand, serializing is done in Python, which is due to the
interpreter being much slower than C. Nevertheless speed improvements
should be possible by optimizing the Python code or coding certain
parts of the serializer in C.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... tool154
- The tool used for this test was
``Ethereal'', an open source network analyzer. This tool is available
from http://www.ethereal.com.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
connections155
- In these diagrams 5 network bursts, which are
associated with the concurrent requests. Altogether, 500 requests are
issued. As the client sends 100 simultaneous requests at once, it
takes some time for the server to process these requests and to
respond. During these processing times, the network is idle.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
second156
- Due to the specific test setup, the throughput in this
test is lower than it would be without the additional load from the
test client and the ESD simulation server.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
requirements157
- It was further observed that some of the
memory was not freed after a request. Theoretically, the Python
garbage collection should handle these issues but for an unknown
reason, it does not. It was found that calling the garbage collector
after each operation does reduce the memory usage, but it slows
down the server considerably. It is expected that the newer version
of Python (2.5) will resolve these problems.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
code158
- Once again it must be noted that ESD has much less
functionality and therefore fewer messages, however after subtracting
functionality from the SOAP code which is missing in ESD, the code
for reading OPC SOAP messages is still longer than the ESD protocol
implementation.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... size159
- The size of
the SOAP message length may be reduced with an efficient text
compressor by approximately a factor of three, however the
compressing/decompressing would increase the server load, which would
result in a decrease of the throughput.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... 300kB160
- This
number also includes the overhead of HTTP and TCP/IP.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
ACID161
- In this context, ACID is an acronym for Atomic,
Consistent, Isolation, and Durable. To ensure predictable behavior,
all transactions must possess these basic properties functionality.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... applications162
- For instance,
such additional information is transported in OPC SOAP messages via
the ``ClientRequestHandle'' attribute.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... standard163
- OPC-UA is
designed for vertical integration, therefore horizontal integration
issues, such as specified by OPC-DX are not part of this emerging
standard.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.