A Bridge Too Far? - How To Navigate Eclipse's Remote Frameworks Greg Watson IBM EclipseCon 2014 1
What exactly is the issue? Remoteness is becoming an important factor for applicaoon and tool development There are exisong remote frameworks, but documentaoon is sparse How do I determine which framework best suits my requirements? What factors stop adopoon of a framework? Because this is difficult, projects are providing their own Waste of resources Does not promote standardizaoon Need to start the discussion about how to address this EclipseCon 2014 2
Case Study Remote ApplicaOon PlaXorm (RAP) MulO- user client- server based web framework Provides a default web client that works with most browsers Server is wri[en enorely in Java RAP Protocol uses JSON- based message format over HTTP Why was ECF not used? EclipseCon 2014 3
Remote Frameworks PlaXorm EFS JSch Proxy ECF TM RSE TCF DataStore Terminal PTP Remote Services CDO Net4j EclipseCon 2014 4
PlaXorm JSch Pure- Java SSH implementaoon Obtained as OSGI JSch service Interfaces for session creaoon, credenoals, etc. Preference page for managing SSH informaoon, keys, etc. Eclipse File System (EFS) Abstract file system API IFileSystem IFileStore Extension points: org.eclipse.core.filesystem org.eclipse.ui.ide.filesystemsupport Not specifically remote, but is used by a number of projects to provide remote file systems EclipseCon 2014 5
PlaXorm Proxy service org.eclipse.core.net Adds support for proxy bypass of specific protocols (HTTP, HTTPS, etc.) Proxy data supplied by preferences UI Extension point for authenocator, but only one allowed at a Ome (workbench provides default) EclipseCon 2014 6
Eclipse CommunicaOon Framework (ECF) Real- Ome communicaoon and collaboraoon features for teams E.g peer- to- peer file sharing, screen sharing, and real- Ome shared ediong. A set of APIs and frameworks built upon exisong protocols (like Google Talk, XMPP, etc.) for communicaoons and messaging Containers AbstracOon for protocol- specific communicaoon connecoons Supports both point- to- point and publish- subscribe Specified using two extension points org.eclipse.ecf.containerfactory org.eclipse.ecf.namespace EclipseCon 2014 7
EclipseCon 2014 8
ECF APIs Func%on Core, ID Asynchronous data transfer Resource discovery File transfer Instant messaging Remote services Shared java objects Telephony Synchronizing data models API org.eclipse.ecf[.idenoty] org.eclipse.ecf.datashare org.eclipse.ecf.discovery org.eclipse.ecf.filetransfer org.eclipse.ecf.presence org.eclipse.ecf.remoteservice[.rest] org.eclipse.ecf.sharedobject org.eclipse.ecf.telephony.call org.eclipse.ecf.ecf.sync EclipseCon 2014 9
Target Management (TM) Data models and frameworks to configure and manage remote systems, connecoons, and services EclipseCon 2014 10
TM - RSE Remote System Explorer (RSE) A UI for interacong with remote systems Services The type of interacoon with the remote system Subsystems Provides connecoon informaoon, model arofacts (hosts, profiles, filters, etc.) and persistence for services Provides communicaoon mechanism for accessing a remote host (ssh, kp, etc.) Extension points for adding services and subsystems EclipseCon 2014 11
TM - RSE EclipseCon 2014 12
TM - TCF Target CommunicaOon Framework (TCF) Lightweight, extensible network protocol mainly for communicaong with embedded systems Designed to transparently plug in value- adding servers between a tool and a target (e.g. debug service) Transport- agnosoc channel abstracoon Uses JSON (JavaScript Object NotaOon) as its preferred data marshalling language Supports auto- discovery of targets and services. EclipseCon 2014 13
TM - TCF EclipseCon 2014 14
TM - DataStore Provides a communicaoons layer, in- memory data repository, and a pluggable tooling framework Extensible client/server protocol for data and commands Used by the RSE Dstore subsystem (similar to kp, ssh, etc.) Is generic, so can be used by any kind of remote tooling EclipseCon 2014 15
TM - Terminal ANSI/vt102 compaoble terminal widget Pluggable connectors for transport protocols Connectors for serial, SSH, and telnet provided SSH connector uses JSch PTP provides a connector for PTP remote services EclipseCon 2014 16
TM - Terminal EclipseCon 2014 17
Parallel Tools PlaXorm (PTP) Remote services framework Designed for accessing remote systems programmaocally ConnecOon oriented APIs ConnecOons Processes File management Remote resources Also provides EFS implementaoon Can be used with JSch, RSE, and other remote access mechanisms EclipseCon 2014 18
PTP Remote Services Architecture PTP Linux Tools CDT Remote Services API Adapter Adapter Adapter Adapter RSE Remote Tools Local JSch EclipseCon 2014 19
Connected Data Objects (CDO) CDO is a pure Java model repository for EMF models and meta models EclipseCon 2014 20
CDO Net4j Net4j Signalling PlaXorm Extensible client/server communicaoons framework Transport protocols are pluggable (TCP, HTTP, and in- memory transport) Fast, asynchronous, non- blocking buffer muloplexing kernel No discrete marshalling/un- marshalling phases MulOple virtual channels can be muloplexed through a single physical transport connecoon. Each channel can be associated with its own signal protocol and then be used to muloplex arbitrary numbers of signals into both direcoons. The client and server roles only apply while establishing a physical transport connecoon EclipseCon 2014 21
Net4j EclipseCon 2014 22
Summary Project Component Descrip%on PlaXorm ECF TM PTP JSch EFS Proxy RSE TCF DataStore Terminal Remote Services Low level ssh implementaoon API for extending the Eclipse filesystem Support for proxy communicaoon Framework for building distributed applicaoons/tools. ECF APIs are protocol independent. Mainly targeted at OSGi remote services and applicaoons such as IM and collaboraove tools UI to provide transparent access to remote resources Extensible communicaoon protocol, mainly for embedded systems Extensible protocol for client/server communicaoon ANSI/vt102 terminal emulator API for connecoon- oriented remote services. Client side only. CDO Net4j Extensible low level muloplexed client/server communicaoon framework EclipseCon 2014 23
Implements a protocol Feature JSch EFS RSE TCF PTP ECF DS Net4j Y N N Y N N Y Y Asynchronous APIs N N N Y N Y Y Y Many- to- many communicaoon CharacterisOcs N N N N N Y N N Generic API N N N N N Y Y Y Requires agent N N N Y N N Y Y Extensible Y N Y Y N Y Y Y Example Services Feature JSch EFS RSE TCF PTP ECF DS Net4j File transfer services Y Y Y Y Y Y N N Discovery services N N N Y N Y N N Remote browsing services Y Y Y Y Y N N N EclipseCon 2014 24
Conclusions Each framework was designed with a specific purpose in mind There is some overlap between the frameworks Important defining factors Generic APIs vs. specific APIs Frameworks that require an agent running on the remote system Extensibility It would be possible to combine frameworks e.g. by adding generic APIs to TCF it would be possible to replace Net4j Who would benefit from this? Who would do the work? ConOnue to develop and promote the exisong frameworks to encourage projects to adopt these rather than develop their own Create a one- stop- shop for remote services? EclipseCon 2014 25
Evaluate This Session 1 Sign- in: www.eclipsecon.org 2 Select session from schedule 3 Evaluate: EclipseCon 2014 26