FairWay 1.0 SDD. Systemdesignbeskrivning

Relevanta dokument
Preliminär specifikation

Programutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document

Introduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1.

Föreläsning 11. Giriga algoritmer

Introduktion till integrering av Schenkers e-tjänster. Version 2.0

TDP003 Projekt: Egna datormiljön

Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer.

XML-produkter. -Registret över verkliga huvudmän (RVH) Teknisk handledning för webbtjänst mot RVH (Web Services) Datum: Version: 1.

Föreläsning 11. Giriga algoritmer

Kravspecifikation Fredrik Berntsson Version 1.3

Kravspecifikation Fredrik Berntsson Version 1.1

Platsbesök. Systemkrav

Uppgiftskravstjänsten Teknisk anslutning för att hämta uppgiftskrav som öppna data. Version 1.0

Mobilt Efos och ny metod för stark autentisering

Laboration 2: Designmönster

Grafiska användargränssnitt i Java

Föreläsning 10. Grafer, Dijkstra och Prim

Föreläsning 10. Grafer, Dijkstra och Prim

Exempel på verklig kravspecifikation

Laboration 2: Designmönster

För installationer av SQL Server som inte görs från Hogias installation måste följande inställningar göras:

Teknisk kravspecifikation för nytt Omsorgs system

Webbtjänster med API er

Konfigurationer Video- och distansmöte Bilaga till Tekniska anvisningar

Mobilt Efos och ny metod för stark autentisering

Innehåll Översikt: Introduktion till SQL Server... 3 Introduktion till plattform för SQL Server... 4 Översikt introduktion till plattform för SQL

Testplan Autonom truck

Öppna standarder & dokumentformat. 13 Mars 2007 Stefan Görling,

Tentamen, EDA501/EDAA20 Programmering M MD W BK L

LiTH. WalkCAM 2007/05/15. Testplan. Mitun Dey Version 1.0. Status. Granskad. Godkänd. Reglerteknisk projektkurs WalkCAM LIPs

Systemkrav. Artvise Kundtjänst

Föreläsning 10. Grafer, Dijkstra och Prim

Att använda Metria Maps WMS baserad på Geoserver

Webservice & ERP-Integration Rapport

1ME323 Webbteknik 3 Lektion 6 API. Rune Körnefors. Medieteknik Rune Körnefors

Hogias Ekonomisystem. Systemkrav för enanvändarinstallation fr o m version av GENERELLA KRAV

SAS USER FORUM SWEDEN 2017 USER FORUM. SAS Viya och öppenhet en gemomgång av LUA-, Java-, Python- och REST-gränssnitten mot SAS Viya

Säkerställ er tillgänglighet Kommunikationsrapporteringsverktyg

Projektpresentation Wapspel

Systemkrav 2014 för enanvändarinstallation fr o m version av

Mobilt Efos och ny metod för stark autentisering

Klient/server. Översikt. Lektion 1: Webbtekniker från Microsoft. Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning.

Systemkrav. Systemkrav för Hogia Approval Manager. Gäller från och med programversion

Regelverk. Infrastrukturen för vidareförmedling av grundläggande uppgifter om företag. Bilaga A. Tekniska ramverk. Version: 1.0

GIS i molnet. GISS After Work, 13 oktober 2011 Roger Hamrén Cartesia GIS AB. -En del av AddNode

Föreläsning 9: NP-fullständighet

campus.borlänge Förstudie - Beslutsstöd för operativ tågtrafikstyrning

Installation och konfiguration av klientprogramvara 2c8 Modeling Tool

Instruktion för att kunna använda Säkerhetstjänsternas administrationsgränssnitt

Model View Controller. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Alla rättigheter till materialet reserverade Easec

JHS 179 Planering och utveckling av en övergripande arkitektur Bilaga 9. Virtualisering och molntjänster i planering av teknologiarkitektur

App-klient för smartphones Power BI Arbetsflöde CRM Online Webb-klienten Dokumenthantering Molnet...

Föreläsning 12+13: Approximationsalgoritmer

Presentationsprogram - Kravspecifikation. Henrik Österdahl och Jenny Melander, D mars 2002

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Ett enkelt OCR-system

