Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström ....

78
Grafisk presentation av SCDR 1 Johnny Nyström 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per Lindström Handledare vid BAE Systems Hägglunds: Gun Persson Examinator: Lennart Edblom UMEÅ UNIVERSITET INSTITUTIONEN FÖR DATAVETENSKAP 901 87 UMEÅ 1 System Configuration Data Repository – En omfattande databas inom BAE Systems Hägglunds AB

Transcript of Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström ....

Page 1: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

Grafisk presentation av SCDR1

Johnny Nyström

16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per Lindström

Handledare vid BAE Systems Hägglunds: Gun Persson Examinator: Lennart Edblom

UMEÅ UNIVERSITET INSTITUTIONEN FÖR DATAVETENSKAP

901 87 UMEÅ

1 System Configuration Data Repository – En omfattande databas inom BAE Systems Hägglunds AB

Page 2: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per
Page 3: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

i

Sammanfattning

Det här examensarbetet utfördes under hösten 2007 på BAE Systems Hägglunds AB i Örnsköldsvik.

Syftet var att presentera information ifrån en databas så att det på ett enklare och tydligare sätt går att se vilka kopplingar som finns mellan signaler, datapaket och noder. En annan efterfrå-gad del var att se hur ett datapaket är sammansatt av signaler för att se om det finns lediga, upptagna eller dubbelbokade positioner. För att få fram information om de olika positio-nerna har man tidigare varit tvungen att rita upp datapaketet på papper, vilket varit både krångligt och tidsödande.

Resultatet blev en webbapplikation som kan presentera in-formationen ifrån databasen på olika sätt, där kopplingarna mellan bl.a. signaler, noder och datapaket framgår. I applika-tionen finns också en sida där det enkelt går att plocka fram ett datapaket för att sedan granska vilka typer av positioner det innehåller.

Nyckelord:

XML, XSL, dotnet, .NET, Excel, UML, GraphViz

Page 4: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per
Page 5: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

iii

Graphical presentation of SCDR

Summary

This master’s thesis was performed during the fall 2007 at BAE Systems Hägglunds AB in Örnsköldsvik.

The aim was to present information from a database in a way to simplify and clarify the view of the connections between signals, frames and nodes. To see how a frame is composed of signals in order to know what positions are unoccupied, occu-pied or double-booked is also a part of this work. Previously, the information regarding different positions in the frame has been drawn up on paper, which is difficult and time-consuming.

A web application is the result of this thesis and it can present the information from the database in different kinds of ways, where connections between signals, nodes, frames, etc. ap-pears. In the web application, there is also a page where a frame can be easily selected and subsequently inspected to see the containing positions.

Key Words:

XML, XSL, dotNet, .NET, Excel, UML, GraphViz

Page 6: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per
Page 7: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

v

Förord

Under mina studieår har mitt intresse växt för webbutveckling och webbap-plikationer. Kombinationen av att förenkla verktygen för användarna och samti-digt vara i teknikens framkant ger mig mycket inspiration till att göra ett bra arbe-te. Det är stimulerande att använda datorer för att förverkliga sina idéer – det ger så många möjligheter. Vetskapen om att webbutveckling innefattar många olika sorters verktyg så-som databaser och olika programmeringsspråk har efter mina år vid Institutionen för Datavetenskap, Umeå universitet, gett mig näring till vidare inhämtning av kunskaper inom det oändliga området. Uppdragsgivaren, BAE Systems Hägglunds AB, är ett av världens ledande företag inom konstruktion av stridsfordon. Militära system leder ofta teknikut-vecklingen och därför är branschen mycket attraktiv för dem med ett intresse i ny teknik – vilket jag har. Dessutom har Hägglunds förstått det betydelsefulla med att skapa lättanvända verktyg för användarna, däribland webbapplikationer. Jag är tacksam för att ha fått möjligheten till att göra det här projektet. Den här rapporten är en del av ett självständigt projekt, ett examensarbete på D-nivå om 20 poäng. Examensarbetet är ett krav för en Filosofie magisterexamen i Datavetenskap samt del av en Teknologie kandidatexamen i Elektronik. De båda utbildningarna har jag läst vid Umeå universitet. Örnsköldsvik, mars 2008

Page 8: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per
Page 9: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

Innehållsförteckning

1 Inledning ................................................................................................1

1.1 Bakgrund .......................................................................................................... 1

1.2 Rapportens disposition................................................................................... 2

2 Problembeskrivning ...............................................................................3

2.1 Bakgrund .......................................................................................................... 3

2.2 Syfte................................................................................................................... 4

2.3 Mål..................................................................................................................... 4

3 Presentation av SCDR-data ....................................................................5

3.1 Introduktion..................................................................................................... 5

3.2 Frågeställningar................................................................................................ 5

3.3 Struktureringsverktyg...................................................................................... 5

3.3.1 UML – Unified Modeling Language........................................................ 6

3.3.2 SysML – Systems Modeling Language .................................................... 7

3.3.3 WebML – Web Modeling Language........................................................ 7

3.3.4 Hägglunds-varianten .................................................................................. 8

3.3.5 GraphViz ..................................................................................................... 8

3.4 För- och nackdelar .......................................................................................... 9

3.5 Diskussion......................................................................................................10

3.5.1 Slutsats........................................................................................................10

4 Översikt av använda teknologier .......................................................... 11

4.1 XML................................................................................................................11

4.1.1 Syntax .........................................................................................................11

Deklaration .........................................................................................................12

Element ...............................................................................................................12

Attribut................................................................................................................12

Rotelement..........................................................................................................12

vii

Page 10: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

viii INNEHÅLLSFÖRTECKNING

Nästlade element................................................................................................13

Tomma element .................................................................................................13

Entiteter ..............................................................................................................13

4.1.2 Användningsområden..............................................................................14

4.2 Stilmallar .........................................................................................................14

4.2.1 XSL.............................................................................................................14

XSL Transformations (XSLT).........................................................................14

XML Path Language (XPath) ..........................................................................14

4.2.2 Cascading Style Sheets (CSS) ..................................................................15

4.3 Microsoft .NET 2.0 Framework.................................................................15

4.4 Microsoft Excel .............................................................................................15

4.5 Webbtjänster..................................................................................................16

HyperText Transfer Protocol (HTTP)...........................................................16

Simple Object Access Protocol (SOAP) ........................................................16

Web Service Description Language (WSDL) ................................................17

4.6 Integrerad Windows autenticering..............................................................17

5 Genomförande ...................................................................................... 19

5.1 Metoder och möjligheter..............................................................................19

5.1.1 Förstudie ....................................................................................................19

5.2 Uppstart..........................................................................................................19

5.2.1 Begränsningar............................................................................................20

5.3 Förstudie.........................................................................................................20

5.3.1 Vad som önskades....................................................................................20

Signaler i datapaket ............................................................................................21

Karta över kopplingar .......................................................................................21

5.3.2 Hur det skulle göras .................................................................................22

5.4 Projektet .........................................................................................................22

6 Implementation ....................................................................................25

6.1 Verktyg............................................................................................................25

6.2 Signaler i datapaket .......................................................................................25

Page 11: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

INNEHÅLLSFÖRTECKNING ix

Excel-mall med makro......................................................................................25

6.2.1 Intel- eller Motorola-format....................................................................26

Motorola-format ................................................................................................26

Intel-format ........................................................................................................26

Beräkning av offset............................................................................................26

6.2.2 Tekniken bakom Excel-mallen ...............................................................27

Varför mall? ........................................................................................................27

Bladen i mallen...................................................................................................27

Automatisk beräkning.......................................................................................28

Definiera namn på funktioner .........................................................................28

Villkorsstyrd formatering av celler ..................................................................31

Makro ..................................................................................................................32

6.3 Kartor över signaler och noder...................................................................32

6.4 Plocka information ur XML-filen...............................................................33

6.5 Struktur i databasen ......................................................................................35

6.6 Generera XML-fil .........................................................................................36

6.7 Mastersida.......................................................................................................37

6.8 Generell konfigurering .................................................................................37

6.9 Excel-mallen i webbapplikationen..............................................................38

6.10 Klassbibliotek ................................................................................................38

6.11 Säkerhet ..........................................................................................................39

7 Resultat ................................................................................................. 41

7.1 Signaler som bitar i datapaket......................................................................41

7.1.1 Exportera till Excel ..................................................................................43

7.1.2 Exportera till Excel med användande av mall......................................43

7.2 Kartor över signaler och noder...................................................................46

7.2.1 Signalen i centrum ....................................................................................46

7.2.2 Noden i centrum.......................................................................................48

7.3 Generera en XML-fil ....................................................................................48

Page 12: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

x INNEHÅLLSFÖRTECKNING

8 Slutsats .................................................................................................. 51

8.1 Problem under arbetets gång.......................................................................51

8.2 Restriktioner och begränsningar .................................................................52

8.3 Framtida arbete..............................................................................................52

9 Erkännanden ........................................................................................55

Referenser.....................................................................................................57

10 Appendix A – Akronymer ..................................................................... 61

Page 13: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

Figurförteckning

Figur 2.1 Befintlig applikation, endast textbaserad presentation. Vid klick öppnas länken i en ny ruta (se figur 2.2).................................................... 3

Figur 2.2 Länken öppnas i ett nytt fönster med rätt ID och namn. .......................... 4

Figur 3.1 Exempel UML Klassdiagram. ........................................................................ 6

Figur 3.2 Exempel SysML Kravdiagram (Requirement diagram). ............................. 7

Figur 3.3 Exempel WebML Graf.................................................................................... 8

Figur 3.4 Exempel Hägglunds-varianten. ...................................................................... 8

Figur 3.5 Exempel GraphViz processdiagram.............................................................. 9

Figur 5.1 Bild till förstudiefråga. ...................................................................................21

Figur 5.2 Karta över önskade kopplingar, en tänkt karta. .........................................22

Figur 6.1 Bladen i Excel-mallen. ...................................................................................27

Figur 6.2 Excel-mallen med bladet test synligt.............................................................28

Figur 6.3 Excel-mallen med bladet count synligt..........................................................29

Figur 6.4 Den aktuella XML-filen i systemet. .............................................................33

Figur 6.5 Figuren visar Solution Explorer i VS.NET där filer och referenser finns. Inringat de webbreferenser till webbtjänster som finns.............36

Figur 6.6 Generera en ny XML-fil. ...............................................................................36

Figur 6.7 En Mastersidas uppbyggnad med både fasta och dynamiska delar. Mastersidan är den yttre ramen och delarna rubrik, sidhuvud och sidfot är fasta medan delen innehåll är dynamisk och byts ut genom att klicka på länkar i sidhuvudet................................................................37

Figur 7.1 Sidan ”Signaler i frame”. 1) Välj typ av datapaket; SIL, PDO eller J1939. 2) Det finns 7 sidor att visa. Figuren visar de 15 första datapaketen av typen SIL...........................................................................41

Figur 7.2 1) Ett datapaket är valt. 2) Signalerna i datapaketet visas i en lista där information om signalerna presenteras; ID, namn, storlek, offset och format (Intel eller Motorola). 3) Klicka på knappen ”Exportera till Excel” för att exportera tabellen direkt till Excel. 4) Klicka på knappen ”Exportera till Excel, använd mall” för att exportera tabellen till en förpreparerad mall (se följande figurer). ......42

xi

Page 14: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

XII TABELLFÖRTECKNING

Figur 7.3 Excel öppnas i webbläsaren och tabelldatat presenteras i ett nytt tomt dokument............................................................................................43

Figur 7.4 Excel öppnat med mallen och tabellen importerad. 1) Tryck på knappen för att starta makrot. Färgningen av rutan startas..................44

Figur 7.5 1) Färgningen av rutan gjord. Rött visar kollisioner (där det är fler än en signal på en bit) och grönt visar lediga positioner. I det här fallet är bit 0 och 1 gröna (lediga pos.) och inga bitar är röda (inga kollisioner finns). 2) Färgkodning som gör det lättare att urskilja vilken signal som ligger var i rutan. Färgkodningen är samma som i count-bladet (se Figur 7.7).........................................................................44

Figur 7.6 Test av kollision. 1) En tvåa ändras till en åtta vilket ger en kollision på 6 bitar. 2) Kollisionen syns i rutan. .....................................................45

Figur 7.7 Indikering av vilka bitar som kolliderar syns i bladet count. ......................45

Figur 7.8 Sidan ”Karta över signaler”. 1) Välj en signal att titta på...............................46

