Java Channel Access Client and Server Library - status

Slides:



Advertisements
Similar presentations
Control System Studio (CSS) Data Access Layer (DAL) Kay Kasemir, Xihui Chen July 2009.
Advertisements

Channel Access Enhancements J. Hill. R3.14 Enhancements Large array support in the portable server –nearly complete –a priority for SNS Port syntax for.
EPICS Channel Access Overview 2006
EPICS Architecture Version 3 Channel Access Client (CAC) Connection Data Transfers WAN/LAN/Local Connection Data Transfers Channel Access Server (CAS)
ORNL is managed by UT-Battelle for the US Department of Energy EPICS V4 for SNS Neutron Data Kay Kasemir Oct
AreaDetector Data Processing Pipeline In EPICS V4 Dave Hickin Diamond Light Source EPICS Collaboration Meeting Diamond Light Source 01/05/2013.
JCA 2.0 Eric. Boucher – APS EPICS Collaboration Meeting - June 18-20, 2003.
User Level Interprocess Communication for Shared Memory Multiprocessor by Bershad, B.N. Anderson, A.E., Lazowska, E.D., and Levy, H.M.
Java implementation of Channel Access (CAJ) Matej Šekoranja ( presented by Rok Šabjan ) Funded by DLS (M.Heron) and DESY (M.Clausen) EPICS Meeting – SLAC,
Threads. Processes and Threads  Two characteristics of “processes” as considered so far: Unit of resource allocation Unit of dispatch  Characteristics.
1 Thread Pools. 2 What’s A Thread Pool? A programming technique which we will use. A collection of threads that are created once (e.g. when server starts).
Software Patterns - F04 Asynchronous Completion Token 1.
EPICS and Java Michael Dorin Metropolitan State University St. Paul, MN.
Programming Network Servers Topic 6, Chapters 21, 22 Network Programming Kansas State University at Salina.
A U.S. Department of Energy Office of Science Laboratory Operated by The University of Chicago Argonne National Laboratory Office of Science U.S. Department.
Kazuro Furukawa, KEK, Jul Jacva and JCA / CAJ EPICS Workshop 2006, VECC, India 1 Java and JCA / CAJ Kenneth Evans, Jr. October 12, 2004 Part of the.
1 Lecture 4: Threads Operating System Fall Contents Overview: Processes & Threads Benefits of Threads Thread State and Operations User Thread.
Pattern Oriented Software Architecture for Networked Objects Based on the book By Douglas Schmidt Michael Stal Hans Roehnert Frank Buschmann.
SC84, Epics C# Library Written by Christoph Seiler Presented by Dirk Zimoch.
10/20/2015J-PARC1 Control Room Accelerator Physics Channel Access – Connection to Hardware Through EPICS Getting Information directly from the Control.
(Java) CA Client Libraries Status Matej Šekoranja
240-Current Research Easily Extensible Systems, Octave, Input Formats, SOA.
Distributed Information Systems. Motivation ● To understand the problems that Web services try to solve it is helpful to understand how distributed information.
CSS – Control System Studio
Application of Design Heuristics in the Designing and Implementation of Object Oriented Informational Systems.
Evolution of VisualDCT Jaka Bobnar Matej Sekoranja Igor Verstovsek
Discussion Week 2 TA: Kyle Dewey. Overview Concurrency Process level Thread level MIPS - switch.s Project #1.
E81 CSE 532S: Advanced Multi-Paradigm Software Development Venkita Subramonian, Christopher Gill, Ying Huang, Marc Sentany Department of Computer Science.
Real world OS programming Nezer J. Zaidenberg.  Create process/thread  File and directory I/O  I/O multiplexing  Sync and locking  Access system.
Threads, SMP and Microkernels Process vs. thread: –Unit of resource ownership (process has virtual address space, memory, I/O channels, files) –Unit of.
Multi player client sever Snake Game Technology : JAVA (swing for user interface and Socket for passing coordinates of snakes, food item and score)
Couchbase for Mobile Couchbase Lite & Sync Gateway
cs612/2002sp/projects/ CS612 Term Projects cs612/2002sp/projects/
Top 8 Best Programming Languages To Learn
Chapter 4: Threads.
Event Handling Patterns Asynchronous Completion Token
Advanced Topics in Concurrency and Reactive Programming: Asynchronous Programming Majeed Kassis.
CSE 775 – Distributed Objects Submitted by: Arpit Kothari
Implementing Localization
Week 2, Day 1: The Factory Method Pattern
Processes and Threads Processes and their scheduling
Day 12 Threads.
Robert Szuman – Poznań Supercomputing and Networking Center, Poland
A task-based implementation for GeantV
Distribution and components
RDA3 high-level – API & architecture 26th JUNE 2013
Lecture 5: GPU Compute Architecture
Pluggable Architecture for Java HPC Messaging
SLAC USA Marty Kraimer and Matej Sekoranja
McIDAS-V: Why it’s Based on VisAD and IDV
Model-View-Controller
CS 501: Software Engineering Fall 1999
Part of the EPICS “Getting Started” Lecture Series
Half-Sync/Half-Async (HSHA) and Leader/Followers (LF) Patterns
Integrating DPDK/SPDK with storage application
Threads and Concurrency
Threads Chapter 4.
Grid Coordination by Using the Grid Coordination Protocol
MPJ: A Java-based Parallel Computing System
A GUI Based Aid for Generation of Code-Frameworks of TMOs
Basic organizations and memories in distributed computer systems
EPICS ArchiveViewer Project
Chapter 5 & 6 UDP 서버/클라이언트 u-Network Design Lab 5.
Outline Chapter 2 (cont) Chapter 3: Processes Virtual machines
CS703 - Advanced Operating Systems
Chapter 13: I/O Systems.
ESDEN - modernisation of data exchange in the ESS
The reactor design pattern
Thread per client and Java NIO
Presentation transcript:

Java Channel Access Client and Server Library - status Matej Šekoranja matej.sekoranja@cosylab.com Presented at the EPICS Meeting in Padova, 2008-10-17

CAJ Client library Duplicate channel creations Implementation of Channel Access in Java 100% pure Java solution, no JNI Last release is: Release 1.1.3 - 2006-12-20 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 1.1.5 (to be released in a week) Cosylab 2008

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

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

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

Thank You for Your Attention Cosylab 2008