Minutes of MW meeting Wednesday, 30 August 2000


Present: Alessandro (secretary), Francois, Jens, Nikolai, Steen, Vito

Excused: Francesco, Kris, Marc


Progress Reports

 

1. JAVA DEVELOPMENTS

    1.1 JAVA PUBLIC CLIENT API

Vito has implemented a first version of the monitoring API based on the JAVA PRIVATE CLIENT API built on the top of JMS.

The get/set interfaces will be implemented once Nikolai will release the first beta version of his JAVA PRIVATE CLIENT API.

    1.2 JAVA PRIVATE CLIENT & SERVER APIs

Nikolai has written a first version of the PRIVATE JAVA APIs. He also has set up a test environment soliciting both client and server APIs. The client is able to set/get/monitor properties on a server emulating 1000 devices with properties of different types.

        1.2.1 DELIVER THE FIRST RELEASE

A first release of this API will be made available by the end of this week (1 Sept.) on the AFS MW directory.  Diagnostic is not fully implemented and bugs are expected. 

        1.2.2 SMALL API DIFFERENCES

Francois pointed out that there are small differences between the JAVA PRIVATE CLIENT API implemented by Nikolai and the one under his responsibility. Differences will be removed once both software implementation will become more stable (September). 

        1.2.3 CORBA NAMING SERVER

The CORBA Naming Server used during the tests is the one serving the PS operational programs.

To avoid to pollute the naming server,  Nikolai will  install the latest version of ORBacus for JAVA on the AFS MW directory. The ORBacus Naming Server will then run on PCSLUX8 or 9. This action is expected for next week.

Nikolai will then switch to the development of the C++ CORBA server on LynxOS.

 

    1.3 TEST ENVIRONMENT

        1.3.1 AFS ON SL-LINUX COMPUTERS

The 2 Linux machines installed on the Pavillon should mount the AFS MW directory as soon as possible. This will allow to access & run the software delivered under AFS (e.g. see § 2.1).

Vito will contact the SL LINUX administrator and ask him to install AFS on these machines & mount the MW directory.

If you need the user name & password or access grants, please contact Vito.

        1.3.2 TEST ON PUB/SUB PERFORMANCES

Stephane has written a program able to configure a test environment for Pub/Sub. He will leave the 1st of September. Francois is now taking over the responsibility  of this software.

Francois will provide us with performance tests on MoM Pub/Sub on predefined subjects. 

The test consists of N clients subscribing to a set of static subjects defined in a (emulated) database. M agents publish simple data on these subjects. N & M values are dynamically configurable via the test program. 

The program is written in Java and has been already run both on LINUX and WinNT computers.

 

2. C++/LYNXOS DEVELOPMENTS

    2.1 DEVELOPMENT ENVIRONMENT

All C++/LYNXOS developments are carried out on a SUN computer (SUNPS1), where the cross-dev. environment for LynxOS 3.01 (and 3.1) is installed. ORBexpress is also installed on the same computer.

    2.2 SERVER FRAMEWORK

Steen has implemented a first version of the server framework. The CORBA get/set/monitor calls and the value returned by the devices are emulated. The server uses multiple threads; shared resources like lists are thread-safe. 

He now concentrate on exception handling, usage of Data & DataEntry containers and, finally, to the real connection to the GM library.

        2.2.1 LYNXOS PORT OF JThreads/C++

Steen tried to port the library JThreads/C++ (JTC) on LynxOS 3.01. This action cannot be completed because the pthread POSIX release supported by LynxOS 3.01 is lower than the one used in JTC.

Alessandro has verified that both LynxOS 3.1 and LINUX Red Hat 6.1 support the pthread calls used by JTC.  

JTC will be ported only on LynxOS 3.1 and LINUX OSs and not on LynxOS 3.01. JTC will be then used in the C++ server framework software.

        2.2.2 STANDARD TEMPLATE LIBRARY

The usage of this library has been abandoned. The gcc compiler available on LynxOS 3.01 don't support all STD features and its implementation is not thread-safe. In addition, the workaround for well known problems proposed by Lynx/Cygnus did not work. 

Nikolai, Steen and Alessandro decided to use house-made classes for lists, hash tables, etc.

        2.2.3 EXCEPTION HANDLING IN C++ APIs

