будет осуществляться через сервер 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;
7 }
8 Point () {
9 this (0.0, 0.0);
10 }
11 public void setX (double x) {
12 this.x = x;
13 }
14 public void setY (double y) {
15 this.y = y;
16 }
. . .
17 }
В языке Java нельзя отрывать определение метода (функции) от
описания заголовка. Синтаксическая конструкция class полностью
включает в себя всю информацию о классе. В частности, реализа-
ции методов обязаны содержаться внутри этой конструкции.
Для обозначения наследования используется ключевое слово
extends (строка 1). Класс Object - это корень дерева наследова-
ния. В Java не бывает классов-"сирот": у всех классов, кроме
Object, есть предшественник. Подробнее наследование и предопре-
деленные классы будут рассмотрены далее.
Режимы доступа к элементам класса (private, protected, public)
те же, что и в C++, за одним важным исключением. Если режим
доступа опущен, предполагается, что соответствующий элемент
доступен в пределах пакета (см. далее).
В строке 9 приведен пример явного вызова одного конструктора из
другого.
Прочие приведенные выше строки не нуждаются в пояснениях кроме
Читать дальше