IEEE Standard and XML Web Services: a Powerful Combination to Build Distributed Measurement and Control Systems

Similar documents
Performance Evaluation of a Web-Service-Based DMCS

A Centronics Based Transducer Independent Interface (TII) Fully Compliant with Std.

(9A05803) WEB SERVICES (ELECTIVE - III)

Chapter 18 Distributed Systems and Web Services

1.264 Lecture 16. Legacy Middleware

Teiid Designer User Guide 7.5.0

Applying Smart Sensor Technology to Existing Real-World (Legacy) Systems

DS 2009: middleware. David Evans

INTRODUCTION TO.NET. Domain of.net D.N.A. Architecture One Tier Two Tier Three Tier N-Tier THE COMMON LANGUAGE RUNTIME (C.L.R.)

Microsoft Dynamics Road To Repeatability Technical Deep Dive Server Extensibility in Microsoft Dynamics NAV. Vjekoslav Babić, MVP

DOT NET Syllabus (6 Months)

Computational Web Portals. Tomasz Haupt Mississippi State University

A NET Refresher

CargoAPI. Nuno Pereira Instituto Superior Técnico Universidade de Lisboa Portugal, Lisbon

UNITE 2006 Technology Conference

Semi-Automatic Generation of Monitoring Applications for Wireless Networks

DYNAMIC CONFIGURATION OF COLLABORATION IN NETWORKED ORGANISATIONS

An Introduction to Software Architecture. David Garlan & Mary Shaw 94

The BITX M2M ecosystem. Detailed product sheet

In the most general sense, a server is a program that provides information

MD Link Integration MDI Solutions Limited

Distributed Systems Architectures. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 12 Slide 1

Grid Infrastructure Monitoring Service Framework Jiro/JMX Based Implementation

UNITE 2003 Technology Conference

Application Connectivity Strategies

one.world Towards a System Architecture for Pervasive Computing

Integration of Wireless Sensor Network Services into other Home and Industrial networks

Application Servers in E-Commerce Applications

New programming language introduced by Microsoft contained in its.net technology Uses many of the best features of C++, Java, Visual Basic, and other

Distributed Technologies - overview & GIPSY Communication Procedure

Architecting a Network-Centric M&S Application

Enable IoT Solutions using Azure

Implementing a Ground Service- Oriented Architecture (SOA) March 28, 2006

a white paper from Corel Corporation

Distributed Computing Environment (DCE)

2.2 What are Web Services?

Implementation of IEEE Conformance/Functionality Testing using LabView

The Impact of SOA Policy-Based Computing on C2 Interoperation and Computing. R. Paul, W. T. Tsai, Jay Bayne

Service Oriented Architectures Visions Concepts Reality

Einführung in die Erweiterte Realität

Web Services in Cincom VisualWorks. WHITE PAPER Cincom In-depth Analysis and Review

MOM MESSAGE ORIENTED MIDDLEWARE OVERVIEW OF MESSAGE ORIENTED MIDDLEWARE TECHNOLOGIES AND CONCEPTS. MOM Message Oriented Middleware

C exam. IBM C IBM WebSphere Application Server Developer Tools V8.5 with Liberty Profile. Version: 1.

Design Patterns. SE3A04 Tutorial. Jason Jaskolka

Channel HTTP TCP. Log

Technical Overview. Access control lists define the users, groups, and roles that can access content as well as the operations that can be performed.

OPC XML-DA Client Driver PTC Inc. All Rights Reserved.

Extended Search Administration

DOT NET SYLLABUS FOR 6 MONTHS

Chapter 2 Introduction

1.1 Customize the Layout and Appearance of a Web Page. 1.2 Understand ASP.NET Intrinsic Objects. 1.3 Understand State Information in Web Applications

PERLA PERvasive LAnguage

Test On Line: reusing SAS code in WEB applications Author: Carlo Ramella TXT e-solutions

Microsoft.NET: The Overview

HOPE Project AAL Smart Home for Elderly People

Develop Unified SNMP, XML, CLI, and Web-based Management for Embedded Real-Time Systems with MIBGuide

Lecture 15: Frameworks for Application-layer Communications

Lecture 15: Frameworks for Application-layer Communications

Mastering VB.NET using Visual Studio 2010 Course Length: 5 days Price: $2,500

