Presentation is loading. Please wait.

Presentation is loading. Please wait.

Java Channel Access Client and Server Library - status

Similar presentations


Presentation on theme: "Java Channel Access Client and Server Library - status"— Presentation transcript:

1 Java Channel Access Client and Server Library - status
Matej Šekoranja Presented at the EPICS Meeting in Padova,

2 CAJ Client library Duplicate channel creations
Implementation of Channel Access in Java 100% pure Java solution, no JNI Last release is: Release People are happy, no problems…. Well… actually, there were 2: Duplicate channel creations Thanks to Marty and DLS for extensive testing Slow connection speed when connecting to several thousands of channels at once Thanks to Kay Kasemir and Tom Pelaia for testing Solved in release (to be released in a week) Cosylab 2008

3 Common CAJ (JCA) misuse
Major problem flushIO(), pendIO(timeout), pendEvents(time) pendIO(timeout) is being used for all to be used only for sync. (blocking) get and channel creation operations are context-wide, therefore must be used with care in multi-threaded applications many threads calling pendIO(timeout) simple brute-force synchronization will degrade performance asynch. CA calls have to be used non-perfect implementation of CA asynch. calls (get, put, create channel) “basic” java synchronization mechanism, still in 99% code examples I’ve received not implemented in a right way Cosylab 2008

4 CAJ Server library Already used by Gemini, DESY, Marty’s javaIOC
It’s a Java “equivalent” of C++ Portable Channel Access Server Easy way to integrate non-EPICS data/variables into EPICS env. clean, flexible, programmer friendly design easy != something that is possible easy == couple of minutes Complete, finished implementation Release plan: this year. Cosylab 2008

5 Future work None?  A few problem reports from the first release (Nov 2004), none for a half of a year (extensive users are happy with v1.1.5) Extensions to CA (structures)? EPICS v4? CAJ server/client is based on state-of-the-art communication ”framework” Acceptor/connector: an object creational pattern for connecting and initializing communication Services Leader/Followers: design pattern for efficient multi-threaded event demultiplexing and dispatching Reactor: synchronous I/O  can be used as a base to develop new communication protocols Cosylab 2008

6 Thank You for Your Attention
Cosylab 2008


Download ppt "Java Channel Access Client and Server Library - status"

Similar presentations


Ads by Google