Programowanie i wdrażanie aplikacji sieciowych w języku Python



Podobne dokumenty
CouchDB. Michał Nowikowski

PRZEWODNIK PO PRZEDMIOCIE

Rozszerzenie funkcjonalności systemów wiki w oparciu o wtyczki i Prolog

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/2017

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż.

PRZEWODNIK PO PRZEDMIOCIE

Zagadnienia programowania obiektowego

Semantic Web. dr inż. Aleksander Smywiński-Pohl. Elektroniczne Przetwarzanie Informacji Konsultacje: czw , pokój 3.211

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Full Stack JavaScript z Angular i Nest. Dni: 5. Opis: Adresaci szkolenia

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

SOA Web Services in Java

Efektywne tworzenie aplikacji webowych z wykorzystaniem AngularJS, HTML5 i JavaScript

I. Opis przedmiotu zamówienia

ROLA INTEROPERACYJNOŚCI W BUDOWIE CYFROWYCH USŁUG PUBLICZNYCH ORAZ W UDOSTĘPNIANIU ZASOBÓW OTWARTYCH DANYCH

Kierunkowy Wybieralny Polski Semestr V

Automatyzacja Testowania w WEB 2.0

REFERAT PRACY DYPLMOWEJ. Temat pracy: Projekt i realizacja warstwy serwerowej gry internetowej

ZAKŁADOWY: ZŁ WPŁACONY KRS REGON: NIP

Język Java i technologie Web - opis przedmiotu

Aplikacje webowe z wykorzystaniem Node.js oraz Express

Specjalnościowy Obowiązkowy Polski Semestr 5

REFERAT PRACY DYPLOMOWEJ

KARTA PRZEDMIOTU. Programowanie aplikacji internetowych

Ekspert MS SQL Server Oferta nr 00/08

Instytut Technik Innowacyjnych Semantyczna integracja danych - metody, technologie, przykłady, wyzwania

Aplikacje internetowe - opis przedmiotu

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Wykład I. Wprowadzenie do baz danych

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

4 Web Forms i ASP.NET Web Forms Programowanie Web Forms Możliwości Web Forms Przetwarzanie Web Forms...152

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

(Apache) CouchDB. Krzysztof Kulewski 2008

Programowanie Komponentowe WebAPI

Django : praktyczne tworzenie aplikacji sieciowych / Antonio Mele. Gliwice, cop Spis treści

Tworzenie sterowników dla FreeBSD. Michał Hajduk

Podstawy programowania. Wprowadzenie

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Web Services. Wojciech Mazur. 17 marca Politechnika Wrocławska Wydział Informatyki i Zarządzania

Asseco dla Zdrowia r.

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/2017

PRZEWODNIK PO PRZEDMIOCIE

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

Ruby i Ruby on Rails. Mateusz Drożdżyński

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia)

Autor: inż. Wojciech Zatorski Opiekun pracy: dr inż. Krzysztof Małecki

Zdalne monitorowanie i zarządzanie urządzeniami sieciowymi

Python wstęp do programowania dla użytkowników WCSS

Semantic Web Internet Semantyczny

MODEL SYSTEMU WIELOAGENTOWEGO KORZYSTAJĄCEGO Z DANYCH SIECI SEMANTYCZNEJ W PROJEKCIE OPEN NATURA 2000

Wydajny Linux. Jakub Woźniak KN Sieci Komputerowych i Systemów Rozproszonych Tenesys

PRZEWODNIK PO PRZEDMIOCIE

Projektowanie i implementacja wysokowydajnych aplikacji w języku

MongoDB. wprowadzenie. dr inż. Paweł Boiński, Politechnika Poznańska

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Wprowadzenie. Dariusz Wawrzyniak 1

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2

3 grudnia Sieć Semantyczna

Uniwersytet Mikołaja Kopernika. Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej

PRZEWODNIK PO PRZEDMIOCIE

Zrąb webowy dla perfekcjonistów z terminami. autor: Kamil Adamczyk

Rok akademicki: 2012/2013 Kod: EAR s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Kierunkowy Wybieralny Polski Semestr V

edycja 20 opracowany zgodnie z Zarządzeniami Wewnętrznymi PWr. nr ZW 124/2017 i 112/2017 i 113/2017

Programowanie obiektowe

INFORMATYKA Pytania ogólne na egzamin dyplomowy

Architektura aplikacji

