200 likes | 321 Views
Горещите технологии в web – SOAP, XML-RPC и AJAX. Георги Пенков, Марин Маринов. www.devbg.org. Въведение. “ Само този, който знае от къде идва, знае на къде отива” – корейска поговорка Целите Да припомним къде бяхме Да припомним през какво преминахме Да видим къде сме сега
E N D
Горещите технологии в web – SOAP, XML-RPC и AJAX Георги Пенков,Марин Маринов www.devbg.org
Въведение • “Само този, който знае от къде идва, знае на къде отива” – корейска поговорка • Целите • Да припомним къде бяхме • Да припомним през какво преминахме • Да видим къде сме сега • SOAP и XML-RPC • AJAX • … за да знаем на къде отиваме…
Историята • ARPAnet поставя началото на бъдещият Интернет през 1968 • Действащите лица са военните и университетите • Архитектурата има значение • Mainframes & UNIX • Софтуерните компоненти - Douglas McIlroy – 1968, Гармиш, Германия • RPC – 1976 и началото на “модерните” разпределени архитектури
Историята • Микрокомпютрите стават PC-та с IBM и Apple през 1981 • “WWW” akaWeb – началото е през 1989-1992 (HTTP, HTML, URL – Tim Berners-Lee и WWW Consortium) • Browser Wars - стандартите се развиват бързо, но хаотично • Архитектурата все така има значение • DCOM/COM+, Java RMI, CORBA • SOA
Клиент-сървър архитектура • 2-слойна архитектура • The Fat Client Problem • Клиентът съдържа бизнес логиката и презентацията, сървъра се грижи само за запазването и получаването на данните • Много зависи от платформата • The Thin Client Problem • Бизнес логиката е изнесена в stored procedures в базата данни • Трудно се променя • Натоварвания на сървъра и мрежата
Трислойна архитектура • Front-end – представяне и потребителски интерфейс • Back-end – съхранение на данните • Middle-tier – бизнес логика, Application Server • Решава много от проблемите на клиент/сървър архитектурата • Логиката и презентацията са разделени • Минимизира мрежовите проблеми • Минимизира DB проблеми • Различни технологии
“Старият” Web • Старият Web – “организиран хаос”през 1998 • Съдържанието е богато, добавя се трудно • Множество различни стандарти и технологии • Програмистите “говорят” различни езици • Машините “говорят” различни езици • Enterprise системите не са готови за интернет
Common Gateway Interface (CGI) – стандартния начин за реализиране на server-side web базирани приложения Разчита на проста схема за предаване на данните между web-server-а и CGI приложението Първата стъпка към “оживяването” на Интернет страниците (около 85% CGI скриптовете са Perl базирани) Стандартен поток на данните при CGI CGI – добрите стари дни CGI server side stdin / stdout Web Server HTTP/ HTML Browser
Web Services – нова надежда • W3C def: software system designed to support interoperable machine-to-machine interaction over a network
Service Transport HTML, SMTP, BEEP, Jabber… Messaging SOAP, XML-RPC, REST, … Service Description WSDL Service Discovery UDDI WS Protocol Stack Web Services Protocol Stack Service Transport Messaging Service Description Service Discovery Extensions: Security, Management, Bussines Processes
XML-RPC накратко • Опростен протокол • Създаден от Dave Winer, на базата на ранен draft на SOAP • Стандартни, лесно разбираеми типове данни • Множество имплементации на различни езици • ws-xmlrpc – Apache имплементация за Java • JAX-RPC – Sun имплементация за Java • XML-RPC for PHP • XML::RPC – Perl модул • XML-RPC.NET
XML-RPC пример XML-RPC request <?xml version="1.0"?> <methodCall> <methodName>examples.getStateName</methodName> <params> <param><value><i4>41</i4></value></param> </params> </methodCall> XML-RPC response <?xml version="1.0"?> <methodResponse> <params> <param> <value><string>South Dakota</string></value> </param> </params> </methodResponse>
SOAP накратко • Преживява много сериозен процес на анализ и дизайн • Много по-сложен, сравнение с XML-RPC, но пък е направен по всички правила на W3C • Съобщението се разделя на header и body • Routing и roles • Security • User Defined Types • По-сложен модел на processing
SOAP message пример SOAP message <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"> <env:Header> <n:alertcontrol xmlns:n="http://example.org/alertcontrol"> <n:priority>1</n:priority> <n:expires>2001-06-22T14:00:00-05:00</n:expires> </n:alertcontrol> </env:Header> <env:Body> <m:alert xmlns:m="http://example.org/alert"> <m:msg>Pick up Mary at school at 2pm</m:msg> </m:alert> </env:Body> </env:Envelope>
AJAX • AJAX = Asynchronous JavaScript and XML • AJAX не е конкретна технология, а е подход на реализация • Наречен е така от Jesse James Garrett, February 2005 в статията му “Ajax: A New Approach to Web Applications” • Google го налага в почти всички свои продукти, поради което придобива огромна популярност • Gmail го изстрелва на върха
AJAX • AJAX комбинира следните технологии • HTML/XHTML + CSS за форматиране на презентацията • DOM + Client Side Script (JavaScript) – за динамичен достъп до отделните елементи на документа • XMLHttpRequest object и/или IFRAME за динамичен достъп до сървъра • XML за пакетиране на данните, но също JSON (JavaScript Object Notation)
Предимства Доближава desktop experience-а до web Премахва досадното изчакване да се зареди страницата Ускорява разработката Сайтовете “проговарят” на езика на WS Недостатъци Съвместимост с различните browser-и Network Latency обработка Промяна на стандартния browse модел Bookmarking Поток на данни при AJAX AJAX Web Service server side Web Server HTTP(S)/ XML AJAX framework Browser
Изводите • Новите технологии помагат на Web да еволюира • WS вече се използват стабилно както в интернет, така и в Enterprise решенията • AJAX довежда desktop модела в уеб браузъра • Комбинацията WS базиран на SOAP + AJAX ще позволи на компаниите да капитализират ресурсите отделени за WS и в частта “краен потребител”
Контакти Sofia.pmhttp://sofia.pm.org Perl @ Sofia University http://perl.phreedom.org Bulgarian Association of Software Developers http://www.devbg.org gpenkov@phreedom.org mmarinov@phreedom.org
Въпроси и отговори ;) Въпроси?