CTI Higher Certificate in Information Systems (Internet Development)

describe the functions of Windows Communication Foundation describe the features of the Windows Workflow Foundation solution

[MS-WSUSOD]: Windows Server Update Services Protocols Overview. Intellectual Property Rights Notice for Open Specifications Documentation

Oracle. Exam Questions 1z Java Enterprise Edition 5 Web Services Developer Certified Professional Upgrade Exam. Version:Demo

System Requirements COSE. Helsinki 8th December 2004 Software Engineering Project UNIVERSITY OF HELSINKI Department of Computer Science

Web Services: Introduction and overview. Outline

Sentinet for BizTalk Server SENTINET

PLATFORM FOR ADVANCED CONTROL APPLICATIONS. B. Horn*, J. Beran**, J. Findejs**, V. Havlena**, M. Rozložník**

ACE Operation Manual

Vision of J2EE. Why J2EE? Need for. J2EE Suite. J2EE Based Distributed Application Architecture Overview. Umair Javed 1

Java EE 7: Back-end Server Application Development 4-2

Agent-Enabling Transformation of E-Commerce Portals with Web Services

CmpE 596: Service-Oriented Computing

A Smart Transducer Interface for Sensors and Actuators

Introduction to Web Services & SOA

M2M / IoT Security. Eurotech`s Everyware IoT Security Elements Overview. Robert Andres

SUN. Java Platform Enterprise Edition 6 Web Services Developer Certified Professional

Goal: Offer practical information to help the architecture evaluation of an SOA system. Evaluating a Service-Oriented Architecture

A domain model-centric approach to J2EE development. Keiron McCammon CTO Versant Corporation

Middleware. Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004

Mcafee epo. Number: MA0-100 Passing Score: 800 Time Limit: 120 min File Version: 1.0

Introduction To Web Architecture

Appendix A - Glossary(of OO software term s)

Service-Oriented Computing in Recomposable Embedded Systems

MATLAB-to-ROCI Interface. Member(s): Andy Chen Faculty Advisor: Camillo J. Taylor

Position Paper on the Definition of SOA-RM

Integration Framework. Architecture

: ESB Implementation Profile

Migration to Service Oriented Architecture Using Web Services Whitepaper

CTI Short Learning Programme in Internet Development Specialist

International Journal of Computer Science Trends and Technology (IJCST) Volume 3 Issue 6, Nov-Dec 2015

QRM Installation Guide Windows

IBM Software Group. IBM WebSphere MQ V7.0. Introduction and Technical Overview. An IBM Proof of Technology IBM Corporation

STARCOUNTER. Technical Overview

EXAM Web Development Fundamentals. Buy Full Product.

Send me up to 5 good questions in your opinion, I ll use top ones Via direct message at slack. Can be a group effort. Try to add some explanation.

Splunk Review. 1. Introduction

Overview SENTINET 3.1

Enterprise Navigation

Configuration Manager

SERVICE-ORIENTED COMPUTING

Transcription:

IMTC 2006 Instrumentation and Measurement Technology Conference Sorrento, ITALIA, 24-27 April 2006 IEEE 1451.1 Standard and XML Web Services: a Powerful Combination to Build Distributed Measurement and Control Systems Vítor Viegas 1,2, J.M. Dias Pereira 1,2, P. Silva Girão 2 1 ESTSetúbal-LabIM, Instituto Politécnico de Setúbal, 2910-761, Setúbal, Portugal 2 Instituto de Telecomunicações, Av. Rovisco Pais, 1, 1049-001, Lisboa, Portugal Phone: +351-265790000, Fax: +351-265721869, Email: vviegas@est.ips.pt Abstract In 2005, we presented the NCAP/XML, a prototype of NCAP (Network Capable Application Processor) that runs under the.net Framework and makes available its functionality through a set of Web Services using XML (extended Markup Language). Giving continuity to this project, it is time to explain how to use the NCAP/XML to build a Distributed Measurement and Control System (DMCS) compliant with the 1451.1 Std. This paper is divided in two main parts: in the first part, we present the new software architecture of NCAP/XML (which suffered some changes since the first version), and secondly, we describe the network configuration of a Web-enabled DMCS, which includes several NCAP/XML stations, a database and a Web Server. Keywords Smart Transducer, IEEE 1451.1, NCAP,.NET Framework, XML, Web Service. 1. INTRODUCTION The 1451.1 Std [1] defines an object model suitable to represent any networked smart transducer. The object model must be implemented in a processor with two communication ports, one that interfaces the network and another that interfaces the transducer. The network processor, denominated NCAP, acts like a bridge between the smart transducer and the network by exporting transducer functionalities over a standardized object model and hiding implementation details. As shown in figure 1, the object model is presented as a hierarchy of classes divided in three main groups: Blocks: Block classes are the working elements of the NCAP. Three block classes are specified: 1) the NCAP Block class that provides software interfaces for supporting network communications and system configuration; 2) the Transducer Block class that provides standard software interfaces between transducers and application functions; and 3) the Function Block class that encapsulates application-specific functionality. Components: Component classes provide common application building elements such as structured information (like measurements and files), collections of related application-specific objects, and actions with state where the action takes place over a relatively long period of time. Services: Service classes support communications between objects on distinct NCAPs and system-wide synchronization. Root Entity Block NCAP Block Function Block Base Transducer Block Transducer Block DotX Transducer Block Component Parameter Parameter With Update Physical Parameter Scalar Parameter Scalar Series Parameter Vector Parameter Vector Series Parameter Time Parameter Action File Partitioned File Component Group Service Base Port Base Client Port Client Port Asynchronous Client Port Base Publisher Port Publisher Port Self-Identifying Publisher Port Event Generator Publisher Port Subscriber Port Mutex Service Condition Variable Service Fig. 1. IEEE 1451.1 Std class hierarchy. In [2] we described the software implementation of an innovative NCAP prototype that runs under the.net Framework [3]. We called this prototype NCAP/XML because it uses XML Web Services for inter-ncap communication. Web Services [4-5] are, in simple terms, object methods made available via XML messages. These messages use a format known as SOAP (Simple Object Access Protocol) that is supported by the W3C [6] (World Wide Web Consortium), which includes all the major software companies around the world (such as Microsoft, 1

Sun Microsystems and IBM). This first version of NCAP/XML was composed by three software components, as depicted in figure 2: NCAP Engine: The NCAP Engine implements the IEEE 1451.1 object model, including Blocks and Components. Communication and synchronization services are implemented using.net Framework and Web Services. The engine starts by creating the top-level NCAP Block and its child objects. The NCAP Block has its own thread that executes a script containing the user application (which implements control routines and provides intelligence to the system). All NCAP objects are published as singleton objects [7] in order to retain their execution state and share it with all connected clients. NCAP Web Services: This component is the Web interface of the NCAP application because it exposes NCAP objects as Web Services. Web Services are inherently stateless, but, in this case, they always return consistent results because, behind the scenes, they connect to the NCAP Engine that provides full-state objects. The communication between both components is supported by.net Remoting [7], a distributed technology targeted for binary communications between applications over a private network or inside the same machine. Web Server: The Web Server acts like a doorman, listening for HTTP requests on port 80 and routing them to the application that will serve them. It also handles security by preventing that unauthorized clients access Web pages and Web Services. NCAP/XML is completely open because any device with a compatible XML parser can communicate with it. 2. SOFTWARE UPDATE As described in the previous section, the first version of NCAP/XML used two types of communication channels: an in-bound channel that uses.net Remoting for fast communication between NCAP Web Services and the NCAP Engine; and an out-bound channel that uses Web Services for inter-ncap communication. Although this works fine, we decided to simplify it. Side by side with the binary formatter, the.net Remoting technology offers a pre-built SOAP formatter, which has proprietary extensions that allow the serialization and deserialization of complex and platform-specific data types. Fortunately, this SOAP formatter is also compatible with W3C SOAP for basic data types and arrays of basic data types (by basic data types we mean strings, chars, booleans, integers, floats and time-stamps, among others). By this way, we can use this formatter for inter-ncap communication, without any loss of interoperability, as long as we limit our application to use only basic data types, which is precisely the case of the 1451.1 Std restricted to block and component classes. As shown in figure 3, the new software architecture of the NCAP/XML is a scale-down from the previous version: no NCAP Web Services are implemented and the Web Server is excluded, since all inter-ncap communication is done through.net Remoting using its SOAP formatter restricted to basic data types. This new arrangement has definitive advantages: The computational load is reduced, making easier its implementation in embedded devices with limited resources. Any device that runs the.net Framework can host a NCAP/XML without the need of a Web Server. Such a host can be, for example, the industrial PC CX1001-0120 from the manufacturer Beckhoff [8]. It doesn t compromise interoperability because inter- NCAP communication continues to be done with W3C SOAP compliance. It doesn t compromise security because access control can be built inside the NCAP Engine. If the prototype is to be used in a private network (which is the most probable Fig. 2. First version of the NCAP/XML prototype. 2

Fig. 3. NCAP/XML revised. scenario), security can be enforced by using a firewall in the upstream. 3. NETWORK CONFIGURATION It is possible to create a DMCS by networking several NCAPs/XML and let them talk each other using SOAP messages, without the need to buy and install any proprietary network drivers. This arrangement has three main advantages: 1) the communication is simplified; 2) the system is open to any device with a compatible XML parser; and 3) it makes easier the vertical integration of systems, from the field to the business, because many ERPs (Enterprise Resource Planning systems) are increasingly using Web Services. Three main parts compose our DMCS proposal, as represented in figure 4. NCAP/XML Stations: Each station is responsible for the acquisition of field signals, their processing and the generation of actuation signals. Signals can come from local transducers or from remote stations. Examples of processing are: data logging, alarm management and control loops. Information Server: The Information Server (IS) stores all the information about the system. Static information is stored in read-only files, each file containing the settings for the corresponding NCAP/XML Station. Dynamic information is stored in an SQL database, each record representing a published object, including dynamic fields like measurement values, set-points and alarms. HMI Application: The Human Machine Interface (HMI) is a Web application that allows the operator to interact with the system. The HMI has three main purposes: 1) it allows an online configuration of the system; 2) it provides a graphic interface to visualize the state of the system using synoptic diagrams, trend graphics and alarm indicators; and 3) it allows the operator to actuate over the system gaining manual control over field variables. Given its complexity, the IS should be installed in a powerful workstation running a server operating system. 3.1. Configuration Files Fig. 4. DMCS proposal. When a NCAP/XML Station boots, it needs to receive initial information about itself and about the system where it 3

is integrated. This start-up information can be stored in a configuration file, resident on the IS, and downloaded by the NCAP/XML Station. The configuration file is written in XML and includes a section dedicated to the IEEE 1451.1 object model. Inside that section, there is a text-based description about all the objects to be created and published by the NCAP/XML Station. The description includes the initial values of the object at the Entity level. As an example, let s consider an NCAPBlock object: <!-- IEEE 1451.1 object model section --> <IEEE1451Dot1> <!-- NCAPBlock instance --> <!-- properties filled with initial values --> <NCAPBlock ClassName= NCAPBlock ClassID= 1.1.1.1 ObjectTag= ST0.0.0 ObjectID= 272145CB-AA07-4c91-84CC-A91ABCC16F5D ObjectName= NCAPBlock0 DispatchAddress= http://10.41.0.50:6000/ncapblock0.soap OwningBlockObjectTag= ST0.0.0 State= 0 /> </IEEE1451Dot1> Configuration files are saved in a pre-defined directory on the IS, accessible through FTP (File Transfer Protocol) and/or through a dedicated Web Service. Each NCAP/XML Station downloads its corresponding configuration file based on its name and interprets it using a XML reader. The use of XML helps interoperability and the centralized storage of all configuration files helps system maintenance. 3.2. Script Files Script files are text files containing code to be executed by the NCAP/XML Station. This code adds intelligence to the station allowing it to execute control routines locally. Script files are saved in a pre-defined directory on the IS, accessible through FTP and/or through a dedicated Web Service. Each NCAP/XML Station downloads its corresponding script file based on its name and interprets it using a script engine. The centralized storage of all script files helps system maintenance; on the other hand, scripting reduces overall performance because the code is interpreted, not compiled. 3.2. The Database The state of the system is maintained in a database, which can be queried and updated in real time using SQL (Standard Query Language). The database contains one table for each non-abstract class of the IEEE 1451.1 object model. For example, a table named Parameters can describe all Parameter objects present in the system. The same principle is used for all other object classes. Each table column, also known as field, describes a property of an object instance. For example, the field named DispatchAddress of the table named Parameters contains the dispatch addresses of all Parameter objects present in the system. Component tables contain two fields to store system variables: a field named Value that stores the instantaneous value of the variable (the last measured value of a temperature, for example), and a field named History to store all the past values of that variable. History fields are indispensable to display trend graphics. Block tables and component tables are related through a field named OwningBlockObjectTag. According to the 1451.1 Std, this property defines a relation parent/children between a block object (the parent) and many component objects (the children). This relation is shown in figure 5. In the beginning, we considered the use of an UDDI Server to implement the database. UDDI [9] (Universal Description Discovery and Integration) is often called the yellow pages for Web Services, because it helps client applications to discover and consume Web Services by searches based on keywords, categories or interfaces. Unfortunately, UDDI revealed to be very restrictive, without margin for customization or extension, so we decided to implement an SQL database from the scratch. 3.3. Data Flow Fig. 5. Database snapshot. An explanation about how the data flows in the system helps to understand how it works. The data flow is represented in figure 4 by numbered arrows: Arrow 1: At boot time, each NCAP/XML Station downloads its configuration file and script file. The download can be made through FTP and/or through a dedicated Web Service of the IS. 4

Arrow 2: When a Parameter With Update object changes above a pre-defined dead band (5 per cent, for example), the NCAP/XML Station fires an event to the IS. The event is listened and the corresponding record in the database is updated using an SQL statement. Arrow 3: When the operator calls a function that changes the property value of an object, the corresponding record in the database is updated and the function is propagated to the remote object. Examples of such functions are: SetObjectTag (changes the tag of an Entity), SetGroupIDs (defines a new group of correlated blocks), Write (defines a new parameter value, for example, a new set-point of pressure), among others. The update of the database and the remote call are transactional: both are committed when both are successful. This way, we guarantee the consistence of data between the database and the NCAP/XML Station. Arrow 4: When the operator requests the instantaneous value of system variable, the corresponding record in the database is selected and the field Value is read. To refresh the value, this process is repeated periodically using a pooling mechanism. By this way, we guarantee the consistence of data between the database and the HMI application. The same approach applies to trend graphics, with the difference that the field History is the read one. In a near future we will implement the proposed solution in an industrial PC in order to evaluate real system capabilities under field operation conditions. REFERENCES [1] IEEE 1451.1 Standard for a Smart Transducer Interface for Sensors and Actuators Network Capable Application Processor (NCAP) Information Model, IEEE, New York USA, April 2000 [2] Vítor Viegas, J. M. Dias Pereira, P. Silva Girão, Using a Commercial Framework to Implement and Enhance the IEEE 1451.1 Standard, IMTC 2005 Instrumentation and Measurement Technology Conference, Ottawa, Ontario, CANADA, May 2005 [3] David S. Platt, Introducing Microsoft.NET, 2 nd Edition, Microsoft Press, Washington USA, 2002 [4] Mathew MacDonald, Microsoft.NET, Distributed Applications: Integrating XML Web Services and.net Remoting, Microsoft Press, US, 2003 [5] A. Russel Jones, Mastering ASP.NET with C#, Sybex, US, 2002 [6] www.w3c.org [7] David Curran, Andy Olsen, Jon Pinnock, Visual Basic.NET, Remoting Handbook, Wrox Press, UK, 2002 [8] www.beckhoff.com [9] www.uddi.org 5. CONCLUSION In this paper we describe the architecture of a complete DMCS compliant with the 1451.1 Std, which is composed by three main parts NCAP/XML Stations, the Information Server and a Web-enabled HMI application. In our opinion, the system accomplishes five main objectives: Compliance: The system behaviour was thought according to the directives of the 1451.1 Std. Interoperability: All data exchanged between NCAP/XML Stations and the IS is encapsulated in SOAP messages. Scalability: The system is highly scalable by allowing future extensions, not only in terms of devices (any device with an XML parser can be added), but also in terms of network protocols (which are abstracted by the 1451.1 object model). Performance: The new version of NCAP/XML is simpler, faster and targeted for embedded devices. In addition, the data flow between NCAP/XML Stations and the IS is done asynchronously, by means of events, not pooling. Easy to maintain: The centralized storage of all configuration files and script files in the IS helps system maintenance. 5