Architektura Klient - Serwer w Javie
●
CO TO JEST?
●
SOCKETY W JAVIE
●
RMI W JAVIE
Co to jest architektura klient – serwer ?
Co to jest architektura klient – serwer ?
Co to jest architektura klient – serwer ?
KOMUNIKACJA
Co to jest architektura klient – serwer ?
KOMUNIKACJA
Co to jest architektura klient – serwer ?
KOMUNIKACJA
KO
M
UN
IK
AC
JA
KO
M
UN
IK
AC
JA
Co to jest architektura klient – serwer ?
KOMUNIKACJA
KO
M
UN
IK
AC
JA
KO
M
UN
IK
AC
JA
Co to jest architektura klient – serwer ?
KO
M
UN
IK
AC
JA
KO
M
UN
IK
AC
JA
KO
M
UN
IK
AC
JA
KO
M
UN
IK
AC
JA
Zalety i Wady
●
Zmniejsza ilość pakietów w sieci
●
Wszystkie dane w jednym
miejscu
●
Dane łatwiej zabezpieczyć
●
Klienci nie są obciążeni
obliczeniami
●
Serwer musi mieć sporą moc
obliczeniową i dużą
przepustowość łącza
●
Gdy serwer padnie usługa jest
całkowicie nie dostępna
Komunikacja z użyciem Socketów
Socket (Gniazdo) – w telekomunikacji
abstrakcyjne pojęcie reprezentujące
dwukierunkowy punkt końcowy połączenia.
Jest określane przez adres hosta i port.
Połącz, wyślij, odbierz, zamknij
Połącz, wyślij, odbierz, zamknij
Sockety w Javie
●
Klasa java.net.Socket
●
Klasa java.net.ServerSocket
●
Klasa java.net.SocketAddress
Najważniejsze metody Socket
Socket()
Socket(InetAddress address, int port)
Socket(String host, int port)
void
close()
void
connect(SocketAddress endpoint)
InputStream
getInputStream()
OutputStream
getOutputStream()
void
shutdownInput()
void
shutdownOutput()
Najważniejsze metody ServerSocket
ServerSocket()
ServerSocket(int port)
ServerSocket(int port, int backlog)
Socket
accept()
void
close()
RMI – Remote Method Invocation
RMI to mechanizm umożliwiający zdalne
wywołanie metod obiektów. Obiekty te mogą
znajdować się w innych maszynach wirtualnych
Javy, które mogą znajdować się na innych
komputerach.
RMI wymagania
Podstawowe kroki przy tworzeniu aplikacji
rozproszonej:
–
projektowanie i implementacja komponentów
aplikacji rozproszonej
–
Kompilacja źródeł i generacja namiastek
–
udostępnienie klas w sieci
–
uruchomienie aplikacji
RMI wymagania
Każdy interfejs zdalny musi spełniać dwa warunki:
- Musi dziedziczyć po java.rmi.Remote
- Każda jego metoda musi rzucać wyjątek
java.rmi.RemoteException
Następnie taki interfejs musi zostać
zaimplementowany i zarejestrowany