Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Biznes elektroniczny W. Bartkiewicz Wykład 2. Przegląd metod prezentacji treści i architektur aplikacji e-biznesowych w sieci Internet.

Podobne prezentacje


Prezentacja na temat: "Biznes elektroniczny W. Bartkiewicz Wykład 2. Przegląd metod prezentacji treści i architektur aplikacji e-biznesowych w sieci Internet."— Zapis prezentacji:

1 Biznes elektroniczny W. Bartkiewicz Wykład 2. Przegląd metod prezentacji treści i architektur aplikacji e-biznesowych w sieci Internet

2 WWW – Podstawowy model WWW jest olbrzymim systemem klient-serwer, obejmującym miliony serwerów rozproszonych po całym świecie. Każdy serwer utrzymuje zbiór dokumentów, zapamiętanych zazwyczaj w postaci plików. Dokumenty mogą być również generowane na żądanie. Serwer przyjmuje zlecenia pobrania dokumentu i przesyła go do klienta. Ponadto może on przyjmować zlecenia przechowania nowych dokumentów. Klient współpracuje z serwerami w sieci za pośrednictwem specjalnej aplikacji nazywanej przeglądarką (browser). Przeglądarka zamawia dokumenty z wykorzystaniem zamówień specyficznego protokołu HTTP, odbiera dokumenty i odpowiada za ich właściwe wyświetlenie.

3 WWW – Architektura Serwer WWW Klient (przeglądarka) Zamówienia HTTP Dokumenty

4 Mosaic 1993 – pierwsza przeglądarka graficznych stron internetowych Mosaic Źródło:

5 Internet Explorer

6 Mozilla Firefox

7 WWW – Lokalizatory URL Podstawowym sposobem wskazania w przeglądarce dokumentów, które zostaną następnie pobrane i wyświetlone, są tzw. URL – jednolite lokalizatory zasobów (Uniform Resource Locator). Mogą one określać: –Nazwę schematu sposobu dotarcia do zasobu (np. http, ftp, file, telnet). –Serwer na którym zlokalizowany jest zasób (zazwyczaj nazwa DNS, ale może być również adres IP). –Numer portu na którym serwer nasłuchuje zamówień. Jeśli nie zostanie podany używa się portu domyślnego. –Nazwa dokumentu, wraz ze ścieżką w drzewie katalogów zarządzanym przez serwer WWW.

8 WWW – Lokalizatory URL SchematNazwa serweraNazwa ścieżki SchematNazwa serweraPortNazwa ścieżki SchematNazwa serweraPortNazwa ścieżki

9 WWW – Hipertekst Zasadnicze znaczenie w WWW ma fakt, że wszystkie informacje są reprezentowane za pośrednictwem dokumentów. Większość dokumentów nie ma prostej struktury liniowej, ale może zawierać odniesienia łączące różne części tego samego dokumentu, bądź łączące różne dokumenty. Odniesienia takie nazywane są łączami bądź hiperłączami (links, hyperlinks). Podczas wyświetlania dokumentu w przeglądarce użytkownik może wybierać łącza, klikając na jego wizerunku (opisie). Wybór łącza powoduje przejście do innej części przeglądanego dokumentu, albo wysłaniem do serwera zamówienia pobrania innego dokumentu. Strukturę tego typu określa się hipertekstem (hypertext), lub jeśli powiązane dokumenty nie mają charakteru tekstowego – hipermediami (hypermedia).

10 WWW – Hipertekst

11 WWW – HTML Większość dokumentów w sieci WWW wyrażona jest w specjalnym języku redagowania hipertekstu (HyperText Markup Language), zwanym HTML. Oprócz możliwości tworzenia łączy, język HTML zawiera słowa kluczowe, umożliwiające podzielenie dokumentu na różne sekcje. –Każdy dokument HTML podzielony jest na część nagłówkową i zasadniczą. –W języku HTML są też wyróżnione nagłówki, akapity, listy, tabele, formularze. –Jest też możliwe wstawianie w odpowiednie miejsca obrazów lub animacji. Oprócz tych elementów strukturalnych, język HTML zawiera liczne słowa kluczowe, które instruują przeglądarkę co do sposobu prezentowania dokumentu (kroje i rozmiar pisma, przedstawiwanie tekstu kursywą, pogrubionego, wyrównywanie (justowanie) części tekstu, itp.).