Figur 7.9 1) En signal är vald. 2) Signalen visas med namn, ID och beskrivning. 3) Den nod som skapar signalen. 4) Det datapaket signalen skickas i. 5) Den/de noder som tar emot signalen. 6) Gå direkt till sidan ”Signaler i frame” och skicka med denna frame-ID (se Figur 7.10 nedan) 7) Gå direkt till instans av nod, signal eller frame (datapaket) i SCDR-applikationen. ...............................................47

Figur 7.10 Sidan visar ”Signaler i frame” där datapaketets ID skickats med från föregående sida (sidan ”Karta över signaler”). 1) Endast det aktuella datapaketet visas..........................................................................................48

Figur 7.11 Sidan ”Karta över noder”. 1) Välj en nod genom att klicka vidare på siffrorna i nederkant. 2) Välj en IP-bus om en sådan existerar. 3) Välj en CAN-bus om en sådan existerar. Klicka på siffrorna i nederkant. 4) Välj en SIL-signal genom att klicka på siffrorna i nederkant. 5) SIL-framen visas till den SIL-signal som för tillfället är vald. ..........................................................................................................49

Figur 7.12 Sidan ”Generera XML”. 1) En text visar hur gammal den aktuella XML-filen är så det enkelt går att bestämma om den behöver förnyas. 2) En tabell visar vilken produkt, variant, release och språk XML-filen har. 3) Välj produkt, variant, release och språk för att generera en ny XML-fil att använda. ...........................................50

Figur 8.1 Önskad utökning av Excel-mallen. Nummer syns för varje bit i rutan. .............................................................................................................53

Page 15: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

Tabellförteckning

Tabell 3:1 Några struktureringsverktygs för- och nackdelar....................................... 9

Tabell 5:1 Ett 64-bitars datapaket (frame). ..................................................................21

Tabell 6:1 Beräkning av offset. 3 exempel presenteras..............................................26

Tabell 6:2 Uppskalad tabell av Figur 6.3 där bladet count syns med tio signaler (rad 3-12). Siffrorna i tabellen refererar till tabellen av datapaketet i Figur 6.2. Radnumrering med siffror längst till vänster och kolumnnumrering med bokstäver högst upp. ........................................29

Tabell 6:3 Tabellen visar signaler på Intel-formatet. ..................................................30

Tabell 6:4 Början och slutet av den XSL-fil som används för att informera om vilken XML-fil som för tillfället finns i webbapplikationen. Längst till vänster står det radnummer som endast används som referens i texten och inte ska vara med i filen. I denna tabell visas rad 1-13 samt 36..........................................................................................33

Tabell 6:5 Resten av XML-filen. Radnummer, som inte ska vara med i XSL-filen, syns till vänster. Här raderna 14-35. ...............................................34

Tabell 6:6 Ett kort XML-dokument för att förklara XSL. Innan XSL-matchningen. ...............................................................................................35

Tabell 6:7 Det virtuella resultatet av en körning med dokumentet i Tabell 6:6 som befintlig XML-fil. Efter XSL-matchningen....................................35

xiii

Page 16: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per
Page 17: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

1 Inledning Denna rapport är en del av ett examensarbete som är utfört vid institutionen för datavetenskap, Umeå universitet. Uppdragsgivare för detta arbete är BAE Systems Hägglunds AB avdelning Inbyggda system och det utfördes mellan september 2007 och februari 2008.

BAE Systems Hägglunds AB2 i Örnsköldsvik är en del av en koncern som har sitt huvudkontor i Storbritannien. Företaget är en av världens ledande tillverkare av militära fordonssystem. Hägglunds har som huvuduppgift att bygga strids- och terrängfordon, detta från ritbordet till produktion och leverans. Till de kända hör CV90, som tillverkats i olika utföranden under 20 års tid, och den nyutvecklade högteknologiska SEP, som bl.a. använder elmotorer för tyst drift. Hägglunds är också känd för de bandvagnar som byggs och säljs i ett flertal varianter, där de oftast anpassas efter beställarnas önskemål.

Fordonen levereras till fem kontinenter, över 40 länder i världen, bl.a. Holland, Tyskland, Danmark och Storbritannien. I Örnsköldsvik sysselsätts ca 1200 perso-ner med allt från utveckling till produktion och företaget omsatte ungefär 3 mil-jarder kronor 2007. [BSH] [BAE]

1.1 Bakgrund

Kommunikationen mellan olika enheter i fordonen var från början elektrisk, något som med tiden har blivit digitaliserat och styrs med hjälp av ett antal datorer. Denna kommunikation är väldigt viktig att den fungerar och är korrekt då den styr allt från vindrutetorkare och framdrivning till avfyrningsmekaniken i strids-fordonen. För att hålla reda på hur denna datakommunikation går mellan olika enheter används en databas i utvecklingen, där alla kopplingar mellan signaler och enheter finns lagrade. Denna databas har med tiden blivit mycket komplex. Hur kan denna information presenteras tydligare?

2 BAE Systems Hägglunds AB kommer i fortsättningen att refereras till som Hägglunds.

1

Page 18: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

2 KAPITEL 1. INLEDNING

1.2 Rapportens disposition

Kapitel två innehåller en problembeskrivning där bakgrund, syfte och mål tas upp. I kapitel tre återfinns den djupstudie som gjorts om hur data från en databas pre-senteras på ett lättöverskådligt sätt med olika tillämpbara verktyg.

Kapitel fyra innehåller en översikt av använda teknologier och kan användas som ett uppslagsverk. I kapitel fem återfinns metoder och möjligheter samt förklaring av genomförandet med uppstart, förstudie och projektets fortskridande. Imple-mentationen återfinns i kapitel sex, där alla sammanlänkade delar förklaras.

Projektets resultat redovisas med bilder i kapitel sju och en slutsats med bl.a. pro-blem under arbetet och framtida arbete återfinns i kapitel åtta. Slutligen kapitel nio där erkännanden har gjorts till alla som bidragit till ett bra examensarbete.

Bilagan innehåller en tabell över använda förkortningar.

Page 19: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

2 Problembeskrivning Här kommer problemet att beskrivas i detaljerade termer där först bakgrunden till projektet tas upp, sedan syftet och målet.

2.1 Bakgrund

All datakommunikation inom Hägglundsfordon dokumenteras i en omfattande databas. Kopplad till denna databas finns en applikation som enbart har textbase-rad presentation av informationen (se figur 2.1), där länkningar endast står med text (ID och namn) och man måste klicka sig vidare för att se mer av vad det är (se figur 2.2). Det betyder att det kommer upp ännu ett fönster och det blir till slut svårt att överblicka.

De användare som utvecklar programvara till fordonen använder sig ofta av ap-plikationen för att få fram de uppgifter som behövs. De har ibland svårt att förstå hur dessa länkningar hänger ihop i det stora hela och behöver ofta rita upp det på ett papper. Därför önskar de sig en sorts karta där man kan välja att titta på en nod och se vilka noder som ansluter till den.

Länk: ID - Namn

Figur 2.1 Befintlig applikation, endast textbaserad presentation. Vid klick öppnas länken i en ny ruta (se figur 2.2).

3

Page 20: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

4 KAPITEL 2. PROBLEMBESKRIVNING

Figur 2.2 Länken öppnas i ett nytt fönster med rätt ID och namn.

2.2 Syfte

Ex-jobbet går ut på att grafiskt presentera informationen i en befintlig och rätt omfattande databas, som här kallas SCDR3, innehållandes all dokumenterad data-kommunikation inom Hägglundsfordon. Detta för att göra informationen lättare att förstå för alla användare, även de som inte är så insatta i hur informationen i databasen hänger ihop.

2.3 Mål

I ett första steg är arbetsuppgifterna att på ett enkelt och strukturerat sätt presen-tera den efterfrågade informationen; man ska kunna filtrera på funktion, elektro-nikenhet etc. Denna presentation ska vara grafisk för att ge en bättre överblick hur exempelvis signaler är kopplade till varandra, vilka signaler som beror av vem etc. Signalerna kan vara sammankopplade i långa kedjor från en länk till ett flertal län-kar, vilket medför att lösningen måste klara denna dynamik.

Lösningen ska vara en hjälp för användare som inte är så insatta i hur informatio-nen är länkad till varandra. För att tydligare se vilken signal som är kopplad till vilken, vilka beroenden en signal har och var den lagras.

Presentationen av dessa data ska göras med hjälp av anpassning av befintligt verk-tyg eller med ett nyutvecklat verktyg.

3 System Configuration Data Repository

ID

Namn

Page 21: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

3 Presentation av SCDR4-data Här presenteras djupstudien om struktureringsverktyg närmare. Det kommer ock-så diskuteras kring de verktyg som valts ut till studien.

3.1 Introduktion

Kapitlet kommer att ta upp några av de olika struktureringsverktyg som finns för att grafiskt presentera information ifrån en databas på bästa tänkbara sätt för att det ska vara lättöverskådligt men ändå detaljerat. Informationen ska presenteras på en webbsida. Det ska gå att använda informationen för både vana avancerade användare som för nybörjare.

Diskussioner kommer att göras för att bedöma struktureringsverktygens för- och nackdelar samt det kommer att ges några exempel på hur det kan se ut när de oli-ka verktygen används.

3.2 Frågeställningar

Det finns förstås en hel del frågor att besvara där de mest grundläggande är:

• Vad finns det för struktureringsverktyg? • Vad används de till? • Vad är dess för- och nackdelar? • Hur ser de ut?

I de följande avsnitten kommer ovanstående frågor att besvaras.

3.3 Struktureringsverktyg

Börjar man söka efter struktureringsverktyg på Internet så finns det en hel del att välja på, både kända och mer okända. Väljer man ut de som känns mest relevanta (för detta projekt) för att vidare studera dess för- och nackdelar så finns följande kvar:

• UML • SysML • WebML

Vid efterforskningarna på befintliga verktyg hos Hägglunds dök en delvis egenut-vecklad variant upp. Den presenteras här som

4 System Configuration Data Repository

5

Page 22: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

6 KAPITEL 3. PRESENTATION AV SCDRF F-DATA

• Hägglunds-varianten.

För att förstå vad dessa struktureringsverktyg är för något så följer här en kort presentation till var och en av dessa. Det finns ett verktyg med öppen källkod för att rita upp diagrammen automatiskt som heter GraphViz, vilket också förklaras nedan.

3.3.1 UML – Unified Modeling Language

UML är ett objektorienterat modellspråk för att specificera och visualisera system. Språket ägs och utvecklas av OMG (Object Management Group) som är en icke-vinstdrivande organisation. Version 2.0 släptes i två delar: Superstrukturen i okto-ber 2004 och infrastrukturen i november 2005. Version 2.1 är den senaste versio-nen av UML och blev klar i oktober 2007. [UMLWE]

UML är applicerbar på alla domäner och är språk- och plattformsoberoende, vil-ket gör språket mycket gångbart inom systemarkitekturen. Verktyg som Rational Rose är populära för att rita UML-diagram. [ELMA]

Modellspråket togs fram gemensamt av Grady Booch, Jim Rumbaugh och Ivar Jacobson. De sammanförde sina tre likartade språk och skapade på så sätt en världsstandard som är fri att använda. UML 2.0 består av 13 olika diagramtyper där de grovt sett kan delas in i tre kategorier: beteende, interaktion och struktur. Till kategorin struktur hör t.ex. klassdiagram, objektdiagram och strukturdiagram. [UMLWE]

Användningsområde och exempel Används för att specificera och visualisera de flesta system.

Figu

rkäll

a: ht

tp:/

/ww

w.co

ncep

tdra

w.co

m/p

rodu

cts/

img/

Sc

reen

Shot

s/cd

5/um

l/U

ML_

Clas

s-di

agra

m.g

if

Figur 3.1 Exempel UML Klassdiagram.

Page 23: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

KAPITEL 3. PRESENTATION AV SCDRF F-DATA 7

3.3.2 SysML – Systems Modeling Language

SysML är ett domänspecifikt modellspråk för systemutveckling och är en profil av UML. Språket använder sig av sju av de tretton diagramtyper som UML 2.0 har samt adderar två nya. SysML är mer flexibelt och uttryckbart än UML samt mins-kar UML’s mjukvaru-centriska begränsningar. Från och med april 2006 finns SysML med bland OMG’s modellspråk. [SYSWE]

Användningsområde och exempel Som UML men inte lika tungt att förstå och mera domänspecifikt för systemut-veckling.

Figu

rkäll

a: ht

tp:/

/ww

w.d

otne

tgur

u2.o

rg/m

edia/

req.

jpg

Figur 3.2 Exempel SysML Kravdiagram (Requirement diagram).

3.3.3 WebML – Web Modeling Language

WebML tillhandahåller grafiska, än så länge formella, specifikationer inneslutna i en komplett designprocess, vilken kan bli stödd av ett visuellt designverktyg. Huvuddragen av designprocessen i WebML är:

