Горещите технологии в web – SOAP, XML-RPC и AJAX

20
Горещите технологии Горещите технологии в в web web SOAP, XML- SOAP, XML- RPC RPC и и AJAX AJAX Георги Пенков, Марин Маринов www.devbg.org

description

Горещите технологии в web – SOAP, XML-RPC и AJAX. Георги Пенков, Марин Маринов. www.devbg.org. Въведение. “ Само този, който знае от къде идва, знае на къде отива” – корейска поговорка Целите Да припомним къде бяхме Да припомним през какво преминахме Да видим къде сме сега - PowerPoint PPT Presentation

Transcript of Горещите технологии в web – SOAP, XML-RPC и AJAX

Page 1: Горещите технологии в  web  –  SOAP, XML-RPC  и  AJAX

Горещите технологии в Горещите технологии в webweb – – SOAP, XML-RPCSOAP, XML-RPC и и

AJAXAJAXГеорги Пенков,Марин МариновГеорги Пенков,Марин Маринов

www.devbg.orgwww.devbg.org

Page 2: Горещите технологии в  web  –  SOAP, XML-RPC  и  AJAX

ВъведениеВъведениеВъведениеВъведение

• ““Само този, който знае от къде идва, Само този, който знае от къде идва, знае на къде отива”знае на къде отива” – корейска – корейска поговоркапоговорка

• ЦелитеЦелите• Да припомним къде бяхмеДа припомним къде бяхме• Да припомним през какво преминахмеДа припомним през какво преминахме• Да видим къде сме сегаДа видим къде сме сега

• SOAP SOAP и и XML-RPCXML-RPC• AJAXAJAX

• … … за да знаем на къде отиваме…за да знаем на къде отиваме…

• ““Само този, който знае от къде идва, Само този, който знае от къде идва, знае на къде отива”знае на къде отива” – корейска – корейска поговоркапоговорка

• ЦелитеЦелите• Да припомним къде бяхмеДа припомним къде бяхме• Да припомним през какво преминахмеДа припомним през какво преминахме• Да видим къде сме сегаДа видим къде сме сега

• SOAP SOAP и и XML-RPCXML-RPC• AJAXAJAX

• … … за да знаем на къде отиваме…за да знаем на къде отиваме…

Page 3: Горещите технологии в  web  –  SOAP, XML-RPC  и  AJAX

ИсториятаИсториятаИсториятаИсторията

• ARPAnet ARPAnet поставя началото на бъдещият поставя началото на бъдещият Интернет през 1968Интернет през 1968

• Действащите лица са военните и Действащите лица са военните и университетитеуниверситетите

• Архитектурата има значениеАрхитектурата има значение

• Mainframes & UNIX Mainframes & UNIX

• Софтуерните компоненти - Douglas Софтуерните компоненти - Douglas McIlroy – 1968, Гармиш, ГерманияMcIlroy – 1968, Гармиш, Германия

• RPC – RPC – 1976 и началото на “модерните” 1976 и началото на “модерните” разпределени архитектуриразпределени архитектури

• ARPAnet ARPAnet поставя началото на бъдещият поставя началото на бъдещият Интернет през 1968Интернет през 1968

• Действащите лица са военните и Действащите лица са военните и университетитеуниверситетите

• Архитектурата има значениеАрхитектурата има значение

• Mainframes & UNIX Mainframes & UNIX

• Софтуерните компоненти - Douglas Софтуерните компоненти - Douglas McIlroy – 1968, Гармиш, ГерманияMcIlroy – 1968, Гармиш, Германия

• RPC – RPC – 1976 и началото на “модерните” 1976 и началото на “модерните” разпределени архитектуриразпределени архитектури

Page 4: Горещите технологии в  web  –  SOAP, XML-RPC  и  AJAX

ИсториятаИсториятаИсториятаИсторията

• Микрокомпютрите стават Микрокомпютрите стават PCPC-та с -та с IBM IBM и и Apple Apple презпрез 1981 1981

