Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


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.для данного класса

IDL-утилиты

Утилиты, относящиеся к этой категории, используются при создании приложений, использующих CORBA для доступа к базам данных. К таким утилитам относятся:

 

tnameserv Обеспечивает доступ к сервисам имен (naming service)
Idltojava Создает java-файлы для интерфейсов OMG IDL и позволяет приложениям, написанным на языке Java, использовать функциональность CORBA

Drag and Drop

В Java 2 введена поддержка операций Drag and Drop, с помощью которых можно перетаскивать различные объекты. Интерфейс Drag and Drop в JDK 1.2 обеспечивает платформенно-независимую поддержку этих операций для Java-приложений, причем можно осуществлять перетаскивание объектов как между Java-программамиЮ так и между Java-программами и программами, " родными" для конкретной платформы. Интерфейс Drag and Drop реализован в пакете java.awt.dnd и поддерживается классами и интерфейсами других пакетов JFC.

Accessibility

Для пользователей с различными физическими недостатками в JDK 1.2 введен ряд интерфейсов, облегчающих создание сотоветствующих программных средств. Интерфейс Accessibility в JDK 1.2 реализован в пакете java.awt.accessibility.

Апплеты

При обзоре платформы Java нельзя не упомянуть апплеты – мини-приложения, загружаемые из сети и выполняемые в Web-браузере. Так как аплеты загружаются из сети, они обычно содержат " непроверенный" код, что накладывает опрделенные требования к проверке их надежности. Апплеты сыграли большую роль в популяризации платформы Java и практически не изменились со времен Java 1.0. В Java 2 появился Swing-класс JApplet и новая, более гибкая модель защиты.

Базовый класс Applet и Swing-класс JApplet являются GUI-контейнерами, которые могут содержать другие GUI-компоненты и контейнеры. Но не эти свойства определяют основные характеристики апплетов. Наиболее важными здесь являются возможность работы в сети, динамическая загрузка и выполнение и развитые средства защиты.

JavaBeans

Компоненты JavaBeans. впервые появились в Java 1.1. В Java 2 реализованы некоторые расширения компонентной модели JavaBeans. Компонент JavaBeans – это Java-объект, интерфейс которого поддерживает некоторые соглашения. Так, компонентами можно управлять из средств разработки, из скриптовых языков и т.п. В некоторых случаях целые приложения могут быть динамически собраны из группы независимых, но взаимодействующих друг с другом компонентов. Компоненты JavaBeans часто, но необязательно, являются GUI-компонентами. Все GUI-компоненты платформы Java следуют соглашениям компонентов JavaBeans и могут использоваться в контексте JavaBeans. Такими компонентами могут быть и простая кнопка, и сложный полнофункциональный текстовый процессор.

В Java 2 появилось понятие контекста компонента, - контейнера, который может содержать в себе компоненты и другие контейнеры. Такой контейнер может обеспечивать набор сервисов, например, возможность работы с устройством печати, для всех вложенных компонентов. Фактически, контекст контейнера является расширением модели апплетов – в платформе Java 2 реализована поддержка создания объектов, которые могут выступать и как компоненты, и как апплеты.

Java Media Framework

Java Media Framework (JMF) – это стандартное расширение платформы Java 2. JMF задает библиотеку классов для работы со звуком и видео. В дополнение к возможностям воспроизведения аудиоданных и отображения видеоданных, закодированных в различных форматах, JMF включает средства для обработки, контроля и синхронизации потоков мультимедийных данных. Java Media Framework может работать как с файлами, хранимыми на локальных дисках, так и упакованными потоковыми данными, передаваемыми в реальном времени по сети.

Java Media Framework реализовано полностью на языке Java и может работать на любой платформе, поддерживающей язык Java. В дополнение к этому, существуют платформенно-зависимые расширения в коде для той или иной платформы, с помощью которых можно существенно повысить производительность создаваемых приложений и обеспечить поддержку специфичных для данной платформы форматов данных.

В следующих версиях JMF будут реализованы средства записи мультимедийных данных и поддержки конференций.

Поддержка звука

В первых двух версиях Java (1.0 и 1.1) были лишь рудиментарные функции для поддержки звука – можно было воспроизводить только звук, закодированный в формате AU фирмы Sun. Соответствующие интерфейсы были доступны только для апплетов. Платформа Java 2 содержит новое ядро для воспроизведения звуковых файлов в наиболее популярных форматах, а программные интерфейсы могут использоваться в любом Java-коде, не только в апплетах, как это было раньше.

