Bionic Buffalo Tech Note #103: Introduction to Pegasus Client Support
DSM_Stream_play()
). It is up to the servant to keep separate the state of each client's interaction.
When the session ends, the object might issue a
close
operation to clean up object references and
other resources, but the object itself doesn't go away. (There is a separate operation,
destroy
, to
permanently destroy the object, and only the object's owner - not a mere, ordinary client - has
sufficient privilege to do that.)
When a Pegasus client establishes a session, the client provides at session establishment time the name
of a service. During the process, the
ServiceGatewayModule::ServiceGateway
object will
issue an
attach
operation on the specified service object factory, which will instantiate a copy of the
service object. The client doesn't talk to a pre-existing object, but rather has one created for it on the
fly.
Implementation Models
DSM-CC User-User. The CORBA model implementing the U-U IDL normally would use an object
request broker (ORB) to mediate interactions between applications and service objects:
application - ORB - object
or
application - local ORB - IIOP - remote ORB - object
Where they are needed (when the object is remote), the ORBs implement IIOP, and the location of the
object is transparent to the application. In the case of U-U, the DSM-CC specification acknowledges
that a complete, distributed object system, with attendant ORB, isn't practical in all implementations.
Therefore, DSM-CC envisions local proxy objects as an alternative:
application - local proxy - IIOP - remote ORB - object
With local proxy objects, the over-the-wire IIOP protocol is implemented directly by the proxy, rather
than by a local ORB. The proxy objects have the same interfaces (APIs) as the corresponding remote
objects, so location transparency is preserved.
One class of special interest in this paper is the
DSM::Stream
class. An object of this class
represents streaming audio, video, and data, with a time base and the capabilities of jumping directly to
specified points, pausing, changing playback speed (fast or slow play), and other such functions. The
client can control these operations, making the object a kind of virtual VCR or audio recorder with
direct-access capability. Each
DSM::Stream
object contains a logical state machine, the stream state
machine. Clients operate this virtual playback engine by invoking operations defined on the DSM::
Stream interface. The
DSM::Stream
object, with its state machine, exists on the server, and is
operated remotely. Interaction is based on the same IIOP which is used with other classes.
application - local ORB - IIOP - remote ORB - DSM::Stream object
or
application - local proxy - IIOP - remote ORB - DSM::Stream object
Page 6 of 11