1 / 12

QoS Provisioning in CORBA Aspects & Composition Filters

QoS Provisioning in CORBA Aspects & Composition Filters. Mehmet Aksit * [aksit@cs.utwente.nl] Ali Noutash + [ali_noutash@oti.com] Marten van Sinderen* [sinderen@ctit.utwente.nl] Lodewijk Bergmans* [lbergmans@acm.org] * University of Twente, Enschede, The Netherlands

wilma
Download Presentation

QoS Provisioning in CORBA Aspects & Composition Filters

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. QoS Provisioning in CORBAAspects & Composition Filters Mehmet Aksit * [aksit@cs.utwente.nl] Ali Noutash +[ali_noutash@oti.com] Marten van Sinderen* [sinderen@ctit.utwente.nl] Lodewijk Bergmans* [lbergmans@acm.org] * University of Twente, Enschede, The Netherlands + Object Technology Int. (OTI), Ottawa, Canada

  2. Introduction • Context: AMIDST project: • QoS-aware Middleware • a generic, framework-based approach • Enhances middleware to reason about QoS requirements and meet those needs. • Architecture adopts a feed-back control loop. • This talk: • Propose Aspect-Orientation & Composition Filters • Motivate for enhancing middleware • with Specialized Composition Filters • for dedicated transport plugins

  3. Aspect-Orientationa.k.a. Multi-Dimensional Separation (& Composition) of Concerns • Key characteristics • addresses tangled code if it is due to crosscutting concerns • by making each concern a module abstraction • concerns are structured along (multiple) separate dimensions • functional & non-functional • mapping between crosscutting concerns: • 1 class, n methods • n classes, n methods • wildcards • imposition of behavior • inverse dependencies because of m

  4. AOP with Composition Filters external objects internal object(s) {… , … } A quick overview of features Example filter specs: BoundedBuffer assert:Error={ElemOk=>*}; sync:Wait={ FreeSpace=>put, ElemsLeft=>get, *\{put, get} }; cntr:Meta={ CntOn=>[*]stats.count }; disp:Dispatch={ [alloc]MemMan.*, inner.*, simpleBuf.* }; stats kernel SimpleBuf MemMan conditions

  5. CORBA OCI Server Object Client Object ORB ORB Interface (IDL) GIOP (RPC Protocol) GIOP (RPC Protocol) Interface (IDL) Buffer Buffer Transport Layer Transport Layer Network

  6. Aspects: • Buffering • Distribution • Synchronization Simplified OCI-IIOP interaction Receiving RPC Sending RPC 1 4 3 2 GIOP Call Receive (RPC-Message) Call writeBuffer (abstract) (buffer) Call Send (abstract) (RPC-Message) Call ReadBuffer (buffer) Interface (IDL) Buffer Buffer Buffer Buffer Send(buffer) { java.io.OutputStream out = socket_.getOutputStream(); out.write(buf.data(), pos(), length()); out.flush();} Receive(buffer){java.io.InputStream in =socket_.getInputStream(); int result = in.read(buf.data()} Transport Layer TCPIP (socket)

  7. Simplified OCI-UDPIOP interaction Receiving RPC Sending RPC 1 4 2 3 GIOP Call Receive(RPC-Message) Error:Buffer isn't Full Call writeBuffer(buffer) Call Send(RPC-Message) Call ReadBuffer(buffer) Interface (IDL) Buffer Buffer Buffer Buffer Transport Layer UDPSocket.Receive (datagramPacket=1k) Socket.Send (datagramPacket=1k) UDPIP (socket)

  8. OCI-UDPIOP implementation Receiving RPC quality of service access points (delegation points) GIOP Call Receive(RPC-Message) Call ReadBuffer(buffer) Interface (IDL) TCPIP Receive(dataUnit=%10Buffer) Receive(RPC-Message) Buffer Fork UDPIP Receive (dataUnit=%25Buffer) Dynamic transport wrapper Transporter() { loop(buffer isnot FULL) { Receive(dataUnit) prossesBuffer(dataUnit,buffer) if (buffer is Full) notify () } } Blocker() {Suspend()} readHeader (12Bytes,buffer) Read&DeleteBuffer (allBuffer,buffer)

  9. Synchronization aspect attribute bufferSize /*determines the size of buffer */ attribute bufferCounter /*determines amount of data filled/red to/from buffer */ suspendCondition = (bufferCounter<bufferSize) Thread 1(main thread) Blocker(){ Suspend() } Thread 2 Transporter() { While (NOT suspendCondition) { receive/send (dataUnit) processBuffer(dataUnit,buffer) if (buffer is Full) notify () } /* End up the suspended main thread }

  10. Composing QoS aspect with Synchronization aspect attribute bufferSize /*determines the size of buffer */ attribute bufferCounter /*determines amount of data to be filled/red to/from buffer */ suspendCondition = {bufferCounter<bufferSize} attribute EndOfNetworkProcess /* boolean variable to be set by QoS Manager attribute EndOfBufferProcess / * boolean variable to be set by GIOP suspendCondition= {suspendCondition AND EndOfNetworkProcess AND EndofBufferProcess) Thread 1(main thread) /* Block main thread*/ Suspend(); Thread 2 While (NOT suspendCondition) If (not endOfNetworkProcess) send /receive (data) If (not EndofBufferProcess) processBuffer(data,buffer) IF (EndOfSuspend) /* End up the suspended main thread Notify()

  11. delegation Dynamic transport wrapper with Composition Filter Object Model Multithread (thread fork) dispatch filter(synchronization aspect) fork loop Wait filter (synchronization aspect) meta filter (synchronization aspect) IP Multicast transport dispatch filter(QoS and Synch aspects) TCPIP transport Dispatch filter (QoS and synch aspects) Processbuffer Send/receivedata UDPIP transport

  12. Conclusions • We need dynamic adaptability for QoS provisioning • We need Aspect Oriented Transport Layer • We need Reflective Transport Layer • We need QoS access points in Transport Layer Future work • Implementing Transport wrapper • Implement run-time transport plug-ins • Implement Quality of Service access points 1) for switching Transport Plug-ins 2) Switching Buffering processes

More Related