• Uttryckning av webbapplikationens struktur med en högnivå-beskrivning. • Tillhandahållning av mångfaldiga vyer för samma innehåll.

WebML använder fyra modeller för att specificera en webbsida:

• strukturell modell • hypertext modell • presentationsmodell • personifieringsmodell

[WEBML]

Användningsområde och exempel Används till designprocesser för webbapplikationer.

Page 24: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

8 KAPITEL 3. PRESENTATION AV SCDRF F-DATA

Figur 3.3 Exempel WebML Graf.

3.3.4 Hägglunds-varianten

Hägglunds-varianten är en blandning mellan SysML och en egenutveckling för att passa ändamålet som är beskrivande funktionsspecifikationer för bl.a. elsystem. Dock finns det ingen dokumentation om hur man använder den så det är lite svårt för den som inte är insatt att förstå. En insatt person har kort berättat vad verkty-get är och hur det används inom Hägglunds.

Användningsområde och exempel Används till att bygga funktionsspecifikationer över flöden i t.ex. datakommunika-tionen mellan databussar.

Figur 3.4 Exempel Hägglunds-varianten.

3.3.5 GraphViz

GraphViz5 är ett paket med verktyg baserat på öppen källkod som används till att bl.a. automatisera utritningsprocesser. Initialt skapat av AT&T Research Labs för 5 Graph Visualization Software, hemsida: http://www.graphviz.org/

MRF GN PM

VI

CCAN CRCAN

VCAN

Figu

rkäll

a: ht

tp:/

/tfs

.cs.tu

-be

rlin.

de/a

gg/e

xam

ples

/XM

LTra

ns-

htm

lpag

e/fig

ures

/web

ml-g

raph

.png

Page 25: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

KAPITEL 3. PRESENTATION AV SCDRF F-DATA 9

att rita grafer i t.ex. .NET språk. Det tillhandahåller också bibliotek med mjukva-ruapplikationer för att använda verktygen. [GRVIW]

Figu

rkäll

a: ht

tp:/

/ww

w.g

raph

viz.o

rg/

Gall

ery/

undi

rect

ed/p

roce

ss.p

ng

Figur 3.5 Exempel GraphViz processdiagram.

Verktyg för .NET webbapplikationer QuickGraph6 är ett bibliotek som innehåller allmän grafisk datastruktur och algo-ritmer för .NET. QuickGraph kan användas till webbapplikationer med .NET 2.0 framework7.

3.4 För- och nackdelar

Verktyg Fördel Nackdel

UML

+ Öppen för alla + Organisation som förvaltar + Fungerar på ”allt” (språk- &

plattformsoberoende)

− Omfattande och därför ”tung-rodd” metod

− Väldigt dokumentationstung − Trögföränderlig

SysML

+ Mindre än UML och därför lättare applicera

+ Mer flexibelt och uttryckbart än UML

+ Öppen för alla

WebML + Grafiska specifikationer − Svår att realisera Hägglunds-varianten

+ Använder sig av SysML:s styr-ka och egna förbättringar

− Ingen dokumentation

Tabell 3:1 Några struktureringsverktygs för- och nackdelar. 6 QuickGraph finns att ladda hem gratis från Codeplex: http://www.codeplex.com/quickgraph 7 Läs mer om .NET 2.0 Framework i avsnitt 4.3 på sidan 15.

Page 26: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

10 KAPITEL 3. PRESENTATION AV SCDRF F-DATA

3.5 Diskussion

Det finns fördelar med alla verktyg och Hägglunds-varianten är den bästa ur syn-vinkeln den tar SysML:s styrka och dessutom använder sig av det som behövts för att passa in i Hägglunds system. Dock finns inget program som kan använda verk-tyget för att automatisera en utritningsprocess. Detta sagt trots det inte finns nå-gon dokumentation att tillgå för att förstå verktyget.

Därför är GraphViz ett bra verktyg, det går att automatisera utritningsprocessen med det och det går att koppla ihop med .NET genom t.ex. gratisverktyget QuickGraph.

3.5.1 Slutsats

Använd GraphViz om tanken är att utritningsprocessen ska automatiseras eller använd Hägglunds-varianten för att använda ett bra verktyg som är bekant inom företaget.

Page 27: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

4 Översikt av använda teknologier I detta kapitel beskrivs olika teknologier och verktyg, som användes under imple-mentationen av systemet. Det tjänar endast som en snabb översikt över begrep-pen.

De tekniker som beskrivs har varit nödvändiga i utvecklandet av den applikation som detta examensarbete utmynnat i. Dock behöver teknikerna inte förstås av användarna av applikationen.

4.1 XML

XML, som står för eXtensible Markup Language, är ett universellt och utbyggbart märkspråk. XML är klassificerad som utbyggbart språk eftersom det är tillåtet för användaren att definiera sina egna taggar. XML blev en W3C8-rekommendation9 i februari 1998 och specifikationen har sedan dess släppts i version 1.1 upplaga 2 [XW3], som är den senaste versionen. Språket är en förenklad efterträdare till SGML10. På grund av SGML’s komplexitet utvecklades XML som snabbt har etablerats som det nya konceptet av märkspråk för Internet. [XWEN]

XML [X10]: • används för att strukturera data t.ex. kalkylblad, adresslistor och tekniska

ritningar. • är en uppsättning regler för hur text ska representeras och det ger möjlig-

het att utrycka sig såväl oberoende som specifikt för plats, kultur och språk.

• använder liksom HTML taggar och attribut (se utförligare förklaring i kommande avsnitt).

• är utan licens, är plattformsoberoende och har brett stöd, vilket är till för-del för utvecklare.

4.1.1 Syntax [XWEN] [XWSV]

Den syntax som används i XML ser ut så här:

<namn attribut="värde">innehåll</namn>

XML är dessutom skiftlägeskänsligt, så således är namn, Namn och NAMN tre olika element.

8 World Wide Web Consortium, http://www.w3c.org 9 W3C-rekommendationen av XML, http://www.w3.org/XML/ 10 Standard Generalized Markup Language

11

Page 28: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

12 KAPITEL 4. ÖVERSIKT AV ANVÄNDA TEKNOLOGIER

Genom att kombinera flera element och bygga upp en hierarki kan olika informa-tion representeras. En boksamling beskriven med XML ges som exempel:

<?xml version="1.0" encoding="iso-8859-1"?> <boksamling> <bok språk="engelska"> <titel>XSL Dictionary</titel> <författare>Sally Manello</författare> </bok> <bok språk="svenska"> <titel>XML genom exempel</titel> <författare>Benoit Marchal</författare> </bok> </boksamling>

I de följande avsnitten kommer det att refereras tillbaka till ovan exempel.

Deklaration

Den första raden i exemplet ovan är en XML-deklaration. Det är en rad som talar om vilken version av XML som används men kan också innehålla information om vilken kodning på tecken som används och externa filer. Raden är valfri.

Element

Fjärde raden i exemplet ovan anger att elementet som heter titel finns och att innehållet i det elementet är ”XSL Dictionary”. Elementet är själva grunden för XML-dokument och inleds med namnet inom vinkelparanteser, <titel>, och avslutas på samma sätt men med ledande snedstreck, </titel>. Ett element kan innehålla andra element. Ett exempel är elementet boksamling i exemplet ovan, som innehåller två element som heter bok. Bok innehåller i sin tur elementen titel och författare. Förutom andra element kan det innehålla text.

Attribut

Även attribut kan ingå i ett element. Ett attribut läggs till i starttaggen för ett ele-ment och har ett namn samt ett värde. I exemplet ovan har elementet bok ett at-tribut med namnet språk och som är satt till ”svenska” eller ”engelska”. Ett ele-ment kan inte ha flera attribut med samma namn och värdet på ett attribut måste anges inom enkla eller dubbla citationstecken.

Rotelement

Alla XML-dokument måste ha exakt ett rotelement. Alla andra element måste finnas inuti detta element. I exemplet ovan är elementet med namnet boksamling ett rotelement.

Page 29: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

KAPITEL 4. ÖVERSIKT AV ANVÄNDA TEKNOLOGIER 13

Nästlade element

Eftersom ett dokument endast får innehålla ett rotelement och alla andra element måste finnas inuti detta så måste det gå att nästla elementen. I exemplet ovan in-nehåller elementet bok de två elementen titel och författare. Element får aldrig överlappa varandra. Följande är ett exempel på felaktig kod eftersom h1, em och p överlappar varandra:

<h1>Här är en <em>Rubrik</h1> <p>Med</em> en paragraf</p>

Korrekt skrivet skulle det se ut så här:

<h1>Här är en <em>Rubrik</em></h1> <p><em>Med</em> en paragraf</p>

Tomma element

Om ett element inte har något innehåll förutom attribut kan elementet stängas i starttaggen. Detta skulle innebära att

<bok></bok>

kan skrivas som

<bok/> eller <bok />

vilket innebär det finns tre ekvivalenta skrivsätt.

Entiteter

Entiteter används i XML för att representera en bit data med ett annat namn och det finns fem fördefinierade entiteter. Dessa är:

• &amp; = ampersand, & • &lt; = mindre än, < • &gt; = större än, > • &apos; = apostrof, ’ • &quot; = citationstecken, ”

Andra entitetsreferenser ska deklareras och detta görs då i mallen för dokumentet.

Page 30: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

14 KAPITEL 4. ÖVERSIKT AV ANVÄNDA TEKNOLOGIER

4.1.2 Användningsområden

XML används för att strukturera och organisera information/data, till skillnad från HTML som används till att åskådliggöra och visa data. De olika datasystemen som ska skicka data mellan varandra kanske körs på olika plattformar och är im-plementerade i olika språk. Då behövs ett gemensamt format som är lätt att tolka. Genom att strukturera data på ett visst sätt och genom att definiera en mall för hur denna struktur ska se ut kan de olika systemen läsa in data på sitt eget sätt och behöver inte bry sig om hur de andra systemen läser eller skriver den data som ska utbytas. [XWSV]

Några exempel på strukturerad data som kan utbytas i form av XML är kalkylblad, adresslistor, databasinformation, konfigurationsparametrar och tekniska ritningar. [X10]

4.2 Stilmallar

4.2.1 XSL

XSL, eXtensible Stylesheet Language, är en standard inom XML-konceptet för presentation, filtrering och transformering av XML-dokument. Språket är en stil-mall med W3C8-rekommendation, vilket är en internationell standard. XSL an-vänder en XML-notation och beskriver hur filer kodade i XML ska presenteras eller transformeras (se XSLT). [XSLWE]

Med en XSL-fil går det att välja vad som ska presenteras från en XML-fil, och dessutom i vilken ordning det ska presenteras. Det finns många olika regler att använda och den intresserade läsaren hänvisas till referenslitteratur som [ASP] och [XML].

XSL Transformations (XSLT)

XSLT är en teknik som används när man omvandlar ett dokument till ett annat genom transformering. Till exempel ändrar ordningen på innehållet, lägger till information eller för att välja ut valda delar av grundelementet. Det skapas ett nytt XML-dokument av processen, som inte behöver följa samma stilmall som grund-elementet. XSLT är en applikation av XML och man använder XPath för att iden-tifiera de objekt som ska transformeras. [XSLT]

XML Path Language (XPath)

XML Path Language är en syntax för att identifiera det objekt som man vill göra något med, t.ex. hitta, hämta eller bearbeta. Objektet kan exempelvis vara ett ele-mentinnehåll eller attributvärde. Syntaxen används inom dokumentet och XPath används som en del i syntaxen för XSLT. [XPATH]

Page 31: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

KAPITEL 4. ÖVERSIKT AV ANVÄNDA TEKNOLOGIER 15

4.2.2 Cascading Style Sheets (CSS)

Cascading Style Sheets, som översatt till svenska blir stilmall, är ett språk som beskriver presentationsstilen för ett strukturerat dokument såsom HTML och XML. Till exempel kan typsnitt, textstorlek och färg ändras genom stilmallen och tekniken är ett sätt att göra många sidor enhetliga genom att applicera samma stilmall på alla. CSS är den vanligaste stilmallen att använda tillsammans med webbsidor (HTML).

Eftersom stilmallen oftast lagras i en separat fil så går det lätt att uppdatera utse-endet på alla sidor samtidigt. Det är vanligt att man skriver CSS när man menar CSS2, som är version 2.0 av CSS och som för övrigt är den senast utkomna ver-sionen. CSS är en W3C-rekommendation. [CSS]

4.3 Microsoft .NET 2.0 Framework

