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 9598. В ближайшие месяцы поставщики других платформ выпустят соответствующие JRE. Таким образом, Java 2 будет реализована на следующих платформах AIXIRIXLinuxMac OSNetWareOpenServerOpenVMSOS2OS390RISC-O SSolarisWindows 95Windows 98Windows NTWindows NT-
Alpha DECUnixWareJava 2 в деталях Давайте рассмотрим состав Java 2 более подробно. Я выделил три основных компонента - средства разработки на Java, набор Java-библиотек и базовых классов и Java 2 Runtime Environment. Средства разработки на Java В состав JDK 1.2 входит большое число утилит, которые можно подразделить на несколько категорий
Базовые утилиты RMI-утилиты Средства для локализации приложений Средства для защиты приложений IDL-утилиты Базовые утилиты Утилиты, относящиеся к этой категории, служат основой Java Development Kit. Они используются для компиляции и отладки создаваемых Java-приложений. К базовым утилитам относятся javacКомпилятор языка
JavajavaЗагрузчик Java-приложений. Используется и в стадии разработки, и в стадии внедрения приложенийjavadocГенератор документации для APIappletviewerУтилита для запуска и отладки приложений без использования web-браузераjarУтилита для управления Java Archive JAR-файламиjdbОтладчик Java-приложений.javahГенератор заголовочных файлов и заголушек для языка C javapДизассемблер Java-классовextcheckУтилита для обнаружения конфликов между
JAR-файламиRMI-утилиты Утилиты, относящиеся к этой категории, используются для создания приложений, взаимодействующих между собой по Internet или другим типам сетей. К таким утилитам относятся rmicУтилита для генерации заглушек и скелетов для удаленных объектовrmiregistryУтилита для регистрации удаленных объектовrmidСредство системной активации RMIserialverВозвращает serialVersionUID.для данного классаСредства для локализации приложений
К средствам для локализации приложений относится утилита native2ascii, выполняющая преобразование текста в Unicode Latin-1. Средства для защиты приложений Утилиты, относящиеся к этой категории, используются для задания уровней защиты и создания приложений, который работают на удаленных узлах. К таким утилитам относятся keytoolСредство для управления сертификатамиjarsignerУтилита для генерации и проверки цифровых подписей в JAR-файлахpolicytoolГрафическое средство для управления файлами доступаIDL-
утилиты Утилиты, относящиеся к этой категории, используются при создании приложений, использующих CORBA для доступа к базам данных. К таким утилитам относятся tnameservОбеспечивает доступ к сервисам имен naming serviceIdltojavaСоздает 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 или OS2. В JDK 1.2 было добавлено много новых классов и интерфейсов, включая поддержку
функций рисования, вывода на принтер, обработки изображений и поддержки Drag and Drop и Java 2D. Многие из этих новых компонентов можно найти в галерее по адресу httpjava.sun.comproductsjfcswingdoc-curr entcompgal.html. Также, можно посмотреть программу SwingSet, чтобы увидеть компоненты Swing в действии. Компоненты Swing являются 100 Java-компонентами. Это означает, что они не зависят от конкретных реализаций
интерфейсных элементов на той или иной платформе. Это также означает, что эти компоненты доступны на всех платформах, где есть поддержка Java 2. Компоненты Swing реализованы как расширение AWT, но не используют компонентов AWT. На самом деле, многие традиционные компоненты AWT кнопки, списки, диалоговые панели, были переделаны в компоненты
Swing Благодаря этому, компоненты AWT стали более доступными на различных платформах и теперь предоставляют дополнительные возможности, отсутствующие в некоторых графических средах. На следующей диаграмме показано взаимодействие Swing и AWT. Одно из наиболее интересных свойств библиотеки Swing это возможность изменения внешнего вида компонентов и интерфейсов -
Pluggable Look and Feel PLF. Архитектура PLF позволяет настраивать внешний вид и поведение как одного компонента, так и группы компонентов. Также в состав Swing входит ряд предопределенных настроек - Metal LF, Motif LF, Windows LF. Существуют настройки по умолчанию для Macintosh и других платформ. Как я отметил выше, компоненты
Swing играют важную роль при создании графических интерфейсов программ. В следующей таблице приведены краткие описания этих компонентов. КомпонентОписаниеBoxКонтейнер общего назначения для организации вложенных компонентов используя модель BoxLayout.JappletПодкласс класса Applet содержащий JRootPane для того, чтобы добавить к приложению различные интерфейсные элементы типа менюJbuttonКнопка,
которая может содержать либо текст, либо графическое изображение, либо и то и другоеJcheckBoxКнопка с независимой фиксациейJcheckBoxMenuItemКнопка с независимой фиксацией для использования в менюJcolorChooserКомпонент для выбора цвета в одной из цветовых схем. Используется совместно с javax.swing.colorchooser JcomboBoxКомбинированый список строка ввода и выпадающий список. Пользователь может вводить текст или выбирать элемент из списка.
JcomponentКорневой элемент иерархии библиотеки компонентов Swing. Добавляет специфические свойства типа подсказок и поддержки двойной буферизацииJdesktopPaneКонтейнер для компонентов JInternalFrame имитирующий работу desktop в одном окне. Поддерживает многооконный интерфейс MDI JdialogКонтейнер для отображения диалоговых панелейJeditorPaneТекстовый редактор с богатыми возможностяим, управление свойствами которого возможно через объект
EditorKit. По умолчанию может отобрать и редактировать текст в формате HTML и RTFJfileChooserКомпонент для выбора файла или каталога. Поддерживается фильтрация и возможность предварительного просмотра содержимого файла. Используется совместно с javax.swing.filechooserJframeКонтейнер для окон верхнего уровняJinternalFrameКонтейнер для вложенных окон. Схож с JFrame и отображает заголовок окна.
В то же время не является независимым окном и отображается внутри родительского контейнера. Часто используется вместе с JDesktopPane.JlabelКомпонент для отображения текста, графического изображения или того и другогоJlayeredPaneКонтейнер, позволяющий дочерним объектам перекрывать друг друга. Управляет порядком наложения дочерних объектов двуг на другаJlistКомпонент для отображения списка с возможностью выбора. Элементами списка могут быть строки, графические изображения или другие объектыJmenuВыпадающее
меню в JMenuBar или подменю внутри другого менюJmenuBarКомпонент, отображающий набор выпадающих меню.JmenuItemОдин элемент менюJoptionPaneКомпонент, использующийся для отображения простых диалоговых панелей внутри контейнера JDialog. Задает набор статических методов для стандартных диалоговых панелейJpanelКонтейнер для группировки компонентов в соответствующем LayoutManager.JpasswordFieldПоле ввода данных, в котором вводимый текст не отображаетсяJpopupMenuОкно, в котором отображается
всплывающее меню. Используется JMenu или для создания отдельных всплывающих менюJprogressBarКомпонент, который показывает процесс выполнения длительной операцииJradioButtonКнопка с зависимой фиксациейJradioButtonMenuItemКнопка с зависимой фиксацией для использования в менюJrootPaneКомплексный контейнер, используемый JApplet, JDialog, JFrame и JInternalFrame. JScrollBarГоризонтальная или вертикальная полоса прокруткиJScrollPaneКонтейнер, позволяющий дочерним компонентам прокручиваться вертикально или горизонтально.
Обеспечивает поддержку фиксированных областей. JseparatorКомпонент для отрисовки горизонтальных и вертикальных разделителей. JsliderКомпонент для наглядного ввода цифровых значенийJSplitPaneКонтейнер, в котором отображаются два дочерних объекта, размер которых можно изменятьJtabbedPaneКонтейнер, реализующий панель с закладкамиJtableКомпонент для отображения таблиц с возможностью редактирования их содержимого. Может отображать как строчные данные, так и любой другой тип данных.
Обычно используется совместно с javax.swing.tableJtextAreaКомпонент для отображения и редактирования многострочного текста. Основан на компоненте JTextComponent.JtextComponentКомпонент для реализации компонентов для отображения и редактирования текста. Является частью javax.swing.textJtextFieldКомпонент для отображения, ввода и редактирования одной строки текста. Основан на компоненте JTextComponent.JtextPaneПодкласс
JEditorPane для отображения и редактирования отформатированного текста, который не является текстом в формате HTML или RTFJtoggleButtonРодительский компонент для JCheckBox и JRadioButton.JtoolBarКомпонент для отображения панели инструментовJtoolTipОкно для отображения подсказок или другой пояснительной инфомацииJtreeКомпонент для отображения древрвидной структуры данных. Помимо строчных данных может отображать любые другие.
Используется совместно с javax.swing.treeJviewportКонтейнер для отображения какой-лиюбо части дочернего объекта. Обычно используется совместно с JScrollPane.JwindowОкно, но без заголовка, полос прокрутки и других элементов. С помощью Java 2D можно разрабатывать графические приложения. Этот программный интерфейс обеспечивает поддержку двумерной графики, обработку графических изображений,
рендеринг, управление цветами и работу с устройствами печати. Интерфейс Java 2D состоит из модели, которая поддерживает отрисовку линий, графических изображений, преобразования цветов, составление графики. Модель является аппаратно-независимой. Интерфейс Java 2D реализован в пакетах java.awt и java.awt.image. 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 2 это новинки в графических интерфейсах и поддержке графических функций. Но наиболее важными, со стратегической точки зрения, несомненно, являются программные интерфейсы
Java Enterprise. Эти интерфейсы позволяют использовать Java для создания корпоративных приложений, которые обладают средствами масштабирования, могут работать в сетевых средах и обладают поддержкой работы с уже существующими приложениями. Некоторые из этих интерфейсов существовали в Java 1.1, часть из них являются новыми для Java 2. Ряд интерфейсов является базовым для платформы
Java 2, остальные это дополнения и расширения. Тем не менее именно платформа Java 2.является первой, где полностью реализованы интерфейсы Java Enterprise, и которая служит в качестве основы для создания корпоративных приложений. Ниже мы кратко рассмотрим основные интерфейсы Java Enterprise более подробно мы поговорим об этих интерфейсах в одной из следующих статей данного цикла.
К ним относятся JDBC - доступ к базам данных RMI - поддержка распределенных объектов Распределенные объекты и CORBA JNDI - Сервисы имен и каталогов JavaMail - электронная почта Enterprise JavaBeans Сервлеты Доступ к базам данных Интерфейс Java Database Connectivity JDBC позволяет Java-программам посылать SQL-запросы и обновлять данные на серверах баз данных, а также
обрабатывать полученные с сервера результаты. JDBC также позволяет получать метаинформацию о базе данных и ее таблицах с сервера баз данных. Архитектура JDBC основывается на классе Driver, который скрывает все детали общения с конкретным сервером баз данных. Каждый конкретный сервер требует наличия соответствующего класса Driver, с которым взаимодействуют Java-программы. Большинство производителей баз данных поставляют
JDBC-драйверы со своими продуктами. Помимо этого, существуют специальные драйверы для взаимодействия с базами через соответствующие ODBC-драйверы. На следующей диаграмме показаны два возможных варианта создания JDBC-приложений - с использованием только JDBC-драйверов и с использованием JDBCODBC-драйверов. Интерфейс JDBC реализован в пакете java.sql, который впервые появился в
Java 1.1. В платформе Java 2 появился ряд новых классов, реализующих дополнительную функциональность. Также в Java 2 включен пакет javax.sql, позволяющий, например, рассматривать результаты запроса к базам данных как JavaBeans, выполнять пулинг связей с базами и получать информацию о связях с базами через сервисы имен. Интерфейс JDBC является простым и хорошо продуманным. Программисты, знакомые с SQL и основами программного взаимодействия с базами данных, смогут легко воспользоваться
функциями JDBC в Java-программах. Поддержка распределенных объектов Распределенные объекты обеспечивают мощную модель для создания объектно-ориентированных сетевых приложений, интерес к которым в последние годы неуклонно растет. В данной модели клиентская часть должна иметь возможность вызывать методы объектов, расположенных на удаленных серверах так, как если бы эти объекты располагались локально.
Данная модель может быть реализована несколькими способами. Одним из них является Java Remote Method Invocation RMI. Соответствующие програмные интерфейсы реализованы в пакете java.rmi, который впервые появился в Java 1.1 и был расширен в Java 2. Распределенные объекты и CORBA Java Remote Method Invocation это решение для создания распределенных систем, которое работает
для клиентских и серверных приложений, написанных на языке Java. Но оно не подходит для гетерогенных сред, где клиенты и серверы написаны на различных языках. Для таких сред в платформе Java 2 реализована поддержка CORBA. CORBA Common Object Request Broker Architecture это стандарт, созданный Object Management Group OMG. Данный стандарт реализован как базовая составляющая платформы
Java 2 в пакете org.omg.CORBA и других подпакетах. Реализация включает Object Request Broker ORB, который Java-приложения могут использовать для общения с другими брокерами и другими CORBA-объектами. Интерфейсы к удаленным CORBA-объектам являются независимыми от языка и платформы и описываются на языке описания интерфейсов - Interface
Description Language IDL. В состав Java Development Kit входит компилятор IDL, который преобразует интерфейсы, описанные на языке Interface Description Language в специальные Java-классы, необходимые для реализации IDL-интерфейсов на Java или для связи с удаленными реализациями интерфейсов из 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 ServiceJava Transaction APIЭти программные интерфейсы задают средства управления транзакциями и их обработки. Реализуют стандарты XOpen 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 frameworkjava.awt.imageРеализует классы для создания и модификации графических изображенийjava.awt.image. renderableСодержит классы и интерфейсы для обработки графических изображенийjava.awt.printПредоставляет классы и интерфейсы для поддержки работы с принтеромjava.
beansСодержит классы, относящиеся к разработке Java Beansjava.beans. beancontextРеализует классы и интерфейсы для реализации контекста Java Beansjava.ioСодержит средства для работы с вводом и выводом через потоки данных, сериализацию и файловую системуjava.langОбеспечивает классы, реализующие основу языка Javajava.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Содержит класс и два интерфейса для регистрации
RMIjava.rmi.serverСодержит классы и интерфейсы для поддержки серверных RMI.java.securityСодержит классы и интерфейсы для защиты security frameworkjava.security. aclРеализует классы и интерфейсы, которые в Java 2 реализованы в пакете java.securityjava.security. certОбеспечивает классы и интерфейсы для обработки сертификатовjava.security. interfacesСодержит интерфейсы для генерации RSA-ключей и DSA-ключей в соответствии со стандартамиjava.security. specОбеспечивает интерфейсы для
различных спецификаций защитыjava.sqlИнтерфейс к JDBCjava.textПредоставляет классы и интерфейсы для обработки текста, дат, чисел и сообщений, независимо от языкаjava.utilСодержит интерфейсы для работы с коллекциями collections framework, событийную модель, функции для даты и времени, функции локализации и различные дополнительные классыjava.util.jarОбеспечивает классы для чтения и записи файлов в формате JAR Java ARchive, который основывается на стандарте
ZIP с необязательными дополнениямиjava.util.zipСодержит классы для чтения и записи файлов в формате ZIP и GZIPjavax. accessibilityРеализует функции Accessibility javax.swingПредоставляет набор легковесных компонентов для реализации пользовательских интерфейсовjavax.swing. borderСодержит классы и интерфейсы для отрисовки специальных рамок вокруг компонентов Swing.javax.swing. colorchooserСодержит классы и интерфейсы, используемые компонентом
JColorChooserjavax.swing. eventИспользуется для поддержки событий в компонентах Swingjavax.swing. filechooserСодержит классы и интерфейсы, используемые компонентом JFileChooserjavax.swing. plafСодержит один интерфейс и несколько абстрактных классов, используемых Swing для реализации переключаемых настроек pluggable look-and-feeljavax.swing. plaf.basicСодержит интерфейсные объекты для базовой настройки Basic look-and-feeljavax.swing. plaf.metalСодержит интерфейсные объекты
для настройки metaljavax.swing. plaf.multiПозволяет объединять различные интерфейсные настройкиjavax.swing. tableСодержит классы и интерфейсы, используемые java.awt.swing.JTablejavax.swing. textОбеспечивает классы и интерфейсы для редактируемых и нередактируемых текстовых компонентовjavax.swing. text.htmlСодержит класс HTMLEditorKit и подклассы для создания HTML-редакторовjavax.swing.text.html.par serСодержит парсер языка
HTMLjavax.swing.text.rtfСодержит класс RTFEditorKit для создания RTF-редакторовjavax.swing.treeСодержит классы и интерфейсы для java.awt.swing.JTreejavax.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.resolveinitialreferences и исключение InconsistentTypeCode org.omg.CORBA. portableОбеспечивает уровень переносимости набор интерфейсов
ORB, которые делают возможным выполнение кода для одного брокера под управлением другогоorg.omg.CORBA. TypeCodePackageПоддерживает исключения BadKind и Boundsorg.omg. CosNamingРеализует сервисы имен для Java IDL.org.omg.CosNamongContextPackageПодде рживает исключения для пакета org.omg.CosNaming AlreadyBound, CannotProceed, InvalidName,
NotEmpty и NotFound и классы Helper и Holder для этих исключений
! |
Как писать рефераты Практические рекомендации по написанию студенческих рефератов. |
! | План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом. |
! | Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач. |
! | Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты. |
! | Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ. |
→ | Виды рефератов Какими бывают рефераты по своему назначению и структуре. |