Serbio - Biobooking server. Tema: Software arkitektur og Distributeret systemer Projekt periode: Forår 2013 Projekt gruppe: dmaa Deltagere:

Størrelse: px
Starte visningen fra side:

Download "Serbio - Biobooking server. Tema: Software arkitektur og Distributeret systemer Projekt periode: Forår 2013 Projekt gruppe: dmaa0213 3 Deltagere:"

Transkript

1

2

3 Serbio - Biobooking server Tema: Software arkitektur og Distributeret systemer Projekt periode: Forår 2013 Projekt gruppe: dmaa Deltagere: Jesper Bromose Jakob Lindholm Kaspersen Søren Sand Vegeberg Kaj Viderø Olsen Vejleder: Per Trosborg Cirkulation: 6 Sider med bilag: 34 Sider uden bilag: 27 Afsluttet 4. Juni 2013 Synopsis: Denne rapport omhandler tilblivelsen af et booking system til biografer. Der bliver beskrevet databaseopbygning, klassediagram, algoritmer og implementation i C#. Serveren gør brug af WCF frameworket, basichttpbinding, der giver mulighed for platformfri implementation af klienter og Entity Frameworket, der via snapshot isolation står for at håndtere concurrency. Algoritmen til valg af sæder er implementeret, med mulighed for forbedringer, der vil give bedre foreslag til sædevalg. Serveren stiller et API til rådighed, der muliggør udvikling af letvægts klienter for daglig brug. For mere avancerede features, kræves en tungere dedikeret klient. Der er blevet udviklet en grafisk brugergrænseflade, som er en kombination af både tynd og tykkere klient, for at demonstrere serverens muligheder. University College Nordjylland Teknologi og Business Sofiendalsvej 60 Telefon: Telefax: The report content is freely accessible, but the publication (with source) may only occur by agreement with the authors.

4

5 INDHOLD 1 Indledning 4 2 Teori Design kriterier Domænemodel User Database Tredje Normal Form (3NF) Sikkerhed Arkitektur Klassediagram Serbio Kommunikation Bruger authentificering Exceptions Database Entity Framework Booking Sædevalg Concurrency Algoritme Client GUI Sæde Konklusion 26 A Case 28 B Klassediagrammer 30 2

6

7 KAPITEL 1 INDLEDNING Dette er vores 3. semester projekt på Datamatikeruddannelsen på UCN i Aalborg. Opgavebeskrivelsen kan ses i bilag A. Der er blevet lavet både en klient og en grafisk brugergrænseflade. Vi har valgt at lægge mest fokus på selve serverdelen, og derfor skal GUI en mest ses som en måde at demonstrere serverens funktionalitet på. Ligeledes er klienten en blanding af både en almen brugergrænseflade, samt hvad der i casen bliver beskrevet som en dedikeret klient. Vores fokus på serveren har primært været, at stille et gennemtestet API til rådighed for andre udviklere. Netop dette fokus har medført, at vi har givet mulighed for at lave en tynd klient, da stort set alt beregning sker serverside (bortset fra at hente information om film, når nye film tilføjes) - dette kombineret med en fornuftig exception handling (og kast til klient) gør eventuel udvikling til andre platforme håndterbart. Serveren er skrevet i C# 4.5 og implementerer WCF frameworket og bruger basichttpbinding protokollen. Klienten er skrevet i C# 4.5 og bruger WPF til at generere den grafiske del. Vi vil gerne takke Lektor Per Trosborg for samarbejde og vejledning gennem semesteret. 4

8

9 KAPITEL 2 TEORI I dette kapitel vil vi gennemgå teorien omkring de forskellige modeller og diagrammer. Vi vil komme med begrundelser på hvorfor vi har valgt at gå videre med de valgte løsninger, hvilke fordele og ulemper de har og hvilke mulige alternativer der må være. 2.1 Design kriterier I henhold til vores case har vi fundet følgende designkriterier: Det skal være muligt at have en tynd klient Det skal være muligt at udføre administrative opgaver Det skal være muligt at se film, shows og sæder (og om disse er reserveret) Der skal være en algoritme, som foreslår de bedste sæder i salen Det skal ikke være muligt at dobbeltbooke sæder Det skal være muligt at tilgå serveren fra internettet 2.2 Domænemodel I vores domæne model, som ses i figur 2.1, har vi 8 klasser, som hver især har sine attributter. Hver klasse har enten en aggregation (som vist i Reservation Show ), composition (som vist i Hall Show ) eller generalization (som vist i Show Movie ) som forbinder de forskellige klasser med hinanden. Et Show er en Movie med yderligere detaljer om hvor og hvornår filmen bliver afspillet. Det er en 1 til 1 forbindelse mellem Show og Hall, da et show skal være tilknyttet til en sal for at kunne oprettes, og ligeledes, hvis en film skal køre i flere sale på samme tid, er der tale om flere shows. En Hall har en 1 til mange relation til Row, da man ikke kan have en sal uden rækker. Endvidere har Row en 1 til mange relation til sæder. Her gælder samme argument: Det er ikke muligt at oprette en række uden sæder. Hvis der skal oprettes gange i salen, vil dette være en række sæder, med et særligt flag, der fortæller at det er tomme sæder. 6

10 Figur 2.1: Domæne model 7

11 2.3 User Denne klasse var ment som en superklasse, der alt efter rolle skulle bruges til at instantiere forskellige roller af en bruger. Dette blev dog ikke gjort da vi valgte at gå med en klasse, hvor de forskellige attributter var med i. Dette kan ses i tabel 2.1 Rolle Værdi Admin 1337 Clerk 2000 User 3000 Tabel 2.1: Rolle intervaller 2.4 Database Databasen er lavet med udgangspunkt i domænemodellen og kan ses i figur 2.2. Det vil ud fra et bruger ID være muligt at lave et opslag i Reservation tabellen og finde alle reservationer fra denne bruger. Ud fra Reservation.Id er det muligt at arbejde sig igennem hele databasen, og dermed få de reelle informationer. Måden dette foregår på, er at via HasSeats kan der findes Seat TRow Hall Show Movie. Denne opbygning er lavet for at sikre, at Én bruger kan have mange reservationer. En reservation kan have flere sæder. En film kan køre på forskellige tider, i samme sal, eller på samme tid, i forskellige sale. En sal kan have varierende antal rækker, der kan have forskellige antal sæder Tredje Normal Form (3NF) Vores database er i 3. Normal Form - da det kun er vores primærnøgler, som bestemmer værdierne i de andre attributter i klasserne. 3NF betyder, at alle kolonnereferencer i refereret data, der ikke er afhængige af den primære nøgle bør fjernes. Dette vil sige, at foreign keys kun peger på primære nøgler i andre tabeller Sikkerhed Vi har i dette projekt valgt ikke at fokusere på sikkerheden i databasen, da det ikke har været det primære fokus i opgaven. For at forbedre sikkerheden skulle alle attributters værdier hashes og saltes, da det dermed ikke vil være muligt at læse værdierne i klartekst. Dette er vigtigt, da vi har med fortrolige data at gøre. I figur 2.2 ligger vores primære nøgler hovedsageligt på de forskellige IDs, dog har vi enkelte steder hvor det er composite keys. En composite key er en kombination af to eller flere kolonner i en tabel, dette kan bruges til at identificere unikke rækker i tabellen. Entydighed kan kun garanteres, når kolonnerne kombineres, hvis kolonnerne enkeltvist ikke garanterer entydighed. Eksempel: I tabellen HasSeats er det nødvendigt, at have en composite key på IdShow og IdSeat, da disse enkeltvist ikke garantere entydighed. 8

12 Figur 2.2: Database170 9

13 2.5 Arkitektur Client/Server arkitektur Vi har i dette projekt valgt, at dele vores kode op i to forskellige løsninger, en server og en klient. Serveren klarer alle de forskellige udregninger og klienten demonstrerer de forskellige kald via grafiske interface. Fordele 1 Kan håndtere flere brugere af gangen Alle klienter ser det samme data Forøget ydeevne i forhold til løsninger baseret på én computer Det er let at udskifte klienten med nye grafiske interfaces Serveren kan ændres/opdateres, uden der skal ændres i klienten, så længe serveren stadigvæk overholder kontrakterne. Dette gør det billigere at vedligeholde 3-tier arkitektur 3-tier arkitekturen er valgt til dette projekt. Denne arkitektur adskiller brugeren (præsentationstier) fra direkte kontakt med den bagved liggende database (data-tier), via et mellemled (logictier) der står for alt udregning om manipulation af data. At have et data-tier medvirker også øget skalerbarhed og ydeevne 2. Disse lag kan ses i vores arkitektur diagram 2.3. Præsentations-tieret her findes de klasser, der står for kommunikationen mellem brugeren og systemet. Det er i disse klasser, alle de forskellige indtastninger og udskiftninger sker Dette lag har forbindelse til logic-tier Logic-tiret her findes de forskellige kontrolklasser Data-tiret her findes SerbioOperations og ISerbioOperations, som indeholder Operations kontrakter og sender de forskellige data videre ned til logic-tieret 1 Kilder: arkitektur, files/client-server-og-trelagsarkitektur/tre-lags-arkitektur-v1.0.pdf 2 Kilde: model 10

