430 likes | 552 Views
Fleirmodulsystem for prosjektstyring med tenesteorientert arkitektur. eSysbio-proto. Om oss. Gruppa består av: Vegard Gillestad Andreas Lien Olsen Veiledar : Carsten Helgesen ( HiB ) Pål Puntervoll (BCCS). Agenda. Introduksjon til systembiologi og eSysbio prosjektet
E N D
Fleirmodulsystem for prosjektstyring med tenesteorientert arkitektur. eSysbio-proto
Om oss • Gruppa består av: • Vegard Gillestad • Andreas Lien Olsen • Veiledar: • Carsten Helgesen (HiB) • Pål Puntervoll(BCCS)
Agenda • Introduksjon til systembiologi og eSysbio prosjektet • Vurdering av ulike alternative arkitekturar • JavaEE • Testing av JavaEE (EJB) applikasjonar • Spørsmål
Oppdragsgjevar • BCCS - Bergen Center for Computational Science • EigdavUnifob AS • Kommersiell og offentleg finansiert forsking
Bakgrunn for oppgåva • Biologisk forsking har endra karakter • Før vart det fokusert på små delar i ein organisme som enkelt genar og protein. • No går forskinga meir mot å sjå heilheta i ei organisme (”alle” genar og protein). • Mogeleggjort av nye forskingsmetodar og betre dataanalyser. • Krev tverrfagleg samarbeid
eSysbio • an e-scienceenviroment for systems biology • Prosjekt styrt av BCCS • Går over 5 år • Mål: • Mogleggjere tverrfagleg samarbeid • Køyre og dele arbeidsflytar i eit prosjekt • Gjenskape vitskapelege analyser og resultat • Mogliggjere for enklare overprøving av resultat
eSysbio (2) • Inndelt i 4 lag • Brukargrensesnitt • Arbeidsbenk (workspace) • Arbeidsflytar (workflows) • Biologiske tenestar (services) • Tenesteorientert
eSysbio (3) • Prototype (eSysbio-proto) • 3 masteroppgåver • Brukargrensesnitt • Arbeidsbenk • Arbeidsflytar
eSysbio (4) • Arbeidsbenk • Autentisering og autorisasjon • Prosjektstrying • Fillager
Føringar frå oppdragsgjevar • Tenesteorientert arkitektur (SOA) • Webtenester • Java
Problembeskrivelse • To-delt oppgåve • Arkitektur • Testing av JavaEE (EJB) applikasjonar
Tenesteorientert arkitektur (SOA) • Tenesteorientert arkitektur er ein arkitektur der systemet vert oppbygd av tenestar. • Tenestene kan være gjenbrukbare. • Skiller ut logikk som frittståande tenestar. • Kan plukke ut eksisterande tenester når nye ting skal utviklast.
eSysBio komponentar • Tre komponentar i eSysBio prototypen • Autentisering og autorisasjon • Prosjektstyring • Datalagring
Autentisering og Autorisasjon (AA) • Dette er tenesta som skal ta seg av autentisering og autorisasjon i systemet. • Tar seg av autorisasjon på eit overordna nivå. • Komme inn på systemet • Single Sign On (SSO) teneste.
Project Management (PM) • Styrer prosjekt i eSysBio • Prosjekt inneheld: • Prosjektinformasjon • Brukarar • Filer • Prosjektbrukarar er delt inn i tre grupper: • Prosjektadministratorar • Forskarar • Observatørar
Data Storage (DS) • Lagringsteneste • Lagrar filer • Kan være av alle slaks typar. • Held styr på eigarskap over filer • Tre ulike rettighetar: • Owner (eigar) • Write (skrivetilgang) • Read (lesetilgang)
Moglege arkitekturar • Me har vurdert tre ulike arkitekturar • Webteneste fasade • Webtenestar med delt database • Webtenestar med webservice referansar seg i mellom • Består av dei tre komponentane • Mål å leggje til rette for enkel integrasjon av nye tenestar
Fasade • Fasade er eit designmønster som er mykje brukt • Skjuler avansert logikk for brukaren • Bare eit enkelt grensesnitt for brukaren
Fasade (3) • Fordelar: • Bare eit grensesnitt • Skjuler avansert logikk for brukaren • Merker ikkje endringar bak fasaden • Bakdelar: • Sterke avhengighetar • Stor teneste med mykje logikk • Uoversiktleg • Tidkrevjande å kople på nye tenestar
Enkle webservicar • Arkitektur utan bruk av ein fasade.
Delt database • Enkle ”uavhengige” webtenestar. • Tenestene har tilgang til dei andre tenestene sine data. • PM treng ikkje høyre med AA om ein sesjonsnøkkel er gyldig, den går rett inn i databasen og ser. • PM endrar AA ”sine” data når den oppdaterer sesjonsnøkkelen sin gyldigheitstid!
Delt database (3) • Fordelar: • Ingen stor WSDL-fil • Mindre avhengighetar • Klienten implementerer støtte for det den treng • Ulemper: • Meir ansvar over på klienten • Tenestar mister eigarskap over sine eigne data • Alle nye tenestar må ta i bruk eksisterande tenestar (AA) sine data
Samansette tenestar • Denne designen tar i bruk det beste i frå den førre, utan dei sterke koplingane mellom komponentane og delinga av data. • Tenestene som treng bruke ein anna teneste er implementert både som ein webteneste og som ein brukar av webteneste. • Elles lik delt database.
Samansette tenestar (3) • Fordelar: • Svake koplingar • Klienten implementerer støtte for det den treng • Enkelt å kople på nye tenestar • Ulemper: • Meir ansvar over på klienten • Må dokumentere meir
Vurderingar • Har implementert store delar av systemet med dei tre ulike arkitekturane. • Arkitekturen med enkle webtenestar er best • Svake koplingar • Klienten bruker det den vil • Enklast å kople på nye tenestar • Lukter minst
Java Enterprise Edition • Brukt til å programmere serverside-applikasjonar i Java • Skiller seg frå JavaSE ved at ein har tilgong til ei rekkje fleire API’ar. • Javax.jws.* • Javax.ejb.* • Javax.persitence.* • … • Avhengig av å køyre på ein JavaEE applikasjonsserver.
JavaEE - komponentar • JavaEE applikasjonar er bygde opp av komponentar • JavaEE spesifikasjonen definerer følgjande komponentar: • Klientar og applets – kjøyrer på klientmaskin. • Java servlet, JavaServerfaces, og JavaServerpages – webkomponentar • Enterprice Java Beans (EJB) – verksemdskomponentar
Enterprise Java Beans (EJB) • Tar seg av forretningslogikken i ein applikasjon • Fordeler med EJB • Lett tilgong til JPA (Java Persistence API) • Enkelt å utvikle webtenester • Får ting ”gratis” • Bakdelar • Avhengig av ein JavaEE applikasjonsserver • Vanskelegare å teste • Bratt læringskurve
EJB – Webteneste eksempel • Annotasjonar • Metadata • Linje 8 og 11
Testing av EJB’ar • Problem: • Avhengig av å kjøyre i EJB miljø. • Egnedemetoder: • In-conteiner • Out-of-conteiner • Embeddedconteiner • Vurdering av metoder (rammeverk): • Apache Cactus • EJB3Unit • ApacheOpenEJB
Testing av EJB’ar • Kriterium • Kor enkelt det er å skrive testar • Kor raskt kan ein komme i gang og køyre testar. • Automatikk. Kor automatisk er testprosessen. • Kva får ein testa. Får ein testa alle eller avgrensa aspekt av applikasjonen. • Container • Database
Apache Cactus • In-Container • Fordelar • Får testa i akkurat same køyremiljø som produksjon • Støttar alle JavaEE komponentar • Lett å skrive sjølve testane • Bakdelar • Mykje og komplekst setup-arbeid • Tung utvikle-deploy-test syklus
EJB3Unit • Out-of-conteiner (Mock) • Fordelar • Utfører raske testar • Bakdelar • Får berre testa begrensa aspekt • Vanskeleg setup • Liten grad av automatikk • Meir komplisert å skrive testar
ApacheOpenEJB • Embeddable • Lettvektskonteinar – rask oppstart • Fordelar • Enkel setup • Kan byggjast inn i alle applikasjonar og IDE’ar • Blir lagt ved som eit bibliotek • Enkelt å skrive testar • Får testa alle aspekt av applikasjonen • Bakdelar • Kan være forskjell frå produksjonskonteinar