exchange of messages between remote applications or services, using Web .... meeting support â computer support for participants in a meeting, providing ...
IADIS International Conference on WWW/Internet 2005
COVIEW: A PROTOTYPE OF A COOPERATIVE VIDEO EDITING TOOL BASED ON WEB SERVICES Benjamim Fonseca CETAV/UTAD – Universidade de Trás-os-Montes e Alto Douro Dep. Engenharias Vila Real, Portugal
Eurico Carrapatoso INESC Porto/FEUP – Faculdade de Engenharia da Universidade do Porto Porto, Portugal
ABSTRACT Web Services emerged in the last few years to allow the exchange of data in distributed environments using common Internet technologies and has been used mainly to build business-to-business applications. This paper presents a prototype application that enables the cooperative editing of digital video clips, using web services to build the underlying cooperation infrastructure. KEYWORDS
Groupware; CSCW; Web Services; Video Editing.
1. INTRODUCTION The technological advances that took place in the last few decades have led to a growing utilization of computational and communications resources by both residential and professional users, encouraging the development of numerous applications for diverse computational platforms. During a long period, the majority of software vendors developed systems without concerning with compatibility issues. More recently, this heterogeneity of systems encouraged the definition of interoperability standards targeted for systems already developed or under development. One technological development that revolutionized the professional and leisure activities in recent years was the Internet, namely the World Wide Web (WWW). Its ease of utilization and the attraction it encompasses regarding information retrieval, business and leisure activities, led to an exponential growth of the users’ community, fostered by the recent availability of mobile access to the Web. The dawn of this century witnessed the emergence of a new technology that enables the exchange of messages between remote applications or services, using Web protocols and data formats widely supported. This technology, known as Web Services, has capabilities that aim to ease the interaction between peers in heterogeneous environments. In the current organizational context, one success factor is the ability to effectively realize team work. This fact has raised the interest of organizations in applications of Computer Supported Cooperative Work (CSCW). In this kind of applications, usually referred as groupware, interoperability issues, application’s familiarity and users’ mobility support assume significant importance. Earlier video editing activities involved walking into the archive, searching for the desired tapes and carrying them to the editing room. Then, the editor would use video tape recorders and TV monitors to go through the tapes, select the desired sequences and record the result in a new tape. Finally, it was necessary to take the tapes back to the archive. Furthermore, all these video manipulations used analogue technology, with the disadvantages it encompasses. The evolution in computer technology has led to the use of digital techniques to handle video material. The first step was to convert the video sequences into digital format and
331
ISBN: 972-8924-02-X © 2005 IADIS
store and manipulate them in a computer-based editing station (non-linear editing). Nevertheless, the source and the final result were kept in analogue format (tape). Recently, the evolution in acquisition equipment, high-speed networks and compression techniques brought about a novel concept: the digital studio, where all video sequences are acquired, stored, transmitted and manipulated digitally [Fonseca, 1997], [Oliveira, 1998], [Ohanian, 1998]. The aim of this paper is to present the architecture of a cooperative video editing tool developed by the authors and to give some details of a prototype that has been developed. It starts with a brief description of the web services technology, as well as a summary of the main issues related with CSCW. Then, it describes the architecture of the overall system and the prototype of the cooperative video editing tool.
2. WEB SERVICES The concept of service is frequently associated with the idea of an application accessible through interfaces, which tell us how to use the operations they provide. These applications are usually referred as applications with a Service Oriented Architecture (SOA) [Nagappan, 2003]. The web has a utilization paradigm and a protocol set for communications and data representation that were easily accepted and are widely supported. The ability to build services accessible using web protocols is very attractive for a significant portion of the software industry and the international scientific community. The convergence of SOA and web protocols, under the scope of the World Wide Web Consortium (W3C), produced the technology currently known as Web Services. A simple definition for Web Service is that of an application that is accessible through an interface, using common web protocols. As well as a component, a web service represents functionality that can be reused without knowledge of its implementation details. The main difference between them is the fact that components are accessible through specific protocols, while web services are accessible through common web protocols, like HTTP (HyperText Transfer Protocol), and use data representations that follows the de facto standard XML (eXtended Markup Language). The use of protocols and data representations widely adopted gives web services a highly appreciated and desirable feature, that other distributed processing architectures failed to efficiently achieve: interoperability. Indeed, the use of web protocols for communication provides platform independence and the use of XML for data representation provides independence at the programming language level. The latter also has the ability to transform legacy applications into services accessible though web servers, facilitating interaction between systems otherwise unattainable. This feature gives organizations the ability to increase the profitability of their investments in information systems and to expand business opportunities. Thus, any kind of application can be offered as a web service and become accessible anywhere, from an Intranet, an Extranet or even the Internet, according to the services access policy of the organization. A web service can be used by a user with a browser, by a dedicated application or by another web service. An adequate choice of the granularity of a web service can enable the composition of some services in a new one, maximizing development efforts through reuse and making systems more flexible, due to the ability to recombine modules. Web services use XML to describe its service interfaces and to encode the messages exchanged in the invocations. The description of the interfaces is achieved by using a specific XML-based language, called Web Services Description Language (WSDL). The service description included in a WSDL file contains information regarding the available operations, the data types manipulated, the format of the exchanged messages, the protocols that are supported and at least one access point to its interfaces. Each access point has an address, called Uniform Resource Identifier (URI) and each interface can have several addresses, each one corresponding to the access through a different protocol. The messages exchanged in the invocations use a packet format and a data encoding mechanism defined by the Simple Object Access Protocol (SOAP). Beside the message exchange model, SOAP formalizes a remote procedure call model. SOAP 1.1 specification defines mainly mechanisms to use HTTP, but version 1.2 adds the ability to use the Simple Mail Transfer Protocol (SMTP). A SOAP message has a header that includes content information and a body including the transmitted information. The SOAP protocol defines a standardized data serialization schema, but the user can define its own. It is also possible to use SOAP with Attachments, which enables the inclusion of non-XML information, like multimedia files, in SOAP messages. Another important feature of web services is the availability of a service, Universal Description Discovery and Integration (UDDI), that
332
IADIS International Conference on WWW/Internet 2005
enables other services to register and publish their interfaces, making it possible for a user to discover and know how to use them. The division into categories of services is also possible, facilitating the processes of discovery and utilization. For each web service registered, UDDI stores its name, its operations and its access point; in other words, it stores the information contained in the WSDL description. The description of a service interface can be used to build the service client application. One thing to note is that WSDL, SOAP and UDDI appeared separately, but the maturity of them produced the web services technology. Figure 1 shows the generic architecture of a system based in web services and the sequence of activities since a service registers until it is used by a client. UDDI Registry
1. Service register
Service
3. Service description WSDL Document 2. Service discovery
4. Interaction with service SOAP message SOAP message Heade Payload SOAP message Heade Payload Header Body
Service client Figure 1. Generic architecture of a web service based system
The main advantages of using web services were already referred above, but there is one that is perhaps the most important: by exposing services through web servers, it is possible to traverse firewalls, since they usually do not lock port 80, enabling applications to reach services otherwise unattainable. However, with traditional firewalls, this also adds concern to system administrators, because they cannot control the contents exchanged through port 80. Indeed, traditional firewalls only allow administrators to lock or unlock ports. This problem is pushing the demand for a new generation of firewalls that are able to control the contents exchanged through a specific port.
3. CSCW The scientific field known as CSCW [Borghoff, 1998] [Beaudouin-Lafon, 1999] investigates how team work can be supported by information and communications technologies, in order to improve the performance of a group of persons involved in execution of common or inter-related tasks. It emerged in the 80´s from Office Automation, which in turn emerged a decade before as a mean to support administrative work in groups and organizations. Office automation also evolved from organizational systems of the 60’s, such as the systems for the emission of plane tickets [Grudin, 1994]. CSCW is an inter-disciplinary scientific domain, involving the scientific areas of distributes systems, multimedia communication, telecommunications, information science and socio-organizational theory. The impact of the utilization of CSCW applications (usually referred as groupware) is not always positive, being very important the consideration of socio-professional issues. Indeed, the utilization of CSCW applications can modify substantially work practices or dissolve organizational aspects of the team, which can bring negative consequences to its adoption. As long as possible, it is recommended to use methodologies that enable the understanding of the way people usually work or that enable to discover ways to improve it. These methodologies include the direct observation of work, the involvement of users in the project of the application and the direct observation with the inclusion of new practices that aim to gradually approach the ones that are to be adopted in the cooperative application. Therefore, it is desirable that projects in this field involve people with diverse academic backgrounds, namely in the areas of Engineering and Sociology, and mostly the users. Examples of popular groupware are e-mail and news readers and messaging applications, like ICQ and Messenger.
333
ISBN: 972-8924-02-X © 2005 IADIS
The groups involved in team work are usually composed by people with complimentary skills, being necessary to have a good coordination mechanism in order to successfully achieve the goals of the team. Sometimes, the team composition can vary from task to task and can also be intra-departmental, interdepartmental or even inter-organizational. These dynamics can be facilitated by computer and communications means but the degree of computer and communications technologies support can also vary: a group that exclusively uses computers for the interaction between group elements is an electronic group; if personal interaction subsists, despite the use of computers, then it is an electronically supported group. The interaction between elements of a group can be more or less frequent. A weaker interaction corresponds to simply inform, while a richer interaction occurs in the case of cooperation, where interaction is more frequent, for the prosecution of a common task. Collaboration and coordination are intermediate degrees of interaction: in collaboration there is a common task, but sporadic interaction; in the case of coordination there is no common task, but interaction occurs somehow frequently to coordinate activities and group information. An important issue in groupware is the existence of an environment that is shared among group elements. This environment can include documents, shared whiteboards and shared pointers, among others. Usually, the shared environment coexists with the private environments of each group element, imposing the availability of diverse management mechanisms to control information access. To assure consistency of the data being shared, special care must be taken regarding concurrency control, implementing mechanisms like atomic transactions, locks, versioning, token passing or voting systems. Potential targets for groupware are software project and engineering teams, coordination of work processes in large organizations, distance learning, telemedicine and cooperative editing. Groupware applications can be classified according to their generic functionality: • communication systems – communication between elements of a group, e.g. e-mail, videoconferencing, telepresence (video images that serve to be aware of others’ presence); • shared information spaces (Mediaspaces) – information available to all or part of the group elements, e.g. shared documents, consulting, cooperative search of information; • coordination of work processes (Workflow) – enables the specification and execution of tasks in a predefined order (sequential or parallel), e.g. industrial processes, document processing, call centers; • meeting support – computer support for participants in a meeting, providing shared information, or artifacts like shared whiteboards or shared pointers; • group editing – editing activities executed by several elements of a group, synchronously or asynchronously, e.g. document editing; • cooperative agents – various software agents that cooperate in the execution of a common task, concurrently or complimentarily, e.g. information search, distributed problem resolution; • computer assisted education/training – use of computers to assist the process of education or training, synchronously or asynchronously, e.g. electronic classes (educator and students in the same room: computer is a didactic tool), virtual class (educator and students located remotely: computer as a didactic tool, but also to communicate); • collaborative virtual environment (CVE) – use of virtual reality techniques and 3D modeling to represent active (people) or passive elements (e.g. architectural elements) of the work process or environment, to assist in the execution of tasks, e.g. virtual scenarios, 3D polygonal representation of people and objects, immersion systems, tele-manipulation.
4. SYSTEM ARCHITECTURE The diversity and complexity of work methodologies in the organizations is increasing and the participants’ responsibilities are not always statically defined. Hence, the execution of tasks by several people, which may not always play the same role in the execution of a certain type of tasks, is relatively frequent. Furthermore, during the execution of a task, one person may want to consult others, regarding specific task issues or to obtain approval from superior instances of the organization. Usually, groupware tries to support team work in the most successful way, providing means for information sharing, for its joint manipulation and for the communication between cooperating participants. However, the architecture of cooperative applications is based often on proprietary solutions, which do not address issues of flexibility, interoperability and legacy
334
IADIS International Conference on WWW/Internet 2005
systems support. These applications are not always intuitive or fit the usual utilization patterns, imposing dramatic changes in the work experience, which can contribute to a weak or slow adoption of groupware in some organizations. The Internet is now present in nearly all organizations, namely as e-mail and web browsers, which are familiar to most users. Java technology enables the construction of applications that make the most of this situation, but does not satisfy several security and privacy issues, neither the interoperability between diverse systems, written in different programming languages. Developing cooperative applications based on web services can be an attractive choice, due to the familiarity that the potential users have with the execution environment. This choice enables applications to take advantage of the potential of the technology in distribution issues, such as interoperability, security and legacy systems reuse. Furthermore, web services technology is supported by the major actors in the software industry and academic community. A drawback in web services is the unavailability of significant standardization specifications for cooperation, except for the case of workflow, where standardization efforts produced the Wf-XML specification, which defines an XML message format for the specific case of workflow systems. Usually, web services are used mainly in business-to-business applications, but can they be used in other cooperative applications? Apparently, there is no particular reason to believe that not and so we decided to explore this possibility. This paper presents both an architecture and a prototype application that uses web services to support the cooperative activities of a digital video editing scenario, which is an user-to-user application. Figure 2 depicts the overall system architecture, showing the generic services that provide support to several kinds of cooperative applications, not only the video editing tool described is this paper. The Group Storage module is a database that stores the applications and information resources that will be manipulated by cooperative users. Local Storage is used to store the resources downloaded from the server. Applications Repository
Information Repository Authentication Group Storage
Local Storage
Client
Users Directory
Concurrency Control
Application
Events Notification
Figure 2. System architecture
Cooperative activities usually incorporate at least one of the following functionalities: communication among team elements, information sharing and joint visualization of activities or work environments. For the latter two it may be highly important to ensure exclusive access to shared resources, requiring concurrency control mechanisms. These mechanisms include free manipulation of resources by several simultaneous processes, and restriction to a few ones, or even to a single process (e.g. locks). For this purpose, the system architecture contemplates a Concurrency Control Service. This service has methods to obtain and release locks and tokens, to assign version numbers and to manage voting systems. For editing systems such as the cooperative video editing tool described later a versioning policy is adequate, since each user downloads and manipulates a personal copy of each video clip and changes are stored either locally or remotely, but as a new version. To allow a user to be aware of others’ activities, an event notification mechanism must also be present, providing means for spreading actions carried out by cooperative users. This mechanism is provided by an Events Notification Service. In the context of web services technology, standardization efforts concerning
335
ISBN: 972-8924-02-X © 2005 IADIS
the notification of events were not found. Therefore, to give flexibility to the system architecture, the Events Notification Service is only an interface that provides operations for registering and removing interest in a particular type of cooperative events and for notifying and being notified of their occurrence. All functionality is implemented separately, using a specific framework for data sharing among distributed applications (actually JSDT – Java Shared Data Toolkit). This approach offers the opportunity to change the implementation if needed, without affecting the way the service is used. Another flexibility issue is that events are exchanged as strings, allowing the propagation of any kind of event. A work team is usually a defined fraction of the organization staff and its users must be authenticated. The Authentication Service of the system architecture provides this mechanism through the manipulation of an object database that stores information of registered users. This web service has only a single method that checks in the database if the user is authorized to proceed. Cooperation is often sporadic and the tasks assigned to a user are also often of diverse nature. This fact renders attractive the availability of a service that enables users to choose the application that best fits their current needs, download it from the applications’ database and execute it immediately. This feature is achieved through the Applications Repository Service, which also provides users with the latest version of each application, easing the maintenance of a homogeneous cooperative environment. Information resources are available through the Information Repository Service, which manages access to the resources stored in the information’s database. In this case, users do not download the latest version, because they may be interested in older versions. Both Repository services provide methods for listing resources and their details and to download them. Application resources may only be added to the system by a user with administrative privileges, but information resources may be created by any user. To manage all resources and users’ accounts the system administrator has a specific management tool. The resources’ information is stored in object databases, which manage data such as the name of the resource, its type, its version, a brief description and some keywords to ease queries. For information resources the identification of its creator is also stored. Each user must have knowledge at anytime of the users that are active and running the same application, in order to be able to start a cooperative session with a specific user or with a set of users. This feature is achieved through the Users Directory Service. Upon authentication, all users are registered in this service as being active and running some application. The web service that implements the Users Directory Service publishes methods to register, list and remove users and activities. The Client module refers to an application that serves as an access point to the system and corresponds conceptually to the client of the Information Repository Service. Indeed, clients of web services interact with service proxies instead of interacting directly with service instances. These proxies run on the client computer and intermediate communication between clients and services. Hence, the Client module in the system architecture uses proxies for the Authentication and Applications Repository services. When a user wants to cooperate with another one it accesses the Users Directory to see the list of available potential partners. Then, it sends an invitation to the other user, which is informed of that fact and has the choice to accept or reject the invitation. Upon acceptance, users register their interest in being notified of cooperative events and can start a cooperative work session. The invitation process and the notification of cooperative events are intermediated by the Events Notification Service.
5. COVIEW: COOPERATIVE VIDEO EDITING ON THE WEB An important component of a video production chain is the video editing application, which allows users to modify a video clip by changing the ordering of its sequences or cutting some parts, as well as the combination of several clips into a new one, the addition of new audio tracks, subtitles or special effects. Current commercial products for nonlinear editing of digital video allow only a single user to use the system at each moment. When a user requires the involvement of someone else they have to be physically co-located or they have to establish a conversational communication (e.g. phone call). The idea of having a digital video editing system that allows various users to share some parts of an editing environment, staying in their room and using their everyday computers seems to be both operationally and financially attractive. This paper presents a prototype of a cooperative video editing application, COVIEW (COoperative VIdeo Editing on the Web), which uses the cooperative support system architecture also presented herein. This prototype is a very simple application in terms of the functionality it offers, because its aim is mainly to
336
IADIS International Conference on WWW/Internet 2005
check if cooperative video editing is viable and if web services can support this kind of applications. Therefore, COVIEW only implements the definition of editing points (IN and OUT) and the reproduction of both the original clips and the clips produced as a result of the editing process. These operations produce events to be propagated to cooperators, which can then properly manipulate them. The choice of events to be propagated and what to do with the events that are received is a subject that deserves appropriate attention by researchers with some technical expertise and also social sciences background, which is not the case of the authors of this paper. Nevertheless, for the purposes exposed above we believe it is sufficient. Figure 3 shows the main window of the COVIEW application, where we can observe the various menus and buttons available and a video clip being played. The manipulation of video clips is achieved through the use of a specific framework, JMF (Java Media Framework).
Figure 3. COVIEW: main window
Figure 4 shows the window that is displayed when a user is invited to join a cooperative session and the one used to notify the reception of a cooperative event. Similar windows exist for the acceptance and rejection of an invitation and for notifying that someone has left the cooperative session.
Figure 4. Windows shown for invitation and for event notification
The operation of the system was subject to both qualitative observation and quantitative measurements. The qualitative observation of the system being used by several cooperators did not show errors or locks related with cooperative activities. Only the playback activities exhibited a less satisfactory performance, due to the use of JMF, which introduces a substantial increase in computational load and requires special care with the state machine that controls the visualization of audiovisual information. Some measurements were also made to register the delay introduced by the propagation of cooperative events. These measurements were carried out by building small applications that simulate the production of cooperative events at predefined time intervals. The results of this performance test are summarized in Table 1, where it can be observed that the system performed quite well in almost all situations, except for the case of a production of events at time intervals of only 0,1s, which is an unlikely situation in a real utilization scenario. Furthermore, for almost all situations the average delay is less than 100 ms and the minimum delay was below one millisecond and the test applications were not able to record it.
337
ISBN: 972-8924-02-X © 2005 IADIS
Figure 5 shows a chart with the performance results produced for a time interval of 2 s between consecutive cooperative events. Other time intervals, except the one for 0,1s, exhibit a similar chart. Table 1. Results of the performance tests
Average Maximum Minimum
0,1 49,498 111,701 1,713
Time interval between consecutive events (s) 0,5 1 2 5 0,326 0,073 0,059 0,055 2,433 0,320 0,281 0,241 0 0 0 0
10 0,061 0,331 0
Time interval of 2 s between consecutive events 350
Delay (ms)
300 250 200 150 100 50 0
Figure 5. Performance results for a time interval of 2 s
6. CONCLUSION COVIEW has capabilities that can turn it into a powerful tool and the use of web services to support it proved to be viable, allowing the interaction between applications and support services as well as the exchange of events produced during cooperative sessions. The set of services that were build to establish an environment for the execution of the cooperative activities performed satisfactorily and its architectural solutions are generic enough to allow its usage in diverse cooperative application scenarios. Indeed, web services provide interoperability, enabling the execution of applications in heterogeneous environments. The Events Notification Service is robust and allows the propagation of multiple events of various kinds. Finally, the Concurrency Control Service contemplates diverse policies that go beyond the requirements of digital video editing. Several improvements can be made in the services and applications described in this paper, namely the refinement of the audiovisual manipulation, the addition of metadata to the resources stored in databases and a more accurate specification of requirements, resulting from the inclusion of multidisciplinary teams (with sociologists and audiovisual professionals) in the development process.
REFERENCES Beaudouin-Lafon, M., et al., 1999. Computer Supported Co-operative Work. Trends in Software. John Wiley & Sons. Borghoff, U., Schlichter, J., 1998. Computer-Supported Cooperative Work. Springer-Verlag. Fonseca, J. et al, 1997, Non-Linear Editing in an MPEG2 studio. Anais do XV Simpósio Brasileiro de Telecomunicações. Recife, Brasil, pp. 535-538, Grudin, J., 1994. CSCW: History and Focus. In IEEE Computer, Vol. 27, Nº 5, pp. 19-26. Nagappan, R. et al, 2003. Developing Java Web Services. Wiley. Ohanian, T., 1998. Digital Nonlinear Editing: Editing Film and Video on the Desktop. Focal Press. Oliveira, P. et al, 1998, An MPEG2 Distributed Studio Architecture Based on ATM. Proceedings of MELECON’98. TelAviv, Israel, pp.1357-1360.
338