14 Fordele: 3 1. Let at ændre uden at der sker konflikter med andre klasser 2. Hurtig kommunikation. 3. Kan håndtere meget store datamængder og/eller meget stort antal samtidige klienter, da der kan sættes et større antal applikationsservere op. Figur 2.3: ArkitekturDiagram Model-View-Control Model-View-Controller (MVC) arkitekturen ligner Tre tiers arkitekturen, men de er forskellige: En grundlæggende regel i en tre lags arkitektur er at præsentation tieret aldrig kommunikerer direkte med data tieret, al kommunikation skal passere gennem det mellemste niveau. Begrebsmæssigt er tre-lags arkitektur lineær, mens MVC arkitekturen er trekantet: Viewet sender opdateringer af controller, controller opdaterer modellen, og view bliver opdateret direkte fra modellen 4. En illustration af dette kan ses i figur 2.4. Figur 2.4: Model-View-Control 3 Kilde: 4 Kilde: 11

15 2.6 Klassediagram Klassediagrammet for vores logic tier kan ses under bilag i figur B.1 til B.4 Det skal nævnes, at alle 4 diagrammer tilsammen udgør det samlede klassediagram. B.1 viser vores egne exceptions, der kastes til klienten. Disse nedarver alle fra Exception, og sætter en tilpasset besked, med koden set i listing public class DuplicationFoundException : Exception 2 { 3 public DuplicationFoundException(string message) : base(message) { } 4 } Listing 2.1: Sættelse af besked I B.2 ses controller klassen, med alle metoder der kan bruges. I B.3 ses Entity Frameworkets klasser, disse bruges til at lave vores DTO er (set i B.4) som sendes til klienten. Dette sker rimeligt direkte, som ses i listing Users user = connectedusers.first(u => u.value.user.username == username).value.user; 2 UserDTO userdto = new UserDTO() 3 { 4 Password = user.password, 5 Token = user.token, 6 Username = user.username, 7 Role = user.role, 8 ID = user.id 9 }; Listing 2.2: Sættelse af besked 12

16

17 KAPITEL 3 SERBIO Serveren, Serbio, er opbygget efter 3-lags princippet, og indeholder et service library, en host process, og et business logic lag. Al kommunikation går gennem library et, som er bootstrapped via Service host, og kalder business logic s funktioner for at lave udregningerne. Serbio er lavet således at så meget beregning som muligt ligger her. Dette betyder at klienterne kan være letvægtede, da det eneste de skal håndtere er diverse kald og grafisk repræsentation af data. 3.1 Kommunikation Kommunikationen mellem server og (mulige) klienter foregår via WCF 4.5, der er et framework til.net 4.5. Serveren sender XML data via SOAP protokollen, det gør at klienten kan implementeres som cross-platform, et eksempel på dette kan ses i listing 3.1(request) og listing 3.2 (response). A-B-C Konfigurationen følger ABC opsætningen af WCF (Address, Binding, Contract). I denne sektion vil de forskellige dele blive beskrevet. Address Addressen er ip en på serveren, sammen med en port. Serbio kører på port <host> 2 <baseaddresses> 3 <add baseaddress = "http://localhost:9759/" /> 4 </baseaddresses> 5 </host> Binding Serbio bruger basichttpbinding. Denne protokol giver i modsætning til nettcpbinding mulighed for platformfrie klienter, dog med den pris, at der bliver sendt mere data. Vi har valgt at prioritere fleksibilitet over hastighed ved at bruge basichttpbinding fremfor nettcpbinding. Valget er faldet på dette, da C# ikke er det mest brugte sprog 1, og ved at vælge en platformfri protokol, vil det 1 Kilde: 14

18 1 <s:envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> 2 <s:header> 3 <Action s:mustunderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none ">http://tempuri.org/iserbiooperations/connect</action> 4 </s:header> 5 <s:body> 6 <Connect xmlns="http://tempuri.org/"> 7 <username>kirs</username> 8 <password>9000</password> 9 </Connect> 10 </s:body> 11 </s:envelope> Listing 3.1: Request 1 <s:envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> 2 <s:header /> 3 <s:body> 4 <ConnectResponse xmlns="http://tempuri.org/"> 5 <ConnectResult xmlns:a="http://schemas.datacontract.org/2004/07/serbiobussinesslogic.dto" xmlns:i="http://www.w3.org/2001/xmlschema-instance"> 6 <a:id>3</a:id> 7 <a:password>9000</a:password> 8 <a:role>1337</a:role> 9 10 <a:username>kirs</a:username> 11 </ConnectResult> 12 </ConnectResponse> 13 </s:body> 14 </s:envelope> Listing 3.2: Response også være muligt at implementere løsninger på eksempelvis Android eller iphone. Endvidere giver basichttpbinding ingen problemer med hverken Nat s eller firewalls. Contract Serbio har en masse contracts, et lille udsnit er: BookSeats(...),AddReservation(...) og GetAllReservationsForUser(...). Alle disse er stillet tilrådighed gennem interfacet ISerbioOperations Bruger authentificering BaiscHttpBinding indeholder ikke mulighed for sessionstyring per default. Derfor er det nødvendigt at implementere vores egen løsning til dette. Vores primære grund til at skulle bruge sessionstyring er, at det skal være muligt at fjerne reservationer hvis de overskrider en prædefineret tid (i vores system, kan billetter holdes i 10 minutter hvis de ikke er blevet reserveret inden dette, vil det være muligt for andre at vælge dem). Connect Når en klient skal logge ind, sker dette ved at kalde.connect(string username, string password). Herefter vil serveren checke om det er korrekt brugernavn og kodeord. Er dette tilfældet, vil serveren tildele brugeren en Token og sende et UserDto objekt tilbage til klienten. Dette objekt skal bruges til senere kommunikation der kræver brugervalidering. Hvis ikke brugeren kan autentificeres, kastes 15

19 en exception tilbage til klienten. Purger Purger er vores sessionshåndtering. Dette bliver kørt i sin egen tråd, med et interval på 500ms. Hver gang Purger ticker, vil den se om der er brugere der ikke har været aktive i over 10 minutter. Hvis dette er tilfældet, vil deres token blive fjernet og de vil blive fjernet fra listen af authentificerede brugere. Dermed vil det kræve et nyt.connect(...) før brugeren kan foretage sig ting i systemet, der kræver autentificering. Purger står også for fjernelse af sæde reservationer. Koden for dette kan ses i 3.3. Det hele er pakket ind i et TransactionScope, dette vil vi forklare nærmere i sektion 3.3.2, for at sikre consistency. 1 foreach (Reservation res in context.reservation.tolist()) 2 { 3 if (res.resercationtime.addminutes(ttl) < DateTime.Now && res.paid == false) 4 { 5 logger.info("removing reservation " + res.id + " due to session timeout"); 6 context.hasseats.first(s => s.idseat == res.seats).seatstate = 0; 7 context.reservation.remove(res); 8 context.savechanges(); 9 } 10 } Listing 3.3: PurgeReservations fjernelse af for gamle reservationer Exceptions Hvis en klient foretager en handling, der af en eller anden grund ikke går godt, vil der blive kastes en exception tilbage. Dette sker gennem: throw new FaultException<Exception> Som er WCFs måde at kaste exceptions til klienten på. Følgende exceptions kan blive kastet fra serveren: DatabaseOfflineException Denne kastes, hvis serveren ikke kan få kontakt til databasen. Dette er en fatal error. DuplicationFoundException Denne kastes, hvis der indsættes duplikater af data i databasen. NoShowsException Denne kastes, hvis der ikke er nogle shows i databasen. SeatAlreadyReservedException Denne kastes, hvis der forsøges at reservere et sæde, der allerede er reserveret. UserLoginException Denne kastes ved forkert login. UserRightsException Denne kastes, hvis en bruger forsøger ting, han ikke har rettigheder til. Exceptions bliver kastet med 2 typer af beskeder: En inner og en outer. Outer message er den, der bliver vist, hvis der ikke er blevet implementeret en try/catch; her vil der blive vist, hvilken type exception det er, efterfulgt af fejlmeddelelsen. Dette er gjort, så udvikleren nemt kan implementere en catch til den specifikke exception. Inner message, er det der vil blive vist, hvis udvikleren direkte printer på ex.message, som bliver sat i serveren, som i

