Menu

Tree [r4] /
 History

HTTPS access


File Date Author Commit
 DAF 2006-03-13 carcarah [r1] CASCUDO Initial Checkin
 DAIS 2006-03-23 carcarah [r4] New developments...
 OMG-IDL 2006-03-13 carcarah [r1] CASCUDO Initial Checkin
 example 2006-03-23 carcarah [r4] New developments...
 lib 2006-03-13 carcarah [r1] CASCUDO Initial Checkin
 COPYING.txt 2006-03-13 carcarah [r1] CASCUDO Initial Checkin
 MakeIDL.sh 2006-03-13 carcarah [r1] CASCUDO Initial Checkin
 MakeMPC.sh 2006-03-13 carcarah [r1] CASCUDO Initial Checkin
 Makefile 2006-03-13 carcarah [r1] CASCUDO Initial Checkin
 README.txt 2006-03-13 carcarah [r1] CASCUDO Initial Checkin

Read Me

CASCUDO
CIM Adaptor for SCADA and Control systems Underlaid by 
DAIS and Open-source

An OMG DAIS API Prototype/Library

Table of Contents

1 What is Project CASCUDO?
2 Objectives of Project CASCUDO
3 Key technologies for CASCUDO
4 What is a cascudo?
5 Root directory items:
6 What does CASCUDO do?
    6.1 We have already done some work on these implementation files:
    6.2 TODO:
7 Compiling CASCUDO
    7.1 Generating stubs/skeletons from IDL files
    7.2 Generating project Makefiles
    7.3 Running the example client/server programs (assume you are using TAO)



1 What is "Project CASCUDO"?

CASCUDO Project is an attempt to develop a DAIS based 
interface for SCADA/EMS/DMS systems. CASCUDO is focused 
on standards, allowing easy integration of software 
packages using a vendor-independent API and a 
standardized information model.

2 Objectives of Project CASCUDO

* Better understand and dominate EPRI's CIM model and 
  OMG's DAF/DAIS/HDAIS APIs;

* Give a starting point for developers interested in 
  these technologies;

* Make DAIS API more popular and largely adopted (as 
  OPC is?);

* Eventually, produce open source libraries 
  implementing the DAIS API, suitable for use in 
  client/server data acquisition and control systems. 

3 Key technologies for CASCUDO

* CIM: EPRI's Common Information Model. CIM is the 
  resulting effort of EPRI's CCAPI task force, whose 
  objectives are to allow smooth integration between 
  software packages in power systems utilities 
  companies. CIM is now part of an IEC standard (IEC 61970).

* GID: Generic Interface Definition. GID is also part 
  of IEC 61970 standard.

* DAIS: Data Acquisition from Industrial Systems. DAIS 
  is an OMG open API specification, intended for use in 
  utilities control and data acquisition systems. DAIS 
  is an OPC-like API.

* CORBA: OMG's Common Object Request Broker 
  Architecture. CORBA is an open, vendor-independent 
  architecture and infrastructure used to build 
  distributed software systems.

4 What is a "cascudo"?

Cascudo is a generic designation for fishes 
(Hypostomus), also known as "armored catfish", which 
lives in soft ion-poor Brazilian freshwaters. Its body, 
instead of the smooth skin found in regular catfishes, 
is coated by bony plates, making it difficult for 
predators to attack him. It also have a sucker in its 
mouth, allowing it to cling to the surface of rocks and 
water plants, while feeding on the algae found there. 
See http://en.wikipedia.org/wiki/Armored_catfish.

5 Root directory items:

DAIS-CPP/--lib
         |-example
         |-OMG-IDL
         |-DAF
         |-DAIS
         |-MakeIDL.sh
         |-MakeMPC.sh
         |-COPYING.txt
         |_README.txt

* lib folder: libcascudo files.

* example folder: Client/Server example program using libcascudo.

* OMG-IDL folder: OMG IDL files for DAIS.

* DAF folder: source files, generated from IDL, for DAF 
  (DAIS depends on some definitions from DAF).

* DAIS folder: source files, generated from IDL, for DAIS.

* MakeIDL.sh: This shell script generates the cpp 
  source files from OMG IDL files.

* MakeMPC.sh: Run this script to generate the necessary 
  makefiles for the project.

* COPYING.txt: GNU Lesser General Public License file.

* README.txt: ->this file.

6 What does CASCUDO do?

Well... for now it can't do much... Only the 
DAIS::Server interface is (partially) implemented. The 
TODO list is very long :)

6.1 We have already done some work on these 
  implementation files:

* DAISServerI.cpp;

* DAISServerI.h;

6.2 TODO:

* Everything else in the DAIS specs :)

* A CIM database backend interface.

7 Compiling CASCUDO

CASCUDO depends on CORBA. I am using ACE/TAO, and 
everything being done from now on assumes you have 
ACE/TAO installed in $ACE_ROOT folder.

7.1 Generating stubs/skeletons from IDL files

1. Edit "MakeIDL.sh" shell script and fine-tune the 
  settings for your environment;

  Be careful! Using the flag "-GI" can overwrite your 
  implementation files!

2. Run "sh MakeIDL.sh".

7.2 Generating project Makefiles

There are .mpc files in the "lib" and "example" directories 
describing the project. It should be sufficient to run "
sh MakeMPC.sh" in CASCUDO's root directory.

7.3 Running the example client/server programs (assume 
  you are using TAO)

1. Configuring libcascudo

  (a) Install "libcascudo.so" somewhere in your 
    LD_LIBRARY_PATH, or

  (b) Add the "CASCUDO/lib" directory to your 
    $LD_LIBRARY_PATH environment variable (export 
    LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/somewhere/CASCUDO/lib).

2. Starting TAO's Naming Service. Can be done one of 
  these ways (at least): 

  (a) Saving the object reference to a file: 
    $TAO_ROOT/orbsvcs/Naming_Service/Naming_Service -o ns.ior;

  (b) Using Corbaloc: 
    $TAO_ROOT/orbsvcs/Naming_Service/Naming_Service 
    -ORBEndPoint iiop://HOST:PORT (use HOST/PORT as desired);

  (c) Using multicast (TAO only): 
    $TAO_ROOT/orbsvcs/Naming_Service/Naming_Service -m 1.

3. Starting example DAIS server:

  There are three ways of starting the DAIS server. 
  These ways are related to the method used to obtain 
  the Naming Service object reference:

  (a) Pointing directly to the N.S. IOR: DAIS-Server 
    -ORBInitRef NameService=`cat ns.ior`;

  (b) Using Corbaloc: DAIS-Server -ORBInitRef 
    NameService=corbaloc:iiop:HOST:PORT/NameService 
    (use same HOST/PORT of previous item);

  (c) Using multicast: Run whith no args.

  Independently of (abc) ways of starting, DAIS-Server 
  will write its IOR reference to the file "/tmp/DAIS-Server.ior"
  , which can be used to access the DAIS server object.

4. Running DAIS client:

  There are three ways of starting the DAIS client. 
  These ways are related to the method used to obtain 
  the DAIS server object reference:

  (a) Pointing directly to the DAIS server IOR: "
    DAIS-Client -i file:///tmp/DAIS-Server.ior";

  (b) Using corbaloc to obtain the reference to the 
    N.S.: "DAIS-client -ORBInitRef 
    NameService=corbaloc:iiop:HOST:PORT/NameService";

  (c) Using multicast: Run with no args.

References

O.M.G. (OMG). Data Acquisition from Industrial Systems 
Specification (DAIS), Version 1.1, June 2005.