22
Разпределени Вградени Разпределени Вградени Системи Системи Web-базирани РВС

Web and WS based Embedded Systems

Embed Size (px)

Citation preview

Page 1: Web and WS based Embedded Systems

Разпределени Вградени СистемиРазпределени Вградени Системи

Web-базирани РВС

Page 2: Web and WS based Embedded Systems

Web базирани РВС

• ВМС поддържа web съвър и позволява отдалечено следене и контрол.

Page 3: Web and WS based Embedded Systems

WS базирани РВС

• ВМС може да извлича данни през web от други ВМС и да им предоставя данни.

Page 4: Web and WS based Embedded Systems

Идентификация на ресурсиИдентификация на ресурси

URI – Uniform Resource Identifierhttp://user:[email protected]:8080/path/file?query=test#anchor

протокол

парола

по требител

адрес / име

на домейн

порт

име и път до

ре сур с

зая вк а с парам

етри

фра гм

ен т

Page 5: Web and WS based Embedded Systems

HTTP заявкиHTTP заявки

• GET – заявка за получаване на ресурс;

• POST – заявка за предаване на данни към даден ресурс;

• PUT – заявка за поставяне на ресурс на даден URI;

• DELETE – заявка за изтриване на ресурс.

Page 6: Web and WS based Embedded Systems

Структура на HTTP заявкаСтруктура на HTTP заявка

• заглавна част (header)– поддържани типове (MIME);

– поддържани кодирания (encoding);

– поддържани кодови таблици (charset);

– дата и час;

– идентификация на потребителя;

• тяло на съобщението (body)

Page 7: Web and WS based Embedded Systems

HTTP GETHTTP GETGET /DSCC/index.php HTTP/1.1

Host: 192.168.2.98:8080

User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.10)

Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5

Accept-Language: en-us,en;q=0.7,bg;q=0.3

Accept-Encoding: gzip,deflate

Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7

Keep-Alive: 300

Connection: keep-alive

=====================================================================================

HTTP/1.1 302 Found

Date: Tue, 06 Mar 2007 21:58:11 GMT

Server: Apache/2.0.59 (Unix) PHP/4.3.4

Content-Type: text/html

b9d

<html>

<head></head>

<body></body>

</html>.

0

Page 8: Web and WS based Embedded Systems

HTTP POSTHTTP POSTPOST /DSCC/login.php HTTP/1.1

Host: 192.168.2.98:8080

User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.10)

Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5

Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7

Keep-Alive: 300

Connection: keep-alive

Referer: http://192.168.2.98:8080/DSCC/login.php

Content-Type: application/x-www-form-urlencoded

Content-Length: 26

user=kakanakov&pass=******

================================================================================

HTTP/1.1 302 Found

Date: Wed, 07 Mar 2007 00:00:03 GMT

Server: Apache/2.0.59 (Unix) PHP/4.3.4

Cache-Control: no-store, no-cache

Transfer-Encoding: chunked

Content-Type: text/html

572

<html> <head></head> <body></body> </html>

Page 9: Web and WS based Embedded Systems

HTTP HTTP ккодове на отговоритеодове на отговорите

• 1xx – информационни:– 100 – Continue; 101 – Switching protocol;

• 2xx – успех:– 200 (OK); 201 (Created); 202 (Accepted); 204 (No New Content);

• 3xx – пренасочване:– 301 (Moved Permanently); 302 (Moved Temporarily);

• 4xx – клиентска грешка:– 400 (Bad Request); 401(Unauthorized); 403 (Forbidden); 404 (Not Found);

• 5xx – грешка при сървъра:– 500 (Internal Server Error); 501 (Not Implemented); 503 (Service Unavailable).

Page 10: Web and WS based Embedded Systems

MIME типовеMIME типове

• Формат:• MIME type ::= type / sybtype

• Основни типове:– text – текстова информация;– image - изображения;– video - видео;– audio - аудио;– application – обекти, които се обработват извън браузера;– multipart – съобщение съдържащо повече от една част.

• Примери:text/html; text/plain; text/css; image/gif; image/jpeg; image/bmp;

video/mpeg; audio/x-mpeg; application/pdf; application/msword; application/zip; application/octet-stream; multipart/mixed.

Page 11: Web and WS based Embedded Systems

CGI моделCGI модел

• Браузера предава данните към съръвра, заедно с името и пътя до файла, който трябва да го обработи

• Вместо да върне самия файл, сървърът го стартира и връща резултата от изпълнението му.

• Вместо стандартните входи и изход на програмата да са клавиатура и монитор, те са пренасочени към Web сървъра.

Page 12: Web and WS based Embedded Systems

Работа с CGIРабота с CGI

• Най-лекото му проявление е SSI. При него страницата е написана като шаблон и само на определени места се поставят елементи, които се заменят при изпълнение на CGI скрипта.

