Zaawansowane Techniki Bazodanowe

Podobne dokumenty
Podejście obiektowe do relacyjnych baz danych Hibernate.

Podstawowe wykorzystanie Hibernate

Zaawansowane Techniki Bazodanowe

Metody dostępu do danych

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

REFERAT O PRACY DYPLOMOWEJ

Programowanie w Ruby

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

Programowanie w Ruby

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

Multi-projekt z przedmiotów Inżynieria oprogramowania, Współczesne bazy danych i Programowanie w języku Java

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

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Mapowanie obiektowo-relacyjne z wykorzystaniem Hibernate

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

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

NHibernate. Narzędzie mapowania obiektowo - relacyjnego

Firma Informatyczna ASDER. Prezentacja. Serwer danych lokalnych. Przemysław Kroczak ASDER

WPROWADZENIE DO BAZ DANYCH

Liczba godzin 1,2 Organizacja zajęć Omówienie programu nauczania 2. Tematyka zajęć

Wdrożenie modułu płatności eservice. dla systemu Magento

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław r.

AKADEMIA GÓRNICZO-HUTNICZA Wydział Elektrotechniki, Automatyki, Elektroniki i Informatyki

Ekspert MS SQL Server Oferta nr 00/08

Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki. Paweł Parys. Nr albumu: Aukcjomat

Serwery LDAP w środowisku produktów w Oracle

Referat pracy dyplomowej

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom.

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

Dokumentacja projektu QUAIKE Architektura oprogramowania

Bazy danych 2. Wykład 1

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle

Szkolenie wycofane z oferty

Paweł Cieśla. Dokumentacja projektu

NHibernate Hibernate dla platformy.net. Hibernate posiada także dużą społeczność, zatem nietrudno uzyskać jakieś wsparcie w przypadku problemów.

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Czym jest jpalio? jpalio jpalio jpalio jpalio jpalio jpalio jpalio jpalio

Szczegółowy opis zamówienia:

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

Kurs ASP.NET ASP.NET CORE APLIKACJE WEBOWE

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor

Załącznik 1 instrukcje instalacji

EJB 3.0 (Enterprise JavaBeans 3.0)

Wdrożenie modułu płatności eservice. dla systemu Zen Cart

Projektowanie aplikacji w modelu MVC opartej o framework CodeIgniter

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy

1 Wprowadzenie do J2EE

Wieloplatformowe aplikacje sieciowe. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak

Hibernate. 1. Wprowadzenie. 2. Uruchomienie dostarczonego przykładu. 3. Własny przykład.

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

Firma Informatyczna ASDER. Prezentacja. Serwer danych zdalnych. Przemysław Kroczak ASDER

REFERAT PRACY DYPLOMOWEJ

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

Wybierz kategorię Java Web i typ projektu Web Application. Kliknij przycisk Next >.

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Specyfikacja implementacyjna aplikacji serwerowej

2. Jakie i ile licencji Oracle 10g posiada zamawiający i czy posiada do tych licencji wsparcie techniczne?

Tomasz Grześ. Systemy zarządzania treścią

Załącznik 2 utworzenie projektu

Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca Norbert Potocki db4o

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

RELACYJNE BAZY DANYCH

Bazy danych tworzenie aplikacji bazodanowych ORM / JPA

Hibernate mapowanie baz danych

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Administratora CSIZS - OTM

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

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja serwisu ogłoszeń z inteligentną wyszukiwarką

W grze bierze udział dwóch graczy. Każdy uczestnik rozpoczyna rozgrywkę z sumą

Uruchamianie bazy PostgreSQL

Usługi analityczne budowa kostki analitycznej Część pierwsza.

Wersjonowanie baz danych podczas developmentu. Liquibase. Piotr Pelczar.

Wykład I. Wprowadzenie do baz danych

WorkingDoc CostControl: Precyzyjna kontrola kosztów wydruku na urządzeniach Grupy Ricoh

Java i bazy danych. 1. JDBC podstawy, transakcje. 2. Mapowanie relacyjno obiektowe. Hibernate, przykład.

