+7(499)-938-42-58 Москва
8(800)-333-37-98 Горячая линия

Основные приемы работы с веб – клиентом

Содержание

Веб-сервисы в теории и на практике для начинающих

Основные приемы работы с веб - клиентом

Прежде всего, веб-сервисы (или веб-службы) — это технология. И как и любая другая технология, они имеют довольно четко очерченную среду применения.

Если посмотреть на веб-сервисы в разрезе стека сетевых протококолов, мы увидим, что это, в классическом случае, не что иное, как еще одна надстройка поверх протокола HTTP.

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

Но и сам Интернет — разнороден, т. е. различные приложения на различных узлах сети функционируют на разных аппаратно-программных платформах, и используют различные технологии и языки. Чтобы связать все это и предоставить возможность одним приложениям обмениваться данными с другими, и были придуманы веб-сервисы.

По сути, веб-сервисы — это реализация абсолютно четких интерфейсов обмена данными между различными приложениями, которые написаны не только на разных языках, но и распределены на разных узлах сети. Именно с появлением веб-сервисов развилась идея SOA — сервис-ориентированной архитектуры веб-приложений (Service Oriented Architecture).

Протоколы веб-сервисов

На сегодняшний день наибольшее распространение получили следующие протоколы реализации веб-сервисов:

  • SOAP (Simple Object Access Protocol) — по сути это тройка стандартов SOAP/WSDL/UDDI
  • REST (Representational State Transfer)
  • XML-RPC (XML Remote Procedure Call)

На самом деле, SOAP произошел от XML-RPC и является следующей ступенью его развития. В то время как REST — это концепция, в основе которой лежит скорее архитектурный стиль, нежели новая технология, основанный на теории манипуляции объектами CRUD (Create Read Update Delete) в контексте концепций WWW. Безусловно, существуют и иные протоколы, но, поскольку они не получили широкого распространения, мы остановимся в этом кратком обзоре на двух основных — SOAP и REST. XML-RPC ввиду того, что является несколько «устаревшим», мы рассматривать подробно не будем. Нас в первую очередь интересуют вопросы создания новых веб-служб, а не реализация клиентов к существующим (как правило поставщики веб-сервисов поставляют пакеты с функциями API и документацией, посему вопрос построения клиентов к существующим веб-службам менее интересен с точки зрения автора).

SOAP против REST

Проблемы данного противостояния хорошо описаны в статье Леонида Черняка, найденой на портале www.citforum.ru.

По мнению же автора, кратко можно выделить следующее: SOAP более применим в сложных архитектурах, где взаимодействие с объектами выходит за рамки теории CRUD, а вот в тех приложениях, которые не покидают рамки данной теории, вполне применимым может оказаться именно REST ввиду своей простоты и прозрачности. Действительно, если любым объектам вашего сервиса не нужны более сложные взаимоотношения, кроме: «Создать», «Прочитать», «Изменить», «Удалить» (как правило — в 99% случаев этого достаточно), возможно, именно REST станет правильным выбором. Кроме того, REST по сравнению с SOAP, может оказаться и более производительным, так как не требует затрат на разбор сложных XML команд на сервере (выполняются обычные HTTP запросы — PUT, GET, POST, DELETE). Хотя SOAP, в свою очередь, более надежен и безопасен. В любом случае вам решать, что больше подойдет вашему приложению. Вполне вероятно, вы даже захотите реализовать оба протокола, чтобы оставить выбор за пользователями службы и — это ваше право.

Практическое применение веб-сервисов

Поскольку речь идет о практическом применении, нам нужно выбрать платформу для построения веб-службы и поставить задачу. Так как автору ближе всего PHP 5, мы и выберем его в качестве технологии для построения службы, а в качестве задачи примем следующие требования.

Допустим, нам необходимо создать службу, предоставляющую доступ к информации о курсах валют, которая собирается нашим приложением, и накапливается в базе данных. Далее посредством веб-сервиса, данная информация передается сторонним приложениям для отображения в удобном для них виде.

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

Этап первый — реализация приложения сбора информации о курсах валют

Информацию о курсах валют мы будем собирать со страниц сайта НБУ (Национального Банка Украины) ежедневно и складывать в базу данных под управлением СУБД MySQL. Создадим структуру данных.

Таблица валют (currency): +————-+——————+| Field | Type |+————-+——————+| code | int(10) unsigned || charcode | char(3) || description | varchar(100) || value | int(10) unsigned || base | tinyint(1) |+————-+——————+ Таблица номиналов обмена (exchange): +————+——————+| Field | Type |+————+——————+| id | bigint(20) ai || rate_date | timestamp || rate_value | float || code | int(10) unsigned |+————+——————+

Для работы с базой данных воспользуемся ORM слоем на базе пакета PHP Doctrine. Реализуем граббер:

класс Grubber (models/Grabber.php): и сам граббер (grabber.php): Теперь заставим наш граббер отрабатывать раз в сутки в 10:00 утра, путем добавления команды запуска граббера в таблицы cron: 0 10 * * * /usr/bin/php /path/to/grabber.php Все — у нас есть достаточно полезный сервис. Теперь реализуем веб-сервис, который позволит другим приложениям извлекать данные из нашей базы.

Реализация SOAP сервиса

Для реализации веб-сервиса на базе SOAP протокола, мы воспользуемся встроенным пакетом в PHP для работы с SOAP.

Поскольку наш веб-сервис будет публичным, хорошим вариантом будет создание WSDL файла, который описывает структуру нашего веб-сервиса.

WSDL (Web Service Definition Language) — представляет из себя XML файл определенного формата. Подробное описание синтаксиса можно найти здесь.