• ““WWWWWW”” aka aka WebWeb – началото е през 1989- – началото е през 1989-1992 (1992 (HTTP, HTML, URL – Tim Berners-Lee HTTP, HTML, URL – Tim Berners-Lee и и WWW Consortium)WWW Consortium)

• Browser Wars - Browser Wars - стандартите се развиват стандартите се развиват бързо, но хаотичнобързо, но хаотично

• Архитектурата все така има значениеАрхитектурата все така има значение

• DCOM/COM+, Java RMI, CORBADCOM/COM+, Java RMI, CORBA

• SOASOA

• Микрокомпютрите стават Микрокомпютрите стават PCPC-та с -та с IBM IBM и и Apple Apple презпрез 1981 1981

• ““WWWWWW”” aka aka WebWeb – началото е през 1989- – началото е през 1989-1992 (1992 (HTTP, HTML, URL – Tim Berners-Lee HTTP, HTML, URL – Tim Berners-Lee и и WWW Consortium)WWW Consortium)

• Browser Wars - Browser Wars - стандартите се развиват стандартите се развиват бързо, но хаотичнобързо, но хаотично

• Архитектурата все така има значениеАрхитектурата все така има значение

• DCOM/COM+, Java RMI, CORBADCOM/COM+, Java RMI, CORBA

• SOASOA

Page 5: Горещите технологии в  web  –  SOAP, XML-RPC  и  AJAX

Клиент-сървър архитектураКлиент-сървър архитектураКлиент-сървър архитектураКлиент-сървър архитектура

• 2-слойна архитектура2-слойна архитектура• The Fat Client ProblemThe Fat Client Problem

• Клиентът съдържа бизнес логиката и Клиентът съдържа бизнес логиката и презентацията, сървъра се грижи само за презентацията, сървъра се грижи само за запазването и получаването на даннитезапазването и получаването на данните

• Много зависи от платформатаМного зависи от платформата

• The Thin Client ProblemThe Thin Client Problem• Бизнес логиката е изнесена в Бизнес логиката е изнесена в stored stored

procedures procedures в базата даннив базата данни• Трудно се променяТрудно се променя• Натоварвания на сървъра и мрежатаНатоварвания на сървъра и мрежата

• 2-слойна архитектура2-слойна архитектура• The Fat Client ProblemThe Fat Client Problem

• Клиентът съдържа бизнес логиката и Клиентът съдържа бизнес логиката и презентацията, сървъра се грижи само за презентацията, сървъра се грижи само за запазването и получаването на даннитезапазването и получаването на данните

• Много зависи от платформатаМного зависи от платформата

• The Thin Client ProblemThe Thin Client Problem• Бизнес логиката е изнесена в Бизнес логиката е изнесена в stored stored

procedures procedures в базата даннив базата данни• Трудно се променяТрудно се променя• Натоварвания на сървъра и мрежатаНатоварвания на сървъра и мрежата

Page 6: Горещите технологии в  web  –  SOAP, XML-RPC  и  AJAX

Трислойна архитектураТрислойна архитектураТрислойна архитектураТрислойна архитектура

• Front-end – Front-end – представяне и потребителски представяне и потребителски интерфейсинтерфейс

• Back-end – Back-end – съхранение на даннитесъхранение на данните

• Middle-tier – Middle-tier – бизнес логика, бизнес логика, Application Application ServerServer

• Решава много от проблемите на Решава много от проблемите на клиент/сървър архитектуратаклиент/сървър архитектурата• Логиката и презентацията са разделениЛогиката и презентацията са разделени

• Минимизира мрежовите проблемиМинимизира мрежовите проблеми

• Минимизира Минимизира DB DB проблемипроблеми

• Различни технологииРазлични технологии

• Front-end – Front-end – представяне и потребителски представяне и потребителски интерфейсинтерфейс

• Back-end – Back-end – съхранение на даннитесъхранение на данните

• Middle-tier – Middle-tier – бизнес логика, бизнес логика, Application Application ServerServer

• Решава много от проблемите на Решава много от проблемите на клиент/сървър архитектуратаклиент/сървър архитектурата• Логиката и презентацията са разделениЛогиката и презентацията са разделени