.NET uttalas ”dotnet” och är en uppsättning av datorprogram för sammankopp-ling av information, system och enheter som Microsoft utvecklat. I många fall baseras .NET på webbtjänster. .NET Framework är en standardiserad plattform för att köra .NET-program och är ur utvecklingssynpunkt språkoberoende. Allt som krävs är att programmeraren kan översätta koden till MSIL11. MSIL är byte-kod och JIT12-kompileras när programmet körs av .NET Framework. Detta för-utsätter alltså att användaren av .NET-program har detta ramverk installerat på sin dator.

För att göra språket plattformsoberoende finns flera standarder att utnyttja. Stan-darderna beskriver bland annat hur program ska kunna köras i flera miljöer utan att behöva skrivas om, vilka språk som kan användas för att skriva programmen och hur de görs språkoberoende. Det finns flera programmeringsspråk som stöds av .NET Framework, bl.a. C# och Visual Basic .NET.

I basbiblioteket som följer med i .NET Framework finns t.ex. användarinterface, anslutning till databas, kryptering, webbapplikationsutveckling och nätverkskom-munikation. Det som kom i version 2.0 var bl.a. Masterssida, som gör att alla sidor ser likadana ut, och nya webbkontroller. [NET]

4.4 Microsoft Excel

Excel är att kalkylbladsprogram skrivet och distribuerat av Microsoft. Till pro-grammets egenskaperna hör beräkning, diagramverktyg, pivåtabeller och makro-programmering i VBA (Visual Basic for Applications). Excel tillåter användaren att ändra utseendet på kalkylbladet som t.ex. typsnitt, teckenattribut och cellutse-ende. Tillsammans med makroprogrammering är Excel ett oslagbart verktyg att använda vid bl.a. beräkningar och diagramritning. I den senaste versionen av Ex-

11 Microsoft Intermediate Language 12 Just In Time

Page 32: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

16 KAPITEL 4. ÖVERSIKT AV ANVÄNDA TEKNOLOGIER

cel, version 2007, används Office Open XML. Detta är en sorts XML-format som Microsoft har utarbetat där hela dokumentet inklusive makrot går att spara ner som XML. I Excel version XP, som introducerade funktionen att kunna spara ner dokumentet till en XML-fil, finns inte möjligheten att spara ner makrot i samma fil. [EXL]

4.5 Webbtjänster

Definitionen fritt översatt:

En webbtjänst är ett mjukvarusystem som är designat att ge stöd för maskin-till-maskin interaktion över ett nätverk. Det har ett gränssnitt som är beskrivet i ett maskinprocessor format (särskilt WSDL13). Andra system interagerar med webbtjänsten genom föreskrivna beskrivningar genom användande av SOAP14-meddelanden, normalt skickat via HTTP15 med en XML-omvandling i kombination med andra webbrelaterade standarder. [WSG]

Funktionaliteten i en webbtjänst [WSW]:

• Webbtjänstens funktionalitet är publikt beskriven i en WSDL-fil. • Webbtjänster kommunicerar med andra applikationer genom XML-

meddelanden, särskilt i SOAP-format. • Webbtjänster använder generellt ett standardiserat nätverksprotokoll, så-

som HTTP. • De flesta webbtjänster använder en serviceorienterad arkitektur (SOA16).

HyperText Transfer Protocol (HTTP)

HTTP är det kommunikationsprotokoll som används för att överföra webbsidor på Internet. Senaste versionen av HTTP är 1.2. [HTTP]

Simple Object Access Protocol (SOAP)

SOAP är ett protokoll för att utbyta XML-baserade meddelanden över datornät-verk, primärt med de underliggande protokollen HTTP och HTTPS17. [WSW]

13 Web Service Description Language 14 Simple Object Access Protocol 15 HyperText Transfer Protocol 16 Service-Oriented Architecture 17 HyperText Transfer Protocol over Secure socket layer

Page 33: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

KAPITEL 4. ÖVERSIKT AV ANVÄNDA TEKNOLOGIER 17

Web Service Description Language (WSDL)

WSDL är ett XML-format som tillåter servicegränssnitt att bli beskrivna tillsam-mans med detaljer om deras bindningar till specifika protokoll. Används i normala fall för att generera server- och klientkod samt för konfiguration. WSDL används oftast i kombination med SOAP och XML schema för att leverera webbtjänster över Internet. [WSW]

4.6 Integrerad Windows autenticering

Integrerad Windows autenticering används för att reducera antalet inloggningar som krävs för att komma åt en webbsida i t.ex. ett Windows nätverk. Det kallas för single sign on (egen översättning: engångsinloggning) och är en funktion som stöds av Microsoft Internet Information Server. Det gör det möjligt för webbläsa-ren att automatiskt logga in på en webbsida med hjälp av informationen om den användare som är inloggad på den aktuella datorn. [IWA]

Page 34: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per
Page 35: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

5 Genomförande Eftersom specifikationen från början var väldigt vag, så gjordes en förstudie. En förstudie görs för att ta reda på vad som efterfrågas, om det finns några särskilda önskemål, hur det ska göras etc.

5.1 Metoder och möjligheter

Den koppling/relation mellan signaler och enheter som efterfrågas finns för när-varande inte integrerad i databasen utan är något som kanske behöver läggas till för att man ska kunna filtrera på denna egenskap. Dock är det sagt att ändringar på strukturen i databasen inte är populära varför andra möjligheter bör vägas in först.

Det finns möjligheter att spara hela databasen som en XML-fil för att på så vis kunna filtrera fram informationen.

I en snar framtid kommer det vara möjligt att exportera den framsökta informa-tionen i SCDR till en Excel-fil18 för vidare behandling med t.ex. makron och Vi-sual Basic skript.

5.1.1 Förstudie

En förstudie behöver göras för att få fram vad som efterfrågas. Den kan delas in i två delar, där den ena delen svarar på vad som ska visas grafiskt ifrån databasin-formationen och vilka filtermöjligheter som ska finnas. Den delen besvaras ge-nom att intervjua användare av SCDR-applikationen.

Den andra delen svarar på vilka möjliga sätt det går att plocka sökt information från databasen och vilket av sätten som är det lämpligaste i det här fallet. Exem-pelvis direkt från databasen, via XML-fil eller utkopierat till Excel-format. Svaret på den delen kommer genom diskussion med IT-avdelningen.

5.2 Uppstart

När projektet börjat komma igång bestämdes det snabbt att det skulle göras en webbapplikation och att den skulle göras i .NET 2.0. Beslutet gjordes för att det enkelt skulle gå att bygga på den befintliga SCDR-applikationen. Dock ändrades tillägget ganska snabbt från att vara en påbyggnad till att vara en helt fristående webbapplikation. Ändringen gjordes för att utvecklandet av den nya webbapplika-tionen inte skulle störa användandet av den befintliga SCDR-applikationen.

18 Funktionen är under utveckling av BAE Systems Hägglunds IT-avdelning och testas under rapportens skrivande på en testserver.

19

Page 36: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

20 KAPITEL 5. GENOMFÖRANDE

Det var inte heller klart om allt det nya skulle implementeras för användande in-nan en riktig utvärdering gjorts. Men för att senare enkelt kunna migrera de två applikationerna byggdes den nya kring en Mastersida19.

Webbapplikationen medför:

• enkelhet – Inget behöver installeras lokalt på datorerna och inget hämtas lokalt (allt hämtas från en central server).

• portabel/integrerbar – Går att lägga in i befintlig SCDR-applikation.

• tillgänglig – Alla som kommer åt SCDR kommer åt applikationen. Det be-hövs endast intranet för att köra.

• uppgraderbar – Endast en kopia behöver uppdateras, den på servern.

• snabb access – Eftersom applikationen görs för att spara tid så är det viktigt att den är optimerad med korta åtkomsttider.

5.2.1 Begränsningar

Delen med filtrering på funktion, elektronikenhet etc. som uttrycks i ursprungliga målet utföres ej. Begränsningen för att den kräver ändring/tillägg i databasen och tiden inte kommer att räcka till för en undersökning av hur det påverkar befintliga applikationer m.m. kopplade till denna databas samt implementationen av detta i och mot databasen.

5.3 Förstudie

I det här fallet gjordes en förstudie för att få fram vilka önskemål användarna av systemet har. Det som också undersöktes i förstudien var vilken anslutningsform till databasen som var den bästa. De följande två avsnitten svarar på vad som öns-kades respektive hur anslutningen skulle göras.

5.3.1 Vad som önskades

För att få fram vad som önskades ställdes en fråga till användare av SCDR. Frågan var vad som önskades och skickades via mail till tio anställda där sju svarade med önskemål.

Frågan som ställdes var:

• Vad skulle du önska att ”se” som just nu är svårt att få överblick över? (T.ex. hur signaler sammanlänkas, se bild)

19 Se förklaring till Mastersida i avsnitt 6.7 på sidan 37.

Page 37: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

KAPITEL 5. GENOMFÖRANDE 21

Figur 5.1 Bild till förstudiefråga.

Det framkom många svar och det som var gemensamt för många av svaren är de som följer.

Signaler i datapaket

En svårighet är att få en uppfattning av hur ett datapaket (frame) är sammansatt av signaler. I ett datapaket om 64 bitar skickas ett flertal signaler i olika storlekar. Ett datapaket ska packas optimalt utan att några signaler skriver över varandra eller bitar lämnas tomma. Tabellen som används kan ses i tabell 5:1 nedan.

Byte Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 0 63 62 61 60 59 58 57 56 1 55 54 53 52 51 50 49 48 2 47 46 45 44 43 42 41 40 3 39 38 37 36 35 34 33 32 4 31 30 29 28 27 26 25 24 5 23 22 21 20 19 18 17 16 6 15 14 13 12 11 10 9 8 7 7 6 5 4 3 2 1 0

Tabell 5:1 Ett 64-bitars datapaket (frame).

Karta över kopplingar

Något som också önskades var att få upp en karta över alla kopplingar i databa-sen. De trivialaste kopplingarna var mellan noder, bussar, signaler och datapaket. Ett exempel ses i Figur 5.2. Det som skulle vara bra att få presenterat på samma sida är vilket datapaket en signal ingår i, signalen själv och vilken nod som skapat signalen. Just nu måste man klicka sig fram i flera steg för att få fram denna in-formation.

Page 38: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

22 KAPITEL 5. GENOMFÖRANDE

Datapaket med signaler

Nod Nod

Datapaket med signaler

Nod

Figur 5.2 Karta över önskade kopplingar, en tänkt karta.

5.3.2 Hur det skulle göras

Valet föll för att använda XML som databas då det inte går att få ut den efterfrå-gade informationen på ett lätt sätt annars. I SCDR-applikationen är det komplexa SQL-frågor20 som genererar fram informationen till de sidor som visas. Dessutom blir applikationen oberoende av om SCDR byter plattform för databasen då XML är ett standardiserat format som alltid går att generera fram och använda.

Det går enkelt att generera en färsk XML av den databas man är intresserad av genom en länk på SCDR-applikationens webbsida. För projektet finns det färdiga webbtjänster att använda för att enkelt generera denna XML-fil.

5.4 Projektet

Applikationen använder en XML-fil av databasen för att presentera den informa-tion som efterfrågats. En del av informationen exporteras till en Excel-mall med makron för att visa hur signalerna i ett datapaket är placerade. Användandet av en XML-fil gör applikationen fristående från databasstrukturen, dvs. det spelar ingen roll vilken typ av databasplattform som används (t.ex. MySQL, MS-SQL), de allra flesta kan göras om till en XML-fil. Databasen kan med andra ord byta plattform utan att applikationen påverkas eftersom en XML-fil, som följer en världsstan-dard, används.

Den senaste informationen i databasen kan, genom genererande av en ny XML-fil, sparas ned i applikationen som en XML-fil på ett enkelt sätt. På en webbsida kan man välja en av de produkter som användaren har behörighet att se och gene-rera en XML-fil av denna. De behörigheter som används i applikationen är de-samma som de som används i SCDR-applikationen. 20 Frågor som ställs till databasen, skrivna i SQL så att databasen förstår dem.

Page 39: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

KAPITEL 5. GENOMFÖRANDE 23

Excel-mallen innehåller makron som gör det möjligt att visa hur ett datapaket (frame) är uppbyggt (visar upptagna och lediga positioner) genom att importera värden på signaler från databasen.

Page 40: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per
Page 41: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

6 Implementation Här kommer en beskrivning av hur webbapplikationen och det som byggts i pro-jektet att presenteras utförligt. Kapitlet börjar med att presentera de använda verk-tygen för att fortsätta med de delar som implementerats. Det är många delar som måste samverka för att webbapplikationen ska fungera fullt ut. I slutet av kapitlet beskrivs hur Excel kopplades ihop med webbapplikationen.

6.1 Verktyg

