Similar presentations:
WEB Services. Зачем? За что и почему?
1. Лекция 1 WEB Services. Зачем? За что и почему?
2. Содержание
Трехуровневая архитектура приложения. Что? Как? Зачем?
Web-Services? Что? Как? Зачем?
XML, JSON, CSV? На кошечках
SOAP UI
Домашнее Задание: Jenkins Jobe Use
3. Что? Как?: Трехуровневая архитектура
CortellisGUI
Cortellis
Services
Hell
4. Зачем?: Трехуровневая архитектура
ХорошоПлохо
Масштабируемость – способность системы, сети или процесса справляться с
увеличением рабочей нагрузки (увеличивать свою производительность) при
добавлении ресурсов (обычно аппаратных). = много данных и пользователей ->
виснет приложение = добавили еще сервер –> нет проблемы
Более высокая сложность создания приложений;
Конфигурируемость — изолированность уровней друг от друга позволяет (при
правильном развертывании архитектуры) быстро и простыми средствами
переконфигурировать систему при возникновении сбоев или при плановом
обслуживании на одном из уровней = легче править если полетела часть системы
Сложнее в разворачивании и администрировании;
высокая безопасность
Высокие требования к производительности серверов приложений и сервера базы
данных, а, значит, и высокая стоимость серверного оборудования;
высокая надёжность
Высокие требования к скорости канала (сети) между сервером базы данных и
серверами приложений.
Низкие требования к скорости канала (сети) между терминалами и сервером
приложений = дешевле других решений
Низкие требования к производительности и техническим характеристикам
терминалов, как следствие снижение их стоимости. Терминалом может выступать
не только компьютер, но и, например, мобильный телефон. = дешевле других
решений
5. Вывод:
- Сервисы по сути набор фундаментальных функций для обработкиданных которые нужно представить пользователю, в зависимости от
бизнес задачи приложения.
DB
DB
DB
DB
DB
Services,
Обработка и
форматирова
ние данных
GUI
6.
Cortellis Services2) По Проектам
1) По Типу
протокола
Cortellis
Services
CI/RI
SI/CTI
SOAP
CII
Rest
3) По Функциям(В общем):
Retrieve = open report
Search = search, filtering, sorting, homepage port lets, total counts etc
Ontology = advanced search options
Export Search = export search result page
Export Service = export report page
И многие другие (Будет освещено отдельными лекциями)
7. Как?: Web-Services
Как сервисы общаются с другими прослойками?Для этого используются 2 типа протоколов*:
- SOAP (Simple Object Access Protocol)
Основное:
Request/Response XML
Громоздкий медленный, надежный
- XML-RPC (XML Remote Procedure Call)
Как ни будь в другой раз.
Протокол передачи данных — набор соглашений интерфейса логического уровня, которые определяют обмен данными между
различными программами. Эти соглашения задают единообразный способ передачи сообщений и обработки ошибок при
взаимодействии программного обеспечения разнесённой в пространстве аппаратуры, соединённой тем или иным интерфейсом
(чел. Дефолтный набор правил по которым происходит передача данных как Язык общения для людей. )
WSDL(англ. Web Services Description Language) – язык описания веб-сервисов и доступа к ним, основанный на языке XML.
Web Application Description Language (WADL) машинно-читаемое XML описание для HTTP-шных web приложений (как правило
REST веб сервисы). Позиционируется как эквивалент WSDL для REST. WADL моделирует ресурсы предоставляемые сервисом и
взаимосвязи между ними.
XML – Расширяемый язык разметки, предназначенный для хранения и передачи структурированных данных(чел. набор
условных символов, что б логически структурировать многобуков).
- REST (Representational State Transfer)
стиль построения архитектуры распределенного приложения
Основное:
Request /Response XML, JSON, CSV
Быстрый поддерживает несколько форматов
8.
XML? На кошечкахМинимальной единицей есть Tag:
<ИмяТага>Значение</ ИмяТага >
У tag могут быть attributes:
< ИмяТага attribute1 = ‘1’ ….>Значение</ ИмяТага >
В пределах него находятся значения.
Если в tag есть несколько tags,
то ее называют Node:
<ИмяНода>
<ИмяТага>Значение</ИмяТага>
<ИмяТага>Значение</ИмяТага>
<ИмяТага>Значение</ИмяТага>
</ИмяНода>
В переводе на человеческий язык это логические блоки, что б выделить «Вот
Мухи, Вот котлеты».
Если мы перечисляем кошечек мы обуваем их так:
<Кошечки>
<Кошечка номер=“1” качество = “хорошее”>Печка</ Кошечка>
<Кошечка номер=“2” качество = “не очень”> Мурка</ Кошечка>
<Кошечка номер=“3” качество = “лучше бы собачка”> Тапок</ Кошечка>
</ Кошечки >
Потом таким же макаром собачек, крокодильчиков и все что заблагорассудится
9.
JSON, CSV? На кошечкахJSON По сути похоже на XML, только меньше буков и больше скобочек:
{“Кошечка":
{"@номер":"1",
"@качество":"плохое",
"$":“Фрося”},
“Кошечка":
{"@номер":"1",
"@качество":“порядощег",
"$":“евлампия”}
}
CSV просто строка(первая перечисляет поля, остальные значения в порядке
указанном в 1й):
Вид, номер, качество, наименование
Кошечка, 1, not bad, Вася;
Kошечка, 2, аащпе няша, Джигурда;
10.
Cortellis ServicesEndpoint - ссылка на проект(Если открыть ссылку до /mr/ включительно можно увидеть список сервисов доступных на
данном хосте(SOAP и REST))
http://хост:порт(или название баланс линки)/mr/названиеСервиса/Версия?расширение
Пример:
Если пройти по ссылке:
http://pcnamwprod01.westlan.com:8200/mr/ExportService/v2?wsdl (Soap Service) или по этой
http://pcnamwprod01.westlan.com:8200/mr/AsyncExportService/rest/v2?_wadl&_type=xml (Rest Service)
Вы увидите исходную структуру(Дерево Элементов) этого сервиса(в XML формате), и можете просмотреть список
доступных операций.
11.
Cortellis Services12.
Cortellis Services13. SOAP UI
14. SOAP UI
15. SOAP UI
16. SOAP UI
• Soap• REST
17. SOAP UI
Onу Click here
Double Click here
Soap Call
Вы можете ввести свои данные
Или заменить колл на тот
который получили в логах
18. SOAP UI
• SoapResponse
in XML
Format
Soap Request
Отобразить
47
сорс айди
для сорс конференс документа
начиная с 7го резалта
По запросу «pain or not pain»
19. SOAP UI
Same Stuff
REST Call Input
Вы можете ввести свои
данные
Get и Post – и другие Методы протокола (См.
http://ru.wikipedia.org/wiki/HTTP#.D0.9C.D0.B5.D1.82.D0.BE.D0.B4.D1.8B)
20. SOAP UI
Insert Data Here.В данном случае мы просим
отобразить
название
драгов
(от 1-го
до 10)
Для поиска по «Cancer»
REST Response in Json Format
21. Что? Зачем?: Web-Services23170101#
22. Что? Зачем?: Web-Services
Soap Rquest<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:retrieve
xmlns:ns2="http://retrieve.v3.soap.service.soaservices.stack.soa.ls.thomson.com/"
xmlns:ns3="http://serviceversion">
<retrieveInput>
<applicationID>nggui#5826</applicationID>
<userID>4188808</userID>
<idList>
<id>136632</id>
</idList>
<entityType>nextgendealall(breadth="basic")</entityType>
<fieldList>
<field>summary</field>
<field>timeline</field>
</fieldList>
<checkAvailability>false</checkAvailability>
</retrieveInput>
</ns2:retrieve>
</soap:Body>
</soap:Envelope>
Soap Response
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:retrieveResponse
xmlns:ns1="http://retrieve.v3.soap.service.soaservices.stack.soa.ls.thomson.com/">
<retrieveOutput xmlns:ns2="http://retrieve.v3.soap.service.soaservices.stack.soa.ls.thomson.com/"
xmlns:ns3="http://serviceversion">
<Deals>
<Deal id="136632">
<Summary><![ICDATA[<para>In February 2009,
<ulink linkType="Company" linkID="1061736">Cancer Advances</ulink>
acquired the technology and intellectual property (IP) related to immune products, including
<ulink linkType="Drug" linkID="74010">polyclonal antibody stimulator</ulink>
(PAS) from an undisclosed company for gastric, pancreatic and colorectal cancers
[<ulink linkType="Reference" linkID="1227569">1227569</ulink>].</para>]]>
</Summary>
<Timeline>
<Event>
<Date>2009-02-02T00:00:00-06:00</Date>
<Type>Original Deal</Type>
<Summary><![CDATA[<para>In February 2009, <ulink linkType="Company"
linkID="1061736">Cancer Advances</ulink> acquired the technology and intellectual property (IP) related
to immune products, including <ulink linkType="Drug" linkID="74010">polyclonal antibody
stimulator</ulink> (PAS) from an undisclosed company for gastric, pancreatic and colorectal cancers.
Cancer Advances acquired the intellectual property in exchange for an undisclosed purchase price. The
purchase agreement included multiple patents, including clinical and safety data for over 1,100 patients
treated with PAS to date for gastric, pancreatic and colorectal cancers [<ulink linkType="Reference"
linkID="1227569">1227569</ulink>].</para>]]></Summary>
<PaymentsToPrincipal>
<Payment>
<Type>Other</Type>
<Value>
<Accuracy sortorder="2">Payment Unspecified</Accuracy>
</Value>
<Reference id="1227569">1227569</Reference>
</Payment>
</PaymentsToPrincipal>
</Event>
</Timeline>
</Deal>
</Deals>
</retrieveOutput>
</ns1:retrieveResponse>
</soap:Body>
</soap:Envelope>
23. Что? Зачем?: Web-Services
24. Дз: Jenkins Job Steps
Зачем нужна эта джоба? – Логирует сервис коллы которые используюся той или иной частью гуи.STR:
• Navigate to https://ci.thomsonreuterslifesciences.com/jenkins/job/SYS-Cortellis-LOGS/
• Login With your Safe account
• Click «Собрать сейчас»
• Вводим следующие параметры:
STACK (энвайермент на котором вы раните GUI степы EAGAN_PROD_1 для дз.)
LOG_NAME, ng-gui
METHOD (Какой удобнее там написано в чем разница.), tail_f
LOG_SIZE Only for "tail" & "head" method option. Amount of lines to display.
Timeout(время в течении которого вы планируете логировать ваши действия)
И нажимаем Build
• Наводим мышку на запущенную вами джобу и из появившегося списка выбираем «вывод
консоли»
• Входим в Cortellis GUI по прямой линке http://frontend-srv-prod-eagan1.int.thomsonreuters.com:18080/
25. Jenkins Job Steps
Если вы все сделали правильно то вы видите эту страницу
26. Jenkins Job Steps
Как Читать этот ужас? - Ctrl + F вводите свой айди(логин который вы юзали для
cortellis GUI)
Далее вы наблюдаете примерно следующее(Пример):
Эндпоинт
Колл
Конец
Колла
Начало
Колла
• Задание
https://docs.google.com/spreadsheet/ccc?key=0AjNiGKAB0jTZdFYw
VWpSdFlWYzJiMDJZZkExc3NyUEE#gid=0
27. Пожалуйста, задавайте ваши вопросы.
28. Environments
GUI Links
http://frontend-srv-qa-edc-2.int.thomsonreuters.com:18080
http://frontend-srv-qa-edc-1.int.thomsonreuters.com:18080
http://frontend-srv-qa-eagan-1.int.thomsonreuters.com:18080
http://frontend-srv-qa-eagan-2.int.thomsonreuters.com:18080
http://frontend-srv-prod-edc-2.int.thomsonreuters.com:18080
http://frontend-srv-prod-edc-1.int.thomsonreuters.com:18080
http://frontend-srv-prod-eagan-1.int.thomsonreuters.com:18080
http://frontend-srv-prod-eagan-2.int.thomsonreuters.com:18080
Билд и дев общие
Services:
See in the logs
29. Environments
Эндпоинты для сервисов. попросили в группе 2на всякий кидаю вам
QA
http://ngs-qa-edc.tshhosting.com:8200/mr/
http://ngs-qa-eagan.tshhosting.com:8200/mr/
PROD
http://ngs-prod-edc.tshhosting.com:8200/mr/
http://ngs-prod-eagan.tshhosting.com:8200/mr/
BUILD создает QA EDC сервис ссылки. почему? а хз.
Открыв ссылки до мр вы получите список доступных сервисов(полных линок для создания проэкта)
Воизбежание усложнений процесса советую брать ссылки из логов
--------------------------ID: 979
Address: http://ngs-qa-edc.tshhosting.com:8200/mr/ChemistrySearchService/v4
__________________
В случае соап сервисов(при создании проэкта добавляем ?wsdl)
В случае реста все равно через MR список рест ссылок внизу страницы
Выглядит так
-------------------Endpoint address: http://ngs-qa-edc.tshhosting.com:8200/mr/ExportService/rest/v2
WADL : http://ngs-qa-edc.tshhosting.com:8200/mr/ExportService/rest/v2?_wadl&type=xml
---------------------------------копируетет при создании проэкта так:
http://ngs-qa-edc.tshhosting.com:8200/mr/ExportService/rest/v2?_wadl
хвост &type=xml - не нуден для создания проэкта через SOAP UI