Cajo project

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 need distributed computing capabilities and is capable of being used on almost any Java-equipped platform (JRE/JME 1.2 or higher) (mobile phones, mainframes, servers, embedded devices, etc.). It is a “drop-in” framework, because it does not impose any structural requirements or source code changes and is 100% pure Java with no XML code. It also is not dependent on any other frameworks and can work behind NAT, firewalls, even HTTP proxies.

History

The Cajo Project has recently been issued by the IANA port number 1198 and UDP Multicast address 224.0.23.162.

License

The source code is free under the LGPL, and the documentation is free under the GFDL.

Usage

Overview

Using the Cajo Project, ordinary unmodified Java objects, can be remote using a single line of code [cite web
url=https://cajo.dev.java.net/overview.html
title=Adding cajo to existing applications
publisher=Cajo project
date=2007-08-04
accessdate=2008-01-19
] :

Itemserver.bind(someObject, "someName");

These can then be used by remote machines either statically, or dynamically.

tatic remote object usage

"Static remote object usage" is typically performed when there exists one or more interfaces to the object, defining how the client may use it, known at Compile time. For example:

public interface SomeInterface { ... // method signatures}

The remote object implements this interface, and possibly others, then remotes the object as shown previously.

"Static remote object usage" is provided through a TransparentItemProxy [cite web
url=http://wiki.java.net/bin/view/Communications/TransparentProxy
title= Using remote objects as if they were local
publisher=Cajo project
date=2007-08-04
accessdate=2008-01-19
] . The user of a remote object can create a reference to this object, which actually implements the shared interface, as follows:

SomeInterface si = (SomeInterface)TransparentItemProxy.getItem( "//someHost:1198/someName", new Class [] { SomeInterface.class } );

A remote machine may now invoke methods on the remote object, with the exact Java syntax and semantics, as if it were local.

Dynamic remote object usage

"Dynamic remote object usage" is typically performed when the interface to an object will be determined at runtime. This is often the case when using Cajo remote objects in a scripting [cite web
url=http://wiki.java.net/bin/view/Communications/CajoScripting
title= Why script cajo?
publisher=Cajo project
date=2007-08-04
accessdate=2008-01-19
] . A machine dynamically uses a remote object reference as follows:

// obtain referenceObject object = Remote.getItem("//someHost:1198/someName");

// typically obtained at runtimeString someMethod = "someMethod";

// also obtained at runtimeObject someArgs = new Object [] { someArgs, ... };

Object result = Remote.invoke(object, someMethod, someArgs);

This snippet invokes a method on a remote object, providing the arguments, "(if any)" and returning the result. "(if any)"

The cajo framework can allow a machine to remote its object reference using UDP/IP Multicast [cite web
url=http://wiki.java.net/bin/view/Communications/UsingMulticast
title= Using cajo Multicasting
publisher=Cajo project
date=2007-08-04
accessdate=2008-01-19
] . This technique lets machines interested to use remote references, simply listen for the announcements. This provides a "One-to-many" linkage mechanism, where the users of the remote object do not need to know the TCP/IP address of the host machine.

Remote graphical user interfaces

The Cajo Project is also used to remote graphical user interfaces [cite web
url=http://wiki.java.net/bin/view/Communications/ProxyUsage
title= Using the cajo proxy mechanism
publisher=Cajo project
date=2007-08-04
accessdate=2008-01-19
] . This provides the ability for an application to run its view on separate machines from its model, and even its controller objects.

ee also

*Java remote method invocation

References

External links

* [https://cajo.dev.java.net/ https://cajo.dev.java.net/] The Cajo Project page
* [https://cajo.dev.java.net/servlets/NewsItemView?newsItemID=2539 Official IANA port number Announcement ]
* [https://cajo.dev.java.net/servlets/NewsItemView?newsItemID=3564 IANA Multicast Address Announcement ]
* [http://www.iana.org/assignments/multicast-addresses Internet Multicast Addresses ]


Wikimedia Foundation. 2010.

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

Look at other dictionaries:

  • Список портов TCP и UDP — Эта статья содержит незавершённый перевод с английского языка. Вы можете помочь проекту, переведя её до конца. В данной статье приведён список портов TCP и UDP, ко …   Википедия

  • Liste der standardisierten Ports — Die folgende Liste enthält die Zuordnung von Ports zu Protokollen, die von der IANA standardisiert wurden. Eine vollständige Liste kann unter Unixoiden Betriebssystemen in der Datei /etc/services eingesehen werden. Inhaltsverzeichnis 1 Legende 2… …   Deutsch Wikipedia

  • Domenico Cimarosa — (17 December 1749, Aversa, Province of Caserta – Venice 11 January 1801) was an Italian opera composer of the Neapolitan school. He wrote more than eighty operas during his lifetime, including his masterpiece, Il matrimonio segreto …   Wikipedia

  • Niccolò Jommelli — (10 September 1714 – 25 August 1774) was an Italian composer. He was born in Aversa and died in Naples. Along with other composers mainly in the Holy Roman Empire and France, he made important changes to opera and reduced the importance of star… …   Wikipedia

  • Libertarian socialism — Part of a series on Libertarian socialism …   Wikipedia

  • Imperial Crypt, Vienna — Since 1633 The Imperial Crypt in Vienna has been the principal place of entombment for the Habsburg dynasty, hereditary Emperors of the Holy Roman Empire, and their descendants.The Imperial Crypt (in German: Kaisergruft but usually called the… …   Wikipedia

  • John Smith of Jamestown — Captain Sir John Smith (c. January 1580–June 21 1631) Admiral of New England was an English soldier, sailor, and author. He is remembered for his role in establishing the first permanent English settlement in North America at Jamestown, Virginia …   Wikipedia

  • Karl Heinrich Graun — Carl Heinrich Graun Carl Heinrich Graun (* 7. Mai 1701 in Wahrenbrück; † 8. August 1759 in Berlin) war ein deutscher Komponist und Sänger. Inhaltsverzeichnis 1 Biographie …   Deutsch Wikipedia

  • Carl Heinrich Graun — (* 7. Mai 1704 in Wahrenbrück; † 8. August 1759 in Berlin) war ein deutscher Komponist und Sänger. Inhaltsverzeichnis …   Deutsch Wikipedia

  • Domenico Cimarosa — Domenico Cima …   Deutsch Wikipedia

Share the article and excerpts

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