Java как центр архипелага - [3]

Шрифт
Интервал

динамизм и безопасность - спутники интерпретатора, а не  компи-

лятора.

Принятые  решения сделали Java-среду идеальным средством разра-

ботки клиентских компонентов Web-систем. Особо отметим прозрач-

ную для пользователя динамическую загрузку об®ектов по сети. Из

этого вытекает такое важнейшее достоинство, как  нулевая  стои-

мость  администрирования клиентских систем, написанных на Java.

Достаточно обновить версию об®екта на сервере, после чего  кли-

ент  автоматически  получит именно ее, а не старый вариант. Без

этого реальная работа с развитой сетевой инфраструктурой  прак-

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

загрузки  действительно  возможно  появление  устройств  класса

Java-терминалов,  изначально содержащих только WWW-навигатор, а

все остальное (и программы, и данные) получающих по сети.

Здесь уместно отметить замечательную точность в выборе основных

посылок проекта Java. Из минимума предположений вытекает макси-

мум новых возможностей при сохранении практичности реализации.

В то же время, интеграция с WWW-навигатором и  интерпретируемая

природа  Java-среды ставят вполне определенные рамки для реаль-

ного использования Java-программ (хотя, конечно же,  язык  Java

не  менее  универсален,  чем, скажем, C++). Например, известно,

что интерпретация, по сравнению с прямым выполнением,  примерно

на  полтора  порядка медленнее. Трудно сказать, насколько могут

улучшить положение компиляция "на лету" и использование специа-

лизированных Java-процессоров, но пока  использование  Java  на

серверной стороне представляется проблематичным.

Далее,  хотя  технология  Интранет, основанная на использовании

Web-сервиса в качестве информационной основы организации, явля-

ется огромным шагом вперед, существуют и  другие  сервисы,  как

унаследованные, так и современные (например, реляционные СУБД),

которые  обязательно должны входить в состав корпоративной сис-

темы. Если вся связь между клиентами  и  упомянутыми  серверами

будет  осуществляться  через сервер WWW, последний станет узким

местом, а решения Интранет рискуют лишиться  такого  важнейшего

достоинства,  как  масштабируемость.  Значит, необходима прямая

связь между клиентскими системами, написанными на языке Java, и

произвольными сервисами (рис. 6).

Рис. 6. Прямая связь между Java-клиентами и корпоративными сер-

верами.

Как реализовать такую связь?

В общем виде ответ очевиден - нужны  средства  для  полноценной

интеграции  Java в распределенную об®ектную среду. На серверной

стороне компания Sun Microsystems имеет соответствующую  техно-

логию  -  NEO  (NEtworked Objects, сетевые об®екты). Технология

NEO удовлетворяет спецификациям COъBA  (Common  Object  ъequest

Broker  Architecture),  являющимся промышленным стандартом. При

реализации корпоративных информационных систем с использованием

NEO наиболее естественным представляется  использование  треху-

ровневой  архитектуры  с  серверами приложений, построенными на

об®ектных принципах, на втором уровне и с базовыми и  унаследо-

ванными серверами на третьем уровне (рис. 7).

Рис.  7. Трехуровневая архитектура корпоративной информационной

системы.

К сожелению, столь общий ответ никак не  помогает  осуществлять

прямую связь между Java-клиентом и NEO-сервером. Конечно, можно

воспользоваться  стандартными средствами программирования в се-

тевой среде (а Java допускает использование библиотек, написан-

ных на C/C++, равно как и вставку машинных кодов), но если  это

было  бы  единственной возможностью, Java рисковала остаться на

уровне "оживлялок" для MS-Windows. В конце марта 1996 года ком-

пания SunSoft об®явила о появлении  нового  продукта  с  именем

Joe,  как  раз  и предназначенного для существенного облегчения

встраивания Java-клиентов в  информационные  системы  Интранет,

построенные  в трехуровневой архитектуре с использованием среды

NEO (рис. 8).

Рис. 8. Распределение ролей между Java, Joe и NEO.

Таким образом, сложилась полная и изумительно красивая  картина

организации  современных  Интранет-систем.  В  данной статье мы

уделим основное внимание технологии Java.  Далее  будет  кратко

рассмотрены возможности, предоставляемые системой Joe.


        4. Java - язык и технология

        * 4.1. Язык Java

При описании языка Java будет предполагаться, что читатель, хо-

тя бы в общих чертах, знаком с языком C++.

          4.1.1. Об®ектная модель языка Java

Когда  говорят об об®ектно-ориентированном языке программирова-

ния, предполагают поддержку трех механизмов:

- инкапсуляция

- наследование

- полиморфизм.

Инкапсуляция и наследование в языке Java реализуются с  помощью

понятия класса.

            4.1.1.1. Классы

Понятие класса в языках Java и C++ очень близки. Класс является

шаблоном для создания об®ектов; он может содержать данные и ме-

тоды.  Приведем  пример  класса, описывающего точки в двумерном

пространстве (здесь и далее номера строк используются для  пос-

ледующих пояснений и не являются частью Java-программ).

1     class Point extends Object {

2       private double x;

3       private double y;

4       Point (double x, double y) {

5         this.x = x;

6         this.y = y;


Рекомендуем почитать
Pro Git

Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.


Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.


MFC и OpenGL

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


Симуляция частичной специализации

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


Обработка событий в С++

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


Питон — модули, пакеты, классы, экземпляры

Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.