Ngôn ngữ lập trình cho các ứng dụng phân tán

New Generation Computing - Tập 16 - Trang 223-261 - 1998
Seif Haridi1, Peter Van Roy2, Per Brand1, Christian Schulte3
1Swedish Institute of Computer Science, Kista, Sweden
2Département INGI, Université catholique de Louvain, Louvain-la-Neuve, Belgium
3German Research Center for Artificial Intelligence (DFKI), Saarbrücken, Germany

Tóm tắt

Đã có nhiều tiến bộ trong tính toán phân tán trong các lĩnh vực như cấu trúc phân tán, tính toán mở, khả năng chịu lỗi và bảo mật. Tuy nhiên, việc viết các ứng dụng phân tán vẫn gặp nhiều khó khăn vì lập trình viên phải quản lý các mô hình trong các lĩnh vực này một cách rõ ràng. Một thách thức lớn là tích hợp bốn mô hình này thành một nền tảng phát triển đồng bộ. Nền tảng này nên cho phép tách biệt rõ ràng chức năng của một ứng dụng khỏi bốn mối quan tâm còn lại. Lập trình ràng buộc đồng thời, một sự tiến hóa của lập trình logic đồng thời, có cả sự biểu đạt và nền tảng hình thức cần thiết để thử nghiệm tích hợp này. Như một bước đầu tiên, chúng tôi đã thiết kế và xây dựng một nền tảng tách chức năng của ứng dụng khỏi cấu trúc phân tán của nó. Chúng tôi đã xây dựng nguyên mẫu một số công cụ hợp tác với nền tảng này, bao gồm một trình biên tập đồ họa chia sẻ, mà thiết kế của nó được trình bày chi tiết. Nền tảng này thực hiện một cách hiệu quả Oz phân tán, mở rộng ngôn ngữ Oz với các cấu trúc để biểu diễn cấu trúc phân tán và với các nguyên tắc cơ bản cho tính toán mở, phát hiện và xử lý lỗi, và kiểm soát tài nguyên. Đối với lập trình viên, Oz xuất hiện như một ngôn ngữ lập trình hướng đối tượng đồng thời với đồng bộ hóa luồng dữ liệu. Oz dựa trên một mô hình tính toán ràng buộc đồng thời có nhận thức về trạng thái và bậc cao.

Từ khóa

#phân tán #lập trình #ngôn ngữ ổn định #khả năng chịu lỗi #bảo mật #mô hình ràng buộc đồng thời #tính toán mở.

Tài liệu tham khảo