На практике будет удобно воспользоваться функцией автоматической генерации файла, которую предоставляет IDE Zend Studio for Eclipse. Данная функция позволяет генерировать WSDL файл из классов PHP. Поэтому, прежде всего, мы должны написать класс, реализующий функциональность нашего сервиса.

класс CurrencyExchange (models/CurrencyExchange.php): Отметим, что для автоматической генерации WSDL, нам необходимо написать комментарии в стиле javadoc, потому что именно в них мы прописываем информацию о типах принимаемых аргументов и возвращаемых значений. Неплохо также описывать в нескольких словах работу методов — ведь WSDL послужит описанием API для сторонних разработчиков, которые будут использовать ваш веб-сервис. Не пишите в докблоках param void или return void — для WSDL это не критично, но вот при реализации REST доступа к тому-же классу у вас возникнут проблемы.

Теперь в Zend Studio входим в меню File->Export…, выбираем PHP->WSDL, добавляем наш класс, прописываем URI-адрес нашего сервиса и создаем WSDL-файл. Результат должен быть примерно таким: http://mikhailstadnik.com/ctws/currency.wsdl

Если вы будете добавлять новую функциональность в ваш веб-сервис, вам нужно будет пересоздавать WSDL-файл. Но здесь не так все гладко. Следует учитывать, что SOAP-клиент, который уже запрашивал ваш WSDL файл, кеширует его на своей стороне. Поэтому, если вы замените старое содержимое новым в WSDL файле, некторые клиенты его не прочтут. А значит, при добавлении новой функциональности, дописывайте версию в имя вашего файла. И не забудбте обеспечить обратную совместимость для старых клиентов, особенно если вы не являетесь их поставщиком. С другой стороны, WSDL довольно жестко задает структуру веб-сервиса, а это значит, что, если существует необходимость ограничить функциональность клиента по сравнению с сервером, вы можете не включать определенные методы ваших классов в WSDL. Таким образом они не смогут быть вызваны, несмотря на то, что существуют. Реализация же самого сервера не предстваляет теперь никакой сложности: файл index.php:

Вы можете попробовать веб-сервис в работе по адресу: http://mikhailstadnik.com/ctws/

Там же доступен тестовый клиент: http://mikhailstadnik.com/ctws/client.php Код простейшего клиента может быть таким:

Реализация REST сервиса

REST — это не стандарт и не спецификация, а архитектурный стиль, выстроенный на существующих, хорошо известных и контролируемых консорциумом W3C стандартах, таких, как HTTP, URI (Uniform Resource Identifier), XML и RDF (Resource Description Format).

В REST-сервисах акцент сделан на доступ к ресурсам, а не на исполнение удаленных сервисов; в этом их кардинальное отличие от SOAP-сервисов. И все же удаленный вызов процедур применим и в REST. Он использует методы PUT, GET, POST, DELETE HTTP протокола для манипуляции объектами. Кардинальное отличие его от SOAP в том, что REST остается HTTP-запросом.

Поскольку в PHP пока еще нет реалзации REST, мы воспользуемся Zend Framwork, в который включена реализация как REST клиента, так и REST севера.

Воспользуемся уже готовым классом CurrencyExchange. Напишем сам сервер: rest.php: Как видите все очень сходно и просто. Однако, следует оговорить, что наш REST-сервис менее защищен, чем SOAP-сервис, так как любой добавленый метод в класс CurrencyExchange при его вызове отработает (сам класс определяет сруктуру сервиса). Проверим работу нашего сервиса. Для этого достаточно передать параметры вызова метода в сроке GET-запроса: ?method=getExchange&code=840&date=2008-11-29 или ?method=getExchange&arg1=840&arg2=2008-11-29 При желании или необходимости вы можете самомтоятельно задавать структуру ваших XML ответов для сервиса REST. В этом случае, также будет необходимо позаботиться и о создании определения типа вашего XML документа (DTD — Document Type Definition). Это будет минимальным описанием API вашего сервиса. Простейший тестовый клиент к REST сервису может быть в нашем случае таким: В принципе, Zend_Rest на сегодняшний день нельзя назвать наиболее точной реализацией принципов REST. Утрируя, можно говорить о том, что эта реализация свелась к удаленному вызову процедур (RPC), хотя философия REST гораздо шире.

Вы можете скачать пример в исходных кодах c PHP Doctrine и Zend Framework (4,42 Мб).

Заключение

Мы выполнили задачу минимум и показали, что такое веб-сервисы, для чего они нужны и как их реализовывать. Естественно, приведенный пример, возможно, несколько оторван от жизни, но он был выбран лишь в качестве инструмента для объяснения предмета и сущности веб-сервисов.

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

Автор надеется, что данный материал будет действительно полезен тем, кто становится на тропу разработки веб-служб.

Удачи в девелопменте!

  • PHP 5
  • REST
  • SOAP
  • WSDL
  • веб-сервисы

Источник: https://habr.com/post/46374/

Начало работы с веб-службами JAX-WS – учебный курс по IDE NetBeans

Основные приемы работы с веб - клиентом

API -интерфейс Java для веб-служб XML (JAX-WS), JSR 224, является важным компонентом платформы Java EE. Следующий выпуск интерфейса API Java для RPC на основе XML 1.1 (JAX-RPC), JAX-WS упрощает задачу разработки веб-служб с помощью технологии Java. В нем решены некоторые проблемы JAX-RPC 1.

1, и обеспечивается поддержка нескольких протоколов, например SOAP 1.1, SOAP 1.2, XML, а также возможность поддержки дополнительных протоколов наряду с HTTP. В JAX-WS для привязки данных используется JAXB 2.0; также поддерживается индивидуальная настройка для управления интерфейсами создаваемых интерфейсов конечных точек служб.