20 1 throw new UserRightsException("User not authorized to action GetMovies()"); Listing 3.4: Eksempel på exception Grunden til dette er, at en udvikler skal have nemt ved at finde ud af, hvad der går galt, hvis(når) noget går galt. 3.2 Database For at få serveren til at hente og skrive data til databasen, er der flere muligheder der kan vælges. I denne sektion sammenligner vi ADO.net og Entity Framework (som er en Object-Relational mapper ), for at finde den bedst egnede løsning. Analysen, der ses i tabel 3.1 er blevet lavet, ved at sammenligne flere forskellige aspekter 2 ved at give hver en mulig score på 1-5 (hvor 5 er bedst) og en vægt, der beskriver hvor vigtigt vi vurderer resultatet i forhold til vores produkt. EF ADO Vægt Vægtet EF Vægtet ADO Hurtighed Vedligeholdelse Concurrency* Readability DB Specific** Writeability Productivity Sum Tabel 3.1: Sammenligning mellem EF og ADO Vi har valgt at bruge Entity Frameworket, da den scorede højest totalt, med de vægte vi har vurderert til at være til vores produkt Entity Framework I denne sektion vil vi give eksempler på, hvordan Entity Frameworket virker. Vi vil opstille nogle cases, og sammenligne, hvordan SQL koden skulle have set ud. Case 1 Find alle brugere af systemet. 1 using (var context = new dmaa0212a_3entities) 2 { 3 List<Users> users = context.users.tolist(); 4 } Listing 3.5: Entity kode til Case 1 2 Kilder: 17

21 1 using (var context = new dmaa0212a_3entities) 2 { 3 Select * from Users 4 } Listing 3.6: SQL kode til Case 1 Case 2 Find alle reservationer for brugere med id nummer 1, og print titlen på filmen 1 using (var context = new dmaa0212a_3entities()) 2 { 3 var res = context.reservation.where(r => r.userid == 1); 4 foreach (var reservation in res) 5 { 6 Console.WriteLine(context.Show.First(s=>s.ID==reservation.Show).Movie1.Title); 7 } 8 } Listing 3.7: Entity kode til Case 2 1 SELECT Movie.Title 2 FROM Reservation 3 Inner join Users on Users.Id = Reservation.UserID 4 INNER JOIN Movie on Reservation.Show = Movie.ID 5 where Reservation.UserID = 1 Listing 3.8: SQL kode til Case 2 I 3.5 og 3.6 er der ikke den store forskel på at bruge SQL eller Entity Frameworket. Forskellen bliver dog mere tydelig i 3.7 og 3.8, hvor førstnævnte tydeligt er mindre komplekst at læse. 3.3 Booking En af de vigtigste dele af systemet, er håndteringen af sædebooking. Her skal tages højde for consistency i systemet, samtidig med, at der skal implementeres en algoritme der fungerer korrekt. I de følgende sektioner vil vi beskrive vores implementation af booking hvordan vi har håndteret consistency og en analyse af algoritmen til at vælge sæder Sædevalg Målet for sædevalg i vores system er: Concurrency Der må ikke kunne dobbeltbookes sæder Concurrency Sæder bookes efter først-til-mølle-princippet Concurrency Der må ikke kunne spærres sæder i for lang tid Concurrency Sæder skal bookes efter alt-eller-intet princippet Algoritme Sæder skal bookes efter alt-eller-intet princippet Algoritme Der skal foreslås de bedste sæder først 18

22 Algoritme Der skal vælges de sæder, der forventes bliver valgt Algoritme Det skal være mulig at ændre sædevalg, indtil sæderne bliver markeret som booked Concurrency Da vi har valgt at bruge Entity Framework, kan en af følgende måder bruges til locking af databasen: 3 Serializable Volatile data can be read but not modified, and no new data can be added during the transaction. RepeatableRead Volatile data can be read but not modified during the transaction. New data can be added during the transaction. ReadCommitted Volatile data cannot be read during the transaction, but can be modified. ReadUncommitted Volatile data can be read and modified during the transaction. Snapshot Volatile data can be read. Before a transaction modifies data, it verifies if another transaction has changed the data after it was initially read. If the data has been updated, an error is raised. This allows a transaction to get to the previously committed value of the data. When you try to promote a transaction that was created with this isolation level, an InvalidOperationException is thrown with the error message Transactions with IsolationLevel Snapshot cannot be promoted. Chaos The pending changes from more highly isolated transactions cannot be overwritten. Unspecified A different isolation level than the one specified is being used, but the level cannot be determined. An exception is thrown if this value is set. Der er flere af disse, der allerede ved første øjekast kan forkastes, da de ikke opfylder kravene til vores system. Disse er: ReadCommitted, da vi ikke kan læse data, og dermed finde nuværende state på sæder. Chaos, det ligger lidt i navnet det er svært at vide hvem der får lov til hvad hvis der er flere transactions i gang. Unspecified, dette er ikke interessant, da vi selv specificere hvilke isolations niveau der skal bruges. Dette efterlader: Serializable, RepeatableRead, ReadUncomitted og Snapshot. I tabel ses en oversigt over de resterende muligheder side effects. Isolation level Dirty read Nonrepeatable data Phantoms Read uncommitted Yes Yes Yes Repeatable Read No No Yes Snapshot No No No Serializable No No No Tabel 3.2: Isolations niveauer Følgende er en forklaring på de forskellige attributter fra Kilde: 4 Kilde: 5 Kilde: 19

23 Dirty read vil sige, at der læses data, der ikke er blevet committed til databasen endnu. Eksempel: Transaction1 (T1) opdatere en række. Transaction2 (T2) læser den opdaterede række, før T1 committer updaten. Hvis T1 laver et rollback, vil T2 stadig have læst en værdi, der anses som ikke eksisterende. Nonrepeatable Reads vil sige, at den samme række læses flere gange, men med forskellig data hver gang. Eksempel: T1 læser en række. T2 opdaterer eller sletter den række, og committer. Hvis T1 læser rækken igen, vil den enten få en anden værdi, eller finde ud af, at rækken er slettet. Phantoms vil sige, at en række matcher nogle søge kriterier, men bliver ikke set med det samme. Eksempel: T1 læser nogle rækker, der opfylder et søge krav. T2 genererer en ny række, der passer T1s søgekriterier. Hvis T1 eksekverer den samme søgning igen, vil der findes et andet sæt af rækker. Snapshot I vores system vil dirty read ikke være ønskeligt, da dette kan medføre, at state på sæder ikke kan regnes med. Endvidere er nonrepeatable read heller ikke ønskeligt, da dette kan medføre fejllæsninger. Dette efterlader Snapshot og Serializable som muligheder. Forskellen på Snapshot og Serializable, er at den første er optimistic og den sidste er pessimistic concurrency. Forskellen på de to niveauer er 6 : Serializable isolation level relies on pessimistic concurrency control. It guarantees consistency by assuming that two transactions might try to update the same data and uses locks to ensure that they do not but at a cost of reduced concurrency - one transaction must wait for the other to complete and two transactions can deadlock. Snapshot isolation level relies on optimistic concurrency control. It allows transactions to proceed without locks and with maximum concurrency, but may need to fail and rollback a transaction if two transactions attempt to modify the same data at the same time. Vi har valgt at bruge snapshot da dette løser opgaven med concurrency, og samtidig fjerner risikoen for deadlocks. Granularitet Granularitet er hvor finkornet vores locking af databasen er. Jo finere granularitet desto mindre locking. I et biograf booking system, er der flere muligheder for at låse. Disse går fra at låse et helt show (Meget grov granularitet) til kun at låse et enkelt sæde (Meget fin granularitet). Det er et tradeoff på, hvor meget locking man ønsker i sit system. Da vi i Serbio bruger Snapshot locking, er det ikke nødvendigt at få den helt fine granularitet i form af lås af enkelte sæder. Men den meget grove granularitet er heller ikke at ønske. Vi har valgt at ligge vores lås på sæder (alle sæder). Dette kan give problemer, hvis der bruges en pessemistic locking, da dette vil medføre at T (n) er nød til at vente på T (n 1)...T (1). Dette er ikke ønskeligt, da 6 Kilde: 20

24 det vil give alt for meget ventetid. Men, da vi bruger en optimistic locking, er dette ikke problemet, da alle kan få lov at booke på samme tid, og kun hvis der opstår dobbeltbooking vil systemet melde fejl. Test Følgende test er blevet opstillet, og kørt, for at checke concurrency i vore system. Test 1 Forventet resultat Faktisk resultat Én klient. Én booking OK OK Test 2 To klienter. Én booking K1 OK OK K2 Fejl Fejl Test 3 To klienter. To booking K1 OK OK K2 OK OK Test 4 Mange Klienter, mange booking K1 OK OK K2 OK OK... K ( n) OK OK Test 5 Mange Klienter, én booking K1 OK OK K2 Fejl Fejl... K ( n) Fejl Fejl Tabel 3.3: Test af concurrency 21

