1 / 47

гл.ас. д-р Тодорка Глушкова

гл.ас. д-р Тодорка Глушкова. Съдържание. Семантичен WEB Архитектура на УЕБ Smart Clients Комуникация със сървъра- протоколи, портове Адресиране в Интернет HTTP Потребителски сесии и състояния. УЕБ 3.0. Семантичен Уеб.

werner
Download Presentation

гл.ас. д-р Тодорка Глушкова

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. гл.ас. д-р Тодорка Глушкова

  2. Съдържание Семантичен WEB Архитектура на УЕБ Smart Clients Комуникация със сървъра- протоколи, портове Адресиране в Интернет HTTP Потребителски сесии и състояния

  3. УЕБ 3.0. Семантичен Уеб • Семантичният уеб е разширение на сегашния (синтактичен) уеб, при което информацията е представена с добре дефинирано значение, което позволява по-добра кооперативна работа между хора и компютри. • Докато синтактичния УЕБ работи с база данни, семантичният УЕБ използва база знания • Основните езици за представяне на информацията в семантичния УЕБ– RDF, RDFS и OWL.

  4. Стек на семантичния Уеб (W3C, 2006) Адаптирано от http://en.wikipedia.org/wiki/Semantic_Web_Stack

  5. Средства за изграждане на Уеб 3.0

  6. Архитектура на Уеб: клиент-сървър модел Двуслоен модел: Клиенти Сървъри

  7. Архитектура на Уеб: трислоен модел Презентационен слой Бизнес (логически) слой Слой данни

  8. Архитектура на Уеб: N-слоен модел Презента-ционен (клиентски) слой Уеб слой Бизнес слой Слой данни Източник:Java™ EE Tutorial

  9. Технологии за изграждане на слоевете

  10. Клиентски слой Курсът по Уеб дизайн разглежда изграждането на приложния (клиентски) слой на Уеб приложенията, в частност – Уеб сайтове Клиентският слой на Уеб приложенията може да бъде два вида: в браузър– Уеб браузер зарежда Уеб страници с хипертекст и маркирано съдържание (HTML, XML, WML, *ML) и евентуален клиентски скриптов код (JavaScript, Flexили Java аплет) извън браузър– на клиентската машина се изпълнява самостоятелно софтуерно приложение, без използването на Уеб браузер

  11. Фокус на курса: клиентски слой в браузър Курсът разлежда презентационен слой в Уеб браузър.

  12. Видове Уеб клиенти Два основни вида клиенти: Тънък клиент (англ. thin client) - клиентска програма в мрежа с клиент-сървърна архитектура, която пренася всички задачи по обработка на информация към сървъра. По този начин, за работата на 'тънкия' клиент е необходим сравн. мощен сървър. Типичен пример за тънък клиент е компютър с браузер, използван за представяне на презентационен слой с маркирано съдържание (HTML). ‘Дебел' клиент (англ. thin client) - клиентската програма обработва информация независимо от сървъра, като използва сървъра само за съхранение на данни.

  13. Предимства и недостатъци на тънкия клиент Предимства: Лесна дистрибуция и управление на версиите– на нулева цена (zero-install, auto-update) Ниски изисквания към клиентската машина и браузър Прост клиент Липса на изисквания за сигурност към клиента Недостатъци: Липса на разширяемост По-беден потребителски интерфейс Ниска продуктивност и мощност

  14. Тенденция: умен клиент (Smart Client ) Източник: http://khason.net/blog/action-required-smart-client-users-group/

  15. Изграждане на умни клиенти Технологии за умни клиенти: Flex на Adobe. JavaFX на SUN/Oracle Silverlight на Microsoft DataSnap/WebServices на CodeGear Демо: http://www.smartclient.com/#Welcome

  16. Комуникация със сървъра Source: The Java™ EE 5 Tutorial HTTP HTTP

  17. Интернет протоколен стек

  18. TCP (Transmission Control Protocol) и UDP (User Datagram Protocol)

  19. Портове Портовете са абстракция за програми (услуги) на сървъра. Номерирани са от 0 до 65 535 (16 битови числа) Портове от 0 до 1023 са заети от услуги като ехо, FTP, HTTP (port 80), …

  20. Интернет адресиране (IPv4) Интернет адресът е уникален и се състои от 4 (IPv4) или 6 байта (IPv6) Задава устройство, включено в Интернет

  21. Uniform resource identifier (URI) Единният ресурсен идентификатор (URI) идентифицира име или ресурс в Уеб. Съществуват два вида URI: Uniform Resource Name (URN) - идентифицира име, напр. urn:www.agxml.org:schemas:all:2:0 Uniform Resource Locator (URL) - адресира ресурс в Интернет, напр. https://example.com/

  22. Uniform Resource Locator (URL) URLs са съставени от пет части: 1. Схема, известна като протокол 2. Ауторити (authority) 3. Път (path) 4. Заявка (query string) 5. Фрагментен идентификатор, известен още като секция или референция (ref) <scheme>://<authority><path>?<query>#<fragment>

  23. Пример за URL http://www.ibiblio.org/javafaq/javabooks/myApp?isbn=123#toc 1. scheme : http 2. authority : www.ibiblio.org 3. path : /javafaq/books/javabooks/myApp 4. query string : isbn=123 5. fragment identifier : toc authorityна свой ред може да се раздели на потребителска информация (user info), хост (host)ипорт (port). Например за URL, равен на http://admin@www.blackstar.com:8080/ 1. user info : admin 2. host : www.blackstar.com 3. port : 8080

  24. HyperText Transfer Protocol (HTTP) Hypertext Transfer Protocol (HTTP) – приложен протокол за разпределени хипермедийни системи като Уеб. Ориентиран е към комуникация от типа заявка (от клиента) и отговор (от сървъра) - request-response protocol Уеб браузерът (клиент) се реферира като user agent (UA) HTTP прокси сървъри (proxy servers) улесняват комуникацията между клиенти и сървъри и се позиционират в частни мрежи.

  25. Структура на HTTP транзакция HTTP използва client-server модел: HTTP клиентът отваря връзка (connection) и изпраща заявка (request message) към даден HTTP сървър; сървърът връща отговор(response message), евентуално с искания ресурс; след връщане на отговора сървърът затваря връзката -> HTTP еstateless protocol, и не поддържа връзка между транзакциите). Форматът на заявката се състои от: Заглавен ред, Нула или повече редове за оглавления(header lines), Празен ред (CR/LF), и Опционално – тяло на съобщението(message body) – файл или генерирани данни от сървърното приложение

  26. HTTP формат на отговора HTTP версия е "HTTP/1.0“ или "HTTP/1.1“. Отговорът съдържа статус код и текст. Статус кодът е трицифрено число, като първата цифра е индикатор за тип на отговора, както следва: 1xx - informational message only 2xx - success of some kind 3xx - redirects the client to another URL 4xx - an error on the client's part 5xx - an error on the server's part

  27. Често срещани статус кодове 200 OKУспешно изпълнение; ресурсът или резултата от изпълнението на сървърния код се намира в тялото на съобщението. 301 Moved Permanently302 Moved Temporarily303 See Other Location: http://example.org/other 404 Not FoundЗаявеният ресурс не съществува. 500 Server Error

  28. Примерен HTTP обмен Цел: да се получи файл в URL, равен на http://www.somehost.com/path/file.html Стартираме TELNET конзола с отваряне на връзка къмhost www.somehost.com, port 80 (порт 80 е по подразбиране и може да не се задава). Набираме и изпращаме GET заявка: GET /path/file.html HTTP/1.0 From: someuser@jmarshall.com User-Agent: HTTPTool/1.0 [blank line here] Отговор от сървъра: HTTP/1.0 200 OK Date: Fri, 31 Dec 2012 23:59:59 GMT Content-Type: text/html Content-Length: 1354 ….Happy New Year! (more file contents)

  29. URL кодиране (еncoding) URL Encoding – процес на конвертиране на URL до валиден URL format.  URL encoding се прилага обикновено за конвертиране а данни от html формите, понеже такива данни могат да съдържат специални символи като ‘/’, ‘.’, ‘#’, ‘ ‘ и др., които могат: a) Да имат специално значение – напр. ‘#’ b) Да не са валидни символи за URL – напр. празна позиция c) Да бъдат променени по време на трансфера Пример: “$ & < > ? ; # : = , " ' ~ + %” ще се кодира като“%24+%26+%3C+%3E+%3F+%3B+%23+%3A+%3D+%2C+%22+%27+%7E+%2B+%25”

  30. HTTP POST метод 1/2 POST заявката изпраща данни към сървера. POSTсе различава GETзаявка по следното: В тялото на съобщението има блок от данни, които се изпращат от клиента В тялото на съобщението има допълнителни хедъри като Content-Type: и Content-Length: Заявеният URI не указва ресурс, който трябва да бъде върнат, а адресира сървърен компонент HTTP отговорът е резултат от изпълнението на този сървърен код, а не е статичен файл Обичайна употреба на POST заявка – за изпращане на данните на HTML форма към сървърно приложение .

  31. HTTP POST метод 2/2 POST заявката може да се използва за изпращане на каквито и да е данни, не само от форми GET заявката също може да се ползва за изпращане на данни от форма, като самите данни са URL-encoded и се добавят към заявения URI.

  32. HEAD метод HEAD заявката прилича на GET заявка, като обаче сървърът връща само хедърите, но без искания ресурстоест без message body). Използва се за проверка на характеристиките на ресурса.

  33. Персистентни конекции и "Connection: close" хедър 1/2 В HTTP 1.0, връзката се затваря след всеки обмен на заявка и отговор => загуба на време, памет и CPU мощност Web страниците съдържат обикновено много файлове (ресурси) от същия сървър, и така има смисъл да се ползва една и съща персистентна връзка. Persistent connections се използват по подразбиране в HTTP 1.1– така всички ресурси на страницата се извличат с използване на една персистентна връзка към сървъра.

  34. Персистентни конекции и "Connection: close" хедър2/2 Ако клиентът включи "Connection: close" хедър в заявката,то сървърът ще я затвори след отговора си. Използва се за край на връзката. Ако този хедър се съдържа в отговорът, това показва, че сървърът затваря конекцията и клиентът няма право повече да я ползва. HTTP 1.0 не поддържа персистентни конекции.

  35. Трансфер на параметри от HTML форма

  36. HTTP не поддържа състояние Всяка заявка се обработва в изолация от Уеб сървъра Доставят се само данните от последната заявка НО: последователността от поредица заявки и отговори в рамките на едно приложение може да е логически обвързана -> SESSION Programming with Servlets

  37. Как се поддържа сесия? Session Tracking - поддържане на информация за контекста на използване на приложението между извикването на няколко страници от него Реализации Чрез скрити полета във формата (Hidden Form Fields) Пренаписване на URL (URL rewriting) Бисквитки (Cookies) Сесийни обекти на сървъра (напр. HttpSessions)

  38. 1. Скрити полета

  39. 2. Пренаписване на URL При деактивирани в браузъра cookies, трасирането на сесията е възможно с т.нар. URL rewriting. Сървърното приложение добавя session ID към всички URL,които се съдържат в генерирания от него отговор. При активиране на дадена хипервръзка, session ID се прехвърля заедно с нейния URL и се прочита от сървъра.

  40. 3. Бисквитки (Cookies) Бисквитки (Cookies) – механизъм за поддръжка на състоянието чрез задържане у клиента на кратки текстове с информация за контекста на клиентската сесия. Виж http://www.cookiecentral.com/faq/

  41. Същност на Cookies Бисквитката (cookie) е малък текст с информация, изпратен от сървъра, съхранен (евентуално!) от браузъра и по-късно изпратен обратно към същия сървър. Стойността на бисквитката идентифицира клиента по уникален начин => бисквитките могат да се използват за поддръжка на сесията. Бисквитката има име(name), единична стойност(single value), и опционално – атрибути (optional attributes)като коментар, pathиdomain, maximum age, иversion number.

  42. Пример: бисквитка с имеBookToBuyи стойност304qty1 – задава, че клиентът купуваединброй от книга с номер304.

  43. Изполване на Cookies

  44. Проверка за валидност

  45. Domain и path Бисквитката може да има domain и path, които дефинират обхвата на бисквитката. Те указват на браузъра, че дадена бисквитка трябва да бъде върната на сървъра само за определен домейн и път(domain and path). Ако не са спефицирани, по подразбиране имат стойността на домейна и пътя на заявения обект. Пример: Set-Cookie: HSID=AYQEVn….DKrdst; Domain=.foo.com; Path=/; Expires=Wed, 13-Jan-2021 22:23:01 GMT; HttpOnly Бисквитката с име HSID ще бъде върната от браузъра при заявка на всеки поддомейн на.foo.comза всеки път от ‘/’, например www.foo.com/.

  46. 4. Трасиране на сесия (Session Tracking) Трасирането на сесията е механизъм за поддръжка на сесиен обект от страна на сервърния компонент за даден браузър за определен период от време, посредством размена на биквитка с идентификатора на сесията или пренаписване на URL с този идентификатор

More Related