Webowy generator wykresów oparty na programie gnuplot

Podobne dokumenty
Webowy generator wykresów wykorzystujący program gnuplot

Tworzenie i obsługa wirtualnego laboratorium komputerowego

Opracowanie dodatkowego rodzaju pytań dla systemu Moodle

Aplikacja webowa do zarządzania maszynami wirtualnymi

Monitorowanie i zarządzanie urządzeniami sieciowymi przy pomocy narzędzi Net-SNMP

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

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

Nadzorowanie stanu serwerów i ich wykorzystania przez użytkowników

Tworzenie maszyn wirtualnych przy pomocy systemu FAI

System Clonezilla archiwizacja i odtwarzanie partycji dyskowych

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Międzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4

Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Instytut Fizyki

Jednolite zarządzanie użytkownikami systemów Windows i Linux

Zdalne monitorowanie i zarządzanie urządzeniami sieciowymi

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

Biorąc udział w projekcie, możesz wybrać jedną z 8 bezpłatnych ścieżek egzaminacyjnych:

ANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH

REFERAT O PRACY DYPLOMOWEJ

System zarządzający grami programistycznymi Meridius

Uniwersytet Mikołaja Kopernika w Toruniu. Profilowanie ruchu sieciowego w systemie GNU/Linux

Zarządzanie certyfikatami w systemie OpenVPN

EXSO-CORE - specyfikacja

KOŁO NAUKOWE INFORMATYKÓW SYSTEMY KONTROLI WERSJI CZ.1 16 XII 2009 OPRACOWAŁ: PRZEMYSŁAW PARDEL

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki Promotor dr inż. Paweł Figat

KARTA PRZEDMIOTU. Programowanie aplikacji internetowych

Efektywne tworzenie aplikacji webowych z wykorzystaniem AngularJS, HTML5 i JavaScript

REFERAT PRACY DYPLOMOWEJ

PRZEWODNIK PO PRZEDMIOCIE

Gra-zabawka dla niemowląt przygotowana z użyciem w Unity 3D

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

PRZEWODNIK PO PRZEDMIOCIE

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

REFERAT PRACY DYPLOMOWEJ

Bezpieczeństwo systemów i lokalnej sieci komputerowej

Referat Pracy Dyplomowej

Tworzenie aplikacji GIS w technologii Flex. Tomasz Turowski Esri Polska

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Praca dyplomowa. Program do monitorowania i diagnostyki działania sieci CAN. Temat pracy: Temat Gdańsk Autor: Łukasz Olejarz

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

ActiveXperts SMS Messaging Server

REFERAT O PRACY DYPLOMOWEJ

System kontroli wersji - wprowadzenie. Rzeszów,2 XII 2010

Architektura systemu e-schola

ArtPlayer oprogramowanie do odtwarzania plików video sterowane Artnet/DMX V1.0.1

Tomasz Greszata - Koszalin

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

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Odseparowanie kodu PHP i warstwy prezentacji od dawna było celem

PRZEWODNIK PO PRZEDMIOCIE

Usługi sieciowe w kontenerach systemu operacyjnego CoreOS

Samokontrola postępów w nauce z wykorzystaniem Internetu. Wprowadzenie

Omówienie wzorców wykorzystywanych w Prism 5.0. Dominika Różycka

Wybrane działy Informatyki Stosowanej

Front-end: solidne podstawy. Wszystko, co warto wiedzieć o HTML, CSS, JavaScript i Bootstrap.

Tester oprogramowania 2014/15 Tematy prac dyplomowych

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

Wykonać Ćwiczenie: Active Directory, konfiguracja Podstawowa

Aplikacje Internetowe

1 Implementowanie i konfigurowanie infrastruktury wdraŝania systemu Windows... 1

Referat pracy dyplomowej

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

Zdalny dostęp do źródeł elektronicznych BUR dla pracowników i studentów Uniwersytetu Rzeszowskiego

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.

Założenia projektowe dla zapytania ofertowego EAK_ZA_01/2015

E-commerce. Genialnie proste tworzenie serwisów w PHP i MySQL.

Aplikacja npodpis do obsługi certyfikatu

Jak używać funkcji prostego udostępniania plików do udostępniania plików w systemie Windows XP

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołu http.

BIBLIOTEKA CYFROWA JAKO KONTENER TREŚCI DLA PORTALI INTERNETOWYCH. DLIBRA & DRUPAL DWA SYSTEMY, JEDNA WITRYNA.

Exulto Software House

11. Autoryzacja użytkowników

