Information Technology Reference
In-Depth Information
«CV_OperationInterfaceSignature»
IControl
«CV_FlowSignature»
Audio
«CV_FlowSignature»
Video
+pause()
+resume()
+removeBindingObject()
«CV_StreamInterfaceSignature»
MediaUserStream
«CV_StreamInterfaceSignature»
MediaBindingStream
«CV_Flow»+videoOut : Video{causality = producer}
«CV_Flow»+audioOut : Audio{causality = producer}
«CV_Flow»+videoIn : Video{causality = consumer}
«CV_Flow»+audioIn : Audio{causality = consumer}
«CV_Flow»+videoOut : Video{causality = consumer}
«CV_Flow»+audioOut : Audio{causality = consumer}
«CV_Flow»+videoIn : Video{causality = producer}
«CV_Flow»+audioIn : Audio{causality = producer}
«CV_Object»
Repairer
«CV_BindingObject»
Media Channel
«CV_Object»
Adviser
«CV_PrimitiveBinding»
«CV_PrimitiveBinding»
: MediaBindingStream
: MediaBindingStream
data : MediaUserStream
data : MediaUserStream
ctrl : IControl
IControl
ctrl : IControl
ctrl : IControl
FIGURE 4.11: Using a binding object in a multimedia application.
on the other, and similarly for the other three flows, so that its two stream
interfaces are cross-linked.
The binding action by the repairer creates the binding object, which then
in turn creates the two primitive bindings to the media interfaces. The binding
action returns a reference to the binding object's control interface, which is
then provided to both the repairer and the adviser. All binding objects have
such a control interface, which allows the binding to be shut down when no
longer needed, but here we can enhance it to support the control operations.
This is actually a cleaner structure than previously, since the binding object
encapsulates the mechanisms supporting the flows, and it is these that we
are trying to control. The repairer and adviser can independently bind to
the control interface when necessary to gain access to the pause and resume
functions.
The same system behaviour is being described here as in the first design,
but the focus has moved to the binding object, which is generic, and so more
likely to be derived from a reusable library.
The advantage of introducing the binding object becomes even clearer if
the requirements evolve so that a multi-party conference is needed rather than
just a two-way communication. If the description uses a binding object, all
the parties involved can still use the same stream interface, while the rules
for selecting or combining inputs are defined within the reusable conference
binding object type, making the system design more flexible.
In more complicated applications, we can also use the ability to specify
arbitrary behaviour as part of the binding type to define other useful building
 
Search WWH ::




Custom Search