This Article 
 Bibliographic References 
 Add to: 
The Programmers' Playground: I/O Abstraction for User-Configurable Distributed Applications
September 1995 (vol. 21 no. 9)
pp. 735-746
I/O abstraction is offered as a new high-level approach to interprocess communication. Functional components of a distributed system are written as encapsulated modules that act upon local data structures, some of which may be published for external use. Relationships among modules are specified by logical connections among their published data structures. Whenever a module updates published data, I/O takes place implicitly according to the configuration of logical connections.The Programmers’ Playground, a software library and run-time system supporting I/O abstraction, is described. Design goals include the separation of communication from computation, dynamic reconfiguration of the communication structure, and the uniform treatment of discrete and continuous data types. Support for end-user configuration of distributed multimedia applications is the motivation for the work.

[1] S. Ahuja, N. Carriero, and D. Gelernter, “Linda and Friends,” Computer, vol. 19, no. 8, Aug. 1986.
[2] M.J. Bach, The Design of the UNIX Operating System. Prentice Hall, 1990.
[3] M. Bezic,“Synchronized data objects,” Tech. Report WUCS-95-13, Washington Univ. Dept. of Computer Science, May 1995.
[4] A. Birrell and B. Nelson, "Implementing Remote Procedure Calls," ACM Trans. Computer Systems," vol. 2, pp. 39-59, 1984.
[5] J.R. Cox, Jr.,M. Gaddis,, and J.S. Turner,“Project Zeus: Design of a broadband network and its application on a university campus,” IEEE Network, pp. 20-30, Mar. 1993.
[6] W.J. Dally and A.A. Chien,“Object-oriented concurrent programming in CST,” Proc. ACM SIGPLAN Workshop Object-Based Concurrent Programming, Sept. 1988.
[7] P. Dasgupta et al., “The Clouds Distributed Operating System,” Computer, June 1991.
[8] G.A. Geist and V.S. Sunderam, "The PVM System: Supercomputer Level Concurrent Computation on a Heterogeneous Network of Workstations," Proc. Sixth Distributed Memory Computing Conf., pp. 258-261. IEEE, Apr. 1991.
[9] D. Gelernter and N. Carriero, "Coordination Languages and Their Significance," Comm. ACM, vol. 35, no. 2, Feb. 1992, pp. 96-107.
[10] K.J. Goldman,“Welcome to The Programmers’Playground!” URL
[11] K.J. Goldman,“Highly concurrent logically synchronous multicast,” Distributed Computing, vol. 6, no. 4, pp. 189-207, 1991.
[12] K.J. Goldman,“Data interfaces as support for module migration,” Proc. Second Int’l Workshop Configurable Distributed Systems, p. 212, Mar. 1994.
[13] K.J. Goldman,T.P. McCartney,B. Swaminathan,, and R. Sethuraman,“The Programmers’Playground: A demonstration,” Proc. 1995 ACM Int’l Conf. Multimedia, Nov. 1995, to appear.
[14] K.J. Goldman,T.P. McCartney,B. Swaminathan,R. Sethuraman,, and T. Rodgers,“Building interactive distributed applications in C++ with The Programmers’Playground,” Tech. Report WUCS-95-20, Washington Univ., St. Louis, July 1995.
[15] K.J. Goldman and R. Sethuraman,“A formal specification of a dynamically configurable distributed system,” Tech. Report WUCS-95-17, Washington Univ. Dept. of Computer Science, July 1995.
[16] M.M. Gorlick and R.R. Razouk, "Using Weaves for Software Construction and Analysis," Proc. 13th Int'l. Conf. Software Engineering, pp. 23-34,Austin, TX, May 1991.
[17] B. Hailpern and G.E. Kaiser,“Dynamic reconfiguration in an object-based programming language with distributed shared data,” Proc. 11th Int’l Conf. Distributed Computing Systems, pp. 73-80, May 1991.
[18] E. Jul, H. Levy, N. Hutchinson, and A. Black, “Fine-Grained Mobility in the Emerald System,” ACM Trans. Computer Systems, vol. 6, no. 1, pp. 109–133, Feb. 1988.
[19] G.E. Kaiser and B. Hailpern,“An object-based programming model for shared data,” ACM Trans. Programming Languages and Systems, vol. 14, no. 2, pp. 201-264, Apr. 1992.
[20] A. Koransky,“Distributed debugging with I/O abstraction,” Tech. Report WUCS-95-14, Washington Univ. Dept. of Computer Science, May 1995.
[21] J. Kramer and J. Magee,“The evolving philosophers problem,” IEEE Trans. Software Engineering, vol. 16, no. 11, pp. 1,293-1,306, Nov. 1990.
[22] J. Kramer,J. Magee,, and M. Sloman,“Configuring distributed systems,” Proc. Fifth ACM SIGOPS European Workshop, Sept. 1992.
[23] K. Li and P. Hudak, "Memory Coherence in Shared Virtual Memory Systems," ACM Trans. Computer Surveys, vol. 7, no. 4, Nov. 1989.
[24] B. Liskov et al., "Communication in the Mercury System," Proc. 21st Ann. Hawaii Conf. System Sciences, Jan. 1988.
[25] B. Liskov and R. Scheifler, “Guardians and Actions: Linguistic Support for Robust, Distributed Programs,” ACM Trans. Programming Languages and Systems, vol. 5, no. 3, pp. 381-404, July 1983.
[26] D.C. Luckham,J. Vera,D. Bryan,L. Augustin,, and F. Belz,“Partial orderings of event sets and their application toprototyping concurrent, timed systems,” J. of Systems and Software, vol. 21, no. 3, pp. 253-265, June 1993.
[27] N.A. Lynch and M.R. Tuttle,“An introduction to Input/Output Automata,” CWI Quarterly, vol. 2, no. 3, 1989.
[28] J. Magee,N. Dulay,, and J. Kramer,“Structuring parallel and distributed programs,” Proc. Int’l Workshop Configurable Distributed Systems, pp. 102-117, Mar. 1992.
[29] T.P. McCartney and K. Goldman,“Visual specification of interprocess and intraprocess communication,” Proc. 10th Int’l Symp. Visual Languages, pp. 80-87, Oct. 1994.
[30] T.P. McCartney and K.J. Goldman,“EUPHORIA reference manual,” Tech. Report WUCS-95-19, Washington Univ., St. Louis, July 1995.
[31] J. Postel,“User datagram protocol,” Tech. Report RFC 768, USC Information Sciences Inst., Aug. 1980.
[32] J. Postel,“Transmission control protocol: DARPA internet program protocol specification,” Tech. Report RFC 793, Sept. 1981.
[33] D. Pountain,A Tutorial Introduction to Occam Programming. INMOS, Ltd., Mar. 1986.
[34] J.M. Purtilo and C.R. Hofmeister,“Dynamic reconfiguration of distributed programs,” Proc. 11th Int’l Conf. Distributed Computing Systems, pp. 560-571, May 1991.
[35] J.M. Purtilo and P. Jalote,“An environment for prototyping distributed applications,” Proc. Ninth Int’l Conf. Distributed Computing Systems, pp. 588-594, June 1989.
[36] D.M. Ritchie,“A stream input-output system,” AT&T Bell Laboratories Tech. J., vol. 63, no. 8, pp. 1,897-1,910, Oct. 1984.
[37] G. Roman and K. Cox, "A Declarative Approach to Visualizing Concurrent Computations," Computer, vol. 22, no. 10, pp. 25-36, Oct. 1989.
[38] G.-C. Roman,K.C. Cox,C.D. Wilcox,, and J.Y. Plun,“Pavane: A system for declarative visualization of concurrent computations,” J. Visual Languages and Computing, vol. 3, pp. 161-193, 1992.
[39] G.-C. Roman and H.C. Cunningham,“Mixed programming metaphors in a shared dataspace model of concurrency,” IEEE Trans. Software Engineering, vol. 16, no. 12, pp. 1,361-1,373, Dec. 1990.
[40] R.E. Strom,D.F. Bacon,A.P. Goldberg,A. Lowry,D.M. Yellin,, and S.A. Yemini,HERMES: A Language for Distributed Computing.Englewood Cliffs, N.J.: Prentice Hall, Inc., 1991.
[41] P.A. Suhler, J. Biswas, K.M. Korner, and J.C. Browne, "TDFL: A Task-Level Dataflow Language," J. Parallel and Distributed Computing, vol. 9, pp. 103-115, 1990.
[42] B. Swaminathan and K.J. Goldman,“An incremental distributed algorithm for computing biconnected components,” Proc. Eighth Int’l Workshop Distributed Algorithms, LNCS 857, pp. 238-252. Springer-Verlag, Sept. 1994. Full version to appear in Algorithmica.
[43] B. Swaminathan and K.J. Goldman,“Dynamic reconfiguration with I/O abstraction,” Proc. Seventh IEEE Symp. Parallel and Distributed Computing, Oct. 1995. To appear.
[44] J. White,“A high-level framework for network-based resource sharing,” Proc. Nat’l Computer Conf., pp. 561-570, 1976.
[45] S.A. Yemini,G.S. Goldszmidt,A.D. Stoyenko,, and L.W. Beeck,“CONCERT: A high-level-language approach to heterogeneous distributed systems,” Proc. Ninth Int’l Conf. Distributed Computing Systems, pp. 162-171, 1989.
[46] T.P. McCartney,“User interface applications of a multi-way constraint solver,” Tech. Report WUCS-95-22, Washington Univ., St. Louis, July 1995.

Index Terms:
Distributed programming environments, distributed systems, programming models, distributed applications, dynamic reconfiguration.
Kenneth J. Goldman, Bala Swaminathan, T. Paul McCartney, Michael D. Anderson, Ram Sethuraman, "The Programmers' Playground: I/O Abstraction for User-Configurable Distributed Applications," IEEE Transactions on Software Engineering, vol. 21, no. 9, pp. 735-746, Sept. 1995, doi:10.1109/32.464547
Usage of this product signifies your acceptance of the Terms of Use.