Поддержка аннотаций в JAX-WS упрощает разработку веб-служб и уменьшает размер архивов JAR.

В этом документе рассматриваются основные принципы использования среды IDE для разработки веб-службы JAX-WS. После создания веб-службы будут написаны три разных клиента веб-служб, использующие веб-службу по сети, т.е.

“потребляющие” веб-службу. Этими тремя клиентами будут класс Java в приложении для Java SE, сервлет и страница JSP в веб-приложении.

Более подробно работа с клиентами освещена в учебном курсе Разработка клиентов веб-служб JAX-WS.

Для работы с этим учебным курсом требуется следующее программное обеспечение и ресурсы.

Примечание. Сервер GlassFish можно установить вместе с дистрибутивом Java EE среды IDE NetBeans. Также можно воспользоваться страницей загрузок GlassFish Server или страницей загрузок Apache Tomcat.

Важно! Для проектов Java EE требуется GlassFish Server или Oracle WebLogic Server 12c.

Включенный в комплект веб-сервер Tomcat лишь частично совместим с Java EE Однако веб-сервер Tomcat 7.x можно настроить так, чтобы он поддерживал определенную функциональность Java EE. Дополнительные сведения о добавлении поддержки Java EE в Tomcat см. в разделе Проект Apache TomEE.

Создание веб-службы

Цель этого упражнения состоит в создании проекта в соответствии с используемым контейнером развертывания. После создания проекта будет создана веб-служба.

Веб-служба может быть развернута в веб-контейнере или в контейнере EJB. Это зависит от конкретной реализации.

При создании приложения Java EE всегда используйте веб-контейнер, так как это позволяет поместить компоненты EJB непосредственно в веб-приложение.

Например, если развертывание планируется на веб-сервере Tomcat, предоставляющем только веб-контейнер, следует создавать веб-приложение, а не модуль EJB.
  1. Выберите 'Файл' > 'Создать проект' (Ctrl-Shift-N в Windows и Linux, ⌘-Shift-N в ОС Mac). Выберите “Веб-приложение” из категории “Java Web” или “Модуль EJB” из категории “Java EE”.

    Веб-службу JAX-WS можно создать в проекте Maven. Выберите 'Файл' > 'Создать проект' (Ctrl-Shift-N в Linux и Windows, ⌘-Shift-N ы MacOS), а затем веб-приложение Maven или модуль Maven EJB в категории Maven. Если ранее вы не использовали Maven со средой NetBeans, ознакомьтесь с документом Maven Best Practices (Рекомендации по Maven).

  2. Дайте проекту имя CalculatorWSApplication. Выберите местоположение для проекта. Нажмите кнопку “Далее”.
  3. Выберите свой сервер и версию Java EE и щелкните “Готово”.

    Для использования сервера Oracle WebLogic зарегистрируйте сервер с помощью среды IDE. Кроме этого, если вы используете сервер WebLogic, просмотрите экранную демонстрацию Deploying a Web Application to Oracle WebLogic (Развертывание веб-приложения на Oracle WebLogic).

Создание веб-службы из класса Java

  1. Щелкните правой кнопкой мыши узел CalculatorWSApplication и выберите “Создать > Веб-служба”.
  2. Присвойте веб-службе имя CalculatorWS и введите org.me.calculator в поле “Пакет”. Оставьте установленной кнопку-переключатель “Создать веб-службу с нуля”.

  3. При создании проекта Java EE на сервере GlassFish или WebLogic выберите 'Реализовать веб-службу' в качестве компонента сеанса без сохранения состояния.
  4. Нажмите кнопку 'Готово'.

    В окне “Проекты” отображается структура новой веб-службы, а в области редактора отображается исходный код.

Добавление операции к веб-службам

Целью этого упражнения является добавление к веб-службам операции, выполняющей сложение двух чисел, полученных от клиента. IDE NetBeans обеспечивает диалоговое окно для добавления операции с веб-службой. Это диалоговое окно можно открыть либо в визуальном конструкторе, либо в контекстном меню веб-службы.

Внимание! В проектах Maven визуальный конструктор недоступен.

Для добавления операции в веб-службу выполните следующие действия.

  1. Либо
    • измените представление “Конструктор” в окне редактора.

    Либо

    • Найдите узел веб-службы в окне “Проекты”. Щелкните узел правой кнопкой мыши. Откроется контекстное меню.
  2. Щелкните “Добавить операцию” либо в визуальном конструкторе, либо в контекстном меню. Откроется диалоговое окно “Добавление операции”.
  3. В верхней части диалогового окна “Добавить операцию” введите add в 'Имя' и введите int в раскрывающийся список “Тип возвращаемого значения”.
  4. В нижней части диалогового окна “Добавить операцию” нажмите кнопку “Добавить” и создайте параметр типа int с именем i.
  5. Снова щелкните “Добавить” и создайте параметр типа int с именем j.

    На экране должны быть представлены следующие параметры:

  6. Нажмите кнопку “ОК” в нижней части диалогового окна “Добавить операцию”. Вы вернетесь в редактор.
  7. Удалите операцию по умолчанию hello. Для этого либо удалите метод hello() в исходном коде, либо выберите операцию hello в визуальном конструкторе и щелкните “Удалить операцию”.

    Теперь в Visual Designer отображается следующее:

  8. Нажмите кнопку “Исходный код” и посмотрите на код, созданный в результате предыдущих действий. Он будет различаться в зависимости от того, как создана служба: в качестве компонента Java EE без сохранения состояния или обычным способом. Обратите внимание на разницу в снимках экрана ниже: (Служба Java EE 6 или Java EE 7, не реализованная в качестве компонента без сохранения состояния, похожа на службу Java EE 5.)

    Примечание. При работе в IDE NetBeans 7.3 и 7.4 вы увидите, что в созданной аннотации @WebService имя службы указано явно:
    @WebService(serviceName = “CalculatorWS”).

  9. В редакторе расширьте схему операции add следующим образом (изменения выделены полужирным шрифтом): @WebMethod public int add(@WebParam(name = “i”) int i, @WebParam(name = “j”) int j) { int k = i + j; return k; }