Programowanie obiektowe

Organizacja zajęć BAZY DANYCH II WYKŁAD 1. Plan wykładu. SZBD Oracle

Wykład 1 Inżynieria Oprogramowania

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

Założenia do ćwiczeń: SQL Server UWM Express Edition: \SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń.

Gerard Frankowski, Zespół Bezpieczeństwa PCSS. Nowoczesne technologie bliżej nas Poznań,

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1)

ZAPYTANIE OFERTOWE. Zamawiający. Przedmiot zapytania ofertowego. Wrocław, dnia r.

Projektowanie systemów baz danych

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

Zasady współpracy programu Doradca Handlowy z Symfonią

Programowanie w języku Java. Wykład 13: Java Platform, Enterprise Edition (Java EE)

Integral over IP. Integral over IP. SCHRACK SECONET POLSKA K.Kunecki FIRE ALARM

Programowanie w Javie 2. Płock, 26 luty 2014 r.

Enterprise JavaBeans

IO - Plan testów. M.Jałmużna T.Jurkiewicz P.Kasprzyk M.Robak. 5 czerwca 2006

Java Server Faces - wprowadzenie

Dokument Detaliczny Projektu

KATALOG MASZYN I POJAZDÓW ROLNICZYCH MASZYNY-3

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

PROJEKT Z BAZ DANYCH

Zapytanie ofertowe

Transkrypt:

Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki Zaawansowane Techniki Bazodanowe Krzysztof Koptyra, Dawid Tomaszewski Raport końcowy Prowadzący: dr inż. Sebastian Ernst Kraków 2011 1

SPIS TREŚCI 2 Spis treści 1. Implementacja bazy danych... 3 2. Zdefiniowanie interfejsów do prezentacji, edycji i obsługi danych.... 6 3. Zdefiniowanie dokumentów do przetwarzania i prezentacji danych.... 7 4. Zdefiniowanie panelu sterowania aplikacji... 8 5. Zdefiniowanie makropoleceń dla realizacji typowych operacji.. 9 6. Uruchamianie i testowanie aplikacji.... 10 7. Wprowadzanie danych.... 11 8. Wdrażanie systemu do użytkowania.... 12 9. Przeprowadzenie szkolenia użytkowników... 13 10.Zapewnienie dokumentacji technicznej i użytkowej.... 14 11.Zapewnienie obsługiwania systemu po wdrożeniu.... 15 12.Rozwijanie i modyfikowanie aplikacji.... 16 13.Opracowanie doświadczeń wynikających z realizacji projektu.. 17 14.Opracowanie raportu końcowego... 18 15.Wykaz literatury, załączniki.... 19 K. Koptyra, D. Tomaszewski Raport końcowy

1. Implementacja bazy danych. Baza danych została utworzona zgodnie z poniższym diagramem: 3

