Java: архитектура и интерфейсы
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.