Aplikacja npodpis do obsługi certyfikatu

Szczegółowy opis zamówienia:

Wykaz zmian w programie SysLoger

Bezpieczeństwo systemów komputerowych

Nowa usługa Centrum Komputerowego PŁ. Pliki w Chmurze. Serwis przechowywania i udostępniania danych. Prezentacja wprowadzająca

Pierwszy projekt. Na początku warto wspomnieć, że program WebSite X5 dostępy jest w 3 wariantach: Start, Evolution oraz Professional

Złośliwe oprogramowanie Sandrorat (podszywające się pod oprogramowanie Kaspersky) na platformę Android WYNIKI ANALIZY

Produkcja by CTI. Proces instalacji, ważne informacje oraz konfiguracja

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Pomoc dla r.

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller

Imię, nazwisko i tytuł/stopień KOORDYNATORA (-ÓW) kursu/przedmiotu zatwierdzającego protokoły w systemie USOS Dr Adam Naumowicz

TRX API opis funkcji interfejsu

Zintegrowane Systemy Zarządzania Biblioteką SOWA1 i SOWA2 ZAMAWIANIE I REZERWOWANIE

ArtPlayer. Odtwarzacz plików video sterowany poprzez Artnet/DMX V Instrukcja obsługi.

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

Transkrypt:

Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Marcin Nowak nr albumu: 254118 Praca magisterska na kierunku informatyka stosowana Webowy generator wykresów oparty na programie gnuplot Opiekun pracy dyplomowej dr hab. Jacek Kobus Instytut Fizyki Toruń 2017 Pracę przyjmuję i akceptuję... data i podpis opiekuna pracy Potwierdzam złożenie pracy dyplomowej... data i podpis pracownika dziekanatu

Dziękuję mojemu promotorowi za poświęcony czas i udzieloną pomoc.

Uniwersytet Mikołaja Kopernika zastrzega sobie prawo własności niniejszej pracy inżynierskiej w celu udostępniania dla potrzeb działalności naukowo-badawczej lub dydaktycznej

Spis treści 1 Wstęp 2 2 Architektura programu 5 3 Instalacja 9 4 Instrukcja użytkowania 13 4.1 Podgląd projektu................................... 14 4.2 Typy linii Dodaj................................. 15 4.3 Typy linii Zarządzaj............................... 15 4.4 Dane Dodaj.................................... 16 4.5 Dane Zarządzaj.................................. 17 4.6 Płótno Zarządzaj................................. 17 4.7 Płótno Szczegóły................................. 17 4.7.1 Płótno Szczegóły Zarządzaj..................... 17 4.8 Wykresy Liniowe................................. 19 4.8.1 Wykresy Liniowe Dodaj....................... 19 4.8.2 Wykresy Liniowe Zarządzaj..................... 20 4.9 Wykresy Kołowe.................................. 20 4.9.1 Wykresy Kołowe Dodaj....................... 20 4.9.2 Wykresy Kołowe Zarządzaj..................... 22 4.10 Projekty........................................ 22 5 Podsumowanie 24 Literatura 26 1

