Сегодня большинство из нас используют официальные приложения интернет-магазинов для покупок и обмена информацией в Сети. Широкому распространению веб-приложений способствует превращение смартфонов в полнофункциональные вычислительные устройства и развитие веб-технологий. В нашей статье, мы поговорим о распределенном взаимодействии между автоматизированными системами и ее элементами.
Современные веб-приложения используют, так называемую клиент-серверную модель взаимодействия. Эта модель позволяет запускать элемент основного приложения на устройстве клиента, а обработку информации и запросов выполнять в серверном приложении.
Серверная часть приложения имеет большую функциональность, чем клиент и запускается на выделенной платформе или в облаке SPI. Клиент направляет запрос на получение вычислительных ресурсов на серверную часть, а сервер отдает клиенту обработанный запрос.
Распределенные вычисления требуют регистрации клиентских и серверных компонентов. В клиентском приложении прописываются IP адреса входных гейтов сервера и уникальный номер клиента. Как правило, в качестве уникального номера служит идентификатор пользователя или ключ, выданный сервисом. Задачей клиента является создание запроса на получение вычислительных ресурсов или обработку информации. Например, если клиент запрашивает скидки приложения интернет — магазина, то клиентское веб-приложение формирует запрос на сервер к модулю скидок для получения актуальных акций для данного клиента. Таким образом, организуется схема межсистемного взаимодействия между всеми частями автоматизированной системы с целью обеспечения передачи требуемых запросов и ответов на них.
Жизнь была бы приятной и светлой, если бы существовал унифицированный протокол обмена данными между системами. Но, существуют десятки разновидностей протоколов взаимодействия: 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 портам разрешено в большинстве систем. Это помогает обеспечить работоспособность клиент-серверной модели, даже если пользователи находятся в разных интрасетях.