12 WWW – Przykładowa strona HTML Moja strona Jakiś nagłówek Tutaj umieszczamy jakieś teksty, które chcemy umieścić na stronie webowej pamiętajmy o podziale na linie i białych spacjach     teraz dalszy tekst

13 WWW – Łącza hipertekstowe Informacje o dyżurach Ostatnie publikacje Programowanie (MFC) Programowanie WWW Programowanie obiektowe (C++) Mój

14 WWW – HTML i JavaScript HTML zawiera liczne środki tworzenia bardziej wyrafinowanych dokumentów sieciowych, tzw. stron WWW. Jedną z najmocniejszych jest możliwość wyrażania części dokumentu w postaci skryptów napisanych zazwyczaj w opartym na Javie języku JavaScript (tzw. skryptów strony klienta – client-side scripts). Prosty skrypt Javy document.writeln(" Hello world ");

15 WWW – DOM HTML Dokument podczas rozbioru przez przeglądarkę zostaje wewnętrznie zapamiętany w postaci tzw. drzewa rozbioru, którego każdy węzeł reprezentuje jeden element (definiowany przez znacznik HTML). Elementy odpowiadające znacznikom HTML zdefiniowanym w obrębie innych znaczników, stanowią w drzewie względem nich węzły potomne. Korzeniem drzewa jest więc element odpowiadający znacznikowi, o nazwie document. Ze względu na przenośność reprezentację drzewa rozbioru ustandaryzowano: –Każdy element musi być jednym z predefiniowanego zestawu typów elementów. –Każdy typ elementu ma standardowy interfejs z metodami dostępu do jego treści, węzłów potomnych lub rodzicielskich, itp. –Z elementem każdego typu zdefiniowany jest również standardowy zestaw zdarzeń wysyłanych przez przeglądarkę w reakcji na działania użytkownika. Ta standardowa implementacja nosi nazwę HTML DOM – modelu obiektu dokumentu (Document Object Model).

16 WWW – DHTML DOM tworzy standardowy interfejs programowania dostępu do zawartości poddanych rozbiorowi przez przeglądarkę dokumentów WWW. Używają go przede wszystkim skrypty osadzone w dokumencie, aby przechodzić drzewo rozbioru, dodawać, usuwać lub modyfikować węzły. Skrypty te mogą więc służyć do sprawdzania i zmieniania dokumentów, których są częścią. Otwiera to możliwość dynamicznej adaptacji dokumentów. Dlatego język HTML wzbogacony o skrypty JavaScript korzystające z DOM określa się często jako dynamiczny HTML (DHTML).

17 WWW – Przykładowa strona DHTML Informacja o linkach...   Uniwersystet Łódzki Wydział Zarządzania Katedra Informatyki