25 3.3.3 Algoritme Der er blevet udarbejdet en algoritme til valg af sæder. I denne sektion beskriver vi algoritmen, analysere køretid og kommer med forslag til forbedringer. Sædevalgs algoritme Sædevalgs algoritmen består af flere dele: Forslag til bedste sæder (se Algoritme 1), generering af sæder til at reservere (se Algoritme 2) og selve reservationen af sæder (se Algoritme 3). Disse er bygget op af små moduler i form af hver sin metode, der kan kalde hinanden. Først checkes der om der vælges sæder, som ligger udenfor rækken. Et eksempel på dette ses i 3.1. Data: Number og seats Result: StartRow and StartSeat Find center row.; o while NumberOfSeatsAvailebeleOnRow < 55% do Row = center row -1; end Find center seat on row; Call algorithm to generate seat; Algorithm 1: Find bedste sæder (a) En bruger ønsker 5 sæder, og vælger startseat = 8 (b) Arrayet løber out of bounds til højre Figur 3.1: Algoritme eksempel (c) Et nyt startseat vælges, så det passer med sidste sæde i rækken Køretid Algoritmen i Algorithm 1 har en køre tid på O(n) Algorithm 2 har en køretid på O(n) og i Algorithm 3 en køretid på O(n 2 ) hvor 0 < n <= 9. 22

26 Data: Number of seats to reserve, Number of startseat Result: A list of seatdto reserve. Error if out of bounds f1; fslut; List seatstoreserve; if numberofseats = 2 then f1 = startseat fslut = startseat + numberofseats -1; else f1 = (startseta - (numberofseats/2)); if numberofseats % 2 == 0 then fslut = startseat + (numberofseats/2) - 1; else fslut = startseat + (numberofseats/2); end end int rowmaxint = Index of the last seat on selected row; int minrowseat = Index of the first seat on selected row; if fslut > rowmaxint then fslut = rowmaxint; f1 = fslut - numberofseats + 1; end if f1 < minrowseat then f1 = minrowseat; fslut = f1 + numberofseats - 1; end if fslut > rowmaxint then Return out of bounds error end for i=f1; i<fslut; i++ do Add each seat with id 1 to seatstoreserve end Algorithm 2: Generering af sæder til at reservere Data: List of seats to reserve Result: A list of seats reserved in the system. Error if concurrency conflict for each seat in the list do Check if seats is already reserved; if seat is reserved then Select seat-1 until all seats can be reserved; else mark seat as reserved end end if Error then Rollback changes else Commit changes to database end Algorithm 3: Reservering af sæder 23

27 KAPITEL 4 CLIENT 4.1 GUI GUIen er implementeret for at demonstrerer de forskellige kald til Serbio. Den grafiske repræsentation kan foregå gennem Winforms eller WPF i C#. Winforms, er udviklet af Microsoft, og var en af de første måder at lave nemme og hurtige grafiske opsætninger i.net. Fordele: Det er meget nemt og meget hurtigt, at få lavet noget der nogenlunde ligner det du vil have. Det virker godt i Windows. Ulemper: Det er svært at få alle moduler til at være helt som du vil have det til at se ud ved hjælp af drag and drop. Det er svært at få til at virke på andre platforme som eksempelvis Android, ios eller web. WPF, er udviklet af Microsoft, Windows Presentation Foundation (eller WPF), og er den nyeste måde at lave grafiske opsætninger i.net. Fordele: Det er muligt at få alle ting, til at ligge som de skal ved hjælp af XAML, men det er også muligt at bruge drag and drop. Det er muligt at få denne GUI til at virke på de fleste andre platforme som fx Android, ios eller web. 24

1 Domæne 2 1.1 Design valg... 2 1.1.1 User... 2 1.2 Database... 4 1.2.1 Tredje Normal Form (3NF)... 4 1.3 Klassediagran... 6 1.4 Arkitektur...

1 Domæne 2 1.1 Design valg... 2 1.1.1 User... 2 1.2 Database... 4 1.2.1 Tredje Normal Form (3NF)... 4 1.3 Klassediagran... 6 1.4 Arkitektur... INDHOLD 1 Domæne 2 1.1 Design valg........................................ 2 1.1.1 User........................................ 2 1.2 Database.......................................... 4 1.2.1 Tredje Normal

Læs mere

Databaseadgang fra Java

Databaseadgang fra Java Databaseadgang fra Java Grundlæggende Programmering med Projekt Peter Sestoft Fredag 2007-11-23 Relationsdatabasesystemer Der er mange databaseservere Microsoft Access del af Microsoft Office MySQL god,

Læs mere

BACK-END OG DATA: ADMINISTRATION HVAD ER DE NYE MULIGHEDER MED VERSION 7.1? STEFFEN BILLE RANNES, 4. FEBRUAR 2015

BACK-END OG DATA: ADMINISTRATION HVAD ER DE NYE MULIGHEDER MED VERSION 7.1? STEFFEN BILLE RANNES, 4. FEBRUAR 2015 BACK-END OG DATA: ADMINISTRATION HVAD ER DE NYE MULIGHEDER MED VERSION 7.1? STEFFEN BILLE RANNES, 4. FEBRUAR 2015 SAS VISUAL ANALYTICS 7.1 ADMINISTRATOR Mulighed for at udføre handlinger på flere servere

Læs mere

Terese B. Thomsen 1.semester Formidling, projektarbejde og webdesign ITU DMD d. 02/11-2012

Terese B. Thomsen 1.semester Formidling, projektarbejde og webdesign ITU DMD d. 02/11-2012 Server side Programming Wedesign Forelæsning #8 Recap PHP 1. Development Concept Design Coding Testing 2. Social Media Sharing, Images, Videos, Location etc Integrates with your websites 3. Widgets extend

Læs mere

Hvor er mine runde hjørner?

Hvor er mine runde hjørner? Hvor er mine runde hjørner? Ofte møder vi fortvivlelse blandt kunder, når de ser deres nye flotte site i deres browser og indser, at det ser anderledes ud, i forhold til det design, de godkendte i starten

Læs mere

Bookingmuligheder for professionelle brugere i Dansehallerne 2015-16

Bookingmuligheder for professionelle brugere i Dansehallerne 2015-16 Bookingmuligheder for professionelle brugere i Dansehallerne 2015-16 Modtager man økonomisk støtte til et danseprojekt, har en premieredato og er professionel bruger af Dansehallerne har man mulighed for

Læs mere

Da beskrivelserne i danzig Profile Specification ikke er fuldt færdige, foreslås:

Da beskrivelserne i danzig Profile Specification ikke er fuldt færdige, foreslås: NOTAT 6. juni 2007 J.nr.: 331-3 LEA Bilag A danzig-møde 15.6.2007 Opdatering af DAN-1 og danzig Profile Specification Forslag til opdatering af Z39.50 specifikationerne efter udgivelse af Praksisregler

Læs mere

Masters Thesis - registration form Kandidatafhandling registreringsformular

Masters Thesis - registration form Kandidatafhandling registreringsformular Masters Thesis - registration form Kandidatafhandling registreringsformular Godkendelse af emne for hovedopgave af vejleder og undervisningskoordinator. Læs venligst retningslinjerne sidst i dette dokument

Læs mere

! Kia Dahlen. Kamilla Klein, Pia Jensen og Maria Korshøj Andersen.

! Kia Dahlen. Kamilla Klein, Pia Jensen og Maria Korshøj Andersen. Copenhagen Business Academy Multimediedesigner 3. semester - 1. projekt, september 2014 Gruppe 1 - MulA Kia Dahlen. Kamilla Klein, Pia Jensen og Maria Korshøj Andersen. Study: Multimedia Design Project:

Læs mere

QUICK START Updated: 18. Febr. 2014

QUICK START Updated: 18. Febr. 2014 QUICK START Updated: 18. Febr. 2014 For at komme hurtigt og godt igang med dine nye Webstech produkter, anbefales at du downloader den senest opdaterede QuickStart fra vores hjemmeside: In order to get

Læs mere

Bilag. Resume. Side 1 af 12

Bilag. Resume. Side 1 af 12 Bilag Resume I denne opgave, lægges der fokus på unge og ensomhed gennem sociale medier. Vi har i denne opgave valgt at benytte Facebook som det sociale medie vi ligger fokus på, da det er det største

Læs mere

Øvelse 9. Klasser, objekter og sql-tabeller insert code here

Øvelse 9. Klasser, objekter og sql-tabeller insert code here Øvelse 9. Klasser, objekter og sql-tabeller Denne opgave handler om hvordan man opbevarer data fra databasekald på en struktureret måde. Den skal samtidig give jer erfaringer med objekter, der kommer til

Læs mere

Fra idé til virkelig med Azure Mobile Services

Fra idé til virkelig med Azure Mobile Services Fra idé til virkelig med Azure Mobile Services Niels Ladegaard Beck Holion nlb@holion.dk @nielslbeck Windows Developers in Denmark Azure App Service Mobile App Introduktion til Azure Mobile Services Platform

Læs mere

Projektledelse i praksis