Как видно из указанного кода, веб-служба просто получает два числа и затем возвращает их сумму. В следующем разделе рассматривается тестирование веб-службы в среде IDE.

Развертывание и тестирование веб-службы

После развертывания веб-службы на сервере можно использовать среду IDE для открытия клиента тестирования сервера, если у сервера имеется такой клиент. Серверы GlassFish и WebLogic предоставляют тестовые клиенты.

Если используется веб-сервер Tomcat, клиент тестирования отсутствует. Вы можете только запустить проект и проверить, открывается ли страница веб-служб Tomcat. В этом случае, прежде чем запустить проект, необходимо сделать веб-службу точкой входа в приложение.

Чтобы сделать веб-службу точкой входа в приложение щелкните правой кнопкой мыши узел проекта CalculatorWSApplication и выберите 'Свойства'. Откройте 'Свойства выполнения' и введите /CalculatorWS в поле 'Относительный адрес'. Нажмите кнопку “ОК”.

Запустите приложение (повторно щелкните правой кнопкой мыши узел проекта и выберите 'Выполнить').

Для проверки успешности развертывания на сервере GlassFish или WebLogic выполните следующие действия.

  1. Щелкните проект правой кнопкой мыши и выберите команду “Развернуть”. Запускается сервер приложений, выполняется сборка и развертывание приложения на сервере приложений. За ходом выполнения этих операций можно наблюдать в приложении CalculatorWSApplication (запуск-развертывание) и на вкладках серверов GlassFish или Tomcat в окне вывода.
  2. На вкладке “Проекты IDE” разверните узел “Веб-службы” проекта “CalculatorWSApplication”. Щелкните правой кнопкой мыши узел “CalculatorWS” и выберите “Тестировать веб-службу”.

    Страница тестирования открывается в браузере, если веб-приложение развернуто на сервере GlassFish. В случае использования веб-сервера Tomcat и развертывания модулей EJB ситуация отличается:

    • Если развертывание выполнялось на GlassFish, введите на странице тестирования два числа, как показано ниже: Отображается сумма этих двух чисел:

Примеры

Можно открыть полную версию компонента сеанса Java EE без сохранения состояния службы Calculator. Для этого выберите Файл > Создать проект (Ctrl-Shift-N в Linux и Windows, ⌘ + Shift + N в MacOS) и перейдите в раздел Образцы > Веб-службы Java > Calculator (EE6).

Служба и клиент калькулятора Maven доступны в пункте “Примеры > Maven”.

Использование веб-службы

После успешного развертывания веб-службы необходимо создать клиент для использования метода веб-службы add. Ниже будет рассмотрено создание трех клиентов: класса Java в приложении для Java SE, сервлета и страницы JSP в веб-приложении.

Примечание. Более расширенный учебный курс сосредоточен на клиентах: Разработка клиентов веб-служб JAX-WS.

В этом разделе будет рассмотрено создание стандартного приложения Java. Мастер, используемый для создания приложения, также создает и класс Java. Затем средства среды IDE будут использоваться для создания клиента и использования веб-службы, созданной в начале этого руководства.

  1. Выберите 'Файл' > 'Создать проект' (Ctrl-Shift-N в Windows и Linux, ⌘-Shift-N в ОС Mac). Выберите “Приложение Java” в категории “Java”. Присвойте проекту имя CalculatorWS_Client_Application. Не снимайте флажок “Создать главный класс” и оставьте все прочие значения по умолчанию. Нажмите кнопку 'Готово'.
  2. Щелкните правой кнопкой мыши узел CalculatorWS_Client_Application и выберите “Создать > Клиент веб-службы”. Появится мастер создания клиента веб-службы.
  3. Выберите проект в виде исходного файла WSDL. Нажмите кнопку “Обзор”. В проекте CalculatorWSApplication перейдите к веб-службе CalculatorWS. Выберите веб-службу и нажмите кнопку “ОК”.
  4. Не выбирайте имя пакета. Оставьте это поле пустым.
  5. Оставьте значения остальных параметров по умолчанию и нажмите кнопку “Готово”.

    В окне “Проекты” появится новый клиент веб-службы с узлом для созданного методаadd:

  6. Дважды щелкните главный класс, чтобы открыть его в редакторе исходного кода. Перетащите узел add в местоположение ниже метода main().

    На экране должны быть представлены следующие параметры:

    public static void main(String[] args) { // TODO code application logic here}private static int add(int i, int j) { org.me.calculator.CalculatorWS_Service service = new org.me.calculator.CalculatorWS_Service(); org.me.calculator.CalculatorWS port = service.getCalculatorWSPort(); return port.add(i, j);}

    Примечание. В качестве альтернативы, вместо перетаскивания узла add можно щелкнуть правой кнопкой мыши в редакторе, а затем выбрать 'Вставить код' > 'Dspdfnm операцию с веб-службой'.

Источник: https://netbeans.org/kb/docs/websvc/jax-ws_ru.html

Особенности работы СУБД в WEB

Основные приемы работы с веб - клиентом

Возможность доступа к БД с помощью Web существенно изменила стратегии доступа к данным из-за того, что:
• Количество пользователей может не только существенно варьироваться, но и изменяться без предупреждения. В обычных клиент/серверных приложениях администраторы могут контролировать число пользователей и возможность их доступа к данным.

• Пользователей физически невозможно определить, они могут, не закрыв одного приложения, подключиться к другому, что не гарантирует правильного отключения от приложения.

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

• Посредником, реализующим доступ от клиента к БД, выступает специальная программа – Web-сервер, обеспечивающая функционирование пользовательского приложения, выполняющего непосредственный запрос к данным и возврат ответа в виде HTML-документа.

Доступ к БД на стороне сервера

Структурная схема доступа

WEB сервер

Фактически Web-сервер включает несколько других серверов, реализующих необходимые протоколы.

Так IIS (Internet Information Services) включает серверы:• HTTP (Hypertext Transfer Protocol) – протокол передачи гипертекста• FTP (File Transfer Protocol) – протокол передачи файлов• NNTP (Network News Transfer Protocol) – сетевой протокол передачи новостей

• SMTP (Simple Mail Transfer Protocol) – простой протокол передачи почты

Механизм доступа

Механизм доступа к БД на стороне сервера реализуется за счет наличия стандартизованных средств:• Поддержки диалоговых форм на уровне гипертекстового документа (язык HTML – Hypertext markup Language).

С каждым документом связан URL (Uniform Recourse Locator), для доступа к которым используется объектно-ориентированный протокол HTTP (Hypertext Transfer Protocol), предложенный в 1990 году.

• Возможности запуска серверных программ, взаимодействие которых происходит через стандартный интерфейс CGI или прикладные интерфейсы Web-сервера.

HTTP протокол

Для поддержки HTTP-протокола в составе Web-сервера имеется HTTP-сервер. HTTP-клиент/серверное взаимодействие состоит из одного обмена запрос/ответ.

Это краткая транзакция между клиентом и сервером. Фактически HTTP – это PRC (Remote Procedure Call) в Web поверх TCP/IP.

HTTP не имеет состояния, не помнит предыдущих состояний и обладает важным свойством передавать самоописывающиеся данные.

HTTP запрос

1) Структура запросаHTTP-запрос состоит из:• Строки запроса (request line)• Одного или нескольких необязательных полей заголовка (request header fields)