• Минимизира мрежовите проблемиМинимизира мрежовите проблеми

• Минимизира Минимизира DB DB проблемипроблеми

• Различни технологииРазлични технологии

Page 7: Горещите технологии в  web  –  SOAP, XML-RPC  и  AJAX

““Старият” Старият” WebWeb““Старият” Старият” WebWeb

• Старият Старият WebWeb – “организиран хаос” – “организиран хаос” през през 19981998

• Съдържанието е богато, добавя се Съдържанието е богато, добавя се труднотрудно

• Множество различни стандарти и Множество различни стандарти и технологиитехнологии

• Програмистите “говорят” различни езициПрограмистите “говорят” различни езици

• Машините “говорят” различни езициМашините “говорят” различни езици

• EnterpriseEnterprise системите не са готови за системите не са готови за интернетинтернет

• Старият Старият WebWeb – “организиран хаос” – “организиран хаос” през през 19981998

• Съдържанието е богато, добавя се Съдържанието е богато, добавя се труднотрудно

• Множество различни стандарти и Множество различни стандарти и технологиитехнологии

• Програмистите “говорят” различни езициПрограмистите “говорят” различни езици

• Машините “говорят” различни езициМашините “говорят” различни езици

• EnterpriseEnterprise системите не са готови за системите не са готови за интернетинтернет

Page 8: Горещите технологии в  web  –  SOAP, XML-RPC  и  AJAX

CGI CGI – добрите стари дни– добрите стари дниCGI CGI – добрите стари дни– добрите стари дни

• Common Gateway Common Gateway Interface (CGI) Interface (CGI) – – стандартния начин за стандартния начин за реализиране на реализиране на server-server-side web side web базирани базирани приложенияприложения

• Разчита на проста схема Разчита на проста схема за предаване на данните за предаване на данните между между web-serverweb-server-а и -а и CGI CGI приложениетоприложението

• Първата стъпка към Първата стъпка към “оживяването” на “оживяването” на Интернет страниците Интернет страниците (около 85% (около 85% CGI CGI скриптовете са скриптовете са Perl Perl базиранибазирани))

• Common Gateway Common Gateway Interface (CGI) Interface (CGI) – – стандартния начин за стандартния начин за реализиране на реализиране на server-server-side web side web базирани базирани приложенияприложения

• Разчита на проста схема Разчита на проста схема за предаване на данните за предаване на данните между между web-serverweb-server-а и -а и CGI CGI приложениетоприложението

• Първата стъпка към Първата стъпка към “оживяването” на “оживяването” на Интернет страниците Интернет страниците (около 85% (около 85% CGI CGI скриптовете са скриптовете са Perl Perl базиранибазирани))

• Стандартен поток на Стандартен поток на данните при данните при CGICGI

• Стандартен поток на Стандартен поток на данните при данните при CGICGI

Web ServerWeb Server

CGICGI

BrowserBrowser

HTTP/ HTML

stdin / stdout

server side

Page 9: Горещите технологии в  web  –  SOAP, XML-RPC  и  AJAX

Web Services – Web Services – нова нова надежданадеждаWeb Services – Web Services – нова нова надежданадежда

• W3C defW3C def: : software system designed to support software system designed to support interoperable machine-to-machine interaction interoperable machine-to-machine interaction over a networkover a network

• W3C defW3C def: : software system designed to support software system designed to support interoperable machine-to-machine interaction interoperable machine-to-machine interaction over a networkover a network

Page 10: Горещите технологии в  web  –  SOAP, XML-RPC  и  AJAX

Web Services Protocol StackWeb Services Protocol StackWeb Services Protocol StackWeb Services Protocol Stack

• Service TransportService Transport• HTML, SMTP, BEEP, HTML, SMTP, BEEP,

Jabber…Jabber…

• MessagingMessaging• SOAP, XML-RPC, SOAP, XML-RPC,

REST, …REST, …

• Service DescriptionService Description• WSDLWSDL

• Service DiscoveryService Discovery• UDDIUDDI

