Web Service - программная система, предназначенная поддерживать взаимодействие между интераперабельными устройствами через сеть. Веб сервис обладает интерфейсом, описанным в WSDL формате. Другие системы, взаимодействуют с веб сервисом через SOAP-сообщения, которые обычно передаются с помощью HTTP с XML сериализацией в связке с другими веб-стандартами. [source]
Пример веб сервиса: dailyinfo
SOA (Service Based Architecture) - модульный подход к разработке программного обеспечения, основанный на использовании распределённых, слабо связанных заменяемых компонентов, оснащённых стандартизированными интерфейсами для взаимодействия по стандартизированным протоколам. [source]
ROA (REST-Oriented Architecture) - архитектурный стиль приложения и подход к разработке для создания ПО в виде ресурсов с RESTful интерфейсами. Эти ресурсы являются программными компонентами, которые могут быть переиспользованы для различных целей. [source]
MOM (Message-Oriented Model) сосредаточена на тех аспектах архитектуры, которые относятся к сообщениям и их обработке. [source]
SOM (Service-Oriented Model) сосредаточена на тех аспектах архитектуры, которые относятся к сервису и действиям. [source]
ROM (Resource-Oriented Model) сосредоточена на тех аспектах архитектуры, которые относятся к ресурсам, и сервис модель которых связана с манипулированием ресурсами. [source]
PM (Policy Model) сосредаточена на тех аспектах архитектуры, которые относятся к политике, расширениям, защите и качеству сервиса. [source]
MM (Management Model) сосредаточена на тех аспектах архитектуры, которые относятся к регулированию веб сервисов. [source]
SOAP (Simple Object Access Protocol) - основанный на XML протокол обмена сообщениями.
WSDL (Web Services Description Language) - язык разметки, основанный на XML, преднзначенный для описания веб сервисов.
UDDI (Universal Description, Discovery, and Integration) - предоставляет всемирный реестр веб сервисов для рекламы, поиска и хранения.
Взаимодействие между SOAP, WSDL и UDDI:
SOM (Service-Oriented Model) сосредаточена на тех аспектах архитектуры, которые относятся к сервису и действиям. [source]
Message - единица информации, отсылаемая одним агентом другому в конексте веб сервисов. [source]
Action - любое действие, представленное агентом в качестве отклика на получение сообщения, или посылки сообщения, или другого изменения состояния. [source]
Service - набор действий, которые формируют целостную систему с точки зрения провайдеров и реквесторов. [source]
Agent - программа, выполняющая функции, указанные пользователем, сущностью или процессом. [source]
Choreography - определяет очередность и условия, которые позволяют объеденению независимых веб сервисов обмениваться информацией с целью достичь некоторую полезную функцию. [source]
Choreography Description Language - нотация для описания хореографии. [source]
Service Description - набор документов, описывающих интерфейс и семантику сервиса. [source]
Service Operation - абстрактная группировка сообщений, которую сервис посылает и получает, чтобы совершить определенную задачу. [source]
Service Platform - среда, используемая для хостинга одного или более веб сервисов. [[source]][service-platform]
Service Provider - агент, который способен и предназначен для совершения действий, связанных с сервисом. [source]
Service Requester - сущность, которая отвечает за запросы к сервису через провайдер. [source]
Service Registry (Broker) - логически-централизованная директория сервисов, куда девелоперы публикуют новые сервисы и где можно найти существующие. Поэтому этот элемент является координационным центром для компаний и их услуг. [[source]][service-registry]
Service Semantics - контракт между провайдером и реквестором, который отображает вызов сервиса. [source]
Service Task - еденица активности, связанная с сервисом. [source]
SOAP - протокол обмена структурированными сообщениями в распределенной вычислительной среде. Также предоставляет стандарт структуры упаковки данных для транспортировки XML документов с помощью различных интернет-технологий, как: SMTP, HTTP, FTP. [source]
Пример взаимодействия клиента с Web приложением (регистрация аккаунта):
Клиент/сервер связь:
HTTP POST of SOAP request document
SOAP: client ----------------------------------> service
client <---------------------------------- service
SOAP (maybe JSON) document
SOAP Building Blocks. SOAP сообщение - это обычный XML документ, содержащий следующие элементы:
WSDL (Web Service Description Language) - XML технология, которая описывает интерфейс веб сервиса в стандартизированном виде. WSDL указывает стандарт, как веб сервис должен представлять входные и выходные параметры при вызове извне, как должна выглядеть структура функции, природа вызова и как осуществлять связывание протокола сервера. [source]
WSDL документ - описывает веб сервис. Он указывает местоположение сервиса и его методы, используя следующие элементы:
<types>
- определяет типы данных, используемые веб сервисом.<message>
- определяет элементы данных для каждой операции.<portType>
- описывает операции и сообщение, которые могут встретиться в сервисе.<binding>
- определяет протокол и формат данных для каждого типа порта.<service>
- определяет адрес веб сервиса.<definition>
- корневой элемент каждого WSDL документа.<operation>
- абстрактное определение операции для сообщения.<documentation>
- предоставляет документацию<import>
- импортирует сторонние WSDL документы или XML Schemas.Структура WSDL документа выглядит следующим образом:
<definitions>
<types>
data type definitions........
</types>
<message>
definition of the data being communicated....
</message>
<portType>
set of operations......
</portType>
<binding>
protocol and data format specification....
</binding>
</definitions>
<portType>
- элемент, который определяет веб сервис, операции, приводимые в нем, и задействованные сообщения.
Пример Request-Response операции (словарь терминов):
<message name="getTermRequest">
<part name="term" type="xs:string"/>
</message>
<message name="getTermResponse">
<part name="value" type="xs:string"/>
</message>
<portType name="glossaryTerms">
<operation name="getTerm">
<input message="getTermRequest"/>
<output message="getTermResponse"/>
</operation>
</portType>
<portType>
определяет "glossaryTerms" как имя порта, а getTerm
- имя операции<message>
элементы определяют <part>
сообщений "getTermRequest" и "getTermResponse".Пример One-Way операции (словарь терминов):
<message name="newTermValues">
<part name="term" type="xs:string"/>
<part name="value" type="xs:string"/>
</message>
<portType name="glossaryTerms">
<operation name="setTerm">
<input name="newTerm" message="newTermValues"/>
</operation>
</portType >
Пример WSDL файла:
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="HelloService"
targetNamespace="http://www.ecerami.com/wsdl/HelloService.wsdl"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://www.ecerami.com/wsdl/HelloService.wsdl"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<types>
<xsd:schema>
<xsd:import
schemaLocation="http://localhost:9876/ts?xsd=1"
namespace="http://ts.ch02/">
</xsd:import>
</xsd:schema>
</types>
<message name="SayHelloRequest">
<part name="firstName" type="xsd:string"/>
</message>
<message name="SayHelloResponse">
<part name="greeting" type="xsd:string"/>
</message>
<portType name="Hello_PortType">
<operation name="sayHello">
<input message="tns:SayHelloRequest"/>
<output message="tns:SayHelloResponse"/>
</operation>
</portType>
<binding name="Hello_Binding" type="tns:Hello_PortType">
<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="sayHello">
<soap:operation soapAction="sayHello"/>
<input>
<soap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:examples:helloservice"
use="encoded"/>
</input>
<output>
<soap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:examples:helloservice"
use="encoded"/>
</output>
</operation>
</binding>
<service name="Hello_Service">
<documentation>WSDL File for HelloService</documentation>
<port binding="tns:Hello_Binding" name="Hello_Port">
<soap:address
location="http://localhost:8080/soap/rpcrouter"/>
</port>
</service>
</definitions>
<service>
: HelloService.<types>
: Использование импортированной по локальному адресу XML Schema.<message>
: "sayHelloRequest": "firstName" параметр, "sayHelloResponse": "greeting" возвращаемое
значение<portType>
: sayHello операция, которая состоит из request-response сервиса.<binding>
: Указание использовать SOAP HTTP протокол.<service>
: сервис доступен по ссылке http://www.examples.com/SayHello/.<port>
: Связывает <binding>
с URI http://www.examples.com/SayHello/, по которой доступен данный сервис.REST (REpresentational State Transfer) - это стиль архитектуры программного обеспечения для распределенных систем, использующий веб протоколы и веб технологии. REST архитектура включает в себя клиентское и серверное взаимодействие, построенное вокруг передачи ресурсов. [source]
Клиент/сервер связь:
HTTP GET, POST, PUT, or DELETE
REST: client ----------------------------------> service
client <---------------------------------- service
XML, JSON, plaintext,... document
Протокол - набор соглашений интерфейса логического уровня, которые определяют обмен данными между различными программами. [[source]][protocol]
TCP/IP - семейство протоколов, предназначенных для взаимодйествия между электронными устройствами. Определяет, как они должны быть связаны через интернет и как нужно передавать данные между ними. [source]
TCP (Transmission Control Protocol) - отвечает за разбиение данных на небольшие пакеты перед тем, как пересылать их по сети, и за сборку этих пакетов в исходное состояние после получения. [[source]][tcp]
IP (Internet Protocol) - отвечает за обмен данными между устройствами, т.е. за адресацию, отправку и получение пакетов данных через интернет. [[source]][ip]
DNS (Domain Name Server) - иерархическая система имен, построенная на распределенных базах данных. [source]
HTTP (HyperText Transfer Protocol) - протокол уровня приложения, используемый в основном в World Wide Web. HTTP использует клиент-серверную модель, где браузер является клиентом и общается с веб-сервером, который хостит веб-сайт. [source]
HTTPS (HyperText Transfer Protocol Secure) - разновидность HTTP протокола, который добавляет передаваемым данным уровень безопасности через SSL протокол или TLS протокол. [source]
FTP (File Transfer Protocol) - протокол, используемый для передачи или обмена файлами между компьютерами. FTP часто используется для загрузки сетевых страниц и других документов с частного устройства разработки на открытые сервера хостинга.
GIOP (General Inter-ORB Protocol) - абстрактный протокол в распределённых объектных системах, обеспечивающий возможность взаимодействия сервисов-брокеров.
IIOP (Inter-ORB Protocol) - является конкретной реализацией абстрактных определений GIOP.
SSL (Secure Socket Layer) - стандартный протокол, используемый для защищенной передачи документов через сеть.
TLS (Transport Layer Security) - улучшенная версия SSL протокола.
SNMP (Simple Network Management Protocol) - используется для управления сетями.
ARP (Address Resolution Protocol) - используется IP для поиска адреса параметров сетевой карты компьютера, опираясь на IP-адрес.
RARP (Reverse Address Resolution Protocol) - используется IP для поиска IP-адресов, опираясь на параметры сетевой карты компьютера.
PPTP (Point to Point Tunneling Protocol) - используется для установления соединения (тунеля) между приватными сетями.
NTP (Network Time Protocol) - используется для синхронизации времени между компьютерами.
LDAP (Lightweight Directory Access Protocol) - используется для сбора информации о пользователях и электронных почтовых адресов из интернета.
ICMP (Internet Control Message Protocol) - заботится об ошибках в сети.
DHCP (Dynamic Host Configuration Protocol) - используется для поиска динамических IP-адресов компьютеров в сети.
BOOTP (Boot Protocol) - используется для бута (запуска) компьютеров из сети.
POP (Post Office Protocol) - используется программами с почтовой функциональностью для отыскания нужной почти из почтового сервера.
IMAP (Internet Message Access Protocol) - действует также, как и POP, только не загружает сразу все запрашиваемые почты, а дает возможность посмотреть на сообщения, которые выдает почтовый сервер, или удалить их из базы.
SMTP (Simple Mail Transfer Protocol) - заботится об отправки сообщений в почту. Обычно сообщения посылаются на почтовый сервер, а затем в другие серверы и только потом в пункт назначения. Может передавать только текстовые данные.
MIME (Multi-purpose Internet Mail Extensions) - выполняет такие же функции, что и SMTP, только может еще передавать в сообщениях двоичные данные, т.е. аудио, видео, картинки, что угодно.
Servlet API является основой для всех остальных технологий Java, касающихся Web и дает возможность динамически генерировать любой web-контент, используя любые библиотеки, доступные для java.
JSP (JavaServer Pages) - технология, используемая для разработки интерактивных веб страниц. JSP была разработана Sun Microsystems и является улучшенной версией Java сервлетов. [source]
Apache Tomcat - опенсорсный веб сервер, разработанный Apache Software Foundation. Он позволяет реализовывать Java сервлеты и JSPs для поддержки эффективных Java-серверных сред. [source]
Apache Ant - Java-based опенсорсный build tool, разработанный Apache Software Foundation. Он схож с "make" утилитой, но в большинстве своем функционирует только на java платформе. [source]
RPC (Remote Procedure Call) - класс технологий, позволяющих компьютерным программам вызывать функции или процедуры в другом адресном пространстве (как правильно, на удаленных компьютерах). [source]
RMI (Remote Method Invocation) - программный интерфейс вызова удаленных методов в языке Java. [source]
java.rmi
пакете и предоставляет распределенную объектную модель, специфицирующую, каким образом производится вызов удаленных методов, работающих на другой виртуальной машине Java.RSS (Really Simple Syndication)
RDF (Resource Description Framework)