Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Распределенные сервис-ориентированные системы..pdf
Скачиваний:
12
Добавлен:
05.02.2023
Размер:
9.2 Mб
Скачать

5.3.3 Реализация тестового примера

После копирования файлов созданных утилитой wsimport в проект lab8, следует сделать refrash этого проекта, чтобы среда разработки учла новые файлы.

План реализации тестового примера состоит из следующей последовательности шагов:

1)шаг 1 — создаем объект типа Lets7Service, а затем, с помощью его метода getLets7Port() получаем ссылку на удаленный объект типа Lets7;

2)шаг 2 — читаем список записей типа Letter и распечатываем его, убеждаясь в работоспособности технологии Web-служб SOAP;

3)шаг 3 — читаем запись объекта типа Letter с идентификатором id=0 и должны получить исключение с сообщением;

4)шаг 4 — делаем запрос на удаление объекта типа Letter с идентификатором id=1 и должны получить исключение с сообщением.

Тестовый пример реализуем в методе main(...) класса ClientLets, как это показано на листинге 5.17.

Листинг 5.17 — Исходный текст класса ClientLets.java для проекта lab8

package rsos.lab8;

import java.io.PrintStream; import java.util.List;

public class ClientLets

{

public static void main(String[] args) throws Lets7Exception_Exception

{

//Объект печати PrintStream out =

System.out; out.println("ClientLets: Начинаю работу...");

//Получаем сетевой объект сервиса Lets7Service service =

new Lets7Service();

//Получаем прокси на удаленный объект

Lets7 remote =

(Lets7) service.getLets7Port();

//Проверяем, что ссылка получена if(remote == null)

{

out.println(

"Нет соединения с удаленным объектом...");

return;

}

//Проверяем чтение списка записей типа Letter

228

List<Letter> list = remote.getList();

if(list.size() <= 0)

{

out.println("Получили пустой список..."); return;

}

out.println("Список объектов Letter:");

String[] ss;

// Цикл по списку объектов for(Letter l : list)

{

ss = l.date.toString().split("T");

out.println("[" + l.id

+" " + ss[0] + " " + ss[1].substring(0, 8)

+" " + l.name

+" " + l.text.trim() + "]");

}

Letter l;

// Пытаемся получить объект Letter с id=0 try {

l =

remote.getLetter(0); out.println(l.toString());

}catch(Lets7Exception_Exception e) { out.println("Получил исключение:"

+e.getLocalizedMessage() + "\n"

+e.toString() + "\n");

}

// Пытаемся удалить объект Letter с id=1 try {

remote.deleteLetter(0); }catch(Lets7Exception_Exception e) {

out.println("Получил исключение:"

+e.getLocalizedMessage() + "\n"

+e.toString() + "\n");

}

}

}

Теперь запустим сервер приложений, а затем — класс ClientLets на исполнение. После этих действий, мы получим результат, показанный на рисунке 5.7.

По результатам проведенного теста можно сделать главный вывод, что программная платформа Java EE позволяет успешно и с минимальными интеллектуальными затратами реализовывать Web-службы SOAP.

229

Рисунок 5.7 — Результат запуска тестового приложения ClientLets

5.3.4 Выводы по результатам изучения главы 5

Технология Web-служб на основе протокола SOAP обеспечивает достижение основной цели дисциплины «Распределенные сервис-ориентированные системы» — оперативное решение задач масштаба предприятий, возникающих на уровне бизнес-логики.

Не вдаваясь в расширительные толкования понятия сервис-ориентирован- ных систем, учебный материал данной главы наглядно показывает, что инструментальные средства программной платформы Java EE обеспечивают:

разделение масштабных прикладных задач минимум на две части, реализуемые различными группами, названными как поставщики сервиса и потребители сервиса;

возможность реализации решения масштабных задач поставщиками сервиса с использованием служебного сервиса, предоставляемого кон-тейне- рами серверов приложений, а также — возможности публикации универсального описания сервиса, доступного их потребителям;

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

Программная платформа Java EE, применительно к технологии Web-служб на основе протокола SOAP, фактически напрямую обеспечивает реализацию бизнес-парадигмы архитектуры предприятия, рассмотренной в пункте 1.3.4 первой главы данного учебного пособия.

Действительно, программная платформа Java EE позволяет поставщику сервиса разрабатывать различные приложения, используя возможности служеб-

230

ных сервисов серверов приложений. Такие разработки ведутся IT-специалиста- ми из потребностей решения конкретных задач, испольуя все возможности объектно-ориентированных языков и инструментальных средств баз данных (СУБД). На основе разработанных приложений можно создавать EJB-компонен- ты, которые сами по себе могут быть распределенными приложениями. Все эти работы могут производиться без прямого согласования с потребителями сервисов, опираясь на техническую базу, которая имеется у поставщика сервиса.

Когда потребтели сервиса, соответствующие уровню бизнес-логики архитектуры предприятия начинают формировать свои потребности, тогда поставщики сервиса могут достаточно быстро реализовать необходимые интерфейсы своих приложений и согласовать их на должном уровне, что соответствует уровню интерфейса сервиса (см. рисунок 1.12 главы 1, стр. 33).

Окончательно, IT-специалисты могут достаточно быстро реализовать и опубликовать WSDL-описания своих сервисов, используя соответствующие аннотации кратко описанные в подразделе 5.1 данной главы. Также они могут воспользоваться утилитой wsgen, упомянутой в пункте 5.1.5 этой же главы. Далее, на основе WSDL-описаний необходимых сервисов, с помошью утилиты wsimport может быть сгенерирован необходимый софт, на основе которого быстро могут быть реализованы интерфейсные программы для потребителей сервисов. В частности, в качестве инструмента для реализации приложений, может быть использована технология JSF, подробно описанная во второй главе данного пособия.

По результатам изучения материала пятой главы можно сделать следующие выводы:

1)в подразделе 5.1 изучены теоретические основы построения сервис-ори- ентированных систем;

2)в подразделе 5.2 представлен практический пример реализации серверной части Web-сервиса, которую осуществляет поставщик сервиса.

3)в подразделе 5.3 представлен тестовый пример использования сервиса, который реализуется его потребителем;

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

Тематика безопастности использования программного обеспечения сервис-ориентирован- ных систем решается различными способами. В частности — средствами использования защищенных каналов связи или написаниянаписания отдельных приложений, которые сами являются Web-сервисами.

231