Presentation is loading. Please wait.

Presentation is loading. Please wait.

Envisage An Extensible Application Framework Martin Chilvers Enthought Inc

Similar presentations


Presentation on theme: "Envisage An Extensible Application Framework Martin Chilvers Enthought Inc"— Presentation transcript:

1 Envisage An Extensible Application Framework Martin Chilvers Enthought Inc martin@enthought.com

2 What is Envisage? A framework for... 1. Extensible Applications 2. Extensible GUI Applications 3. Extensible Scientific Applications

3 1. A Framework for Extensible Applications Plugin model – load, create, start and stop Plugins contribute to the application – Extension Points Well-defined places to add functionality/data – Application Objects Well-known/shared objects

4 Extension Points Declarative! Definitions are Python classes class Message(ExtensionPoint): author = Str text = Str Contributions are Python instances message = Message( author = “Martin Chilvers”, text = “The first rule of live demos: never do live demos” ) Stored in the Extension Registry

5 Application Objects Publish application.publish_application_object( uol, object, properties ) Lookup application.lookup_application_object(uol) Universal Object Locators (UOLs) – URL-like object references – Extensible set of supported protocols

6 Universal Object Locators Python import – Publish Create Python module – Lookup import://package.subpackage.module.symbol Service Registry ('Yellow Pages') – Publish application.publish_application_object( 'service://Plumber', Plumber(), {'price' : 50} ) – Lookup application.lookup_application_object( 'service://Plumber?price<100' )

7 An Envisage Application Extension Registry Service Registry Plugi n Application Objects

8 The Core Plugin Extension Points – Type Manager Adapters Categories Factories Hooks – Runnable Application Objects – Services Type manager(s) Naming

9 The Naming Service 'White Pages' style lookup – Publish application.publish_application_object( 'enthought/plumbers/fred', Plumber() ) – Lookup fred = application.lookup_application_object( 'name://enthought/plumbers/fred' )

10 Resource Types How domain types are 'lifted' into Envisage – Metadata – Additional behavior Visualization Serialization etc... Built using type manager – Adapters, Categories, Hooks

11 The Resource Plugin Extension Points – ResourceManager ResourceType Application Objects – Services Resource Managers

12 An Envisage Application Extension Registry Service Registry Plugi n Resource Plugin Core Plugi n Application Objects Naming Type Manager Resourc e Manage r

13 Key Concepts Extension Points (and extensions) – Declarative! Application Objects – UOLs, Service Registry, Naming... Type Management – Adapters, Categories, Hooks Resource Types

14 DEMO: 'Message of the Day' (MOTD) Application

15 What is Envisage? A framework for... 1. Extensible Applications 2. Extensible GUI applications 3. Extensible Scientific Applications

16 2. A Framework for Extensible GUI Applications The Workbench – A GUI for a common style of application – IDE-like Windows Perspectives Views Editors Actions – Menubars, Toolbars etc

17 Workbench Window View s Editor s Action s

18 Perspectives A set of related views etc – User configurable Support a specific user task (or tasks) – e.g. In an IDE tasks might be Editing Test Generation Debug Source code control Project management etc...

19 Demo: Perspectives

20 What is Envisage? A framework for... 1. Extensible Applications 2. Extensible GUI applications 3. Extensible Scientific Applications

21 3. A framework for Extensible Scientific Applications What we have – Text editor – Python shell – Mayavi – SciPy – Profiling – Debugging – Code browser Work-in-progress – Data import/export – Experiments – Materials Database – Distributed and Parallel computation – Scripting/Macro recording

22 Future Work Expand set of provided plugins Use Python Eggs for plugin loading – versioning/updating etc Documentation...

23 Further Information http://code.enthought.com – Downloads – Mailing List – Source code repository (svn)


Download ppt "Envisage An Extensible Application Framework Martin Chilvers Enthought Inc"

Similar presentations


Ads by Google