Home
        A Call Model for Distributed Multimedia Communications
         Contents
1.  G HEWLETT    PACKARD    A Call Model for Distributed  Multimedia Communications    Walter L  Hill  Audrey K  Ishizaki  Media Technology Laboratory    HPL 93 06  January  1993    API  multimedia  communications   computer controlled  communications   shared workspaces    Internal Accession Date Only    Most experiments in building multimedia communications systems to  date have adopted application architectures which are intended for  communication specific applications such as teleconferencing  and  support only particular kinds of communication channels and  mechanisms  This paper describes an application architecture which  gives developers of diverse applications  from word processor and  spreadsheet programs to large distributed multi user systems  a  means to enable users to control real time communications directly in  the context of their work  It also provides uniform application level  control of distributed multimedia resources  It is designed for  eventual use in a distributed object system and provides a  programming interface based on intuitive operations of a telephone  call which model basic communication tasks such as placing and  forwarding a call  Analogies are drawn between properties of a call  system and those of a window system  The architecture and its  implementation allow numerous communication services to be  controlled together and can control any service with a suitable  switching interface  In addition to supporting switching for  traditional com
2.  for window systems  networking  and distributed computing make possible a call system  which controls virtual rather than graphical contexts   As shown by the example of shared workspaces  it is the call system   s ability to control the management   navigation  and integration of virtual contexts which gives it a distinguished role  However  there is a great  deal more to graphical user interfaces than a window system  It is interesting to ask whether in the future there  will be richer sets of software components  possibly including Call objects  which will yield more powerful  application frameworks for computer controlled communications to support development of applications for  inter personal computing     Acknowledgments    We would like to thank Riccardo Gusella  Shiz Kobara  Bob Leichner  and Aaron Oppenheimer of Hewlett   Packard  Prof  John Koegel and John Rutledge of the University of Massachusetts at Lowell  and Bob Simon  of the University of Pittsburgh for technical discussions and collaboration on the design  use  and  implementation of the call system  We would also like to thank Allan Kuchinsky  John Limb  and Robert Wu  of Hewlett Packard and Dr  Robert Sclabassi of the Center for Clinical Neurophysiology at the University of  Pittsburgh for providing support for the various parts of this work     Bibliography     Arango92  M  Arango  P  Bates  et al  Touring Machine  A Software Platform for Distributed Multimedia  Applications  IFIP    92  May 1992      C
3.  is worth noting  that Party2 could connect its MediaLine to multiple speakers  in which case the single abstract connections  controlled by Partyl and the Call correspond to multiple actual connections  or to a single multicast  connection   If there are additional Parties with speakers connected then a lot of switching activity results  from Party1   s single connection  Calls themselves extend this power  when a Party puts a Call on hold  it  affects in a single operation all of its connections to MediaLines in the Call  An even more important  observation is that the set of MediaLines in a Call can be thought of as a kind of    local coordinate system    for  switching where the Parties    connections determine the mapping between the local entities  i e   the named  MediaLines  and actual Resources  This allows applications to operate on Calls independent of particular  Resources  and even independent of particular Parties  by just referencing the named MediaLines  This is  analogous to the independence which window applications enjoy with respect to the location of the window     int callConnect call c  party fromParty  mediaLine fromML   party toParty  mediaLine toML   int callDisconnect call c  party fromParty  mediaLine fromML   party toParty  mediaLine toML     There are two merge operations on Calls  The first  called merge  is applied to a set of Calls  It creates a new  Call whose Parties consist of all the Parties to any Call in the set  The MediaLines of each P
4.  non traditional examples of  communication channels where the connections between clients and servers are controlled through  MediaLines in a Call     Each Party has a name which is used to identify it in a Call  The name may not be unique to the Party  ap   plications distinguish Parties by their identity as objects  A Party has a Resource Manager which manages all  of its resources and also manages the Party   s media connections in a Call     party newParty char  name  resourceManager rm   char  partyName party p   resourceManager partyRM party p     When a Party receives a request notification from a Call  its Resource Manager may negotiate its participa   tion directly or pass control on to a controlling application  In the latter case  the Party must be told whether  to accept or reject     int acceptCall party p  call c   int rejectCall party p  call c     If the Call is accepted  the Party adds the Call to its set of Calls  and its Resource Manager attempts to con   nect default resources to it automatically  notifying the Party if it fails either because resources are busy or it  doesn   t know how to make the connection  To defer connecting resources  a Call can also be accepted on  hold     int acceptCallOnHold party p  call c     A Party can place a Call  This operation creates the Call which includes the calling Party with associated  MediaLines  It then initiates the Call  The Party object placing a Call accepts the Call automatically     int placeCall party p 
5.  partyInfoSet partyInfos  mediaLineSet mediaLines     A Party can put a Call on hold  In doing so  it informs its Resource Manager to disconnect all of that Party   s  resources which are connected to the Call  While the Call is on hold  those resources can be used for other  purposes  It is intended that putting a Call on hold be analogous to the conventional operation with telephone  calls  That operation frees local resources while maintaining others  phone lines   It is useful for a Party also  to be able to free non local resources  which can have high connect costs  without terminating the call  This is  accomplished by the suspend operation  which frees both local and non local resources which the Party uses  in the Call  The Party can resume a Call which has been put on hold or suspended  the latter may take longer  to resume and incur an additional setup cost   If the original resources are not available when the Call is  resumed  the Resource Manager allocates new resources  possibly communicating with a controlling  application  as it would for a new Call  In addition to the hold  suspend  and resume operations which affect  all of a Party   s MediaLines  there are selective versions which would allow  for example     putting audio on  hold    while keeping a Call active     int holdCall party p  call c   int suspendCall party p  call c   int resumeCall  party p  call c     int holdMedia party p  mediaLineSet mediaLines  call c   int suspendMedia party p  mediaLine
6.  system and which is similarly in   tended to generalize the intuitive notion of user to include other media sources  The abstract switching  mechanisms in Session objects and Call objects are strikingly similar  There are direct counterparts to the call  system   s abstract MediaLines and MediaPorts  In the Session object  connections are represented explicitly  using connector values  while the corresponding connection objects in Calls are hidden in the implementation   The call system   s architecture emphasizes greater generality in the notion of communication channel to  provide better integration of communications with computing     Despite these architectural similarities  the APIs of Touring Machine and the call system emphasize different  things  The Touring Machine API gives more direct control of a client server implementation and explicit  support for creating and negotiating connections  To make applications easier to write and to understand  the  call system emphasizes instead the operations which represent communication tasks at the level of Call and  Party objects such as adding and removing Parties from a Call and suspending and resuming Calls  Much of  the connection management is hidden in the call system   s Resource Managers     A rather different area of activity which deserves brief mention here is the current work on messaging APIs  which provide general application support for electronic mail  There are currently several competing mes   saging API sta
7.  system is in C both to support application  development in C and also to facilitate interfacing to existing underlying switching software  It uses the same  object oriented design  which would be expressed more naturally and succinctly in C       One of the lessons learned from the earlier experiments with the call system was that care must be taken in  using object oriented inheritance to create different classes of calls  Much of the generic structure of calls is  dynamic while its class is fixed in most object systems  If one had classes of calls with a fixed number of  parties or a fixed set of media  for example  then those calls would have to be replaced with instances of other  call classes to allow parties or media to be added or removed  However  it should not be necessary to change  the identity of the call object in order to change parties or media  Nevertheless  inheritance can be used  profitably to create new call classes which add state and behavior to support a particular application   s  policies  for example  for providing distinguished parties or party roles in a call  and for logging calls     There are two layers of switching in the call system  The first consists of controlling the abstract connections  between MediaPorts and MediaLines for Parties and between pairs of MediaLines for Calls  The set of all  such connections is treated as a connection graph  Each time connections are made or broken  part of the  graph is traversed to determine changes in 
8.  which is the    caller     Indeed  a Call need not be created or  initiated by a Party participating in the Call  It is up to an initiating Party to know that it placed the Call   Using inheritance  one can add a distinguished Party to a Call     A Call can be queried for its Parties and their associated MediaLines     partySet callParties call c   mediaLineSet callMedialnfo call c  party p     When a Call is initiated  its Parties are notified and it is their Resource Managers which negotiate their par   ticipation in the Call at that point  The negotiation behavior will depend on the Party  If a Party rejects the  Call when it is initiated  it is removed from the Call  Parties added to the Call after it is initiated must negoti   ate participation immediately  Similarly  removing a Party from a Call after it has been initiated is the same  thing as hanging up  When a Party accepts participation in a Call  all other Parties are notified     int calllnitiate call c     To describe connections in a Call  we refer to Figure 1 which shows a very simple two party call in which  one Party just has an audio source and the other just an audio destination  Each Party   s Resource Manager  controls the connection between a MediaLine and appropriate Resource objects  The Call itself controls  whether the two MediaLines are connected  Only when the Call   s connection and each of the Parties       connections are made  is an actual connection made between a microphone and a speaker  It
9. CITT88  Message Handling System and Service Overview  CCITT X 400  CCITT  1988     Gopal92  G  Gopal  G  Herman  and M P  Vecchi  The Touring Machine Project  Toward a Public Network  Platform for Multimedia Applications  Proceedings of the Eighth International Conference on Software  Engineering for Telecommunication Systems and Services  1992      Minzer91  S E  Minzer  A Signaling Protocol for Complex Multimedia Services  IEEE Journal on Selected  Areas in Communications  Vol  9  No 9  pp  1383 1394  December 1991      MM92  Proceedings of the 4th IEEE ComSoc International Workshop on Multimedia Communications   1992      Sclabassi91  R J  Sclabassi   R L  Leichner  et al  The Multi media Medical Monitoring  Diagnosis  and  Consultation Project  Proceedings of the 24th Annual Hawaii International Conference on System Sciences   1991      Swinehart87  D C  Swinehart  Telephone Management in the Etherphone System  IEEE GlobeCom    87   November 1987      UML91  Distributed Multimedia Control System User Manual  Interactive Media Group  University of  Massachusetts at Lowell  1991      VIM92  VIM Interface Steering Group  Vendor Independent Messaging Interface Functional Specification   Version 1 0  March 1992      Vin91  H M  Vin  P T  Zellweger  D C  Swinehart  and P V  Rangan  Multimedia Conferencing in the  Etherphone Environment  IEEE Computer  October 1991     10       Figure 1    
10. Party class described in this section     One of the benefits for developers from the call system   s object oriented design is the ability to use objects  which represent sets of Calls  Parties  MediaLines  Resources  etc  These sets arise naturally throughout de   sign of the call system  much of the application code and implementation code for the call system is written in  terms of set operations     Call Objects    Creation of a Call object is separate from its being initiated  Calls can exist  with or without Parties  inde   pendent of any connections being made  Each Party in a Call has a set of abstract MediaLines which represent  media sources and destinations which can be connected by the Call  The MediaLines may differ for different  Parties in a single Call  e g   some Parties may only have output lines  and for different Calls  e g   some Calls  may only have audio lines   Each MediaLine has a name  a media type  and is a source or destination or else  bidirectional  A PartyInfo object is defined to be a Party object  together with a set of MediaLines  PartyInfos  and PartyInfoSets are convenient for adding and removing Parties and MediaLines from Calls  and are also  used in creating Calls     call emptyCall     call newCall partyInfoSet partyInfos    int ery panic Ale c  partyInfo pi    int callRemoveParty call c  party p    int callAddMedia call c  partyInfo pi    int callRemoveMedia call c  partyInfo pi     Notice that Calls don   t have a distinguished Party
11. Set mediaLines  call c   int resumeMedia party p  mediaLineSet mediaLines  call c     Of course  a Party can hang up  This operation removes all connections between the Party   s resources and the  Call  It also removes all references from the Party to the Call and vice versa  All other Parties to a Call are  notified when a Party hangs up     int hang Up party p  call c     A Party can participate in multiple Calls  which are active  on hold  or  suspended  and can be queried for the corresponding sets of Calls     callSet partyCalls party p   callSet party Active alls part   p     callSet partyHeldCalls party p   callSet partySuspendedCalls party p     char  partyCallStatus party p  call c   Resources and Resource Manager Objects    Compared with Call and Party objects  Resource Manager objects play a supporting role in the call system   Typical applications will deal mainly with Call and Party objects  while the work of the Resource Managers  and with it much of the complexity of the call system implementation remains hidden  just as much of the  complexity of a window system is hidden in the window manager     Resource Managers hold all information about Parties    media resources which are represented by Resource  objects  They also support the actual negotiation of connections  Resource objects include MediaPorts which  correspond to ports on physical and logical switches  including  for example  client and server processes  whose connections are managed by the call sys
12. a resources  The architecture and its implementation allow numerous communications services to  be controlled together and can control any service with a suitable switching interface  In addition to  supporting switching for traditional communications media  it is possible  for example  to control sets of  connections between clients and servers in a distributed computing environment  A particularly powerful ex   ample is provided by the addition of switching control for connections between X Windows clients and  servers  giving rise to shared multimedia workspaces which provide a seamless integration between personal  work contexts and communication contexts     Modern software development relies on application programming interfaces  or APIs  which provide the  operations for accessing sets of services  In C  APIs are realized as collections of functions  while in C   they  are collections of classes  System level APIs  for example for file and window management  are used in  developing most applications  while custom APIs promote modularity and reuse within particular classes of  applications  As computing evolves  new system level APIs are needed to support new functionality  as seen  currently  for example  with support for speech and handwriting input  The call API described in this paper is  intended as a system level API supporting heterogeneous real time communications services  A call system is  in a sense dual to a window system  it controls arcs in a connection gr
13. aph rather than nodes   However  by  virtue of its ability to control contexts  it can also be used as a partial replacement for a window system when  windows may not be feasible  as in the case of small displays on handheld devices     As the name suggests  the calls in a call system are motivated by intuitions about telephone calls  and  specifically by the intuitive set of operations such as place  hold  forward  and hang up  associated with them   One must be careful  however  as with windows  about taking the analogy too literally  The use of the word  call here is with reference to the set of operations  which in fact was the starting point for the call API  The  choice of the word seems appropriate  as with window  despite its other uses  The idea of basing a  communications API on notions associated with a telephone call seems natural and potentially congenial for    programmers  and indeed has also influenced the design of other systems  notably EXPANSE  Minzer91  and  Touring Machine  Arango92 Gopal92  at Bellcore  In addition to providing a programming model based on  communication tasks  calls are also effective as a mechanism for organizing and distributing communication  information and control  Along with calls  a call system has parties which can belong to calls and whose  media connections are controlled through calls  As with systems like Etherphone  Swinehart87  Vin91  and  Touring Machine  the notion of party is construed broadly so that a wide range of so
14. arty to the merged  Call are the union of the sets of MediaLines of that Party in all constituent Calls with duplicate names being  distinguished by suffixes  A second form of merge  called mergeInto  takes a    primary    Call and merges a  set of    secondary Calls into it without creating a new Call  The identity of the first Call is preserved     call merge callSet calls   call mergelInto call c  callSet calls     Forwarding a Call from one Party to another can be accomplished by setting up a second Call between two  Parties  merging it into the first Call  and then removing the forwarding Party     When a Call is terminated  all of its connections are broken  Each of its Parties and any controlling applica   tion are notified  The terminate operation must be used explicitly to end a Call  Since a Call is allowed to  have no current Parties  it is not enough for all Parties to hang up  as would be the case with a traditional  telephone call  Of course  a particular application may enforce a termination policy for its empty Calls     int terminate call c   Party Objects    As we have mentioned  the notion of Party object is very general  It is worthwhile to think abstractly about a  Party as any object which could support the operations and behavior described here  The notion of MediaLine  should be thought of similarly so that connections between many kinds of resources can be controlled by the  call system  We again mention client server systems as an important source of
15. connectivity between the MediaPorts  The second layer of  switching controls    actual    connections between    actual    things which those parts represent  It is the changes  in connectivity in the first layer which control the connections and disconnections in the second     Referring back to Figure 1  a physical switch will connect Partyl   s microphone to Party2   s speaker only  when three abstract connections are made  from the MediaPort for the microphone to Party1   s MediaLine in  the Call  from Party1   s MediaLine to Party2   s MediaLine  and from Party2   s MediaLine to the MediaPort for  the speaker  The microphone and speaker will be disconnected if any one of the abstract connections is  broken     The resulting distribution of control between Calls and Parties is an important feature of the call system  The  call system can control many    actual    switches which support connect and disconnect operations for some  meaningful set of ports  With slight extensions  it is possible to control multicast and broadcast mechanisms  as well  In order for the two switching layers to determine equivalent sets of connections  it is necessary that  the MediaPorts represent distinct    actual    ports and that the    actual    connect and disconnect operations affect  only the ports determined by their arguments     4  Applications Using the Call System    The applications presented here represent work to date in using the call system  The videoconferencing pro   totype i
16. d to be solved in order to support them effectively in the user interface     The key to implementing shared workspaces as calls is to interpret Shared X as a multicasting switch which  controls connections between X Windows clients and displays  An important implication of this level of  control is that the connections are transparent to the client application which assumes it is running on a single  display  any X client can be connected  Shared X provides the mechanisms needed to implement support for  interaction with multiple users     In terms of the call system  the notion of workspace in VUE would suggest taking a shared workspace to be  a Call with Parties which have MediaLines controlling connections between X clients and displays  However   it turns out to be better not to distinguish those Calls from others  so that shared workspace becomes a  synonym for Call  giving rise  for example  to shared audio workspaces  The important thing is the natural  way in which personal workspace usage is extended for multimedia communications  A more complete  integration awaits suitable support in X Windows for digital audio and video  The interpretation of a call as a  shared workspace suggests further extensions to represent virtual meeting rooms and other computer   supported communication contexts     5  Related Work    The Etherphone project  Swinehart87  Vin91  at Xerox PARC has done pioneering and influential work  both in using LANs to transport and control real time co
17. er  The cre   ation of Resource Managers uses the same PartyInfo structures  with Resources instead of MediaLines  as  were used in the creation of Calls     resourceManager newResourceManager partyInfoSet partyInfos   int rmAddPartyResources resourceManager rm  partyInfo pi   int rmRemovePartyResources resourceManager rm  partyInfo pi     Each resource is owned by one or more Parties  Parties control adding and removing resources     int partyAddResources party p  rmResourceSet rmResources   int partyRemoveResources party p  rmResourceSet rmResources     Connections between a Party   s resources and MediaLines in a Call are usually handled automatically by its  Resource Manager using default preferences  However  direct control is provided for connecting and dis   connecting MediaPorts on media resources to MediaLines     int partyConnectLine party p  call c  mediaLine ml  MediaPort mp   int partyDisconnectLine party p  call c  mediaLine ml  MediaPort mp     3  Call System Implementation    The call system has evolved from a high level control layer for a prototype desktop videoconferencing ap   plication written in object oriented Scheme  In order to improve its modularity and robustness as an object   oriented application framework  the call system was later moved to Smalltalk  It was at that point that its  usefulness for general application development and some of the analogies mentioned with window systems  became evident  The current complete implementation of the call
18. ides integration with video windows using video overlay and compression boards from Fluent  Corporation which Lowell has interfaced to Hewlett Packard workstations  Part of the session manager user  interface is shown in Figure 2  The session manager uses a single live video window to display the current  speaker while other participants can express themselves by selecting from a set of still images which present  gestures or moods     As a Call manager application  the session manager is responsible for its own floor control policies support   ing selection of the current speaker who is viewed by all users  In the implementation  this is realized by  connecting a single source MediaLine to all of the destination MediaLines  Using the call system API to  manage the participation of users in a Call is very simple once Parties have been created for them and pref   erences have been provided for selecting devices for them to use in communicating     Remote Consulting in Neurophysiology    Multimedia MedNet  Sclabassi91  is a distributed application under development at the Center for  Neurophysiology at the University of Pittsburgh which allows specialists to consult on multiple neurosurgical  procedures from remote locations  It enables the remote consultant to observe the operation in progress vi   sually and communicate verbally using a cable television connection  and also to monitor neurophysiological  data which are transported in real time over a computer network  Using M
19. lete series of such abstract connections  from one resource to another is made  Different kinds of control are needed in connecting Parties in Calls  For    example  putting a Call on hold is an operation primarily local to a Party while terminating a Call is an  operation on the Call itself  Whenever abstract or concrete connections are made or broken  messages are sent  informing the Call and all Parties  which in turn can inform a controlling application of the state change   There are a large number of possible policies which an application could use in controlling media connec   tions  In some applications  centralized control is desirable while in others control will be mainly local  For  example  using the mechanisms provided by the Call System  one application could make sure that all Parties  were viewing the same video source  while another could allow each Party to choose from all the available  video sources in the Call     Parties provide a uniform interface for communicating with diverse sources and sinks of information  in   cluding people  Calls can be placed to Parties which represent offices  hospital operating rooms  with many  audio  video  and instrument data resources   movies  telephones  CATV channels  multimedia documents  X  Windows applications  etc   just as they are placed to Parties representing human beings  Thus  from the point  of view of object oriented programming  any object can be made into a Party if it can meaningfully inherit  from the 
20. mmunications media and also in exploring highly  innovative user services which take advantage of computer controlled communications  The software  architecture for the Etherphone system has some similarities and differences with the call system  It has  similar intuitive notions of calls  called conversations  and parties  but information and behavior are centered  in a connection manager and in agent processes which support a party in a conversation  Rather than  communicating directly with the representation of a conversation  an agent communicates with the connection    manager  This provides for more centralized control  From the point of view of supporting general  applications  it may be better to view such control as policy rather than mechanism  and provide for Call  objects in the API as we have done  While Etherphone   s conversation manager has coarser granularity than  Calls  its agents for parties have finer granularity than Parties in the call system  Parties and their Resource  Managers in the call system could probably be implemented easily using Etherphone agents  For a higher   level API  it may be more effective to expose Party objects with a suitable set of operations  but keep the  behavior of the individual agents hidden from the application developer     The EXPANSE  Minzer91  project at Bellcore provides a software architecture containing call and party  objects for controlling multimedia communications over high speed networks  EXPANSE   s call objec
21. munications media  it is possible  for example  to  control sets of connections between clients and servers in a distributed  computing environment  A particularly powerful example is provided  by the addition of switching control for connections between X  Windows clients and servers  giving rise to shared multimedia  workspaces which provide a seamless integration between personal  work contexts and communication contexts        Copyright Hewlett Packard Company 1993       A Call Model for Distributed Multimedia Communications    Walter L  Hill  Audrey K  Ishizaki  Hewlett Packard Laboratories    ABSTRACT    Most experiments in building multimedia communications systems to date have adopted application  architectures which are intended for communication specific applications such as teleconferencing  and  support only particular kinds of communication channels and mechanisms  This paper describes an  application architecture which gives developers of diverse applications  from word processor and spread   sheet programs to large distributed multi user systems  a means to enable users to control real time  communications directly in the context of their work  It also provides uniform application level control of  distributed multimedia resources  It is designed for eventual use in a distributed object system and  provides a programming interface based on intuitive operations on a telephone call which model basic  communication tasks such as placing and forwarding a call  Anal
22. nd HP VUE products for UNIX workstations  The re   sulting integration of VUE   s support for personal workspaces with the call system   s control of real time  communications services including Shared X gives rise to functionality which is qualitatively new and seems  natural for supporting group work  The example in Figure 3 shows shared workspaces for consulting in brain  surgeries using Multimedia MedNet     Shared X allows multiple users to see and interact with the same X window from different displays  While  this is patently a communication service  it is not yet integrated with other forms of communication  On the  other hand  HP VUE provides users with multiple personal workspaces  each of which contains its own set of  windows and constitutes a work context  One might use different workspaces  for example  to hold work  related to different projects  At the center of the VUE dashboard shown in Figure 3 are six buttons which al   low the user to select the current workspace  VUE   s buttons for selecting a workspace are analogous to but   tons on a telephone which select between phone calls using a hold and resume mechanism  With shared  workspaces which are implemented using the call system  those two analogous operations become literally  the same thing  Of course  the static set of buttons is an artificial limitation  Support of multiple simultaneous  multimedia calls is desirable  and is provided by the call system  There are  however  design problems which  nee
23. ndards including X 400  CCITT88   VIM  VIM92   and Microsoft   s MAPI  These APIs enable  applications to support sending and receiving mail and to do so intelligently  The call system   s objective is to  provide complementary support for real time communications  It is possible that there are interesting ways to  unify the asynchronous and synchronous services     6  Summary and Conclusions    The call system   s API tries to present to general application developers an intuitive set of components and  operations which model basic communications tasks and to hide where possible the structural and operational  features of any particular communications system  The central components of the call system are Call and  Party objects  Call objects can model diverse communications contexts  from a brief telephone call to a  persistent meeting room or project workspace  Parties and media can be added and removed dynamically  from Calls and sets of Calls can be merged  Party objects are very general  allowing the call system to be used  broadly and to support new notions of communication channels and media derived from distributed  computing  The call system has been implemented and used in a few experiments so far  It needs to be sub   jected to further testing in practice to determine its adequacy     The interpretation of Call objects as    windows in a communication space    is provocative  Just as graphics  hardware and underlying graphics software formed the enabling technology
24. ogies are drawn between properties of a  call system and those of a window system  The architecture and its implementation allow numerous  communication services to be controlled together and can control any service with a suitable switching  interface  In addition to supporting switching for traditional communications media  it is possible  for  example  to control sets of connections between clients and servers in a distributed computing  environment  A particularly powerful example is provided by the addition of switching control for  connections between X Windows clients and servers  giving rise to shared multimedia workspaces which  provide a seamless integration between personal work contexts and communication contexts     KEYWORDS  API  multimedia communications  computer controlled communications  shared workspaces    1  Introduction    Most experiments in building multimedia communications systems to date have adopted application archi   tectures which are intended for communication specific applications such as teleconferencing  and support  only particular kinds of communication channels and mechanisms  MM92   This paper describes an  application architecture which gives developers of diverse applications  from word processor and spreadsheet  programs to large distributed multi user systems  a means to enable users to control real time communications  directly in the context of their work  It also provides uniform application level control of distributed  multimedi
25. ons for direct manipulation of  media connections for finer control  the API   s higher level operations can control sets of connections  automatically and are sufficient in many applications  Developers can add new state and behavior to Calls   Parties  and Resource Managers using object oriented inheritance  for example  to allow different Parties to  have different roles in a Call or provide Resource Managers which monitor resource usage     While it is important that the objects in the call system be intuitive for general application developers  their  primary purpose is to organize information and control for communications effectively  A Resource Manager   for example  is the locus of all information about the communication resources  such as logical and physical  devices  of the Parties it supports  It also holds such things as preferences of Parties for selecting resources to  use in various communications  Resource information is not held in Parties  and is not available to Calls  for  security reasons among others  Parties contain all information about their communication activities  for  example which calls are active or on hold  A Call controls all the connections between its Parties     There is a notion of abstract connection which underlies the Call System  Parties control abstract connec   tions between their resources and a Call  while a Call manages abstract connections between Parties  A con   crete connection enabling communication is made only when a comp
26. ortant to distinguish a  caller party among the parties to a call  other applications distinguish a current speaker or moderator party  which can change over the life of the call  still other applications don   t have a distinguished party at all  The  call system can provide support for distinguished parties  but does not require them to be present  There are  numerous examples of policies which the call system attempts to support without imposing them on the gen   eral application developer     The following section of this paper presents the actual call system API and discusses some of the issues  which its design addresses  Section 3 discusses certain aspects of the call system implementation  in particular  its interface to underlying switching mechanisms  Section 4 describes real applications  including shared  workspaces  in various stages of design and development  which use the call system  This section also iden   tifies design ideas and issues which need to be explored in future work  Section 5 discusses the connections  between the call system and related work  Finally  Section 6 provides a summary and draws conclusions from  the work presented here     2  Call System API    This section describes some of the important operations on Call  Party  and Resource Manager objects which  are basic to the call API  The API emphasizes operations which model communication tasks such as creating   initiating  suspending  and resuming Calls  While the API does provide operati
27. s a running application while the others are in various stages of design and implementation  The range  of examples so far is much narrower than the possible applications we envision for the call system  Additional  examples of particular interest include enabling personal applications such as spreadsheet programs for real   time communications  For example  a communication enabled spreadsheet program might allow a user to  place calls automatically to get information for particular cells in a spreadsheet  Another interesting  application would use the notion of shared workspaces described here with handheld devices which have a  small display and no window system     Desktop Videoconferencing    The call system has been used in a prototype desktop videoconferencing application developed by the  Interactive Media Group at the University of Massachusetts at Lowell for the Hewlett Packard Media  Technology Laboratory at Chelmsford  Massachusetts  In this application  the call system is used to control  switching of a number of analog audio and video devices through the Distributed Media Control System   UML91  developed earlier at Lowell  Parties in the application represent either end users or abstract media  objects such as video clips on a laser disk     The call system is controlled by another system component called the session manager  developed at Lowell  for this application  which supports a user interface for placing and modifying calls  The session manager also  prov
28. tem   and also composite resources which can have a set of  associated MediaPorts and also a control interface  Composite resources include devices like VCRs and also    recorded media  such as film clips on a laserdisc  which have multiple associated MediaPorts for audio  video   etc   when mounted on a suitable device  Composite resources can provide alternative realizations of the same  Party  For example  a single Party representing the movie    Gone With the Wind    might have many resources  which are laserdisc copies of the movie  In a video on demand application  a user   s request to see    Gone  With the Wind    would create a Call to the unique    Gone With the Wind    Party  The Party   s Resource  Manager is responsible for selecting and connecting an available  mounted and not busy  laserdisc to the  Party   s MediaLines in the Call  In our UNIX implementation  one of the MediaLines would be connected to a  resource representing an X client program presenting play  pause  stop  etc   controls to the user for viewing  the movie  At the other end  the user Party   s Resource Manager selects resources to connect to that Party   s  MediaLines for viewing the movie  To make such connections intelligently  Resource Managers store  information on default preferences for Parties  In the current implementation this is done by a simple ordering  of each Party   s Resources     Just as a Party has a set of MediaLines in a Call  it has a set of Resources in a Resource Manag
29. ts are  composite structures built up directly from finer grained channel and connection objects  In directly modeling  network services and capabilities  EXPANSE   s software architecture is intended for controlling network  infrastructures and seems better suited for that than for directly supporting general application development     The Touring Machine  Arango92  Gopal92  project at Bellcore is distinguished for its emphasis on  supporting development of communications applications through an API  Touring Machine has some strong  similarities with the call system  both in its goals and in its software architecture  however  the resulting APIs  are quite different  One of the important commitments for both systems is support for dynamically changing  calls with multiple parties and media which users of the system can control effectively  The Touring Machine  architecture contains a greater variety of objects than the call system since it supports software layers all the  way from switch and network interfaces to the user interface  Touring Machine has Session objects which are  similar to Call objects  However  the Session object provides support for negotiation of requests while the call  system distributes that negotiation out to the Parties involved in the requests  which seems better as the  variety of Parties  requests  and negotiation mechanisms in the system increases  Touring Machine has an  implicit notion of a user which corresponds to a Party object in the call
30. ultimedia MedNet  it is possible for  one consultant to participate in several surgeries at the same time  Figure 3 shows a prototype user interface  for this system     In this application of the call system  each consultant and each operating room is represented by a Party  A  Call contains a single operating room Party but possibly more than one consultant Party  Consultants can in   dependently select among video sources in the operating room and discuss the case over an audio channel  which is shared with the operating room  The consultant can change from one operating room to another in a  single action and even view multiple operating rooms simultaneously     One of the distinguishing features of this application is the use of real time medical data as a communica   tions medium  It is supported in Multimedia MedNet by connecting remote clients that display the data with  servers which manage the acquisition of data from the operating room  Using the call system  MediaLines can  be created to control the connections between the remote display clients and the data acquisition servers   These allow a call to control the data connections in just the same way that they control connections for audio  and video  which in this application involve modulating signals onto a cable television network     Shared Workspaces    Shared multimedia workspaces are an application of the call system which we have pursued to extend and  merge functionality of Hewlett Packard   s Shared X a
31. urces and sinks of in   formation can be represented and treated uniformly  For example  the shared workspaces mentioned above  allow parties to be associated with arbitrary X Windows clients  A basic design objective for the call system  is robust support for multiple parties and media which can be added and removed dynamically from a call     The call system was designed for eventual implementation in a distributed object system and will be de   scribed here in terms of classes of objects  The notions of call and party objects strongly influence the design  of the call system and the ways in which it can be used  For example  calls can be longer lived than conven   tional telephone calls  The same call object might be used repeatedly for a series of related communications  over time and might be stored and accessed  for example  in an on line appointment book  Of course  con   nections controlled by the call may be broken when the call is not actually in use     In providing a set of system level services  it is important to distinguish general mechanisms which the call  system must provide from those which must be provided by an application or some other system component   For example  the call system provides indirect support for controlling media devices but does not provide a  user interface for controlling the devices  The call system provides a set of mechanisms which allow an ap   plication to implement policies appropriate to it  For example  in some cases it is imp
    
Download Pdf Manuals
 
 
    
Related Search
    
Related Contents
HP Z 620  Ryobi RTS10G Use and Care Manual  Manual de Instalación  Page 1 SANYO ORDINATEUR INDIVIDUEL .Ll  ー 剛 レンジアード  19000/24000  Report - School of Engineering and Computer Science  LEAP FROG 48/96 BENUTZERHANDBUCH  Sony PCV-V100G Quick Start Manual  YARDGARD 328303A Instructions / Assembly    Copyright © All rights reserved. 
   Failed to retrieve file