Vid byggandet av webbapplikationen användes en hel del olika tekniker och verk-tyg. De främst använda är XML/XSL, Microsoft Visual Studio .NET 2005 och Microsoft Excel XP. Till fillagring användes versionshanteringsprogrammet Star-Team och till rapportskrivandet Microsoft Word XP.

Valet av Visual Basic som programmeringsspråk var tvåfaldigt. Dels var det för att makron i Excel skrivs i det språket, dels för att det var ett annat språk att använda än de som använts i universitetsvärlden och därför skulle fungera som utvecklan-de inom ett nytt programspråk.

6.2 Signaler i datapaket

Alla signaler packas i ett datapaket där datapaketet21 är 64 bitar stort. En signal kan vara i storlekar från en bit och uppåt. Det gör att man måste försöka packa datapaketet optimalt oavsett signalens storlek, men utan att signalerna överlappar varandra. Tidigare gjordes denna granskning manuellt22 genom uppritande på ett papper men från och med denna applikations införande kommer det bli enklare och säkrare att kontrollera datapaketens innehåll.

Excel-mall med makro

Det insågs snabbt att för att göra en tabell som visar upptagna respektive lediga positioner (se Tabell 5:1 i avsnitt 5.3.1), så behövdes något kraftfullare än det som finns i .NET som standard. Excel med makron uppfyller just de krav som behövs för att bestämma de olika positionerna i ett datapaket där givna data på signaler är storlek, offset och typ av format23.

För att förstå komplexiteten bakom beräkningarna och varför Excel behövde an-vändas kommer här de två format på signaler som finns, Intel och Motorola, att presenteras närmare. 21 I applikationen benämnd som frame. 22 Se tabellen som används; i avsnitt 5.3.1. Tabell 5:123 Intel- eller Motorola-format, se förklaring i avsnitt 6.2.1.

25

Page 42: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

26 KAPITEL 6. IMPLEMENTATION

6.2.1 Intel- eller Motorola-format [SCDR]

Hur signalen placeras i datapaketet beror på om den är på Intel-format eller på Motorola-format. De signaler som används i detta projekt är SIL, PDO och J1939. De två första kan hantera båda formaten medan J1939 endast hanterar Intel-formatet. En byte är åtta bitar stor. Som ses i Tabell 6:1 nedan så är det åtta rader, dvs. åtta byte (byte 0-7). En bit är en cell i tabellen, dvs. det finns 64 bitar i datapaketet (bit 0-63).

Motorola-format

På Motorola-format skickas signalens mest signifikanta byte (MSB24) först, så kal-lad rak byteordning (eng. big endian). Dvs. en signal som består av 24 bitar kom-mer att skickas med byten rymmande d23-d16 först, sedan d15-d8 och slutligen d7-d0.

Intel-format

På Intel-format skickas signalens minst signifikanta byte (LSB25) först, så kallad omvänd byteordning (eng. little endian). Dvs. om en signal består av fler än en byte, t.ex. tre, så kommer byten med databitar d7-d0 skickas först, sedan d15-d8 och slutligen d23-d16. För de signaler med storlek åtta bitar och uppåt måste lägsta biten placeras i bit 0.

Beräkning av offset

Signalens storlek kommer inte att påverkas oavsett om den skickas på Intel- eller Motorola-format. En signal som är 1-8 bitar stor får inte spänna över två byte liksom en signal som är 9-16 bitar inte får spänna över tre byte. Några förtyd-ligande exempel följer.

Byte Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 0 63 62 61 60 59 58 57 56 1 55 54 53 52 51 50 49 48

Ex. 1

2 47 46 45 44 43 42 41 40 3 39 38 37 36 35 34 33 32

Ex. 2

4 31 30 29 28 27 26 25 24 5 23 22 21 20 19 18 17 16

Ex. 3

6 15 14 13 12 11 10 9 8 7 7 6 5 4 3 2 1 0

Tabell 6:1 Beräkning av offset. 3 exempel presenteras.

24 Most Significant Byte 25 Least Significant Byte

Page 43: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

KAPITEL 6. IMPLEMENTATION 27

Exempel 1: En signal om 12 bitar på Motorola-format. Om man väljer att lägga signalen på de två första byten (byte 0 och 1) i datapaketet så kommer d63-d52 i datapaketet att ockuperas av signalen (markerad i Tabell 6:1). I SCDR blir signalens offset 63 och storleken 12.

Exempel 2: En signal på Intel-format som består av 16 databitar har storleken 16 i SCDR. Väljer man att placera signalen i byte 2 och 3, så kommer d47-d32 i datapaketet att ockuperas av signalen (markerad i Tabell 6:1). Korrekt offset i SCDR är 47.

Exempel 3: En signal på Intel-format bestående av 12 databitar. Väljer man att placera signa-len i byte 4 och 5, så kommer de ockuperade bitarna i datapaketet att vara d31-d24 och d19-d16 (markerad i Tabell 6:1). I SCDR blir offset 31 och storleken 12.

6.2.2 Tekniken bakom Excel-mallen

Varför mall?

Idén till användande av mall föddes när det stod klart att det skulle kopieras vär-den från SCDR-applikationen till ett Excel-dokument. För att slippa riskera att ett dokument sparas över användes en förpreparerad mall. Den kan inte sparas över eftersom det är just en mall. Dvs. det öppnas ett nytt osparat dokument med mal-len, och därmed funktionaliteten, som grund.

Bladen i mallen

I den mall som gjorts så finns det två blad som an-vänds: test och count (se Figur 6.1). I bladet test im-porteras det värden på de signaler som hör till det datapaket som ska granskas (se Figur 6.2). I bladet finns även den tabell av datapaketet som används för att visa vilka positioner som är lediga, upptagna samt har kollisioner. Bladet count används som en hjälp i den beräkning som görs för att fylla tabellen av datapaketet på bladet test (se Figur 6.3). Count-bladet an-vänds också till att visa för användaren vilka positioner som det finns kollisioner på (se mer om det i nästa kapitel i avsnittet 7.1.2).

Figur 6.1 Bladen i Excel-mallen.

test count

Page 44: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

28 KAPITEL 6. IMPLEMENTATION

Automatisk beräkning

I Excel går det att göra komplexa formler som automatiskt beräknas om så fort ett värde den beror av ändras. Det gör det kraftfullt, men ändå enkelt att använda. Här har många formler använts och dessa beräknas om automatiskt. De funktio-ner som används finns definierade som egna funktioner, se nästa avsnitt.

T.ex. används formler för att beräkna antalet av samma nummer som existerar i count-bladet och sätts in i tabellen av datapaketet (se Figur 6.2). Den beräkning som används där är dold för användaren och utför operationen antalet av den siffra som efterfrågas med genomsökning av bladet count efter denna. Exempelvis söks bit 21 för att se om den biten finns i en signal, om den är ledig eller om det existerar en kol-lision på den. Beräkningen används för att färglägga tabellen med rött respektive grönt, se villkorsstyrd formatering av celler.

Tabell av datapaketet innehållande bitar 63-0. inkopierade

värden test

knappar för att köra makron

Figur 6.2 Excel-mallen med bladet test synligt.

Definiera namn på funktioner

I Excel går det att definiera namn på egna funktioner, så att man kan återanvända dem samt för att göra det enklare att skriva långa funktioner utan att det blir onö-diga skrivfel. Här har ett flertal funktioner definierats och återanvänts. Dessa pre-senteras nedan.

I varje cell görs en kontroll om signalen är på Intel-format eller om den är på Mo-torola-format. Om den är på Intel-format används Intel-format-formeln, om inte används Motorola.

För att klara av hanteringen av signaler som sträcker sig över flera byte (rader), så används ett kontrollvärde som återfinns på första raden i Tabell 6:2. För varje byte ökar värdet med åtta, där första byten är noll. Fylls alla åtta byten av en signal är det högsta kontrollvärdet 56. Antalet bitar i signalen speglas mot rad två i Tabell

Page 45: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

KAPITEL 6. IMPLEMENTATION 29

6:2, där signalvärdena fylls på från vänster och varje signal har en egen rad. Tredje raden i tabellen motsvarar följaktligen en signal av stor-lek 12 (bitar 63-52).

Figur 6.3 Excel-mallen med bladet count synligt.

I de följande formeldefini-tionerna kommer exempel att baseras på signalen med off-setvärdet 63, storleken 12 och på Motorola-format. Varje cell som finns i fältet, som är 64 kolumner brett och 64 rader högt (se Figur 6.3), beräknas var för sig. Kontrollvärde och position är de värden som står på rad ett resp. rad två i tabellen. När de refereras ska de komma från samma kolumn som cellen som ska beräknas. Ex. cell A3 ska beräknas och har då cell A1 som kontroll-värde och cell A2 som positio

nsvärde.

A B C D E F G H I J K L M N O P Q R 1 0 0 0 0 0 0 0 0 8 8 8 8 8 8 8 8 16 16 2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 3 63 62 61 60 59 58 57 56 55 54 53 52 4 51 50 49 5 48 6 47 46 45 44 43 42 41 40 39 38 37 36 7 35 34 33 32 8 31 30 29 28 2 2 2 2 2 22 21 20 19 18 7 6 5 4 3 9 17 10 16 11 15 1 13 12 11 10 4 9 8 7 6 5 4 3 2 12 1 0 13

Tab l 6 Fi r 6.3 där bladet count s s d si

el :2 Uppskalad tabell av gu yn me tio g-naler (rad 3-12). Siffrorna i tabellen refererar till tabellen av datapaketet i Figur 6.2. Radnumrering med siffror längst till vänster och kolumnnumre-ring med bokstäver högst upp.

count

64 celler brett

64 rader högt

Page 46: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

30 KAPITEL 6. IMPLEMENTATION

Om Motorola-format Är värdet på Motorola-format görs en kontroll om offsetvärdet minus storleken är mindre än offsetvärdet minus positionen för biten i signalen. Är så fallet skrivs värdet av beräkningen Offset minus positionen ut, annars lämnas cellen tom. För värden, se Tabell 6:2. Formeln är:

⎩⎨⎧

⇒−⇒

=−<−värdeingetfalskt

