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.