Projektledelse i praksis Projektledelse i praksis - Hvordan skaber man (grundlaget) for gode beslutninger? Martin Malis Business Consulting, NNIT mtmi@nnit.com 20. maj, 2010 Agenda Project Governance Portfolio Management Project

Læs mere

Begrænsninger i SQL. Databaser, efterår 2002. Troels Andreasen

Begrænsninger i SQL. Databaser, efterår 2002. Troels Andreasen Databaser, efterår 2002 Begrænsninger i SQL Troels Andreasen Datalogiafdelingen, hus 42.1 Roskilde Universitetscenter Universitetsvej 1 Postboks 260 4000 Roskilde Telefon: 4674 2000 Fax: 4674 3072 www.dat.ruc.dk

Læs mere

Userguide. NN Markedsdata. for. Microsoft Dynamics CRM 2011. v. 1.0

Userguide. NN Markedsdata. for. Microsoft Dynamics CRM 2011. v. 1.0 Userguide NN Markedsdata for Microsoft Dynamics CRM 2011 v. 1.0 NN Markedsdata www. Introduction Navne & Numre Web Services for Microsoft Dynamics CRM hereafter termed NN-DynCRM enable integration to Microsoft

Læs mere

Virk.dk. A one-stop-shop for businesses. Peter Bay Kirkegaard, pbk@eogs.dk Special Advisor Danish Commerce and Companies Agency

Virk.dk. A one-stop-shop for businesses. Peter Bay Kirkegaard, pbk@eogs.dk Special Advisor Danish Commerce and Companies Agency Virk.dk A one-stop-shop for businesses Peter Bay Kirkegaard, pbk@eogs.dk Special Advisor Danish Commerce and Companies Agency Agenda Background Status Future 16-10-2007 2 Virk.dk 16-10-2007 3 Vision Political

Læs mere

Søren Løbner (lobner) ddb Databaser 2007 10 10

Søren Løbner (lobner) ddb Databaser 2007 10 10 ddb Excercise Week 4 Fra relationships til relations Nu når vi har fået vores skemaer på plads, kan SQL udtrykkene til konstruktion af relationerne laves Det foregår ved at vi tager en 1 til 1 oversættelse

Læs mere

Vejledning til at tjekke om du har sat manuel IP på din computer.

Vejledning til at tjekke om du har sat manuel IP på din computer. Indhold Vejledning til at, komme på nettet. (DANSK)... 2 Gælder alle systemer.... 2 Vejledning til at tjekke om du har sat manuel IP på din computer.... 2 Windows 7... 2 Windows Vista... 2 Windows XP...

Læs mere

Byg din informationsarkitektur ud fra en velafprøvet forståelsesramme The Open Group Architecture Framework (TOGAF)

Byg din informationsarkitektur ud fra en velafprøvet forståelsesramme The Open Group Architecture Framework (TOGAF) Byg din informationsarkitektur ud fra en velafprøvet forståelsesramme The Open Group Framework (TOGAF) Otto Madsen Director of Enterprise Agenda TOGAF og informationsarkitektur på 30 min 1. Introduktion

Læs mere

Subject to terms and conditions. WEEK Type Price EUR WEEK Type Price EUR WEEK Type Price EUR WEEK Type Price EUR

Subject to terms and conditions. WEEK Type Price EUR WEEK Type Price EUR WEEK Type Price EUR WEEK Type Price EUR ITSO SERVICE OFFICE Weeks for Sale 31/05/2015 m: +34 636 277 307 w: clublasanta-timeshare.com e: roger@clublasanta.com See colour key sheet news: rogercls.blogspot.com Subject to terms and conditions THURSDAY

Læs mere

FairSSL Fair priser fair support

FairSSL Fair priser fair support Microsoft IIS 6 Certifikat administration Følgende vejledning beskriver hvordan man installere et certifikat på en IIS 6 For support og hjælp til anvendelsen af denne vejledning kan du kontakte FairSSL

Læs mere

Læs venligst Beboer information om projekt vandskade - sikring i 2015/2016

Læs venligst Beboer information om projekt vandskade - sikring i 2015/2016 Læs venligst Beboer information om projekt vandskade - sikring i 2015/2016 Vi er nødsaget til at få adgang til din lejlighed!! Hvis Kridahl (VVS firma) har bedt om adgang til din/jeres lejlighed og nøgler,

Læs mere

3. SEMESTER 2. PROJECT MULB Gruppe 1. 20. september 2015

3. SEMESTER 2. PROJECT MULB Gruppe 1. 20. september 2015 PROJECT DATABASE 3. SEMESTER 2. PROJECT MULB Gruppe 1. 20. september 2015 Ved at underskrive dette dokument bekræfter vi, at det indsendte materiale alt sammen er vores eget materiale og arbejde. Andreas

Læs mere

QUICK MANUAL BRUGERNAVN: ADMIN PASSWORD: 00000 APP: SMARTEYES PRO PORT: 50100. SecVision - Quick Manual v1.0

QUICK MANUAL BRUGERNAVN: ADMIN PASSWORD: 00000 APP: SMARTEYES PRO PORT: 50100. SecVision - Quick Manual v1.0 QUICK MANUAL BRUGERNAVN: ADMIN PASSWORD: 00000 APP: SMARTEYES PRO PORT: 50100 SecVision - Quick Manual v1.0 1. System Login 1.1. Bruger Login ID: admin Password: 00000 1.2. Indstilling af dato/tid og harddisk

Læs mere

Trolling Master Bornholm 2013

Trolling Master Bornholm 2013 Trolling Master Bornholm 2013 (English version further down) Tilmeldingen åbner om to uger Mandag den 3. december kl. 8.00 åbner tilmeldingen til Trolling Master Bornholm 2013. Vi har flere tilmeldinger

Læs mere

how to save excel as pdf

how to save excel as pdf 1 how to save excel as pdf This guide will show you how to save your Excel workbook as PDF files. Before you do so, you may want to copy several sheets from several documents into one document. To do so,

Læs mere

Backup Applikation. Microsoft Dynamics C5 Version 2008. Sikkerhedskopiering

Backup Applikation. Microsoft Dynamics C5 Version 2008. Sikkerhedskopiering Backup Applikation Microsoft Dynamics C5 Version 2008 Sikkerhedskopiering Indhold Sikkerhedskopiering... 3 Hvad bliver sikkerhedskopieret... 3 Microsoft Dynamics C5 Native database... 3 Microsoft SQL Server

Læs mere

Indhold. Senest opdateret : 30. juli 2010. Side 1 af 5

Indhold. Senest opdateret : 30. juli 2010. Side 1 af 5 Indhold Introduktion... 2 Scenarier hvor API et kan benyttes... 2 Scenarie 1 Integration til lagerhotel... 2 Scenarie 2 Integration til økonomi system... 2 Webshop2 API Model... 3 Brugen af API et... 4

Læs mere

Installation og brug af DMUs VPN klient Installation and use of DMU s VPN client

Installation og brug af DMUs VPN klient Installation and use of DMU s VPN client Installation og brug af DMUs VPN klient Installation and use of DMU s VPN client Bernhard Fabricius, IT-afdelingen Version 0.1, 2009-05-23 Tilmelding For at få adgang til VPN klienten skal der udfyldes

Læs mere

Hosted Exchange. Setup guide for e-mail clients & mobile devices. Date: 2011-09-13. Version: 15. Author: SBJ/ANB. Target Level: Customer

Hosted Exchange. Setup guide for e-mail clients & mobile devices. Date: 2011-09-13. Version: 15. Author: SBJ/ANB. Target Level: Customer Hosted Exchange Setup guide for e-mail clients & mobile devices Date: 2011-09-13 Version: 15 Author: SBJ/ANB Target Level: Customer Target Audience: End User Language: en-us Page 1 of 35 LEGAL INFORMATION

Læs mere

WINDCHILL THE NEXT STEPS

WINDCHILL THE NEXT STEPS WINDCHILL THE NEXT STEPS PTC/user, 4. marts 2015 Jens Christian Jensen, Econocap Agenda Windchill the next steps Bliv opdateret og inspireret til at se hvor Windchill kan hjælpe dig med andet end blot

Læs mere

Database for udviklere. Jan Lund Madsen PBS10107

Database for udviklere. Jan Lund Madsen PBS10107 Database for udviklere Jan Lund Madsen PBS10107 Indhold LINQ... 3 LINQ to SQL og Arkitektur... 3 O/R designere... 5 LINQ Den store introduktion med.net 3.5 er uden tvivl LINQ(udtales link): Language-INtegrated

Læs mere

Dell Cloud Client Computing Hvordan virtualisere vi de tunge grafisk applikationer?

Dell Cloud Client Computing Hvordan virtualisere vi de tunge grafisk applikationer? Dell Cloud Client Computing Hvordan virtualisere vi de tunge grafisk applikationer? Christian Eilskov Sales Engineer, christian_eilskov@dell.com +45 40 60 13 92 Dell Cloud Client Computing Dell lever produkter

