Event-Driven Programming for Distributed Multimedia Applications

Resumo. O interesse atual em computacao distribuida para redes geograficasvem destacando a necessidade de um modelo de programacao adequado a esteambiente. Devido a sua natureza assincrona, a programacao dirigida a eventosfornece um modelo apropriado ao tratamento de falhas e retardos, que sao fre-quentes neste contexto. Neste trabalho nos propomos uma arquitetura para apli-cacoes multimidia distribuidas baseada em um modelo de programacao orientadoa eventos. Para evitar problemas de sincronizacao, inerentes a programacao commultiplas threads, optamos por uma abordagem single thread, orientada a even-tos, aliada ao uso de multiplos canais de comunicacao. Com essa abordagem, oprogramador pode definir procedimentos de manipulacao apropriados para cadacanal, permitindo que a aplicacao processe concorrentemente fluxos de controle ede dados. Neste trabalho, discutimos este modelo de programacao, apresentamos osistema implementado sobre ele e descrevemos experiencias com este sistema.Abstract. Current interest in wide-area distributed computing has highlightedthe need for an adequate programming model for this environment. Because ofits asynchronous nature, event-driven programming provides a suitable model fordealing with the failures and delays that are frequent in this context. In this work wepropose an architecture for distributed multimedia applications based on an event-driven programming model. To avoid the synchronization problems that are inher-ent to multi-threaded programming, the proposed architecture is based on a single-threaded structure. Instead of multithreading, we opted for the event-orientedap-proach allied to multiple communication channels with user-defined handling pro-cedures to allow the application to deal concurrently with control and data streams.We discuss this programming model, present the system we have implementedbased on this model, and describe the experience we have had with this system.keywords: multimidia distributed systems, mobile code, asynchronous communi-cation, event-driven programming, interpreted language1 I

[1]  Roberto Ierusalimschy,et al.  Lua—An Extensible Extension Language , 1996, Softw. Pract. Exp..

[2]  Ronald L. Rivest,et al.  Introduction to Algorithms , 1990 .

[3]  Umar Saif,et al.  Communication primitives for ubiquitous systems or RPC considered harmful , 2001, Proceedings 21st International Conference on Distributed Computing Systems Workshops.

[4]  John K. Ousterhout,et al.  Tcl: An Embeddable Command Language , 1989, USENIX Winter.

[5]  Scott Nettles,et al.  Active Networking Means Evolution (or Enhanced Extensibility Required) , 2000, IWAN.

[6]  Gregory R. Andrews,et al.  Paradigms for process interaction in distributed programs , 1991, CSUR.

[7]  Cristina D. Ururahy,et al.  ALua: An Event-Driven Communication Mechanism for Parallel and Distributed Programming , 1999 .

[8]  Franco Zambonelli,et al.  Reactive Tuple Spaces for Mobile Agent Coordination , 1998, Mobile Agents.

[9]  Brad Johanson,et al.  Tuplespaces as Coordination Infrastructure for Interactive Workspaces , 2001 .

[10]  Valmir Carneiro Barbosa,et al.  An introduction to distributed algorithms , 1996 .

[11]  Vern Paxson,et al.  Glish: A User-Level Software Bus for Loosely-Coupled Distributed Systems , 1993, USENIX Winter.

[12]  Donald Ervin Knuth,et al.  The Art of Computer Programming , 1968 .

[13]  Thaís Vasconcelos Batista,et al.  DynaVideo - A Dynamic Video Distribution Service , 2001, Eurographics Multimedia Workshop.

[14]  Donald E. Knuth,et al.  The Art of Computer Programming: Volume 3: Sorting and Searching , 1998 .

[15]  Andrea Omicini,et al.  On the expressive power of a language for programming coordination media , 1998, SAC '98.

[16]  Fulvio Risso,et al.  Designing a videoconference system for active networks , 2005, Personal Technologies.

[17]  Giovanni Vigna,et al.  Designing Distributed Applications with Mobile Code Paradigms , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[18]  Konstantinos Psounis,et al.  Active networks: Applications, security, safety, and architectures , 1999, IEEE Communications Surveys & Tutorials.

[19]  Henning Schulzrinne,et al.  RTP: A Transport Protocol for Real-Time Applications , 1996, RFC.

[20]  Gregory R. Andrews,et al.  Concepts and Notations for Concurrent Programming , 1983, CSUR.

[21]  Donald E. Knuth,et al.  The Art of Computer Programming, Vol. 3: Sorting and Searching , 1974 .

[22]  James F. Doyle,et al.  Peer-to-Peer: harnessing the power of disruptive technologies , 2001, UBIQ.