Katarina Petersson Greger Hellman

API:er/Mashup. Föreläsning 4 API:er och Mashups. Johan Leitet johan.leitet@lnu.se twitter.com/leitet facebook.com/leitet. Webbteknik II, 1DV449

Grafiska användargränssnitt i Java

Översikt. Installation av EasyPHP 1. Ladda ner från Jag använder Release Installera EasyPHP.

Datakommunika,on på Internet

Filleveranser till VINN och KRITA

LectureMopp - Projekt i Nätverksprogrammering

Regelverk. Infrastrukturen för vidareförmedling av grundläggande uppgifter om företag. Bilaga A. Tekniska ramverk. Version: 3.0

HexaFlip. Kravspecifikation

Webbteknik II. Föreläsning 4. Watching the river flow. John Häggerud, 2011

emopluppen Användning av "Ant" Niklas Backlund Version: 1.4 ( 2002/04/26 07:27:52 UTC)

JavaRats. Kravspecifikation. Version 1.1. Gustav Skoglund Marcus Widblom Senast ändrad: 13 / 05 / 08

Kort om World Wide Web (webben)

Godkännande av kundapplikationer

Manual Lead tracking. Version

TDDI02. Programmeringsprojekt, Föreläsning 2. Filip Strömbäck. Med utgångspunkt i tidigare slides av Jonas Lindgren

Vinjett 1: Relationsdatabas för effektivaste vägen

Systemrekommendation. Artvise Contact Center

Instruktion för åtkomst till Nyps via LstNet

Viktiga begrepp. Algoritm. Array. Binärkod. Blockprogrammering. Bugg / fel och felsökning. Dataspel. Dator

Fyra i rad Javaprojekt inom TDDC32

Föreläsningsanteckningar F6

Kravspecifikation. Sammanfattning. Fyra i rad Javaprojekt inom TDDC32. Version 2.0. Datum Dokumentnummer

Kravspecifikation. LiTH Segmentering av MR-bilder med ITK Anders Eklund Version 1.0. Status

Vektorkartor för mobila terminaler

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på grafik, ett avancerat program Frågor

TMP Consulting - tjänster för företag

Guide till Inera IdP. Information angående anslutning av Nationella e-tjänster

Hå rd- och mjukvårukråv såmt rekommendåtioner fo r 3L Pro from version 2013.Q3

Webbservrar, severskript & webbproduktion

Tentamen TEN1 HI

Rekommendationer teknisk lösning_samsa_ ver

Skicka och hämta filer med automatik

Tekis-FB Systemkrav

INSTALLATION...3 ATT KOMMA IGÅNG...3 PROGRAMMETS DESIGN...4 LÄGGA TILL TABELL...4 EDITERA TABELL...4 EDITERA RELATION...5 SPARA OCH AVSLUTA...

Bilaga 05. Beskrivning av befintlig IT-miljö

Sakfrågan Preliminär specifikation

Systemkrav för enanvändarinstallation fr o m version av

Sammanfattning och specifikationer för POT

TDP013 Node.js, JSCoverage, Mocha. Marcus Bendtsen Institutionen för Datavetenskap

En verktygslåda för tjänsteorientering

Installationsguide fo r CRM-certifikat

Systemkrav WinServ II Edition Release 2 (R2)

Transkript:

Programutvecklingsprojekt 2D1954 - FairWay FairWay 1.0 SDD Systemdesignbeskrivning Av: Åke Djärf Stockholm, 1 maj 2000

Innehåll 1 Inledning...3 1.1 Syfte...3 1.2 Tillämpning...3 1.3 Revisionshistorik...3 1.4 Definitioner och förkortningar...4 1.5 Dokumentöversikt...4 2 Referenser...5 3 Övergripande konstruktionsbeslut...5 3.1 Allmänt...5 3.1.1 Dokument...5 3.1.2 Funktioner...5 3.1.3 Datormiljö...6 3.1.4 Användare...6 4 Arkitektur...7 4.1 Komponenter...7 4.1.1 Client...8 4.1.2 ClientHandler...8 4.1.3 Calc...8 4.1.4 Controller...8 4.1.5 InfoController...8 4.1.6 GenTool...9 4.1.7 CalcDataModel...9 4.1.8 PathDataModel...9 4.1.9 PreCalc...9 4.1.10 PreCalcData... 10 4.1.11 BaseData... 11 4.2 Gränsytor... 11 5 Kravspårbarhet... 11 2

