View
213
Download
0
Tags:
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