2000 г

IBM VisualAge for Java и сетевые вычисленияВычисление — математическое преобразование, позволяющее преобразовывать входящий поток информации в выходной, с отличной от первого структурой. Если смотреть с точки зрения теории информации, вычисление - это получение из входных данных нового знания.

Russian/2 progect, http://os2.ru/

Сергей Посохов 24.11.1999

О чем эта статья
Что такое Ява
Первые шаги
Все, что вы хотели узнать про VisualAge, но боялись спросить
Давайте что-нибудь нарисуем!
Можно ли обойтись без построителя?
Написание апплетов для работы в сети
Соображения безопасности
Апплет для сетевых вычислений
Сервер, к которому он обращается
Примеры

О чем эта статья

В этой статье рассказывается о среде разработки IBM VisualAge for Java и ее использовании в вычислительных сетях. Все, что вы прочтете здесь, покажется вам знакомым и новым одновременно. Язык Ява (Java) очень похож на C++, но среда для разработки апплетов - шаг вперед по сравнению с существующими оболочками. Работать с ней очень удобно.

Используя сетевые возможности Явы, можно соединить несколько машин и заставить их работать как одно целое, управлять устройствами на других машинах, строить сети "клиент-серверКлиент-сервер (англ.Client-server)— вычислительная или сетевая архитектура, в которой задания или сетевая нагрузка распределены между поставщиками услуг (сервисов), называемыми серверами, и заказчиками услуг, называемыми клиентами. Нередко клиенты и серверы взаимодействуют через компьютерную сеть и могут быть как различными физическими устройствами, так и программным обеспечением.", и многое другое. О том, как это сделать, рассказывается отдельно.

Что такое Ява

Давным-давно, в далеком 1991 году, когда машины были большими, а приложения - маленькими, компанияКомпания: (фр.compagnie — 1) общество, группа; 2) фирма, рота, экипаж корабля, театральная труппа) Sun переживала очередной кризис. Несмотря на то, что их машины опережали по скорости любой IBM PC, были надежнее PC и так далее, их брать никто не хотел. На выставках люди говорили одно и то же: "О, какая крутая тачка! А наши любимые приложения на ней пойдут? Нет? Тогда не будем покупать..."

Нет приложений - нет и пользователей, а значит, не будет и приложений. Чтобы разорвать замкнутый круг, было сделано многое, в том числе новые средства разработки, которые были предназначены не только для Sun-овских машин. Ява скачивается бесплатно и денег не требует. Попробуйте - Вам понравится. "Если Яву начнут использовать, будет написано большое число апплетов, и все они смогут работать на наших машинах. Вопрос с приложениями будет решен", - считали в Sun. Так оно и получилось.

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

В дополнение к языку программирования была разработана среда, в которой выполняются апплеты. Она обеспечивает их работу на любой платформе независимо от используемого процессора или ОС, обрабатывает исключения, следит за использованием памяти и так далее.

Первые шаги

Отзывы, полученные разработчиками в Sun после того, как первыеВселенная «Механоидов»— придуманная фантастическая реальность, существующая в компьютерной игре «Механоиды». версии Явы увидели свет, были самыми лучшими. Множество людей начали разрабатывать апплеты, так что вскоре была выпущена следующая версия, затем еще и еще.В то же время в IBM не только разработали свою собственную версию Явы, полностью совместимую с Sun-овской, но также дополнили ее редактором и отладчиком, а вскоре и мощной средой разработки. В рекламе к ней разработчики постарались показать, какую пользу может принести Ява. Они говорили: "Жизнь слишком коротка, чтобы переписывать код". С этим трудно не согласиться.

Кроме того, в IBM начали разрабатывать апплеты. Сейчас OS/2 можно настраивать не подходя к серверу, оболочка СУБД DB2 может быть доступна любому пользователю в сети, в дополнение к системе документооборота Lotus Notes сделана оболочка eSuite. Все это не зависит от платформы, не требует настройки - это очень удобно.

Больше всего Ява понравилась разработчикам. Один мой знакомый, его зовут Вадим, который в далеком 1988 году разрабатывал ПЭВМ "Агат", дал VisualAge такую оценку: "Это просто замечательно. По сравнению с тем, что делают в Sun и IBM, мелкомягкий Visual C++ выглядит как большая куча мусора, в которую они свалили все, что у них было".

