- analyse og implementasjon

Like dokumenter
2 TIMER BATCH JONAS OG TERJE

Concurrency. Lars Vidar Magnusson. September 20, Lars Vidar Magnusson () Forelesning i Operativsystemer September 20, / 17

INF2270. Input / Output (I/O)

Forprosjekt Hovedprosjekt ved Høgskolen i Oslo Våren 2008

GJENNOMGANG UKESOPPGAVER 9 TESTING

1 Forord. Kravspesifikasjon

! Ytelsen til I/O- systemer avhenger av flere faktorer: ! De to viktigste parametrene for ytelse til I/O er:

INF2270. Input / Output (I/O)

Produksjonssettingsrapport

Funksjonskravene er delt opp i to deler, krav til spillsekvens og generelle funksjonskrav.

PostGIS som navet i dataforvaltningen ved Skog og landskap

Løsningsskisse, eksamen J2EE og distribuerte systemer 19.mai 2004

GetMutex(lock) { while(testandset(lock)) {} } En context switch kan ikke ødelegge siden testen og endringen av lock skjer i samme instruksjon.

Bachelorprosjekt i informasjonsteknologi, vår 2017

Installere JBuilder Foundation i Mandrake Linux 10.0

Hovedprosjekt våren 2007

Huldt & Lillevik Ansattportal Ansattportal. Versjon

Programvareutvikling hos Sun Microsystems. Jørgen Austvik Sun Microsystems Database Technology Group

Kravspesifikasjon. Utvikling av moduler til CMS for bonefish.no. Gruppe 08-23

Applikasjonsutvikling med databaser

Oppsummering. Thomas Lohne Aanes Thomas Amble

1. NetBeans IDE: Lage en enkel mobilapplikasjon

Visma Reconciliation NYHETER OG FORBEDRINGER

Læringsmål for forelesningen

Kravspesifikasjon. Forord

Hovedprosjekt i Informasjonsteknologi ved Høgskolen i Oslo og Akershus. Forprosjektrapport. Presentasjon

IN1010 våren Repetisjon av tråder. 15. mai 2018

En prosess kan sees på som et stykke arbeid som skal utføres på datamaskinen. Ofte vil det være flere prosesser/tråder på datamaskinen samtidig.

Katalogsynkronisering i skyen

Hovedprosjekt i data ved Høgskolen i Oslo våren 2007

Installere JBuilder Foundation i Windows XP

Overvåkning av Telenors Mobile internettportal

Monitoring Framework - Kravspesifikasjon

Programmeringsspråket C Del 3

Oppgave 1 - Linux kommandolinje (%)

Produksjonssettingsrapport

HiOA TDK. Ingeniørfag data. DATS1600 Programutvikling. Eva Hadler Vihovde. Prosjektoppgaven Prosessdokumentasjon - Alternativ 1

IT Service Management

Gruppe 43. Hoved-Prosjekt Forprosjekt

LocalBank Prosjektbeskrivelse

Forprosjektrapport Gruppe 30

Høgskolen i Oslo og Akershus

Forprosjektrapport Skrevet av: Filnavn: Status: Versjon: Opprettet: Sist endret: Sider:

RFID AutoLogOff - et studentprosjekt

Eventhandler Teknologi, kunst og design Høgskolen i Oslo og Akershus, våren Testrapport

INF1010 notat: Binærsøking og quicksort

Lenkelister, iteratorer, indre klasser. Repetisjonskurs våren 2018 kristijb

analyse og implementasjon

Huldt & Lillevik Ansattportal Ansattportal. Versjon

Implementering av caching ved hjelp av Spring. Christian Vestøl

Stikkord: Java EE, EJB, JSF, JPA, SWT, klient/tjener, Glassfish server, Application Client.

Databearbeiding direkte i memory på LASR server nye muligheter? Trond Holmen, SAS Institute

Effektiv Systemadministrasjon

Forprosjektrapport. Utvikle en plattform for digitalisering av foosballbord.

Forprosjektrapport. Presentasjon. Sammendrag. Tittel Informasjonsplatform for NorgesGruppen

Dagbok. Januar. Uke 2 ( ) Uke 3 ( ) Uke 3 (17.01, 12:45-14:00)

3. Kravspesifikasjon. Experior - rich test editor for FitNesse -

