Java99: Архитектура и интерфейсы
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">Java:
архитектура и интерфейсы
Многим наверняка уже известно, что язык Java был разработан фирмой
Sun, как платформенно-независимый, переносимый, объектно-ориентированный
язык для Internet и Intranet. Я не вижу особого смысла перечислять
преимущества языка, его отличия от C++ - это уже описано в десятках книг и
сотнях публикаций, как за рубежом, так и в нашей стране. Здесь мы
остановимся на том, что представляет собой платформа Java сегодня, из каких
компонентов она состоит и какие средства, доступны для разработчиков. Таким
образом, по завершении данного цикла вы должны будете получить достаточно
четкое представление о том, что предлагает фирма Sun, какими средствами
разработки можно пользоваться, какие существуют компоненты и средства для
их создания и как с помощью Java можно создавать корпоративные решения.
Технология Java
Технология Java обеспечивает разработчиков основой для создания решений,
при разработке которых не нужно задумываться об операционной системе и
аппаратной платформе, на которых эти решения будут функционировать. Часто
используемое выражение "Написано однажды – работает везде" лучшим образом
характеризует основное назначение этой технологии. Независимость от
платформы достигается за счет того, что уникальные характеристики каждой из
поддерживаемых Java 2 платформ, реализованы в виде оболочки, называемой
Java Runtime Environment (JRE). Во время создания приложения разработчик
пишет код на языке Java так, как если бы в мире была бы всего одна
программно/аппаратная платформа. Компилятор языка Java преобразует код в
последовательность байт-кодов, которая будет выполняться на одной из
платформ в рамках JRE.
Java Runtime Environment содержит специальные средства проверки кода,
обеспечивающие надежность и защищенность программ, загрузчик классов,
который динамически загружает классы в процессе выполнения и виртуальную
машину Java (Java VM), которая выполняет последовательность байт-кодов,
взаимодействую с конкретной операционной системой. Такой подходт
освобождает разработчика от необходимости обращать внимания на специфику
какой-то конкретной операционной системы и позволяет внедрять Java-
приложения на более чем одной платформе. Компоненты JavaRuntime Environment
показаны на следующей диаграмме.
[pic]
То, что язык Java за короткое время стал одним из самых популярных
коммерческих объектно-ориентированных языков программирования, помогает
распространению технологии Java и подтверждается тем, что в настоящее время
этот язык использует около 1 млн. разработчиков (80% из них создает кросс-
платформенные приложения), продукты для Java выпускают сотни фирм, а число
копий JDK, загруженных с сайта фирмы Sun, превысило 2.5 млн.
Платформа Java 2
Платформа Java 2 (Java Development Kit 1.2), объявленная фирмой Sun в
декабре 1998 года, представляет собой физическую реализацию технологии
Java. Собственно говоря, она заключена в небольшом по объему файле и
состоит из следующих основных компонентов:
. Средства разработки на Java – редактор, компилятор, отладчик и средство
для документации Java API
. Богатый набор Java-библиотек и базовых классов (foundation classes),
которые используются для создания графических интерфейсов, доступа к
базам данных, реализации сетевых функций, разработки приложений,
работающих с несколькими языками и т.п.
. Java 2 Runtime Environment – средство для динамической загрузки Java-
классов, их проверки и выполнения Java-байт-кода.
Архитектура платформы Java 2 показана на следующей диаграмме.
[pic]
Изначально, Sun выпустила Java 2 Runtime Environment для следующих
платформ: Solaris, Windows NT Server 4.0 и Windows 95/98. В ближайшие
месяцы поставщики других платформ выпустят соответствующие JRE. Таким
образом, Java 2 будет реализована на следующих платформах:
|AIX |Digital UNIX |HP-UX |
|IRIX |Linux |Mac OS |
|NetWare |OpenServer |OpenVMS |
|OS/2 |OS/390 |RISC-OS |
|Solaris |Windows 95 |Windows 98 |
|Windows NT |Windows NT-Alpha |UnixWare |
| |(DEC) | |
Java 2 в деталях
Давайте рассмотрим состав Java 2 более подробно. Я выделил три
основных компонента - средства разработки на Java, набор Java-библиотек и
базовых классов и Java 2 Runtime Environment.
Средства разработки на Java
В состав JDK 1.2 входит большое число утилит, которые можно
подразделить на несколько категорий:
. Базовые утилиты
. RMI-утилиты
. Средства для локализации приложений
. Средства для защиты приложений
. IDL-утилиты
Базовые утилиты
Утилиты, относящиеся к этой категории, служат основой Java Development
Kit. Они используются для компиляции и отладки создаваемых Java-приложений.
К базовым утилитам относятся:
|javac |Компилятор языка Java |
|java |Загрузчик Java-приложений. Используется и в стадии |
| |разработки, и в стадии внедрения приложений |
|javadoc |Генератор документации для API |
|appletviewer |Утилита для запуска и отладки приложений без |
| |использования web-браузера |
|jar |Утилита для управления Java Archive (JAR)-файлами |
|jdb |Отладчик Java-приложений. |
|javah |Генератор заголовочных файлов и заголушек для языка C |
|javap |Дизассемблер Java-классов |
|extcheck |Утилита для обнаружения конфликов между JAR-файлами |
RMI-утилиты
Утилиты, относящиеся к этой категории, используются для создания
приложений, взаимодействующих между собой по Internet или другим типам
сетей. К таким утилитам относятся:
|rmic |Утилита для генерации заглушек и скелетов для удаленных |
| |объектов |
|rmiregistry |Утилита для регистрации удаленных объектов |
|rmid |Средство системной активации RMI |
|serialver |Возвращает serialVersionUID.для данного класса |
Средства для локализации приложений
К средствам для локализации приложений относится утилита native2ascii,
выполняющая преобразование текста в Unicode Latin-1.
Средства для защиты приложений
Утилиты, относящиеся к этой категории, используются для задания
уровней защиты и создания приложений, который работают на удаленных узлах.
К таким утилитам относятся:
|keytool |Средство для управления сертификатами |
|jarsigner |Утилита для генерации и проверки цифровых подписей в |
| |JAR-файлах |
|policytool |Графическое средство для управления файлами доступа |
IDL-утилиты
Утилиты, относящиеся к этой категории, используются при создании
приложений, использующих CORBA для доступа к базам данных. К таким утилитам