© 2006, 2007 by Wind River Systems, Inc.; made available under the EPL v1.0 | 10 October 2007 | The DSDP Target Management Project Martin Oberhuber, Wind River
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v1.0 2 Agenda TM on Europa Online Demo TM 2.0 New Features TM for Extenders TM Future Planning
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v1.0 3 The Eclipse Target Management Project Remote Computer Systems Targets (Locally connected, shared, fielded) Hosts (Grids, farms, nodes) and running software on them Discover, connect, get status Download, run, debug, test … why Management? Discover remote systems; manage their properties and capabilities; team-share connection definitions and settings; access control … why Target? Just a matter of terminology
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v1.0 4 Target Management 2.0 on Europa End-User Tools Remote System Explorer (RSE): Transparent remote file access ANSI Terminal CDT remote debug Components for Extenders Service Discovery
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v1.0 5 TM as an out-of-the-box tool I installed the RSE and it works exactly as expected. Using the SFTP connection method, I can connect to my servers, browse my files, open and edit PHP, HTML and other various text files using my favorite editor tools seamlessly in Eclipse as though they were local. Opening the file triggers a download, saving the file triggers an upload.RSE Denis Roy, Eclipse Webmaster,
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v1.0 6 Subsystems manage resources of a particular kind Filters select resources dynamically
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v1.0 7 RSE Features Files Subsystem: Remote Edit & Compare, with caching; Persistent, shareable filters Tree and Table View, Drag&Drop Search and Archive handling (dstore and local only) Remote Command (Shell) subsystem Can be the basis for other subsysems Line-based command/response (not a Terminal!) Output filtering e.g. for compile commands Processes Subsystem List and Kill processes on Linux and other UNIX
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v1.0 8 TM Terminal Window > Show View > Other > Terminal (e)RCP embeddable widget for ANSI Terminal emulation Cloneable View Pluggable Connectors (Serial, SSH, Telnet) New: Optional Input Line
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v1.0 9 Remote CDT Integration Gdbserver protocol RSE-contributed file upload RSE-contributed shell channel There are also other possibilities for remote debugging, e.g. ssh remote gdb directly in CDT
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v Service Discovery Find available ssh, telnet and other services through Zeroconf / DNS-SD Stand-alone or as an RSE Wizard: New Connection: Type = Discovery New: Auto-fill-in the multicast address
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v TM as an EFS Provider Eclipse New > Folder > Advanced > Link to File System > RSE Verified with ssh, ftp, dstore over JDT WST support for EFS recently added (Fall Maintenance) – for PHP
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v TM as an EFS Provider Eclipse Filesystem (EFS) makes the Eclipse Resource System and Workspace very flexible, allowing any kind of (remote) resources to be shown in the Workspace TM as an EFS Provider supports any contributed file system Out of the box: SSH, FTP, dstore – very simple API Supports connection and password management Supports directory contents caching where possible As workspace resources can now be remote… … remote support is easily added to any tooling based on Eclipse, such as CDT, PHP, Web, …including parsers and outline views … but the tooling needs a thin layer of awareness, i.e. access the Eclipse Resource model in a clean manner
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v RSE Import / Export Wizards File > Export > Other > Remote Save export settings (filters) in a *.rexpld script to replay Local development, synchronize to Remote Future: Use Platform Team/Synchronization framework
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v TM 2.0 New Features Externally Visible New Features Eclipse Filesystem (EFS) provider with credentials management Import/Export facility Shell Processes subsystem (contributed) Telnet subsystem (contributed) FTP Listing Parser extension point DNS-SD Discovery Terminal Connector Framework (provisional), Optional Extra Input Line Internal API review and cleanup: UI/Non-UI splitting, API/Non-API splitting More background jobs for remote access Improved flexibility for system type and action contributions Persistence pluggable and outside workspace. Improved File Service (Streams, setReadOnly, setLastModified)
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v TM for Extenders
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v DSDP Target Management – Dates and Facts Major project milestones Project Created – June 2, 2005 RSE 1.0 – Nov 12, 2006 RSE 2.0 – June 30, 2007 on Europa Continuing to expand community EclipseCon tutorial – Mar 5, Downloads of RSE – April 17, 2007 Increasing activity on Mailing List, Newsgroup, Bugzilla Commercial adoption by at least 8 companies TM 2.0 project size 290 kLOC (compared to TM/RSE 1.0: 242 kLOC)
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v TM Community Committers: Wind River (lead), IBM, Symbian Contributors: ACCESS, MontaVista, Tradescape, Celunite, Zylin Known Commercial Adoption: Wind River Workbench 3.0 Atmel AVR32 Studio 1.0 EMAC Eclipse Distribution Tradescape Clearing Tool 1.0 ACCESS Linux Platform Development Suite 2.0 MontaVista DevRocket 5.0 Other active users: Ames DOE Lab, Broadcom, Cisco, Elastos, Festo Inc., LANL (PTP project), TmL Project (Motorola)
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v Discovery Integration Target Management 2.0 Components Eclipse Platform Remote System Explorer (RSE) CDT Views Data Models Wizards Services (Remote Files, Processes, Shells) Reusable Widgets CDT Remote Application Launch Discovery model view EMF protocols Platform only Terminal connectors view widget Widget: (e)RCP only
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v Target Management vs. RSE The Target Management project creates data models and frameworks to configure and manage remote systems, their connections, and their services. org.eclipse.tm.core: Core Components for remote access that can be re-used without other dependencies. Jakarta Commons/Net 3 rd party library Discovery Framework and Zeroconf impl (needs EMF) Wind River Terminal contribution org.eclipse.tm.rse: A consistent framework and UI for accessing remote compute resources from Eclipse. Remote System Explorer (RSE) integrates some (but currently not all) core components. TM is the project, RSE is the product.
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v What do Extenders win by using TM? Common Core including persistence, filters, team sharing Be open for 3 rd party extensions through Open Source APIs Common UI including tree view, tables, monitor, browse dialogs Access remote resources through a single, consistent UI Few basic, re-used concepts (subsystems, filters) Common interfaces for abstract access to remote files, shells, processes through any contributed protocol
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v TM for Embedded: Wind River Workbench
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v Symbian phone browser
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v TM for Enterprise: IBM WebSphere Developer Screenshot © 2007 by IBM; made available under the EPL v1.0
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v Using RSE APIs (Example: Creating a Connection) public void run() { String hostName = "build.eclipse.org"; //$NON-NLS-1$ ISystemRegistry registry = RSECorePlugin.getDefault().getSystemRegistry(); ISystemProfile profile = registry.getSystemProfileManager().getDefaultPrivateSystemProfile(); IHost host = registry.getHost(profile, hostName); if (host == null) { host = registry.createHost( "SSH Only",//System Type Name hostName,//Connection name hostName,//IP Address "Connection to Eclipse build site"); //description } See the EclipseCon 2007 TM Tutorial for more programming examplesEclipseCon 2007 TM Tutorial
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v RSE Tools for Remote Files Model View RemoteFileUtility SystemRemoteFileDialog SystemRemoteFolderDialog WorkspaceResourceSetUniversalFileTransferUtility IRemoteFile IHostFileIFileService Controller RSE brings some re-usable widgets that operate on the generic services and subsystems contributed (any kind of transport can be plugged in). IRemoteFileSubSystem Subsystem Service
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v Why are there Subsystem and Service layers? Originally, RSE just dealt with Subsystems You can register just ANYTHING as a Subsystem. It turned out, that some Subsystems should be used with multiple protocols (e.g. files-via-dstore, files-via-ssh, files-via-ftp) The Service Layer allows to replace the protocol UI code, filters, widgets etc. are re-used from the Subsystem The Subsystem is the client-facing side (filters, dialogs, …) although it has both a non-UI layer and a UI layer (via Adapters). The Service is always non-UI. Its for programmers. For your own subsystem, you can but dont have to do a Service.
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v Extension Points RSE Adding custom system types / wizards Adding custom services / subsystems / filters Adding custom actions Customizing Persistence Terminal Adding custom connectors More API work to be done for 3.0 – lots of good suggestions Service Discovery Adding custom protocols
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v RSE: Custom Service for Existing Subsystem Goal: Add a new protocol (WebDAV) for using the RSE Remote File Browser on it. Works exactly the same for other protocols Tasks: Have a generic Service for WebDAV (independent of RSE). Write an IFileService wrapper for it, using IHostFile objects as model. Register the subsystemConfigurations extension point. Re-use FileServiceSubsystem, but adding the plumbing for an FTP ConnectorService. Write an WebDAVFileAdapter, and register an AdapterFactory for it in the Activator. Thats simple, because IFileService is simple!
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v ISubSystem ISystemFilterReference Original Model Objects from previous generation of product RSE: Fully Custom Subsystem ISubSystemConfigurationAdapter Presentation of Subsystem, Options for Filters ISystemViewElementAdapter Adapts them to RSE Model View ISubSystemConfiguration Provides special filtering SystemFilterStringEditPane User-friendly filter editng
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v TM Future Planning
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v TM 3.0 Plans Going to join the Ganymede release train TM 3.0 release in June 08 will contain some API changes A preliminary collection of potential plan items has been collected on the Wiki at Quality – Reduce bug backlog, improve performance, API cleanup & hardening Scaling Down – Further UI/Non-UI splitting, componentization, becoming more RCP-aware and applicable for headless Migration and Import/Export of connections (Persistence) Improved Remote CDT Integration Target Connection Framework (TCF) Further collaboration with other Eclipse projects – needs YOU! Google SoC WebDAV; Platform/Team Synchronization TPTP; ECF; EFS improvements SWT deferred download on drag&drop (bug )bug
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v Target Communication Framework (TCF) Today almost every device software development tool on the market has its own method of communication with target system. Individual setup for each communication method Especially awkward for multi-core (different tool for each core) The goal is a single protocol used to communicate between all tools and targets, supporting auto-discovery, multiplexing and tunneling Transport protocol agnostic Single point of configuration, single link
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v TCF: Example of Existing Architectures 33 UI Target Tool A Tool B Tool C Tool D Target A Target B Target C Value Add B Value Add C Host P1 P3 P2
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v TCF: Vision 34 UI Target Tool A Tool B Tool C Tool D Service Manager Service 1 Value Add Host Service 2 Service 3 Service 4 Service 5 P1
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v TCF Lightweight Open Agent TCF is mostly about the Protocol But there is a lightweight plain C extendable agent, with some sample implementations: Linux ptrace basic debugging Linux remote file service (integrated with RSE) Linux remote process service (integrated with RSE)
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v Mission, Goals and Future TM Mission: Create data models and frameworks to configure and manage remote systems, their connections, and their services. TM Vision: To be the Eclipse Explorer of Network Neighborhood, supporting interactive discovery and drill-down to remote services, and passing context info to higher-level components. Ideas being discussed (Bugzilla Items) Abstract Descriptions of Remote Systems and Services (for Search, integration with project and build); with DD-SPIRIT / IP-XACT group Dynamic addition of Services, further improved Auto-Discovery Multi-core / Multi-target support through connection groups Adapters for Target access control (shared board labs) Component-Based Launching (CBL) See the TM Wiki, and the TM Use Cases Document
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v DSDP: D evice S oftware D evelopment P latform Traditional Software Dev.Device Software Dev. Local (changing!)Remote Hardware abstraction through OS Custom hardware (DSP, Multi-core, FPGA, …) Standards basedMany vendors – many connection schemes Managed targets / access restrictions Secure tunnels for deployed targets Device Software Vendors want to plug-in solutions for their specific area of expertise need a highly modular, pluggable framework for connectivity Goal: Develop framework and exemplary tools for device software development.
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v TM Mission in Detail Target Management Project creates data models and frameworks Abstraction of remote system properties Meta-framework for services to plug in and discover to configure and manage Targets, processors, cores, scan chains, processes, threads Configuration information of deployed systems, Kernel version etc. Board labs, access restrictions, credentials their connections, TCP, UDP, Serial, various agents, ICE boxes, … Tunnelling to deployed targets and their services. Download, run, debug, query information, reset, FLASH utility, … UI for configuring services, and UI-less delegate for execution
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v TM: Service-based approach Typical services to be provided include OS-Aware Services Remote File System (Plus mappings for cross-mounted file systems) Remote Process Explorer (Query target info, Kernel Objects – more abstraction) Kernel Module Downloads Services that do not necessarily need an OS Remote Console (Serial, TCP/IP, …) Reset / Reboot (Start and Stop Cores) RAM download of arbitrary images (e.g. via JTAG) FLASH utility Debugger Launcher Services provide scriptable actions Component Based Launching Need pluggable services to be contributed by vendors Want to autodetect services as much as possible
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v Eclipse as the Integration Platform Today, embedded software vendors choose Eclipse because its a nice toolkit for their own stuff. Tomorrow, we can work on Open Standards and Integrations Select board A from vendor B Have the build system automatically choose the compiler (from vendor X) Have the debugger automatically choose the ICE setup (from vendor Y) Have TOS awareness automatically configured (from vendor Z) For Open Standards we need to collaborate – its YOUR opportunity
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v Remote Development, where are you going? Embedded (DSDP) typically does cross development Local workspace (files) and compile Run and debug with a lightweight remote agent Remote Development needs similar tools (remote file, remote shell access) but has different focus and requirements Remote workspace (files) and compile Run and debug with a heavyweight remote runtime / debugger Remote parsing We came together because there is much overlap; but there are also discussions about a separate Eclipse Project for remote development
The DSDP-Target Management Project | © 2006, 2007 by Wind River Systems, Inc; made available under the EPL v Resources, Questions and Answers Resources and Pointers TM Homepage, Getting Started, FAQ, Newsgroup, Mailinglist TM Homepage EclipseCon07 Tutorial for Extenders RSE Online User and ISV Docs, Tutorial and Examples Developer Resources: CVS Team Project Sets, TM Bug Process with many good queries, Committer HOWTO, Q & A