4 Przykładowy fragment skryptu SQL tworzący tabelę użytkownika w bazie danych: CREATE TABLE users ( user_name VARCHAR(64) PRIMARY KEY NOT NULL, user_pass VARCHAR(64) NOT NULL ); Przykładowy fragment pliku mapowania użytkownika: package hibernate; import java.util.hashset; import java.util.set; /** * Users generated by hbm2java */ public class Users implements java.io.serializable { private String username; private String userpass; private Set serviceusers = new HashSet(0); public Users() { public Users(String username, String userpass) { this.username = username; this.userpass = userpass; public Users(String username, String userpass, Set serviceusers) { this.username = username; this.userpass = userpass; this.serviceusers = serviceusers; public String getusername() { return this.username; public void setusername(string username) { this.username = username; public String getuserpass() { return this.userpass; K. Koptyra, D. Tomaszewski Raport końcowy

5 public void setuserpass(string userpass) { this.userpass = userpass; public Set getserviceusers() { return this.serviceusers; public void setserviceusers(set serviceusers) { this.serviceusers = serviceusers; Przykładowy fragment pliku XML zawierającego mapowanie użytkownika: <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/ hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="hibernate.users" schema="public" table="users"> <id name="username" type="string"> <column length="64" name="user_name"/> <generator class="assigned"/> </id> <property name="userpass" type="string"> <column length="64" name="user_pass" not-null="true"/> </property> <set inverse="true" name="serviceusers"> <key> <column length="64" name="user_name"/> </key> <one-to-many class="hibernate.serviceuser"/> </set> </class> </hibernate-mapping> K. Koptyra, D. Tomaszewski Raport końcowy

2. Zdefiniowanie interfejsów do prezentacji, edycji i obsługi danych. Aplikacja wykorzystuje standardowe formularze występujące w aplikacjach internetowych do pobierania od użytkownika niezbędnych danych (np. do wyszukiwania przepisów, podczas wprowadzania nowego przepisu czy przy wystawianiu komentarza). 6

3. Zdefiniowanie dokumentów do przetwarzania i prezentacji danych. W aplikacji nie występują raporty ani dokumenty do przetwarzania danych. Ma ona charakter ogólnodostępnej dla użytkowników aplikacji internetowej. Można wskazać jedynie prezentację danych przy pomocy narzędzi dostarczonych przez JSF (np. tabele z danymi, etc.). 7

4. Zdefiniowanie panelu sterowania aplikacji. Panel sterowania aplikacji został zaprojektowany w sposób ergonomiczny i estetyczny. Dzięki niemu obsługa aplikacji jest niekłopotliwa i intuicyjna dla użytkownika. 8

5. Zdefiniowanie makropoleceń dla realizacji typowych operacji. W aplikacji Serwis Kucharski został użyty system mapowania relacyjnoobiektowego (ORM) Hibernate. Dzięki niemu typowe operację dostępu do danych, realizowane zazwyczaj poprzez zapytania SQL-owe, zostały uproszczone do odwoływania się bezpośrednio do obiektów. Znacząco ułatwia to pobieranie danych z bazy oraz ich modyfikację. 9

6. Uruchamianie i testowanie aplikacji. W celu uruchomienia aplikacji niezbędny jest serwer, na którym zainstalowano Apache Tomcat w wersji 7.0 oraz bazę danych PostgreSQL 9.0. Problem ten nie dotyczy użytkowników aplikacji, gdyż jedynym wymogiem dla końcowego użytkownika jest komputer wyposażony w przeglądarkę internetową z dostępem do Internetu. Aplikację testowano zarówno manualnie jak i poprzez zautomatyzowane narzędzia do testowania (m. in. Selenium, dzięki któremu wykonano wiele testów funkcjonalności serwisu). 10

7. Wprowadzanie danych. Wprowadzanie danych w aplikacji Serwis Kucharski można podzielić na następujące etapy: 1. Automatyczne wprowadzanie danych przez skrypty SQL-owe, zapewniające początkowe dane w bazie danych. Jest ono w pełni zautomatyzowane i pozwala w krótkim czasie na stworznie początkowej struktury bazy danych serwisu. Ponieważ dane w skrypcie zostały sprawdzone i przetestowane, nie ma potrzeby weryfikacji ich poprawności. 2. Dane wprowadzane przez moderatorów i użytkowników serwisu, poprzez formularze na stronach serwisu. Jest ono dokonywane manualnie i jakkolwiek jest powolne z punktu widzenia pojedynczej osoby, to wielu użytkowników serwisu zapewni szybki przypływ danych. Dane są poddawane walidacji, dzieki czemu nie występuje ryzyko dodania do bazy danych mogących zakłócić prawidłowe działanie aplikacji. 11

8. Wdrażanie systemu do użytkowania. Wdrożenie dotyczy jedynie administratora aplikacji, polega ono na skopiowaniu pliku WAR aplikacji do odpowiedniego folderu kontenera aplikacji Apache Tomcat oraz na uruchomieniu skryptów SQL-owych tworzących bazę danych. Po takich działaniach aplikacja jest gotowa do pracy. 12

9. Przeprowadzenie szkolenia użytkowników. Aplikacja Serwis Kucharski ma charakter intuicyjnej aplikacji internetowej, nie jest więc wymagane szkolenie użytkowników. Każdy użytkownik potrafiący obsłużyć komputer PC powinien poradzić sobie z jej obsługą. 13

10. Zapewnienie dokumentacji technicznej i użytkowej. Niniejsza dokumentacja powinna zaspokoić ciekawość użytkownika od strony technicznej (Projekt Konceptualny, Projekt Logiczny oraz Raport Końcowy), natomiast dokumentacja użytkowa nie jest niezbędna, ze względu na intuicyjność interfejsu użytkownika. 14

11. Zapewnienie obsługiwania systemu po wdrożeniu. Obsługa aplikacji po wdrożeniu ogranicza się do zapewnienia stabilnego hostingu aplikacji i bazy danych. W przypadku wystąpienia problemów z aplikacją producent zapewnia pomoc techniczną. 15

12. Rozwijanie i modyfikowanie aplikacji. Istnieje możliwość implementacji dodatkowych funkcjonalności do aplikacji Serwis Kucharski. Aplikacja została zaprojektowana w sposób umożliwiający niekłopotliwe dodawanie nowych możliwości oraz modyfikację obecnych. Przykładowe funkcjonalności planowane do wdrożenia w następnych wersjach aplikacji: forum dla użytkowników, listy ulubionych przepisów, rozbudowane profile użytkowników, oceny komentarzy, informacje o kaloryczności posiłków, etc. 16

13. Opracowanie doświadczeń wynikających z realizacji projektu. Realizowany projekt dostarczył autorom wielu doświadczeń związanych z projektowaniem aplikacji internetowych. Najważniejszą technologią użytą w projekcie była platforma Java Enterprise Edition połączona z frameworkiem JSF. Java Server Faces okazał się być interesujący pod wieloma względami (zastosowanie wzorca MVC, wiele czynności zostało zautomatyzowanych w porównaniu do Java Server Pages JSP, np. wyświetlanie tabel jest niezwykle proste i intuicyjne), jednak nie pozbawiony wad (wiele czynności bardzo prostych do wykonania w JSP okazało się być bardzo trudne lub wręcz niemożliwe do obejścia w JSF, przykładowo łączenie JSP z JSF lub system logowania z Apache Tomcat). Kolejnym ciekawym doświadczeniem było użycie frameworka Hibernate do mapowania relacyjno-obiektowego. Dzięki niemu pozyskiwanie obiektów z bazy danych, ich modyfikacja czy dodawanie są znacząco uproszczone w porównaniu do ręcznego pisania zapytań SQL-owych. Kosztem, jaki trzeba było ponieść aby korzystać z tej technologii była dość pracochłonna konfiguracja i poznanie języka HQL (Hibernate Query Language). Kolejnym doświadczeniem było użycie Apache Tomcata jako kontenera aplikacji. Jego wielkimi zaletami w porównaniu do większych serwerów aplikacji jak np. JBoss są niewielkie wymagania sprzętowe i mniej skomplikowana konfiguracja. Wadą okazały się trudności połączenia systemu autoryzacji oferowanej przez Tomcata z technologią JSF. Niewąptliwie cennym doświadczeniem było używanie serwera SVN, co znacząco uławiało wieloosobową pracę nad aplikacją. Nabyte doświadczenia z pewnością okażą się przydatne podczas realizowania kolejnych projektów informatycznych oraz będą owocować polepszaniem jakości wytwarzanego oprogramowania. 17

14. Opracowanie raportu końcowego. Cały niniejszy dokument pełni rolę raportu końcowego. 18

15. Wykaz literatury, załączniki. http://download.oracle.com/javaee/ dokumentacja, tutoriale do Oracle Java EE, http://java.sun.com/javaee/javaserverfaces/reference/api/index.html dokumentacja do JSF, http://www.hibernate.org/docs dokumentacja do Hibernate, http://www.postgresql.org/docs/ dokumentacja do PostgreSQL, http://tomcat.apache.org/tomcat-7.0-doc/index.html do Apache Tomcat 7.0, dokumentacja 19