55
© 2006 by IBM and Wind River Systems; made available under the EPL v1.0 | 22-March-2006 Martin Oberhuber, Wind River Systems martin. oberhuber @ windriver .com David Dykstal, IBM WebSphere david _ dykstal @us. ibm .com DSDP/TM Project Using and Extending the DSDP Target Management Framework

© 2006 by IBM and Wind River Systems; made available under the EPL v1.0 | 22-March-2006 Martin Oberhuber, Wind River Systems [email protected]

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

© 2006 by IBM and Wind River Systems; made available under the EPL v1.0 | 22-March-2006

Martin Oberhuber, Wind River [email protected]

David Dykstal, IBM [email protected]

DSDP/TM Project

Using and Extendingthe DSDP Target Management Framework

2 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

So what is Target Management all about?

Remote Computer Systems… Targets (Locally connected, shared, fielded)

Hosts (Grids, farms, nodes)

… and developing software on them Build, connect, get status

Download, run, debug, test

Upload

An Eclipse Project under DSDP since June 2005.

3 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

The Ugly Truth: Reality Now

Type in IP addresses and config options Again and again in each distinct tool

Manually configure JTAG scan chains Hassle with Register settings and reset options

ftp, telnet, rsh, ssh Work in two separate environments

With insufficient tooling on the remote system

No tool integrations from different vendors

4 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

The Vision

You’ve got that new board from Yoyodyne ACME

Plug it in…

… and it just works

like your local desktop computer

5 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

The Mission

To become the standard tool environment

for interacting with remote systems

for software development

6 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

How do we get there?

Create a Framework for interoperability Focus on tools for remote (potentially embedded) systems

Data models: standardized hardware descriptions, e.g. multi-core configurations, JTAG scan chain setup, memory layout

Configure and Manage: e.g. target groups, board labs, access restrictions, connection configurations shared in a team

Connection plug-ins: TCP/IP, Tunneling, Serial, JTAG connections – pluggable with fine granularity

Pluggable Actions and Services (Download, Launch, Query status, Auto-detect services, Reboot, Flash utility, Remote console, …)

http://www.eclipse.org/dsdp/tm/ Overview, Scope and Use-Cases Document

7 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

And who are we, by the way?

CDT and Derivatives: Launches for remote systems Want to share common target properties between Launches

Bugzilla 65471: Remote System Framework (RSF) code and presentation from EclipseCon 2005

Commercial Debuggers migrating to Eclipse Want a Target Manager again

Hardware Vendors Want minimal open plug-ins for their hardware

Eclipse-based commercial Target Managers Want open interfaces for interoperability

And a Community to growLogos and trademarks are copyright by their respective owners.

8 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

Remote System Explorer

A component that has been shipping for several years in various IBM products

Used for accessing IBM server systems RSE “8.0” submitted to Eclipse in January 2006

Will become RSE 1.0 after EMO approval Will form the base of the first DSDP/TM Release in September

9 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

Remote Systems Perspective

10 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

Pluggable Target System Types

11 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

Target System Instances

12 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

Subsystems manage resources of a particular kind

13 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

Filters select resources dynamically

14 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

Resources exposed by the filter

15 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

Properties of the selected resource

16 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

Table provides alternative view

17 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

File Resources can be directly edited

18 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

Remote File Systems can be searched

19 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

What’s in the box?

Resource Access Remote files

“dstore” based or FTP Remote search & archive support

Processes

“dstore” only Commands & results

“dstore” based or Telnet Access to Linux, Unix, and Local systems All within a consistent, extendible framework

20 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

Platform

RSE

Common Framework

Eclipse Platform

Supplied Subsystems

Shell (Command) SubsystemFile Subsystem

Common Lifecycle

connection management

filter management

profile management

subsystem management

Common UI Components

views

validators

massagers

Communications

wizards

field editors

dialogs

System Type

Optional EditorsOptional Language Environments

(CDT, JDT and others)

Process Subsystem

Subsystem

Services

21 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

Structure - dstore

socket

datastore server(formats XML request into DataElement requests, routes DataElement request to appropriate miner)