Abelson, H., Sussman, G. J., and Sussman, J.,Structure and Interpretation of Computer Programs, MIT Press, Cambridge, Mass., 1985. Amoroso, E. G.,Fundamentals of Computer Security Technology, Prentice-Hall, 1994. Andrews, J., “The Logical Semantics of the Prolog Cut,” inInternational Logic Programming Symposium (ILPS 95), December 1995. Armstrong, J., Williams, M., Wikström, C., and Virding, R.,Concurrent Programming in Erlang, Prentice-Hall, Englewood Cliffs, N.J., 1996. Axling, T., Haridi, S., and Fahlen, L., “Concurrent Constraint Programming Virtual Reality Applications,” in the2nd International Conference on Military Applications of Synthetic Environments and Virtual Reality (MASEVR 95), Stockholm, Sweden, 1995. Defence Material Administration. Brand, P., Franzen, N., Klintskog, E., and Haridi, S., “A Platform for Constructing Virtual Spaces,” inVirtual Worlds and Simulation Conference (VWSIM ’98), January 1998. Cardelli, L., “A Language with Distributed Scope,”ACM Transactions on Computer Systems, 8, 1, pp. 27–59, January 1995. Also appeared in POPL 95. Chow, R. and Johnson, T.,Distributed Operating Systems and Algorithms, Addison-Wesley, San Francisco, Calif., 1997. Crowcroft, J.,Open Distributed Systems, University College London Press, London, U. K., 1996. DFKI Oz version 2.0, 1998. Available at http://www.ps.uni-sb.de. Ericsson,Open Telecom Platform — User’s Guide, Reference Manual, Installation Guide, OS Specific Parts, Telefonaktiebolaget LM Ericsson, Stockholm, Sweden, 1996. Fluckiger, F.,Understanding Networked Multimedia: Applications and Technology, Prentice-Hall, 1995. Institute for New Generation Computer Technology, ed.,Fifth Generation Computer Systems 1992, volume 1, 2, Ohmsha Ltd. and IOS Press, 1992. ISBN 4-274-007724-1. Fujise, T., Chikayama, T., Rokusawa, K., and Nakase, A., “KLIC: A Portable Implementation of KL1,” inFifth Generation Computing Systems (FGCS ’94), pp. 66–79, December 1994. Gosling, J. and McGilton, H., “The Java Language Environment,” white paper, Sun Microsystems, Mountain View, Calif., May 1996. Haridi, S.,Tutorial of Oz 2. Available at http://www.sics.se/~seif/oz.html, 1996. Haridi, S., Van Roy, P., Brand, P., Mehl, M., Scheidhauer, R., and Smolka, G., “Using Logic Variables in Distributed Computing,” submitted to ACM TOPLAS, February 1998. Haridi, S., Van Roy, P., and Smolka, G., “An Overview of the Design of Distributed Oz,” inProceedings of the Second International Symposium on Parallel Symbolic Computation (PASCO ’97), Maui, Hawaii, USA, ACM Press, pp. 176–187, July 1997. Henz, M.,Objects for Concurrent Constraint Programming, volume 426 of The Kluwer International Series in Engineering and Computer Science, Kluwer Academic Publishers, Boston, November 1997. Henz, M., “Objects in Oz,”Ph.D. thesis, Universität des Saarlandes, Fachbereich Informatik, Saarbrücken, Germany, June 1997. Jaffar, J. and Maher, M., “Constraint Logic Programming: A Survey,”J. Log. Prog., 19/20, pp. 503–581, May/July 1994. Jalote, P.,Fault Tolerance in Distributed Systems, PTR Prentice-Hall, 1994. Janson, S. and Haridi, S., “Programming Paradigms of the Andorra Kernel Language,” inInternational Symposium on Logic Programming, pp. 167–183, October 1991. Jul, E., Levy, H., Hutchinson, N., and Black, A., “Fine-Grained Mobility in the Emerald System,”ACM Transactions on Computer Systems, 6, 1, pp. 109–133, February 1988. Khoshafian, S. and Buckiewicz, M.,Introduction to Groupware, Workflow, and Workgroup Computing, John Wiley and Sons, 1995. Knapik, M. and Johnson, J.,Developing Intelligent Agents for Distributed Systems, McGraw-Hill, 1998. Laprie, J. C., “Dependability: A Unifying Concept for Reliable Computing and Fault Tolerance,” in7th International Conference on Distributed Computing Systems, pp. 129–146, September 1987. Lea, D.,Concurrent Programming in Java, Addison-Wesley, 1997. Lloyd, J.,Foundations of Logic Programming, second edition, Springer-Verlag, 1987. Lynch, N.,Distributed Algorithms, Morgan Kaufmann, San Francisco, Calif., 1996. Maher, M., “Logic Semantics for a Class of Committed-Choice Programs,” inInternational Conference on Logic Programming (ICLP 87), pp. 858–876, May 1987. Müller, M., Müller, T., and Van Roy, P., “Multiparadigm Programming in Oz,” inWorkshop on the Future of Logic Programming, International Logic Programming Symposium (ILPS 95), December 1995. Sun Microsystems,The Java Series, Mountain View, Calif., 1996. Avaiable at http://www.aw.com/cp/javaseries.html. Sun Microsystems,The Remote Method Invocation Specification, Mountain View, Calif., 1997. Available at http://www.javasoft.com. Mehl, M., Scheidhauer, R., and Schulte, C., “An Abstract Machine for Oz,” inProgramming Languages, Implementations, Logics, and Programming (PLILP ’95), 1995. Naish, L.,Negation and Control in Prolog, Lecture Notes in Computer Science, vol. 238, Springer-Verlag, 1986. Otte, R., Patrick, P., and Roy, M.,Understanding CORBA: The Common Object Request Broker Architecture, Prentice-Hall PTR, Upper Saddle River, N.J., 1996. Plainfossé, D. and Shapiro, M., “A Survey of Distributed Garbage Collection Techniques,” inInternational Workshop on Memory Managemment, Lecture Notes in Computer Science, vol. 986, Berlin, Springer-Verlag, pp. 211–249, September 1995. Podelski, A. and Smolka, G., “Operational Semantics of Constraint Logic Programs with Coroutining,” inInternational Conference on Logic Programming (ICLP 95), pp. 449–463, 1995. Saraswat, V. and Rinard, M., “Concurrent Constraint Programming,” inPOPL, pp. 232–245, January 1990. Schulte, C., “Oz Explorer: A Visual Constraint Programming Tool,” inProceedings of the Fourteenth International Conference on Logic Programming (L. Naish, ed.), Leuven, Belgium, July 1997, MIT Press, pp. 286–300, 1997. Schulte, C., “Programming Constraint Inference Engines,” inProceedings of the Third International Conference on Principles and Practice of Constraint Programming (G. Smolka, ed.),volume 1330 of Lecture Notes in Computer Science, Schloß Hagenberg, Austria, October 1997, Springer-Verlag, pp. 519–533, 1997. Shapiro, E., “The Family of Concurrent Logic Programming Languages,”ACM Computing Surveys, 21, 3, pp. 413–510, September 1989. Smolka, G., “The Oz Programming Model,” inComputer Science Today, Lecture Notes in Computer Science, vol. 1000, Springer-Verlag, Berlin, pp. 324–343, 1995. Smolka, G., Schulte, C., and Würtz, J.,Finite Domain Constraint Programming in Oz: A Tutorial, Programming Systems Lab., German Research Center for Artificial Intelligence (DFKI), January 1998. In Oz 2 system documentation. Available at http://www.ps.uni-sb.de. Smolka, G., Schulte, C., and Van Roy, P.,PERDIO — Persistent and Distributed Programming in Oz, BMBF project proposal. Available at http://www.ps.uni-sb.de, February 1995. Stroustrup, B.,The C++ Programming Language, third edition, Addison-Wesley, 1997. Tel, G.,An Introduction to Distributed Algorithms, Cambridge University Press, Cambridge, United Kingdom, 1994. Thorn, T., “Programming Languages for Mobile Code,”ACM Computing Surveys, 29, 3, pp. 213–239, September 1997. Van Roy, P., “1983–1993: The Wonder Years of Sequential Prolog Implementation,”J. Log. Prog., 19/20, pp. 385–441, May/July 1994. Van Roy, P., Haridi, S., Brand, P., and Smolka, G., “Three Moves Are Not as Bad as a Fire,” inWorkshop on Internet Programming Languages, International Conference on Computer Languages (ICCL 98), May 1998. Van Roy, P., Haridi, S., Brand, P., Smolka, G., Mehl, M., and Scheidhauer, R., “Mobile Objects in Distributed Oz,”ACM Transactions on Programming Languages and Systems, 19, 5, pp. 804–851, September 1997. Wallach, D. S., Balfanz, D., Dean, D., and Felten, E. W., “Extensible Security Architectures for Java,” in16th Symposium on Operating System Principles, October 1997. Wikström, C., “Distributed Programming in Erlang,” in1st International Symposium on Parallel Symbolic Computation (PASCO 94), Singapore, September 1994, World Scientific, pp. 412–421, 1994.