• Service TransportService Transport• HTML, SMTP, BEEP, HTML, SMTP, BEEP,

Jabber…Jabber…

• MessagingMessaging• SOAP, XML-RPC, SOAP, XML-RPC,

REST, …REST, …

• Service DescriptionService Description• WSDLWSDL

• Service DiscoveryService Discovery• UDDIUDDI

• WS Protocol StackWS Protocol Stack• WS Protocol StackWS Protocol Stack

Extensions: Extensions: Security, Security,

Management, Management, Bussines Bussines

ProcessesProcesses

Service Discovery Service Discovery

Service DescriptionService Description

MessagingMessaging

Service TransportService Transport

Page 11: Горещите технологии в  web  –  SOAP, XML-RPC  и  AJAX

XML-RPC XML-RPC накратконакраткоXML-RPC XML-RPC накратконакратко

• Опростен протоколОпростен протокол

• Създаден от Създаден от Dave WinerDave Winer, на базата на ранен , на базата на ранен draftdraft на на SOAPSOAP

• Стандартни, лесно разбираеми типове данниСтандартни, лесно разбираеми типове данни

• Множество имплементации на различни езициМножество имплементации на различни езици

• ws-xmlrpc – Apache ws-xmlrpc – Apache имплементация заимплементация за Java Java

• JAX-RPC – Sun JAX-RPC – Sun имплементация за имплементация за JavaJava

• XML-RPC for PHPXML-RPC for PHP

• XML::RPC – Perl XML::RPC – Perl модулмодул

• XML-RPC.NETXML-RPC.NET

• Опростен протоколОпростен протокол

• Създаден от Създаден от Dave WinerDave Winer, на базата на ранен , на базата на ранен draftdraft на на SOAPSOAP

• Стандартни, лесно разбираеми типове данниСтандартни, лесно разбираеми типове данни

• Множество имплементации на различни езициМножество имплементации на различни езици

• ws-xmlrpc – Apache ws-xmlrpc – Apache имплементация заимплементация за Java Java

• JAX-RPC – Sun JAX-RPC – Sun имплементация за имплементация за JavaJava

• XML-RPC for PHPXML-RPC for PHP

• XML::RPC – Perl XML::RPC – Perl модулмодул

• XML-RPC.NETXML-RPC.NET

Page 12: Горещите технологии в  web  –  SOAP, XML-RPC  и  AJAX

XML-RPC XML-RPC примерпримерXML-RPC XML-RPC примерпример

<?xml version="1.0"?><?xml version="1.0"?>

<methodCall> <methodCall>

<methodName>examples.getStateName</methodName> <methodName>examples.getStateName</methodName>

<params><params>

<param><value><i4>41</i4></value></param><param><value><i4>41</i4></value></param>

</params></params>

</methodCall> </methodCall>

XML-RPC requestXML-RPC request

<?xml version="1.0"?><?xml version="1.0"?>

<methodResponse><methodResponse>

<params><params>

<param> <value><string>South Dakota</string></value> <param> <value><string>South Dakota</string></value> </param></param>

</params></params>

</methodResponse> </methodResponse>

XML-RPC responseXML-RPC response

Page 13: Горещите технологии в  web  –  SOAP, XML-RPC  и  AJAX

SOAP SOAP накратконакраткоSOAP SOAP накратконакратко

• Преживява много сериозен процес на Преживява много сериозен процес на анализ и дизайнанализ и дизайн

• Много по-сложен, сравнение с Много по-сложен, сравнение с XML-RPC, XML-RPC, но пък е направен по всички правила на но пък е направен по всички правила на W3CW3C

• Съобщението се разделя на Съобщението се разделя на header header и и bodybody

• Routing Routing и и rolesroles• SecuritySecurity• User Defined TypesUser Defined Types• По-сложен модел на По-сложен модел на processingprocessing

• Преживява много сериозен процес на Преживява много сериозен процес на анализ и дизайнанализ и дизайн

• Много по-сложен, сравнение с Много по-сложен, сравнение с XML-RPC, XML-RPC, но пък е направен по всички правила на но пък е направен по всички правила на W3CW3C