Для поддержки звука в состав Java 2 включен интерфейс Java Sound, обеспечивающий полный контроль над аудиоданными.

Доступ к базам данных

Интерфейс Java Database Connectivity (JDBC) позволяет Java-программам посылать SQL-запросы и обновлять данные на серверах баз данных, а также обрабатывать полученные с сервера результаты. JDBC также позволяет получать метаинформацию о базе данных и ее таблицах с сервера баз данных. Архитектура JDBC основывается на классе Driver, который " скрывает" все детали общения с конкретным сервером баз данных. Каждый конкретный сервер требует наличия соответствующего класса Driver, с которым взаимодействуют Java-программы. Большинство производителей баз данных поставляют JDBC-драйверы со своими продуктами. Помимо этого, существуют специальные драйверы для взаимодействия с базами через соответствующие ODBC-драйверы. На следующей диаграмме показаны два возможных варианта создания JDBC-приложений - с использованием только JDBC-драйверов и с использованием JDBC/ODBC-драйверов.

Интерфейс JDBC реализован в пакете java.sql, который впервые появился в Java 1.1. В платформе Java 2 появился ряд новых классов, реализующих дополнительную функциональность. Также в Java 2 включен пакет javax.sql, позволяющий, например, рассматривать результаты запроса к базам данных как JavaBeans, выполнять пулинг связей с базами и получать информацию о связях с базами через сервисы имен.

Интерфейс JDBC является простым и хорошо продуманным. Программисты, знакомые с SQL и основами программного взаимодействия с базами данных, смогут легко воспользоваться функциями JDBC в Java-программах.

Сервисы имен и каталогов

Интерфейсы Java Naming and Directory Interface (JNDI) представляют собой независимые от протоколов интерфейсы к сетевым сервисам имен и каталогов. Эти интерфейсы реализованы в пакете javax.jndi, который является стандартным расширением платформы Java 2.

Интерфейсы JNDI не являются специфичными для каких-то протоколов поддержки сервисов имен и каталогов. Вместо этого они представляют собой базовые интерфейсы, способные работатть с любыми серверами. Для поддержки какого-то конкретного протокола требуется наличие специального провайдера. Для большинства провайдеров таких сервисов - LDAP, DNS или NIS реализованы соответствующие программные средства.

Электронная почта

Интерфейс JavaMail представляет собой независящий от протоколов интерфейс к сервисам электронной почты. Он поддерживает возможность отсылки и получения электронной почты, а также такие функции, как поиск. Интерфейс JavaMail реализован в пакете javax.mail и подпакетах и является стандартным расширением платформы Java 2.

Как и JNDI, JavaMail не связан с каким-то конкретным протоколом для получения и отсылки электронной почты. JavaMail – это набор базовых функций, способных работать с любым протоколом. Реализация конкретного протокола – SMTP, IMAP или POP3 – требует наличия соответствующего провайдера, который входит в комплект поставки.

Enterprise JavaBeans

Enterprise JavaBeans – это серверный аналог JavaBeans. Enterprise JavaBeans (EJB) представляет собой компонентную модель для реализации бизнес логики и бизнес данных. Программная модель с " тонким" клиентом предполагает вынос бизнес-логики с клиентской части на сервер или промежуточный уровень (middle tier) и позволяет создавать более гибкие корпоративные приложения. Но при этом, реализация бизнес логики связана с необходимостью поддержки кода, который бы обрабатывал транзакции, взаимодействовал бы с сетью и обеспечивал бы средства защиты информации.

Модель EJB отделяет бизнес-логику от низкоуровневых функций, позволяя разработчикам не заботиться о том, как в том или ином случае будут реализованы стандартные функции, например, для передачи данных или обработки транзакций.

Пакеты javax.ejb и javax.ejb.deployment являются стандартными расширениями платформы Java 2 и содержат классы, необходимые для создания и внедрения EJB. Архитектура EJB также взаимодействует с интерфейсами JNDI и другим стандартным расширением - Java Transaction Services ( JTS).

Сервлеты

Сервлет этоJava-код, выполняемый на сервере, и обеспечивающий какие-то сервисы для клиента. Название " сервлет" схоже с названием " апплет" – сервлет является серверным апплетом. Интерфейс Java Servlet предоставляет базовый механизм для расширения функциональности любого сервлета, использующего запросы и ответы на базе любого протокола.

