Java RMI

Demonstracja możliwości biblioteki Java RMI

Architektura RMI klient serwer w aplikacji Bank - centralny system udostępniający zewnętrznym klientom zdalny interfejs do zakładania i zarządzania kontami bankowymi (w środowisku Windows)

System opiera się o bibliotekę Java RMI w związku z tym przed uruchomeniniem aplikacji należy zawsze uruchamiać RMI w oddzielnym wątku. Przykładowe uruchomienie:

C:\java\jdk1.6.0_11\bin\rmiregistry

Możemy też dodać C:\java\jdk1.6.0_11\bin\ do zmiennej systemowej $PATH$ wtedy wystarczy wpisanie rmiregistry

Klasy serwera i klienta

Konto - interfejs i klasa - wspólne dla aplikacji serwerowej banku i klienta

BankSerwer - interfejs i klasa - wspólne dla aplikacji serwerowej banku i klienta

Haslo - interfejs i klasa - wspólne dla aplikacji serwerowej banku i klienta

Klient - obsługa interfejsu banku od strony klienta

Czytaj - kod wspomagający działanie interfejsu klienta - operacje wejścia i wyjścia

Start aplikacji po stronie klienta

Poza tym po stronie klienta należy stworzyć instancję obiektu Klient i uruchomić zdalny interfejs.

import java.rmi.RemoteException;

public class Start {
	/**
	 * @param args
	 * @throws RemoteException 
	 */
	public static void main(String[] args) throws RemoteException {
		// TODO Auto-generated method stub
		Klient k = new Klient();
		k.start();
	}
}

Kompilacja

Należy pamiętać, że klasy i interfejsy dla Konta, BankSerwer-a (+Haslo) powinny znaleźć się po stronie serwera i klienta. A w czasie kompilacji dotyczy to również plików .java. Pamiętajmy dodatkowo o poprawnej kompilacji - dla zwykłych klas wystarczy klasyczne javac. Dla klas udostępnianych przez serwer procedura jest bardziej złożona. Poza zwykłą kompilacją należy tworzyć pliki %_Stub.java %_Skel.java odpowiednio dla klas i interfejsów - przy pomocy polecenia rmic. Przykład:

javac iKonto.java
javac Konto.java
javac iBankSerwer.java
javac BankSerwer.java
rmic -v1.1 BankSerwer
rmic -v1.1 Konto

Dokumentacja

Teoretyczne i praktycznie szczegóły implememetacji zostały doskonale opisane w książce Head First Java zapraszam do lektury w celu lepszego zrozumienia zamieszczonego tu przykładu.

Program Java Rmi

2012.11.22 22:29:10.