1 Inledning 1.1 Syfte Syftet med detta dokument är att utgöra en beskrivning av FairWaysystemet i sin helhet, att vara huvuddokument vad avser systemdesign samt att vara sammanhållande dokument för de olika SSDD (Sub System Design Description) som mer i detalj beskriver design av ingående delkomponenter. 1.2 Tillämpning Tänkta användare av detta dokument är i första hand projektgruppen själva. Detta dokument är styrande vad avser systemdesign. 1.3 Revisionshistorik Datum Utfärdare Beskrivning 00-02-27 Åke Djärf Dokumentet upprättat 00-02-29 Åke Djärf Ändrat i enlighet med möte 000229 00-04-27 Åke Djärf Slutlig version framställd 00-04-27 Kristoffer Andersson Tillägg i InfoController och PreCalc 3

1.4 Definitioner och förkortningar Begrepp Förklaring BaseData Grundläggande information avseende en mässa/ utställning. Denna information består t.ex. av en karta över utställningsområdet, namn och beskrivning av alla utställare och koordinater för dessas fysiska placering i lokalen. Calc Huvudsaklig beräkningsmodul. Denna modul beräknar den kortaste väg en besökare måste ta givet en lista över platser som skall besökas. Client Den dator/ applikation/ motsvarande där användaren interagerar med FairWay-systemet. ClientHandler Den delmodul som direkt kommunicerar med användaren. Controller Kontrollmodul som givet en arbetsbegäran från ClientHandler begär beräkning av Calc-modulen. CalcDataModel Uppläst grunddata för beräkning. Detta är en wrapper -klass runt den distansmatris som skapats av PreCalc-modulen. PathDataModel Uppläst grunddata för beräkning. Detta är dels en wrapper -klass runt den närmaste-grann matris som skapats av PreCalc-modulen och dels den modul som beräknar/ infogar de mellanliggande noder som krävs för att erhålla en fullständig tur. InfoController En wrapper runt BaseData. Tanken med denna modul är att säkerställa kontroll över det antal sessioner/ motsv som samtidigt är aktiva mellan ClientHandler och BaseData. PreCalc Administrationsmodul som i förväg utför vissa grundberäkningar. PreCalc data Lagrat utdata från PreCalc Server Den dator/ applikation som interagerar med användaren och där beräkningar, lagring av BaseData m.m. görs. OCR Optical character recognition 1.5 Dokumentöversikt Detta dokument är som tidigare nämnts huvuddokument vid design. Varje delkomponent/ modul har sin egen beskrivning (SSDD), där detaljnivån är högre. 4

2 Referenser Nedanstående lista beskriver de dokument som refereras från detta dokument, antingen som styrande dokument eller som utgör detaljspecificering av detta dokument. [1]. Kravspecifikation [2]. Analys [3]. SSDD Calc [4]. SSDD Client [5]. SSDD ClientHandler [6]. SSDD Controller [7]. SSDD InfoController [8]. SSDD PreCalc [9]. IDD 3 Övergripande konstruktionsbeslut 3.1 Allmänt För att kunna säkerställa att detta uppdrag blir genomförbart och användbart inom den tidsram som satts upp i kravspecifikationen har vi blivit tvungna att ställa upp en del avgränsningar på systemet. Dessa är satta på ett sätt som gör att de, om de följs, ger en minimal och generell lösning på problemet. Avsikten med att bara utveckla en prototyp är att fokus ska ligga på basfunktionaliteten och att vi därefter ska kunna bygga ut systemet till en färdig produkt. 3.1.1 Dokument Ett av kraven i kravspecifikationen är att engelska ska användas i all kod samt i alla leveransdokument. För att projektet inte ska fastna eller dra ut på tiden, på grund av nyttjandet av ett språk skiljt från modersmålet i all dokumentation, kommer de dokument som produceras av projektgruppen men som inte ingår i leveransdokumenten att skrivas på svenska. 3.1.2 Funktioner Systemet ska kunna läsa in statiska indata beskrivande mässan, företagen och deras position i mässlokalen. För att förenkla inläsningen behöver grundsystemet bara stödja indata på textformat. Systemet behöver alltså inte ha någon funktionalitet liknande optisk teckenigenkänning (OCR). 5