В настоящее время сервлеты используются, в основном на Web-серверах. Таким образом сервлеты можно назвать Java-аналогом CGI-программ. Сервлеты вполне конкурентно-спрособны с такими технологиями, как Active Server Pages фирмы Microsoft или Cold Fusion фирмы Allaire. Преимуществом использования сервлетов является то, что они являются независимыми от платформы и сохраняются в памяти после загрузки (в отличие от CGI-программ). Помимо этого сервлеты имеют полный доступ к платформе Java и могут выполнять такие функции, как связь с базами данных.

Сервлеты являются стандартным расширением платформы Java 2 и реализованы в пакетах javax.servlet и javax.servlet.http. Пакет javax.servlet задает классы для обработки клиентских запросов и серверных ответов. Пакет javax.servlet.http обеспечивает поддержку протокола HTTP, включая обработку запросов от нескольких клиентов в рамках одной клиентской сессии.

Это еще не все

Как мы увидели выше, платформа Java 2 предоставляет в распоряжение разработчиков большой набор разнообразных программных интерфейсов, с помощью которых возможно реализовать практически любые приложения. Помимо этого, фирма Sun работает над различными расширениями и дополнениями к платформе Java 2, которые со временем могут стать стандартными расширениями этой платформы. В следующей таблице перечислены наиболее важные расширения, работа над которыми еще ведется.

 

Интерфейс Описание
Advanced Imaging API Обеспечивает высокопроизводительные средства для обработки изображений, включая поддержку работы с изображениями большого размера, фрагментарно хранимыми на дисках
Java Speech Обеспечивает поддержку синтеза речи и распознавание голоса.
Java Telephony Представляет собой интерфейс для создания компьютерных приложений для работы с телефонией.
Project X Кодовое название расширений для поддержки языка XML
Java Communications API Позволяет Java-приложениям использовать последовательные и параллельные порты компьютера
Jini Набор пакетов для обеспечения сетевых функций " plug-and-play" для компьютеров, периферийных устройств и различных электронных приспособлений
Java Message Service Представляет собой интерфейс для асинхронного обмена сообщениями.
Java Transaction Service/Java Transaction API Эти программные интерфейсы задают средства управления транзакциями и их обработки. Реализуют стандарты X/Open XA и OMG OTS для управления транзакциями
Java Electronic Commerce Framework Представляет собой набор классов для создания приложений электронной коммерции, используя метафору " бумажника" на клиентском компьютере
Java Management API Задает набор интерфейсов для централизованного управления динамическими распределенными Java-приложениями и средами

Приложение

Интерфейсы Java 2 API  

