pobierz plik referatu
Transkrypt
pobierz plik referatu
Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008 Rozdział 8 w Organizacja przepływu informacji w dużym projekcie informatycznym w 1 Wstęp da .b w Streszczenie. Obieg informacji w dużych systemach informatycznych jest jednym z ważniejszych czynników wpływających na powodzenie przedsięwzięcia. Właściwa organizacja przepływu danych jest szczególnie istotna w fazie wdrażania oraz rozwijania już istniejących systemów. W poniższym rozdziale opisane zostały mechanizmy działające od kilku lat na Uniwersytecie Łódzkim. Są one stosowane w ramach tworzonego kompleksowego systemu informatycznego RPG1 Rektorat. 1 RPG – Rektorat Project Group BWZ – Biuro Współpracy z Zagranicą 3 FK – Finanse-księgowość 2 pl s. W rozdziale tym zaprezentujemy rozwiązania, które są skutecznie stosowane w systemie informatycznym RPG Rektorat. Grupa RPG powstała w 2003 roku na Uniwersytecie Łódzkim. Jej zadaniem jest stworzenie kompleksowego systemu informatycznego obsługującego wszystkie działania administracyjne związane z zarządzaniem państwową szkołą wyższą. Do chwili obecnej wdrożone zostały działy: Kadry, Płace, Rachunki, ZUS, Rekrutacja (łącznie z e-rekrutacją), KIOD (rozliczanie nadgodzin nauczycieli akademickich) i wiele mniejszych. Aktualnie trwają prace nad częścią związaną z działami: Socjalny, BWZ2, Wydawnictwo. Dużym wyzwaniem będzie dla nas przeprowadzenie części projektu związanego z działem FK3, łącznie ze stworzeniem mechanizmów dla potrzeb rachunkowości zarządczej. W ciągu tych kilku lat naszej pracy i niezliczonej liczby zagadnień, które musieliśmy poddać wnikliwej analizie, zaprojektować i zaimplementować stworzyliśmy rozwiązania, których zadaniem jest ułatwienie pracy nam oraz osobom z nami współpracującym. Obecnie, w prace nad rozwojem oraz bieżącym utrzymaniem systemu zaangażowanych jest 28 osób. W większości są to osoby ściśle związane z informatyką. W opisywanym Marcin Lizis Uniwersytet Łódzki, Filia w Tomaszowie Mazowieckim, Instytut Studiów Informatycznych, ul. Konstytucji 3-go Maja 65/67, 97-200 Tomaszów Mazowiecki, Polska email: [email protected] Marta Grzanek, Sebastian Wojczyk Uniwersytet Łódzki, Wydział Matematyki, KAMiTS, ul. Banacha 22, 90-238 Łódź, Polska email: {marta, wojczyk}@math.uni.lodz.pl (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008 Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008 M. Lizis, M. Grzanek, S. Wojczyk projekcie, głównym źródłem informacji na temat specyfiki pracy określonego działu są osoby, które od wielu lat w tym dziale pracują. Dzięki takiej organizacji oprócz wiedzy na temat konkretnych przepisów, uzyskujemy również sugestie dotyczące ergonomii tworzonej aplikacji. Należy wspomnieć, że system RPG Rektorat ma obecnie ponad 100 czynnych użytkowników. Przy takiej ilości osób pracujących jako użytkownicy systemu i jako informatycy konieczne stało się opracowanie mechanizmów wymiany informacji między nimi i odpowiedniej reakcji na określone sygnały. w 2 Obieg informacji w 2.1 Struktura organizacyjna da .b w Przy wspomnianej wyżej liczbie osób związanych bezpośrednio z funkcjonowaniem systemu koniecznym okazało się zdefiniowanie hierarchii pracowników w poszczególnych działach. W każdym dziale znajduje się jedna lub kilka osób upoważnionych do przekazywania sugestii projektowych. Ilość osób wytypowanych zależy od ich kompetencji. Jeżeli mamy do czynienia z działem, nad którym merytorycznie panuje jedna osoba to jest ona jednocześnie najlepszym i w praktyce jedynym źródłem informacji na temat funkcjonowania tej jednostki. W przypadku większych jednostek konieczne jest wybranie kilku osób posiadających szczegółową wiedzę na temat różnych zagadnień, tak aby ich łączny zasób informacji ogarniał cały dział. W tym miejscu należy zauważyć, że zadaniem tych wybranych pracowników jest zgłaszanie wszelkich próśb o zmiany w aplikacji. Mogą one wynikać ze zmian przepisów, mogą być próbą optymalizacji pracy pracowników, czy wreszcie mogą być następstwem odkrycia błędów w aplikacji. Ostatni typ zgłoszenia nie musi być zgłaszany przez osoby wytypowane. Informacje o błędach mogą być przekazywane również przez osoby, które się bezpośrednio zetknęły z niewłaściwym, ich zdaniem, funkcjonowaniem systemu. Pracownikom grupy RPG również zostały przydzielone odpowiednie funkcje w zależności od znajomości systemu, umiejętności, predyspozycji. W omawianym zagadnieniu najistotniejsze są funkcje: − pracownik help desk, − kierownik merytoryczny, − programista. Pracownik help desk jest osobą odpowiedzialną za kontakt z użytkownikiem systemu, przyjmowanie zgłoszeń o błędach aplikacji, wstępna weryfikacja zgłoszeń, przyporządkowanie problemu do odpowiedniego modułu, tabel bazodanowych, itp. oraz przekazanie informacji o zgłoszeniu do kierownika merytorycznego odpowiedzialnego za konkretny dział. Kierownik merytoryczny posiada wiedzę na temat założeń projektowych działu oraz ich realizacji. W związku z tym, przez niego przechodzą wszystkie zgłoszenia z odpowiedniej jednostki. Zarówno zgłoszenia dotyczące błędów, jak i te o zmianach. Jako osoba posiadająca całościową wiedzę, na temat określonej jednostki decyduje on jaki będzie dalszy los zgłoszenia, w jaki sposób zostanie ono obsłużone, przez kogo i w jakim czasie. Następnie nadzoruje prace nad realizacją zadania. W sytuacji, gdy kierownik merytoryczny znajduje się na urlopie lub zwolnieniu lekarskim wtedy jego obowiązki są wypełniane przez pracownika jego zespołu, który posiada największą wiedzę i doświadczenie związane z danym modułem. pl s. 100 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008 Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008 Organizacja przepływu informacji w dużym projekcie informatycznym w Należy tu zwrócić uwagę na dwie drogi przypływu informacji od użytkowników do kierownika merytorycznego. W przypadku zgłoszeń związanych z błędami, przechodzą one przez help desk. Wszelkie nowości i optymalizacje są bezpośrednio omawiane między wyznaczonymi użytkownikami a kierownikiem merytorycznym. W części bazodanowej na system Rektorat składa się ponad 300 tabel, nie licząc tabel z danymi historycznymi, widoków itp. Co za tym idzie każdy programista zajmuje się implementacją mechanizmów z określonego obszaru. Nie koniecznie chodzi tu o jeden dział, raczej o ideę. System Rektorat posiada centralną bazę danych, w związku z tym te same informacje są wykorzystywane w różny sposób w różnych modułach systemu, które są następnie używane przez pracowników wielu jednostek organizacyjnych. w 2.2 Realizacja zadań da .b w Po przyjęciu zgłoszenia i podziale pracy dla poszczególnych programistów, kolejnym etapem jest realizacja zlecenia. Na tym etapie każda zmiana w aplikacji jest zapisywana w systemie kontroli wersji. Wszystkie te zmiany oczywiście muszą być opatrzone odpowiednim komentarzem. Realizacja zgłoszenia nie oznacza jeszcze, że zmieniona aplikacja trafi na serwery produkcyjne. System składa się z wielu połączonych ze sobą komponentów. Każdy komponent jest testowany przez programistę, który go tworzy lub zmienia wykorzystując przypadki testowe zgłoszone przez użytkowników i pracowników help desk. Następnie trafia on na serwer testowy, gdzie sprawdzane są części aplikacji wykorzystujące ten komponent przez użytkowników systemu. Przyjęliśmy następujące założenia dotyczące tworzenia i przekazywania aplikacji do użytkownika końcowego: − na serwery produkcyjne trafia przetestowana aplikacja, − wszelkie niewielkie uaktualnienia aplikacji oraz zmiany związane z poprawą błędów trafiają raz dziennie do wersji testowej aplikacji, − do wersji testowej mają dostęp wszyscy użytkownicy systemu z takimi samymi uprawnieniami do danych jak w wersji produkcyjnej, − wszelkie zmiany danych w wersji testowej służą tylko i wyłącznie do przetestowania mechanizmów, w związku z czym baza testowa jest tworzona codziennie i zawiera aktualne dane z części produkcyjnej, − proces przenoszenia wersji testowej na produkcyjną odbywa się raz w tygodniu i wiąże się z uaktualnieniem bazy systemowej oraz części aplikacyjnej, każda tak stworzona wersja posiada swój unikalny numer (aktualna wersja produkcyjna ma numer 1.3.98, gdzie pierwszy człon odpowiada za zmiany technologiczne mające wpływ na przebudowę całego systemu, drugi człon odpowiada za istotne zmiany w silniku aplikacyjnym (RPG silnik) i trzeci człon identyfikuje cotygodniowe uaktualnienie wersji systemowej), − duże zmiany w aplikacji są zapisywane w oddzielnej gałęzi systemu kontroli wersji. Spowodowane jest to dłuższym czasem realizacji całego zgłoszenia. W związku z tym aplikacja testowa zawierająca powyższe zmiany jest umieszczona pod innym, z góry ustalonym adresem intranetowym. pl s. W zależności od wielkości realizowanego zlecenia różny jest sposób informowania użytkownika końcowego o dostępności rozwiązania. Jeżeli mamy do czynienia z dużą zmianą to kierownik merytoryczny organizuje pracę dla programistów, na bieżąco informuje pracowników zainteresowanej jednostki organizacyjnej o postępach prac i koordynuje proces testowania aplikacji. Mniejsze zmiany, bezpośrednio po ich realizacji trafiają do wersji testowej, gdzie do końca tygodnia są sprawdzane i ewentualnie dalej 101 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008 Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008 M. Lizis, M. Grzanek, S. Wojczyk zmieniane. Wszelkie zmiany umieszczone na wersji testowej są zaopatrzone w odpowiedni komentarz programisty, opisujący zmiany, które zostały poczynione. Następnie na podstawie komentarzy tworzone jest zestawienie zmian, które pojawiły się w odpowiedniej wersji. Polega to na moderacji komentarzy stworzonych przez programistów. Tak stworzony log zmian zostaje automatycznie umieszczony w portalu informacyjnym systemu. w 3 Narzędzia informatyczne 3.1 FlySpray da .b w w Cały opisany wyżej proces przekazywania informacji między pracownikami i twórcami systemu jest wspomagany przez odpowiednie oprogramowanie. Wybór wykorzystywanych aplikacji poprzedzony był wnikliwym testowaniem rozwiązań dostępnych na rynku. Poza opisanymi niżej systemami FlySpray i svn używaliśmy również innych narzędzi do raportowania błędów – Bugzilla i kontroli wersji – csv. Wybrane jednak zostały te aplikacje, które były zgodne z naszymi wymaganiami i dodatkowo były pozytywnie odbierane przez większość pracowników naszego zespołu. Proces realizacji wszystkich zmian w systemie RPG Rektorat rozpoczyna się od zdefiniowania konkretnej czynności, która ma zostać wykonana aby osiągnąć odpowiedni efekt. Wszystkie zadania są ewidencjonowane w systemie FlySpray. Autorzy aplikacji stworzyli ją z myślą o ułatwieniu obsługi zgłoszeń o błędach w aplikacji. W naszym projekcie jest ona również stosowana do nadzorowania działań związanych z wprowadzaniem nowości i zmian do systemu. Każde zadanie wprowadzone do aplikacji posiada szereg atrybutów, które jeżeli są odpowiednio wykorzystywane mogą znacznie ułatwić pracę. Z punktu widzenia nadzoru nad obiegiem informacji najistotniejszymi atrybutami są: − − − pl s. − − tytuł zgłoszenia, treść zgłoszenia – zawiera szczegółowe informacje o zadaniu, łącznie z danymi zgłaszającego użytkownika systemu, dokładnym opisem oczekiwanego działania, oraz w przypadku błędów konkretne informacje o sytuacji kiedy błąd się pojawił, czyli w kontekście którego pracownika/których pracowników była wykonana akcja i jakie wartości były wprowadzone w poszczególne pola opcji, ważność, priorytet – pola pomagają zdefiniować kolejność wykonywania poszczególnych zleceń, identyfikator osoby, do której zostało przydzielone zadanie – na początku każde zadanie jest przydzielone do kierownika merytorycznego, on podejmuje decyzję komu należy powierzyć realizację zgłoszenia i odpowiednio zmienia wartość tego pola, procent postępu – pole szczególnie istotne dla celów informacyjnych. Osoba realizująca zadanie uaktualnia pole po każdym etapie realizacji, dzięki czemu kierownik jest w stanie poinformować osoby zainteresowane z odpowiedniego działu o przewidywanym czasie realizacji zlecenia, 102 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008 Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008 Organizacja przepływu informacji w dużym projekcie informatycznym − w zgłoszenia powiązane – przy większych zgłoszeniach, szczególnie zawierających definicje zmian i nowości pojawia się konieczność podziału zadania na kilka mniejszych, które często są zależne od siebie. Najprostszym przykładem jest zdefiniowania zadania związanego z modyfikacją bazy danych, po zakończeniu którego można przystąpić do tworzenia części aplikacyjnej obsługującej wprowadzone zmiany. Poza umieszczonymi wyżej atrybutami używamy również kilku mniej istotnych atrybutów, które nie mają tak dużego znaczenia. 3.2 Svn4 da .b w w Po odpowiednim zdefiniowaniu zgłoszenia i przydzieleniu go do konkretnego programisty zaczyna się proces implementacji. Wszystkie zmiany wykonane w bazie i aplikacji trafiają do globalnego repozytorium svn. W repozytorium przechowujemy wersję produkcyjną, wersje testowe oraz wszystkie wersje archiwalne. Zgodnie z naszą polityką bezpieczeństwa jesteśmy w stanie odtworzyć stan systemu z dowolnego dnia od początku działania systemu, nawet w przypadku całkowitego zniszczenia serwerów produkcyjnych. W takiej sytuacji musielibyśmy mieć trzy wzajemnie ze sobą powiązane części: − skrypty tworzące w pełni funkcjonalną bazę danych, − pliki RPG silnika oraz aplikacji systemowej, − dane z interesującego nas dnia. Dane z aplikacji systemowej są archiwizowane raz dziennie i trafiają w bezpieczne miejsce. Dwie pierwsze pozycje są umieszczone w repozytorium svn, które jest podzielone na dwie główne gałęzie: produkcyjną i testową. W gałęzi produkcyjnej znajdują się wszystkie wersje od początku działania systemu. W gałęzi testowej znajduje się przynajmniej jedna wersja testowa. Jeżeli w danej chwili jest realizowane większe zgłoszenie, to ma ono swoją odrębną wersję testową. Wszystkie tak opisane wersje składają się z części bazodanowej i aplikacyjnej. Część związana z bazą danych zawiera wszystkie skrypty potrzebne do stworzenia bazy od podstaw. Zawiera ona skrypt zarządzający, który w odpowiedniej kolejności uruchamia odpowiednie części procedury inicjalizującej. Tworzone są po kolej tabele, sekwencje, klucze główne, obce, indeksy, widoki, wyzwalacze itd. Część aplikacyjna systemu opiera się na technologii www, w związku z czym nie wymaga ona przeprowadzania skomplikowanej procedury inicjującej. pl s. 4 Subversion – system kontroli wersji 103 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008 Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008 M. Lizis, M. Grzanek, S. Wojczyk w da .b w w Rys 1. Uproszczona architektura repozytorium svn. 3.3 Panel logów zmian pl s. Kolejnym etapem związanym z realizacją zadania jest poinformowanie użytkowników systemu o wprowadzeniu określonej funkcjonalności w konkretnej wersji. Informacje o wszystkich zmianach są tworzone na podstawie opisów dołączanych do plików podczas umieszczania ich w repozytorium. Przed publikacją opisów w portalu informacyjnym opisy muszą zostać zmoderowane. Dzieje się tak dlatego, że komentarze trafiające do svn mają charakter czysto techniczny. W tym celu stworzony został panel, dzięki któremu można w prosty sposób zdefiniować opisy w formie akceptowalnej przez użytkowników na podstawie technicznych komentarzy. Poza tym, należy zwrócić uwagę, że komentarze pochodzące z svn są przyporządkowane do plików, w których były poczynione zmiany. W związku z tym osoba moderująca opis musi jeszcze umieścić informację o tym, która opcja systemu została zmieniona. Do realizacji powyższego zadania stworzyliśmy bazę danych oraz aplikację www, dzięki której możliwe jest edytowanie opisów. 104 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008 Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008 Organizacja przepływu informacji w dużym projekcie informatycznym w w w Rys 2. Schemat bazy danych da .b Powyższa baza jest uaktualniana automatycznie. Trafiają do niej opisy svn łącznie z informacjami o tym kto, kiedy i w jakim pliku wykonał zmiany (tabele: sciezka, svn, repozytorium). Do panelu administracyjnego logami mają dostęp wszyscy programiści. Korzystanie z serwisu jest możliwe po zalogowaniu się (tabela: uzytkownik). W zależności od uprawnień użytkownika ma on dostęp do określonego repozytorium svn (tabela: uzytkownik_repozytorium), np. uprawnienia do gałęzi systemowej i do rekrutacji zewnętrznej. Dane identyfikacyjne są wykorzystywane do odpowiedniej personalizacji prezentowanych treści. Najważniejszą funkcją panelu jest dostęp do narzędzia edycyjnego umożliwiającego tworzenie opisów (tabele: svn, svn_www). Programiści mają również możliwość przeglądania wszystkich swoich zmian umieszczonych w svn oraz opisów przez nich stworzonych. W prezentowanym rozwiązaniu istotna jest również funkcja administratora, który w momencie uaktualniania aplikacji systemowej definiuje również numer wersji aplikacji oraz daty początku i końca obowiązywania danej wersji (tabela: wersja). pl s. 3.4 Portal informacyjny Ostatnim etapem przepływu informacji jest portal intranetowy poświęcony tematyce systemu RPG Rektorat. Znajdują się tam podstawowe informacje o historii systemu, grupie RPG, jak również dostęp do dokumentacji systemu oraz pełen opis zmian w poszczególnych wersjach. Wszystkie zmiany tu zaprezentowane pochodzą z opisanej wyżej bazy danych. Są one podzielone na poszczególne wersje systemowe i dodatkowo do każdej wersji dodana jest data początku jej obowiązywania. Wszystkie opisy znajdujące się w określonej wersji są do niej przyporządkowane na podstawie daty dodania zmian do repozytorium svn. Natomiast opis jest widoczny w portalu dopiero po jego moderacji przez uprawnionego programistę. Najczęściej używaną funkcjonalnością portalu jest zestawienie zmian. Jest to szczególnie przydatne narzędzie dla użytkowników systemu, którzy w każdej chwili mogą 105 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008 Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008 M. Lizis, M. Grzanek, S. Wojczyk sprawdzić kiedy pojawiła się dana funkcjonalność oraz czy zgłoszone zmiany zostały już wprowadzone. 4 Podsumowanie w Opisany mechanizm obiegu informacji sprawdza się doskonale przy realizacji systemu RPG Rektorat. Jest on wykorzystywany w stosunkowo hermetycznym środowisku. Wprawdzie wszystkich osób związanych z systemem jest około 150, ale przy z góry zdefiniowanych obowiązkach każdej osoby nie pojawiły się problemy z funkcjonowaniem powyższych mechanizmów. W najbliższym czasie rozwiązania te będą testowane przy okazji realizacji projektu ściśle związanego z systemem RPG Rektorat. Każdy pracownik naszej uczelni będzie miał dostęp do swoich danych osobowych oraz finansowych przetwarzanych w systemie. Funkcjonalność ta będzie zrealizowana w formie portalu internetowego z dostępem do prywatnych danych po zalogowaniu. Po otwarciu dostępu do portalu każdy z ponad 4000 potencjalnych użytkowników będzie mógł zgłaszać swoje uwagi, znalezione błędy oraz pomysły na dodatkową funkcjonalność za pośrednictwem odpowiednio przygotowanej strony. Dalsza część obsługi zgłoszeń będzie realizowana z wykorzystaniem mechanizmów opisanych w tym rozdziale. 1. 2. 3. 4. da .b w w Literatura Lizis M., Wojczyk S.: Warstwa bazy danych w aplikacjach trójwarstwowych opartych na technologiach PHP i XML. Bazy Danych-modele, technologie, narzędzia t.2, Warszawa 2005. http://flyspray.org/ http://www.postgresql.org/ http://subversion.tigris.org/ pl s. 106 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008