Læs mere

Data lagring. 2. iteration (implement backend)

Data lagring. 2. iteration (implement backend) Data lagring 2. iteration (implement backend) Emner Grundlæggende database begreber. Data definitionskommandoer ER-diagrammer og cardinalitet/relationer mellem tabeller Redundant data og Normalisering

Læs mere

Indhold. Senest opdateret:03. september 2013. Side 1 af 8

Indhold. Senest opdateret:03. september 2013. Side 1 af 8 Indhold Introduktion... 2 Scenarier hvor API et kan benyttes... 2 Scenarie 1 Integration til lagerhotel... 2 Scenarie 2 Integration til økonomi system... 2 API Modeller... 2 Webshop2 API Model v1... 3

Læs mere

Overfør fritvalgskonto til pension

Overfør fritvalgskonto til pension Microsoft Development Center Copenhagen, January 2009 Løn Microsoft Dynamics C52008 SP1 Overfør fritvalgskonto til pension Contents Ønsker man at overføre fritvalgskonto til Pension... 3 Brug af lønart

Læs mere

Web- og serverprogrammering

Web- og serverprogrammering Web- og serverprogrammering Arkitekturer i webprogrammer - dag 6 Model-View-Controller-arkitukturen Flerlags-arkitekturer Læsning: WJSP 10 Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html

Læs mere

Dygtig.NET / C# udvikler med stor erfaring fra både offentlige organisationer og private virksomheder.

Dygtig.NET / C# udvikler med stor erfaring fra både offentlige organisationer og private virksomheder. .NET UDVIKLER NATIONALITET: DANSK PROFIL Dygtig.NET / C# udvikler med stor erfaring fra både offentlige organisationer og private virksomheder. Stor erfaring omkring databasedesign, datahåndtering og MS

Læs mere

PID2000 Archive Service

PID2000 Archive Service PROLON CONTROL SYSTEMS Herstedvesterstræde 56 DK-2620 Albertslund Danmark Tlf.: (+45) 43620625 Fax: (+45) 43623125 PID2000 Archive Service Bruger vejledning Juni 2002 Denne manual beskriver brugen af softwaren

Læs mere

Dagens program. Domæner. change log- screen shots hver gang I har arbejdet med themet. Arkitekturen bag en wp blog. Hvad er widgets.

Dagens program. Domæner. change log- screen shots hver gang I har arbejdet med themet. Arkitekturen bag en wp blog. Hvad er widgets. Dagens program Har alle fået? Har nogen betalt for meget? Hav jeres koder klar Domæner change log- screen shots hver gang I har arbejdet med themet. Arkitekturen bag en wp blog Hvad er widgets Hvad er

Læs mere

Microsoft Development Center Copenhagen, December 2009. Factsheet. Microsoft Dynamics C5 2010. Web Services

Microsoft Development Center Copenhagen, December 2009. Factsheet. Microsoft Dynamics C5 2010. Web Services Microsoft Development Center Copenhagen, December 2009 Factsheet Microsoft Dynamics C5 2010 Web Services Indhold Indledning... 3 Integration til Krak... 4 Krak på debitor og kreditor... 4 Krak på løn...

Læs mere

User guide - For testing SFTP and HTTP/S data communication

User guide - For testing SFTP and HTTP/S data communication User guide - For testing SFTP and HTTP/S data communication with Nets Danmark A/S P. 1-9 Index General information... 3 Introduction... 3 Rights... 3 Limitations... 3 Prerequisites... 3 Preparations...

Læs mere

PHP 3 UGERS FORLØB PHP, MYSQL & SQL

PHP 3 UGERS FORLØB PHP, MYSQL & SQL PHP 3 UGERS FORLØB PHP, MYSQL & SQL Uge 1 & 2 Det basale: Det primære mål efter uge 1 og 2, er at få forståelse for hvordan AMP miljøet fungerer i praksis, og hvordan man bruger PHP kodesproget til at

Læs mere

RMI med BlueJ. Tutorial lavet af Jákup W. Hansen TSU 2006 3.semester 11. desember 2007

RMI med BlueJ. Tutorial lavet af Jákup W. Hansen TSU 2006 3.semester 11. desember 2007 RMI med BlueJ Tutorial lavet af Jákup W. Hansen TSU 2006 3.semester 11. desember 2007 Hvad er RMI? Når man arbejder med Distribuerede Systemer, som igen vil sige at man ønsker at flere end én komputer

Læs mere

Google App Engine. Google App Engine som platform. Claus Myglegaard Vagner og Jacob von Eyben

Google App Engine. Google App Engine som platform. Claus Myglegaard Vagner og Jacob von Eyben GoogleAppEngine GoogleAppEnginesomplatform ClausMyglegaardVagnerogJacobvonEyben Abstract CloudcomputingerenteknologidervinderfremidengenerelleITinfrastruktur. SocialemediersåsomLinkedIn,TwitterogFacebookharøgetbehovetfor

Læs mere

Skriftlig opgave. Designtanker i database-nære systemer

Skriftlig opgave. Designtanker i database-nære systemer Skriftlig opgave til eksamen for faget»databaser«designtanker i database-nære systemer Martin Ancher Holm Juni 2010 1 Intro Denne skriftlige opgave indeholder kort de daglige tanker jeg har omkring design

Læs mere

PDFmaps på smartphones

PDFmaps på smartphones PDFmaps på smartphones Kort udbyder - en enkel og (gratis) mulighed for at stille orienteringskort til rådighed på iphone/ipad og Android Bruger - en enkel og (gratis) mulighed for at downloade og anvende

Læs mere

Morten Juul Nielsen Produktchef Microsoft Danmark

Morten Juul Nielsen Produktchef Microsoft Danmark Morten Juul Nielsen Produktchef Microsoft Danmark Er du, din organisation og dit datacenter klar til Skyen? Dynamisk Datacenter & Cloud Computing System Center Suiten med fokus på Service Manager Next

Læs mere

Microsoft Dynamics C5. Nyheder Kreditorbetalinger

Microsoft Dynamics C5. Nyheder Kreditorbetalinger Microsoft Dynamics C5 Nyheder Kreditorbetalinger INDHOLDSFORTEGNELSE Indledning... 3 Uddybning af ændringer... 4 Forbedring vedr. betalings-id er... 4 Ændringer i betalingsmåder (kreditorbetalinger)...

Læs mere

Sikkerhed i trådløst netværk

Sikkerhed i trådløst netværk Sikkerhed i trådløst netværk Når du opsætter et trådløst netværk betyder det at du kan benytte dit netværk uden at være forbundet med kabler, men det betyder også at andre kan gøre det samme, hvis du ikke

Læs mere

Vind Seminar Fredericia 4. april 2013 JOB2SEA

Vind Seminar Fredericia 4. april 2013 JOB2SEA Vind Seminar Fredericia 4. april 2013 JOB2SEA Rekrutteringsstrategi i et svært marked. Helle Drachmann Baggrund Job- & CV database Outplacement & transition management Koncern HR Selvstændig virksomhed

Læs mere

BILAG 8.1.B TIL VEDTÆGTER FOR EXHIBIT 8.1.B TO THE ARTICLES OF ASSOCIATION FOR

BILAG 8.1.B TIL VEDTÆGTER FOR EXHIBIT 8.1.B TO THE ARTICLES OF ASSOCIATION FOR BILAG 8.1.B TIL VEDTÆGTER FOR ZEALAND PHARMA A/S EXHIBIT 8.1.B TO THE ARTICLES OF ASSOCIATION FOR ZEALAND PHARMA A/S INDHOLDSFORTEGNELSE/TABLE OF CONTENTS 1 FORMÅL... 3 1 PURPOSE... 3 2 TILDELING AF WARRANTS...

Læs mere

make connections share ideas be inspired

make connections share ideas be inspired make connections share ideas be inspired Integration af prædiktive analyser og operationelle forretningsregler med SAS Decision Manager Kristina Birch, chefkonsulent Professional Services, Banking & Mortgage

Læs mere

Healthcare Apps. OUH Odense University Hospital & Svendborg Hospital. Kiel, Germany, November 2013 1 05/12/13

Healthcare Apps. OUH Odense University Hospital & Svendborg Hospital. Kiel, Germany, November 2013 1 05/12/13 Healthcare Apps OUH Odense University Hospital & Svendborg Hospital Kiel, Germany, November 2013 1 05/12/13 Jesper Lakman Senior Consultant Digital InnovaGon (4 employees) IT Department (140 employees)

Læs mere

Bruger Manual PC Valtronics Udendørs Kamera - Windows system

Bruger Manual PC Valtronics Udendørs Kamera - Windows system Bruger Manual PC Valtronics Udendørs Kamera - Windows system Brugervejledning til PC (windows) 1. Installation af kamera Vejledningen er almen for alle Valtronics kameraer, og derfor kan billederne af

Læs mere

Opsætning af MobilePBX med Kalenderdatabase

