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;
Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.
Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.