Informaqe na temat zdalnego, opartego na Javie sterowania teleskopami znajdziesz pod adresem
http://pioneer.gsfc.nasa.gov/public/irc/. Dane o projekcie SOFIA znajdują się w witrynie http:/jwww. so-
fa.usra.edu/.
Rozdział 1: Dlaczego Java sieciowa?
Co potrafi program sieciowy?
Zdolność do działania w sieci daje prostym programom potężne możliwości. Dzięki
sieci jeden program może pobierać informacje przechowywane na milionach kompu-
terów rozrzuconych po całym świecie. Jeden program może komunikować się
z dziesiątkami milionów osób. Jeden program może zaprząc moc wielu kom-
puterów do rozwiązywania jakiegoś problemu.
Brzmi to jak reklama firmy Microsoft, a nie początek książki technicznej. Porozma-
wiajmy o szczegółach tego, co mogą robić programy sieciowe. Aplikacje sieciowe ge-
neralnie przybierają jedną z kilku postaci. Rozróżnienie, o którym słyszy się najczęś-
ciej, to podział na klienty i serwery. W najprostszym przypadku klienty pobie-
rają dane z serwera i je wyświetlają. Bardziej złożone programy klienckie filtru-
ją i porządkują dane, stale pobierając zmieniające się informacje, wysyłają dane do
innych osób i komputerów oraz w czasie rzeczywistym oddziałują z ró-
wnorzędnymi programami umożliwiając pogawędki sieciowe, gry dla wielu użyt-
kowników i współpracę. Serwery odpowiadają na żądanie pobrania danych. Zwykły
serwer po prostu wynajduje jakiś plik i przekazuje go klientowi, a bardziej złożone
serwery zazwyczaj wykonują wiele pracy, przetwarzając dane przed udzieleniem od-
powiedzi. Poza klientami i serwerami następną generację aplikacji sieciowych prawie
na pewno będą stanowiły mobilne agenty, które przenoszą się od serwera do serwera,
aby wyszukiwać informaq'e w sieci WWW i zanosić je do swojego protokolarnego
domu. A to dopiero początek. Przyjrzyjmy się uważnie możliwościom, które otwierają
się przed tobą, gdy do swojego programu dodasz współdziałanie z siecią.
Pobieranie i wyświetlanie danych
Na najbardziej podstawowym poziomie klient sieci pobiera dane z serwera i
przedstawia je użytkownikowi. Oczywiście wiele programów robiło to samo, za-
nim pojawiła się Java. Prawdę mówiąc, właśnie tym zajmują się przeglądarki sie-
ciowe. Jednak mają one ograniczenia. Mogą rozmawiać tylko z niektórymi rodza-
jami serwerów (zazwyczaj serwerami WWW, FTP, gopher i ewentualnie serwe-
rami pocztowymi oraz serwerami wiadomości). Są w stanie zrozumieć i wyświe-
tlić niektóre rodzaje danych (generalnie tekst, HTML i kilka standardowych
formatów obrazu). Jeśli chcesz czegoś więcej, to masz problem: przeglądarka sie-
ciowa nie może przesłać bazie danych poleceń SQL, aby zapytać o wszystkie
będące w sprzedaży książki Elliotta Rusty'ego Harolda opublikowane przez wy-
dawnictwo O'Reilly & Associates. Przeglądarka sieciowa nie może też sprawdzić
aktualnego czasu (z dokładnością do setnych części sekundy) na superdokład-
nym zegarze masera tlenowego w obserwatorium amerykańskiej marynarki wo-
jennej (http://tycho.usno.navy.mil/), stosując sieciowy protokół czasu. Przeglądarka
nie potrafi też posługiwać się specyficznym protokołem wykorzystywanym do
zdalnego sterowania urządzeniem HAWC (ang. High Resolution Airborne Wide-
band Camera - szerokopasmowy, powietrzny teleskop wysokiej rozdzielczości)
znajdującym się w obserwatorium SOFIA (ang. Stratospheric Observatory for Infra-
Rozdział 1: Dlaczego Java siedowa?
Co potrafi program sieciowy?
Zdolność do działania w sieci daje prostym programom potężne możliwości. Dzięki
sieci jeden program może pobierać informacje przechowywane na milionach kompu-
terów rozrzuconych po całym świecie. Jeden program może komunikować się
z dziesiątkami milionów osób. Jeden program może zaprząc moc wielu kom-
puterów do rozwiązywania jakiegoś problemu.
Brzmi to jak reklama firmy Microsoft, a nie początek książki technicznej. Porozma-
wiajmy o szczegółach tego, co mogą robić programy sieciowe. Aplikacje sieciowe ge-
neralnie przybierają jedną z kilku postaci. Rozróżnienie, o którym słyszy się najczęś-
ciej, to podział na klienty i serwery. W najprostszym przypadku klienty pobie-
rają dane z serwera i je wyświetlają. Bardziej złożone programy klienckie filtru-
ją i porządkują dane, stale pobierając zmieniające się informacje, wysyłają dane do
innych osób i komputerów oraz w czasie rzeczywistym oddziałują z ró-
wnorzędnymi programami umożliwiając pogawędki sieciowe, gry dla wielu użyt-
kowników i współpracę. Serwery odpowiadają na żądanie pobrania danych. Zwykły
serwer po prostu wynajduje jakiś plik i przekazuje go klientowi, a bardziej złożone
serwery zazwyczaj wykonują wiele pracy, przetwarzając dane przed udzieleniem od-
powiedzi. Poza klientami i serwerami następną generację aplikacji sieciowych prawie
na pewno będą stanowiły mobilne agenty, które przenoszą się od serwera do serwera,
aby wyszukiwać informacje w sieci WWW i zanosić je do swojego protokolarnego
domu. A to dopiero początek. Przyjrzyjmy się uważnie możliwościom, które otwierają
się przed tobą, gdy do swojego programu dodasz współdziałanie z siecią. •>.•••.•••.-.
Pobieranie i wyświetlanie danych
Na najbardziej podstawowym poziomie klient sieci pobiera dane z serwera i
przedstawia je użytkownikowi. Oczywiście wiele programów robiło to samo, za-
nim pojawiła się Java. Prawdę mówiąc, właśnie tym zajmują się przeglądarki sie-
ciowe. Jednak mają one ograniczenia. Mogą rozmawiać tylko z niektórymi rodza-
jami serwerów (zazwyczaj serwerami WWW, FTP, gopher i ewentualnie serwe-
rami pocztowymi oraz serwerami wiadomości). Są w stanie zrozumieć i wyświe-
tlić niektóre rodzaje danych (generalnie tekst, HTML i kilka standardowych
formatów obrazu). Jeśli chcesz czegoś więcej, to masz problem: przeglądarka sie-
ciowa nie może przesłać bazie danych poleceń SQL, aby zapytać o wszystkie
będące w sprzedaży książki Elliotta Rusty'ego Harolda opublikowane przez wy-
dawnictwo O'Reilly & Associates. Przeglądarka sieciowa nie może też sprawdzić
aktualnego czasu (z dokładnością do setnych części sekundy) na superdokład-
nym zegarze masera tlenowego w obserwatorium amerykańskiej marynarki wo-
jennej (http://tycho.usno.navy.mil/), stosując sieciowy protokół czasu. Przeglądarka
nie potrafi też posługiwać się specyficznym protokołem wykorzystywanym do
zdalnego sterowania urządzeniem HAWC (ang. High Resolution Airborne Wide-
band Camera - szerokopasmowy, powietrzny teleskop wysokiej rozdzielczości)
znajdującym się w obserwatorium SOFIA (ang. Stratospheric Observatory for Infra-
Co potrafiprogram sieciowy?
d Astronomy - stratosferyczne obserwatorium astronomiczne w zakresie pod-
czerwieni).*
Program napisany w Javie może zrobić to wszystko, a nawet jeszcze więcej. Potrafi
wysłać do bazy danych zapytania SQL. Rysunek 1-1 przedstawia fragment progra-