Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [science-iwg] Few considerations from the yesterday meeting

Hi Mario,

It would be good to collaborate more with the Taverna community.   If only they were in the Eclipse Foundation, then it would be much easier.  One key difference between Taverna and Ptolemy/Kepler/Triquetrum is that Taverna supports one model of computation, whereas Ptolemy/Kepler/Triquetrum supports multiple models of computation, see http://dev.mygrid.org.uk/wiki/pages/viewpage.action?pageId=18974818 from May, 2014.  This may have changed with recent Taverna work.  The Taverna community seems very active, one of their mailing lists had 1748 messages in 2015.  Triquetrum and Kepler could learn much from Taverna.

Ptolemy does support RESTful interfaces as part of the Ptango project (https://chess.eecs.berkeley.edu/ptango/).  The Ptango project has evolved in to Accessors, described below.

One goal I have for Triquetrum is to use it as a platform for Accessors, which is a technology for composing heterogenous devices and services in the Internet of Things.  I see work that involves sensing and actuating as a cyber-physical system (CPS).  IoT systems are a type of CPS.  I see quite a bit of connection between scientific computing involving computation and actuation of large physical systems and CPS and thus IoT. An Accessor may be a service such as a RESTful service that provides machine learning about audio data.  The Accessors work is under active development by Professor Edward A. Lee and others. Details about Accessors may be found at http://accessors.org

_Christopher


What are Accessors?

Accessors are a technology,developed by the TerraSwarm Research Center, for composing heterogeneous devices and services in the Internet of Things (IoT).

An actor is a software component that reacts to streaming input events and produces streaming output events. An accessor is an actor that wraps a (possibly remote) device or service in an actor interface.

Accessors embrace concurrency, atomicity, and asynchrony. The actor model, which governs interaction between accessors, permits accessors to execute concurrently with segregated private data and a message-passing interface for interaction. Internally, many accessors use asynchronous atomic callbacks (AAC) to invoke remote services and handle responses asynchronously and atomically. See comparisons with related technologies for insight into how accessors work.

Accessors are defined in a _javascript_ file that includes a specification of the interface (inputs, outputs, and parameters) and an implementation of the functionality (reactions to inputs and/or production of outputs). Any _javascript_ file that conforms with the accessor specification defines an accessor class.

The TerraSwarm accessor library provides a collection of example accessors. This library is maintained via an SVN repository that permits many contributors to add accessors to the library.

An instance of an accessor is created by a swarmlet host that evaluates the _javascript_ in the accessor definition. At this time, there are at least three accessor hosts compatible with accessor specification 1.0:

  • A browser host, which allows inspection of the accessor, and if the accessor is suitable for execution in a browser, interactive invocation of the accessor.
  • A Node.js host, an interactive program that runs in Node.js that allows instantiation and execution of accessors.
  • A Ptolemy II host, which supports composition of accessors with visual block diagrams and provides a large library of actors that the accessors can interact with.

To experiment with accessors now, see Getting Started with Accessors.



On 6/7/16 4:44 AM, Erwin de Ley wrote:
Hi Mario,

Thank you for the very interesting summary and points-of-view.

I must first of all apologize for the somewhat chaotic intro to Triquetrum.
I was tired from traveling and was not well prepared for the kind of "sales pitch" format ;-)

To address your remarks below, in the context of Triquetrum :

1. As I explained, a large part of the internal architecture is inherited from a predecessor project called Passerelle.
This also uses Ptolemy II as its "engine", and mainly targets server clusters as deployment platform for production usage.
Workflows get launched, hundreds of thousands a day, via remote service invocations, scheduled jobs etc. (and only sometimes by user triggers)

It has been developed as OSGi bundles since 10 years or so allowing us to package it depending on the target environment needs.
One incarnation is using a plain personal GUI in Swing (derived from Ptolemy's Vergil). It can do workflows locally or connect to a server to edit,configure models, run them on the server and get progress info back.
The other extreme (which is not open source though) is a complete web-based management GUI + web-based editor etc.

These approaches share most of their modules, but have different interface/view components on top of that (a bit like the Sandia packaging approach from the meeting yesterday).

The goal for Triquetrum in this respect would be to contain all required service APIs and core implementations. But I don't think currently that the web-based interface would be rebuilt in there (unless we can get significant interest and collaboration to get that done). I would try to reach a situation where the RCP application could act as management tool and editor in a kind of client/server setup.

2. About development languages : we're natively Java-based, but integration with R, Python/Jython, _javascript_, Drools, ... is available in different ways in Ptolemy, Passerelle and related Science projects.
Python is on the list as the first "non-JVM" integration in Triquetrum. The basis could be the work we've done in the past to get that working on Passerelle workflow servers at ESRF.
That code has been prepared for reuse, this will be discussed this week with Jonah Graham (Kichwa Coders) who has deep knowledge on Java/Python integration and on the related Science projects.
FYI, the screenshots of the beamline experiment that you refer to, were completely based on using a workflow definition as a coordination of Python scripts that they already had.
And their custom GUI to control the beamlines is also Python and Qt if I'm not mistaken, so we're surrounded by it! ;-)

3. The Triquetrum slides will be my talk at EclipseCon Toulouse tomorrow. I'll make them available from our Wiki, and I guess Eclipse will also upload them on the EclipseCon site.

Regards

erwin

Op 07/06/2016 om 09:23 schreef Mario Valle:

Dear group,
thanks for the yesterday meeting! It was really informative and helpful to me.

One of my jobs here at CSCS is to find, if it exists, a workflow manager that could be adopted for applications like the Material Cloud, the NExT VRE European project, or in general for the kind of computational experiments done at CSCS. The second goal is to understand what these systems need to provide to become the generic workflow management system that could be offered as a service by CSCS.

That said, I should confess that I “kindly hate” workflow managers that do everything locally behind a GUI. I found them limited and not very user friendly. Maybe it is better to call them, as KNIME does, “analytics platforms”. For these reasons, I was pleasantly surprised to hear about the Sandia work and their split desktop / HPC workflow “console”. Also the Triquetrum from the slides (contrasted to the one downloaded from the Eclipse project) seems heading in this direction.

The second thing I discovered yesterday is that integration with HPC machines and workload managers is possible. Seems trivial, but WF managers like FireWorks have a quite clumsy way to do this. AiiDA is in a better shape, but it is inextricably linked to the material simulation part. On a different path, Taverna introduced the executable components as Web services and Triquetrum will have REST services. In my opinion, this is the right way to decouple the “console” (WF editor and management) from the execution part.

Last consideration is about how to define and make available new executable components. I grew up with massive doses of C, C++, Shell, TCL/TK and Python so I tend to stay clear of every WF tool that requires Java programming, but I welcome Python and R scripting. From the presentations seems I'm not alone in this request.

To make complete my learning I would like to ask one thing. Is it possible to access the slides presented yesterday? And to have pointers to the public tools mentioned? Forgive me if I have misunderstood or forgot something from yesterday, but with Socrates: “I know that I do not know”.

See you!
        mario



_______________________________________________
science-iwg mailing list
science-iwg@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/science-iwg

-- 
Christopher Brooks, PMP                       University of California
Academic Program Manager & Software Engineer  US Mail: 337 Cory Hall
CHESS/iCyPhy/Ptolemy/TerraSwarm               Berkeley, CA 94720-1774
cxh@xxxxxxxxxxxxxxxxx, 707.332.0670           (Office: 545Q Cory)

Back to the top