- 284 -Mazzola, Guerino / Noll, Thomas / Lluis-Puebla, Emilio: Perspectives in Mathematical and Computational Music Theory 
  Erste Seite (1) Vorherige Seite (283)Nächste Seite (285) Letzte Seite (454)      Suchen  Nur aktuelle Seite durchsuchen Gesamtes Dokument durchsuchen     Aktuelle Seite drucken Hilfe 

3 Implementation in Java

The fact that traditional RUBATO was implemented on NeXTStep in Objective-C made possible fast development but precluded porting to other platforms. It was thus decided to do a new implementation in Java. This guaranteed much better portability across multiple platforms. In fact the existing code runs almost unchanged on Linux, MacOS X and Windows. (The Java3D part is presently not running under MacOS X, because Apple has not yet released a Mac Version of Java3D, but the Apple developers promised us that this is a temporary problem.)

Several additional issues speak in favour of Java. There are extensive libraries for network programming and graphics programming. Especially the Java3D API is essential for the new interface paradigm of Distributed RUBATO. Packages not presently in use but interesting for future enhancements include JDBC for database programming (see the above mentioned BiblioRubette) or the Java Media Framework for handling various multimedia types.

It is, however, important to note that development is not restricted to Java. Network programming is essentially transparent, so an infrastructure like CORBA can be used to achieve integration with other programming language systems. The present implementation uses Java’s own technology which is presented next.

3.1 Communication using Denotators over RMI

The remote method invocation (RMI) technology permits calling methods of objects living on remote servers over network or locally. This is how services provided by a Rubette are used by other Rubettes. Rubettes must implement a single interface (in the Java sense) described in section 5 and communicate exclusively using denotators as data structures (section 4).


PIC


Figure 2: Communication over RMI.


Figure 2 shows the general communication process between two Rubettes. The light gray boxes represent hosts, the gray boxes running Java virtual machines. At the beginning, a Rubette, in this case a Browser Rubette which acts as the graphical user interface of Distributed RUBATO, connects to a naming server on the remote host (rmiregistry) and receives an initial handle to a RMIServer instance. Using this handle it can from now on make any call to any Rubette registered on the remote host. There is a special Rubette, the InfoRubette, that may be called to access information about the available Rubettes.

4 Forms, Denotators, and Modules

The general theory of forms and denotators may be found in Mazzola (2002b). Therefore we may restrict to programming issues by going through an example that creates a simple denotator and its corresponding form. Forms and denotators are represented by the Java classes Form and Denotator which implement the basic functionality.

The foundation of the denotator data model, i.e., the concrete types or basic types as known from computer science, consists in a whole hierarchy implementing mathematical modules. There are integer, modular integers, rationals, reals and,


Erste Seite (1) Vorherige Seite (283)Nächste Seite (285) Letzte Seite (454)      Suchen  Nur aktuelle Seite durchsuchen Gesamtes Dokument durchsuchen     Aktuelle Seite drucken Hilfe 
- 284 -Mazzola, Guerino / Noll, Thomas / Lluis-Puebla, Emilio: Perspectives in Mathematical and Computational Music Theory