Problemet att finna den kortaste vägen genom mässlokalen som passerar alla av användaren utvalda utställare är en variant av ett välkänt och beräkningstungt problem, nämligen TSP (Traveling Salesman Problem). Detta innebär att lösningsförslaget med största sannolikhet måste begränsas till en approximation av den kortaste vägen. För att få fram denna approximation kan vi utnyttja oss av någon av de approximationsalgoritmer som finns för att lösa TSP. Presentationen av lösningsförslaget ska helst ske genom att vägen ritas ut på en karta på skärmen. Det räcker dock med en vägbeskrivning i textformat, t.ex. en lista med alla utställare som måste passeras innan man kommer fram till de utvalda utställarna. För att minska tidsåtgången för beräkningen av den approximativt optimala vägen bör systemet göra lämpliga förberäkningar vid uppstart och inläsning av indatat. 3.1.3 Datormiljö Systemet skall vara portabelt och inte bundet till någon speciell typ av operativsystem. Vi har därför beslutat att göra det Web-baserat, men att det enkelt ska kunna vidareutvecklas för att tillgodose andra användargränssnitt. Eftersom ingen betalning för systemet är garanterad, bör utvecklarna så gott som det går hålla sig till det som är gratis. Utvecklingsspråk kommer därför med största sannolikhet vara Java. 3.1.4 Användare Det förutsätts att mässbesökaren vet vilka företag som han/hon vill besöka, inte bara vilken bransch som företagen ska tillhöra. Den tekniskt ansvarige, som sköter inläsningen av mässbeskrivningen i systemet, ska kunna överföra mässbeskrivningen på det textformat som grundsystemet kräver. 6

4 Arkitektur Systemet är, om inte per definition, så i alla fall till sin idé ett fleranvändarsystem där ett antal klienter via en URL kan ansluta till en applikationsserver för att få tillgång till mässinformation i form av utställarförteckning, orienteringskarta. Klienten (användaren) skall kunna välja den/de utställare som han/hon önskar besöka och till svar erhålla en karta med den kortaste vägen mellan valda utställare. Den presenterade vägen skall börja och sluta i en fördefinierad start-/ slutpunkt. Inom ramen för detta projekt skall ett enanvändarsystem implementeras, men systemet skall designas så att skalbarhet erhålls. indata Client Server Base data resultat Bild 1. Övergripande systemstruktur. 4.1 Komponenter Bild 2. Översikt av delsystemstruktur. 7

4.1.1 Client Client är ingen egentligen del av FairWay utan är snarare ett samlingsbegrepp som innefattar alla typer av HTTP baserade klientprogramvaror såsom Netscape och Internet Explorer. Även WAPtelefoner är en typ HTTP baserade klienter och innefattas således av Client. 4.1.2 ClientHandler Detta är det delsystem som kommunicerar med Client och med FairWays innre kontrollsystem (InfoController och Controller). Då ClientHandler skall kommunicera med Client via HTTP skall ClientHandler implementeras med hjälp av Java Servlets teknologi. ClientHandlern tar emot en HTTP-request från klienten (POST eller GET). Denna begäran utgörs av oftast av en lista över de utställare som klienten önskar besöka. Denna begäran vidarebefordras till Controller för behandling. När (TSP-) beräkningen är klar, returnerar Controller den kortaste vägen mellan angivna utställare. ClientHandler utför även saker såsom att rita kartor och presentera listor över tillgängliga utställare för Client. Detta görs på kommando av Client, varvid ClientHandler måste kommunicera med InfoController för att rekvirera lämpliga data. 4.1.3 Calc Detta är den modul där TSP- beräkningen utförs. Indata är de noder som användaren önskar besöka och utdata är den ordning i vilken dessa noder skall besökas. Calc skall använda en s.k. farthest-insertion algoritm [3] för att utföra denna beräkning. Att observera är att detta endast är en del av den fullständiga beräkningen, se även Controller. 4.1.4 Controller Controller anropar Calc och begär en lösning av probleminstansen. Returvärdet från Calc skickas till PathDataModel så att mellanliggande noder kan beräknas/ insättas i turen för att på så sätt erhålla den kompletta tur som skall returneras till ClientHandler. 4.1.5 InfoController InfoController är en wrapper runt BaseData och gör det därmed lättare att växla representationen av BaseData. Den ser till att 8

