channelfinder: a directory service - stanford university lange – bessy . ... –from channel...

16
ChannelFinder: A directory service Kunal Shroff BNL Ralph Lange BESSY

Upload: phungtruc

Post on 07-Mar-2018

221 views

Category:

Documents


3 download

TRANSCRIPT

ChannelFinder: A directory service

Kunal Shroff – BNL Ralph Lange – BESSY

pvManager

Graphene

IOC

CA client (JCA/CAJ)

CSS

Co

re

ChannelFinder Integration

Olog Integration

ChannelFinder

Olog

DataBrowser

BOY

CSS

IOC … IOC

pvA client

IOC … v3

AccelUtils

v4

Pu

blis

h/s

ub

scri

be

Command/response

v4

Masar

...

pvA Sim Test

API

Web based REST services

API

Java/Python

cf-update

Scripts and utilities

Logbook

Web UI and other clients

CA Core Client Technologies Data Sources

Aggregation

Visualization

vTypes Data Definition

Motivation

• Problem: A flat name space restricts seriously

– Clients need to know all channels beforehand

– Applications need full configuration

• Solution: A generic directory service

– Provides “query-by-functionality”

– No dependence on installation and local conventions

Architecture

REST

ChannelFinder

MySQL

Glassfish

HTML json/XML

Getting Started

Installation

• Download and Install glassfish

• Download and Install MySQL

• Download the ChannelFinder

– Run channelfinder-base.sql scrip to create database

– Drop the channelfinder.war into autodeploy folder of glassfish

– Create JDBC connection pool resource

ChannelFinder at BNL

IOCs

Glassfish Web service

/cf-update

Web proxy

CSS Scripts to

- populate properties - create lattice

channelfinder.nsls2.bnl.gov

NFS update

daemon

dependency

data flow

Java lib Python lib

Getting channels from the IOCs

IOCs /cf-update

channelfinder.nsls2.bnl.gov

NFS

dependency

data flow

• Populate ChannelFinder • Manage Orphaned and Moved

Channels

Updating channel list

Glassfish Web service

/cf-update

channelfinder.nsls2.bnl.gov

update daemon

dependency

data flow

Usage from high level physics

Glassfish Web service

Scripts to - populate properties

- create lattice

channelfinder.nsls2.bnl.gov

dependency

data flow

Python lib

Usage from high level physics

• Our physics group adds properties/tags • From Linyun Yang (accelerator physics) talk:

– From Channel Access to Channel Finder Service: • Channel Accesses in Python and Matlab are simple to use. • High level applications (HLA) deals with thousands of magnets,

instruments and more channels. • Organized/structured channel information is necessary. • Channels linked to accelerator lattice and diagnostics are even

better. • Searching instead of remembering is easier for HLA users.

– A “dictionary” service can help HLA to manage the channels and build a lattice structure to which the AP is familiar. (they done simulation, analysis with it in the design).

device FM1G4C02A Channel Name

SR:C02-MG:G04A{HFCor:FM1} SR:C02-MG:G04A{VFCor:FM1}

Fld-I Fld-SP Fld-I Fld-SP

handle READBACK SETPOINT READBACK SETPOINT

elemName FXM1G4C02A FYM1G4C02A

elemType HFCOR VFCOR

elemField x y

devName FM1G4C02A

sEnd 65.5222

cell C02

girder G4

symmetry A

length 0.044

ordinal 263 264

tags

eget eput eget eput

x y

sys.SR

Usage from high level physics

• Physics group can re-create the lattice from the information in channel finder

• By tags, different lattices can be built, and elements can be shared between them.

– Sharing is important for injection, where LTD1 and LTD2 shares a lot of elements with LTB

CSS & ChannelFinder

Glassfish Web service

CSS

channelfinder.nsls2.bnl.gov

dependency

data flow

Java lib

A brief history of ChannelFinder

2011/9 Java lib 2.1

2012/1 Service 1.1

2010/11

Service 1.0 Java lib 1.0

SourceForge Continuous Integration

2011 2012

2012/3 Python lib 1.1

2011/6 CSS Application

Channel Viewer 2012/3

ChannelFinder Applications Widgets for BOY

Questions?