• Необязательного тела (entity body)

2) Строка запросаСтрока запроса состоит из трех текстовых частей, разделенных пробелами.Первая часть определяет метод (команду), который будет применен к серверному ресурсу.

Наиболее общий метод – это GET, который просит сервер послать копию ресурса клиенту.Вторая часть определяет имя целевого ресурса – URL, состоящего из протокола и имени домена сервера.

Третья часть определяет версию протокола, используемого клиента, например, HTTP/1.0.

3) Поле заголовка
Поле заголовка запроса передает дополнительные данные о запросе и самом клиенте серверу. Каждое поле заголовка состоит из имени с последующим двоеточием и значения поля.

4) Тело запроса и примерТело запроса используется клиентом для передачи данных серверу.GET /path/file.html HTTP/1.

0 //метод, ресурс и протоколAccept: text/html //клиент может работать с текстомAccept: audio/x //клиент может работать с аудиоданнымиUser-agent: MacWeb //имя реализации клиентаНазвание MIME-типа Тип данныхapplication/msword Файл Microsoft Wordapplication/pdf Документ Acrobat Readerapplication/x-javascript JavaScript-модульapplication/x-shockwave-flash Flash-роликaudio/mpeg Звук в формате MPEG (MP3, например)audio/x-pn-realaudio Потоковые аудиоданные в формате Realaudioimage/bmp Точечный рисунокimage/gif GIF-изображение

mage/jpeg JPEG-изображение

HTTP ответ

1) Структура ответаHTTP-ответ состоит из:• Строки заголовка (статуса) ответа• Одной или нескольких необязательных полей ответа

• Необязательного тела ответа

2) Строка заголовка (статус ответа)Строка заголовка ответа возвращает версию HTTP, статус ответа и объяснение возвращенного статуса.

Версия-HTTP SP Статус-Код SP Фраза-Объяснение

3) Поля заголовка
Поля заголовка ответа возвращают сведения, описывающие атрибуты сервера и возвращенный HTML-документ для клиента и включает имя, двоеточие и значение.

Public | Retry-After | Server | WWW-Authenticate | extension-header

4) Тело ответа и примерТело ответа содержит собственно HTML-документ, запрашиваемый клиентом.HTTP/1.0 200 OK //код 200 – ответ успешныйServer: NCSA/1.3 //имя сервераMime_version: 1.0 //Mime версии 1.

0Context_type: text/html //возвращается текстContext_length: 2000 //возвращается 2000 байт… //тело ответа

5) Коды ответов
1xx – не используется, 2xx – успешно, 3xx – переадресация, 4xx – ошибка клиента, 5xx – ошибка сервера.

Статус-Код = “200”; OK=”201” ; Created=”202” ; Accepted=”203” ; Provisional Information=”204” ; No Context=”300” ; Multiple Choices=”301” ; Moved Permanently=”302” ; Moved Temporarily=”303” ; Method=”304” ; Not Modified=”400” ; Bad Request=”401” ; Unauthorized=”402” ; Payment Required=”403” ; Forbidden=”404” ; Not Found=”405” ; Method Not Allowed=”404” ; None Acceptable=”407” ; Proxy Authentication Required=”408” ; Request Timeout=”409” ; Conflict=”410” ; Gone=”502” ; Internal Server Error=”501” ; Not Implemented=”502” ; Bad Gateway=”503” ; Service Unavailable

=”504” ; Gateway Timeout

Источник: https://all4study.ru/sql/osobennosti-raboty-subd-v-web.html

Рябинин Виктор – Обзор средств создания интерфейсов веб-приложений на языке Java

