- •Рейтинг №1 Java-технологии распределенных компьютерных систем
- •Инструментальные средства java для создания распределенных приложений
- •Первая java-программа
- •Реализация стандартного вывода
- •Интерфейсы
- •Наследование
- •Import имя_пакета.*;
- •Ссылки this и super
- •Исключения
- •Массивы
- •Классы, методы пакета java.Net используемое для создания socket
- •Виртуальная машина java
- •Распределительные компьютерные системы и их характеристики
- •Промежуточное программное обеспечение распределительных компьютерных систем
- •Архитектура java rmi
- •Порядок создания распределенного rmi-приложения
- •Достоинства и недостатки java-rmi
- •Технология corba
- •Этапы создания corba приложений
- •Определение интерфейса
- •Создание файлов client и server corba-приложений
- •Код локального интерфейса
- •Html. Основные теги html. Html-документы
- •Основные теги html
- •Форма html-документа
- •Основной поток cgi-программ
- •Сервлет. Технология java
- •Компоненты ejb
- •Реляционные структуры баз данных
- •Основные команды ddl
- •Основные команды dml
- •Основные команды dcl
- •Создание бд и таблиц с использованием sql
- •Основные этапы создания бд и таблиц
- •Использование idbc api
- •Пример java-приложения работающего с субд
- •Страницы jsp
- •Теги и встроенные объекты jsp
- •Основные теги jsp-страниц.
- •Xml. Структура xml-документа
- •Пространство имен
- •Схемы xml
- •Архитектуры распределенных приложений. Web-сервисы
- •Простая web-служба
- •Код клиента web-службы
- •Архитектура web-служб
- •Jms. Архитектура jms
- •Модели сообщений jms
- •Архитектура “точка-точка”
- •Пример распределенного jms-приложения
Основной поток cgi-программ
Для обработки каждого запроса клиента необходимо создавать отдельный процесс с запуском отдельного экземпляра CGI-программ. С ростом числа запросов нагрузка на сервер быстро возрастает. Быстродействие CGI-программ снижается.
CGI-программу можно записать на языке программирования JAVA. Однако для ее работы необходимо запускать виртуальную машину JAVA JVM. Если вызовы CGI-программы будут повторяться то создание JDM при каждом вызове приведет к большой потере ресурсов. Поэтому при разработке серверных программ с использованием JAVA к web-серверу присоединяют дополнительный модуль. Он запускает JDM при первом вызове и выполняет все программы под ее управлением. Такой модуль называется контейнером. Web-сервер с web-контейнером называются JAVA-web-сервером. На рынке имеется большое количество web-контейнеров для различных web-серверов. Наиболее популярным из них является Tomcat. Он используется как самостоятельно так и составе web-сервера (Apache, JBoss и др.).
Сервлет. Технология java
Серверные программы написанные на JAVA выполняемые под управлением JAVA web-сервера называются сервлетами. Для разработки сервлетов фирма Sun создала большой набор интерфейсов и классов получивших название ServletAPI(Application Programming Interface).Основные из них находятся в пакетах javax.servlet и javax.servlet.http. При этом наиболее важным из них является интерфейс servlet реализован классом HTTP.Servlet который учитывает работу с протоколом http. В этом классе метод progress Re quest() не реализован (данный метод характерен для среды Net Beans). Поэтому чтобы создать свой сервлет необходимо наследовать класс http-Servlet реализовав расширение метод progress Re quest() (при создании сервлета вне среды Net Beans вместо метода progress Re quest() используют метод service()). В сервлет APIдля работы в http используют протоколы HTTP Servlet Re quest и HTTP Servlet Response. Web-контейнер реализует эти интерфейсы. При этом он производит синтаксический разбор http-запроса и формирует динамический http-ответ. В примере HelloServlet.java эти объекты названы req и res соответственно. Значение параметров запроса Servlet получает из объекта req в виде строки используя имена параметров переданные html-формы. Например:
string name=req.getParametr(“name”);
Чтобы использовать особенности метода передачи интерфейса getpost протокола http.servlet используются методы doGette(), doPost(). Динамический html передается через символьный выходной поток с использованием объекта типа HTTPServletResponse. Для этого он использует метод getWriter(), который возвращает объект PrinterWriter.
PrinterWriter out=res.getWriter();
Тип содержимого ответа и его кодировку устанавливает метод SetContextType().
res setContextType(“text/html;charset=Windows 1251”);
Метод out.println()используется для вывода строк кода html-документа ответа в символьный поток. Этот документ отображается браузером клиента и ни чем не отличается от обычных статических web-страниц хранящаяся на сервере.
Компоненты ejb
Любую задачу на сервере в принципе можно решить с помощью сервлета. Однако нетривиальные задачи имеют большой объем JAVA-кода. В этом случае сервлеты могут стать весьма грамосткими. Их код плохо воспринимается и модифицируется. Для преодоления этих проблем фирма Sun разработала спецификацию компонентов EJB (Enterprise JAVA Beans), а также пакет классов и интерфейсов для работы с ними javax.ejb. Реализуют EJB-компоненты, EJB-контейнер, JAVA web-сервер. Компоненты EJB бывают трех типов:
Entity Bean;
Session Bean;
Message Driven Bean.
Entity Bean удобен для изменения информации из баз данных и преобразования ее в объекты JAVA.
Session Bean – компоненты удобны для организации сеанса связи с пользователем и сложных вычислений по запросам клиента.
Имеется два вида Session Bean-компонента:
а) State full Session Bean;
b) State less Session Bean.
State full – компоненты могут сохранять свое состояние, передавать его от запроса к запросу.
State less теряет свое состояние после выполнения запроса.
Message Driven Bean предназначен для обмена сообщениями по технологии JMS (JAVA Message Service).
При создании EJB-компонентов разработчик кроме создания класса реализующего тот или иной тип EJB должен написать 1 (2) интерфейса для взаимодействия с ним. Так в примере HelloServlet.java участок кода:
import my HelloSessionLocal;
…
private HelloSessionLocal h;
…
message_ejb=h.sayHello();
Используется как для создания объекта типа локального ejb-интерфейса, так и вызова с его использованием ejb-метода sayHello().
IDBC
IDBC – стандарт доступа JAVA-приложений к СУБД. В настоящее время используют стандарты IDBC 2.0 и IDBC 3.0. IDBC API состоит из двух пакетов: java.sql и javax.sql. Для работы с базами данных рекомендуется использовать IDBC-драйвер поставляемый для конкретной СУБД фирмой-производителем. В крайнем случае, если драйвер IDBC не существует можно использовать Sun-ODBC-IDBC входящей в стандарты jdk-java начиная с v.1.0. Важнейшими интерфейсами IDBC-API является:
Интерфейс |
Назначение |
Connection |
Осуществляет связь с СУБД используя класс DriverManager |
Statement, Prepared Statement, Callable Statement |
Выполняет sql-утверждение |
Result Set |
Возвращает набор данных после выполнения SQL-запроса |