positionOffsetsantpositionOffsetstorlekOffsetOm ))()((

Exempel cell A3:

63063063

))063()1263((

02

=−=⇒⎩⎨⎧

⇒−⇒

=−<−

==

santvärdeingetfalskt

santOm

AcellPosition

Exempel cell I3:

⎩⎨⎧

=−=⇒⇒

−⇒=−<−

==

55863863

))863()1263((

82

santvärdeingetfalskt

santOm

IcellPosition

A B C D E F G H I J K L M N O P Q R 1 0 0 0 0 0 0 0 0 8 8 8 8 8 8 8 8 16 16 2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 3 63 62 61 60 59 58 57 56 51 50 49 48 4 55 54 53 5 52

Tabell 6:3 Tabellen visar signaler på Intel-formatet.

Om Intel-format Om värdet är på Intel-format så görs en kontroll om offsetvärdet minus kontrollvärdet i samma kolumn minus inverterat värde är större än eller lika med noll. Är så fallet skrivs värdet av beräkningen ut, annars lämnas cellen tom. Exemplen baseras på signalen i rad 3 i Tabell 6:3. Se tabellen för referens till värden, där signalen har offset 63, storleken 12 och är på Intel-format. Formeln är:

⎩⎨⎧

⇒−−⇒

=

=≥−−

värdeingetfalsktInverteratrdekontrollväOffsetsant

InverteratrdekontrollväOffsetOm"")0)""((

Page 47: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

KAPITEL 6. IMPLEMENTATION 31

Exempel cell A3:

6300630063

)0)0063((

01

=−−=⇒⎩⎨⎧

⇒−−⇒

=≥−−

==

santvärdeingetfalskt

santOm

AcellrdeKontrollvä

Exempel cell I3:

5148634863

)0)4863((

81

=−−=⇒⎩⎨⎧

⇒−−⇒

=≥−−

==

santvärdeingetfalskt

santOm

IcellrdeKontrollvä

Vilket stämmer om signalen är på Intel-format.

Invertera Invertering används om en signal är på Intel-format. Som ses i exempel 3 i före-gående avsnitt så hamnar de första fyra bitarna längst till höger istället för att som i Motorola-formatet fylla på från vänster. Formeln som ses nedan använder sig av hjälpformlerna Noll till åtta och Över åtta. Positionen och kontrollvärdet som an-vänds refererar till cellerna på rad ett och två i samma kolumn som den beräknade cellen.

⎩⎨⎧

−⇒⇒

=rdekontrollväPositionfalskt

åttaÖversantåttatillNollOm

"")"("

Noll till åtta Formeln ger ett värde, sant eller falskt, beroende på hur kriteriet uppfylls.

))8(0())(8( positionstorlekOCHrdekontrollvästorlek +−<−>

Över åtta

⎩⎨⎧

⇒+−⇒

=+−>63

)8))8(8(

falsktpositionStorleksant

positionStorlekOm

Villkorsstyrd formatering av celler

För att t.ex. sköta automatisk färgläggning av celler, ifyllnad av ord och siffror kan man använda villkorsstyrd formatering. Villkoret kan anta olika kriterier av logiska samband, där oftast cellen ingår i sambandet.

I det här fallet användes den till att kolla vilken siffra som står i cellen (tabellen av datapaketet) och färglägga den utifrån det. En siffra större än ett gör cellen röd och en siffra lägre än ett gör cellen grön.

Page 48: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

32 KAPITEL 6. IMPLEMENTATION

Makro

Ett makro i Excel utför Visual Basic kod och kan i praktiken utföra exakt det som en användare normalt gör, fast det blir en förprogrammerad slinga, och dessutom upprepa det ett otal gånger. Det kan t.ex. handla om att skriva in värden i en ta-bell, att skapa diagram eller skapa och färglägga figurer. Hjälp har fåtts ur boken VBA-programmering för Office 2000 [VBA].

Makrot som skapades i denna Excel-mall går igenom bladet count för att hitta åt matchande värden till den tabell av datapaketet som presenteras på bladet test. I tabellen av datapaketet finns alla värden från 63-0 representerade. När makrot har hittat det matchande värdet i count-bladet så kopieras bakgrundsfärgen till rätt plats i tabellen av datapaketet. Finns inte värdet så händer ingenting. Se bladen test och count i Figur 6.2 respektive Figur 6.3.

Makrot har en uppgift till, och det är att sätta villkorsstyrd formatering på tabellen av datapaketet. Värden större än 1 ska ha färgen röd, värden mindre än 1 färgen grön och de övriga ingen färg alls (läs: vit). Det gör att värden lika med ett behåller den bakgrundsfärg som först gjordes (se föregående stycke).

Ett annat makro rensar tabellen av datapaketet från färger och villkorsstyrd for-matering. Makrona går enkelt att komma åt genom klickbara knappar i kalkylbla-det (se Figur 6.2).

Optimering av makro I det första skedet tog det tiotals sekunder att köra makrot. Det beror på att fältet, för varje värde, söks igenom horisontellt och för varje cell görs en matchning. Den sökningen görs i fältet som är 64 celler brett och lika många celler högt, dvs. 4 096 celler att söka igenom för varje värde. För att effektivisera matchningen så söks fältet vertikalt istället, vilket gör att det går fortare att hitta rätt cellvärden.

Ännu en optimering som gjordes var att endast söka i de celler som innehåller ett värde dvs. icke-tomma celler. Genom denna optimering blir det mindre än 100 celler att söka igenom och matcha för varje värde.

6.3 Kartor över signaler och noder

Det var svårt att ta fram ett förslag på den sida som ska visa en karta över databa-sen eftersom det inte finns några direkta kopplingar till vissa element. I många fall måste sökningen göras bakvänt för att få fram den information om kopplingar man vill ha. De kopplingar som finns är som oftast enkelriktade, exempelvis så vet en signal vilken nod som skapar den men inte tvärtom. Så om en nod vill veta alla signaler den har skapat så måste alla signaler sökas igenom för att se om det är någon/några som innehåller en koppling till noden ifråga.

Alla dessa sökningar i XML-filen görs genom skrivna XSL-filer (stilmallar) som sållar fram den information som efterfrågas. Hur dessa stilmallar skrivs förklaras i nästa avsnitt. Det intressanta med sökningen är att det går mycket fort att genom-

Page 49: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

KAPITEL 6. IMPLEMENTATION 33

söka XML-filen på tiotusentals rader även om det är flera kriterier som ska upp-fyllas i sökningen.

6.4 Plocka information ur XML-filen

Det finns flera sätt att plocka information ur en XML-fil. Det sätt som används i detta pro-jekt kommer att beskrivas här.

I figuren här bredvid syns den tabell som är fylld med information från nedan XSL-fil. Alla XSL-filer har en del gemensamt, som står i dem alla. Det är rad 1-13 och rad 36, se Tabell 6:4 nedan. Det är deklarationer som behöver finnas i filen för att den ska vara kor-rekt. Det som står på raderna däremellan, se Tabell 6:5, är det som gör att varje XSL-fil utför det man vill genom att bl.a. kom-binera olika regler för vad man vill hämta ur XML-filen.

Figur 6.4 Den aktuella XML-filen i systemet.

1 <?xml version="1.0"?> 2 <xsl:stylesheet 3 version="1.0" 4 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 5 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 6 xmlns:xsd="http://www.w3.org/2001/XMLSchema" 7 xmlns:msxsl="urn:schemas-microsoft-com:xslt" 8 > 9 <xsl:strip-space elements="*"/> 10 <xsl:output method="xml" 11 omit-xml-declaration="yes" 12 indent="yes" 13 standalone="yes" /> . . . 36 </xsl:stylesheet>

Tabell 6:4 Början och slutet av den XSL-fil som används för att informera om vilken XML-fil som för tillfället finns i webbapplikationen. Längst till vänster står det radnummer som endast används som referens i texten och inte ska vara med i filen. I denna tabell visas rad 1-13 samt 36.

Page 50: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

34 KAPITEL 6. IMPLEMENTATION

. . 14 <xsl:template match="/"> 15 <xsl:element name="Products"> 16 <xsl:for-each select="FDB"> 17 <xsl:element name="Product"> 18 <xsl:for-each select="Product"> 19 <xsl:attribute name="ProductName"> 20 <xsl:value-of select="@ProductName"/> 21 </xsl:attribute> 22 <xsl:attribute name="VariantName"> 23 <xsl:value-of select="Variant/@VariantName"/> 24 </xsl:attribute> 25 <xsl:attribute name="ReleaseName"> 26 <xsl:value-of select="Variant/Release/ReleaseName"/> 27 </xsl:attribute> 28 <xsl:attribute name="Language"> 29 <xsl:value-of select="Variant/Release/Language"/> 30 </xsl:attribute> 31 </xsl:for-each> 32 </xsl:element> 33 </xsl:for-each> 34 </xsl:element> 35 </xsl:template> . .

Tabell 6:5 Resten av XML-filen. Radnummer, som inte ska vara med i XSL-filen, syns till vänster. Här raderna 14-35.

För att förklara vad som plockas ur den befintliga XML-filen och vad som sparas som en virtuell XML-fil så har ett kort XML-dokument skapats som agerar som den befintliga filen, men med mycket mindre information (se Tabell 6:6). Med virtuell menas att den endast finns i minnet på servern och när applikationen an-ropas nästa gång så är den borttagen.

Fortsätter man att titta i Tabell 6:5 så ses t.ex. på rad 14 den matchning mot roten som görs. De rader som innehåller xsl:element och xsl:attribute används för att skapa element respektive attribut i det virtuella dokumentet. I den befintliga XML-filen matchas följande fram:

• Attributet ProductName – ”En liten XML”

• Attributet VariantName – ”Ett exempeldokument”

• Elementet ReleaseName – ”0.0”

• Elementet Language – ”None”

Vilka skapas som attribut till elementet Product i roten Products i den virtuella XML-filen (se Tabell 6:7).

Page 51: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

KAPITEL 6. IMPLEMENTATION 35

<?xml version="1.0" encoding="ISO-8859-1"?> <FDB Version="2.1"> <Product ProductName="En liten XML"> <Descr>Tom XML</Descr> <Variant VariantName="Ett exempeldokument"> <Descr></Descr> <Release> <ReleaseName>0.0</ReleaseName> <Language>None</Language> </Release> </Variant> </Product> </FDB>

Tabell 6:6 Ett kort XML-dokument för att förklara XSL. Innan XSL-matchningen.

<Products> <Product ProductName="En liten XML" VariantName="Ett exempeldokument" ReleaseName="0.0" Language="None" /> </Products>

Tabell 6:7 Det virtuella resultatet av en körning med dokumentet i Tabell 6:6 som befintlig XML-fil. Efter XSL-matchningen.

För mer genomgående om hur XML och XSL fungerar kan läsaren gå till refe-renslitteratur, t.ex. Thangarathinam [ASP] och Marchal [XML] som har används i detta projekt.

6.5 Struktur i databasen

Inga förändringar av databasstrukturen har behövts göras för att ta fram den in-formation som presenteras i applikationen. En test har gjorts för att säkerställa att applikationen klarar av en förändring av strukturen i databasen. Testet gjordes med en nyare databas med en utökad struktur jämfört med den som användes vid utvecklingen av applikationen. Applikationen klarade av det utan att det uppstod några problem.

Page 52: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

36 KAPITEL 6. IMPLEMENTATION

6.6 Generera XML-fil

Att läsa och använda information i filer handlar mycket om att filerna är korrekta. Speciellt viktigt är det när det handlar om databasinformation. XML-filer har ett öppet och läsbart format som är enkelt att skriva och ändra, vilket gör att det är än viktigare att kontrollera att informationen med taggar etc. är korrekt skriven. För att garantera att XML-filerna som används i applikationen är kor-rekta så används ingen uppladdningsfunktion utan användaren får generera en egen fil utifrån sin be-hörighet26 och den sparas i applikationen. Använ-daren ser den alltså inte fysiskt på sin dator och kan på så sätt inte råka förvanska den information som den innehåller.

Till generera-sidan som finns i applikationen an-vänds färdiga webbtjänster för att hämta den nöd-vändiga informationen från databasen och även för att slutligen generera den XML-fil som önskas.

Det finns två sorters referenser (se Figur 6.5) till webbtjänsterna där den ena kontrollerar vilken behörighet som användaren har och svarar med vilka produkter som användaren har tillgång till. Den andra referensen används till webbtjänsterna: generera produktlista, generera fram vilka språk som finns till produkten samt generera XML-filen. Fördelen med att använda webbreferenser kopplade i Solution Explorer (se Figur 6.5) är att det är enkelt att byta ut dem till samma webbtjänster som ligger på en annan server utan att behöva ändra någonting i koden mer än sökvägen. Referensnamnet är detsamma.

Figur 6.5 Figuren visar Solution Explorer i VS.NET där filer och referenser finns. Inring-at de webbreferenser till webbtjänster som finns.

Figur 6.6 Generera en ny XML-fil.

Produktlistan genereras fram och kontrolleras mot de som användaren har rätt att se. Pro-dukterna fylls i en droppnedlista, som använ-daren kan välja ur (se Figur 6.6). När en pro-dukt valts går det att välja vilken variant man vill ha. Slutligen, när variant har valts, går det att välja release och språk. När produkt, variant, release och språk har valts, går det att klicka på knappen Generera för att starta skapandet av XML-filen.

26 De behörigheter som används i applikationen är desamma som används i SCDR-applikationen. Med andra ord, har användaren behörighet att granska en produkt i SCDR-applikationen så har användaren behörighet att generera en XML-fil av den produkten i denna applikation.

Page 53: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

KAPITEL 6. IMPLEMENTATION 37

6.7 Mastersida

En mastersida är en sida där det går att länka in både fasta och dynamiska delar. Fördelen med en mastersida är att alla sidor kommer att se likadana ut i strukturen och därigenom gå snabbare att ladda då det är mycket information på sidan som är samma hela tiden. En annan fördel är att det enkelt går att flytta innehållet till en annan mastersida utan att förstöra strukturen på denna. Det som ska vara dy-namiskt läggs i en platshållare, som bestämmer utrymmet där innehållet ska ligga. Exakt hur det går till går att läsa mer om i andra kapitlet, Thangarathinams bok [ASP].

Det är en av de anledningarna som en mastersida har används i detta projekt, för att det enkelt ska gå att flytta innehållet till den befintliga SCDR-applikationen. Men också för att kunna använda, utveckla och testa webbapplikationen i realtid utan att blanda in en applikation, som används konstant och därför inte kan ligga nere i tid och otid. Vilka delar som mastersidan till detta projekt har ses i Figur 6.7.

RUBRIK

SIDHUVUD med menylänkar

Figur 6.7 En Mastersidas uppbyggnad med både fasta och dyna-miska delar. Mastersidan är den yttre ramen och delarna rubrik, sidhuvud och sidfot är fasta medan delen innehåll är dynamisk och byts ut genom att klicka på länkar i sidhuvudet.

6.8 Generell konfigurering

All den konfiguration som är nödvändig att ändra såsom sökvägar och webb-adresser kan ändras enkelt i filen web.config, som finns i roten till projektet. Förde-len med att ändra i endast den filen är att projektet inte behöver kompileras om utan det räcker med att ladda om sidan så finns ändringarna där. En annan fördel är att alla ändringar som behöver göras finns samlade på samma ställe och i sam-ma fil dvs. mindre att hålla reda på vid exempelvis en flytt av applikationen.

Utbytbart

INNEHÅLL

SIDFOT med copyright

Page 54: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

38 KAPITEL 6. IMPLEMENTATION

6.9 Excel-mallen i webbapplikationen

Det finns två sätt att skicka datainformation till Excel. Det lättaste är att skicka informationen som en HTML27-ström där det talas om att det är Excel som ska öppnas och att HTML-tecken ska presenteras.

Det andra sättet öppnar en fil, som finns sparad på webbservern, i Excel. Så långt är allt lätt. För att det ska bli användbart så behövs det data som finns i webbap-plikationen kunna sparas ned i den filen utan att spara över celler med formatering eller formler. Det görs genom att öppna filen, lägga till det data som finns i tabel-len (i webbapplikationen) och spara filen som ett filnamn där bl.a. användarens användarnamn ingår. Sen öppnas filen för att presenteras för användaren.

I webbapplikationen utnyttjas båda sätten, men med olika knappar, för att låta användaren själv få välja. För att slippa riskera att filnamnet brukas av andra an-vändare så innehåller det användarens användarnamn. Den fil som öppnas för att spara ned data från webbapplikationen är den Excel-mall som beskrivits tidigare i detta kapitel (se avsnitt 6.2).

Vertygssatsen som används för att öppna Excel-mallen och stoppa in datainfor-mationen är en DLL28-fil som kallas Excel Interop. Det vanligaste verktyget att använda, som kallas Office Web Component (OWC), har inte all denna funktio-nalitet.

6.10 Klassbibliotek

Ofta använda funktioner sparas i ett klassbibliotek för att vara åtkomligt från alla funktioner och subklasser som behöver dem. De funktioner som finns i klassbib-lioteket är:

• Returnera användarnamnet på inloggad användare.

• Returnera filnamn på användarens XML-fil.

• Returnera filnamn på användarens Excel-fil.

• Returnera en sträng utifrån en lista med namn och en nodlista. Används till att skapa en söksträng med namn från listan och värden från nodlistan på formen: ”@Namn='värde från nodlistan'” där fler värden separeras med eller (or): ”@Namn='värde1 från nodlistan' or 'värde2 från nodlistan'”

27 Det språk som används för att presentera information på en webbsida. Excel klarar av att öppna sådan ström av tecken samt presentera den korrekt. 28 Dynamic-Link Library. Ett bibliotek med färdiga funktioner.

Page 55: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

KAPITEL 6. IMPLEMENTATION 39

6.11 Säkerhet

Webbapplikationen används på ett internt nätverk som inte går att komma åt från Internet. Det gör att det inte behövs någon säkerhet för direktåtkomst från Inter-net.

Den säkerhet som finns inbyggd är en kontroll mot att behöriga inom företaget kommer åt att se och kan generera XML-filer, där behörigheten är styrd till de produkter som användaren får se. De behörigheter som används i applikationen är desamma som används i SCDR-applikationen. Med andra ord, har användaren behörighet att granska en produkt i SCDR-applikationen så har denne behörighet att generera en XML-fil av den produkten i denna applikation.

Page 56: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per
Page 57: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

7 Resultat Här presenteras den webbapplikation som projektet utmynnade i.

7.1 Signaler som bitar i datapaket

Det efterfrågades ett sätt att visa hur signalerna är placerade i ett datapaket (frame) utan att behöva rita upp det manuellt. I den webbapplikation som gjorts går det att välja vilken typ av datapaket som är intressant att studera närmare. Valen av typ är SIL, PDO och J1939 där den valda typen visas i en lista med maximalt 15 datapaket åt gången. Finns det fler så går det enkelt att stega till nästa sida genom siffrorna i nederkant (se punkt 2 i Figur 7.1 nedan).

1

2

Figur 7.1 Sidan ”Signaler i frame”. 1) Välj typ av datapaket; SIL, PDO eller J1939. 2) Det finns 7 sidor att visa. Figuren visar de 15 första datapaketen av typen SIL.