Opsætning af MobilePBX med Kalenderdatabase Opsætning af MobilePBX med Kalenderdatabase Dette dokument beskriver hvorledes der installeres Symprex Exchange Connector og SQL Server Express for at MobilePBX kan benytte kalenderadadgang via database

Læs mere

Hvilke typer koder findes der?

Hvilke typer koder findes der? Introduktion Hvilke typer koder findes der? Responsmekanismer og benchmark ifht. sms. Øg din ROI på din medieinvestering Hvad er det der bygger bro efter din kunde har scannet kode Payment / Salg Promotion

Læs mere

PDFmaps på smartphones

PDFmaps på smartphones PDFmaps på smartphones Kort udbyder - en enkel og (gratis) mulighed for at stille orienteringskort til rådighed på iphone/ipad og Android Bruger - en enkel og (gratis) mulighed for at downloade og anvende

Læs mere

Indhold. Indholdsfortegnelse

Indhold. Indholdsfortegnelse Indholdsfortegnelse Indhold Indledning... 2 Forsiden... 2 Dine genveje... 3 Nyheder... 3 EasyIQ og EasyIQ Quick Funktioner... 3 Administration... 6 Licens... 7 Nyheder... 8 Log... 9 Password... 9 System...

Læs mere

Pronestor Room & Catering

Pronestor Room & Catering Pronestor Room & Catering Modul 2 Installation af tilkøbsmoduler Side 2.0 2.9 Bruger Import (AD integration) Side 2.1 2.4 o Service Accounts (hosted og on-premises) o Active Directory struktur o Installation

Læs mere

Studieordning del 3-2014

Studieordning del 3-2014 Studieordning del 3-2014 Valgfag Datamatiker AP Graduate in Computer Science Version 1.1 Revideret august 2014 Side 0 af 6 del 3 Valgfag 1. Valgfrie uddannelseselementer...2 2. Valgfaget Android...2 3.

Læs mere

HELLO INSTALLATIONS GUIDE - DANSK RACKPEOPLE

HELLO INSTALLATIONS GUIDE - DANSK RACKPEOPLE HELLO INSTALLATIONS GUIDE - DANSK RACKPEOPLE 1 Tekniske Krav 1.1 Hardware krav: En skærm gerne med touch Hvis skærmen ikke har touch, skal du bruge et tastatur og en mus Webcam Gerne i HD En ekstern lydenhed

Læs mere

2013 SP1. Konfiguration af koncernindblik. Configuration Guide

2013 SP1. Konfiguration af koncernindblik. Configuration Guide 2013 SP1 Konfiguration af koncernindblik Configuration Guide Intellectual Property Rights This document is the property of ScanJour. The data contained herein, in whole or in part, may not be duplicated,

Læs mere

Innovative Business Software A/S

Innovative Business Software A/S Innovative Business Software A/S Technical Note Klienter - Installation og opdatering 26. november 2014 ii MEDDELELSE OM OPHAVSRET Copyright 2014 Innovative Business Software A/S. Alle rettigheder forbeholdt.

Læs mere

Installation af Bilinfo på Windows

Installation af Bilinfo på Windows Installation af Bilinfo på Windows Eksempler i denne vejledning er taget fra Windows 7 og Internet Explorer 8 Download det nødvendige program. Gå ind på www.bilinfo.dk/download Klik på download ud for:

Læs mere

Snitfladedokumentation til fagsystemer v 1.1

Snitfladedokumentation til fagsystemer v 1.1 MEMO Produced by: Peter Ravnholt 1. INDLEDNING... 2 SIKKERHED... 2 2. ÆNDRINGSLOG... 3 VERSION 1.1... 3 3. EKSEMPELSCENARIE... 3 UDFYLD ET NYT SPØRGESKEMA... 3 4. SERVICE CONTRACTS... 5 GETQUESTIONNAIREDEFINITIONLIST...

Læs mere

Object-Relational Mapping

Object-Relational Mapping Object-Relational Mapping Skriftligt arbejde i forbindelse med eksamen i Databaser for udviklere Studerende: Henrik Rossen Jakobsen Vejleder: Allan Helboe 07-06-2010 Indhold Indledning... 2 Problemformulering...

Læs mere

Umbraco installationsvejledning

Umbraco installationsvejledning på et ScanNet ASP Webhotel Indledning Beskrivelse Denne vejledning vil indeholde installation af CMS systemet Umbraco på et ASP Webhotel. Det dansk grundlagt Content Management System (CMS) Umbraco er

Læs mere

Navision Stat 7.0. GIS Webservice og automatiseret filindlæsning via NST. Overblik. Side 1 af 9. ØSY/CRA/MAC Opr. 20.01.15

Navision Stat 7.0. GIS Webservice og automatiseret filindlæsning via NST. Overblik. Side 1 af 9. ØSY/CRA/MAC Opr. 20.01.15 Side 1 af 9 Navision Stat 7.0 ØSY/CRA/MAC Opr. 20.01.15 GIS Webservice og automatiseret filindlæsning via NST Overblik Introduktion Denne vejledning beskriver hvordan du: installerer Navision Application

Læs mere

Factsheet. Microsoft Dynamics C5 Version 2008. Web Services

Factsheet. Microsoft Dynamics C5 Version 2008. Web Services Factsheet Microsoft Dynamics C5 Version 2008 Web Services Indhold Indledning... 3 Integration til Krak... 4 Krak på debitor og kreditor... 4 Krak på løn... 8 Krak Datavask... 9 Integration til KOB... 10

Læs mere

EasyIQ Opdatering 5.2.3 -> 5.4.0

EasyIQ Opdatering 5.2.3 -> 5.4.0 EasyIQ Opdatering 5.2.3 -> 5.4.0 Kunde: Forfatter: Thomas W. Yde Systemtech A/S Side: 1 af 17 1 Indholdsfortegnelse 2 GENERELT OMKRING FORUDSÆTNINGEN OG OPDATERINGS FORLØBET... 3 2.1 FORUDSÆTNINGER...

Læs mere

Get Instant Access to ebook Udleveret PDF at Our Huge Library UDLEVERET PDF. ==> Download: UDLEVERET PDF

Get Instant Access to ebook Udleveret PDF at Our Huge Library UDLEVERET PDF. ==> Download: UDLEVERET PDF UDLEVERET PDF ==> Download: UDLEVERET PDF UDLEVERET PDF - Are you searching for Udleveret Books? Now, you will be happy that at this time Udleveret PDF is available at our online library. With our complete

Læs mere

Syllabus. On-Line kursus. POSitivitiES. Learning. Applied Positive Psychology for European Schools

Syllabus. On-Line kursus. POSitivitiES. Learning. Applied Positive Psychology for European Schools PositivitiES Applied Positive Psychology for European Schools POSitivitiES Positive European Schools On-Line kursus Learning This project has been funded with support from the European Commission.This

Læs mere

Rejsekort A/S idekonkurence Glemt check ud

Rejsekort A/S idekonkurence Glemt check ud Rejsekort A/S idekonkurence Glemt check ud 9. marts 2015 1 Indhold 1 Introduktion 4 1.1 Problembeskrivelse........................ 4 1.2 Rapportens opbygning...................... 4 2 Ordliste 5 3 Løsning

Læs mere

Ivan Overgaard 11/29/2012

Ivan Overgaard 11/29/2012 NSI Seal.Net Version 2.0 Ivan Overgaard 11/29/2012 Revisionshistorik: Version Dato Ændring Ansvarlig 0.8 29-11-2012 Oprettet IO 1.0 04-04-2013 redigeret IO Seal.Net Page 2 of 23 Version 2.0-29. november

Læs mere

Projekt Database, Gruppe 4A. Projekt 1, 3. Semester D A T A B A S E. Klasse MulA13 Gruppenummer: A4

Projekt Database, Gruppe 4A. Projekt 1, 3. Semester D A T A B A S E. Klasse MulA13 Gruppenummer: A4 Projekt Database, Gruppe 4A 0 Projekt 1, 3. Semester D A T A B A S E Klasse MulA13 Gruppenummer: A4 Projekt Database, Gruppe 4A 1 Fakta-ark Klasse MulA13, Gruppenummer: A4 Gruppemedlemmer: Amalie Ardahl

Læs mere

RentCalC V2.0. 2012 Soft-Solutions

RentCalC V2.0. 2012 Soft-Solutions Udlejnings software Vores udvikling er ikke stoppet!! by Soft-Solutions RentCalC, som er danmarks ubetinget bedste udlejnings software, kan hjælpe dig med på en hurtigt og simple måde, at holde styr på

Læs mere

BILAG 8.1.F TIL VEDTÆGTER FOR EXHIBIT 8.1.F TO THE ARTICLES OF ASSOCIATION FOR

