GOPI: A Generic Object Platform Infrastructure - PowerPoint PPT Presentation

1 / 18
About This Presentation
Title:

GOPI: A Generic Object Platform Infrastructure

Description:

low level API supports various application level computational models (e.g. CORBA, RM-ODP) ... non-multiplexed, upcall based system structure ... – PowerPoint PPT presentation

Number of Views:84
Avg rating:3.0/5.0
Slides: 19
Provided by: compLa
Category:

less

Transcript and Presenter's Notes

Title: GOPI: A Generic Object Platform Infrastructure


1
GOPI A Generic Object Platform Infrastructure
  • Geoff Coulson
  • Distributed Multimedia Research Group,
    Department of Computing, Lancaster University
  • geoff_at_comp.lancs.ac.uk

2
Overview
  • micro-ORB based, modular middleware for QoS
    demanding, soft real-time/ multimedia
    applications
  • provides QoS in a standard OS environment
  • signal, request/ reply, stream, pipeline
    interaction
  • static and dynamic QoS management
  • low level API supports various application level
    computational models (e.g. CORBA, RM-ODP)

Personality
Personality
GOPI
3
Influences
  • RM-ODP computational model
  • signals underpin both operations and flows
  • explicit binding
  • QoS specification
  • engineering principles (cf. Sumo and others)
  • adaptive/ fair share based soft real-time support
  • application specific protocols/ flexible protocol
    stacks
  • low level resource managers for tsaps, threads,
    buffers
  • non-multiplexed, upcall based system structure
  • efficiency minimise copies, context switches
    user threads

4
The CORBA personality
  • IDL extensions for signals, flows, QoS groups

5
Programmers view of binding
  • specialise QoS/ QoSM classes for each ASP/app...
  • use standard binding class...
  • establish binding...

6
GOPI modules
stubs, language binding
  • minimal dependencies
  • each module is a separate library
  • most modules are internallyconfigurable also

bind
comm
(msg)
thread
(base)
7
Bind irefs and binding topology
  • irefs comprise
  • iref identifier
  • profiles (ASP, default QoS specification)
  • handler (only meaningful in creator address
    space)
  • role and interaction type information
  • each iref has both customer and provider role
  • INOUT for operational bindings IN/ OUT for
    others
  • allows rich binding topologies

INOUT/INOUT
INOUT/INOUT
OUT/IN
OUT/IN
OUT/IN
8
Comm
  • framework to support stacks of application
    specific protocols (ASPs)
  • currently supported TCPASP, UDPASP, FIFOASP,
    FRAG, SHMEM, NATP, LOCAL, tIIOP
  • per-ASP QoS specification and mapping
  • ASP at level n maps to
  • QoS specification of ASP level n-1
  • or to generic thread/ buffer/ tsap resource
    managers at bottomof stack

9
Comms ASP framework
  • standard ASP interface
  • int asp_listen(Profile pf, InterType
    intertype)int asp_connect(Profile pf,
    InterType intertype)int asp_accept(Profile pf,
    int listening_sap)int asp_close(int sap)
  • int asp_relisten(int sap, Profile pf)int
    asp_reconnect(int sap, Profile pf)int
    asp_reaccept(int sap, Profile pf)int
    asp_hdrsize(int sap)int asp_flipqos(CharSeq
    cs_qos)int asp_send(int sap, Buffer
    buf)int asp_receive(int sap, Buffer
    outbuf)int asp_call(int sap, Buffer inbuf,
    Buffer outbuf)
  • first 7 operations are used by the binding
    protocol
  • do per-ASP QoS mapping/ resource (re)allocation

10
NATP - an example ASP
  • network audio transport protocol by N.
    Parlavantzas does adaptive audio playout (ala vat
    etc.)
  • considerably more programmable than vat!
  • stacked on top of FRAG/ UDP
  • configured by QoS parameters (e.g.
    samples_per_pkt, pkt_interval, initial_delay,
    adaptation_algorithm)
  • interacts directly with audio device but can
    track or synchronise with other streams via
    handler upcalls
  • direct connection concept

11
Binding creation (bind/ comm)
  • Iref bbind(Iref cust, prov CharSeq qos
    Handler qos_h)
  • supports third party binding
  • QoS is an opaque data structure
  • interpreted and mapped by ASP in underlying comm
    module
  • ltaspgt_qosbuild(CharSeq qos, t1 p1, t2 p2, ...)
  • b is used to control the binding (pause, reneg,
    unbind)
  • qos_h receives QoS reports from underlying ASP

QoS2
QoS3
...
...
transport connection
12
Thread
  • fast, standalone user level thread package with
    per-thread timers and timed semaphores etc.
  • thread pools
  • support for pluggable application scheduling
    contexts (ASCs)
  • int asc_init(void)bool asc_admit(Thread t,
    CharSeq params)void asc_deschedule(Thread
    t)Thread asc_schedule(void)
    Thread asc_expel(int thread_id)
  • encapsulate scheduling policy, run queue,
    admission test, VP(s)
  • non-preemptive, preemptive, time sliced options
  • EDF and priority based scheduling in default ASC

13
Non multiplexed data path
  • each binding has dedicated tsap and thread
  • combination upcall/ downcall scheme
  • receive side data path (send side analogous)
  • 1. a deferred interrupt handler runs in thread
    modules context switch code sends msg to
    bindings thread
  • uses a callback framework supported by thread
    module
  • 2. when scheduled, the bindings thread downcalls
    the ASPs receive() routine
  • 3. the bindings thread then upcalls the irefs
    handler
  • binding QoS determines ordering of receive()
    calls

14
Performance
  • tested on single SPARCstation 5/ SunOS 5.5
  • simple char arrays no complex marshalling
  • Orbix 2.3MT oneway ops used for Orbix streams
  • GOPI program used FRAG ASP, not IIOP

15
Future work
  • group ASPs and corresponding binding protocol
    extensions (ongoing)
  • re-implementation or wrapping in C
  • thread resource management with VPs and kernel
    lottery scheduling
  • runtime configuration using Reflective Python
  • http//www.comp.lancs.ac.uk/computing/users/geoff
    /GOPI/

16
Scope for reflection
  • module level (replacement)
  • base alternative OS wrappers, list, stack,
    hashtable classes
  • thread alternate resource mgmt
  • msg alternate buffer management
  • bind RSVP based, ReTINA based, have new
    alongside the old, e.g. for multicast

17
More scope for reflection
  • intra-module level
  • thread replace/ tailor scheduler configure
    number of VPs, priority levels ...
  • msg buffer pool size high/ low water marks
  • comm add new ASPs configure IO notification or
    polled IO select() on read or read/write
  • bind policy for caching management connections
    for INOUTs thread-per-invocation/ single thread/
    thread-pool policy for operation demux (e.g.
    hash table type)
  • general
  • intercept inter module calls for performance
    monitoring
  • switch on/off debugging info...

18
Conclusions
  • micro-ORB middleware to support soft real-time/
    multimedia applications
  • supports request/ reply interaction and streams
  • provide QoS in standard OS environment through
    policy-free QoS specification/ resource mgmt
  • small, modular and efficient implementation
  • more information
  • http//www.comp.lancs.ac.uk/computing/users/geoff/
    GOPI/
Write a Comment
User Comments (0)
About PowerShow.com