• Този модел се прилага при Servlet технологията на Java.

• Проблемът с него е необходимостта повечето информация да се описва в кода на скрипта.

Page 13: Web and WS based Embedded Systems

Web Services

• Това е web страница предназначена за процес (програма), не за човек (machine-to-machine).

• Web услугите се изграждат по строг модел и архитектура, защото няма човек, който да ги чете.

• Web услугите са независими от приложния протокол, който ги транспортира.

• Използва се XML, защото е самоописващ се.

Page 14: Web and WS based Embedded Systems

Rest WS

• REpresentational State Transfer• Това е архитектура за създаване на web

услуги, не инструмент.• За разлика от SOAP WS не се изисква

нов формат на съобщенията. Типа на ресурсите се препоръчва да е XML, но може да бъде всеки MIME тип.

• Ресурсите се идентифицират с URI.• На базата на CGI се генерират обекти с

динамично съдържание.

Page 15: Web and WS based Embedded Systems

WS: REST vs. SOAP

REST web services are:

• Lightweight – not a lot of extra xml markup

• Human Readable Results

• Easy to build – no toolkits required

• Less bandwidth

SOAP also has some advantages:

• Easy to consume – sometimes

• Rigid – type checking, adheres to a contract

• Development tools• WS – Security• WS - Discovery

Page 16: Web and WS based Embedded Systems

Примери

• Apache CGI– C/C++, Perl, Bash ...– Web Services - gSOAP.

• IPC@Chip CGI– CGI API;– Web services?

• DSTINI HttpServer– dynamic pages?– Servlets?

Page 17: Web and WS based Embedded Systems

Apache CGI

• Modules– mod_alias– mod_cgi

• Environment– ScriptAlias /cgi-bin/ somedir– <Directory somedir>

Options +ExecCGI </Directory>

• Programming Language– C/C++: http://www.gnu.org/software/cgicc/– Perl: http://search.cpan.org/~smylers/CGI-Lite-2.02/Lite.pm– Bash:

http://www.yolinux.com/TUTORIALS/LinuxTutorialCgiShellScript.html

Page 18: Web and WS based Embedded Systems

gSOAP toolkit

• Това е инструмент за създаване на SOAP/XML web услуги.

• Генерира сорс код на базата на описание на услуга, който позволява обработката на SOAP пакета и декодиране на XML съобщението.

• Подобно на RPC свързва потрбителския код с WS процедурите за комуникация и обвързване на потребителските типове с XML структури.

• Въпреки, че е предназначен за C/C++ има вграден garbage collector.

Page 19: Web and WS based Embedded Systems

gSOAP Клиент• Подаваме WSDL описанието на gSOAP importer и той

създава хедър файл с компонентите на услугата. gSOAP компилаторът създава от този хедър файл прокси обект или RPC стъб.

• Ако има потребителски типове, те трябва да бъдат описани в WSDL type секцията или да се подадат като допълнителен хедър файл.

Page 20: Web and WS based Embedded Systems

gSOAP сървър• За създаването на услугата може да създадем хедър

файл, който описва компонентите на услугата като прототипи на функции и структури от данни и да го комплилираме с gSOAP. gSOAP компилаторът създава скелетон и WSDL файл, описващ услугата. Услугата може да е описана и на WSDL и да се използва gSOAP importer.

Page 21: Web and WS based Embedded Systems

IPC @Chip CGI• The CGI ("Common Gateway Interface") API uses interrupt

0xAB with a service number in the high order byte of the AX register (AH). » CGI provides the possibility to install at the Web server own

programmed CGI functions. These functions are bound with a fixed name and are executed by the Web server task, if a http request with such a fixed name comes in. This mechanism allows dynamic usage of the IPC@CHIP® Web server.

• CLI commands – webstat, cgistat. • Functions

» void huge my_cgi_func(rpCgiPtr CgiRequest)» int CGI_Install ( CGI_Entry far *cgiptr );» CGI_Entry : Name of the page, URL; http method (Get, Head or

Post), pointer to callback function for this page.

Page 22: Web and WS based Embedded Systems

DS TINI Web server• com.dalsemi.tininet.http

» Class HTTPServer - This class implements an HTTP server. This class currently only supports the GET and POST methods. The serviceRequests method blocks on a ServerSocket accept call. A new thread is spawned to service each new connection. The method serviceRequest can be used to synchronize access, using the lock object, to a requested web page. This might be useful if the server dynamically updates a page.

» Class HTTPWorker - This worker class is primarily used by HTTPServer to handle requests It handles parsing and URL encoding, decoding etc.

» Class PostElement - This is a utility class for handling the Field and Value pairs from the POST Content.

» Interface PostScript - This interface defines the required public methods for a HTTP POST handling script.

• Tynamo - http://tynamo.qindesign.com/