abstraktionsnivån ökar och gränssnitten mot ClientHandlern, PreCalc och GenTool blir gemensamt och enkelt. InfoController är tänkt att dels leverera karta och aktuell utställarinfo till ClientHandler samt indata till PreCalc. GenTool ska ges stora möjligheter att hämta, ändra och lägga till information. 4.1.6 GenTool GenTool är ett administratörsgränssnitt som skall användas när man matar in en mässa i systemet. Man kan i det tala om var montrar, gångar och entréer finns och hur man kan gå mellan dessa. Man kan även mata in information om de olika utställarna. 4.1.7 CalcDataModel Detta är endast en wrapper-klass runt den distansmatris (avståndet mellan samtliga noder i grafen) som förberäknats av PreCalc. Denna CalcDataModel skickas efter initiering som argument till Calc. 4.1.8 PathDataModel PathDataModel är dels en wrapper runt den närmaste-granne matris som förberäknats av PreCalc, men modulen utför även de beräkningar som krävs för att, givet en lösning från Calc, sätta in de mellanliggande noder som krävs för att erhålla en komplett tur mellan de noder som mässbesökaren önskar besöka. 4.1.9 PreCalc Detta är en administrationsmodul som skall göra nödvändiga förberäkningar/modifieringar av BaseData så att den beräkning som Calc skall göra går så snabbt som möjligt. De förberedande beräkningar som skulle kunna göras av PreCalc är att beräkna närmaste vägen från nod x till samtliga övriga noder och spara resultatet som en kvadratisk matris. (Mycket) preliminär algoritmbeskrivning: Givet BaseData som består av: - kartan över utställningsområdet med montrarna - uppgifter om montrarnas placering i utställningshallen - uppgifter om vägarna mellan montrarna - uppgifter om utställarna skall PreCalc plocka ut: 9

- grafens noder (dessa kan tidigare ha tagits fram manuellt eller automatiserat ur kartan och lagts i BaseData) - en grannlista (dessa kan tidigare ha tagits fram manuellt eller automatiserat ur kartan och lagts i BaseData) och beräkna: - kortaste avståndet mellan alla noder - vägen som utgör det kortaste avståndet Om mässan innehåller n noder (montrar och vägkorsningar) erhålls två n 2 - matriser. I bild 3 torde den kortaste vägen mellan A och F vara A-B-C-E-F, med en totallängd av 30. Nodernas koordinater ges av (x,y) och kanterna ges av möjliga gångvägar enligt kartan. 5 E 18 22 F C 2 D 14 5 9 A 2 B Bild 3. Exempel på kortastevägen instans. Den erhållna n 2 - matrisen sparas i PreCalcData och läses in vid systemstart. Baserat på denna matris utförs den begärda TSPberäkningen. Denna beräkning tolkar n 2 - matrisen enligt bild 4. F 30 A Bild 4. Exempel på TSP-avstånd. 4.1.10 PreCalcData PreCalcData ska innehålla en distansmatris, med kortaste avstånden mellan alla noder, och närmaste-väg matris, som beskriver hur den närmaste vägen mellan alla noder går. Datat sparas i form av en fil. 10

4.1.11 BaseData BaseData är en vanlig databas som vi har valt att använda den fria motorn Hypersonic SQL till. Den stödjer det mesta av SQL-standarden och har flera möjliga anslutningssätt, vi ansluter via http-protokollet. 4.2 Gränsytor Gränsytor mellan delkomponenter framgår av Konstruktionsbeskrivning, interna gränssnitt (IDD). 5 Kravspårbarhet Spårbarhet mellan krav och delkomponent framgår av respektive delkomponents SSDD. 11