Rozdział 1 Wstęp W ciągu ostatnich lat można zaobserwować bardzo dynamiczny rozwój technologii wspierających tworzenie oprogramowania umożliwiającego wygodne korzystanie z zasobów i usług dostępnych poprzez sieć internetową. Związane to jest z coraz łatwiejszym i powszechniejszym dostępem do tego medium. W naszej codziennej działalności to właśnie internet staje się głównym, często jedynym, źródłem informacji. Dzięki rozwojowi tych technologii programiści mają do dyspozycji coraz bogatszą paletę dostępnych środków programistycznych, m. in. bibliotek, struktur projektowych 1, interfejsów programistycznych aplikacji 2, które pozwalają na stosunkowo łatwe unowocześnianie tworzonego oprogramowania, w tym jego optymalizację. Jednym z poważnych problemów przy tworzeniu aplikacji webowych jest zapewnienie poprawnego działania oprogramowania w przypadku użytkowników korzystających z różnych systemów operacyjnych oraz rozmaitych przeglądarek, ich wersji i ustawień. Niektóre nowsze rozwiązania udostępnione programistom nie są wspierane przez starsze standardy. W tym przypadku trzeba albo zablokować dostęp oprogramowaniu klienckiemu, które nie spełnia pewnych założonych warunków, albo podjąć próbę zachowania wstecznej zgodności. Oznaczać to może konieczność przepisywania tego samego elementu z uwzględnieniem wielu różnych warunków. Można tego uniknąć stosując odpowiednie oprogramowanie pośredniczące. Bardzo dobrym przykładem jest biblioteka jquery [1], dzięki której można zapewnić obsługę wielu przeglądarek z zachowaniem jak najszerszego wsparcia dla ich poprzednich wersji. Innym przykładem biblioteki, która zapewnia współpracę z wieloma wersjami różnych przeglądarek, jak również serwerów WWW, jest SignalR [2] biblioteka dostępna dla platformy.net. Oprogramowanie to odpowiada za komunikację między serwerem i klientem używając technologii, która zależy od konfiguracji obu urządzeń końcowych. Dostępny w HTML 5 sposób komunikacji z wykorzystaniem protokołu WebSocket [3] pozwala na otwarcie sesji komunikacyjnej między klientem, a serwerem. Komunikacja polega na wysyłaniu wiadomości w obu kierunkach z wykorzystaniem zdefiniowanych zdarzeń, tak aby nie było wymagane ponowne otwierania połączenia. Jeśli jednak którakolwiek ze stron kanału komunikacyjnego nie wspiera takiego rozwiązania, to wówczas SignalR zestawia typowe połączenie z wykorzystaniem odpytań asynchronicznych (AJAX). Nie ulega wątpliwości, że z punktu widzenia użytkownika końcowego, do budowy własnych aplikacji webowych lepiej jest korzystać z dobrze zaprojektowanego, sprawdzonego 1 ang. frameworks 2 ang. Application Programming Interface 2

ROZDZIAŁ 1. WSTĘP 3 oprogramowania. Takie podejście pozwala nie tylko uprościć i przyspieszyć proces tworzenia takich aplikacji, ale także zwiększa ich bezpieczeństwo w przypadku nietypowego użycia. Programista może korzystać z bardzo szerokiej gamy oprogramowania o otwartym kodzie, które pozwala na pełną kontrolę rozmaitych elementów tworzonych stron. W szczególności, wykorzystując struktury projektowe takie jak Bootstrap [4] lub Metro UI [5], można łatwo kontrolować wygląd serwisu sieciowego. Druga z tych struktur projektowych zyskuje na popularności, gdyż pozwala na budowę serwisu wyglądem przypominającego interfejs kafelkowy charakterystyczny dla nowszych wersji systemu Windows. Innym przykładem takiego oprogramowania jest JavaScript, który umożliwia przeniesienie części pracy związanej z tworzeniem strony z serwera WWW na przeglądarkę. Dużą pomocą w tym zakresie jest rozwijana od wielu lat biblioteka jquery, która pozwala w znacznym stopniu zmniejszyć rozmiary budowanego kodu poprzez zdefiniowanie dużej liczby użytecznych funkcji. Biblioteka ta zapewnia również wsparcie dla wielu przeglądarek. W tym miejscu warto wspomnieć o konkurencyjnym projekcie Prototype [6]. Nowoczesne oprogramowanie, dzięki któremu mamy dostęp do rozmaitych usług webowych, musi charakteryzować się nie tylko odpowiednim poziomem funkcjonalności i bezpieczeństwa, ale musi także zapewniać możliwość lokalizowania i usuwania błędów zgłaszanych przez użytkowników. Temu służy tworzenie oprogramowania w oparciu o odpowiednie wzorce projektowe, takie jak MVC (Model-View-Controller) [7] oraz MVVM (Model-View-ViewModel) [8]. Ich wstępna implementacja dostępna jest poprzez struktury projektowe AngularJS [9] lub Ember [10]. Dwa lata temu, w ramach pracy inżynierskiej, przygotowano aplikację webową, której zadaniem było generowanie prostych i złożonych wykresów dostępny poprzez przeglądarkę WWW. Ten program jest w istocie generatorem skryptu zawierającego odpowiednie komendy dla programu gnuplot[11] w oparciu o dane dostarczone przez użytkownika i wybrane przez niego własności wykresu (lub wykresów). Po przygotowaniu skryptu, na serwerze WWW jest uruchamiany program gnuplot, który tworzy wykres [...] a następnie ten sam wykres jest przekazywany do przeglądarki i wyświetlany w osobnym oknie podglądu. [...] Takie działanie można zrealizować wygodnie dzięki zastosowaniu PHP oraz JavaScript, których współpraca odbywa się za pomocą techniki AJAX, w której interakcja użytkownika z serwerem odbywa się w tle, bez konieczności przeładowywania całej strony. [12] Już po zakończeniu projektu, w trakcie używania tej aplikacji, ujawniły się jej słabe strony, w tym przede wszystkim jej mała dynamika. Wynikała ona z zastosowanego sposobu generowania stron z wykorzystaniem szablonów, które mogły osiągać duże rozmiary i nieść ze sobą wiele nadmiarowego kodu, co znacząco spowalniało działanie programu WEB Gnuplot. Innym problemem była ulotność danych o operacjach wykonanych przez użytkownika podczas przygotowywania wykresu. Były one przechowywane w obiektach JavaScript, więc wystarczyło odświeżenie okna przeglądarki, aby tracona była informacja o wybranych opcjach rysunku. Niektóre elementy aplikacji stały się zbędne. Należy do nich obsługa cyklicznych czynności, np. związanych z usuwaniem niepotrzebnych plików powstałych w trakcie generowania wykresu przez program gnuplot. Czynność ta oparta była o mechanizm CRON, który jest integralną częścią systemów linuksowych. Problem powstawał w związku z prze-