PROJEKT WSPÓŁFINANSOWANY ZE ŚRODKÓW UNII EUROPEJSKIEJ W RAMACH EUROPEJSKIEGO FUNDUSZU SPOŁECZNEGO OPIS PRZEDMIOTU. studia pierwszego stopnia

PRZEWODNIK PO PRZEDMIOCIE

Wybrane działy Informatyki Stosowanej

JAK OPTYMALNIE DOBRAĆ ODPOWIEDNIE TECHNOLOGIE INFORMATYCZNE?

STUDIA STACJONARNE I STOPNIA Przedmioty kierunkowe

Specjalizacja magisterska Bazy danych

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU

Migracja do PostgreSQL za pomocą narzędzi Enterprise DB

Podstawy modelowania programów Kod przedmiotu

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2013/2014

PRZEWODNIK PO PRZEDMIOCIE

Multi-wyszukiwarki. Mediacyjne Systemy Zapytań wprowadzenie. Architektury i technologie integracji danych Systemy Mediacyjne

Paweł Rajba

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU

System zarządzający grami programistycznymi Meridius

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2011/2012. Architektura zorientowana na usługi

ActiveXperts SMS Messaging Server

A. USYTUOWANIE MODUŁU W SYSTEMIE STUDIÓW

STUDIA NIESTACJONARNE I STOPNIA Przedmioty kierunkowe

Program szkoleniowy Efektywni50+ Moduł V Raportowanie dla potrzeb analizy danych

Aplikacje WWW i PHP - opis przedmiotu

Programowanie obiektowe 2 - opis przedmiotu

SM-EX System Multipłatności - EX

IBM MobileFirst! Wprowadzenie do strategii IBM w zakresie rozwiązań mobilnych! Włodek Dymaczewski"

Programowanie w Sieci Internet Python - c. d. Kraków, 28 listopada 2014 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

Internetowa ogólnopolska baza informatycznych projektów badawczych otwartej innowacji Platforma współpracy SPINACZ 1/46

Zdalna edycja i przeglądanie dokumentacji medycznej.

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Politechnika Poznańska, Instytut Informatyki, TWO/GE. Programowanie dla ios

Transkrypt:

Programowanie i wdrażanie aplikacji sieciowych w języku Python Politechnika Lubelska Wydział Elektrotechniki i Informatyki czerwiec 2010

Plan prezentacji 1 O pracy Cel pracy Plan pracy 2 Wykorzystane technologie Język Python Framework Django Baza CouchDB 3 Aplikacje sieciowe Rozwój Aplikacja internetowa Sieć powiązań Web API 4 Przykładowa aplikacja: MMDA Architektura i działanie Wdrożenie 5 Podsumowanie

Cel pracy 1 Przedstawienie języka Python oraz wybranych, pokrewnych technologii jako wydajnego, darmowego i otwartego środowiska do tworzenia aplikacji sieciowych. 2 Zapoznanie czytelnika ze środowiskiem programistycznym przy pomocy konkretnych przykładów. 3 Utworzenie i wdrożenie aplikacji demonstrującej omawiane zagadnienia.

Plan pracy Rozdział 1. Wstęp Rozdział 2. Aplikacje sieciowe Rozdział 3. Elementy Django oraz CouchDB Rozdział 4. Wybrane API oraz biblioteki Rozdział 5. Przykładowa aplikacja: MMDA Rozdział 6. Wdrożenie aplikacji Rozdział 7. Podsumowanie

Język Python Wieloparadygmatowy język ogólnego użytku stawiający na oszczędną składnię i czytelny kod. Cechy dojrzały i sprawdzony, prosta, przejrzysta i czytelna składnia, wspiera programowanie obiektowe, strukturalne i funkcyjne, interpretowany (+tryb interaktywny), dynamiczny system typów, automatyczne zarządzanie pamięcią, bogaty wybór otwartych bibliotek.

Framework Django Napisany w Pythonie szkielet wysokiego poziomu, służący do tworzenia aplikacji internetowych. Cechy projekt jest zwykłym pakietem języka Python, budowa aplikacji w oparciu o zasoby URI, własny język szablonów, elastyczny system cache, modularność, batteries included.

Baza CouchDB Baza danych zorientowana na dokumenty. Alternatywa dla baz relacyjnych. Cechy wykorzystanie istniejących standardów (HTTP, JSON), wysoka współbieżność (brak blokad), dynamiczna struktura dokumentów (brak schematu), odporność na awarie, B-drzewa jako wewnętrzna struktura danych, dwukierunkowa replikacja.

