email
forum

Интеграция веб-приложений: SOAP

Сегодня большинство из нас используют официальные приложения интернет-магазинов для покупок и обмена информацией в Сети. Широкому распространению веб-приложений способствует превращение смартфонов в полнофункциональные вычислительные устройства и развитие веб-технологий. В нашей статье, мы поговорим о распределенном взаимодействии между автоматизированными системами и ее элементами.

Клиент-серверная модель на примере приложения интернет-магазина

Современные веб-приложения используют, так называемую клиент-серверную модель взаимодействия. Эта модель позволяет запускать элемент основного приложения на устройстве клиента, а обработку информации и запросов выполнять в серверном приложении.

Серверная часть приложения имеет большую функциональность, чем клиент и запускается на выделенной платформе или в облаке SPI. Клиент направляет запрос на получение вычислительных ресурсов на серверную часть, а сервер отдает клиенту обработанный запрос.

Распределенные вычисления требуют регистрации клиентских и серверных компонентов. В клиентском приложении прописываются IP адреса входных гейтов сервера и уникальный номер клиента. Как правило, в качестве уникального номера служит идентификатор пользователя или ключ, выданный сервисом. Задачей клиента является создание запроса на получение вычислительных ресурсов или обработку информации. Например, если клиент запрашивает скидки приложения интернет — магазина, то клиентское веб-приложение формирует запрос на сервер к модулю скидок для получения актуальных акций для данного клиента. Таким образом, организуется схема межсистемного взаимодействия между всеми частями автоматизированной системы с целью обеспечения передачи требуемых запросов и ответов на них.

Протокол межсистемного взаимодействия SOAP

Жизнь была бы приятной и светлой, если бы существовал унифицированный протокол обмена данными между системами. Но, существуют десятки разновидностей протоколов взаимодействия: ORB, CORBA, EJP, (D)COM и т.д.

Наиболее широкое распространение получил SOAP. Допустим, нам необходимо связать две программы работающие у пользователя под управлением OS X и сервер под CentOS с помощью механизмов взаимодействия, основанных на веб-технологиях. Для этого существует протокол SOAP, Simple Object Access Protocol. Протокол SOAP, основанный на XML, выполняет кодирование информации в форме понятной для сервера. Применение XML позволяет обеспечивать строгую типизацию данных, что гарантирует целостность запроса при передаче и не задаваться вопросами совместимости:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    <?xml version="1.0"?>
    <soap:Envelope
           xmlns:soap="http://www.w3.org/2003/05/soap-envelope/"
           soap:encodingStyle="http://www.w3.org/2003/05/soap-encoding">

        <soap:Header>
            ...
        </soap:Header>

        <soap:Body>
            ...
              <soap:Fault>
                  ...
                  </soap:Fault>
        </soap:Body>

    </soap:Envelope>

Когда клиент на OS X отправляет запрос на сервер с CentOS, SOAP кодирует запрос, таким образом чтобы другие приложения поняли запрос и отдали ответ.

SOAP работает по протоколу HTTP на сетевом уровне модели OSI. Это позволяет ему взаимодействовать через межсетевые экраны, так как межсетевое взаимодействие по 80 и 443 портам разрешено в большинстве систем. Это помогает обеспечить работоспособность клиент-серверной модели, даже если пользователи находятся в разных интрасетях.

Запись опубликована: 28.04.2017