BILAG 8.1.F TIL VEDTÆGTER FOR EXHIBIT 8.1.F TO THE ARTICLES OF ASSOCIATION FOR BILAG 8.1.F TIL VEDTÆGTER FOR ZEALAND PHARMA A/S EXHIBIT 8.1.F TO THE ARTICLES OF ASSOCIATION FOR ZEALAND PHARMA A/S INDHOLDSFORTEGNELSE/TABLE OF CONTENTS 1 FORMÅL... 3 1 PURPOSE... 3 2 TILDELING AF WARRANTS...

Læs mere

OIOSAML.NET og Umbraco. ved Thomas Ravnholt ravnholt @ silverbullet.dk

OIOSAML.NET og Umbraco. ved Thomas Ravnholt ravnholt @ silverbullet.dk OIOSAML.NET og Umbraco ved Thomas Ravnholt ravnholt @ silverbullet.dk Silverbullet, stiftet 2003 Silverbullet A/S IT- rådgivning, projektledelse og implementering Officiel SKI-leverandør Kontorer i Århus

Læs mere

WT-1011RC Programmer User Guide

WT-1011RC Programmer User Guide WT-1011RC Programmer User Guide Firmware Version 1.9 Note: 1. Information in this manual is subject to change without notice and does not represent a commitment of manufacturer. 2. Manufacturer shall not

Læs mere

Kom i gang med SAS STPbaserede

Kom i gang med SAS STPbaserede make connections share ideas be inspired Kom i gang med SAS STPbaserede webapplikationer Lars L. Andersson Chefkonsulent Webapplikationer Interaktion med serverbaserede data via skærmbilleder leveret gennem

Læs mere

Hosted Exchange. Setup guide for e-mail clients & mobile devices. Date: 2014-06-02. Version: 15. Author: SBJ/ANB. Target Level: Customer

Hosted Exchange. Setup guide for e-mail clients & mobile devices. Date: 2014-06-02. Version: 15. Author: SBJ/ANB. Target Level: Customer Hosted Exchange Setup guide for e-mail clients & mobile devices Date: 2014-06-02 Version: 15 Author: SBJ/ANB Target Level: Customer Target Audience: End User Language: en-us Page 1 of 42 LEGAL INFORMATION

Læs mere

Transformering af OIOXML til OIOUBL og OIOUBL til OIOXML

Transformering af OIOXML til OIOUBL og OIOUBL til OIOXML Microsoft Development Center Copenhagen, July 2010 OIOXML / OIOUBL Microsoft Dynamics C5 Transformering af OIOXML til OIOUBL og OIOUBL til OIOXML Indledning Indledning... 3 Anvendelse af værktøjet... 3

Læs mere

MODERNISERINGSSTYRELSEN ØSLDV WINDOWS SERVICE DOKUMENTATION, INSTALLATION OG KONFIGURERING AF ØSLDV/RAY WINDOWSSERVICE

MODERNISERINGSSTYRELSEN ØSLDV WINDOWS SERVICE DOKUMENTATION, INSTALLATION OG KONFIGURERING AF ØSLDV/RAY WINDOWSSERVICE Indhold Ændringshistorik... 2 Formål... 2 Om programmet... 2 Systemkrav... 2 Installation... 3 Event Log... 5 Installationsprogrammets skærmbillede... 6 Konfigurering af xml-opsætningsfil... 7 Beskrivelse

Læs mere

Udvikling af DOTNET applikationer til MicroStation i C#

Udvikling af DOTNET applikationer til MicroStation i C# Udvikling af DOTNET applikationer til MicroStation i C# Praktiske tips for at komme i gang. Gunnar Jul Jensen, Cowi Hvorfor nu det? Mdl og Vba kan det hele Fordelene er : udviklingsmiljøet er eksternt

Læs mere

Vejledning til Teknisk opsætning

Vejledning til Teknisk opsætning Vejledning til Teknisk opsætning v. 1.0 Adm4you, 2010. Indhold Kort om denne vejledning... 3 Generelt om easyourtime... 3 Installation af databasen... 3 Sikkerhed og rettigheder... 4 SQL Login... 4 Rettigheder

Læs mere

GeoEnviron Web-løsninger

GeoEnviron Web-løsninger 2012 Troels Kreipke 01-01-2012 Indhold Generelt... 3 Web-løsninger... 3 XML-firewall... 4 GeoEnviron_WebService... 4 Installation af web-løsninger uden brug af GeoEnviron_WebService... 5 GeoEnviron_WebService...

Læs mere

Grundlæggende OOA - OOD

Grundlæggende OOA - OOD Grundlæggende OOA - OOD Dette kursus henvender sig til personer, der har lille eller ingen erfaring med softwareudvikling. Med udgangspunkt i UML opbygges et solidt kendskab til softwareudviklingens kunst

Læs mere

Velkommen. Backup & Snapshot v. Jørgen Weinreich / Arrow ECS Technical Specialist

Velkommen. Backup & Snapshot v. Jørgen Weinreich / Arrow ECS Technical Specialist Velkommen Backup & Snapshot v. Jørgen Weinreich / Arrow ECS Technical Specialist 1 Agenda Fra backup til restore produkt Politikstyret Backup Live Demo 2 IBM XIV Snapshots - Næsten uden begrænsninger Snapshot

Læs mere

Nyhedsmail, april 2014 (scroll down for English version)

Nyhedsmail, april 2014 (scroll down for English version) Nyhedsmail, april 2014 (scroll down for English version) Kære Omdeler Forår og påske står for døren, og helligdagene i forbindelse med påsken betyder ændringer i omdelingen. Derudover kan du blandt andet

Læs mere

Digital post Snitflader Bilag A5 - REST HTTP returkoder Version 6.3

Digital post Snitflader Bilag A5 - REST HTTP returkoder Version 6.3 Digital post Snitflader Bilag A5 - REST HTTP returkoder Version 6.3 1 Indholdsfortegnelse INDHOLDSFORTEGNELSE 2 A5.1 INTRODUKTION 4 A5.2 HTTP RETURKODER 4 A5.3 DIGITAL POST FEJLKODER 7 A5.3.1 DIGITAL POST

Læs mere

Digital skriftlig aflevering med Lectio Censormodul Stedprøver installationsvejledning

Digital skriftlig aflevering med Lectio Censormodul Stedprøver installationsvejledning Digital skriftlig aflevering med Lectio Censormodul Stedprøver installationsvejledning 1. Lokalt installeret afleveringsprogram til stedprøver... 2 2. Systemkrav... 3 3. Netværksopsætning... 4 4. Installation

Læs mere

APPLIKATIONSARKITEKTUR ERP INFRASTRUKTUR. EG Copyright

APPLIKATIONSARKITEKTUR ERP INFRASTRUKTUR. EG Copyright APPLIKATIONSARKITEKTUR ERP INFRASTRUKTUR EG Copyright Infrastruktur er mere end nogle servere... Den Mentale Infrastruktur Den Fysiske Infrastruktur Den Mentale Infrastruktur Vi vil jo gerne have vores

Læs mere

Version Dato Beskrivelse 1.0.0 26/11/2012 Initial version 1.2.0 05/03/2013 Tilføjet eksempel med Template Agent, generelt udvidet dokumentet.

Version Dato Beskrivelse 1.0.0 26/11/2012 Initial version 1.2.0 05/03/2013 Tilføjet eksempel med Template Agent, generelt udvidet dokumentet. MOX og APOS2 Forord Dette dokument er en del af APOS version 2 manualerne. APOS version 2 (APOS2 herefter) er et organisation, klassifikation og personale system baseret på Sag & Dokument standarderne.

Læs mere

Software Projekt NoSQL vs RMDB

Software Projekt NoSQL vs RMDB Software Projekt NoSQL vs RMDB Skrevet af Carsten Sørensen, Hans Jørgen Frandsen, Peter Haislund Department of Computer Science, University of Aarhus Aabogade 34, 8200 Arhus N, Denmark 201200089, 19960442,

Læs mere

Sunlite pakke 2004 Standard (EC) (SUN SL512EC)

Sunlite pakke 2004 Standard (EC) (SUN SL512EC) Sunlite pakke 2004 Standard (EC) (SUN SL512EC) - Gruppering af chasere igen bag efter. På den måde kan laves cirkelbevægelser og det kan 2,787.00 DKK Side 1 Sunlite pakke 2006 Standard (EC) LAN (SUN SL512EC

Læs mere

Trolling Master Bornholm 2013

Trolling Master Bornholm 2013 Trolling Master Bornholm 2013 (English version further down) Tilmeldingerne til 2013 I dag nåede vi op på 85 tilmeldte både. Det er stadig lidt lavere end samme tidspunkt sidste år. Tilmeldingen er åben

Læs mere

To set new standards of lifting and transportation equipment for wind turbine components. Our product groups

To set new standards of lifting and transportation equipment for wind turbine components. Our product groups To set new standards of lifting and transportation equipment for wind turbine components. Our product groups Embracing the full life cycle of the wind turbine Liftra develops and supplies services to

Læs mere