Välj ett datapaket att studera närmare genom att klicka på Select på den aktuella raden. En tabell med de signaler som datapaketet innehåller blir synlig samt även knapparna ”Exportera till Excel” och ”Exportera till Excel, använd mall” (se Figur 7.2). Dessa knappar exporterar tabellen med signaler till Excel, med eller utan använ-

41

Page 58: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

42 KAPITEL 7. RESULTAT

dande av en mall. Den mall som används är en preparerad fil som presenterar signalerna i ett 64-bitars datapaket.

1

Figur 7.2 1) Ett datapaket är valt. 2) Signalerna i datapaketet visas i en lista där information om signalerna presenteras; ID, namn, storlek, offset och format (Intel eller Motorola). 3) Klicka på knappen ”Exportera till Excel” för att exportera tabellen direkt till Excel. 4) Klicka på knappen ”Exportera till Excel, använd mall” för att exportera tabellen till en förpreparerad mall (se följande figurer).

2

3 4

Page 59: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

KAPITEL 7. RESULTAT 43

7.1.1 Exportera till Excel

Exporterande direkt till Excel (den första knappen) medför att användaren får upp ett Excel kalkylblad där tabellen i applikationen importeras. Se punkt 2 och punkt 3 i Figur 7.2 för tabellen respektive knappen i applikationen.

Det Excel-kalkylblad som presenterats för användaren är mycket enkelt och inne-håller endast det tabelldata som fanns i applikationen (se Figur 7.3). Excel öppnas med ett nytt tomt dokument i webbläsaren där tabelldatat importeras.

Figur 7.3 Excel öppnas i webbläsaren och tabelldatat presenteras i ett nytt tomt dokument.

7.1.2 Exportera till Excel med användande av mall

I Figur 7.2 valdes knappen ”Exportera till Excel, använd mall”, vilket presenterar Figur 7.4 för användaren. Figuren visar Excel med mallen öppnad och tabellen importerad. Observera att det är samma information om signalerna som nu syns i Excel som visades i tabellen i webbapplikationen tidigare (se Figur 7.2).

Page 60: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

44 KAPITEL 7. RESULTAT

Figur 7.4 Excel öppnat med mallen och tabellen importerad. 1) Tryck på knappen för att starta makrot. Färgningen av rutan startas.

Välj knappen ”Kör makro” och färgningen görs för att visa vilka bitar som är upp-tagna och lediga men också var en kollision finns. Grönt betyder ledigt och rött betyder kollision, vilket betyder att det är fler än en signal som försöker använda biten. (Figur 7.5)

1

1

2

Figur 7.5 1) Färgningen av rutan gjord. Rött visar kollisioner (där det är fler än en signal på en bit) och grönt visar lediga positioner. I det här fallet är bit 0 och 1 gröna (lediga pos.) och inga bitar är röda (inga kollisioner finns). 2) Färgkodning som gör det lättare att urskilja vilken signal som lig-ger var i rutan. Färgkodningen är samma som i count-bladet (se Figur 7.7).

Page 61: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

KAPITEL 7. RESULTAT 45

Figur 7.6 Test av kollision. 1) En tvåa ändras till en åtta vilket ger en kolli-sion på 6 bitar. 2) Kollisionen syns i rutan.

Figur 7.7 Indikering av vilka bitar som kolliderar syns i bladet count.

2 ändras till 8

2

Kollision

1

Indikerar vilka bitar som kolliderar. Raden (ursprungliga färgen på ra-den) avslöjar vilka signaler som är inblandade.

Page 62: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

46 KAPITEL 7. RESULTAT

Om det skulle finnas kollisioner så presenteras dessa bitar med röd markering. I Figur 7.6 har en sådan test gjorts för att visa kollisionsindikeringen. En tvåa har bytts ut mot en åtta vilket gör så att sex bitar kolliderar. För att lättare förstå vilka dessa bitar är kan man kika på count-bladet (se Figur 7.7).

7.2 Kartor över signaler och noder

Något som också starkt önskades var att få en karta över alla kopplingar. Det ska-pades två förslag utifrån de kopplingar som finns. Den första inriktar sig på signa-len och presenterar skapande nod, vilket datapaket signalen finns med i samt vil-ken nod den skickas till. Den andra har noden som centrum och ritar ut koppling-ar till bussar och till signaler med tillhörande datapaket.

7.2.1 Signalen i centrum

Med signalen i centrum så väljer man först vilken signal man vill titta på (se Figur 7.8).

1

Figur 7.8 Sidan ”Karta över signaler”. 1) Välj en signal att titta på.

Signalen presenteras tillsammans med vilken nod den skapas i, vilken frame (data-paket) den ligger i samt vilken/vilka noder den skickas till (se Figur 7.9). I figuren syns också de direktlänkar som finns. En länk går direkt till sidan ”Signaler i frame” där ID till datapaketet (framen) skickas med. Det gör att man kan söka på en sig-

Page 63: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

KAPITEL 7. RESULTAT 47

nal och sedan granska det datapaket den ingår i. Se Figur 7.10 för ”Signaler i frame” med aktuellt frame-ID medskickat.

Andra direktlänkar som finns är till instans av signal, nod eller frame (datapaket) i SCDR-applikationen. Det för att kunna redigera eller beskåda vald instans ytter-liggare.

1

Figur 7.9 1) En signal är vald. 2) Signalen visas med namn, ID och be-skrivning. 3) Den nod som skapar signalen. 4) Det datapaket signalen skickas i. 5) Den/de noder som tar emot signalen. 6) Gå direkt till sidan ”Signaler i frame” och skicka med denna frame-ID (se Figur 7.10 nedan) 7) Gå direkt till instans av nod, signal eller frame (datapaket) i SCDR-applikationen.

2 3 5

4

7 6

Page 64: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

48 KAPITEL 7. RESULTAT

1

Figur 7.10 Sidan visar ”Signaler i frame” där datapaketets ID skickats med från föregående sida (sidan ”Karta över signaler”). 1) Endast det aktuella da-tapaketet visas.

7.2.2 Noden i centrum

När noden är i centrum finns det fler kopplingar att göra. Kopplingar kan göras från en nod till olika bussar och till signaler med tillhörande datapaket. Figur 7.11 visar de kopplingar som kan göras till den nod som visas. Det går att välja en an-nan nod genom att klicka på siffrorna i nederkant. Då byts även informationen i rutorna som är runtomkring, dvs. det byts till de bussar, signaler och datapaket som är kopplat till den nod, som då blir vald.

7.3 Generera en XML-fil

Det tillkom en sida för att säkerställa att den XML-fil som används är korrekt och inte innehåller något som gör att det blir fel i applikationen. Sidan används för att generera en XML-fil som sparas i applikationen, en fil för varje användare. Det som går att välja för en inloggad användare är en av de produkter som man har behörighet29 för i SCDR. För varje produkt går det vidare att välja en variant, rele-ase och språk. Därefter generera filen som då laddas upp i applikationen automa-tiskt. Se Figur 7.12 för gränssnittet.

29 De behörigheter som används i applikationen är desamma som används i SCDR-applikationen. Med andra ord, har användaren behörighet att granska en produkt i SCDR-applikationen så har användaren behörighet att generera en XML-fil av den produkten i denna applikation.

Page 65: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

KAPITEL 7. RESULTAT 49

3 2

1

4

5

Figur 7.11 Sidan ”Karta över noder”. 1) Välj en nod genom att klicka vidare på siffrorna i nederkant. 2) Välj en IP-bus om en sådan existerar. 3) Välj en CAN-bus om en sådan existerar. Klicka på siffrorna i nederkant. 4) Välj en SIL-signal genom att klicka på siffrorna i nederkant. 5) SIL-framen visas till den SIL-signal som för tillfället är vald.

Page 66: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

50 KAPITEL 7. RESULTAT

1

2

3

Figur 7.12 Sidan ”Generera XML”. 1) En text visar hur gammal den aktuel-la XML-filen är så det enkelt går att bestämma om den behöver förnyas. 2) En tabell visar vilken produkt, variant, release och språk XML-filen har. 3) Välj produkt, variant, release och språk för att generera en ny XML-fil att använda.

Page 67: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

8 Slutsats Arbetet med detta examensarbete har varit mycket intressant och lärorikt, speciellt då det i början var ovisst om hur omfattade arbetet var eftersom det var en löst skriven specifikation. Några veckor efter start blev det den problemformulering som beskrivits i kapitel 2, för att utökas med det som framkom i förstudien. Det har varit många delar att sätta ihop och få att fungera tillsammans. Speciellt har det varit svårt att få Excel att fungera med webbapplikationen i .NET, men efter många tips på Internet hittades lösningar på hur man kunde kringgå detta. Men det krävs att Excel finns installerat på servern applikationen körs på för att det ska fungera.

