Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

АИППС / лекции / soa&axis

.pdf
Скачиваний:
38
Добавлен:
01.06.2015
Размер:
666.53 Кб
Скачать

Цепочки фильтров сообщений

Сервисориентированная архитектура. Фрэймворк Axis2/C

Данилов И. Г.

ассистент каф. МОП ЭВМ

21 / 42

Apache Axis2/C

Сервисориентированная архитектура. Фрэймворк Axis2/C

Данилов И. Г.

ассистент каф. МОП ЭВМ

Apache Axis2/C модульная кроссплатформенная инфраструктура для создания и развёртывания веб-сервисов, реализованная на языке C и поддерживающая следующие WS стандарты:

SOAP 1.1, SOAP 1.2, REST;

WS-Addressing;

WS-Policy;

WS-Eventing;

...

22 / 42

Сравнение производительности C и Java реализаций

Сервисориентированная архитектура. Фрэймворк Axis2/C

Данилов И. Г.

ассистент каф. МОП ЭВМ

23 / 42

Архитектура Axis2/C. Потоки, фазы, обработчики, модули.

Сервисориентированная архитектура. Фрэймворк Axis2/C

Данилов И. Г.

ассистент каф. МОП ЭВМ

24 / 42

Методы разработки веб-сервисов

Сервисориентированная архитектура. Фрэймворк Axis2/C

Данилов И. Г.

ассистент каф. МОП ЭВМ

“снизу-вверх” сначала пишутся имплементирующие классы, а из их исходного текста генерируются WSDL-файлы, документирующие службу;

“сверху-вниз”, contract-first сначала подготавливается WSDL, а из него генерируется скелет класса/функции, имплементирующих службу.

25 / 42

Разработка “снизу-вверх” для Axis2/C

Сервисориентированная архитектура. Фрэймворк Axis2/C

Данилов И. Г.

ассистент каф. МОП ЭВМ

Для предоставления сервиса необходимо реализовать следующие функции интерфейса (структура axis2_svc_skeleton):

init() инициализация;

free() уничтожение;

invoke() непосредственно реализация бизнес-логики;

on_fault() при возникновении исключительных ситуаций.

26 / 42

Разработка “снизу-вверх” для Axis2/C. Пример функции invoke()

Сервисориентированная архитектура. Фрэймворк Axis2/C

Данилов И. Г.

ассистент каф. МОП ЭВМ

1axiom_node_t AXIS2_CALL

2

math_invoke ( axis2_svc_skeleton_t svc_skeleton ,

3

c o n s t axis2_env_t env ,

 

4

axiom_node_t node ,

 

5

axis2_msg_ctx_t msg_ctx )

 

6

{

 

7

. . .

 

8

i f ( op_name ) {

 

9

i f ( AXIS2_STRCMP ( op_name , " add " )

== 0 )

10

r e t u r n your_business_logic ( env ,

node ) ;

11

}

 

12

}

 

13

. . .

 

14

r e t u r n fault_node ;

 

15

}

 

27 / 42

Разработка “сверху-вниз” для Axis2/C

Сервисориентированная архитектура. Фрэймворк Axis2/C

Данилов И. Г.

ассистент каф. МОП ЭВМ

пишем WSDL-файл описание веб-службы;

генерируем с помощью утилиты WSDL2C.sh файлы заглушек на языке C;

реализуем логику приложения на основе сгенерированных файлов.

28 / 42

Сервис калькулятор. WSDL-файл. Типы

Сервисориентированная архитектура. Фрэймворк Axis2/C

Данилов И. Г.

ассистент каф. МОП ЭВМ

1 <wsdl:types>

2<schema xmlns:impl="http://localhost/axis/Calculator" ...>

3

<element name="add">

4<complexType>

5 <sequence>

6<element name="arg_0_0" type="xsd:int"/>

7

<element name="arg_1_0" type="xsd:int"/>

8</sequence>

9

</complexType>

10</element>

11

12<element name="addResponse">

13

<complexType>

14

<sequence>

15

<element name="addReturn" type="xsd:int"/>

16

</sequence>

17

</complexType>

18</element>

19 </schema>

20</wsdl:types>

29 / 42

Сервис калькулятор. WSDL-файл. Сообщения

Сервис-

 

 

ориентир-

 

 

ованная

1

<wsdl:message name="addResponse">

архитектура.

Фрэймворк

2

 

Axis2/C

 

Данилов И.

3

<wsdl:part element="impl:addResponse" name="

Г.

 

parameters"/>

ассистент

 

каф. МОП

4

 

ЭВМ

 

 

5

</wsdl:message>

 

6

 

 

7

<wsdl:message name="addRequest">

 

8

 

 

9

<wsdl:part element="impl:add" name="parameters"/>

 

10

 

 

11

</wsdl:message>

 

 

 

30 / 42

Соседние файлы в папке лекции