Abstract
Currently, a number of distributed software systems development tools exist, but typically they are designed either to satisfy industrial standards – industrial perspective – or to experiment new concepts – research perspective. There is a need for software development tools where programmers can both learn about distributed computing – pedagogical perspective – and build quality distributed software systems through prototyping – experimental perspective. This paper introduces the Virtuosi Project, which aims at building a toolkit to assist in developing and executing distributed software systems from both pedagogical and experimental perspectives. It combines virtual machine, object-oriented programming and computational reflection concepts to give those perspectives. The Virtuosi runtime environment can be seen as a reflective middleware, where objects can migrate and remote method invocation is totally transparent by using a mechanism based on handle table.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Soley, R.M., Kent, W.: The OMG object model. In: Kim, W. (ed.) Modern Database Systems, pp. 18–41. Addison-Wesley, Reading (1995)
Silberchatz, A., Galvin, P.B.: Operating System Concepts, 5th edn. Addison-Wesley, Reading (1998)
Dahl, O.J., Nygaard, K.: Simula-67 common base language. Technical Report S-22, Norwegian Computing Centre, Oslo (1970)
Goldberg, A., Robson, D.: Smalltalk-80: The Language. Addison-Wesley, Reading (1983)
Stroustrup, B.: The C++ Programming Language. Addison Wesley, Reading (1986)
Arnold, K., Gosling, J.: The Java Programming Language. Addison-Wesley, Reading (1996)
Meyer, B.: Object-Oriented Software Construction, 2nd edn. Prentice Hall PTR, Englewood Cliffs (1997)
Briot, J.P., Guerraoui, R., Lohr, K.P.: Concurrency and distribution in objectoriented programming. ACM Computing Surveys 30, 291–329 (1998)
Birman, K.P.: Replication and fault-tolerance in the ISIS System. ACM Operating System Review 19 (1985); Proceedings of the 10th ACM Symposium on Operating System Principles
Parrington, G.D., Shrivastava, S.K., Wheater, S.M., Little, M.C.: The design and implementation of Arjuna. USENIX Computing Systems Journal 8 (1995)
Mullender, S.J., Rossum, G.v., Tanenbaum, A.S., Renesse, R.v., Staveren, H.v.: Amoeba: A distributed operating system for the 1990s. IEEE Computer 23, 44–53 (1990)
Boykin, J., Kirschen, D., Langerman, A., Loverso, S.: Programming under Mach. Addison-Wesley, Reading (1993)
Maes, P.: Concepts and experiments in computational reflection. ACM SIGPLAN Notices 22, 147–155 (1987); OOPSLA 1987 (1987)
Kon, F., Roman, M., Liu, P., Mao, J., Yamane, T., Magalhães, L., Campbell, R.: Monitoring, security, and dynamic configuration with the DynamicTAO reflective ORB. In: Coulson, G., Sventek, J. (eds.) Middleware 2000. LNCS, vol. 1795, pp. 121–143. Springer, Heidelberg (2000)
Blair, G., Coulson, G., Andersen, A., Blair, L., Clarke, M., Costa, F., Duran- Limon, H., Fitspatrick, T., Johnston, L., Moreira, R., Parlavantzas, N., Saikoski, K.: The design and implementation of Open ORB. In: IEEE Distributed Systems Online (2001)
Kon, F., Costa, F., Blair, G., Campbell, R.H.: The case for reflective middleware. Communications of the ACM 45, 33–38 (2002)
Venkatasubramanian, N.: Safe composability of middleware services. Communications of the ACM 45, 49–52 (2002)
Oliva, A.: Guaraná: Uma arquitetura de software para reflexão computacional implementada em java. Master’s thesis, Universidade Estadual de Campinas, Instituto de Ciência da Computação (1998)
Atkinson, M.: Providing orthogonal persistence for java. In: Jul, E. (ed.) ECOOP 1998. LNCS, vol. 1445, pp. 383–395. Springer, Heidelberg (1998)
Kistler, T., Franz, M.: A tree-based alternative to java byte-codes. In: Proceedings of the International Workshop on Security and Efficiency Aspects of Java 1997 (1997); Also published as Technical Report No. 96-58, Department of Information and Computer Science, University of California, Irvine (December 1996)
Franz, M., Kistler, T.: Does java have alternatives? In: Proceedings of the California Software Symposium CSS 1997, pp. 5–10 (1997)
Rumbaugh, J., Jacobson, I., Booch, G.: Unified Modeling Language Reference Manual. Addison-Wesley, Reading (1997)
Hu, Y.C., Yu, W., Cox, A., Wallach, D., Zwaenepoel, W.: Run-time support for distributed sharing in safe languages. ACM Transactions on Computer Systems (TOCS) 21, 1–35 (2003)
Jul, E., Levy, H., Hutchinson, N., Black, A.: Fine-grained mobility in the Emerald system. ACM Transactions on Computer Systems 6, 109–133 (1988)
Birrel, A.D., Nelson, B.J.: Implementing remote procedure calls. ACM Transactions and Computer Systems 2, 39–59 (1984)
Tanenbaum, A.S.: Distributed Operating Systems. Prentice-Hall, Englewood Cliffs (1995)
Calsavara, A., Nunes, L.: Estudos sobre a concepção de uma linguagem de programação reflexiva e correspondente ambiente de execução. In: V Simpósio Brasileiro de Linguagens de Programação, pp. 193–204 (2001) (in Portuguese)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Calsavara, A., Noda, A.K., da Costa Cesar Filho, J. (2004). An Overview of the Virtuosi Toolkit. In: Ramos, F.F., Unger, H., Larios, V. (eds) Advanced Distributed Systems. ISSADS 2004. Lecture Notes in Computer Science, vol 3061. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-25958-9_4
Download citation
DOI: https://doi.org/10.1007/978-3-540-25958-9_4
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-22172-2
Online ISBN: 978-3-540-25958-9
eBook Packages: Springer Book Archive