Cajo

Cajo

Das Projekt cajo ist eine kleine, freie Java-Klassen-Bibliothek. Sie ermöglicht die Kooperation zwischen mehreren virtuellen Maschinen. Das Ziel ist die Vereinfachung des Gebrauchs von RMI.

Erreicht werden soll die Vereinfachung gegenüber RMI wie folgt.

  1. Im Gegensatz zu RMI werden keine expliziten Schnittstellen definiert.
  2. Es wird kein RMI-Compiler benötigt, statt Code zu generieren, werden Aufrufe zur Laufzeit via Reflexion durchgeführt.

Da mit Einführung von Java 5.0 ebenfalls kein RMI-Compiler nötig ist, sollte diese API zunehmend an Bedeutung verlieren.

Inhaltsverzeichnis

Code-Beispiel

Das folgende Beispiel zeigt einen einfachen Server, der einfach nur die Zeichenkette „Hallo Client“ an den Client überträgt, wobei der Name des Clients per Parameter übergeben wird. Die Methode „main“ startet den Server.

import gnu.cajo.invoke.Remote;
import gnu.cajo.utils.ItemServer;
 
public class Server {
 
    public String hallo(String client) {
        return "Hallo " + client;
    }
 
    public static void main(String args[]) {
        try {
            Remote.config(null, 1198, null, 0);
            ItemServer.bind(new Server(), "einName");
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
 
}

Der dazu passende Client könnte so aussehen, wobei „serverHost“ der TCP/IP-Name der Maschine ist, auf der der Server läuft:

import gnu.cajo.invoke.Remote;
 
public class SomeClient {
 
    public static void main(String args[]) {
        try {
            Object server = Remote.getItem("//serverHost:1198/einName");
            String s = (String)Remote.invoke(server, "hallo", "Wiki");
            System.out.println("first string = " + s);
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
}

Dieses Client-Programm würde „Hallo Wiki“ ausgeben.

Eigenschaften

Wie am Beispiel erkennbar ist, hat der Verzicht auf eine explizite Schnittstelle den Nachteil, dass der Code des Clients etwas schwerer lesbar ist. Statt wie bei Verwendung einer RMI-Schnittstelle zu schreiben server.hallo("Wiki") wird geschrieben Remote.invoke(server, "hallo", "Wiki").

Der Verzicht auf die Erzeugung von clientseitigem Stub- und serverseitigem Skeleton-Code ist seit Java 5 auch bei Verwendung von RMI ebenfalls möglich, so dass der zweite Vorteil nicht mehr bedeutend ist.

Der Quelltext ist unter der LGPL (v3 oder später) verfügbar.

Am 5. August 2005 vergab die Organisation IANA nach mehr als einem Jahr und ausführlicher Kontrolle dem Projekt cajo die offizielle Portnummer 1198.[1][2]

Siehe auch

Weblinks

Quellen

  1. https://cajo.dev.java.net/servlets/NewsItemView?newsItemID=2539
  2. http://www.iana.org/assignments/port-numbers IANA-Port-Nummer

Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР

Schlagen Sie auch in anderen Wörterbüchern nach:

  • čajo — čájo m DEFINICIJA hip. od čauš (2) ETIMOLOGIJA vidi čauš …   Hrvatski jezični portal

  • cajo — (Del lat. capsus, caja). m. Pestaña que forma el encuadernador en el lomo de un libro sobre las primeras y últimas hojas, para que quepan cómodamente los cartones que han de cubrirlas al encuadernarlo …   Diccionario de la lengua española

  • cajo — ► sustantivo masculino ARTES GRÁFICAS Pestaña que forma el encuadernador en el lomo de un libro sobre las primeras y últimas hojas para que quepan los cartones de las tapas. * * * cajo (del lat. «capsus», caja) m. AGráf. Pestaña que se deja en el …   Enciclopedia Universal

  • CAJO Julio Bruto — CAJO Juliô Brutô dictarore designatô, actum fuit nihil an. ab Urb. Cond. 443 …   Hofmann J. Lexicon universale

  • Cajo project — The Cajo Project is a framework that enables multiple Java applications that are spread across multiple machines to work together as one transparently and dynamically.This framework is useful for both open/free and proprietary applications that… …   Wikipedia

  • Cajo Brendel — Carl Brendel (* 26. Oktober 1915 in Den Haag; † 25. Juni 2007) war ein niederländischer Theoretiker des Rätekommunismus. Seine Eltern, Carolina Hinlópen, eine Musiklehrerin und Johan Brendel lebten in freier Ehe zusammen, weswegen sein eigentlich …   Deutsch Wikipedia

  • CAJO Vierzon — Vierzon Foot 18 Vierzon Foot 18 Club fondé en …   Wikipédia en Français

  • Cajo — Campnosperma (C) …   EthnoBotanical Dictionary

  • Serie 440 de Renfe — Serie 470 de Renfe Una unidad 440 en doble composición con los colores originales. Datos Tipo Unidad eléctrica …   Wikipedia Español

  • Henri Simon (marxiste) — Pour les articles homonymes, voir Henri Simon. Henri Simon (né en 1922) est un militant marxiste, partisan du communisme de conseils. Il a été militant de Socialisme ou barbarie et d Informations et correspondances ouvrières, et depuis 1975 de… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”