Все, что вы хотели узнать про VisualAge, но боялись спросить

Как он выглядит-то? Ни разу не видел...

VisualAge отличается от других средств разработки тем, что позволяет разработчику сосредоточить свое внимание только на задаче, которую он должен решить, работать только с построителем или текстом и иногда попадать в отладчик - про все остальное можно забыть. Привычные для многих составляющие любого средства разработки - компилятор и командная строка, каталоги проектов и файлы исходников - скрыты или отсутствуют вообще.

Так как любой человек обрабатывает видимые данные быстрее, чем безличные файлы, ему проще работать с логической схемой программы и не беспокоиться об именах файлов или каталогов. Хорошо, если среда разработки сможет показать ее - например, вот так:

Окно рабочего пространства (600x400, 23 КБайта)

Если разработчик захочет исправить какой-нибудь метод в своей программе, ему достаточно будет выбрать этот метод и нажать на кнопку мыши. "Открывать и закрывать файлы" или совершать другие подобные действия - например "Создать ярлык", "Перейти на панель" и так далее, - ему теперь и в голову не придет. Нет никаких линеек и ярлыков - и временаВремена— информационно-аналитическая телепрограмма в России, выходила сначала по воскресеньям в 22:30, затем по воскресеньям в 18:00, а в последние годы существования - по субботам в 18:00 по московскому времени на Первом канале. В программе участвует ведущий Владимир Познер, четыре гостя (депутаты, представители науки и члены правительства) и участник-не специалист («свежая голова»). файлов безвозвратно прошли. По крайней мере здесь :-)

А текстовый редактор там есть?

Есть в VisualAge текстовый редактор, но только не такой, к которому все привыкли. Ведь от использования файлов разработчики отказались - гораздо легче работать прямо с классами языка Ява, которые хранятся в самом VisualAge.

Каждый класс имеет внешнее представление - он может быть показан в построителе или в виде текста. Посмотреть и исправить исходный текст можно где угодно - в рабочем пространстве, в отладчике, при просмотре класса, поиске, сравнении текстов и так далее. Причем после исправления текста в одном окне он меняется в других окнах, так что следить за ними необязательно. Вот, например, окно для просмотра классов в пакете "java.lang" - как видите, это исходники Явы:

Текстовый редактор (600x400, 20 КБайт)

Чтобы увидеть их, в рабочем пространстве была выбрана закладка "Classes" и в списке выбран для просмотра метод "setDaemon" класса "java.lang.Thread". Исходный текст можно исправить и сохранить, поставить точку прерыванияПрерывание (англ.interrupt)— сигнал, сообщающий процессору о наступлении какого-либо события. При этом выполнение текущей последовательности команд приостанавливается и управление передаётся обработчику прерывания, который реагирует на событие и обслуживает его, после чего возвращает управление в прерванный код., провести поиск. Для просмотра можно открыть отдельное окно, и работать с ним.

Меня порадовало то, что разработчики в Sun и IBM не стали прятать свои исходники. Несколько раз это уже пригодилось, когда я долго не мог догадаться, где же ошибка :-)

А компилятор как работает?

Незаметно и очень быстро. Так как каждый класс Явы можно "собрать" отдельно, то для получения апплета не надо обрабатывать все исходники. VisualAge создает выполняемый код во время сохранения текста, причем в окне рабочего пространства можно всегда просмотреть список ошибок и быстро их исправить. И ни разу я не видел сообщений вроде "Too many errors".

А окошки вы чем рисуете?

В построителе можно разработать любой апплет, собирая вместе объекты различных классов (в Яве они называются "beans", то есть зерна) и соединяя их между собой. Обычно построитель используется для того, чтобы нарисовать окно с полями ввода и несколькими кнопками и задать действия, которые будут выполняться при нажатии на кнопки, причем эти действия также могут быть показаны в построителе.

Для того, чтобы задавать не только расположение "зерен", но и взаимодействие между ними, используются соединения-стрелки, которые задают правила вроде "когда возникнет такое-то событие выполни такое-то действие" или "установи такое-то свойствоСвойство (в философии, математике и логике)— атрибут предмета (объекта). Например, о красном предмете говорится, что он обладает свойством красноты. Свойство можно рассматривать как форму предмета самого по себе, притом, что он может обладать и другими свойствами. Свойства, следовательно, подпадают под действие парадокса Рассела и парадокса Греллинга-Нельсона." - текст в этом случае набирать не надо.