(one instance (process) per client)

datastore client(maintains communication channel to server, maintains tree of DataElements, maintains cache of

DataElement values, translates request DataElements into XML, translates response XML into DataElements)

miner(pluggable, formats request

DataElement into API invocation, formats DataElement response)

requ

est m

essa

ge(X

ML)

resp

onse

mes

sage

(X

ML)

requester(formats API request to

DataElement format, formats DataElement response into

DataElements, registers DataElements with datastore)

system api's (through JNI or system supplied java interfaces)

requester APIlistener

(registered for changes on a particular DataElement)

22 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

Extending RSE

Add New System Types IBM has extended for their systems

Connection properties, wizards, connection schemes, character set conversions, …

Add New Subsystems For accessing new types of remote resource (loads, memory

regions, …) Add New Actions and Properties for existing remote objects

By system type and/or file type

23 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

A New System Type – What’s Involved

Extension points System Type

Subsystem Subsystem implementations are assigned to System Types

These can be reused across System Types System Types are just collections of services supplied by

subsystems

Example: Using only some of the existing services for a target

24 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

<extension point="org.eclipse.rse.ui.systemtype"><type description="An XYZ System" icon="icons/system-xyz.gif" iconlive="icons/system-xyz-live.gif" id="org.eclipse.rse.examples.xyz" name="XYZ"/></extension>

25 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

Causes a new system type to appear

Which, in turn, allows it to be instantiated later

26 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

<extension point="org.eclipse.rse.ui.subsystemConfiguration"><configuration systemtypes="XYZ" name="Files (FTP)" description="Manager for XYZ file system resources." icon="icons/system-files.gif" iconlive="icons/system-files-live.gif" category="files" class="org.eclipse.rse.subsystems.files.ftp.FTPFileSubSystemConfiguration" vendor="XYZ MegaCorp" id="ftp.files"></configuration></extension>

This class exists, just reuse

27 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

Causes this to appear for XYZ systems

28 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

This Linux target system shows up with 3 subsystems – using both dstore and FTP

Our new XYZ target system shows up with 1 subsystem – using FTP

29 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

Subsystems – access to resources

Have a new kind of resource? Add a subsystem! Extension Point – The subsystem configuration Subsystems access resources through a service layer

Not required, but a suggested implementation

Useful if you have resources accessible by multiple protocols Lifecycle

Connecting

Applying filters to resources Definition persistence and sharing

Subsystem Properties, Filter Definitions, Saved Commands

Done through the SystemRegistry

Pluggable Persistence Managers

30 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

The Service “Layer”

Do you have an alternative way to access a resource (like a file) that already has a subsystem?

Just plug in a new service (well, sort of) No Extension Point for services, instead…

Define a new subsystem configuration to act as a factory for the standard subsystem but connects that subsystem to the new service.

The new subsystem configuration contributed in the usual way

Standard subsystem defines the subsystem/service API

File, Shell, and Process subsystems defined in this manner

31 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

org.eclipse.rse.coreorg.eclipse.rse.dstore

org.eclipse.rse.ftp

org.eclipse.rse.local

org.eclipse.rse.coreorg.eclipse.rse.ui

org.eclipse.rse.subsystems.files.coreorg.eclipse.rse.subsystems.processes.core

org.eclipse.rse.shells.coreorg.eclipse.rse.loggingorg.eclipse.rse.servicesorg.eclipse.rse.files.ui

org.eclipse.rse.processes.uiorg.eclipse.rse.shells.ui

org.eclipse.dstore.coreorg.eclipse.dstore.extra

org.eclipse.rse.connectorservice.dstoreorg.eclipse.rse.services.dstore

org.eclipse.rse.subsystems.files.dstoreorg.eclipse.rse.subsystems.processes.dstore

org.eclipse.rse.subsystems.shells.dstore

org.eclipse.rse.services.ftporg.eclipse.rse.subsystems.files.ftp

org.eclipse.rse.connectorservice.localorg.eclipse.rse.services.local

org.eclipse.rse.subsystems.files.localorg.eclipse.rse.subsystems.processes.local

org.eclipse.rse.subsystems.shells.local