ROZDZIAŁ 1. WSTĘP 4 chowywaniem przez przeglądarkę plików tymczasowych i konieczność zwracania podglądu wykresu w postaci graficznej. Użycie unikatowych adresów odpytań oraz wykorzystanie schematu Base64URL do konwertowania wykresu pozwoliło na automatyczne czyszczenie katalogów programu WEB Gnuplot w trakcie operacji generowania podglądu. Okazało się także, że można istotnie uprościć obsługę procesu rejestracji użytkowników. Poprzednio ten proces wymagał dodatkowo obsługi wysyłania wiadomości e-mail. Teraz rejestracja użytkowników jest uproszczona, gdyż jest powiązana ze sprawdzeniem, czy posiadają oni konta w domenach zdefiniowanych przez administratora. Dlatego w ramach pracy magisterskiej podjęta została próba gruntownej przebudowy programu, żeby uczynić go lepszym, szybszym i wygodniejszym w użyciu, wykorzystując do tego nowsze, bardziej zaawansowane rozwiązania programistyczne. Dzięki zastosowaniu AngularJS i moduł ngroute uzyskano poprawę dynamiki. Wykorzystanie tego środowiska pozwoliło również na całkowitą zmianę w budowie aplikacji, dzięki czemu użytkownik odwołuje się do serwera tylko przez odpowiednio skonfigurowane API. Usprawniono przechowywanie stanu strony z wykorzystaniem lokalnej bazy danych. Umożliwiono także zapisywania tworzonych przez użytkownika skryptów i zarządzie nimi, a także wprowadzono obsługę wielojęzyczności. W dalszym ciągu za wygląd strony odpowiada głównie Bootstrap, jednak pewne elementy zostały zastąpione przez skojarzony z AngularJS moduł ngmaterial. Moduł ten posiada wiele gotowych składników istotnie rozszerzających podstawowe kontrolki udostępniane przez HTML 5. Zasadnicza część projektu składa się z kodu JavaScript, którego składnia została znacząco uproszczona dzięki wykorzystaniu bibliotek jquery i jquery UI [13]. Przebudowana została także autoryzacja, która bazuje na żetonach podpisywanych przez serwer, który do interpretacji poleceń wykorzystuje skryptowy język PHP. W momencie wykonywania operacji żeton jest dołączany do wysyłanego zapytania, które wędruje na odpowiedni interfejs programistyczny, gdzie sprawdzana jest jego poprawność w oparciu o przechowywany podpis. Takie podejście znacznie zmniejsza nakład pracy serwera, gdyż eliminuje konieczność każdorazowego łączenia się z bazą danych w celu wykonania operacji uwierzytelniania. Do tej pory odbywało się to poprzez odczytywania stanu sesji, który był przechowywany nie tylko po stronie przeglądarki (w formie ciasteczek), ale także w bazie danych po stronie serwera. Układ niniejszej pracy jest następujący. W rozdziale 2. omówiony jest wstępny opis tworzenia programu, zaznaczone są użyte technologie. Rozdział 3. poświęcony jest instalacji programu na serwerze WWW. Kolejny rozdział omawia sposób użytkowania aplikacji, a ostatni podsumowanie wykonanych prac oraz końcowe uwagi. Do pracy dołączona jest płyta CD zawierająca tekst pracy, dokumentację techniczną aplikacji wygenerowaną przy pomocy narzędzia Doxygen [14] oraz pliki źródłowe całego programu. Program WEB Gnuplot jest udostępniany na licencji GPLv3 [15].