Пакет Описание
java.applet Содержит классы, необходимые для создания апплетов и классы, которыми пользуются апплеты для взаимодействия с контекстом
java.awt Содержит все классы для создания пользовательских интерфейсов, отрисовки графики и изобржений
java.awt.color Содержит классы для уветовых схем
java.awt. datatransfer Предоставляет интерфейсы и классы для передачи данных между приложениями или внутри одного приложения
java.awt.dnd Обеспечивает интерфейсы и классы для поддержки операций Drag-and-Drop
java.awt.event Содержит интерфейсы и классы для обработки различных событий, возникающих в AWT-компонентах
java.awt.font Содержит классы и шрифты для работы со шрифтами
java.awt.geom Предоставляет класы Java 2D для выполнения операций над объектами, реализующими 2-мерную геометрию
java.awt.im Содержит классы и интерфейсы для реализации ввода (input method framework)
java.awt.image Реализует классы для создания и модификации графических изображений
java.awt.image. renderable Содержит классы и интерфейсы для обработки графических изображений
java.awt.print Предоставляет классы и интерфейсы для поддержки работы с принтером
java.beans Содержит классы, относящиеся к разработке Java Beans
java.beans. beancontext Реализует классы и интерфейсы для реализации контекста Java Beans
java.io Содержит средства для работы с вводом и выводом через потоки данных, сериализацию и файловую систему
java.lang Обеспечивает классы, реализующие основу языка Java
java.lang.ref Содержит ссылочные классы, поддерживающие связь со сборщиком " мусора"
java.lang. reflect Содержит классы и интерфейсы для получения информации о классах и объектах
java.math Обеспечивает классы для выполнения арифметических действий
java.net Содержит классы для выполнения сетевых функций
java.rmi Представляет собой RMI-методы
java.rmi. activation Обеспечивает поддержку RMI Object Activation.
java.rmi.dgc Содержит классы и интерфейсы для распределенной сборки " мусора" на основе RMI - Distributed Garbage-Collection (DGC).
java.rmi. registry Содержит класс и два интерфейса для регистрации RMI
java.rmi.server Содержит классы и интерфейсы для поддержки серверных RMI.
java.security Содержит классы и интерфейсы для защиты (security framework)
java.security. acl Реализует классы и интерфейсы, которые в Java 2 реализованы в пакете java.security
java.security. cert Обеспечивает классы и интерфейсы для обработки сертификатов
java.security. interfaces Содержит интерфейсы для генерации RSA-ключей и DSA-ключей в соответствии со стандартами
java.security. spec Обеспечивает интерфейсы для различных спецификаций защиты
java.sql Интерфейс к JDBC
java.text Предоставляет классы и интерфейсы для обработки текста, дат, чисел и сообщений, независимо от языка
java.util Содержит интерфейсы для работы с коллекциями (collections framework), событийную модель, функции для даты и времени, функции локализации и различные дополнительные классы
java.util.jar Обеспечивает классы для чтения и записи файлов в формате JAR (Java ARchive), который основывается на стандарте ZIP с необязательными дополнениями
java.util.zip Содержит классы для чтения и записи файлов в формате ZIP и GZIP
javax. accessibility Реализует функции Accessibility
javax.swing Предоставляет набор легковесных компонентов для реализации пользовательских интерфейсов
javax.swing. border Содержит классы и интерфейсы для отрисовки специальных рамок вокруг компонентов Swing.
javax.swing. colorchooser Содержит классы и интерфейсы, используемые компонентом JColorChooser
javax.swing. event Используется для поддержки событий в компонентах Swing
javax.swing. filechooser Содержит классы и интерфейсы, используемые компонентом JFileChooser
javax.swing. plaf Содержит один интерфейс и несколько абстрактных классов, используемых Swing для реализации переключаемых настроек (pluggable look-and-feel)
javax.swing. plaf.basic Содержит интерфейсные объекты для базовой настройки (Basic look-and-feel)
javax.swing. plaf.metal Содержит интерфейсные объекты для настройки ``metal''
javax.swing. plaf.multi Позволяет объединять различные интерфейсные настройки
javax.swing. table Содержит классы и интерфейсы, используемые java.awt.swing.JTable
javax.swing. text Обеспечивает классы и интерфейсы для редактируемых и нередактируемых текстовых компонентов
javax.swing. text.html Содержит класс HTMLEditorKit и подклассы для создания HTML-редакторов
javax.swing.text.html.parser Содержит парсер языка HTML
javax.swing.text.rtf Содержит класс RTFEditorKit для создания RTF-редакторов
javax.swing.tree Содержит классы и интерфейсы для java.awt.swing.JTree
javax.swing.undo Обеспечивает поддержку отмены/повтора операций в приложениях.
org.omg.CORBA Реализует интерфейсы OMG CORBA на языке Java, включая класс ORB, который может использоваться как полнофункциональный брокер - Object Request Broker (ORB).
org.omg.CORBA. DynAnyPackage Поддерживает исключительные ситуации, используемые интерфейсом DynAny (InvalidValue, Invalid, InvalidSeq, и TypeMismatch).
org.omg.CORBA. ORBPackage Поддерживает исключение InvalidName для метода ORB.resolve_initial_references и исключение InconsistentTypeCode,.
org.omg.CORBA. portable Обеспечивает уровень переносимости – набор интерфейсов ORB, которые делают возможным выполнение кода для одного брокера под управлением другого
org.omg.CORBA. TypeCodePackage Поддерживает исключения BadKind и Bounds
org.omg. CosNaming Реализует сервисы имен для Java IDL.
org.omg.CosNamongContextPackage Поддерживает исключения для пакета org.omg.CosNaming (AlreadyBound, CannotProceed, InvalidName, NotEmpty и NotFound) и классы Helper и Holder для этих исключений

 

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 или другим типам сетей. К таким утилитам относятся:

 


Поделиться:



Последнее изменение этой страницы: 2019-10-04; Просмотров: 544; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.054 с.)
Главная | Случайная страница | Обратная связь