PROJEKT TECHNICZNY Implementacja Systemu B2B w firmie Lancelot i w przedsiębiorstwach partnerskich Przygotowane dla: Przygotowane przez: Lancelot Marek Cieśla Grzegorz Witkowski Constant Improvement Szkolenia - Doradztwo
Spis treści 1 Cel i zakres niniejszego dokumentu... 3 2 Diagramy klas... 3 2.1 Moduł obsługi użytkowników i podpisu elektronicznego... 4 2.2 Moduł uploadera i repozytorium plików... 5 2.3 Moduły raportów i notyfikacji... 6 2.4 Moduł workflow... 7 2.5 Moduł statystyk, trackingu stanów, widoków dedykowanych... 8 2.6 Moduł zarządzania operandami i centralny moduł zarządzania, moduł zarządzania czasem pracy... 9 2.7 Moduł zarządzania lokalizacjami... 10 2.8 Moduł backupu i archiwizacji... 11 3 Mapowanie obiektowo-relacyjne... 11 4 Wybór technologii... 12 4.1 Technologie bazodanowe... 12 4.2 Oprogramowanie serwerowe... 12 4.3 Technologie implementacji... 12 4.4 Technologie pomocnicze... 14 2
1 Cel i zakres niniejszego dokumentu Niniejszy dokument przedstawia propozycję rozwiązań w zakresie postaci diagramów klas oraz wyboru technologii bazodanowej, oprogramowania serwerowego, technologii implementacji i technologii pomocniczych. Projekt techniczny dotyczy następujących modułów omówionych w dokumencie Analiza przedwdrożeniowa dla firmy Lancelot: Moduł obsługi użytkowników i podpisu elektronicznego, Moduł uploadera i repozytorium plików, Moduły raportów i notyfikacji, Moduł workflow, Moduły statystyk, trackingu stanów, widoków dedykowanych, Moduł zarządzania operandami i centralny moduł zarządzania, moduł zarządzania czasem pracy, Moduł zarządzania lokalizacjami, Moduły backupu i archiwizacji. 2 Diagramy klas Diagramy klas zawierają przedstawione w postaci schematów powiązania między klasami w obrębie poszczególnych modułów systemu B2B. Na podstawie opracowanych diagramów zespół projektowy przystąpi do realizacji projektu. 3
2.1 Moduł obsługi użytkowników i podpisu elektronicznego 4
2.2 Moduł uploadera i repozytorium plików 5
2.3 Moduły raportów i notyfikacji 6
2.4 Moduł workflow 7
2.5 Moduł statystyk, trackingu stanów, widoków dedykowanych 8
2.6 Moduł zarządzania operandami i centralny moduł zarządzania, moduł zarządzania czasem pracy 9
2.7 Moduł zarządzania lokalizacjami 10
2.8 Moduł backupu i archiwizacji 3 Mapowanie obiektowo-relacyjne Mapowanie obiektowo-relacyjne (ang. Object-Relational Mapping, ORM) odwzorowuje obiektową architektury systemu informatycznego na relacyjną bazę danych. Schemat bazy danych zostanie wygenerowany za pomocą narzędzia zawartego w środowisku programistycznym i będzie ściśle powiązany z zależnościami między klasami przedstawionymi w formie diagramów klas. Wygenerowany diagram związków encji (diagram ERD od ang. Entity- 11
Relationship Diagram) posłuży do późniejszego wygenerowania skryptu generującego bazę danych na serwerze produkcyjnym. 4 Wybór technologii 4.1 Technologie bazodanowe System B2B będzie wykorzystywał system zarządzania relacyjnymi bazami danych MariaDB. MariaDB jest logicznym wyborem dla specjalistów baz danych szukających solidnego, skalowalnej i niezawodnej serwera SQL zachowującego jednocześnie wsteczną kompatybilność z MySQL. Głównym atutem projektu MariaDB jest współpraca ze społecznością wolnego oprogramowania i udostępnianie jej na licencji GPL, w przeciwieństwie do niepewnego statusu licencji MySQL, która zależy teraz od firmy Oracle. 4.2 Oprogramowanie serwerowe Komponenty serwerowe systemu B2B będą wykorzystywały platformę Microsoft Windows Server i/lub Linux z rodziny Debian. Na potrzeby obsługi usług WWW zostanie wykorzystany Microsoft Internet Information Services (IIS) i/lub Apache HTTP Server. 4.3 Technologie implementacji Pierwotnie planowane było zastosowanie następujących technologii implementacyjnych: PHP Obiektowy język programowania zaprojektowany do generowania stron internetowych w czasie rzeczywistym. PHP umożliwia współpracę z wieloma rodzajami źródeł danych, takich jak systemy zarządzania bazami danych, pliki tekstowe, dokumenty XML oraz serwisy WWW. GWT Google Web Toolkit jest biblioteką SDK do tworzenia aplikacji w oparciu o język Java z bogatym front-endem AJAX. GWT dostarcza zestaw bibliotek do tworzenia dialogów, przycisków, formularzy itp. Następnie kompiluje je i optymalizuje tworząc JavaScript, który powinien działać prawidłowo na wszystkich najpopularniejszych 12
przeglądarkach. Zastosowanie GWT w znaczący sposób przyśpiesza i uprasza proces kodowania. Apache Flex (wcześniej Adobe Flex) Zestaw technologii stworzonych przez Adobe Systems służących do tworzenia oprogramowania typu RIA (ang. Rich Internet Application) bazującego na Adobe Flash. Flex wykorzystuje MXML (bazujący na XML-u język opisujący interfejs użytkownika i jego zachowanie) oraz ActionScript (język programowania bazujący na ECMAScript służący do tworzenia logiki i interakcji w aplikacji). Komunikacja i wymiana danych odbywa się za pomocą HTTP, SOAP lub AMF. W wyniku prac przedwdrożeniowych i projektowych z uwagi na złożoność systemu, jego wielomodułowych charakter, konieczność przygotowania rozwiązań wieloplatformowych uruchamianych lokalnie oraz w wyniku rezygnacji przez wielu producentów urządzeń przenośnych ze wsparcia dla technologii Adobe Flash podjęta została decyzja o zmianie platformy programistycznej na opisaną poniżej. Podstawowym środowiskiem implementacji systemu B2B będzie Microsoft Visual Studio, a w szczególności obiektowy język programowania C#, którego podstawowymi zaletami są: obiektowość z hierarchią o jednym elemencie nadrzędnym, odśmiecanie pamięci, refleksje i atrybuty klas, typy ogólne (generics - dostępne od wersji.net 2.0), dynamiczne tworzenie kodu, bogata biblioteka klas BCL, umożliwiająca rozwijanie aplikacji: o konsolowych, o okienkowych (System.Windows.Forms oraz WPF od.net Framework 3.0), o bazodanowych (ADO.NET), o sieciowych (System.Net), o w architekturze rozproszonej (WebServices), o dynamicznych aplikacji internetowych (ASP.NET), o dynamicznych treści multimedialne (Silverlight). 13
Na potrzeby wsparcia pracy grupowej zespołu programistycznego zostanie wykorzystany system zarządzania kodem źródłowym Microsoft Team Foundation Server będący elementem składowym Microsoft Visual Studio. 4.4 Technologie pomocnicze W przypadku konieczności przygotowania wieloplatformowych komponentów systemu B2B zostanie wykorzystany język programowania Java, której kluczowymi cechami są: obiektowość i dziedziczenie, niezależność od architektury, sieciowość i obsługa programowania rozproszonego, niezawodność i bezpieczeństwo. 14