Current Packaging

32 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

A new implementation – FTP – What did we add?

Plugins a service

a subsystem Extension Points

a subsystemConfiguration Resources and Adapters

A File Resource for FTP Files

An Adapter for this resource Protocol

Wraps the FTP client library

33 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

<extension point="org.eclipse.rse.ui.subsystemConfiguration"> <configuration systemtypes="Linux;Unix;AIX" name="%Files" description="%FilesDescription" iconlive="icons/full/obj16/systemfileslive_obj.gif" icon="icons/full/obj16/systemfiles_obj.gif" category="files" class="org.eclipse.rse.subsystems.files.ftp.FTPFileSubSystemConfiguration" vendor="IBM Corporation" id="ftp.files"> </configuration></extension>

We reused this before, this time we wrote it

34 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

The protocol wrapper

35 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

These are the methods that FTPService defines. It implements the IFileService API.

This is the largest class of the implementation and wraps the FTP library client to deliver FTPHostFile objects.

36 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

The new “factory” for FTP Subsystems

37 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

Connects the FileServiceSubSystem to a particular instance of an FTPService

38 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

Adapts FTPHostFile to have appropriate UI properties for the RSE Views

39 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

Speaking of Adapters…You can reuse RSE Adapters

An RSE View

An Object Supplied by a

Service

RSE Adapter ObjectAdapts to

Uses

40 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

Directly…

SystemViewSystemTableView

A SubsystemSystemViewSubSystem

AdapterAdapts to

Uses

41 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

Or Indirectly

Subclasses

Implements

SystemViewSystemTableView

Book BookAdapterAdapts to

UsesAbstractSystemViewAdapter

ISystemRemoteElementAdapter

42 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

RSE for the Device world – what’s different?

Different Resource Types, e.g. Kernel Modules, Semaphores, Message Queues

Register a new Subsystem!

Different communication protocols, e.g. minimal debug agents, hardware debuggers, standard protocols like ssh

Register a new Service for existing Subsystems!

Slow connections RSE model objects can use Jobs for delayed updates. Each node

has control over its update policy!

The RSE Model is extremely flexible thanks to Adapters.RSE APIs will be evolved as we go along.

43 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

So what’s still missing?

Have a Framework for interoperability Focus on tools for remote (potentially embedded) systems

Data models: basic PropertySetContainers now, need more structured models, standardized hardware descriptions

Configure and Manage: connection configurations shared in a team, target groups, board labs, access restrictions

Connection plug-ins: TCP/IP, Tunneling, Serial, JTAG connections – pluggable with fine granularity

Pluggable Actions and Services (Download, Query status, Launch, Auto-detect services, Reboot, Flash utility, Remote console, …)

44 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

Next Steps

Add an RSE Service layer for the ssh protocol Files Subsystem and Command subsystem will work

immediately

Eclipse Committers can access dev.eclipse.org directly from within Eclipse (File Transfer, Remote Shell)

Provides a nice example for how to add more protocol support

Add a CDT Launch Integration

Polish the APIs

45 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

CDT Launch Integration

Will be provided as an RSE Example Sample will use gdbserver; vendors will need to adapt to their

specific debugger communication properties

46 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

CDT Launch Integration - API

Fill the Combo: IHost[] hosts = SystemPlugin.getTheSystemRegistry().getHosts();

Filter by System type or connected status: hosts[i].getSystemType();

hosts[i].isOffline(); Get or Set Properties:

Every RSE Model Object is a PropertySetContainer

hosts[i].getPropertySet(“gdbserver”).getProperty(“port”); Create a new connection (lauches the Wizard)

new SystemNewConnectionAction(shell, false, myCombo).run()

47 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

CDT Launch Integration – Attach Action

48 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

Future: Component-Based Launching (CBL)

A Launch is really a sequence of Actions Connect, Download, Reset, Run Script

The “Build before Launch” can also be seen as an Action

Allow to contribute actions and compose a Launching “script” Launch “Scripts” can operate on one or multiple targets

Pre-configured Launches with an UI as we know Flexible Launches configurable by the user

49 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