Пусть у вас есть окно с кнопками "OK" и "Отмена". Для того, чтобы задать их расположение, достаточно бросить их в окно, а чтобы указать действия, которые будут выполняться при нажатии на каждую кнопку, надо соединить их с другими "зернами". Так, если вы хотите, чтобы при нажатии на кнопку "Отмена" окно было закрыто, вы должны соединить ее с окном и задать требуемое действие, как показано на рисунке:

Кроме кнопок, в апплете могут быть также невидимые "зерна", которые могут следить за набором текста в полях ввода, соединять апплет с другими приложениями в сети и так далее. Все зависит только от желания разработчика.

Вы можете попробовать самостоятельно сделать например, надпись, которая будет менять цвет когда над ней движется указатель мыши. Для этого вам потребуется два соединения: "Указатель мыши появился над надписью -> Задать для нее яркий цвет" и "Указатель мыши убрался -> Задать обычный цвет". При этом вы не напишете ни строчки.Этот пример мы рассмотрим ниже.

Однако это вовсе не означает, что в VisualAge можно работать не зная языка Ява. Дело в том, что возможность рисовать программу сделана в расчете на то, что человек заранее знает, что он хочет - никаких подсказок и "мастеров" в построителе нет. Так что лучше всего начинать с написания апплетов "руками", а затем уже попробовать эту возможностьВозможность — направление развития, присутствующее в каждом явлении жизни; выступает и в качестве предстоящего, и вполне объяснимо рациональным путем: в каждой возможности присутствует вероятная невозможность, «возможность невозможного». Возможность не определяется познанием того, что может быть. Познание вероятностей, возможностей не всегда влияет на нашу возможность. На изучении возможности основывается, главным образом, исследование бытия и события..

И отладчик навороченный?

Если рабочее пространствоПространство— понятие, используемое (непосредственно или в словосочетании) в естественных языках, а также в таких разделах знаний, как философия, математика, физика ит.п. и построитель в VisualAge представляют собой что-то новое, делают его непохожим на другие средства разработки, то с отладчиком в IBM играться не стали - у них получился самый обычный отладчик. В нем можно выбрать поток, увидеть метод, который в нем работает, посмотреть доступные переменные и так далее:

ОтладчикОтладчик (дебаггер, англ.debugger) — компьютерная программа, предназначенная для поиска багов в других программах, ядрах операционных систем, SQL-запросах и других видах кода. Отладчик позволяет выполнять пошаговую трассировку, отслеживать, устанавливать или изменять значения переменных в процессе выполнения кода, устанавливать и удалять контрольные точки или условия остановки и т.д. (600x400, 22 КБайта)

Особенно радует возможность исправлять текст прямо в отладчике, и продолжать выполнение программы с той же точки, где она была остановлена.

Так какой же для этого компьютерКомпьютер (англ.computer— «вычислитель»), электронная вычислительная машина (ЭВМ)— вычислительная машина, предназначенная для передачи, хранения и обработки информации. нужен?

Во-первых, даже не пытайтесь запускать VisualAge/Java на машине с 32 Мб памяти - работать все равно не будет, просто не влезет в доступные 25 Мб. Запустите его на машине где памяти много - и получите замечательную среду разработки. Больше ему и не нужно: открывайте в нем сколько угодно окон, запускайте сколько угодно апплетов - объем занимаемой памяти почти не увеличится.