18 WWW – Przykładowy skrypt DHTML function ShowLinks() { var table = document.createElement(" "); table.setAttribute("id", "LinkTable", 0); table.setAttribute("border", 1, 0); for (i=0; i

19 WWW – XML Dokumenty tworzone mogą być również w innych językach poza HTML. Jedną z najważniejszych alternatyw jest XML – rozszerzalny język redagowania (Extensible Markup Language). W odróżnieniu od HTML język XML używany jest tylko do strukturalizacji dokumentu. Nie zawiera on słów kluczowych dotyczących formatowania dokumentu. Rozszerzenia HTML, pozwalające na łączenie z technikami wywodzącymi się z XML, oraz tzw. arkuszami stylów, określamy jako XHTML.

20 WWW – Przykładowy dokument XML John Smithy Doe 123 Some Str. Anytown NC

21 WWW – XML XML jest raczej metajęzykiem, dostarczającym środków do definiowania dowolnych struktur dla różnych typów dokumentów. XML definiuje tylko sposób sposób opisu danych i ogólne zależności między elementami dokumentu, tak by dokument był poprawnie uformowany. XML nie ma w zasadzie żadnej listy znaczników, których znaczenie byłoby predefiniowane (tak jak w przypadku HTML). XML to model (logiczny i fizyczny) danych, a nie schemat danych. Schemat danych, czyli konkretne znaczniki definiuje się dla konkretnej grupy dokumentów XML. Istnieją dwa standardowe sposoby definiowania schematu dokumentu XML: –Definicje Typu Dokumentu DTD (Document Type Definition) – prosty sposób, częściowo tylko oparty na modelu XML. –Schematy XML (XML Schema) – w pełni oparte na modelu XML, znacznie precyzyjniej definiują wykorzystywane typy danych.

22 WWW – Przykładowy dokument DTD

23 WWW – Przykładowy dokument XML John Smithy Doe 123 Some Str. Anytown NC

24 Aplikacje e-biznesowe (Architektura trójwarstwowa) Klient – strony WWW, zawierające interfejs użytkownika (tzw. cienki klient) oraz (ewentualnie) proste operacje przetwarzania (klient wzbogacony). Logika aplikacji umieszczona jest w warstwie pośredniej między serwerem danych i klientem (serwer aplikacji). Dane aplikacji przechowywane są na serwerze bazy danych. Serwer DBMS Klienty Inne aplikacje Serwer WWW

25 Cienki klient (HTML) Aplikacje klientów, działające w środowisku HTTP mogą być tworzone w formie cienkiego klienta, korzystającego z formularzy HTML, pozwalających zamieścić elementy interfejsu użytkownika w dokumencie strony WWW. Elementami formularza HTML, pozwalającymi na implementację dialogu z użytkownikiem są kontrolki HTML. Język HTML zawiera znaczniki definiujące typowe kontrolki różnego typu, takie jak na przykład pola edycji, przyciski, przyciski zaznaczane, pola kombo, itp. Do opisu (etykietowania) kontrolek wykorzystuje się zwykłe teksty. Elementy wyglądu formularza realizowane są przez inne znaczniki HTML, np. pozycjonowanie kontrolek uzyskuje się zazwyczaj z użyciem tabel. Pojedynczy dokument WWW może zawierać kilka różnych formularzy, realizujących różne funkcje.

26 Przykładowy dokument formularza HTML Rejestracja zamówień Dane klienta Nazwisko klienta Zarejestrowany Płeć: Mężczyzna Kobieta Miasto: Łódź Warszawa Kraków

27 Cienki klient (HTML) Formularze HTML służą do tworzenia typowego cienkiego klienta. Ich zadaniem jest wyłącznie dialog z użytkownikiem. Pobrane dane wysłane muszą być do aplikacji serwerowej, która wykonuje całe przetwarzanie. Dla formularza definiuje się sposób wykonania zamówienia HTTP. Jednym z typów kontrolek HTML jest przycisk typu submit, powodujący wykonanie odpowiedniego zamówienia HTTP. Stan kontrolek przesyłany jest w postaci łańcucha tekstowego, złożonego z szeregu par nazwa_kontrolki=wartość, połączonych znakami &, np.: NazwEdit=Nowak&RegCb=on&PlecRd=M&MiastoSel=Warszawa& sendBtn=Wy%9Clij. Niektóre znaki tego tekstu muszą zostać zakodowane tak by odpowiadały one zbiorowi znaków w nazewnictwie URL (np. spacja kodowana jest w formie znaku +, znaki specjalne takie jak przecinek, polskie litery, itp. w formie %+kod szesnastkowy). W naszym przykładzie %9C to kod polskiej litery ś w zestawie znaków ANSI strony kodowej 1252 Windows.

28 Cienki klient (HTML) Aplikacje serwerowe traktowane są przez serwer HTTP jako dokumenty. Nazwę dokumentu przechowującego aplikację, której zadaniem jest przetworzenie danych formularza, określamy w atrybucie action formularza. Zamówienie przy pomocy którego dane formularza przesłane zostaną do aplikacji serwerowe, określamy w atrybucie method formularza. Możemy przy tym wykorzystać: –Metodę get. Nazwa aplikacji serwerowej służy jako nazwa zamawianego dokumentu w komunikacie HTTP get. Łańcuch tekstowy wartości kontrolek dodawany jest do tej nazwy jako parametr dokumentu. –Metodę post. Łańcuch tekstowy wartości kontrolek przesyłany jest w zamówieniu post jako dane dodawane do dokumentu aplikacji serwerowej....

29 Klient wzbogacony (DHTML) Aplikacje klientów mogą również realizować model klienta wzbogaconego, wykonując pewne przetwarzanie po swojej stronie. Nie mogą one jednak wtedy korzystać wyłącznie z formularzy HTML. Typowym rozwiązaniem w takiej sytuacji jest wykorzystanie do stworzenia aplikacji klienta dynamicznego HTML (DHTML). Klienty DHTML najczęściej budowane są w oparciu o formularze HTML, wzbogacone o zastosowanie skryptów JavaScript odwołujących się do drzewa DOM dokumentu w reakcji na różne zdarzenia związane z kontrolkami. Skrypty JavaSript wykorzystywane są do realizacji bardziej skomplikowanych operacji dialogowych, a przede wszystkim do sprawdzania poprawności danych przed wysłaniem ich na serwer. Klient wzbogacony pozwala usprawnić i przyśpieszyć obsługę aplikacji. Dzięki użyciu skryptów, użytkownik nie musi za każdym razem czekać na reakcję serwera.

30 Klient wzbogacony (DHTML) function valSendBtnClick() { if ( document.formularz.NazwEdit.value=="" ) { alert("Pole nazwisko musi być wypełnione"); return; } document.formularz.submit(); } Nazwisko klienta...

31 Klient wzbogacony (DHTML) Klient działający w środowisku przeglądarki WWW może również wykorzystywać proste aplikacje ściągane z serwera WWW razem z dokumentem i wykonywane w przestrzeni adresowej procesu przeglądarki. Typowe przykłady takich aplikacji, to kontrolki Active-X, a przede wszystkim aplety skompilowane do kodu pośredniego języka Java.

32 Aplikacje serwerowe Aplikacje serwerowe w działające środowisku serwera HTTP tworzone mogą być jako rozszerzenia serwera lub aplikacje CGI. Rozszerzenia serwera to biblioteki lub komponenty, których kod proces serwera HTTP ładuje do swojej przestrzeni adresowej i wykonuje na żądanie klienta. Rozszerzenia serwera współdziałają z serwerem HTTP poprzez API udostępniane przez konkretne serwery. Aplikacje serwerowe zbudowane w tej postaci są więc silnie związane z konkretnym serwerem HTTP. Serwer HTTP nie musi tworzyć nowego procesu, przy każdym odwołaniu do aplikacji działającej w formie jego rozszerzenia. Tak więc w tym trybie realizuje się zazwyczaj narzędziowe aplikacje, do których odwołuje się większość klientów, takie jak np. interpretery skryptów serwerowych.

33 Aplikacje CGI Wspólnym interfejsem bramy (Common Gateway Interface – CGI) nazywamy standard według którego serwer HTTP może wykonać zewnętrzny program, pobierający dane użytkownika. Dane użytkownika pochodzą na ogół z formularza (HTML lub DHTML), dla którego określa się program, który ma zostać uruchomiony dla przetworzenia danych: Serwer gdy otrzyma zamówienie post lub get dotyczące dokumentu w formie pliku wykonalnego, rozpocznie program o podanej nazwie i przekaże mu dane towarzyszące temu zamówieniu.

34 Aplikacje CGI CGI definiuje sposób przekazywania danych formularza do uruchamianego programu, zarówno dla przesyłu operacją get, jak i post. Dane przesyłane są w formie omówionej wyżej łańcucha tekstowego wartości kontrolek formularza: –na standardowe wejście programu (dla metody post), –poprzez zmienną środowiskową "QUERY_STRING" (dla metody get), –długość łańcucha tekstowego w przypadku obu metod przekazywana jest w zmiennej środowiskowej "CONTENT_LENGTH", –program CGI musi samodzielnie dekodować odebrany tekst i wyodrębnić z niego wartości zmiennych wysłanych przez kontrolki poszczególne formularza. Program wykonuje swoje działania, zwracając wyniki serwerowi HTTP w formie dokumentu HTML, generowanego na standardowe wyjście programu. Serwer HTTP wysyła dokument HTML, wygenerowany w locie przez program CGI, przeglądarce, która wyświetla zawarte w nim wyniki.

35 Program CGI w języku C (get) void main(void) { char* Content_Length = getenv("CONTENT_LENGTH"); char* inpBuf= getenv("QUERY_STRING");; printf("Content-type: text/html\n"); printf("\n"); printf(" \n"); printf(" Komunikacja CGI \n"); printf(" \n"); printf(" Odpowiedź od serwera \n"); printf(" \n"); printf(" Liczba przesłanych bajtów: %s \n", Content_Length); printf(" Przesłany komunikat: %s \n", inpBuf); printf(" \n"); }

36 Program CGI w języku C (post) void main(void) { char* Content_Length = getenv("CONTENT_LENGTH"); int i, num = atoi(Content_Length); char inpBuf[10000]; for ( i=0; i

37 Aplikacje CGI Programy CGI stanowią wygodny sposób oprogramowania strony serwerowej aplikacji działającej w środowisku HTTP. Programy CGI są luźno powiązane z konkretnym serwerem HTTP, mogą być więc współpracować z różnymi serwerami. Interfejs komunikacyjny CGI ma charakter standardowy. Warunkiem jest więc w zasadzie, aby plik wykonalny mógł zostać uruchomiony przez system operacyjny maszyny serwera. Korzystanie z CGI niesie jednak ze sobą pewne niedogodności: –Programy CGI uruchamiane przez serwer HTTP jako nowe procesy, co może nieść ze sobą pewne problemy efektywnościowe - uruchamianie i kończenie procesów wymaga zarządzania wieloma zasobami systemowymi maszyny serwera. –Problemy z bezpieczeństwem – aby serwer mógł uruchomić skrypt CGI, użytkownik zdalny musi mieć uprawnienia do wykonywania programów w folderze skryptu. –Programy CGI są słabo zintegrowane ze środowiskiem HTML. Pobieranie danych i generowanie dokumentów może więc być dosyć żmudne.

38 Skrypty serwerowe Strona serwerowa aplikacji HTML może zostać zbudowana z wykorzystaniem skryptów serwerowych (server-side scripts). HTML zawiera również polecenia (znaczniki), pozwalające w dokumentach osadzić skrypty, które nie zostaną przesłane do klienta i wykonane przez przeglądarkę, ale zostaną bezpośrednio wykonane przez serwer HTTP. Jeśli w dokumencie HTML, którego dotyczy zamówienie klienta, znajduje się skrypt serwerowy, serwer przed wysłaniem takiego dokumentu uruchomi interpreter języka w jakim został napisany skrypt, który wykona program. Kod skryptu serwerowego w wysyłanym dokumencie zastąpiony zostanie przez wynik działania skryptu. Kod ten nie jest więc wysyłany do klienta.

39 Skrypty serwerowe Interpretery skryptów serwerowych mogą być dołączane do serwera HTTP jako rozszerzenia, albo działać jako aplikacje CGI. Typowe, najczęściej stosowane języki skryptowe to PHP, JSP, ASP, ASP.NET. W tym pierwszym przypadku interpreter może optymalizować zarządzanie zasobami systemowych, wykonując poszczególne programy jako wątki w przestrzeni adresowej serwera. Skrypty są programami interpretowanymi. Przy pierwszym wywołaniu zazwyczaj kompilowane są one do jakiejś formy kodu pośredniego, przyśpieszającej ich interpretację przy kolejnych wykonaniach. Użytkownik uruchamiający skrypt nie musi mieć nadanych uprawnień do wykonywania programów – w niektórych serwerach HTTP do uruchamiania skryptów.

40 Skrypt serwerowy w języku PHP Części samochodowe Witka Złożone zamówienie

41 Obiekty serwerowe Część serwerowa aplikacji może być realizowana również z wykorzystaniem obiektów serwerowych, takich jak serwlety Javy, czy komponenty ASP.NET. Są to wstępnie skompilowane do kodu pośredniego komponenty programowe, wykonywane w środowisku skryptowym w przestrzeni adresowej serwera HTTP. Metody obiektu serwerowego łączone są (zazwyczaj przez skrypty strony klienta) ze zdarzeniami kontrolek formularza HTML i wywoływane przez środowisko serwerowe w reakcji na wystąpienie tych zdarzeń.

42 Page-By-Page W standardowym podejściu do działania aplikacji WWW część serwerowa w reakcji na działania użytkownika generuje dokument (zazwyczaj stronę HTML) z odpowiedzią, która przesyłana jest do klienta i wyświetlana w przeglądarce jako nowy dokument. Podejście takie określane jest strona-za-stroną (Page-By-Page). Rozwiązania typu strona-za-stroną posiadają jednak szereg wad, stanowiących istotną barierę rozwojową dla aplikacji WWW: –W celu reakcji na działania użytkownika niezbędne jest przesłanie przez serwer całej strony WWW, nawet w sytuacji gdy modyfikowany jest jedynie pewien element interfejsu użytkownika. –Powoduje to niską efektywność komunikacji w aplikacji rozproszonej. –W sytuacji gdy strony są poważnie obciążone elementami graficznymi, skryptami strony klienta jakie trzeba przesłać razem ze stroną, itp., czas przeładowania strony i reakcji systemu może być długi. –Przeglądarki dają możliwość przejścia (nawigacji) do strony poprzedniej, następnej, itd.. W niektórych sytuacjach, przy bardziej złożonym dialogu z użytkownikiem może to powodować problemy w zarządzaniu dialogiem.

43 AJAX Nową koncepcją w projektowaniu aplikacji rozproszonych, działających w środowisku HTTP jest tzw. AJAX (Asynchronous Javascript And XML). Nowoczesne przeglądarki posiadają wbudowane obiekty, pozwalające skryptom strony klienta wykonywać asynchroniczne zamówienia HTTP. Odpowiedzi na takie zamówienie przesyłane są przez serwer nie całej przeglądarce, ale danemu skryptowi. Przyjęcie odpowiedzi nie wymaga więc wyświetlenia przez przeglądarkę nowej strony – cały czas pozostajemy w obrębie starej. Serwer w reakcji na zamówienie może odesłać dane w formacie XML lub kawałek kodu HTML. Skrypt klienta odbiera transmisję od serwera i przy jej użyciu (i ewentualnym wykonaniu operacji formatujących) modyfikuje DOM bieżącej strony (np. zmienia stan kontrolek, fragmenty HTML, itp.) odpowiednio do działań użytkownika.

44 Serwisy webowe Standardowe aplikacje webowe komunikują się z klientem poprzez komunikaty HTML (np. generują i przesyłają do klienta strony HTML) Komunikaty HTML mogą być odbierane również przez klienty aplikacyjne – wymaga to jednak analizy przesłanej strony i wydłubania danych Web serwisy – rodzaj komponentów serwerowych komunikujących się z klientem aplikacyjnym poprzez komunikaty SOAP Klient aplikacyjny SOAP Serwer DBMS Zarządzanie danymi Serwer HTTP Logika aplikacji Klient webowy HTML Interfejs użytkow nika

45 Serwisy webowe SOAP (Simple Object Access Protocol) – oparty na XML-u sposób kodowania wywołań zdalnych podprogramów SOAP umożliwia realizację RPC (Remote Procedure Call) –klient wywołuje funkcję –jej nazwa parametry wywołania kodowane są w formacie SOAP i przesyłane do serwera HTTP –serwer uruchamia komponent (web serwis), który wykonuje zakodowaną funkcję. Wynik jej działania w formacie SOAP przesyłany jest do klienta Klient aplikacyjny SOAP Serwer DBMS Zarządzanie danymi Serwer HTTP Logika aplikacji Klient webowy HTML Interfejs użytkow nika

46 Rozproszone architektury Enterprise Najbardziej znane środowiska typu Enterprise : –CORBA –Enterprise Java Beans –COM+/DNA –.NET –Web Sphere Klient aplikacyjny SOAP Serwer DBMS Zarządzanie danymi Serwer HTTP Logika aplikacji Klient webowy HTML Interfejs użytkow nika

47 Aplikacje peer to peer W niektórych przypadkach komputery pracujące w sieci Internet nie korzystają ze środowiska WWW. –Komputery korzystają z połączeń niskiego poziomu w sieci Internet, poprzez tzw. interfejs gniazd. –Komputery pełnią zarówno funkcje klientów, ale również serwerów (wysyłają, ale także obsługują zamówienia innych użytkowników). Ponieważ komputery połączone są ze sobą niezależnie i nie korzystają ze wspólnych serwerów, architekturę taka określamy jako peer to peer. Architektura ta popularna jest przede wszystkim w sieciach wymiany danych i dokumentów między użytkownikami (często o charakterze pirackim) i rzadko służy do zastosowań w biznesie elektronicznym.


Pobierz ppt "Biznes elektroniczny W. Bartkiewicz Wykład 2. Przegląd metod prezentacji treści i architektur aplikacji e-biznesowych w sieci Internet."

Podobne prezentacje


Reklamy Google