Presentation is loading. Please wait.

Presentation is loading. Please wait.

Herbert Sauro, Michael Hucka, Andrew Finney,Hamid Bolouri Principal Investigators: John Doyle, Hiroaki Kitano JST/ERATO Kitano Systems Biology Project.

Similar presentations


Presentation on theme: "Herbert Sauro, Michael Hucka, Andrew Finney,Hamid Bolouri Principal Investigators: John Doyle, Hiroaki Kitano JST/ERATO Kitano Systems Biology Project."— Presentation transcript:

1 Herbert Sauro, Michael Hucka, Andrew Finney,Hamid Bolouri Principal Investigators: John Doyle, Hiroaki Kitano JST/ERATO Kitano Systems Biology Project California Institute of Technology Pasadena, California, USA http://www.cds.caltech.edu/erato Intro Experimental Prototype

2 This talk will illustrate a prototype version of SBW together with a variety of SBW compliant modules.

3 Prototype Features Omitted from Prototype Implementation: 1.No Auto-Startup of Modules 2.No Registry Facilities 3.No Cross-Internet Hooks

4 Overview SBW Broker SBW Interface Main Application SBW Interface Main Application SBW Interface SBW Broker Listening Socket Dispatcher Next Slide

5 SBW/Module Interface

6 Levels of Operation Raw Messaging Logic Low Level API Low Level API + High Level OOP API Message Crackers

7 Call/Send Messages 1.Destination Handle 2.Message Type (Call, Send, etc) 3.Source Handle 4.Service Id 5.Method Id 6.UID – Unique identifier 7.Payload UID is used to match a reply to the original sender

8 Description of the Prototype SBW Broker Less than 1500 lines of Delphi source code 450K exe footprint, could be made much smaller Thread use is optimized via a Thread pool Runs in the background, accessible via the Windows Tool-tray Uses no detectable CPU resources when Idle Can be run under Win32 or Linux OS

9 Module Bindings Less than 2000 lines of source code Implemented as a Delphi Component (cf. Java Bean) for ease of use. These bindings are compatible with C++ Builder as well as Delphi. Can be used to implement Modules for Windows or Linux

10 Delphi Prototype Code (Service Provider) Implementing a Simple Math Service Provider function TMathClass.MySin (Data : PDataStream) : TComType; begin result := PackComType (sin (ExtractDouble (Data))); end; TComType is a variant record which can hold any of the allowable SBW data types PDataStream is a pointer to a byte array containing the message payload ExtractDouble is a helper routine to assist in extracting data items from the byte array PackComType is a routine to pack a data type into the TComType variant sbw.RegisterService ('trig'); sbw.RegisterMethod ('trig', 'sin', MySin, dtDouble, [dtDouble], 'Compute sin of radian angle');

11 Delphi Prototype Code (Service User) Implementing a Simple Math Service User MySin := sbw.GetMethodObj ('TrigModule', ‘trig’, 'sin'); Answer := UnPackDouble (MySin.Call ([3.1415]))); x.Call() returns data as a TComType, therefore it is necessary to use UnPackDouble to unpack the double value. x.Call() takes a variable number of arguments of any allowable SBW data type, eg MyMeth.Call ([1.2, True, ‘Hello’])

12 Prototype Test Modules Non-visual: Trig - Math Service provider NOM – Network Object Model (SBML Module) Visual: Graph2D - Simple 2D Display Inspector - Module inspector JDesigner - Visual designer Jarnac - Simulator Gillespsie – Simulator (Baltazar Aguda)

13 Scripting Modules can automatically wrap up a message interface into a scripting object. SBW Request Interface Signature Object Constructor Interface Object User: >>Obj.doit Message Constructor Interface signature Object Construction Script Based Modules

14 NOM (Network Object Model) GetSBML LoadSBML NOM { Constructor Interface Deconstructor Interface {

15 Conclusion 1.Ease of programming 2.Language independence 3.Small, Network friendly, Extensible From our own experience with using SBW, the benefits of SBW in order of preference include:

16 Demonstrations (Private Slide) 1.Startup Broker, show popup menu 2.Basic Access to a simple service provider 3.Example illustrating exception handling (ln(-2)) 4.Demonstrate Inspector Tool 5.Demonstrate performance using Graph2D 6.Demonstrate JDesigner and Inspector tool 7.Demonstrate Jarnac proxy facility using JDesigner 8.Introduce NOM 9.Demonstrate JDesigner, Jarnac, NOM, Gillespise working together (Close J/JD before carrying out simulation)


Download ppt "Herbert Sauro, Michael Hucka, Andrew Finney,Hamid Bolouri Principal Investigators: John Doyle, Hiroaki Kitano JST/ERATO Kitano Systems Biology Project."

Similar presentations


Ads by Google