System katalogowania. Opis i architektura. Opis przyjętych wzorców projektowych, wielowarstwowej architektury oraz procedur wdrożeniowych systemu.
SKSIK - podstawowe założenia System katalogowania oraz obiegu sprzętu na wydziale. System obsługujący wypożyczenia urządzeń i pomieszczeń. System dostarczający szczegółowych informacji na temat urządzeń oraz wypożyczeń. System raportowania i bilansów wypożyczeń. System wsparcia organizacji wydziału.
SKSIK - opis System składa się z kilu podprojektów - SK_Model (model klas C#) - SK_DAO (zbiór interfejsów DAO) - SK_DAOImpl (implementacja interfejsów dostępu do danych) - SK_Persistance (zarządzanie transakcjami i sesjami NHibernate) - SK_Utils (implementacja globalnej funkcjonalności np. kody EAN czy parser XML). Jest to projekt w pełni obiektowy, implementowany w języku C#. Zastosowano większość istotnych paradygmatów programowania obiektowego - polimorfizm, hermetyzacja, dziedziczenie. Jest systemem wielowarstwowym, dzięki czemu poprawki i rozszerzenia mogą być nanoszone jednocześnie w obrębie różnych warstw.
SKSIK - architektura System ma architekturę wielowarstwową, opartą na modelu MVC: 1) Warstwa prezentacji (widoki – formularze ASP.NET) – katalog aplikacji webowej SK. 2) Warstwa modelu oraz warstwa dostępu do danych – podprojekt SK_Model, SK_DAO i SK_DAOImpl. 3) Warstwa logiki biznesowej (Kontroler).
SKSIK - technologie Ze względu na wielowarstwowość i pełną obiektowość systemu, zastosowano w nim mechanizm klasy O/R – NHibernate w wersji 1.0.2 – mapujący obiekty modelu do tabel relacyjnego systemu baz danych MS SQL Server 2000 lub 2005. Możliwe jest również łatwe dostosowanie aplikacji do korzystania z innego serwera relacyjnych baz danych, poprzez odpowiednia konfiguracje pliku web.config Mapowanie obiektowo-relacyjne jest swoistym sposobem odwzorowania obiektowej architektury systemu informatycznego na bazę danych o charakterze relacyjnym. Implementacja takiego odwzorowania niezbędna jest m.in. w przypadku, gdy tworzony system oparty jest na podejściu obiektowym, a system bazodanowy (system zarządzania bazą danych) operuje na relacjach. W naszym przypadku wy dedykowaliśmy oddzielną warstwę obiektów dostępu do danych, wykorzystujących mechanizmy biblioteki NHIbernate do operowania na obiektach modelu (danych). Biblioteki klas poszczególnych warstw są opisane w języku C# na platformie .Net 2.0.
SKSIK - Data Access Objects Zastosowano komponenty DAO, dostarczające jednolity interfejs do komunikacji między aplikacją, a źródłem danych. Dzięki DAO, aplikacja nie musi znać sposobu oraz ostatecznego miejsca składowania swoich danych, a ewentualne modyfikacje któregoś z czynników nie pociągają za sobą konieczności modyfikowania jej kodu źródłowego. Wzorzec DAO jest często stosowany w modelu MVC (Model-View-Controller) do oddzielenia dostępu do danych od logiki biznesowej i warstwy prezentacji. Komponenty DAO, oparte na paradygmatach dziedziczenia obiektowego oraz programowania interfejsowego, wykorzystują bezpośrednio mechanizmy biblioteki NHibernate do zachowywania obiektów w bazie danych ale także do wyszukiwania i filtrowania wyników przeszukiwania obiektów modelu.
SKSIK - NHibernate NHibernate jest mechanizmem O/R dla platformy .Net. Bezpośrednie zastosowanie biblioteki NHiberante znajduje się w podprojekcie SK_DAOImpl, służącym do komunikacji aplikacji z serwerem bazy danych z wykorzystaniem wbudowanych technik NHIberante oraz aspektów programowania obiektowego. Do najpopularniejszych mechanizmów operowania na danych należy zaliczyć obiektowe mechanizmy kryterii i przykładów, a także język zapytań przypominający w swej strukturze SQL - Hibernate Query Language - HQL. System SKSIK, będący aplikacją webową, musi również odpowiednio zarządzać mechanizmami sesji i transalcyjności. Dlatego zastosowano model Open-Session-In-View, zgodnie z którym każda transakcja rozpoczyna się w momencie nadejścia żądania HTTP i kończy się w momencie zakończenia requesta (rozszerzenie klasy IHttpModule), wykorzystujący pomocnicza klasę zarządcy sesji – NHibernateHelper.
SKSIK - Model View Controler Modelem jest zbiór klas znajdujących się w podprojekcie SK_Model w katalogu BussinesObjects, opisujących istotne obiekty biznesowe mapowane do relacyjnej bazy danych zgodnie z definicjami mapowania, znajdującymi się w pod projekcie SK_Model, w katalogu MappingFiles (*.hbm.xml). Widokiem są wykorzystane w systemie formularza ASP.NET, prezentujące najróżniejsze dane, wyciągane jako obiekty modelu poprzez zastosowanie komponentów DAO. Kontrolerem są odpowiednie klasy znajdujące się w katalogu AppCode aplikacji webowej, odpowiedzialne ze konkretne operacje biznesowe. Cała logika opisana jest w klasach kontrolera, znajdujących się w podprojekcie aplikacji webowej systemu, wykorzystujących komponenty dostępu do danych DAO do operowania na danych.
SKSIK - zalety SKSIK jest systemem złożonym z wielu podprojektów. zorientowanych obiektowo, z wydzielonymi warstwami architektury. Dzięki temu możliwe jest jednoczesne rozbudowywanie systemu na wielu warstwach. Zastosowanie mechanizmu O/R jakim jest NHibernate, daje nam dalsze możliwości rozszerzenia systemu o kolejną abstrakcyjną warstwę dostępu do danych DAO. Wykorzystywane mechanizmy NHibernate wspierają programowanie zorientowane obiektowo dla .Net. Pozwalają w łatwy sposób dostosować system do współpracy z dowolnym serwerem baz danych. Zastosowanie mechanizmu NHibernate w połączeniu z zalecana metodologią DAO, umożliwia stworzenie własnego, wspólnego API dostępu do danych.
SKSIK - instalacja 1 Do wdrożenia systemu potrzebujemy środowiska Visual Studio 2005, frameworka ASP.Net w wersji 2.0 oraz instalacji serwera baz danych MS SQL 2000 lub 2005. Dodatkowo należy zainstalować rozszerzenie ASP.NET AJAX. Poza tym aby system mógł działać, musimy odpowiednio skonfigurować połączenie z bazą danych. W pliku web.config należy prawidłowo zdefiniować wpisy: <add key="hibernate.connection.connection_string" value="Server=nazwa_serwera\nazwa_instancji;initial catalog=nazwa_bazy; User ID=nazwa_usera;Password=hasło;Min Pool Size=2"/> <add key="hibernate.default_schema" value=„nazwa_bazy.dbo"/> Po odpowiednim skonfigurowaniu połączenia z bazą danych przechodzimy do zbudowania projektu i pełnej kompilacji kodu źródłowego.
SKSIK - instalacja 2 W środowisku Visual Studio 2005 przechodzimy do okna Solution Explorer. Klikamy prawym przyciskiem myszy na nasz projekt i wybieramy opcje ‘Build Solution’ Następnie publikujemy nasza aplikacje webową Po kompilacji i opublikowaniu naszej witryny, pozostaje nam skonfigurowanie katalogu wirtualnego serwera aplikacji IIS, tak aby wskazywał katalog z publikowaną aplikacją webową (‘PrecompiledWeb’).
SKSIK - instalacja 3 Konfiguracja serwera aplikacji polega na zdefiniowaniu nowego katalogu wirtualnego dla naszej opublikowanej aplikacji webowej. Przechodzimy wobec tego do konsoli zarządzania serwerem IIS. Definiujemy nowy katalog wirtualny t.j. nadajemy mu nazwę, prawa i przywileje itd. Następnie wskazujemy jako ścieżkę do katalogu wirtualnego folder z naszą opublikowana aplikacją – standardowo nazywa się on ‘PrecompiledWeb’ i mieści się w nadrzędnym katalogu projektu SKSIK. Pozostaje nam teraz uruchomienie aplikacji webowej w aplikacji klienckiej, jaką jest przeglądarka internetowa. Z kolei po stronie serwera wymagane oprogramowanie to m.in. serwer aplikacji webowych, serwer baz danych, zainstalowany framework ASP.NET w wersji 2.0.
SKSIK - instalacja 4 Pierwszy raz uruchamiając aplikację, należy uruchomić skrypty instalacyjne eksportujące schemat modelu obiektowego do tabel relacyjnego serwera baz danych oraz inicjalizujące wartości słownikowe w bazie danych
SKSIK - instalacja 5 Konieczne jest również skopiowanie katalogu z opublikowaną aplikacja ‘PrecompiledWeb’ do lokalizacji serwera HTTP. W systemie Windows Server 2003, dla serwera IIS w wersji 6.0 jest to katalog ‘C:\WINDOWS\System32\inetsrv’ Uruchomienie procedury konfiguracyjnej środowiska bazy danych, stworzy nam odpowiedni schemat tabel bazy danych, a także niektóre z nich wypełni wartościami słownikowymi np. role użytkowników itp. Przykładowe wdrożenie dokonane zostało na następującej konfiguracji serwerowej: - System operacyjny Windows 2003 Server Enterprise Edition - Serwer baz danych MS SQL Server 2005 Developer Edition - Serwer aplikacji webowych IIS 6.0 z zainstalowanym i skonfigurowanym frameworkiem ASP.NET 2.0.5
Podział pracy J.Głuchy – zaprojektowanie systemu zgodnie z zaleceniami i paradygmatami modelu MVC. Implementacja pomocniczego menadżera transakcji i sesji NHibernate. Zastosowanie wzorca Open-Session-In-View. Zastosowanie metodologii dostępu do danych oraz implementacja DAO API. J.Feder – implementacja modelu, skrypty inicjalizujące, implementacja pomieszczeń w DAO. M.Ławrowski – testy, rozszerzenia w DAO. M.Gałązka – kody kreskowe EAN.