Процессор подойдет любой, все летает даже на старом 100 МГц Pentium`e. Разрешение монитора должно быть 800x600 или выше, число цветов - от 256, слова "VGA" и т. п. следует забыть навсегда :-)

РуководствоВласть —возможность и способность осуществлять свою волю, воздействовать на деятельность и поведение других людей даже вопреки сопротивлению. Суть власти не зависит от её основы. Способность и возможность достигать своих целей может базироваться на различных методах: демократических и авторитарных, честных и нечестных, насилии и мести, обмане, провокациях, вымогательстве, стимулировании, обещаниях ит.д. по VisualAge выполнено в виде HTML, и даже поиск ведется с помощью отдельного "поискового сервера", работающего через TCP/IP. Сначала мне показалось, что это лишнее, но рисункиРисунок — изображение на плоскости, созданное средствами графики. В роли графической основы присутствует в любом изображении на плоскости, в этом значении оценивается с точки зрения качества (понятие рисунка в живописи и т. п.). Рисунок может выполняться как самостоятельное по значению произведение графики либо служить вспомогательным этапом для создания живописных, графических, реже — скульптурных работ или архитектурных замыслов. Рисунки как предварительные наброски и эскизы для создания более масштабных живописных произведений часто имеют самодостаточную и выдающуюся художественную ценность. в GIF и JPEG выглядят очень привлекательно. Тем более что я нашел одну хитрость - оказывается, Netscape для OS/2 может открывать отдельное окно для каждой новой странице, и в этом случае он работает ничуть не хуже, чем простой осевый справочник.

Утилита, которая позволит это сделать, называется "Netscape DDE Interface" и забрать ее можно здесь вместе с заменой для IBM Web Explorer. Эту связку - новый Explorer, DDE Interface и Netscape 2.02 можно использовать для чтения руководства, для этого надо настроить VisualAge так, чтобы он вызывал "Explore.exe".

ГраблиГрабли— в современном русском языке сельскохозяйственный инструмент.?

Ну например... ставить VisualAge надо только в каталог с английским именем - русские названия он не понимает, танцы с бубном и ломом по голове на него не действуют.

Или вот еще - начальные настройки TCP/IP в OS/w Warp 4.0 могут не позволить справочнику видеть свой же компьютер, то есть "localhost", и получать от него данные он не сможет. Да и не только он - команда "ping localhost" иногда отвечает, что адрес неизвестен. В этом случае надо вызвать настройки TCP/IP и на первой же странице задать адрес для "loopback interfaceИнтерфейс (от англ.interface— поверхность раздела, перегородка)— совокупность средств, методов и правил взаимодействия (управления, контроля ит.д.) между элементами системы.", а именно "127.0.0.1". Также можно добавить имя "localhost" с этим же адресом в список на второй странице после закладки "хосты". После этого справочник и команда "ping" будут работать правильно.

Нельзя удалять каталог "Eab\Ntq\Install", он может быть полезен. И надо отдельно сохранить файлы:

  • Ide.ini
  • Ivj10.ini
  • Ivj10.ins
  • Reg.reg
  • Ivj.icx
  • Ivjinit1.sav

Это настройки VisualAge. Если в нем что-то сломается, можно легко починить.

Давайте что-нибудь нарисуем!

Да легко! Можно попробовать сделать апплет, содержащий надпись, которая меняет цвет при появлении указателя мыши над ней. Сделать это довольно просто:

1. Прежде всего надо в окне рабочего пространства создать папку, в которой будет храниться ваш апплет. Для этого достаточно в полоске действий в верхней части окна нажать на кнопку с изображением папки-фолдера. После этого вы увидите окно, в котором надо указать название папки и нажать на кнопку "Finish":

Кнопка

Создание папки (700x400, 12 КБайт)

2. После создания папки надо создать в ней апплет. Для этого в полоске действий есть кнопка "Создать апплет", на которую надо нажать после того, как будет выбрана папка:

Кнопка

Создание апплета (700x500, 16 КБайт)

3. После того, как апплет будет создан, VisualAge открывает окно построителя, в котором можно что-нибудь нарисовать, напримерПример рассматривается в риторике чаще всего в контексте доказательств и аргументов. Для Квинтилиана пример является одним из дополняющих, наглядных доводов к высказыванию, либо упоминанием полезного, настоящего или якобы существующего образца убеждения того, что определено тобой одним. Правда, в отличие от доказательств, связь с предметом обсуждения должна быть установлена прежде автором или оратором., надпись (Label). После этого можно задать ее свойстваСвойство (в философии, математике и логике)— атрибут предмета (объекта). Например, о красном предмете говорится, что он обладает свойством красноты. Свойство можно рассматривать как форму предмета самого по себе, притом, что он может обладать и другими свойствами. Свойства, следовательно, подпадают под действие парадокса Рассела и парадокса Греллинга-Нельсона.:

Окно построителя (600x500, 16 КБайт)

Рисование апплета (600x500, 16 КБайт)

4. Теперь, когда надпись нарисована, можно задать ее поведениеПоведение— способность животных изменять свои действия под влиянием внутренних и внешних факторов, характерная черта животного типа организации. Поведение имеет огромное приспособительное значение, позволяя животным избегать негативных факторов окружающей среды. У многоклеточных организмов поведение находится под контролем нервной системы.. Это делается с помощью соединений-стрелок, описывающих действия, которые должны выполняться при возникновении различных событий в апплете. Так, если вы хотите, чтобы при появлении указателя мыши над надписью она менялаМенялы— люди, которые занимались обменом монет одного государства на монеты другого государства в Древнем мире и в Средние Века. свой цвет, надо в ответ на событие "mouseEntered" вызвать в ней метод "setForeground()".

Для того, чтобы создать такое соединение, надо нажать правой кнопкой мыши на источник события, то есть на свеженарисованную Надпись, и выбрать в меню строки "Connect" и "All Features". Таким образом вы сообщаете построителю, что при возникновении некоторого события вы будете выполнять какое-то действие и что вам требуется список всех возможных событий:

Создание соединения (600x500, 19 КБайт)

В ответ на это построитель покажет вам окно с заголовком "Start connection", в котором вы сможете выбрать отслеживаемое событие, в данном случае это "mouseEntered":

Выбор события (500x400, 12 КБайт)

Теперь вам надо указать, где вы будете вызывать метод. Смело кликайте мышкой в ту же самую Надпись и снова требуйте "All Features", на этот раз список всех методов. Вам будет показано окно с заголовком "Connect event", в котором вы сможете выбрать нужный вам метод, вот так:

Выбор метода (500x400, 10 КБайт)

5. Теперь у вас есть соединение, которое указывает, что при появлении указателя мыши над надписью надо менять ее цвет. Но вы еще не указали, какой цвет вам нужен. Для того, чтобы это сделать, надо нажать правой кнопкой мыши на построенное соединение и выбрать в меню строку "Properties", вот так:

Задание свойств соединения (600x500, 19 КБайт)

В свойствах соединения можно задать новый цвет. VisualAge предложит вам выбрать цвет из палитры или смешать красный, зеленый и синий оттенки:

Выбор цвета (500x300, 8 КБайт)

6. После того, как задано первое действие, не забудьте задать второе - "восстановить цвет в случае, если указатель мыши ушел с надписи". СобытиеСобытие— то, что имеет место, происходит, наступает в произвольной точке пространства-времени; значительное происшествие, явление или иная деятельность как факт общественной или личной жизни; подмножество исходов эксперимента., которое надо отслеживать, называется "mouseExited", а метод надо вызывать тот же - "setForeground()".

Таким образом, у вас должно получиться два соединения для двух событий:

Обработка двух событий (600x500, 17 КБайт)

7. Семь шагов - и вы у цели. Можете запускать апплет. Для этого достаточно нажать на кнопку "Test" в полоске действий:

Кнопка

АпплетАпплет (англ.applet от application —- приложение и -let— уменьшительный суффикс)— это несамостоятельный компонент программного обеспечения, работающий в контексте другого, полновесного приложения, предназначенный для одной узкой задачи и не имеющий ценности в отрыве от базового приложения., содержащий надпись (400x300, 2 КБайта)

Когда вы наиграетесь с построителем, вам придет в голову мысль - а не проще ли все это сделать руками :-) Действительно, ведь достаточно написать новый класс на основе Label - например, ColoredLabel и отследить в нем два события от мышки. Весь текст набирается за полчаса«30 минут»— сингл с альбома «200 по встречной» группы «Тату», выпущенный в 2001 году. Также известен под названием «Полчаса». Авторы песни Сергей Галоян, Валерий Полиенко, Иван Шаповалов. - стоит ли огород городить...

Можно ли обойтись без построителя?

Да! Причем ни одна из возможностей VisualAge не будет при этом потеряна. Более того, при написании апплетов руками белый человекЧеловек разумный (лат.Homo sapiens) (в биологии)— вид рода Люди (Homo) из семейства гоминид в отряде приматов, единственный живущий в настоящее время. От современных человекообразных, помимо ряда анатомических особенностей, отличается значительной степенью развития материальной культуры (включая изготовление и использование орудий), способностью к членораздельной речи и абстрактному мышлению. Человек, как биологический вид— предмет исследования физической антропологии. Природа и сущность человека является предметом как философского, так и религиозного диспута. применяет разные хитрости, например:

  • Все окна и поля ввода можно создать заранее и держать их скрытыми, так что как только они потребуются, их можно будет сразу же показать. ИзображенияИзображение— объект, образ, явление, в той или иной степени подобное (но не идентичное) изображаемому или сам процесс их создания. Подобие достигается вследствие физических законов получения изображения (например, оптическое изображение) либо результатом труда создателя изображения (например, рисунок, живопись, скульптура, сценический образ). Под изображением в узком смысле, подразумевают произведение в живописи или графике. и настройки также заранее загружаются с сервера. Это занимает некоторое время, но скачивать данные по сети можно одновременно с остальными действиями - например, пока пользователь наберет свое имя и пароль.
  • Все созданные заранее надписи, кнопки и поля ввода можно разместить в отдельном классе и обращаться к нему в любом месте программы, набирая что-то вроде: "InputFieldsForMyApplet.большаяНадпись.setForeground(Color.red);" Если точно так же поступить со всеми изображениями, цветами, строками и настройками, программа становится намного проще.
  • Действия, которые надо выполнять в ответ на возникающие события, можно перенести в потоки (Threads), чтобы не останавливать очередь событий. Если даже в потоке возникнет исключение, например, доступ по нулевому указателю, апплет все равно будет работать.
  • Для того, чтобы задать расположение окон построитель на самом деле и не нужен - в Яве достаточно средств для этого. В примерах к этой статье вы найдете класс GroupBox, это "Рамка, которая может содержать несколько полей ввода (а также кнопок, надписей и так далее)". При изменении размеров апплета рамка меняет свой размер и передвигает все поля, которые расположены внутри нее, так что апплет всегда будет выглядеть одинаково, независимо от того, на какой машине он выполняется.

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

  1. Вы пишете апплет, который рисует окна и поля ввода и больше ничего не делает и проверяете то, что получилось.
  2. Затем вы добавляете к нему методы для отслеживания событий от мыши, клавиатуры, действий пользователя и так далее.
  3. После этого вы создаете потоки, которые могут потребоваться для выполнения всех действий и их отлаживаете.

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

Сетевые вычисления в Яве основаны на RMI - "Remote Method Invocation", то есть вызове методов, расположенных на других машинах. Для передачи и получения данных используются возможности сети TCP/IP, поэтому апплеты для сетевых вычислений можно использовать на любой машине, подключенной к сети ИнтернетИнтернет (произносится [интэрнэт]; англ.Internet)— всемирная система объединённых компьютерных сетей, построенная на использовании протокола IP и маршрутизации пакетов данных. Интернет образует глобальное информационное пространство, служит физической основой для Всемирной паутины и множества других систем (протоколов) передачи данных. Часто упоминается как «Всемирная сеть» и «Глобальная сеть». В обиходе иногда говорят «Инет»..

Для того, чтобы начать работать с сетевым приложением, пользователь должен вызвать на своей машине любой браузер, например, Netscape или HotJavaHotJava (позднее переименован в HotJava Browser во избежание путаницы в названиях с HotJava Views)— модульный, расширяемый веб-браузер от компании Sun Microsystems, написанный на языке Java. Это был первый браузер, который поддерживал технологию Java-апплетов; он служил для Sun демонстрационной платформой для новых (тогда) технологий. Разработка была прекращена, и в настоящее время браузер больше не поддерживается., и набрать в нем адрес сервера. После этого на машину скачивается апплет, который спрашивает его имя и пароль, например, вот так:

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

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

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

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

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

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

Соображения безопасности

Вызывать по сетке все методы нельзя, так любой посторонний«Посторонний» (фр.L'tranger; альтернативный вариант перевода названия: «Чужой»)— повесть французского писателя Альбера Камю. Написана в 1942 году. Представляет собой своеобразный творческий манифест, воплотивший в себе суть поиска абсолютной свободы. Свободы от узких моральных норм современной культуры. Повесть написана в своеобразном стиле— короткие фразы в прошедшем времени. Сухой слог автора оказал огромное влияние на большинство французских и европейских авторов второй половины XX века. человек сможет залезть на сервер. Должны быть доступны только некоторые методы, и для того, чтобы апплеты "знали", что они могут вызвать, для каждого сервера делается описание, в котором перечисляются разрешенные для вызова методы. Оно похоже на описание класса и называется интерфейсом (англ. "interface"). Таким образом сервер становится виден только частично, как будто вы смотрите на него через решето - где-то есть дырка, а где-то ее нет.

Кроме того, между сервером и апплетом есть еще несколько переходников, полезных и не очень, так что в VisualAge пришлось построить вот такую цепочку:

 

Апплет
<->
Соединитель
-->
Интерфейс сервера
  |  
  
Сеть TCP/IP
 
  |  

Переходники-"proxies"
-->
Сервер
<->
Источники данных

Отдельные ее части понятны сразу: источники данных - это, например, СУБД и текстовые файлы, сервер, интерфейс для него и апплет составляют программу, которую надо написать, что такое сеть TCP/IP я и сам не знаю :-) Осталось рассказать про остальные ее звенья.

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

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

Апплет для сетевых вычислений

Апплет, предназначенный для работы в сети, мало отличается от обычных апплетов. Он может работать в окне обозревателя или как отдельное приложение. У него есть возможность передавать данные по сети, это делается с помощью соединителей, и он умеет отображать полученные значения, для этого надо написать несколько методов.

В примерах к этой статье есть апплет, который показывает список документов и умеет проводить поиск по ключевым словам. При этом он не выполняет никаких действий с текстами, например, не скачивает тексты по сети для проведения поиска - все действия выполняются на сервере. Так, если пользователь хочет просмотреть документ, сервер находит его и сообщает апплету его расположение (URL), используя которое документ можно открыть в обозревателе.

Апплет разрабатывался в OS/2 и на работу в Windows рассчитан не был. Те не менее он там работает и никаких глюков замечено не было.

Сервер, к которому он обращается

Обработка команд на сервере напоминает обработку событий в апплетах и сообщений в Presentation Manager. Обработка команд для работы с текстовыми документами выглядит примерно так:

public Storage выполнитьЗапрос( String команда, Storage списокЗначений )
{
// Обрабатываем команды.
if( команда.indexOf( "открыть" ) != -1 ) return открыть( списокЗначений );
if( команда.indexOf( "найти" ) != -1 ) return найти( списокЗначений );
return null;
}

Здесь сервер разбирает приходящие команды и выполняет какие-то действия. После того, как команда выполняется, он возвращает значение в ответ. Если получена неизвестная команда, возвращается пустое значение (null).

Примеры!

Все исходные тексты содержатся в одном файле, который может быть прочтен в VisualAge. Они были подготовлены в VA for Java 1.0 PE для OS/2. Забрать их можно .

Чтобы перенести их в среду VisualAge, надо выполнить следующие действия:

  1. Выбрать в окне рабочего пространства в меню "File"сстроку "Import" и указать файл Serg.dat в качестве источника. Исходные тексты будут добавлены в среду VisualAge, но в окне рабочего пространства вы их увидите не сразу.
  2. Для того, чтобы перенести исходники в рабочее пространство, надо нажать в полоске действий на кнопку "Создать новую папку", и в появившемся окне указать, что вам нужны следующие тексты:
ContainersСлужебные классы для хранения данных
InternetAccessВсе что требуется для работы в сети
LibraryПример апплета для сетевых вычислений
OS2Часто используемые методы для работы в OS/2 и не только
WindowControlsВсевозможные заставки, рамки и прочее

Для того, чтобы апплет работал правильно не забудьте положить в каталог "Ibmvjava\Ide\Project_resources" изображения и тексты, которые он должен читать. Они содержатся вместе с исходниками в каталоге "Resources".

Рано или поздно у вас появится желание сохранить ваш собственный апплет на диске в виде файлов "*.java" . Вы найдете в каталоге "Export" очень полезный скрипт на Rexx, который можно использовать для этого.

Все вопросы присылайте по e-mail, постараюсь на них ответить :-) Успехов!

 

Мы рекомендуем еще посмотреть:

  От Питера до Москвы…
29 марта 2006 г.   Версия для вывода на принтер

   КомпанияКомпания: (фр.compagnie — 1) общество, группа; 2) фирма, рота, экипаж корабля, театральная труппа) s-networks приглашает технических специалистов своих партнеров на однодневный семинар, посвященный новой линейке продуктов в области корпоративных коммуникаций Cisco Unified Communications.

Семинар состоится в Москве 24 марта и в Санкт-Петербурге 29 марта.

    На семинаре, посвященном новым продуктам и решениям компании Cisco Systems, будут рассмотрены составные компоненты новой линейки продуктов Cisco Unified Communications, сфера их применения и характерная функциональность.
Особое вниманиеВнимание— избирательная направленность восприятия на тот или иной объект. будет уделено новой версии популярнейшего продукта - Cisco Unified CallManager 5.0.

    В семинарСеминар (лат.seminarium — буквально:"рассадник", "теплица") — форма учебно-практических занятий, при которой учащиеся (студенты, стажёры) обсуждают сообщения, доклады и рефераты, выполненные ими по результатам учебных или научных исследований под руководством преподавателя. Преподаватель в этом случае является координатором обсуждений темы семинара, подготовка к которому является обязательной. Поэтому тема семинара и основные источники обсуждения предъявляются до обсуждения для детального ознакомления, изучения. Цели обсуждений направлены на формирование навыков профессиональной полемики и закрепление обсуждаемого материала. Семинары — эффективная форма подготовки инженерных и научно-педагогических кадров в вузах.е примут участие представители компанииЮридическое лицо— созданная и зарегистрированная в установленном законом порядке организация, которая имеет в собственности, хозяйственном ведении или оперативном управлении обособленное имущество и отвечает по своим обязательствам этим имуществом, может от своего имени приобретать и осуществлять имущественные и личные неимущественные права, нести обязанности, быть истцом и ответчиком в суде. Юридические лица должны иметь самостоятельный баланс или смету. Cisco Systems, которые расскажут о новых возможностях для бизнеса, предлагаемых анонсируемой линейкой продуктов.
Специалистами компании s-networks будут рассмотрены технические аспекты нового оборудования.

Семинар предназначен для реселлеров, системных интеграторов и авторизованных партнеров компании Cisco Systems.

Участие в семинарах бесплатное.

Семинар состоится :
24 марта 2006г. в Москве
в конференц-зале математического института им. В.А.Стеклова Адрес: ул Губкина, д.8 (Схема проезда)

Программа партнерского семинара по новым технологиям Cisco Systems в Москве 24 марта 2006г.
     9:30–10:00 Регистрация
10:00–10:10 Открытие семинара.
10:10–11:40 «Новые бизнес- возможности при использовании современных решений Cisco»
Павел Теплов, Cisco Systems
11:40–11:50 Ответы на вопросы.
11:50–12:05 Перерыв. Кофе-брэйк.
12:05–15:00 «Технические аспекты нового оборудования в области корпоративных коммуникаций Cisco Unified Communications.»
К.Грибах, s-networks

29 марта 2006 г. в Санкт-ПетербургСанкт-Петербург— город федерального значения Российской Федерации, административный центр Северо-Западного федерального округа, место нахождения высших органов власти России и Ленинградской области. В XVIII—XX веках— столица Российской империи. Город-герой.е
в конференц-зале "Павлова" отеля Англетер (г. Санкт-Петербург).

Адрес гостиницы Англетер: г. Санкт-Петербург, ул. Б. Морская, 39.
Ближайшие станции метро: Невский Проспект, Садовая.

Программа партнерского семинара по новым технологиям Cisco Systems в
Санкт-Петербурге 29 марта 2006г.
     8:30–09:00 Регистрация
09:00–09:10 Открытие семинара.
09:10–10:40 «Новые бизнес- возможности при использовании современных решений Cisco»
Павел Теплов, Cisco Systems
10:40–10:50 Ответы на вопросы.
10:50–11:05 ПерерывПерерыв (укр. Перерив) — село в Коломыйском районе Ивано-Франковской области Украины.. Кофе-брэйк.
11:05–14:00 «Технические аспекты нового оборудования в области корпоративных коммуникаций Cisco Unified Communications.»
К.Грибах, s-networks


Документы по теме   / Cisco Systems /  


2009 IT и оборудование для бизнеса, S-NETWORKS. Информационные технологии и Информационное оборудование