Download presentation
Presentation is loading. Please wait.
Published byEmerald Pitts Modified over 9 years ago
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)
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.