• Съобщението се разделя на Съобщението се разделя на header header и и bodybody

• Routing Routing и и rolesroles• SecuritySecurity• User Defined TypesUser Defined Types• По-сложен модел на По-сложен модел на processingprocessing

Page 14: Горещите технологии в  web  –  SOAP, XML-RPC  и  AJAX

SOAP message SOAP message примерпримерSOAP message SOAP message примерпример

<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"><env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">

<env:Header><env:Header>

<n:alertcontrol xmlns:n="http://example.org/alertcontrol"><n:alertcontrol xmlns:n="http://example.org/alertcontrol">

<n:priority>1</n:priority><n:priority>1</n:priority>

<n:expires>2001-06-22T14:00:00-05:00</n:expires><n:expires>2001-06-22T14:00:00-05:00</n:expires>

</n:alertcontrol></n:alertcontrol>

</env:Header></env:Header>

<env:Body><env:Body>

<m:alert xmlns:m="http://example.org/alert"><m:alert xmlns:m="http://example.org/alert">

<m:msg>Pick up Mary at school at 2pm</m:msg><m:msg>Pick up Mary at school at 2pm</m:msg>

</m:alert></m:alert>

</env:Body></env:Body>

</env:Envelope></env:Envelope>

SOAP message

Page 15: Горещите технологии в  web  –  SOAP, XML-RPC  и  AJAX

AJAXAJAXAJAXAJAX

• AJAX = Asynchronous JavaScript and XMLAJAX = Asynchronous JavaScript and XML

• AJAX AJAX не е конкретна технология, а е не е конкретна технология, а е подход на реализацияподход на реализация

• Наречен е така от Наречен е така от Jesse James GarrettJesse James Garrett, , February 2005 February 2005 в статията му “в статията му “Ajax: A New Ajax: A New Approach to Web ApplicationsApproach to Web Applications””

• Google Google го налага в почти всички свои го налага в почти всички свои продукти, поради което придобива продукти, поради което придобива огромна популярностогромна популярност

• Gmail Gmail го изстрелва на върхаго изстрелва на върха

• AJAX = Asynchronous JavaScript and XMLAJAX = Asynchronous JavaScript and XML

• AJAX AJAX не е конкретна технология, а е не е конкретна технология, а е подход на реализацияподход на реализация

• Наречен е така от Наречен е така от Jesse James GarrettJesse James Garrett, , February 2005 February 2005 в статията му “в статията му “Ajax: A New Ajax: A New Approach to Web ApplicationsApproach to Web Applications””

• Google Google го налага в почти всички свои го налага в почти всички свои продукти, поради което придобива продукти, поради което придобива огромна популярностогромна популярност

• Gmail Gmail го изстрелва на върхаго изстрелва на върха

Page 16: Горещите технологии в  web  –  SOAP, XML-RPC  и  AJAX

AJAXAJAXAJAXAJAX

• AJAX AJAX комбинира следните технологиикомбинира следните технологии

• HTML/XHTML + CSS HTML/XHTML + CSS за форматиране на за форматиране на презентациятапрезентацията

• DOM + Client Side Script (JavaScript) – DOM + Client Side Script (JavaScript) – за за динамичен достъп до отделните динамичен достъп до отделните елементи на документаелементи на документа

• XMLHttpRequest object XMLHttpRequest object и/или и/или IFRAME IFRAME за за динамичен достъп до сървърадинамичен достъп до сървъра

• XML XML за пакетиране на данните, но също за пакетиране на данните, но също JSON (JavaScript Object Notation)JSON (JavaScript Object Notation)

• AJAX AJAX комбинира следните технологиикомбинира следните технологии

• HTML/XHTML + CSS HTML/XHTML + CSS за форматиране на за форматиране на презентациятапрезентацията

• DOM + Client Side Script (JavaScript) – DOM + Client Side Script (JavaScript) – за за динамичен достъп до отделните динамичен достъп до отделните елементи на документаелементи на документа

• XMLHttpRequest object XMLHttpRequest object и/или и/или IFRAME IFRAME за за динамичен достъп до сървърадинамичен достъп до сървъра

