ROZDZIAŁ 11 INTERNETOWY sYsTEm DObORu CZŁONkóW … · jest jedynie dla małych serwisów,...
Transcript of ROZDZIAŁ 11 INTERNETOWY sYsTEm DObORu CZŁONkóW … · jest jedynie dla małych serwisów,...
Internetowysystemdoboruczłonkówdozespołów
141
ROZDZIAŁ 11
INTERNETOWY sYsTEm DObORu CZŁONkóW ZEspOŁu
11.1. TWORZENIE I buDOWA WEbOWYCh sYsTEmóW RIA
Jednymzrezultatówpracbadawczychprezentowanychwniniejszejksiążcebyłooprogramowaniewspomagająceprocesdoboruskładuzespołuprojektowegonazwa-neTeamCreator. Kluczową kwestią podczas projektowania software’u był wybórformyjegodziałaniaorazdobranieodpowiedniejdotegotechnologii.Zewzględunacharakteroprogramowania,któremusiałobyćudostępnionewInternecie,analizatechnologicznazostałaograniczonadotechnologiiumożliwiającychbudowęserwi-sówinternetowych,pomijającaplikacjedesktopowe.
Najprostszym i historycznie pierwszym rozwiązaniem budowy internetowychsystemówklient-serwerjestzastosowanie„cienkiegoklienta”,któryodpowiadaje-dynie za prezentacje danych, awszystkie operacje sąwykonywane przez serwer.JednakżeobecnietworzeniewarstwyklientawoparciuczystyHTMLdopuszczalnejestjedyniedlamałychserwisów,kosztemichniskiejergonomii.
DlategoteżzdecydowanoobudowiesystemuTeamCreatorwformiebogatejaplikacjiinternetowejRIA(ang.Rich Internet Applications).Opróczwiększegokomfortupracy,gdyżobsługaaplikacjiniewymaganieustannejkomunikacjizserweremiprzeładowywa-niastron,graficznyinterfejsużytkownikaGUI(ang.Graphical User Interface)dostępnywRIAprzypominabardziejaplikacjedesktopowe,niżubogieformularzeinternetowe.
Obserwowalny rozwój technologiiRIAnieoznacza jedyniezwiększania się ichprzewaginadklasycznymiserwisamiinternetowymiz„cienkimklientem”,aleprzeja-wiasiętakżewformieoprogramowaniaudostępnionegowpostaciRIAzamiastwfor-mieaplikacjidesktopowych.WynikatozpodstawowychzaletRIA,którymisą:
– prostotainstalacjilubczęstocałkowitybrakkrokówinstalacyjnych;– bezpieczeństwo dla użytkowników, ze względu na centralizacje serwis jestmniejpodatnynazagrożenia;
– dostępnośćdlaużytkownikównadowolnejmaszynie,przybrakukoniecznościinstalowaniaoprogramowaniajakiprzechowywaniudanychnaserwerzeser-wisuużytkownicymogąkorzystaćzniegonaróżnychkomputerach;
– niezależnośćodplatformysprzętowejczysystemuoperacyjnego,jedynewy-mogi mogą dotyczyć dostępności określonych pluginów pozwalających natransformacjęuniwersalnegokodunakodnatywnymaszyny;
– możliwościcentralnejaktualizacji,wprowadzonezmianysąodrazudostępnedlaużytkownikówserwisu.
Jednakżewybórtakiejformyoprogramowaniawymagazrozumieniapewnychogra-niczeńRIAprzedpodjęciemdecyzjiotworzeniuoprogramowania,sąnimi:
WiesławPietruszkiewicz
142
– wymaganiedodatkowegooprogramowania(pluginów);– mniejsza szybkośćkodu,który jestdopiero interpretowany i zamienianynakodnatywnynamaszynieklienta;
– ograniczeniabezpieczeństwa,całkowiciezabezpieczającedostępdokrytycznychzasobówkomputeralubwymagającekonfiguracjidostępucowpływanamożli-wościaplikacji;
– uzależnienieniezawodnościiszybkościdziałaniaodjakościiprzepustowościłączy.
IstniejekilkanaścietechnologiitworzeniaGUIdlaaplikacjiRIA,najpopularniej-szeznichzostałyzebraneischarakteryzowanewtabeli11.1.
11.2. TEChNOlOgIA OpENlAsZlO
Po analizie technologicznej dostępnych możliwości, do budowy systemuTeamCreatorzostaławybranatechnologiaOpenLaszlorozwijanaprzezLaszloSystems.PierwotnienazwanaLaszlo Presentation Server,technologiatazostaławypuszczonaw2004r.jakorozwiązanieOpen Sourcewrazzezmienionąnazwą–OpenLaszlo.
Wybórtejtechnologiispośródinnych(tabela11.1)podyktowanyzostałnastępu-jącymiwzględami:
– otwartośćrozwiązania,– możliwośćuruchomieniaRIAnaróżnychplatformachisystemach,– wsparciedlaprototypowaniaszkieletuaplikacji,– atrakcyjnaformawizualna,– dużemożliwości,– praktyczniebrakkoniecznościinstalowaniadodatkowegooprogramowanianakomputerzeklienta(wymaganyjestFlashlubJavaScript).
UproszczonyschematarchitekturyOpenLaszlozostałzaprezentowanynarysunku11.1.
Rysunek11.1. ArchitekturaaplikacjiRIAwykonanychwtechnologiiOpenLaszlo
źródło:opracowaniewłasne
Internetowysystemdoboruczłonkówdozespołów
143
Tabela11.1. DostępnetechnologietworzeniaGUIdlaRIA
Technologia Opis Twórca
AJAX
Technologiabędącapołączeniemdostępnychwcześniejrozwiązańtechnologicznych,międzyinnymiXHTMLiCSSwwarstwieprezentacyjnej,XMLiXSLTwwymianiedanychorazJavaScriptjakojęzykaprogramowania.Wady:dużaliczbaniekompatybilnychbibliotek,niskaszybkośćtworzenia,zależyodobsługiJavaScript.Zalety:niewymagadodatkowychpluginów.
-
Flex
KodFlexskładasięzjęzykaMXML(opisujeGUI)orazActionScript,któretransformowanesądopostaciskryptówFlash.Wady:rozwiązaniezamknięte,jedynenarzędzieRADoferowaneprzezsamegoproducentatechnologii.Zalety:bazujenaFlash’udostępnymnawiększościkomputerów.
(Adobe,2009a)
OpenLaszlo
KodLZX,będącypołączeniemXMLiECMAScript,jestkonwertowanyprzezserwletdopostaciFlashlubAJAX.Wady:brakzaawansowanychnarzędziRAD,technologiarozwijana.Zalety:rozwiązanieotwarte,szybkośćprototypowania,możliwośćtworzeniaaplikacjidocelowoopartychnaFlashjakiAJAX,bazujenaFlashlubJavaScriptdostępnychnawiększościkomputerów.
(LaszloSystems,2009)
JavaFX*
JęzykskryptowypozwalającynazastosowaniekomponentówSwingwaplikacjachRIA.Wady:nowaimałopopularnatechnologia.Zalety:dostępnośćdarmowychnarzędziRAD,bazujenaprzetestowanejtechnologiiJava.
(SunMicrosystems,2009a)
Flash
Technologiapierwotniestworzonadoanimacji,obecnieposiadamożliwośćtworzeniaGUI.Wady:rozwiązaniezamknięte,wolnyprocestworzeniaGUI,technologiaukierunkowananawsparciegrafikinieprogramowania.Zalety:dojrzałość,popularność.
(Adobe,2009b)
Silverlight
Pozwalanauruchomieniewprzeglądarcedowolnegokoduwspieranegoprzez.NET.Wady:rozwiązaniezamknięte,wymagaspecjalnegopluginu,ograniczonadostępnośćnaróżnychplatformach.Zalety:możliwośćwykorzystanianarzędziijęzykówwspieranychprzez.NET.
(Microsoft,2009)
Java
Pierwszywpełniprzenaszalnyjęzykprogramowania,wprzypadkuRIAstosowanesąaplety,będąceaplikacjamiJavaosadzonymiwprzeglądarceoograniczonychmożliwościach(względybezpieczeństwa).Wady:wymagawirtualnejmaszynyJava(JavaVirtualMachine),utrudnioneprototypowanie.Zalety:dobrzeudokumentowanerozwiązanie,dużemożliwości,popularność.
(SunMicrosystems,2009b)
HTML**
KodHTMLwykorzystywanyjedyniedostworzeniapodstawowychelementówGUI.Przetwarzaniewymagaciągłegoprzeładowywaniastron.Wady:niskaszybkośćtworzeniaaplikacji,powolnośćdziałania,dużyprzesyłdanych,obciążenieserwera,niskaergonomiaużytkowania.Zalety:brakwymogówdotyczącychzainstalowaniadodatkowychpluginów,niskieobciążeniemaszynyklienta.
-
* TechnologiaJavaFXpierwotnieniebyłabranapoduwagęjakotechnologiatworzeniasystemuTeamCreator,gdyżjejpublicznawersja1.0zostaławprowadzonaprzezfirmęSunwgrudniu2008,tj.wkońcowychetapachtworzenia systemuTeamCreator.W niniejszym zestawieniu została jednak umieszczona zewzględu na jejpotencjał.
** SamHTMLniejesttechnologiątworzeniaRIA,tylkopunktemodniesieniajakopierwotnerozwiązaniebudowyserwisówinternetowych,gdziewarstwaklientasłużyjedyniedoprzekazywaniadanychprzetwarzanychcałko-wicieprzezserwer.
źródło:opracowaniewłasne
WiesławPietruszkiewicz
144
Technologia przewiduje dwiemożliwości udostępniania aplikacjiRIA: „J2EE deployment” i „SOLO deployment”. Pierwszy w wariantów wymaga konteneraaplikacjiwebowychnaserwerzeprodukcyjnym,gdziezapytaniaodnoszącesiędoaplikacjiOpenLaszlosąprzetwarzanenabieżącoprzezserwerJ2EE.Wtymprzy-padkumożliwejestkorzystaniewpełnizusługudostępnianychprzezserwerJ2EEmiędzyinnymiobsługiSOAP.Wdrugimwariancie„SOLOdeployment”aplikacjaOpenLaszlomożezostaćskompilowanaprzezdeveloperadopostaciSWFlubAJAXi umieszczona na serwerze HTTP. Ten wariant jest prostszy do zastosowania nawiększościserwerówWWW,przyczymprzybrakukoniecznościzastosowaniaspe-cjalnychmożliwościkontenerówaplikacji,funkcjonalnośćaplikacjidladocelowegoużytkownikajestniedoodróżnieniawobydwuwariantach.
Odstronyprogramistycznej tworzenieaplikacjiOpenLaszloopiera sięnawy-korzystaniu języka LZX, będącego połączeniem XML (w części odnoszącej siędoGUI)przypominającego językiXUL/XAMLorazECMAScript (JavaScript lubActionScript) do tworzenia kodu programu. Dzięki temu język LZX pozwala naszybkie tworzenie szkieletuaplikacji.Mankamentem tej technologii jestbrak roz-winiętychnarzędziRADwspomagającychrozwójaplikacjipoutworzeniuszkiele-tu. Jednakże atrakcyjna formawizualna, łatwość uruchomienia przez docelowegoużytkownika(niezbędneoprogramowaniejestdostępnenawiększościkomputerówpodłączonychdointernetu)powodujewzrostpopularnościtejtechnologii,któraprzywsparciuspołecznoścideveloperówzyskujenamożliwościach.
Przykładowykodprogramu,wyświetlającyelementComboBoxzostałzamiesz-czony poniżej (fragment pochodzi z przykładów udostępnionych przez LaszloSystems):...<view name=”stylechooser” layout=”axis:x; spacing:4”>
<text>Style:</text><combobox width=”120” editable=”false”>
<method event=”onselect”>var colorchoice = this.getText();c a n v a s [ c o l o r c h o i c e + ’ c o l o r s ’ ] .setAttribute(„isdefault”, true);
</method><textlistitem text=”silver” /><textlistitem text=”green” /><textlistitem text=”blue” selected=”true”/><textlistitem text=”gold” /><textlistitem text=”white”/><textlistitem text=”purple” />
</combobox></view>...
PokompilacjidopostaciAJAXwyglądprzykładowychkomponentówbudowyGUIzostałzamieszczonynarysunku11.2:
Internetowysystemdoboruczłonkówdozespołów
145
Rysunek11.2. WyglądkomponentówGUIwtechnologiiOpenLaszlo(wariantAJAX)
źródło:(OpenLaszlo,2009)
PrzyczymwwarianciekompilacjiLZXdopostaciFlash(historyczniebędącejpierw-szymformatemdostępnymwOpenLaszlo)wyglądkomponentówjestidentyczny.
11.3. ARChITEkTuRA sYsTEmu TEAmCREATOR
Patrzącod strony technicznej na systemTeamCreator, jegodziałaniewymagaudostępnieniadwóchserwerów–serweraHTTP(obecnieApache)orazserweraba-zodanowego(obecnieMySQL).Przyczymmożliwejestzastosowanieinnychwersjiserwerów,takichjakIISdlaHTTP,czyPostgresSQLdlabazdanych.Strukturawdro-żeniowasystemuznajdujesięnarysunku11.3.Dlaklientabezpośredniodostępnesątrzypliki:„index.php”zawierającyosadzonyklipFlash„team.swf”,będącyczęściąGUIsystemuTeamCreatororazplik„interface.php”służącyjakoin-terfejskomunikacyjnyzserwerowączęściąsystemu.Rdzeńserwerowejczęścisys-temuznajdujesięwpliku„system.php”,natomiastkomunikacjazserwerembazdanychodbywasiępoprzezinterfejsDBPear.
Struktura składnicy danych opiera się na tabelach o strukturze i połączeniachlogicznych,którezostałyprzedstawionenarysunku11.4.
SystemTeamCreatorzostałrozdzielonynaosiemmodułów(rysunek11.5),którezajmowałysięobsługąspójnychlogiczniezadańifunkcjisystemu,takichjaktestyczykompetencje.Zpunktuwidzeniaklientarozdziałnamodułyniejestwidoczny,niezwiększatakżeilościplikówjakiemuszązostaćpobrane,abyTeamCreatormógłfunkcjonować.Natomiastpodziałnamodułybyłistotnyzpunktuwidzeniarozwojuaplikacji,dającszansęnarozbicie jejnamniejszejednostki,cousprawniłoprocestworzenia,testowaniaorazwprowadziłolepsząorganizacjękodu.
WiesławPietruszkiewicz
146
Rysunek11.3. DiagramwdrożeniowysystemuTeamCreator
<<klient>>
<<serwer HTTP>>
<<serwer MySQL>>
system.php<<artifact>>
index.php<<artifact>>
interface.php<<artifact>>
DB<<artifact>>
Baza www_team<<artifact>>
Przegladarka WWW<<artifact>> TCP/IP
Ethernet
definitions.php<<artifact>>
team.swf<<artifact>>
źródło:opracowaniewłasne
Rysunek11.4. DiagramklasdlasystemuTeamCreator
grupy<<table>>
+grupa_id+nazwa+rodzaj+status
hasla<<table>>
+uzytkownik_id+haslo
kompetencje<<table>>
+kompetencja_id+grupa_id+nazwa+opis+status
mozliwosci<<table>>
+uzytkownik_id+edukacja+szkolenia+publikacje+zatrudnienie+granty+kompetencje+nagrody+uwagi
testy<<table>>
+test_id+typ+uzytkownik_id+rezultat+odpowiedzi+data
udzialy<<table>>
+udzial_id+zespol_id+uzytkownik_id+rola
uzytkownicy<<table>>
+uzytkownik_id+identyfikator+imie+nazwisko+pesel+ulica+kod+miasto+panstwo+telefon+email+obywatelstwo+data_urodzenia+plec+mbtiW+mbtiF+olimpM+olimpZ+mb+amb+status+aktywnosc
wymogi<<table>>
+uzytkownik_id+nazwa+klucz+liczba+edukacja+szkolenia+publikacje+zatrudnienie+granty+kompetencje+nagrody+uwagi
zespoly<<table>>
+zespol_id+organizacja+nazwa+klucz+rodzaj+liczebnosc+selekcja+liczebnosc_min+liczebnosc_max+kandydaci+kierownik_id
należące
dotyczy
posiada
przydpisane do
posiadane przez
wykonane przez
określane przez
określane przez
zdefiniowane przez
oceny<<table>>
+ocena_id+zespol_id+oceniajacy_id+oceniany_id+typ+data+ocena
dotyczy
dotyczy
wyniki<<table>>
+zespol_id+data+typ+wynik
dotyczą
źródło:opracowaniewłasne
Internetowysystemdoboruczłonkówdozespołów
147
Przypadkiużyciazgrupowanewmodułachodpowiadająpodstawowejfunkcjo-nalnościsystemu,któraobejmowała:
– wykonywanieprzezużytkownikówtestówtakichjaktestprofiluosobowości,roliwzespole,ambicjiczykulturyorganizacyjnej;
– zbieranieinformacjiokompetencjachposiadanychprzezużytkowników;– zbieranieinformacjiowymogachprojektów;– dokonywanieocenykontrolnejzespołów;– dobór członków zespołu na podstawie analizy wymogów projektubadawczego;
– zarządzaniesystememprzezadministratora;– generacjaraportów.
Rysunek11.5. DiagramkomponentówdlasystemuTeamCreator
Aplikacja klienta
modul 'help'
modul 'datasets'
modul 'projects'
modul 'menu'
modul 'skills'
modul 'teams'
modul 'tests'
modul 'users'
źródło:opracowaniewłasne
Wybórmodelucyklużyciazostałprzeprowadzonytak,abywybranerozwiązaniewjaknajlepszymstopniuspełniałokluczowewymagania:
– wysokiejelastyczności,– niskichkosztówwprowadzaniazmianwoprogramowaniu,– ograniczenia nadmiernego planowania w przypadku funkcji wymagającychwcześniejszegoprzebadania,
– częstejweryfikacjifunkcjonalnościoprogramowania.Stąd,zewzględunanaukowycharakteroprogramowania,gdzierdzeńsystemuma-jącyzazadaniedobórczłonkówzespołówbadawczychstanowiłprzedmiotzaawan-sowanychbadańnaukowych,dowytworzeniasystemuzostałwybranymodelcyklużyciasystemuzprototypowaniem.
WiesławPietruszkiewicz
148
11.4. FuNkCjONOWANIE sYsTEmu TEAmCREATOR
Prezentowany system TeamCreator zawiera implementację modelu prezento-wanegowrozdziale10orazrozszerzającejfunkcjonalnościdodatkowej,którejza-daniemjestzbieranieinformacjiniezbędnychdodziałaniamodeluorazpóźniejszaprezentacjawynikówpracysystemu.
DostępdosystemuTeamCreatormożliwyjestpoprzezdowolnąprzeglądarkęin-ternetowąwyposażonąwpluginFlash.UżyciesystemuTeamCreatorniejestzależneodplatformysprzętowej,systemuoperacyjnegojakiużytejprzeglądarkiinternetowej(testyobejmowałyprzeglądarkiFireFox,InternetExplorer,OperaiSafari).WyglądsystemudziałającegowprzeglądarceFireFox3znajdujesięnarysunku11.6.
Zastosowanie komponentów odpowiadających komponentom stosowanymwaplikacjachdesktopowychpozwoliłonastworzeniesystemuinternetowego,wktó-rymwygodapracynieustępujepracyztradycyjnymiaplikacjami.PrzykładowystansystemuwtrakciewypełnianiakilkuzdostępnychtestówwsystemieTeamCreatorznajdujesięnarysunku11.7.
Rysunek11.6. WyglądsystemuTeamCreator
źródło:(TeamCreator,2009)
Internetowysystemdoboruczłonkówdozespołów
149
Rysunek11.7. WyglądprzykładowychtestówdostępnychwsystemieTeamCreator
źródło:(TeamCreator,2009)
Zewzględunawielodostępdosystemuniezbędnestałosięwprowadzeniekontużytkownikóworazfunkcjiadministratorawrazzudostępnionymifunkcjamidoza-rządzaniasystemem(rysunek11.8.).
Rysunek11.8. AdministracjasystememTeamCreator
źródło:(TeamCreator,2009)
WiesławPietruszkiewicz
150
WczasietworzeniasystemuTeamCreatorzostałyzaobserwowanepewneman-kamentyzastosowanejtechnologiiprzykładowopojawiającesiębłędyjęzykaLZX(któresąlikwidowanewrazzwypuszczaniemkolejnychwersjitechnologii)czyspa-dekwydajnościaplikacjiwrazzewzrostemjejzłożoności(wspólnacechaaplikacjiRIA,jakojęzykówinterpretowalnych).
Mimotychuwagfunkcjonalność,atrakcyjnośćwizualnaorazukierunkowanienałatwośćpracydeweloperazadecydowałyfinalnieozachowaniupierwotniepozytyw-nejoceny technologiiOpenLaszlo.Niebezznaczenia jest takżeotwartycharaktertechnologii,któradziękiwsparciulicznejgrupydeveloperówzyskujenamożliwo-ściach,aproceslikwidacjizaobserwowanychbłędówjestszybszyniżwprzypadkurozwiązańzamkniętych.
11.5. użYTECZNOść sYsTEmu TEAmCREATOR
Prezentowany systemTeamCreator, zawierający implementację prezentowanejw rozdziale 10metody komponowania zespołóww projektach badawczych, po-zwala użytkownikom na efektywne dobranie składu nowo tworzonych zespołówprojektowychoraz na kontrolę zespołów istniejących.Zpunktuwidzenia samychużytkowników, nie koniecznie będących kierownikami projektów, zaimplemento-wanew systemiemechanizmyumożliwiająokreśleniewielu czynników istotnychzpunktuwidzenia ich funkcjonowania jakoczłonkówzespołów, takich jak:profilosobowości,preferowanakulturaorganizacyjna,rolawzespoleczyambicja.Dziękitemuzarównozarządzaniezespołemprzezkierownika,jakifunkcjonowaniewnimjegoczłonkówstajesięłatwiejsze,gdyżdysponująoniinformacjamipozwalającymiimlepiejzrozumiećwspółdziałaniecałegozespołu.