Forelesning IMT2243 6. April 2010 Tema: forts. arkitektur og design av programvare Prosjektstatus Programvarearkitektur Oppsummering fra før påske Distribuerte objektarkitektur MDA - Model Driven Architecture SOA - Programvarearkitektur i RUP Eksempler på arkitekturvurderinger BUSTA OL veiviseren og IHID-løsningen Pensumlitteratur : Sommerville (Kap.12), SAD-artefaktet i RUP Distributed object architecture (Sommerville fig. 12.10) o1 o2 o3 o4 S (o1) S (o2) S (o3) S (o4) Software bus o5 S (o5) o6 S (o6) Distribuert objektarkitektur Ligner Klient - Tjener arkitekturen i at man har objekter som forespør tjenester av andre objekter. Skiller seg fra Klient - Tjener ved at man ikke skiller mellom klienter og tjenere. Hvert objekt har grensesnitt der de tilbyr tjenestene sine til omgivelsene. Krever bruk av Middleware for styring av kommunikasjonen mellom de distribuerte objektene. (eks1. CORBA/OMA/MDAfraObject OMA /MDA Object Management Group) (eks 2. COM / COM+ / DCOM /.NET fra Microsoft ) (eks 3. RMI / EJB / Jboss fra Java-kretser) + ressursdeling, åpenhet, samtidighet, fleksibilitet, feiltoleranse og skalerbarhet - kompleksitet, uforutsigbarhet, sikkerhetsproblematikk, utfordrende å bevare oversikt over systemet IMT 2243 : Systemutvikling 1
CORBA application structure (Sommerville fig. 12.12) Inter-ORB communications (Sommerville fig. 12.14) Model Driven Architecture Problemer med Distribuert Objektarkitektur : Skrikende mangel på standardisering Svært mye teknologifokus for å få ting til å fungere (brukernes krav og ønsker druknet dels i teknokratstyrte prosjekter) Man ble (blir) sterkt knyttet til valgt Middleware leverandør, og det var komplekst å forholde seg til flere MDA : Rundt årtusenskiftet utformet Object Management Group (www.omg.org) Model Driven Architecture (en sentral spesifikasjon klar i 2001) med fokus på interoperabilitet En målsetting var å fristille seg fra bestemte teknologier/utviklingsplattformer og utforme løsninger gjennom modellering. Man forsøkte i stor grad automatisere steget med implementere løsningen i miljøer. IMT 2243 : Systemutvikling 2
Trender innen arkitektur : Model Driven Architecture (www.omg.org) (www.omg.org) Web Sevices er en standardisert måte for å gjøre gjenbrukbare komponenter tilgjenglige og anvendbare på web. Tjenestene er basert på betal etter bruk og man kan i prinsippet skifte leverandør etter ønske. Bruk av åpne API er (Application Programming Interface) står sentralt. Tankegangen g på å dele inn applikasjoner basert på en tjenesteorientert struktur med tjeneste tjenestetilbyder og tjenesteforespørrer har etter hvert blitt adoptert og forbedret til også intern bruk i organisasjoners IT-systemer. SOA er blitt en toneangivende arkitektur for IT-løsninger de senere årene. SOA - basert på XML-baserte standarder som SOAP (Simple Object Access Protocol), WSDL (Web Services Description Language) og UDDI (- Universal Description, Discovery and Integration). IMT 2243 : Systemutvikling 3
I perioden 2004 2008 hadde SOA en svært fremtredende rolle som trendsetter innen programvarearitektur. De seneste årene har Cloud Computing tatt over fokus i datapressen som det heteste innen arkitektur. Utgangspunktet for SOA er at man lar forretningsprosessene og behovet for fleksibilitet til å endre disse prege inndelingen og organiseringen av IT-systemene. Man har fokus på de tjenester som IT-systemene skal levere til virksomhetens forretningsprosesser. Istenden for å ha ulike systemer som eies av ulike avdelinger i virksomheten med delvis overlappende funksjonalitet, er idealet at man kartlegger alle tjenester som ønskes. Tjenestene innkapsles med veldefinerte grensesnitt og gjenbrukes i alle ledd av organsisasjonen som har dette behovet. Tjenestene kan også videreutvikles eller skiftes ut med nye ettersom kravene endrer seg. Arkitektur i RUP Software Architect - en obligatorisk rolle i RUP prosjekter Life Cycle Architecture milepælen som avlutter Elaboration-fasen sier sitt om arkitekturfokusen i RUP Software Architecture Document (SAD). Info dere finner om dette i RUP-infobasen er pensum. RUP har en meget sterk fokus på å se arkitekturen fra ulike perspektiver (4 + 1 + n View) Use Case view Logical view Deployment view Process view Implementation view ( + Data view, Security view.) Arkitektur Eksempler på arkitektur-vurderinger BUSTA IHID-løsningen og OL-veiviseren Athletic Manager, NorBud, Interaktiv Opplæring (se projekter) IMT 2243 : Systemutvikling 4
Prosjektet : Detaljert design Hovedfokus i leveranse 3 er å diskutere grundig alternative arkitekturer for deres programvare, foreta et valg av organisering og vise grunnelementene i denne. Det er meget viktig at dere ikke gir en teoripresentasjon, men gjør en faglig diskusjon ut fra karakteristika i tilknytning til deres konkrete programvare På det detaljerte dypdykket i prosjektleveranse 3 står dere fritt til å velge tema bare dere kan argumentere for hvorfor dette området er relevant å se nærmere på i nettopp deres prosjekt. Eksempler på aktuelle tema : GUI-design, Informasjonssikkerhetsvurdering, Databasedesign (evt. XML), Objektorientert design på kritisk del, Grensesnittdesign mot omkringliggende systemer, aktuelle utviklingsmiljøer og deres innflytelse på design, IMT 2243 : Systemutvikling 5