Andrew Johnson, Argonne National Laboratory · 2013-06-06 · Interoperability and Migration from...

15
Interoperability and Migration from v3 to v4 Andrew Johnson, Argonne National Laboratory

Transcript of Andrew Johnson, Argonne National Laboratory · 2013-06-06 · Interoperability and Migration from...

Page 1: Andrew Johnson, Argonne National Laboratory · 2013-06-06 · Interoperability and Migration from v3 to v4 — Spring 2013 EPICS Collaboration Meeting — RAL, Harwell Oxfordshire

Interoperability and Migration from v3 to v4

Andrew Johnson,Argonne National Laboratory

Page 2: Andrew Johnson, Argonne National Laboratory · 2013-06-06 · Interoperability and Migration from v3 to v4 — Spring 2013 EPICS Collaboration Meeting — RAL, Harwell Oxfordshire

Interoperability and Migration from v3 to v4 — Spring 2013 EPICS Collaboration Meeting — RAL, Harwell Oxfordshire

2

Outline

■ Terminology■ Architecture■ Interoperability■ Migration■ Impediments■ Conclusions

Page 3: Andrew Johnson, Argonne National Laboratory · 2013-06-06 · Interoperability and Migration from v3 to v4 — Spring 2013 EPICS Collaboration Meeting — RAL, Harwell Oxfordshire

Interoperability and Migration from v3 to v4 — Spring 2013 EPICS Collaboration Meeting — RAL, Harwell Oxfordshire

3

Terminology

■ Channel Access (CA)● The same network protocol used in 3.14.x, 3.13.x, 3.12.x and earlier versions

□ There are no v4 changes to the CA protocol or the current CA client API

■ IOC, IOC Core● No change, v4 IOCs use the same database, record and device support as before

■ pvAccess (PVA)● New network protocol and its associated APIs, implemented in both C++ and Java

■ pvaSrv● A pvAccess server for IOC Core, makes fields accessible over PVA network protocol● An IOC running pvaSrv may be called a V4 IOC

■ Bilingual● A client or server that can communicate using CA, PVA or both

Page 4: Andrew Johnson, Argonne National Laboratory · 2013-06-06 · Interoperability and Migration from v3 to v4 — Spring 2013 EPICS Collaboration Meeting — RAL, Harwell Oxfordshire

Interoperability and Migration from v3 to v4 — Spring 2013 EPICS Collaboration Meeting — RAL, Harwell Oxfordshire

4

Desired Architecture

ChannelAccessServer

Channel AccessClient Library

IOC Database

CA client

V3 ClientApplication

CA links(dbCa)

Page 5: Andrew Johnson, Argonne National Laboratory · 2013-06-06 · Interoperability and Migration from v3 to v4 — Spring 2013 EPICS Collaboration Meeting — RAL, Harwell Oxfordshire

Interoperability and Migration from v3 to v4 — Spring 2013 EPICS Collaboration Meeting — RAL, Harwell Oxfordshire

5

Desired Architecture

ChannelAccessServer

Channel AccessClient Library

IOC Database

pvAccessClient Layer

V4 Client Application

CA client

V3 ClientApplication

pvAccessServer Layer

V4 Server

CA links(dbCa)

Page 6: Andrew Johnson, Argonne National Laboratory · 2013-06-06 · Interoperability and Migration from v3 to v4 — Spring 2013 EPICS Collaboration Meeting — RAL, Harwell Oxfordshire

Interoperability and Migration from v3 to v4 — Spring 2013 EPICS Collaboration Meeting — RAL, Harwell Oxfordshire

6

Desired Architecture

ChannelAccessServer

Channel AccessClient Library

IOC Database

pvAccessClient Layer

Channel AccessClient Library

pvAccess API

V4 Client Application

CA client

V3 ClientApplication

pvAccessServer Layer

V4 Server

CA links(dbCa)

Page 7: Andrew Johnson, Argonne National Laboratory · 2013-06-06 · Interoperability and Migration from v3 to v4 — Spring 2013 EPICS Collaboration Meeting — RAL, Harwell Oxfordshire

Interoperability and Migration from v3 to v4 — Spring 2013 EPICS Collaboration Meeting — RAL, Harwell Oxfordshire

7

Desired Architecture

pvAccessServer

(pvaSrv)

ChannelAccessServer

Channel AccessClient Library

IOC Database

pvAccessClient Layer

Channel AccessClient Library

pvAccess API

V4 Client Application

CA client

V3 ClientApplication

pvAccessServer Layer

V4 Server

CA links(dbCa)

Page 8: Andrew Johnson, Argonne National Laboratory · 2013-06-06 · Interoperability and Migration from v3 to v4 — Spring 2013 EPICS Collaboration Meeting — RAL, Harwell Oxfordshire

Interoperability and Migration from v3 to v4 — Spring 2013 EPICS Collaboration Meeting — RAL, Harwell Oxfordshire

8

Desired Architecture

pvAccessServer

(pvaSrv)

ChannelAccessServer

Channel AccessClient Library

IOC Database

pvAccessClient Layer

Channel AccessClient Library

pvAccess API

V4 Client Application

CA client

V3 ClientApplication

PVA client pvAccessServer Layer

V4 Server

CA links(dbCa)

PVA links

Page 9: Andrew Johnson, Argonne National Laboratory · 2013-06-06 · Interoperability and Migration from v3 to v4 — Spring 2013 EPICS Collaboration Meeting — RAL, Harwell Oxfordshire

Interoperability and Migration from v3 to v4 — Spring 2013 EPICS Collaboration Meeting — RAL, Harwell Oxfordshire