Przejrzyste środowisko programistyczne Praca na dokumentach bazy danych w sposób naturalny dla podstawowych struktur języka. Czytelny kod, elastyczne struktury danych a r t i s t = C a c h e d A r t i s t. g e t o r c r e a t e ( i d ) i f name not i n a r t i s t : a r t i s t. name = Tool a r t i s t [ type ] = group a r t i s t. d a t e s = { from : 1999 } a r t i s t. save ( )

Dwie ważne zmiany ostatniej dekady 1. treść statyczna dynamiczna 2. aplikacja natywna internetowa

Internet jako otwarta baza danych MySpace Wrapper Musicbrainz Surge LIBRIS Radio Audio- Scrobbler QDOS ECS Southampton Doapspace Sem- Web- Central Flickr exporter Wikicompany Semantic Web.org RDF ohloh Budapest SW BME Conference Corpus Resex IRIT Toulouse Eurécom ReSIST Project Wiki BBC Playcount Jamendo Data Pub Guide BBC Programm es riese Gov- Track US Census Data Open Cyc BBC BBC Later + John TOTP Peel Geonames World Factbook Magnatune W3C WordNet UMBEL Yago Daily Med Pub Homolo Chem Gene RAE National Crunch FOAF 2001 Science SIOC Revyu ACM Base Foundation profiles Sites Open- Guides DBLP Project flickr RKB Eurostat Virtuoso Gutenberg Pisa CORDIS wrappr Explorer Sponger eprints Open Calais RKB Linked ECS MDB IEEE Newcastle Southampton RDF Book DBpedia Mashup lingvoj Freebase CiteSeer LAAS- CNRS DBLP IBM Hannover UniRef GEO Species DBLP Berlin Reactome LinkedCT UniParc Taxonomy Drug PROSITE Bank GeneID KEGG UniProt Symbol Diseasome CAS OMIM ChEBI Gene Ontology Pfam ProDom UniSTS HGNC MGI PubMed Inter Pro PDB As of March 2009 Źródło: http://richard.cyganiak.de/2007/10/lod/

Czym jest Web API? Interfejs komunikacji gwarantujący: stabilność oraz niezmienność, semantyczną reprezentację danych, przejrzystość (dokumentacja), interoperacyjność. Najczęściej spotykane metodyki SOAP komunikacja przy użyciu zapytań XML-SOAP REST wywoływanie zasobów identyfikowanych przez URI

MMDA: agregacja i buforowanie treści aplikacja MMDA odpowiedź zewnętrznego API moduł engine.* cache (CouchDB) moduł *.views wygenerowana odpowiedź Źródło: opracowanie własne

Przykład: profil artysty MusicBrainz (artist, release groups) 1 DBpedia (abstract) BBC (abstract) 2 3 4 moduł engine.artist aplikacja MMDA cache (CouchDB) moduł artists.views wygenerowana odpowiedź Last.fm (tags, abstract, pictures, similar) Źródło: opracowanie własne

Prezentacja treści: profil artysty Źródło: http://music.local/artist/chuan-jing-xian-ci/c50e52e1-01f4-494d-b1ef-376fe3581d90/

Wdrożenie: Nginx + Gunicorn + Memcached zapytanie o dany URI serwer WWW memcached django aplikacja MMDA gunicorn (worker #2) nginx odpowiedź HTML gunicorn (worker #1) Źródło: opracowanie własne

Wdrożenie: wzrost wydajności Test: obciążenie danego zasobu Pula 1000 żądań przy zachowaniu 100 równoczesnych połączeń. Średnia ilość obsłużonych żądań na sekundę: 3x Gunicorn: 2,55 3,33 3x Gunicorn + Memcached: 3,33 29,17 Memcached: 3,33 709,11

Podsumowanie i wnioski 1 Praca realizuje postawione cele. 2 Umożliwia zapoznanie się z wiedzą teoretyczną popartą praktycznymi przykładami. 3 Opisane rozwiązania i narzędzia stanowią łatwe, szybkie, spójne i czytelne środowisko programistyczne. 4 Architektura wdrożenia ma istotny wpływ na wybrane aspekty wydajności aplikacji.

Koniec Dziękuję za uwagę.