An FAQ: Where is the border between Target Management and Debugging?

TM provides a framework and “broker” for services to be registered.

Especially on Hardware Debug Connections, a debugger may register services as TM extension (TM on top of debugger)

Or, TM may provide communication channels for debuggers to use (debugger on top of TM; inter-debugger communications)

TM shows the entire target (e.g. all processes), debugger focuses on items of interest

TM does everything before a debug context is available: Select proper target, check resource availability, reset, download,

launch agent, …

50 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

Flexible Target Connection Adaptors (Connectors)

Link to Processor 1 / Core X using connector channel 1Link to Processor 1 / Core Y using connector channel 2Link to Processor 2 using connector channel 3

Supply an interface to communicate with the target system

Users are

•the debug model

•an utility application like FLASH programmer

•tool to view OS events

•…

Target System

Tool A Tool B

Connector plug-in

Eclipse IDE

Connection Device

51 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

Already started Component-Based Launching

Standardized Hardware Descriptions - SPIRIT

Flexible Connector Chains (Target Connection Adapters)

Middle-term goals Associations between Connection – Project – Build

Auto-detect protocols and services on remote systems

Inter-Debugger Communications

Connection Groups

Shared Board Labs and pluggable access control

For Details, see http://wiki.eclipse.org/DSDP/TM/

TM Initiatives

Logos and trademarks are copyright by their respective owners.

52 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

Target Management Base Architecture

Data ModelsData Models

ConnectivityConnectivity

ServicesServices

Remote File systemRemote File system

Predefined ElementsPredefined Elements

Remote Process ListRemote Process List

Actions (Download, Reset, Debug, Flash, …)Actions (Download, Reset, Debug, Flash, …)

FiltersFilters ViewsViews

Target Connection Adaptors (aka Connectors)Target Connection Adaptors (aka Connectors)

PersistencyPersistency ProfilesProfiles Team SharingTeam Sharing

Property PagesProperty Pages WizardsWizards AutodetectAutodetect

Remote ShellRemote Shell

Launch Sequencer (CBL)Launch Sequencer (CBL)

Connection Configuration (Plumbing)Connection Configuration (Plumbing)

Predefined connection types (connector chains)Predefined connection types (connector chains)

Target DefinitionsTarget Definitions Connection GroupsConnection Groups Access ControlAccess Control

Reusable WidgetsReusable Widgets

Legend: Existing components in RSE, Design TBD, Analysis TBD, Extension Point, Fixed implementationLegend: Existing components in RSE, Design TBD, Analysis TBD, Extension Point, Fixed implementation

53 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

TM and other Eclipse Projects

Eclipse Communication Framework (ECF) Investigating for plugging in new protocols

Discovery / Autodetect

We will provide an RSE Example for ECF-based file sharing Projects that do some sort of connection lists

Test and Performance Tools Platform (TPTP)

Web Tools Platform (WTP)

Platform Team Extras (FTP, WebDAV)

54 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

Summary: Plans and Timings

First Release (September 2006, on Eclipse 3.2) RSE – Release 1.0 (Milestones available earlier) CDT Remote Launch Integration – Release 1.0 Target Definition & Selection, “Remote Debug” Launch configuration

Milestones 2006-2007 Standards based target connections (FTP, Telnet, ssh, ECF) Component-Based Launching (CBL) “Download” and “Run” Launch actions based on above services Open Connectors for HW Debuggers (Preconfigured Connection Types) Connection Model for HW Debugging (complex connector setup)

Future Connector plumbing algorithm Framework for autodetect Adapters for Target access control (shared board labs) SSH tunneling connector

55 Using and Extending the DSDP Target Management Framework | © 2006 by IBM and Wind River Systemsall content except logos and trademarks is made available under the EPL v1.0

Getting Involved

RSE is very flexible, with good basic abstractions An option for your Project?

RSE is a well established product Still, a lot of community feedback will be needed as we are freezing

public APIs (Milestone 3: June 30 – API freeze)

Join the dsdp-tm-dev mailing list - http://www.eclipse.org/dsdp/tm

Q & A – Join the DSDP BOF session