Основные приемы работы с веб - клиентом

Обзор средств создания интерфейсов веб-приложений на языке Java

Рябинин В. А.

Источник

Інформаційні управляючі системи та комп’ютерний моніторинг (ІУС КМ – 2013) / Збірка матеріалів IV Всеукраїнської науково-технічної конференції студентів, аспірантів та молодих вчених. — Донецьк, ДонНТУ — 2013, Том 2, с. 303-307.

Постановка проблемы

Очень часто возникают ситуации, когда большому количеству пользователей необходимо предоставить доступ к некоторым данным, дать им возможность их получения и редактирования. Эти данные являются общими для всех пользователей и не могут располагаться на каждой клиентской машине.

Для решения задач такого рода применяются веб-приложения Web-приложения, Web-application) – программные средства, предназначенные для автоматизированного выполнения действий на Web- серверах. При этом данные хранятся на сервере, там же при необходимости выполняется их программная обработка.

По запросу необходимые данные предоставляются клиенту. Для обеспечения диалога с пользователем в веб- приложениях используются Web-браузеры. С одной стороны это представляет ряд преимуществ, с другой – накладывает определённые условия при выборе средств разработки интерфейсов таких приложений.

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

Анализ литературы

Проведен анализ общих требований к проектированию интерфейсов [1]. В указанной в списке источников книге выделен ряд рекомендаций для создания «дружелюбного» к пользователю интерфейса.

Можно выделить следующие из них: вместо создания отдельной страницы для редактирования данных предоставлять возможность их редактирования по месту; не требовать перезагрузки страницы при каждом действии пользователя, использовать контекстные инструменты.

Цель статьи

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

Общая структура веб-приложения

Веб-приложения создаются в различных вариантах архитектуры клиент-сервер. В таком случае клиентом выступает браузер, а сервером — веб-сервер.

Логика веб-приложения распределена между сервером и клиентом, хранение и обработка данных осуществляется, преимущественно, на сервере, её представление в удобном для пользователя виде – в браузере. Обмен информацией происходит по сети. Общая структура веб-приложения приведена на рисунке 1.

Рисунок 1 – Общая структура веб-приложения

Таким образом, чаще всего веб-приложения состоят как минимум из трёх основных компонентов.

