Самостоятельная работа: Java99 Архитектура и интерфейсы

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

/>


То, что язык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-байт-кода.

Архитектураплатформы Java2 показана наследующейдиаграмме.

/>

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

В состав JDK1.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 FoundationClasses (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.

 Многие изэтих новыхкомпонентовможно найтив галерее поадресу: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 и другихплатформ.

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

Компонент

Описание

Box

Контейнер общего назначения для организации вложенных компонентов используя модель BoxLayout.

Japplet

Подкласс класса Applet содержащий JRootPane для того, чтобы добавить к приложению различные интерфейсные элементы типа меню

Jbutton

Кнопка, которая может содержать либо текст, либо графическое изображение, либо и то и другое

JcheckBox

Кнопка с независимой фиксацией

JcheckBoxMenuItem

Кнопка с независимой фиксацией для использования в меню

JcolorChooser

Компонент для выбора цвета в одной из цветовых схем. Используется совместно с javax.swing.colorchooser 

JcomboBox

Комбинированый список – строка ввода и выпадающий список. Пользователь может вводить текст или выбирать элемент из списка.

Jcomponent

Корневой элемент иерархии библиотеки компонентов Swing. Добавляет специфические свойства типа подсказок и поддержки двойной буферизации

JdesktopPane

Контейнер для компонентов JInternalFrame имитирующий работу desktop в одном окне. Поддерживает многооконный интерфейс (MDI) 

Jdialog

Контейнер для отображения диалоговых панелей

JeditorPane

Текстовый редактор с богатыми возможностяим, управление свойствами которого возможно через объект EditorKit. По умолчанию может отобрать и редактировать текст в формате HTML и RTF

JfileChooser

Компонент для выбора файла или каталога. Поддерживается фильтрация и возможность предварительного просмотра содержимого файла. Используется совместно с javax.swing.filechooser

Jframe

Контейнер для окон верхнего уровня

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.table

JtextArea

Компонент для отображения и редактирования многострочного текста. Основан на компоненте JTextComponent.

JtextComponent

Компонент для реализации компонентов для отображения и редактирования текста. Является частью javax.swing.text

JtextField

Компонент для отображения, ввода и редактирования одной строки текста. Основан на компоненте JTextComponent.

JtextPane

Подкласс JEditorPane для отображения и редактирования отформатированного текста, который не является текстом в формате HTML или RTF

JtoggleButton

Родительский компонент для JCheckBox и JRadioButton.

JtoolBar

Компонент для отображения панели инструментов

JtoolTip

Окно для отображения подсказок или другой пояснительной инфомации

Jtree

Компонент для отображения древрвидной структуры данных. Помимо строчных данных может отображать любые другие. Используется совместно с javax.swing.tree

Jviewport

Контейнер для отображения какой-лиюбо части дочернего объекта. Обычно используется совместно с JScrollPane.

Jwindow

Окно, но без заголовка, полос прокрутки и других элементов.

С помощьюJava 2D можноразрабатыватьграфическиеприложения.Этот программныйинтерфейсобеспечиваетподдержкудвумернойграфики, обработкуграфическихизображений, рендеринг, управлениецветами и работус устройствамипечати. ИнтерфейсJava 2D состоит измодели, котораяподдерживаетотрисовкулиний, графическихизображений, преобразованияцветов, составлениеграфики. Модельявляетсяаппаратно-независимой.Интерфейс Java2D реализованв пакетах java.awtи java.awt.image.

Drag and Drop

В Java 2 введенаподдержкаопераций Drag andDrop, с помощьюкоторых можноперетаскиватьразличныеобъекты. ИнтерфейсDrag and Drop в JDK 1.2 обеспечиваетплатформенно-независимуюподдержку этихопераций дляJava-приложений, причем можноосуществлятьперетаскиваниеобъектов какмежду Java-программамиЮтак и междуJava-программамии программами,«родными» дляконкретнойплатформы.Интерфейс Dragand 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) – этостандартноерасширениеплатформы Java2. 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, часть изних являютсяновыми для Java2. Ряд интерфейсовявляется базовымдля платформы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-драйверови с использованиемJDBC/ODBC-драйверов.

/>

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

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

Поддержкараспределенныхобъектов

Распределенныеобъекты обеспечиваютмощную модельдля созданияобъектно-ориентированныхсетевых приложений, интерес к которымв последниегоды неуклоннорастет. В данноймодели клиентскаячасть должнаиметь возможностьвызывать методыобъектов, расположенныхна удаленныхсерверах так, как если бы этиобъекты располагалисьлокально. Даннаямодель можетбыть реализовананесколькимиспособами.Одним из нихявляется Java RemoteMethod Invocation (RMI). Соответствующиепрограмныеинтерфейсыреализованыв пакете java.rmi, который впервыепоявился в Java1.1 и был расширенв Java 2.

Распределенныеобъекты и CORBA

Java Remote Method Invocation – эторешение длясозданияраспределенныхсистем, котороеработает дляклиентскихи серверныхприложений, написанныхна языке Java. Нооно не подходитдля гетерогенныхсред, где клиентыи серверы написанына различныхязыках. Длятаких сред вплатформе Java2 реализованаподдержкаCORBA.

CORBA (Common Object Request Broker Architecture) –это стандарт, созданныйObject Management Group (OMG). Данныйстандарт реализованкак базоваясоставляющаяплатформы Java2 в пакете org.omg.CORBAи других подпакетах.Реализациявключает ObjectRequest 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, который являетсястандартнымрасширениемплатформы Java2.

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

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

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

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

Enterprise JavaBeans

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

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

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

Сервлеты

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

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

Сервлетыявляются стандартнымрасширениемплатформы Java2 и реализованыв пакетах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

ПлатформаJava 2

Средстваразработкина Java

Базовые утилиты

RMI-утилиты

Средства для локализации приложений

Средства для защиты приложений

IDL-утилиты

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

Drag and Drop

Accessibility

Апплеты

JavaBeans

Java Media Framework

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

Разработкакорпоративныхприложений

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

Поддержка распределенных объектов

Распределенные объекты и CORBA

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

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

Enterprise JavaBeans

Сервлеты

Приложение

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

еще рефераты
Еще работы по информатике