Abstract
Applications that process continuous information flows are challenging to write because the application programmer must deal with flow-specific concurrency and timing requirements, necessitating the explicit management of threads, synchronization, scheduling and timing. We believe that middleware can ease this burden, but middleware that supports control-flow centric interaction models such as remote method invocation does not match the structure of these applications. Indeed, it abstracts away from the very things that the information-flow centric programmer must control
We are defining Infopipes as a high-level abstraction for information flow, and we are developing a middleware framework that supports this abstraction directly. Infopipes handle the complexities associated with control flow and multi-threading, relieving the programmer of this task. Starting from a high-level description of an information flow configuration, the framework determines which parts of a pipeline require separate threads or coroutines, and handles synchronization transparently to the application programmer. The framework also gives the programmer the freedom to write or reuse components in a passive style, even though the configuration will actually require the use of a thread or coroutine. Conversely, it is possible to write a component using a thread and know that the thread will be eliminated if it is not needed in a pipeline. This allows the most appropriate programming model to be chosen for a given task, and existing code to be reused irrespective of its activity model
This work is partially supported by DARPA/ITO under the Information Technology Expeditions, Ubiquitous Computing, Quorum, and PCES programs, by NFS award CDA-9703218, and by Intel
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
A. P. Black. An asymmetric stream communication system. In Proceedings of the Ninth ACM Symposium on Operating Systems Principles, pages 4–10, October 1983.
A. P. Black, J. Huang, and J. Walpole. Reifying communication at the application level. In Proceedings of the International Workshop on Multimedia Middleware. ACM, October 2001. Also available as OGI technical report CSE-01-006.
G. S. Blair, G. Coulson, P. Robin, and M. Papathomas. An architecture for next-generation middleware. In International Conference on Distributed Systems Platforms and Open Distributed Processing (Middleware), pages 191–206. IFIP, September 1998.
J.-P. Briot, R. Guearraoui, and K.-P. Löhr. Concurrency and distribution in object-oriented programming. ACM Computing Surveys, 30(3), September 1998.
P. Buhr, G. Ditchfield, R. Stroobosscher, B. Younger, and C. Zarnke. μC++: Concurrency in the object oriented language C++. Software — Practice and Experience, 20(2):137–172, February 1992.
S. Cen, C. Pu, R. Staehli, C. Cowan, and J. Walpole. A distributed real-time MPEG video audio player. In Proceedings of the Fifth International Workshop on Network and Operating Systems Support for Digital Audio and Video, volume 1018 of Lecture Notes in Computer Science, pages 142–153. Springer Verlag, April 1995.
G. Eisenhauer, F. Bustamante, and K. Schwan. Event services for high performance computing. In International Conference on High Performance Distributed Computing (HPDC), August 2000.
A. Goel, D. Steere, C. Pu, and J. Walpole. Adaptive resource management via modular feedback control. Technical Report CSE-99-003, Oregon Graduate Institute, January 1999.
J. Huang, A. P. Black, J. Walpole, and C. Pu. Infopipes — an abstraction for information flow. In ECOOP 2001 Workshop on The Next 700 Distributed Object Systems, June 2001. Also available as OGI technical report CSE-01-007.
N. C. Hutchinson and L. L. Peterson. The x-kernel: An architecture for implementing network protocols. IEEE Transactions on Software Engineering, 17(1):64–76, 1991.
C. Isert and K. Schwan. ACDS: Adapting computational data streams for high performance computing. In International Parallel and Distributed Processing Symposium (IPDPS), May 2000.
R. Koster and T. Kramp. A multithreading platform for multimedia applications. In Proceedings of Multimedia Computing and Networking 2001. SPIE, January 2001.
R. Koster and T. Kramp. Using message-based threading for multimedia applications. In Proceedings of the International Conference on Multimedia and Expo (ICME). IEEE, August 2001.
T. Kramp and G. Coulson. The design of a flexible communications framework for next-generation middleware. In Proceedings of the Second International Symposium on Distributed Objects and Applications (DOA). IEEE, September 2000.
T. Kramp and R. Koster. Flexible event-based threading for QoS-supporting middleware. In Proceedings of the Second International Working Conference on Distributed Applications and Interoperable Systems (DAIS). IFIP, July 1999.
C. Krasic and J. Walpole. QoS scalability for streamed media delivery. Technical Report CSE-99-011, Oregon Graduate Institute, September 1999.
F. Kuhns, C. O’Ryan, D. C. Schmidt, O. Othman, and J. Parsons. The design and performance of a pluggable protocols framework for object request broker middleware. In Proceedings of the sixth IFIP International Workshop on Protocols for High-Speed Networks (PfHSN), August 1999.
D. Lea. Concurrent Programming in Java. Addison-Wesley, 1997.
C. J. Lindblad and D. L. Tennenhouse. The vusystem: A programming system for compute-intensive multimedia. IEEE Journal of Selected Areas in Communications, 14(7):1298–1313, 1996.
J. Magee, N. Dulay, and J. Kramer. Regis: A constructive development environment for distributed programs. Distributed Systems Engineering Journal, 1(5), September 1994.
Mircosoft. DirectX 8.0: DirectShow overview. http://msdn.microsoft.com/library/psdk/directx/dx8_c/ds/Oview/about_dshow.htm, January 2001.
J. P. Morrison. Flow-Based Programming: A New Approach to Application Development. Van Nostrand Reinhold, July 1994.
D. Mosberger and L. L. Peterson. Making paths explicit in the Scout operating system. In Proceedings of the second USENIX symposium on Operating systems design and implementation (OSDI). USENIX, October 1996.
S. Mungee, N. Surendran, and D. C. Schmidt. The design and performance of a CORBA audio/video streaming service. In HICSS-32 International Conference on System Sciences, minitrack on Multimedia DBMS and WWW, January 1999.
OMG. CORBA telecoms specification. http://www.omg.org/corba/ctfull.html, June 1998. formal/98-07-12.
J. Ousterhout. Why threads are a bad idea (for most purposes), 1996. Invited talk given at USENIX Technical Conference, available at http://www.scriptics.com/people/john.ousterhout/threads.ps.
T. Plagemann and B. Plattner. CoRA: A heuristic for protocol configuration and resource allocation. In Proceedings of the Workshop on Protocols for High-Speed Networks. IFIP, August 1994.
C. Pu, K. Schwan, and J. Walpole. Infosphere project: System support for information flow applications. ACM SIGMOD Record, 30(1), March 2001.
H. O. Rafaelsen and F. Eliassen. Trading and negotiating stream bindings. In Proceedings of the Second International Conference on Distributed Systems Platforms and Open Distributed Processing (Middleware), LNCS 1795, pages 273–288. IFIP/ACM, Springer, April 2000.
RealNetworks. Documentation of RealSystem G2 SDK, gold r4 release. http://www.realnetworks.com/devzone/tools/index.html, May 2000.
D. Steere, A. Goel, J. Gruenberg, D. McNamee, C. Pu, and J. Walpole. A feedbackdriven proportion allocator for real-rate scheduling. In Proceedings of the Third Symposium on Operating Systems Design and Implementation, pages 145–158, February 1999.
W. Taymans. GStreamer application development manual. http://www.gstreamer.net/documentation.shtml, mtJanuary 2001.
R. van Renesse. Goal-oriented programming, or composition using events, or threads considered harmful. In Proceeding of the 8th ACM SIGOPS European Workshop, September 1998.
R. van Renesse, K. Birman, M. Hayden, A. Vaysburd, and D. Karr. Building adaptive systems using Ensemble. Technical Report TR97-1638, Computer Science Department, Cornell University, 1997.
R. Vanegas, J. A. Zinky, J. P. Loyall, D. A. Karr, R. E. Schantz, and D. E. Bakken. QuO’s runtime support for quality of service in distributed objects. In Proceedings of the IFIP International Conference on Distributed Systems Platforms and Open Distributed Processing (Middleware’98). Springer Verlag, September 1998.
J. Walpole, R. Koster, S. Cen, C. Cowan, D. Maier, D. McNamee, C. Pu, D. Steere, and L. Yu. A player for adaptive mpeg video streaming over the internet. In Proceedings of the 26th Applied Imagery Pattern Recognition Workshop (AIPR-97). SPIE, October 1997.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2001 IFIP International Federation for Information Processing
About this paper
Cite this paper
Koster, R., Black, A.P., Huang, J., Walpole, J., Pu, C. (2001). Thread Transparency in Information Flow Middleware. In: Guerraoui, R. (eds) Middleware 2001. Middleware 2001. Lecture Notes in Computer Science, vol 2218. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45518-3_7
Download citation
DOI: https://doi.org/10.1007/3-540-45518-3_7
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-42800-8
Online ISBN: 978-3-540-45518-9
eBook Packages: Springer Book Archive