RSE David Mc Knight Copyright c 2006 IBM
RSE David Mc. Knight Copyright (c) 2006 IBM, released under EPL version 1. 0
Agenda Introduction RSE Demo Architecture n n n Service Layer Subsystem Layer UI Layer Structure n n n Features Plugins Build Setup Extending RSE Extension Demo Copyright (c) 2006 IBM, released under EPL version 1. 0
Introduction Framework providing common reusable way accessing remote systems Perspective with views that can be used for displaying info about all kinds of hosts Used in various IBM products for accessing different types of systems Copyright (c) 2006 IBM, released under EPL version 1. 0
RSE Demo Copyright (c) 2006 IBM, released under EPL version 1. 0
Architecture RSE has three major layers 1. 2. 3. Service Layer Subsystem Layer UI Subsystems Services Copyright (c) 2006 IBM, released under EPL version 1. 0
Service Layer headless, barebones API layer used to interact with different protocols to provide remote services Service layer model objects are minimal and UIindependent examples: n File Service for listing, modifying, copying, and transferring remote file and folders n Shell Service for launching remote shells and interacting with the associated IO n Process Service for listing remote processes Copyright (c) 2006 IBM, released under EPL version 1. 0
Service Layer cont. There can be many different implementations for a given service type depending on what host services are available n For example, the following are possible File Service implementations: FTP Datastore SSH HTTP Local Copyright (c) 2006 IBM, released under EPL version 1. 0
Subsystem Layer Subsystems integrate the services of the service layer with connection information, model artifacts and persistence Subsystem layer model objects wrapper serivce layer objects and reference higher-level RSE objects Each subsystem associated with one service type n Examples: File service subsystem Shell service subsystem Process service subsystem Copyright (c) 2006 IBM, released under EPL version 1. 0
Subsystem Filters Each type of subsystem may optionally provide filter support n n Filters are persistent objects that provide means to query specific sets of information from a host RSE provides support for persisting and managing the filters Copyright (c) 2006 IBM, released under EPL version 1. 0
Subsystem Configurations n n each subsystem configuration registered against one or more system types each host connection has the subsystems that were registered with it’s system type Copyright (c) 2006 IBM, released under EPL version 1. 0
Configuring Subsystems When more than one subsystem configuration for a subsystem type, user can switch configurations as desired Copyright (c) 2006 IBM, released under EPL version 1. 0
File Service Subsystem Configurations In this example, the current file subsystem configuration uses Datastore Copyright (c) 2006 IBM, released under EPL version 1. 0
UI Layer RSE view adapter n n provides means of rendering RSE subsystems and associated artifacts in the RSE views ISystem. View. Element. Adapter Common interface that all RSE artifacts adapt to when being used in the UI Queries n n RSE view content provider gets adapter for RSE object and calls adapter API to get children of that object Adapter typically uses Subsystem API (resolve. Filter. String methods) to gather results of query Copyright (c) 2006 IBM, released under EPL version 1. 0
RSE Features Core n The base service and subsystem definitions, extension points, RSE perspective, views, dialogs, widgets and various generic features Local n Local service implementations and the subsystem configurations for using them Datastore n Service implementations using the Datastore communications framework and the subsystem configurations for using them FTP n The FTP file service implementation and the subsystem configuration for it Telnet n An example shell service implementation with the required subsystem configuration Copyright (c) 2006 IBM, released under EPL version 1. 0
RSE Plugins Base Plugins n org. eclipse. rse. services APIs for common services and common utilities Defines IFile. Service, IShell. Service and IProcess. Service n org. eclipse. rse. logging used for logging in RSE n org. eclipse. rse. core RSE stuff n org. eclipse. rse. ui RSE UI and UI extensions n org. eclipse. rse. subsystems. files. core Defines the subsystem and artifacts that are used to drive the file service n org. eclipse. rse. subsystems. processes. core Defines the subsystem and artifacts that are used to drive the process service n org. eclipse. rse. subsystems. shells. core Defines the subsystem and artifacts that are used to drive the shell service n org. eclipse. rse. files. ui Defines the actions, dialogs and view adapters used to interact with remote files n org. eclipse. rse. processes. ui Defines the actions, dialogs and view adapters used to interact with remote processes n org. eclipse. rse. shells. ui Defines the actions, dialogs and view adapters used to interact with remote shells Copyright (c) 2006 IBM, released under EPL version 1. 0
RSE Plugins - Local Plugins n org. eclipse. rse. services. local Local implementation for common services Provides: file service, shell service and process service n org. eclipse. rse. connectorservice. local Provides means to connect to local n org. eclipse. rse. subsystems. shells. local Shell subsystem configuration that uses local shell service n org. eclipse. rse. subsystems. processes. local Process subsystem configuration that uses local process service n org. eclipse. rse. subsystems. files. local File subsystem configuration that uses local file service Copyright (c) 2006 IBM, released under EPL version 1. 0
RSE Plugins - Datastore These plugins constitute the Datastore communication framework, common service implementations, the host extensions for those services and the subsystem configurations that are used to integrate Datastore services into RSE Plugins n org. eclipse. dstore. extra Part of the Datastore communication framework n org. eclipse. dstore. core Datastore communication framework n org. eclipse. rse. services. dstore Common Datastore service implementations provides file service, shell service and process service Provides host miners for each service n org. eclipse. rse. connectorservice. dstore Provides RSE integration to connecting to a remote Datastore n org. eclipse. rse. dstore. security Provides SSL security integration for Datastore communications n org. eclipse. rse. subsystems. files. dstore File subsystem configuration for the Datastore file service n org. eclipse. rse. subsystems. processes. dstore Process subsystem configuration for the Datastore process service n org. eclipse. rse. subsystems. shells. dstore Shell subsystem configuration for the Datastore shell service Copyright (c) 2006 IBM, released under EPL version 1. 0
RSE Plugins Cont. FTP Plugins n org. eclipse. rse. services. files. ftp FTP file service implementation n org. eclipse. rse. subsystems. files. ftp File subsystem configuration for use with FTP file service Telnet Plugins n org. eclipse. rse. services. shells. telnet Telnet shell service implementation n org. eclipse. rse. subsystems. shells. telnet Telnet subsystem configuration for use with Telnet shell service Copyright (c) 2006 IBM, released under EPL version 1. 0
Build Setup Ant Build n org. eclipse. rse. build Contains scripts for extracting and building RSE runtime and SDK Copyright (c) 2006 IBM, released under EPL version 1. 0
Extension Points System types n n n Subsystem configurations registered against system types i. e. Intel Linux, AIX, i 5 OS, etc. New types can be added Subsystem Configurations n Associates a subsystem, it’s service implementation and other customizations with connections of one or more system types Popup Extensions n Actions can be contributed against remote RSE objects, similar to regular Eclipse popup extensions Persistence Providers n n Method of saving and loading RSE connection information RSE DOM Importers and exporters used to load and save RSE APIs n System Registry Manage and create profiles, connections, etc. Copyright (c) 2006 IBM, released under EPL version 1. 0
Extension Demo Copyright (c) 2006 IBM, released under EPL version 1. 0
Example of Extending RSE Vendor needs to provide custom access to system ABC n Hosts of type ABC have services for FTP, telnet and the XYZ service Steps the vendor takes: 1. 2. 3. The ABC system type is contributed The FTP file service subsystem configuration and telnet shell service subsystem configurations are contributed to system type ABC Contribute XYZ functionality 1. 2. 3. XYZ service API defined along with XYZ service subsystem XYZ service implemented using appropriate protocol XYZ service subsystem configuration setup to use XYZ service implementation and registered with ABC system type Copyright (c) 2006 IBM, released under EPL version 1. 0
FTP Extension Example Implemented IFile. Service using FTPClient class provided in JDK n FTPHost. File used as IHost. File model in service layer Implemented FTP File Subsystem Configuration to provide FTP service setup for the File. Service. Subsystem n Implemented FTP connector service to initialize FTP connection in FTPFile. Service from the subsystem Implemented host file adapter to wrapper FTPHost. File objects with FTPRemote. File objects Copyright (c) 2006 IBM, released under EPL version 1. 0
Appendix Additional slides here Copyright (c) 2006 IBM, released under EPL version 1. 0
RSE Perspective Copyright (c) 2006 IBM, released under EPL version 1. 0
Terminology System Type n Distinguishes different types of hosts Host n A persistent object representing the host a user connects to Connector Service n The means by which one or more subsystems connect to a host Subsystem n n provides the means to do operations on the host wrappers a service Subsystem configuration n A contribution of a subsystem associated with a particular service implementation, connector service and other customizations Service n A simple interface to provide a set of host functionality Filter n Provides a means to zero in on a particular set of host data Copyright (c) 2006 IBM, released under EPL version 1. 0
File Service API IFile. Service n n n n n copy(IProgress. Monitor, String, String) copy. Batch(IProgress. Monitor, String[], String) create. File(IProgress. Monitor, String) create. Folder(IProgress. Monitor, String) delete(IProgress. Monitor, String) download(IProgress. Monitor, String, File, boolean, String) get. File(IProgress. Monitor, String, String) get. Files. And. Folders(IProgress. Monitor, String, String) get. Roots(IProgress. Monitor) get. User. Home() is. Case. Sensitive() move(IProgress. Monitor, String, String) rename(IProgress. Monitor, String, String, IHost. File) upload(IProgress. Monitor, File, String, boolean, String) upload(IProgress. Monitor, Input. Stream, String, boolean, String) Copyright (c) 2006 IBM, released under EPL version 1. 0
Shell Service API IShell. Service n n n get. Host. Environment() launch. Shell(IProgress. Monitor, String, String[]) run. Command(IProgress. Monitor, String, String[]) Copyright (c) 2006 IBM, released under EPL version 1. 0
Process Service API IProces. Service n n n n n get. Parent. Process(IProgress. Monitor, long) get. Signal. Types() kill(IProgress. Monitor, long, String) list. All. Processes(IProgress. Monitor, IHost. Process. Filter) list. All. Processes(IProgress. Monitor, String, String) list. Child. Processes(IProgress. Monitor, long, IHost. Process. Filter) list. Root. Processes(IProgress. Monitor) Copyright (c) 2006 IBM, released under EPL version 1. 0
- Slides: 29