Java99: Архитектура и интерфейсы (Java99-1)

Посмотреть архив целиком

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 показаны на следующей диаграмме.


То, что язык 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 показана на следующей диаграмме.

Изначально, 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 (DEC)

UnixWare

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 для доступа к базам данных. К таким утилитам относятся:
 

tnameserv

Обеспечивает доступ к сервисам имен (naming service)

Idltojava

Создает java-файлы для интерфейсов OMG IDL и позволяет приложениям, написанным на языке Java, использовать функциональность CORBA 

Набор Java-библиотек и базовых классов

Ядром Java 2 является библиотека классов Java Foundation Classes (JFC) версии 1.1, предназначенная для создания графических интерфейсов Java-приложений. В ее состав входят собственно библиотека JFC версии 1.1 (которая была доступна для JDK 1.1 с февраля прошлого года) и следующие интерфейсы:

  • Abstract Windowing Toolkit (AWT)

  • Swing

  • Java 2D

  • Drag and Drop

  • Accessibility

Архитектура Java Foundation Classes показана на следующей диаграмме.

Abstract Windowing Toolkit позволяет создавать программы с графическими интерфейсами, независящими от конкретной платформы. Более того, программный интерфейс AWT намного проще и понятнее программных интерфейсов Windows, Motif или OS/2. В JDK 1.2 было добавлено много новых классов и интерфейсов, включая поддержку функций рисования, вывода на принтер, обработки изображений и поддержки Drag and Drop и Java 2D.

 Многие из этих новых компонентов можно найти в галерее по адресу: http://java.sun.com/products/jfc/swingdoc-current/comp_gal.html. Также, можно посмотреть программу SwingSet, чтобы увидеть компоненты Swing в действии.

Компоненты Swing являются 100% Java-компонентами. Это означает, что они не зависят от конкретных реализаций интерфейсных элементов на той или иной платформе. Это также означает, что эти компоненты доступны на всех платформах, где есть поддержка Java 2. Компоненты Swing реализованы как расширение AWT, но не используют компонентов AWT. На самом деле, многие традиционные компоненты AWT – кнопки, списки, диалоговые панели, были переделаны в компоненты Swing Благодаря этому, компоненты AWT стали более доступными на различных платформах и теперь предоставляют дополнительные возможности, отсутствующие в некоторых графических средах. На следующей диаграмме показано взаимодействие Swing и AWT.

Одно из наиболее интересных свойств библиотеки Swing – это возможность изменения внешнего вида компонентов и интерфейсов - Pluggable Look and Feel (PL&F). Архитектура PL&F позволяет настраивать внешний вид и поведение как одного компонента, так и группы компонентов. Также в состав Swing входит ряд предопределенных настроек - Metal L&F, Motif L&F, Windows L&F. Существуют настройки по умолчанию для Macintosh и других платформ.


Случайные файлы

Файл
38990.rtf
161368.rtf
22850-1.rtf
65311.rtf
111846.doc




Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.