Valet av Excel i utvecklingen var lite taktiskt för att det fanns installerat på utveck-lingsmaskinen och det är licenskostnader på programvaror såsom beräkningspro-gram och .NET verktyg. Eftersom ingen budget fanns i examensarbetet så måste billigast möjliga lösning hittas och det gjordes genom att använda det som är känt för författaren samt redan finns installerat.

Tidsplaneringen har varit väldigt bra förutom tidsdisponeringen till rapportskriv-ningen som har kantats med olika fördröjningar där t.ex. ändringar i webbapplika-tionen gjorts parallellt, liksom skrivandet av en manual till hur man sätter upp systemet på en server och ändrar i vitala delar.

8.1 Problem under arbetets gång

Det har som med alla projekt varit en del problem under arbetets gång. De flesta av dessa har gått att lösa, men några kvarstår. Här presenteras några problem som projektet har kantats med. De två första har inte gått att lösa men det finns säker-ligen lösningar till dem. Problemen är:

• Dubbel-hopp problemet. Ett problem som kallas double-hop issue. Det uppstår om en användare ansluter till en server där webbapplikationen lig-ger och använder en webbtjänst som ligger på en annan server. Men an-vändarens identitet skickas inte vidare från den första servern. Då kan inte webbtjänsten kommas åt för den har ingen giltig användare inloggad efter-som det är användarkontot på servern som webbapplikationen körs på som skickats vidare. Lösningar ska finnas men behöver ej lösas eftersom både webbapplikationen och webbtjänsterna ligger på samma server när det ska användas.

• Excel fungerar ej på servern. Det problem som är mest kritiskt då Excel inte finns på webbservern och det verktyg som finns att använda, verkty-get OWC30, ger inte tillfredställande funktioner. Därför övervägs starkt att hitta en lösning där antingen Excel-mallen görs om till en webbapplikation

30 Office Web Component från Microsoft

51

Page 68: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

52 SLUTSATS

eller externt öppnande av Excel på användarens dator. Ej löst detta vid rapportens färdigställande.

• XML. Det har varit några mindre problem med att få XML- och XSL-filer att fungera som de ska, men det var nog mer av kunskapsbrist än andra fel som gjorde det.

• Word. Ordbehandlingsprogrammet Word som användes till att skriva rapporten har en hel del buggar som gett många grubblerier under rap-portskrivandet. Det har ibland räckt med att starta om programmet, men ibland behövts kopiera över allt innehåll till ett nytt dokument, då dispo-neringsfel uppstått i mallen men som inte gått att åtgärda på ett tillfreds-ställande sätt.

8.2 Restriktioner och begränsningar

Att Excel-mallen inte fungerade på servern var en grov miss som upptäcktes för sent då det i slutskedet testades på en testserver innan det var tänkt att göras åt-komligt för användarna. Under slutfasen av rapportskrivandet har därför många försök gjorts för att hitta en lösning men ingen lämplig har hittats. Det finns verk-tyg som omvandlar en Excel-fil till en .NET-applikation, men de klarar inte av Excel-filer med makron. Därför blir detta en restriktion som går att lösa genom exempelvis installerande av Excel på webbservern alternativt använda applikatio-nen lokalt på varje klients dator (som har Excel installerat). Ett annat alternativ kan vara att lägga upp applikationen på en annan server där Excel eller ett bättre Excel-verktyg än OWC30 kan installeras och användas. Värt att tänka på är att om applikationen och webbtjänsterna läggs på olika servrar så kan dubbel-hopp problemet uppstå, vilket beskrivits under avsnittet Problem under arbetets gång, och då måste hanteras.

En annan begränsning är att applikationen är en ”prototyp”. Den visar inte hela databasen utan är begränsad till att presentera en utvald del för att visa på vad man kan göra.

8.3 Framtida arbete

Det finns många saker som går att förändra och förbättra, så här presenteras de väsentligaste:

• Evaluering direkt i .NET. Lägga in Excel-mallen så att den evalueras i .NET istället, för att slippa steget med att öppna Excel. Idén är att förenk-la alla stegen, slippa ha Excel installerat på servern och begränsa det som kan gå fel.

• Bit nr visas i tabell. En önskan finns om att visa bit-nummer i den färg-lagda rutan i Excel-mallen. Se förklarande figur nedan (Figur 8.1). I dags-läget är det inte möjligt utan att tappa funktionalitet.

Page 69: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

SLUTSATS 53

• Använda AJAX. AJAX31 för att få meddelanden som ”Var god vänta…”, exempelvis när en XML-generering görs. AJAX kan också användas för att uppdatera informationen på sidorna utan att behöva ladda om dem.

• Utöka presentation. Att lägga till så att man kan se kopplingar för fler typer av signaler, datapaket och noder för det/de alternativ av presenta-tion som väljs.

• Filtrering. Kunna filtrera vad som ska visas. Exempelvis om alla bussar och signaler ska synas eller bara någon enstaka variant.

• Detaljinfo. Kunna välja vilka detaljer som ska synas.

• Sortering. Kunna sortera tabellerna i applikationen efter t.ex. Namn.

• Sökruta. Kunna söka efter nod, signal etc. som finns i en tabell.

• Utökning av databasen. För att kunna söka på t.ex. elektronikenheter så behövs en strukturförändring i databasen. Det är kopplingen till vilken typ en enhet är som saknas och därför behöver läggas till. Det kan göras ge-nom att lägga till ett attribut t.ex. Feature. Men en utredning bör först göras om hur en sådan strukturförändring påverkar databasen och de tillhörande applikationerna.

0

63OM

L

Figur 8.1 Önskad utökning av Excel-mallen. Nummer syns för varje bit i rutan.

31 Asynchronous JavaScript and XML

Page 70: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per
Page 71: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

55

9 Erkännanden Jag har flera personer att tacka för att kunna genomföra detta examensarbete. Jag vill vidare rekommendera Hägglunds som en utmärkt arbetsplats att göra sitt ex-amensarbete på.

Gun Persson Min handledare på Hägglunds, som fanns där när det behövdes. Det har varit värdefullt! Per Lindström Min handledare på Institutionen för datavetenskap, Umeå universitet. Inblandade på avdelning SPC, däribland Mikael Knutsgård och Erik Strandberg. Avdelning FIA Speciellt tack vill jag framföra till Sofie Ödmark för eminent hjälp med applikatio-nen. Jag vill också tacka Kalle Hagström och Joakim Vesterlund (konsult) för det material ni bidragit med. Andra inblandade på Hägglunds, däribland Magnus Eriksson, doktorand vid Umeå universitet och anställd avd. SPA. Ni övriga vet vilka ni är! Tack! Er hjälp var värdefull. Familj och vänner Tack för ert stöd! Speciellt tack till Sara för allt stöd och förståelsen för priorite-ringen av detta ex-jobb.

Page 72: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per
Page 73: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

Referenser

[ASP] Thangarathinam, Thiru (2006) Professional ASP.NET 2.0 XML. Wi-ley Publishing Inc. Indianapolis, Indiana.

[BAE] BAE Systems AB in Sweden 1. BAE Systems in Sweden.ppt (Ändrad 2007-09-14)

[BSH] BAE Systems Hägglunds AB hemsida http://www.baesystems.se/hagglunds/ (Besökt 2008-02-07)

[CSS] World Wide Web Consortium. Cascading Style Sheets http://www.w3.org/Style/CSS/ (Besökt 2008-02-12)

[ELMA] Elmasri, R., Navathe, S. (2004) Fundamentals of Database Systems. 4th edition. Addison Wesley.

[EXL] Wikipedia. Excel http://en.wikipedia.org/wiki/Microsoft_Excel/ (Besökt 2008-02-13, ändrad 2008-02-13)

[GRVIW] Wikipedia. Graphviz http://en.wikipedia.org/wiki/Graphviz/ (Besökt 2008-02-20, ändrad 2008-02-05)

[HTTP] Wikipedia. HyperText Transfer Protocol http://sv.wikipedia.org/wiki/Http/ (Besökt 2008-02-14, ändrad 2008-02-09)

[IWA] Microsoft. Integrated Windows Authentication (IIS 6.0) http://www.microsoft.com/technet/prodtechnol /WindowsServer2003/Library/IIS/523ae943-5e6a-4200-9103-9808baa00157.mspx?mfr=true (Besökt 2008-02-12)

[NET] Wikipedia. .NET Framework http://wn.wikipedia.org/wiki/.NET_Framework (Besökt 2008-02-13, ändrad 2008-02-13)

[SCDR] Persson, Gun (2008) SCDR Guideline 2.x. Internt dokument (DM #324003) Rev. PA2 (2008-02-08), BAE Systems Hägglunds AB. Örnsköldsvik.

57

Page 74: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

58 REFERENSER

[SYSWE] Wikipedia. Systems Modeling Language http://en.wikipedia.org/wiki/Sysml (Besökt 2008-02-20, ändrad 2008-01-31)

[UMLWE] Wikipedia. Unified Modeling Language http://en.wikipedia.org/wiki/Unified_Modeling_Language (Besökt 2008-02-20, ändrad 2008-02-15)

[VBA] Ek, J., Eriksson, U., Isanovic, S. (2000) VBA-programmering i Office 2000. Pagina Förlags AB. Göteborg.

[WEBML] Webml.org. The Web Modeling Language. Homepage http://www.webml.org/ (Besökt 2008-02-20, senast uppdat. 2007-11-10)

[WSG] World Wide Web Consortium. Web Services Glossary http://www.w3.org/TR/ws-gloss/ (Besökt 2008-02-12)

[WSW] Wikipedia. Web service http://en.wikipedia.org/wiki/Web_service (Besökt 2008-02-12, ändrad 2008-02-08

[X10] World Wide Web Consortium. XML i 10 punkter http://www.w3c.se/resources/office/translations/XML-in-10-points_sw.html (Besökt 2008-02-07)

[XML] Marchal, Benoît (2002) XML genom exempel. Pagina Förlags AB. Gö-teborg.

[XPATH] AB XML Sweden (2002) Standarder kring XML, XML Path Language (XPath). http://www.xml.se/xml/standarder.html#xpath (Besökt 2008-02-15)

[XSLT] AB XML Sweden (2002) Standarder kring XML, XSL Transforma-tions (XSLT). http://www.xml.se/xml/standarder.html#xslt (Besökt 2008-02-15)

[XSLWE] Wikipedia. XSL http://en.wikipedia.org/wiki/Extensible_Stylesheet_Language/ (Besökt 2007-12-20, ändrad 2007-11-15)

[XW3] World Wide Web Consortium. Extensible Markup Language (XML) 1.1 (Second Edition) http://www.w3.org/TR/xml11/ (Besökt 2008-02-12)

Page 75: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

REFERENSER 59

[XWEN] Wikipedia, XML http://en.wikipedia.org/wiki/XML/ (Besökt 2007-12-20, ändrad 2007-12-20)

[XWSV] Wikipedia, XML http://sv.wikipedia.org/wiki/XML/ (Besökt 2007-12-20, ändrad 2007-12-08)

Page 76: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per
Page 77: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

10 Appendix A – Akronymer

AJAX Asynchronous JavaScript and XML

BSH BAE Systems Hägglunds AB

CSS Cascading Style Sheets

CV90 Combat Vehicle 90

GraphViz Graph Visualization Software

Hägglunds BAE Systems Hägglunds AB

HTML HyperText Markup Language

HTTP HyperText Transfer Protocol

HTTPS HyperText Transfer Protocol over Secure socket layer

JIT Just In Time

LSB Least Significant Byte

MSB Most Significant Byte

MSIL Microsoft Intermediate Language

OMG Object Management Group

OWC Office Web Component

PDO Process Data Object

SCDR System Configuration Data Repository

SEP Splitterskyddad EnhetsPlattform

SIL Signal Interaction Layer

SOA Service-Oriented Architecture

SOAP Simple Object Access Protocol

SysML Systems Modeling Language

UML Unified Modeling Language

VB Visual Basic

VBA Visual Basic for Applications

VS Microsoft Visual Studio .NET 2005

W3C World Wide Web Consortium

61

Page 78: Grafisk presentation av SCDR · 2008. 6. 17. · Grafisk presentation av SCDR. 1. Johnny Nyström . 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per

62 APPENDIX A – AKRONYMER

WebML Web Modeling Language

WSDL Web Service Description Language

XML eXtensible Markup Language

XPath XML Path Language

XSL eXtensible Stylesheet Language

XSLT XSL Transformations