ORBexpress uses a proprietary mechanism to report exceptions. This mechanism is based on 3 macros called TRY/CATCH/THROWN, which emulate the C++ standard exceptions management.

Steen, Nikolai and Alessandro would like to support exception handling in the C++ PRIVATE & PUBLIC SERVER API. This should allow to write more robust code and to avoid the C-like style for error reporting.

Alessandro has asked ORBexpress developers if they can produce a version the ORB library  enabling the C++ exception handling (outside their ORB). This will allow to use the C++ exceptions in our code and to use the THROWN macro only when an exception must be returned to the remote client.

        2.2.4 C++ Data & DataEntry CLASSES

Alessandro is writing the C++ Data & DataEntry header files, specifying the same functionality as the ones available in JAVA. He is also producing the C++ skeleton of each method. Nikolai will take over this development and map the methods on the top of CORBA.

    2.3 SHARING C++ UTILITY CLASSES

Nikolai said that we should have a common repository for all utility classes shared by C++ developers. In particular, the classes implementing the containers like List, Hash Table etc., plus the wrappers built to easy the threads management should be shared by all developers.

The C++ developers should meet and organize that.

    2.4 PS MOVES TO LYNXOS 3.1

Alessandro signaled that PS/CO plans to move from LynxOS 2.5.1 to LynxOS 3.1 for next startup.

Nicolas De Metz-Noblat & Alain Gagnaire have already installed the cross-dev. environment for LINUX and SUN targeting the PPC front-end computers. As soon as CES will deliver his LynxOS version, they will start the porting process.

This seriously influence the environment for the server framework development.

Alessandro has already requested the ORBexpress library for LynxOS 3.1. If nothings goes wrong with the porting process, it is expected by the end of September.

Kris should verify what SL/CO plans to do. An alternative server framework development should eventually be explored, e.g.: 

A suivre...

3. OPC DEVELOPMENTS

Jens set up a test environment for OPC.

A CORBA client executed a synchronous get on a CORBA Server-OPC Client gateway. The gateway passed the call to the OPC server and a value of type double is then returned. The round trip is around 100-200 get calls per second (5-10 msec per get call).

He used a single WinNT machine, developed the code in VisualC++ 6.0, and used ORBacus 4/C++ plus the Softing OPC server. Jens signaled that the OPC server only changes the return value once per second (slow).

The context of the work carried out by Jens should be clarified a.s.a.p. by Kris. 

Kris should also report to the MW team about the architecture he has in mind and about the mapping of the Device/Property model on the OPC world. During the meeting has also been said that the CORBA server developments carried out on WinNT should be separated from the OPC client adapter code. This will allow to reuse this server framework for other NT developments.

 

ACTIONS

There many actions to be taken: close to each paragraph title, there is the list of involved people.

1. JAVA DEVELOPMENTS

    1.2 JAVA PRIVATE CLIENT & SERVER APIs

        1.2.1 DELIVER THE FIRST RELEASE - NIKOLAI

        1.2.2 SMALL API DIFFERENCES - FRANCOIS - NIKOLAI - VITO

        1.2.3 CORBA NAMING SERVER - NIKOLAI

    1.3 TEST ENVIRONMENT

        1.3.1 AFS ON SL- LINUX COMPUTERS - VITO

        1.3.2 TEST ON PUB/SUB PERFORMANCES - FRANCOIS

2. C++/LYNXOS DEVELOPMENTS

    2.2 SERVER FRAMEWORK - STEEN

        2.2.1 LYNXOS PORT OF JThreads/C++ - SUSPENDED

        2.2.2 STANDARD TEMPLATE LIBRARY - ABANDONED

        2.2.3 EXCEPTION HANDLING IN C++ APIs - ALESSANDRO - STEEN - (NIKOLAI)

        2.2.4 C++ Data & DataEntry CLASSES - ALESSANDRO - (NIKOLAI)

    2.3 SHARING C++ UTILITY CLASSES - ALESSANDRO - JENS - NIKOLAI - STEEN

    2.4 PS MOVES TO LYNXOS 3.1 - KRIS - ALESSANDRO - ?

3. OPC DEVELOPMENTS - KRIS - JENS