Серверная часть веб-приложения – это программа или скрипт на сервере, обрабатывающая запросы пользователя (точнее, запросы браузера). Для программирования серверной части веб-приложения могут использоваться различные языки программирования: Java, PHP, Perl, Ruby, платформа .NET (языки VB.NET, C# и другие, поддерживаемые .NET).

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

Браузер тут же отображает полученный в виде очередной веб-страницы результат.

Система управления базами данных, (СУБД) – программное обеспечение на сервере, занимающееся хранением данных и их выдачей в нужный момент. Серверная часть веб-приложения обращается к базе, извлекая данные, которые необходимы для формирования страницы, запрошенной пользователем.

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

Технологии создания клиентской части

Основной язык, которым описывается графический интерфейс веб-приложения – это HTML. Данный язык описывает структуру веб-страницы, размещение на ней компонентов. Оформление веб-страниц, их стиль и цветовая схема описываются в таблицах стилей – CSS.

Для “оживления” графического интерфейса, придания ему динамичности, используются дополнительные технологии: скрипты JavaScript, а также встроенные в веб-страницу компоненты, созданные на Flash, Java или Silverlight.

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

Отсутствие необходимости полностью перезагружать страницу после каждого получения данных от сервера может существенно ускорить работу веб-приложения.

Такая концепция имеет название Asynchronous JavaScript and XML (асинхронный JavaScript и XML, Ajax).

При использовании данного подхода динамические запросы к серверу происходят без видимой перезагрузки веб-страницы: пользователь не замечает, когда его браузер запрашивает данные.

Преимущества использования фреймворка GWT

Написание веб- приложений с использованием вышеописанной технологии Ajax, с соблюдением требования обеспечения его корректной работы при использовании пользователями различных браузеров может оказаться непростым занятием. Выполнение такой работы требует глубокого знания как JavaScript, так и множества несоответствий различных браузеров.

Google Web Toolkit (GWT) – это фреймворк с открытым исходным кодом, который позволяет Java разработчикам легко разрабатывать веб-приложения на Ajax без углубленного изучения JavaScript и браузерной разработки.

GWT предоставляет разработчику специальное Java API и позволяет разрабатывать графические пользовательские интерфейсы (GUI), избегая работы с JavaScript и абстрагируясь от протокола HTTP и DOM моделей, лежащих в основе браузеров.

Все это достигается использованием GWT компилятора, который генерирует JavaScript из написанного на Java кода интерфейса. Таким образом, скомпилированное GWT приложение состоит из фрагментов HTML, XML и JavaScript.

Для связи клиентской части приложения с веб-сервером в арсенале GWT есть Remote Procedure Call (RPC) – механизм удаленного вызова процедур, который осуществляет простой обмен Java- объектами между клиентом и сервером в обе стороны.

GWT также позволяет разработчикам эффективно тестировать и отлаживать приложения без необходимости преобразования приложений в JavaScript и развертывания их на веб-сервере.

GWT позволяет приложениям быть запущенными в так называемом “Хостинг режиме” (“Hosted Mode”), при этом JVM исполняет код GWT приложения в виде Java байт-кода внутри встроенного браузера.

После проверки и тестирования GWT приложений в “Хостинг режиме”, можно скомпилировать исходный код Java в JavaScript и развернуть приложение. GWT приложения, которые были развернуты, называются запущенными в “Веб-режиме”(“Web Mode”).

Таким образом, и клиентская и серверная части веб-приложения пишутся на Java. Затем GWT компилятор преобразует клиентские Java классы в совместимые с браузером JavaScript и HTML.

После чего появляется возможность развернуть эти JavaScript и HTML на веб-серверах, так что конечные пользователи будут видеть только веб-версию приложения, в то время как классы серверной стороны могут быть развернуты на Tomcat, Jetty или каком-либо ином сервлет-контейнере

Создание интерфейса веб-приложения с использованием Vaadin

Vaadin – это платформа веб-приложений с открытым исходным кодом для создания полнофункциональных интернет приложений.

В противоположность библиотекам JavaScript и решениям на основе браузеров/подключаемых модулей, в ее состав входит архитектура на стороне сервера, что означает выполнение большей части программной логики на серверах.

Технология Ajax используется на стороне браузера для обеспечения функционально насыщенного и интерактивного интерфейса пользователя. На стороне клиента Vaadin строится на основе GWT и может быть расширена с ее помощью.

Основным элементом Vaadin является библиотека Java, рассчитанная на упрощение создания и обслуживания высококачественных веб-интерфейсов пользователей.

Основная идея сервероцентричной модели программирования Vaadin состоит в том, что она позволяет забыть о сети и программировать интерфейсы пользователей точно так же, как программируются все настольные приложения Java, то есть с помощью обычных наборов средств, таких как AWT, Swing или SWT – только еще проще.

Сервероцентричная модель программирования позволяет Vaadin взять на себя управление пользовательским интерфейсом в браузере и связь Ajax между браузером и сервером. Естественно, подход Vaadin позволяет не тратить силы на изучение и отладку технологий на стороне браузеров, таких как HTML или JavaScript.

Библиотека Vaadin четко отделяет представление пользовательского интерфейса от логики и позволяет разрабатывать их по отдельности. Подход Vaadin состоит в использовании тем, определяющих внешний вид приложений.

Темы контролируют внешний вид интерфейсов пользователей посредством шаблонов CSS и (при желании) HTML. Vaadin предоставляет темы по умолчанию, но при необходимости можно создавать свои собственные.

В серверной части Vaadin используется Google Web Toolkit (GWT) для визуализации интерфейса пользователя в браузере. GWT идеально подходит для реализации дополнительных компонентов интерфейса и логики взаимодействия в браузере, тогда как Vaadin обрабатывает логику самого приложения на сервере.

Платформа Vaadin разработана с расчетом на расширяемость и позволяет легко использовать любые компоненты GWT от сторонних производителей в дополнение к компонентам, предлагаемым в Vaadin

Выводы

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

Список источников

1. Скотт Б., Нейл Т. Проектирование веб-интерфейсов. – Пер. с англ. – СПб.: Символ-Плюс, 2010. 352 с., ил.

2. Материалы с сайта https://vaadin.com/

3. Материалы с сайта http://ru.wikipedia.org/

4. Введение в веб-платформу Vaadin/ Интернет-ресурс. – Режим доступа: www/ URL: https://netbeans.org/kb/70/web/quickstart-webapps-vaadin_ru.html

5. Introduction to GWT – Tutorial/ Интернет-ресурс. – Режим доступа: www/ URL: http://developerlife.com/tutorials/?p=80

УДК 004.912

Источник: http://masters.donntu.org/2013/fknt/riabinin/library/article1.htm

Начать работу с использованием веб-служб Exchange

Основные приемы работы с веб - клиентом

  • 2/27/2017
  • Время чтения: 6 мин
  • Соавторы

Найдите сведения, которые помогут вам начать работу с веб-служб Exchange и других веб-служб Exchange.Find information to help you get started with EWS and other web services in Exchange.

Веб-службы Exchangeпредоставляют доступ к данным почтового ящика хранятся в Exchange Online, Exchange Online как часть Office 365 и локальной версии Exchange, начиная с Exchange Server 2007 и позволяют создавать пользовательские приложения, которые вы можете Используйте для управления эти сведения в соответствии с требованиями вашей организации.The web services in Exchangeprovide access to mailbox data stored in Exchange Online, Exchange Online as part of Office 365, and on-premises versions of Exchange starting with Exchange Server 2007, and enable you to create custom applications that you can use to manage that information according to the requirements of your organization. Несмотря на то, диапазон веб-служб Exchange и веб-приложений-служб, которые можно создать практически не ограничен, некоторые основные понятия, применяются для любого типа приложения.While the range of EWS and web service applications that you can create is practically infinite, certain fundamental concepts apply for any type of application. В этом разделе представлены сведения о основные понятия, должны быть знакомы с, чтобы начать работу с веб-служб Exchange и другие веб-службы в Exchange.This section provides information about the fundamental concepts you need to be familiar with in order to start using EWS and other web services in Exchange.

Построение вашей базы знанийBuild your knowledge

При использовании .NET Framework или другой платформы для разработки веб-приложения службы необходимо понять некоторые важные понятия, прежде чем начать проекта разработки.Whether you use the .NET Framework or another platform to develop your web service application, you will want to understand some important concepts before you begin your development project.

В таблице 1. Веб-служб концепцииTable 1. Web services concepts

КонцепцияConceptСводкаSummary
АрхитектураArchitectureСведения о работе в рамках архитектуры Exchange и протоколы, которые используются веб-служб Exchange.Learn about how EWS works within the Exchange architecture and the protocols it uses.
Типы приложений веб-служб ExchangeEWS application typesУзнайте о наиболее распространенные типы приложений, которые можно создать с помощью веб-служб Exchange в Exchange.Find out about the most common types of applications that you can create by using EWS in Exchange.
Доступа к веб-служб ExchangeEWS accessАдминистраторы Exchange можно ограничить доступ к веб-служб Exchange для всей организации, для отдельных пользователей, а также для отдельных приложений.Exchange administrators can limit access to EWS globally for the entire organization, for individual users, and to individual applications. Узнайте, какой уровень доступа к необходимой вам.Find out which access level is right for you.
УстановкаSetupНайдите сведения о задачах, необходимо выполнить для создания приложений, использующих управляемый API EWS или веб-служб Exchange для взаимодействия с сервером Exchange.Find information about the tasks you need to complete in order to create applications that use the EWS Managed API or EWS to communicate with Exchange.
Проверка подлинностиAuthenticationСведения о параметрах проверки подлинности для подключения к Exchange Online и локальную систему Exchange.Learn about the authentication options for connecting to Exchange Online and Exchange on-premises.
Службы автообнаруженияAutodiscoverСведения о наборе служб, которые можно использовать для обнаружения URL-адрес конечной точки где учетной записи пользователя можно получить доступ к информации с помощью веб-служб Exchange.Learn about the set of services that you can use to discover the URL endpoint where a user's account can access information via EWS.
Сервер почтовых ящиковMailbox serverОзнакомьтесь с хранилищем данных, доступной для клиентов веб-служб Exchange.Find out about the primary repository of information made available to an EWS client. Веб-служб Exchange имеет права на ограниченный набор информацию, содержащуюся в доменных службах Active Directory (AD DS).EWS has access to a limited set of information stored in Active Directory Domain Services (AD DS).
Почтовые приложения для Outlook и веб-служб ExchangeMail apps for Outlook and EWSНайдите сведения о почтовых приложений для Outlook и работы с веб-служб Exchange в Exchange.Find information about mail apps for Outlook and how they work with EWS in Exchange.
API REST Office 365 для почту, календари и контактыOffice 365 REST APIs for mail, calendars, and contactsСведения об Office 365 API-интерфейсы, которые можно использовать для доступа к почту, календари и контакты в Exchange Online в составе Office 365.Learn about the Office 365 APIs that you can use to access mail, calendars, and contacts in Exchange Online as part of Office 365.
Управляемый API веб-служб ExchangeThe EWS Managed APIНайдите сведения о предпочитаемого клиентского интерфейса API для разработчиков .NET Framework.Find information about the preferred client API for .NET Framework developers.
Службы EWSEWSНайдите сведения о создании первого приложения с помощью XML веб-служб Exchange запросы и ответы.Find information about creating your first application by using EWS XML requests and responses.
Функциональные возможности веб-служб Exchange в Exchange версии продуктовEWS functionality in Exchange product versionsУзнайте, какие функциональные возможности веб-служб Exchange доступна в версии Exchange.Find out what EWS functionality is available in version of Exchange.
Отслеживание и устранение неполадокTrace and troubleshootУзнайте, как для трассировки запросов веб-служб Exchange и ответы для устранения ошибок в приложении управляемый API веб-служб Exchange.Find out how to trace EWS requests and responses in order to troubleshoot errors in your EWS Managed API application.

Создание первого приложенияCreate your first application

Если вы хотите получить business создания первого .

NET Framework или клиентское приложение веб-служб Exchange, отображаться приступить к работе с клиентскими приложениями, управляемый API EWS или приступить к работе с клиентскими приложениями, веб-служб Exchange.

If you're ready to get to the business of writing your first .NET Framework or EWS client application, see Get started with EWS Managed API client applications or Get started with EWS client applications.

Образцы кодаGet code samples

Чтобы найти образцы кода и примеры, показывающие, как для работы с веб-служб Exchange и других веб-служб Exchange, воспользуйтесь следующими ресурсами:To find code samples and examples that show you how to work with EWS and other web services in Exchange, see the following resources:

Другие примеры доступны в блоги, код для демонстрации сайты и форумы.Many other samples are available in blogs, code demonstration sites, and forums. Мы также рекомендуем, что вы загрузили EWSEditor.We also recommend that you download the EWSEditor.

Этот проект реализует большую часть функциональных возможностей веб-служб Exchange; Примеры все основные функциональные возможности веб-служб Exchange, здесь можно найти.

This project implements most of the EWS functionality; you can find examples of all the core EWS functionality here.

Если вы не разработчика .NET Framework, многие библиотеки клиента можно найти, для разработки веб-служб Exchange, используйте Java, Python, PHP и других языках.If you're not a .NET Framework developer, you can find many client libraries out there for EWS development that use Java, Python, PHP, and other languages.

Задайте вопросы и решения проблемAsk questions and solve problems

Нужна помощь по началу приемы работы и в случае не удалось найти ответы?Need help getting things done and you're not finding answers? Форум разработчиков Exchange для получения сведений ли кто-либо сталкивались и разрешить этой проблеме можно найти.

You can search the Exchange Development forum to find out whether someone else has encountered and resolved the same issue. Сообщество участники ответили сотни вопросы о разработке Exchange.

A community of contributors have answered hundreds of questions about Exchange development. Кроме того, можно найти узлы третьих сторон, форумы и блоги, охватывающие Exchange (en), может оказаться решения, которые вы ищете.

You can also find third-party sites, forums, and blogs that cover Exchange development and might have the solution you're looking for.

Если требуется дополнительная помощь в службу поддержки Майкрософт .Contact Microsoft support if you need additional assistance.

Группа поддержки разработчиков Exchange службы с помощью опытных специалистов, которые могут помочь ответы на вопросы о разработке Exchange.

The Exchange Developer support team is staffed with seasoned professionals who can help answer your questions about Exchange development.

См. такжеSee also

Источник: https://docs.microsoft.com/ru-ru/exchange/client-developer/exchange-web-services/start-using-web-services-in-exchange

Поделиться:
Нет комментариев

    Добавить комментарий

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.