IBM VisualAge for Java и сетевые вычисления

       

Написание апплетов для работы в сети


Сетевые вычисления в Яве основаны на RMI - "Remote Method Invocation", то есть вызове методов, расположенных на других машинах. Для передачи и получения данных используются возможности сети TCP/IP, поэтому апплеты для сетевых вычислений можно использовать на любой машине, подключенной к сети Интернет.

Для того, чтобы начать работать с сетевым приложением, пользователь должен вызвать на своей машине любой браузер, например, Netscape или HotJava, и набрать в нем адрес сервера. После этого на машину скачивается апплет, который спрашивает его имя и пароль, например, вот так:

Подключение к сети (600x500, 61 КБайт)

После того как имя и пароль были указаны, апплет посылает эти данные на сервер, который постоянно работает в сети и отвечает на приходящие запросы. Данные можно посылать по-разному: через HTTP, UDP, сокеты, Named Pipes и так далее, но так как сервер пишется на том же языке, проще всего использовать RMI, то есть вызвать на сервере несколько методов и передать им необходимые значения. Ответ от сервера может быть получен как возвращаемое значение:

// Обращение к серверу. ответ = сервер.обработатьЗапрос( команда, списокЗначений );

В этом примере апплет обращается к серверу и передает ему команду, которую он должен выполнить и список значений для нее. Когда команда выполняется апплет получает ответ от сервера, который он может использовать дальше. Список значений и ответ зависят от посылаемой команды и переменные для них могут содержать все что угодно - от целых чисел до рисунков и отчетов от базы данных.

Разве глядя на эти строки можно сказать, что источник данных расположен на другой машине, возможно, за несколько десятков километров? Но это так. Обращение к серверу не отличается от вызова методов внутри апплета. Да и на сервере команды разбираются и выполняются так же просто - примерно так же, как происходит обработка событий в апплетах или сообщений в приложениях для OS/2. Команда и данные как будто "падают" на сервер, ответ надо бросить в ту же сторону, вот и все :-)

Что можно сделать с помощью удаленного вызова методов? А что бы вам хотелось? Включать кофеварку по часам, исследовать изменение курса акций, построить сеть кассовых машин? Все это возможно. Причем скорость вычислений при использовании RMI во многих случаях возрастает: сервер может использовать память для хранения часто запрашиваемых данных, сжимать их при передаче по сети и так далее.



Содержание раздела