Смекни!
smekni.com

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

quot;-//w3c//dtd html 4.0 transitional//en">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 с февраляпрошлого года)и следующиеинтерфейсы:

  • AbstractWindowing Toolkit (AWT)

  • Swing

  • Java2D

  • Dragand Drop

  • Accessibility

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

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

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

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

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

Как я отметилвыше, компоненты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- электроннаяпочта

  • EnterpriseJavaBeans

  • Сервлеты

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

Интерфейс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

Представляетсобой интерфейсдля асинхронногообмена сообщениями.

JavaTransaction 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для этих исключений


Содержание.

quot;-//w3c//dtd html 4.0 transitional//en">Java:архитектураи интерфейсы

ТехнологияJava

ПлатформаJava 2

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

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

  • RMI-утилиты

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

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

  • IDL-утилиты

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

  • Drag and Drop

  • Accessibility

Апплеты

JavaBeans

Java Media Framework

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

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

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

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

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

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

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

  • Enterprise JavaBeans

  • Сервлеты

Приложение

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