Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

TANGO Kernel meeting, Sep. 2016, ESRF

70 views

Published on

TANGO V10 wish list; Replacing CORBA issues; Status report

Published in: Software
  • Be the first to comment

  • Be the first to like this

TANGO Kernel meeting, Sep. 2016, ESRF

  1. 1. Tango V10 Wishlist Igor Khokhriakov
  2. 2. ● Compose several few A4 pages guides (how to get started) ● Improve in-code documentation: examples, guides. See, for instance, BUG-810 ● Mark topics in the forum as SOLVED when solved ● Launch something like askTango Documentation
  3. 3. Code quality and simplicity ● Use maven for Java and CMake for native; Gradle (???) for agregators and language; Python (???) ● Redesign event system: – do not perform sync call (!!!) – subscription topics: host; server; device; attribute/command – allow user defined events (push(EventType, Data)) – use dedicated sockets pair for heartbeat – distinguish heartbeat error (connectivity errors) from errors returned from server ● restructure Java kernel part (TBD); restructure and clean cpp kernel part ● redesign threading: easier implementation for multithreaded device servers (State& Status update; send event; exception when in FAULT state)
  4. 4. Code quality and simplicity. 2 ● Java – remove slf4j implementation dependency from JtangoServer – mavenize Java tools (Jive, Pogo, Astor etc) – replace DevTangoXXX with native java types ● CPP – rewrite in pure C (TBD)
  5. 5. Usability ● OS integration: systemd; service (no need in Starter) ● events with 0-efforts (start polling automatically when there is a subscriber; stop polling when there is no subscribers) ● three level of API: low level; high level; extended (for backward compatability) ● redesign API: write_read; write_with_read etc (see BUG-812; BUG-809 etc) ● Use REST based pathes to define resources (host, device, attributes, attr etc) ● Generate .xmi from .java using pogo from cli ● Exception hierarchy (currently everything is DevFailed)
  6. 6. Replace CORBA ● simplify and standardize Tango protocol (implementation independent) ● remove IDL (no benefit but only brings complexity)
  7. 7. Removing CORBA issues https://bitbucket.org/tango-controls- collaboration/v10-features- request/overview#markdown-header- removing-corba-issues
  8. 8. Migration to GitHub/git Status Report
  9. 9. cppTango ● svn/Cppapi ● svn/Log4tango ● svn/cpp_test_suite ● svn/cpp_test_ds git/cppTango Goal: anyone is able to clone and compile...
  10. 10. cppTango ● Cmake (everything compiles, tests start) ● Log4tango is part of cppTango ● Pkg-config file for installation library Must be done: – Restructure – Environment independent tests (important for Continuous Integration) – Issues (https://github.com/tango-controls/cppTango/issues)
  11. 11. JTango ● svn/Idl ● svn/JtangoCommons ● svn/JtangoServer ● svn/Tangorb ● svn/etc git/JTango
  12. 12. Other Kernel projects already in git ● TangoSourceDistribution ● TangoDatabase ● TangoAccessControl ● TangoTest ● Tango-idl
  13. 13. Next Green light: ● Astor ● Jive ● Pogo ● Starter ● AtkPanel Requires coordination: ● Archiving ● Binding ● GUI ● tools
  14. 14. Problems (Tasks) ● CppTango: – Restructure and clean up – Setup CI ● Jtango – Restructure – Setup CI with Soleil* ● fix SourceDistribution
  15. 15. Next (non git related) ● Tango protocol ● Low level API (prototype) ● Compare performance ● Estimate compatability

×