9

C++ Current Implementation

pvAccessServer

(pvaSrv)

ChannelAccessServer

Channel AccessClient Library

IOC Database

pvAccessClient Layer

pvAccess API

pvAccess ClientlibCa Client

pvAccessServer Layer

pvAccess Server

CA client

CA links(dbCa)

Page 10: Andrew Johnson, Argonne National Laboratory · 2013-06-06 · Interoperability and Migration from v3 to v4 — Spring 2013 EPICS Collaboration Meeting — RAL, Harwell Oxfordshire

Interoperability and Migration from v3 to v4 — Spring 2013 EPICS Collaboration Meeting — RAL, Harwell Oxfordshire

10

Pure Java Current Implementation

pvAccessServer

JCASServer

CAJ Client

pvIOCJava Database

PVA Client

pvAccess API

pvAccessJAVA Client

CAJ client

JCA Client

PVA client pvAccessServer Layer

JCA Client API

CA Links

CAJ client

pvAccess Server

Page 11: Andrew Johnson, Argonne National Laboratory · 2013-06-06 · Interoperability and Migration from v3 to v4 — Spring 2013 EPICS Collaboration Meeting — RAL, Harwell Oxfordshire

Interoperability and Migration from v3 to v4 — Spring 2013 EPICS Collaboration Meeting — RAL, Harwell Oxfordshire

11

Desired functionality

■ Client applications should be able to● Exchange complex structured data (pvData) with pvAccess servers (PVA protocol)● Communicate with v3 IOCs and other CA servers using just the pvAccess API (CA

protocol)□ Existing client programs must be modified or extended to use the pvAccess API

■ IOCs should be able to● Publish individual and sets of record fields using a pvAccess server (pvaSrv)

□ Atomic access to multiple records or multiple fields on one IOC as a structure or array

● Point record link fields to pvAccess channels as well as CA channels□ Full bilingual link support, not just soft device support

Page 12: Andrew Johnson, Argonne National Laboratory · 2013-06-06 · Interoperability and Migration from v3 to v4 — Spring 2013 EPICS Collaboration Meeting — RAL, Harwell Oxfordshire

Interoperability and Migration from v3 to v4 — Spring 2013 EPICS Collaboration Meeting — RAL, Harwell Oxfordshire

12

Interoperability

■ Bilingual Clients● pvAccess clients written in Java can be made bilingual

□ The application just calls a different channel provider to connect over CA□ The CA channel provider is not available for C++ clients yet

● Bilingual clients can communicate with existing IOCs without them having to run pvaSrv

■ Bilingual IOCs● Any IOC with pvaSrv running is a bilingual server

□ Record fields can be accessed over either CA or PVA□ Atomic multi-record or multi-field access is not supported yet

● Writing device support that addresses pvAccess channels should be relatively simple

● Fully supporting PVA links in all record link fields will be a major project□ Resurrecting parts of the Link Support design I presented in 1999□ This might break backwards compatibility for some PV names

Page 13: Andrew Johnson, Argonne National Laboratory · 2013-06-06 · Interoperability and Migration from v3 to v4 — Spring 2013 EPICS Collaboration Meeting — RAL, Harwell Oxfordshire

Interoperability and Migration from v3 to v4 — Spring 2013 EPICS Collaboration Meeting — RAL, Harwell Oxfordshire

13

Migration

■ How to get from v3 to v4?● Control System Studio users

□ Upgrade to a version of CSS than includes pvAccess support

● Python developers□ Work has started on a Python API for pvAccess — help welcome

● IOC developers can add pvaSrv to existing 3.14.12 IOCs□ Add a few v4 modules to the RELEASE file□ Add one DBD file and some libraries to the IOC in its Makefile□ Add two lines to the IOC start-up script

■ IOCs will have to run EPICS 3.15 to use future versions of pvAccess● Modifications to IOC Core will be needed for some features

Page 14: Andrew Johnson, Argonne National Laboratory · 2013-06-06 · Interoperability and Migration from v3 to v4 — Spring 2013 EPICS Collaboration Meeting — RAL, Harwell Oxfordshire

Interoperability and Migration from v3 to v4 — Spring 2013 EPICS Collaboration Meeting — RAL, Harwell Oxfordshire

14

Potential Impediments

■ Access Security is not yet implemented in pvAccess

■ No PV Gateway for pvAccess protocol● Sites with firewall-protected IP sub-nets can’t migrate yet● Multi-cast IP and the Channel Finder can be used to cross sub-nets

■ IOCs running older versions of Base or VxWorks must be upgraded● Base 3.14.12.3 (will soon change to 3.15.x)● VxWorks 5.5 or later

■ Microsoft Windows not yet supported

Page 15: Andrew Johnson, Argonne National Laboratory · 2013-06-06 · Interoperability and Migration from v3 to v4 — Spring 2013 EPICS Collaboration Meeting — RAL, Harwell Oxfordshire

Interoperability and Migration from v3 to v4 — Spring 2013 EPICS Collaboration Meeting — RAL, Harwell Oxfordshire

15

Conclusion

■ EPICS v4 can be introduced into existing v3 control systems● pvAccess clients written in Java can talk to existing unmodified IOCs

□ Bilingual versions of CSS can now talk both pvAccess and Channel Access protocols

● Adding a pvAccess server to an EPICS 3.14.12 IOC is simple

■ Future versions of pvAccess will provide additional features● Sites with fire-walled IP subnets that rely on the PV Gateway could help develop

one for pvAccess