FluentAutomation. Et automatiserings-rammeverk for regresjonstesting (og mye annet! )

Samdok samla samfunnsdokumentasjon

Løsningsforslag Test 2

Kravspesifikasjon MetaView

NPK - Teknisk dokumentsjon

Innledende Analyse Del 1.2

Få kontroll i et elektronisk arkiv

Heap* En heap er et komplett binært tre: En heap er også et monotont binært tre:

Forprosjekt gruppe 13

November 2012 Stig Claussen, Senior Consultant Psiam. Infor 10 EAM

Kravspesifikasjon

or*dtrosnilt,'+'.q':'

CORBA Component Model (CCM)

Vårt system kan kjøres ved å skrive. STUD1 konto fredo 37 (holdeplass)

Releaseinfo i Winorg 3.0 MAI-2016

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først

Web Service Registry

Hovedprosjekt 2014, Høgskolen i Oslo og Akershus

INF1010 Tråder II 6. april 2016

Forprosjekt. Accenture Rune Waage,

Plan for dagen. Vprg 4. Dagens tema - filbehandling! Strømmer. Klassen FilLeser.java. Tekstfiler

Automatisert Robusthetstesting. Erik Arisholm Testify AS

JigZaw - Verktøy. Teststategi utviklet av. Erik Drolshammer Bård Lind. Verifiser Forventet Funksjonalitet

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 7 Filer og unntak ( exceptions ) Professor Alf Inge Wang Stipendiat Lars Bungum

Humanware. Trekker Breeze versjon

AlgDat 10. Forelesning 2. Gunnar Misund

Demo for første sprint

Innholdsfortegnelse. 1. Testing Feiltesting av koden Funksjonstesting: Kilder.10

GJENNOMGANG UKESOPPGAVER 7 REPETISJON

WebSmart. Trond E. Nilsen Select AS

Transkript:

- analyse og implementasjon

Hvem er vi? Vi heter Anders S Finnerud Dennis JMJ Lundh studerer til bachelorgraden i ingeniørfag for data ved Høgskolen i Oslo.

Oppgaven Lage et lett system som kan utføre oppgaver etter batch metoden Vår oppdragsgiver: ATS (Accenture Tecnology Solutions) Vi skal forsøke å: analysere behovene skape ett eksempel

Motivasjon for oppgaven Tidligere batchsystemer: benytter enterprise rammeverk. f.eks.: Java Enterprise Edition(J2EE) Fordeler: mye benyttet og derfor stort utviklingsmiljø. godt dokumentert testet teknologi Ulemper: Må implementere funksjonalitet man ikke trenger Unødvendig høyt ressursforbruk kan virke kompliserende

Motivasjon for oppgaven Trenden går nå mot enklere systemer basert på Java Standard Edition(J2SE) Fordeler: Man kan kun ta med det man trenger av funksjonalitet. Dette betyr Mindre ressursbruk Enklere utvikling Hvorfor er ikke dette gjort tidligere? ny funksjonalitet i J2SE Hibernate og andre rammeverk støtter nå J2SE, og ikke bare J2EE

Krav til systemet: J2SE basert, altså standard java kode Repetere en oppgave på en mengde, lignende, objekter Kunne lese/skrive til database benytte Hibernate Rulle tilbake data ved feil Være automatisert Kunne logge utførelsen

Hva gjorde vi? Første fase - analyse studerte batchsystemer i ulike sammenhenger industrielle databaserte vurderte aspekter som egenskaper krav problemstillinger

Hva gjorde vi? Andre fase utviklingen Teste grunnleggende komponenter sammen Quartz Hibernate Laget modeller for batchsystemet Ville finne enkleste mulige oppbygging med hensyn til: sikker jobb utførelse enkel overvåking og administrasjon fremtidige endringer i systemet

Første fase: Hva er batchjobber? Sekvensielt arbeid Gjentagende prosess Mange repetisjoner Minner om: Samlebåndsarbeid i fabrikker bilindustri Prosessindustri store automatiserte bakerier og laboratorier.

Skrittvis forklart

Effektiv jobbutførelse Parallell prosessering Dele en jobb opp til flere komponenter Behandle hvert komponent uavhengig Behandle komponenter til samme tid

