An Overview of the Virtuosi Toolkit

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.

[1]  Rachid Guerraoui,et al.  Concurrency and distribution in object-oriented programming , 1998, CSUR.

[2]  Joseph Boykin,et al.  Programming Under Mach , 1993 .

[3]  Gordon S. Blair,et al.  The Design and Implementation of Open ORB 2 , 2001, IEEE Distributed Syst. Online.

[4]  Abraham Silberschatz,et al.  Operating System Concepts , 1983 .

[5]  Martin Odersky,et al.  A Statically Safe Alternative to Virtual Types , 1998, ECOOP.

[6]  Bertrand Meyer,et al.  Object-Oriented Software Construction, 2nd Edition , 1997 .

[7]  Malcolm P. Atkinson,et al.  Providing Orthogonal Persistence for Java (Extended Abstract) , 1998, ECOOP.

[8]  Luiz Eduardo Buzato,et al.  Guarana : uma arquitetura de software para reflexão computacional implementada em Java tm , 1998 .

[9]  Andrew P. Black,et al.  Fine-grained mobility in the Emerald system , 1987, TOCS.

[10]  Gordon S. Blair,et al.  The case for reflective middleware , 2002, CACM.

[11]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[12]  Fabio Kon,et al.  Monitoring, Security, and Dynamic Configuration with the dynamicTAO Reflective ORB , 2000, Middleware.

[13]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[14]  Pattie Maes Concepts and experiments in computational reflection , 1987, OOPSLA 1987.

[15]  Ivar Jacobson,et al.  The unified modeling language reference manual , 2010 .

[16]  Joseph Boykin,et al.  Programming Under Mach (UNIX & Open Systems Series) , 1993 .

[17]  Ken Arnold,et al.  The Java Programming Language , 1996 .

[18]  Andrew S. Tanenbaum,et al.  Distributed operating systems , 2009, CSUR.

[19]  Alan L. Cox,et al.  Run-time support for distributed sharing in safe languages , 2003, TOCS.

[20]  Andrew Birrell,et al.  Implementing remote procedure calls , 1984, TOCS.

[21]  Adele Goldberg,et al.  SmallTalk 80: The Language , 1989 .

[22]  Nalini Venkatasubramanian Safe 'composability' of middleware services , 2002, CACM.

[23]  Richard Mark Soley,et al.  The OMG Object Model , 1995, Modern Database Systems.

[24]  Robbert van Renesse,et al.  Amoeba A Distributed Operating System for the 1990 s Sape , 1990 .

[25]  Michael Franz,et al.  A Tree-Based Alternative to Java Byte-Codes , 1999, International Journal of Parallel Programming.

[26]  Santosh K. Shrivastava,et al.  The Design and Implementation of Arjuna , 1995, Comput. Syst..

[27]  Kenneth P. Birman Replication and fault-tolerance in the ISIS system , 1985, SOSP 1985.