- •Рейтинг №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-приложения
Простая web-служба
Создадим web-службу с использованием программного продукта Axis (v. 1.2) (Apache eXtensible Interaction System). Разрабатывается концерном W3C. Для разработки приложения будем использовать входящий в Axis сервер – Simple Axis Server.
public class Ws
{public String get()
{return “Hello”;}
}
Код службы сохраняется в файле Ws.jws (jws_java web Service).
Код клиента web-службы
import org.apache.axis client*;
import java.net.*;
public class Client{
public static void main (String[] args)
throws Exception{
Services=newServices();
Call call=(Call)s.createCall();
Call.setTarget End points.oress(new URL(“http://localhost:8080/Ws.jws”);
Call.setUparationName(“get”);
String response=(String)call invoke(new Object[]{});
System.out.println(“Get from.Ws:”+response);}}
Код клиента содержит классы service и Call которые входят в пакет org.apache.axis.Client.*. Основную роль в получении web-услуг играет класс Call. C его помощью идентифицируется адрес web-службы и название web-услуги. Кроме того его метод invoke возвращает результат выполнения web-услуги. Запуск сервера web-службы осуществляется с помощью команды:
>java org.appache.axis.transport.http.Simple Axis Server.
После запуска клиента имени: Get from Ws: Hello
SOAP
Web-службы обмениваются информацией с клиентами с помощью XML-документа. Специальные теги XML и правила их использования для обмена XML-документами web-служб определены протоколом SOAP. В настоящее время поддержкой протокола SOAP занимается корпорация W3C. Спецификация определяет SOAP-послание как документ XML не содержащий тип XML-документа и инструкция по его обработки. Корневой элемент этого документа называется Envelope, а его пространство имен имеет префикс Soapenv. В корневой элемент вкладывается не обязательный элемент Header, содержащий заголовок послания, а также обязательный элемент Body в который записывается само послание, т.е. структура SOAP-послания имеет вид:
<?xml version = “1.0”?>
<oapenv: Envelope xmlns: soapenv = “http://www.w3.org/2003/05/soap-envelope”>
<soapenv: Header>
<!—Заголовок послания-->
</soapenv: Body>
<!—-Содержание документа-->
</soapenv: Body>
</soapenv: Envelope>
Версия протокола SOAP 1.2 позволяет создать запрос к SOAP-серверу по методу Get, т.е. набрав в строке браузера http://localhost:8080Ws.jws?Method=get. Мы получим xml-документ ответ сервера web-службы – Ws.
<?xml version = “1.0” encoding = “UTF-8”?>
<soapenv: Envelope xmlns: soapenv = http://www.w3.org/2003/05/soap-envelope
xmlns: xsd = http://www.w3.org/2001/XML-schema-Instance>
<soapenv: Body>
<getResponse soapenv: encoding Style = “http://www.w3.org/2003/05/soap-encoding”>
<ns1: result xml ns1 = “http://www.w3.org/2003/05/soap-rpc”>
getReturn
</ns1:result>
<get Return xsi: type = “xsd: string”>Hello</get Result>
<soapenv: Body>
</soapenv: Envelope>
Новое пространство имен:
xsi - используется для описания элементов xml-схем.
ns1 - используется для описания возвращаемого значения web-служб.