• XML XML за пакетиране на данните, но също за пакетиране на данните, но също JSON (JavaScript Object Notation)JSON (JavaScript Object Notation)

Page 17: Горещите технологии в  web  –  SOAP, XML-RPC  и  AJAX

AJAXAJAXAJAXAJAX

• ПредимстваПредимства• Доближава Доближава desktop desktop

experience-experience-а до а до webweb• Премахва досадното Премахва досадното

изчакване да се зареди изчакване да се зареди страницатастраницата

• Ускорява разработкатаУскорява разработката• Сайтовете “проговарят” Сайтовете “проговарят”

на езика на на езика на WSWS

• НедостатъциНедостатъци• Съвместимост с Съвместимост с

различните различните browserbrowser-и-и• Network Latency Network Latency

обработкаобработка• Промяна на стандартния Промяна на стандартния

browse browse моделмодел• BookmarkingBookmarking

• ПредимстваПредимства• Доближава Доближава desktop desktop

experience-experience-а до а до webweb• Премахва досадното Премахва досадното

изчакване да се зареди изчакване да се зареди страницатастраницата

• Ускорява разработкатаУскорява разработката• Сайтовете “проговарят” Сайтовете “проговарят”

на езика на на езика на WSWS

• НедостатъциНедостатъци• Съвместимост с Съвместимост с

различните различните browserbrowser-и-и• Network Latency Network Latency

обработкаобработка• Промяна на стандартния Промяна на стандартния

browse browse моделмодел• BookmarkingBookmarking

• Поток на данни при Поток на данни при AJAXAJAX• Поток на данни при Поток на данни при AJAXAJAX

Web ServerWeb Server

Web Web ServiceService

BrowserBrowser

HTTP(S)/ XMLHTTP(S)/ XML

server server sid

esid

e

AJAX frameworkAJAX framework

Page 18: Горещите технологии в  web  –  SOAP, XML-RPC  и  AJAX

ИзводитеИзводитеИзводитеИзводите

• Новите технологии помагат на Новите технологии помагат на Web Web да да еволюираеволюира

• WS WS вече се използват стабилно както в вече се използват стабилно както в интернет, така и в интернет, така и в Enterprise Enterprise решениятарешенията

• AJAX AJAX довежда довежда desktop desktop модела в уеб модела в уеб браузърабраузъра

• Комбинацията Комбинацията WS WS базиран на базиран на SOAP SOAP + + AJAX AJAX ще позволи на компаниите да ще позволи на компаниите да капитализират ресурсите отделени за капитализират ресурсите отделени за WS WS и в частта “краен потребител”и в частта “краен потребител”

• Новите технологии помагат на Новите технологии помагат на Web Web да да еволюираеволюира

• WS WS вече се използват стабилно както в вече се използват стабилно както в интернет, така и в интернет, така и в Enterprise Enterprise решениятарешенията

• AJAX AJAX довежда довежда desktop desktop модела в уеб модела в уеб браузърабраузъра

• Комбинацията Комбинацията WS WS базиран на базиран на SOAP SOAP + + AJAX AJAX ще позволи на компаниите да ще позволи на компаниите да капитализират ресурсите отделени за капитализират ресурсите отделени за WS WS и в частта “краен потребител”и в частта “краен потребител”

Page 19: Горещите технологии в  web  –  SOAP, XML-RPC  и  AJAX

КонтактиКонтактиКонтактиКонтакти

Sofia.pmSofia.pmhttp://sofia.pm.org

Perl @ Sofia UniversityPerl @ Sofia Universityhttp://perl.phreedom.org

Bulgarian Association of Software Bulgarian Association of Software DevelopersDevelopershttp://www.devbg.org

[email protected]@phreedom.org

Page 20: Горещите технологии в  web  –  SOAP, XML-RPC  и  AJAX

Въпроси и отговори ;)Въпроси и отговори ;)Въпроси и отговори ;)Въпроси и отговори ;)

Въпроси?Въпроси?Въпроси?Въпроси?