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-додатки на більш ніж одній платформі. Компоненти JavaRuntime Environment показані на наступній діаграмі.


Те, що мова Java за короткий час став одним з найпопулярніших комерційних об'єктно-орієнтованих мов програмування, допомагає поширенню технології Java і підтверджується тим, що в даний час ця мова використовує близько 1 млн. розробників (80% з них створює крос-платформні додатки ), продукти для Java випускають сотні фірм, а число копій JDK, завантажених з сайту фірми Sun, перевищило 2.5 млн.

Платформа Java 2

Платформа Java 2 (Java Development Kit 1.2), оголошена фірмою Sun у грудні 1998 року, являє собою фізичну реалізацію технології Java. Власне кажучи, вона укладена в невеликому за обсягом файлі і складається з наступних основних компонентів:

  • Засоби розробки на Java - редактор, компілятор, відладчик і засіб для документації Java API

  • Багатий набір Java-бібліотек та базових класів (foundation classes), які використовуються для створення графічних інтерфейсів, доступу до баз даних, реалізації мережевих функцій, розробки додатків, що працюють з кількома мовами і т.п.

  • Java 2 Runtime Environment - засіб для динамічного завантаження Java-класів, їх перевірки та виконання Java-байт-коду.

Архітектура платформи Java 2 показана на наступній діаграмі.

Спочатку, Sun випустила Java 2 Runtime Environment для наступних платформ: Solaris, Windows NT Server 4.0 і Windows 95/98. У найближчі місяці постачальники інших платформ випустять відповідні JRE. Таким чином, Java 2 буде реалізована на наступних платформах:

AIX Digital UNIX HP-UX
IRIX Linux Mac OS
NetWare OpenServer OpenVMS
OS / 2 OS/390 RISC-OS
Solaris Windows 95 Windows 98
Windows NT Windows NT-Alpha (DEC) UnixWare

Java 2 в деталях

Давайте розглянемо склад Java 2 більш докладно. Я виділив три основних компоненти - засоби розробки на Java, набір Java-бібліотек та базових класів і Java 2 Runtime Environment.

Засоби розробки на Java

До складу JDK 1.2 входить велика кількість утиліт, які можна підрозділити на декілька категорій:

  • Базові утиліти

  • RMI-утиліти

  • Засоби для локалізації додатків

  • Засоби для захисту додатків

  • IDL-утиліти

Базові утиліти

Програми, що відносяться до цієї категорії, служать основою Java Development Kit. Вони використовуються для компіляції та відлагодження створюваних Java-додатків. До базових утилітам відносяться:

javac

Компілятор мови Java

java

Завантажувач Java-додатків. Використовується і у стадії розробки, і в стадії впровадження додатків

javadoc

Генератор документації для API

appletviewer

Утиліта для запуску та налагодження додатків без використання web-браузера

jar

Утиліта для керування Java Archive (JAR)-файлами

jdb

Відладчик Java-додатків.

javah

Генератор заголовних файлів і заголушек для мови C

javap

Дізассемблер Java-класів

extcheck

Утиліта для виявлення конфлік між JAR-файлами

RMI-утиліти

Програми, що відносяться до цієї категорії, використовуються для створення додатків, взаємодіючих між собою по Internet або інших типів мереж. До таких утилітам відносяться:

rmic

Утиліта для генерації заглушок і скелетів для віддалених об'єктів

rmiregistry

Утиліта для реєстрації віддалених об'єктів

rmid

Засіб системної активації RMI

serialver

Повертає serialVersionUID.для даного класу

Засоби для локалізації додатків

До засобів для локалізації додатків відноситься утиліта native2ascii, виконує перетворення тексту в Unicode Latin-1.

Засоби для захисту додатків

Програми, що відносяться до цієї категорії, використовуються для завдання рівнів захисту і створення додатків, що працюють на віддалених вузлах. До таких утилітам відносяться:

keytool

Засіб для керування сертифікатами

jarsigner

Утиліта для генерації і перевірки цифрових підписів в JAR-файлах

policytool

Графічне засіб для керування файлами доступу

IDL-утиліти

Програми, що відносяться до цієї категорії, використовуються при створенні додатків, що використовують CORBA для доступу до баз даних. До таких утилітам відносяться:

tnameserv

Забезпечує доступ до сервісів імен (naming service)

Idltojava

Створює 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 або 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 складається з моделі, яка підтримує відтворення зображення ліній, графічних зображень, перетворення кольорів, складання графіки. Модель є апаратно-незалежною. Інтерфейс 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-драйверів і з використанням JDBC / ODBC-драйверів.

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

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Реферат
71.6кб. | скачати


Схожі роботи:
Інтерфейси модемів
Послідовні інтерфейси
Інтерфейси експертних систем
Психоакустичної сприйняття і midi-інтерфейси
Послідовні інтерфейси СОМ-порт
Паралельні інтерфейси Centronics і LPT-порт
Інтерфейси зворотні виклики внутрішні класи
Інтерфейси як вирішення проблем множинного спадкування
Сучасні інтерфейси інформаційно-вимірювальних систем електро-механічних обєктів
© Усі права захищені
написати до нас