Effektiv jobbutførelse Concurrency Samme som parallell prosessering men Komponenter kan være av helt forskjellig type Behandling av komponenter kan foregå til forskjellige tidspunkter Prosess 1 Uavhengig Batch Jobb Starter ny Prosess Felles Batch Jobb Batch Starter ny Prosess Prosess 2 Uavhengig Batch Jobb

Problemstilling: Kritiske avsnitt 2 eller flere prosesser prøver å benytte samme ressurs til samme tid Eksempel: To bakere benytter samme ovn til å steke brød Kritisk kun ved lagring eller oppdatering Løsning: Sett prosess 1 til å vente på prosess 2 Eksempler på problem: Race Condition Deadlock

Deadlock Eksempel: Fire biler kommer samtidig mot ett kryss fra 4 forskjellige retninger. Ingen signal-lys Høyre-regelen gjelder Alle bilene må vente på hverandre siden alle har en bil til høyre i krysset.

Deadlock Hvilke følger får en Deadlock? Batchsystemet vil stoppe fullstendig opp Når forekommer en Deadlock? Større systemer med flere kritiske transaksjoner Hva kan gjøres? Dele inn transaksjonene Kjører et begrenset antall jobber om gangen

Hva har ett godt batchsystem? Forutsigbar start og stopp Fleksibilitet Loggføring God logistikk Feilhåndtering

Automatisering og tidsstyring (skedulering) Kontroll over jobber som skal utføres i systemet tidsstyring repetisjon med bestemt intervall Quartz setter i gang prosessen Quartz Tidsstyrt signal Jobb indeling Utførelse Batch-Jobb kontroll Jobb indeling

Partisjonering Er å dele jobbens data inn i mindre deler (partisjoner) Kan hjelpe for å utnytte minne og prosessortid optimalt bedre ytelse på nettverk og mot eksterne tjenester Grunnlaget for parallell jobbutførelse (GRID-Computing) handler om å fordele arbeidet ut til mange tjenere Systemet vårt: lager og prosesserer partisjoner sekvensielt. er i praksis en FIFO kø i en beholder klasse.

Logging Logger skrives til tekstfil Kan også vises på skjerm Normalt loggføres data om konfigurasjons og progresjon feilsituasjoner Konfigurerbar etter behov. Vårt system benytter Log4j fra Apache Software Foundation veldig populært

Litt om feilhåndtering (rulle tilbake data) Rull tilbake -funksjonaliteten: utføres i laget for kommunikasjon mot databasen. skjer automatisk rett etter at feilen er oppdaget loggføres Hvis ønskelig kan systemet forsøke på nytt et bestemt antall ganger implementeres i forrentningslogikken

Arbeids klasse (IWork) Database Objekt Start Aktivetsdiagram for transaksjoner Avslutter med feil [nei] Lagre objekt entitet i DB [ja] Nytt forsøk? Transaksjon mot DB Feil oppstått (Exception e) [ja] [nei] Avslutter ved å returnere den lagrede entiteten Logg og kast (Exception e) [nei] Er transaksjon fremdeles aktiv? [ja] rull tilbake [nei] Feil under tilbakerulling (Exception he) [ja] Logg (Exception he)

Litt om flertrådskjøring Gir mulighet for mer fleksibel ressursfordeling Sikrer at kritiske prosesser kjører selv om en annen prosess stopper opp. Kan gi bedre ytelse og responstid. spesielt på systemer med flere cpukjerner Vårt system: har i størst mulig grad benyttet trådsikre klasser er ikke implementert til å kjøre flere tråder enda

Andre sammensetninger Pakke 1: Databasen(Postgresql) Det finnes en rekke typer databaser som støtter SQL standarden Pakke 2: Persistering(Hibernate) Det finnes få alternativer til Hibernate til dags dato Pakke 3: Batch-logikk(Java kode) Kan byttes ut med SpringBatch Pakke 4: Tidsstyring(Quartz) Kan byttes ut med for eksempel Struts eller Flux.

Til slutt Besøk vår webside: http://student.iu.hio.no/hovedprosjekter/2009/data/33/ Der kan du blant annet finne: Prosjektdokumentasjon Eksempler på logger fra kjøring Kildekode dokumentasjon i form av JavaDoc