Högskolan på Åland serienummer 12/2013. Informationsteknik. Mariehamn 2013 ISSN 1458-1531. Mariehamn 2009 ISSN 1458-1531



Relevanta dokument
Olika slags datornätverk. Föreläsning 5 Internet ARPANET, Internet började med ARPANET

KUNDREGISTER Sid 2(7) Teknisk specifikation

Christer Scheja TAC AB

Grundläggande datavetenskap, 4p

Internets historia Tillämpningar

Decentraliserad administration av gästkonton vid Karlstads universitet

Filleveranser till VINN och KRITA

LVDB i GEOSECMA. Innehåll. Inledning. Produkt: GEOSECMA Modul: LVDB Skapad för Version: Uppdaterad:

Ändamål Kategorier av uppgifter Laglig grund Hantering av en förfrågan om värderingsuppdrag

I samband med att du som säljare anlitar 3ETAGE för att förmedla en bostad behandlar vi dina personuppgifter enligt nedan.

Utkast/Version (8) Användarhandledning - inrapportering maskin-till-maskin

ALEPH ver. 18 ALEPH Digital Asset Module (ADAM)

Solution Profiler. Tips till att publicera en framgångsrik lösning

Guide för Innehållsleverantörer

Sänk kostnaderna genom a/ ställa rä/ krav och testa effektivt

Varför utför vi dessa undersökningar och varifrån har vi fått dina uppgifter?

Avancerade Webbteknologier

Hemsideutveckling för Anjool AB

Användarmanual medium

INSTALLATIONSGUIDE. Uppdatering av ditt Mamut-system

Express Import system

LATHUND FIRSTCLASS 8.0. RXK Läromedel Tel: , Fax: e-post:

Frågor och svar. (version )

Webbteknik. Innehåll. Historisk återblick Teknisk beskrivning Märkspråk Standardisering Trender. En kort introduktion

Behandling av personuppgifter innefattar all hantering av personuppgifter såsom insamling, registrering och lagring.

Integritetspolicy för webbplats

Kom igång med TIS-Office

Web Crawlers. TDTS09, Datornät och internetprotokoll. Denis Golubovic Fredrik Salin Linköpings universitet Linköping

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

Datakommunika,on på Internet

Konfiguration av LUPP synkronisering

NVDB Teknisk Lösning - Teknisk beskrivning av datautbyte

3. Författare: Ange samtliga författare. Gör så här:

Underlag till kravspecifikation för Vårdförbundets tidningsarkiv

INSTALLATION AV VITEC MÄKLARSYSTEM

Metoder för verifiering av användare i ELMS 1.1

Konfiguration av synkronisering fo r MSB RIB Lupp

NVDB Teknisk Lösning - Teknisk beskrivning av datautbyte

ENTRÉ DOKUMENTHANTERING...

RIKTLINJER FÖR HANTERING AV PERSONUPPGIFTER

CMS, optimerade för programmerare Eller hur kan ett sådan skapas.

Cactus Informationssystem - CIS. Revision 1.1

Titel Mall för Examensarbeten (Arial 28/30 point size, bold)

Skärmbilden i Netscape Navigator

Instruktioner för uppdatering från Ethiris 4.10 till 5.x

Byggsektorns Miljöberäkningsverktyg Användarmanual

Registrera konferenspublikationer i DiVA

Var god läs denna Integritetspolicy noggrant eftersom den innehåller information som är viktig för dig.

Manual för Remote Travel användare Hur Ni använder er av CRM RemoteTravel

Web Services. Cognitude 1

1 Installationsinstruktioner

TNMK30 - Elektronisk publicering

LVDB i GEOSECMA. Innehåll. Inledning. Produkt: GEOSECMA Modul: LVDB Skapad för Version: Uppdaterad:

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

Webbserverprogrammering

Digital inlämning av årsredovisningar

Storegate Pro Backup. Innehåll

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.

Version September Utskriftsbeställning

Insamlingsverktyg - teknisk beskrivning av metadataformuläret

ANVÄNDARINSTRUKTIONER FÖRHANDLARPORTALEN För anställda hos Hyresgästföreningen. Version 2.0 ( )

Att koppla FB till AD-inloggning

Administrera serier. Syfte. Innehåll. Guide Eventor

Version /10. Xerox ColorQube 9301/9302/9303 Internettjänster

Elektroniska upphandlingar med CTM. Snabbguide för leverantörer

Skapa din egen MediaWiki

Version Juni Utskriftsbeställning

Handledning för publicering av avhandlingar och andra vetenskapliga publikationer i DiVA

Schemalagd överföring till marknadsplats

Manual Utgåva 1.2. Sidan 1

Slutrapport Vertikala Sökmotorer Uppdrag från.se:s Internetfond Våren 2008

Handbok SSCd. Peter H. Grasch

Gör en modern släktbok för CD eller webben

Referenshanteringsprogrammet

Webbservrar, severskript & webbproduktion

Utvecklingen av ett tidregistrerings- och faktureringssystem

Registrera och publicera i DiVA. 1. Sök i DiVA för att kontrollera om publikationen redan är registrerad.

Exportera datafiler från Ladok Nouveau för att bearbeta dem i Excel och använda som kopplingsinstruktioner i Word.

I valfri objektlista börjar du med att markera det objekt du vill arbeta med. Klicka på Utför, välj Matrix och därefter Skicka order.

Funktionsbeskrivning

Fi2xml-meddelande Arkitektur

Instruktioner för studenter

Startguide för Administratör Kom igång med Microsoft Office 365

Instruktion för integration mot CAS

Innehåll. MySQL Grundkurs

Instruktion. Datum (12) Coverage Dokument id Rev Status? Godkänd. Tillhör objekt -

Version Aug Utskriftsbeställning

Elsmart Användarmanual Nätanmälan för Installatörer

Innehåll: 1 Blockering av öppen vidarebefordran via Hankens datorer, dvs. third party open relayblockering...

version 2.5 CONTENTO SVENSKA AB Introduktion till Kursbyggarverktyg

Manual för Readsoft Online Admin användare

1 Installationsinstruktioner

Zendesk standard konfiguration Nordisk e handel 1.1

Trafla databasen vi hämtar data från (remote export) ligger på en godtycklig maskin i nätverket. Den här databasen är en MIMER databas.

Att koppla FB till AD-inloggning

FileMaker Pro 10 och FileMaker Pro 10 Advanced

Instruktion för användning av

Denna webbplats använder även cookies, se avsnitt "Hur använder vi cookies" nedan.

IMPORTERA POSTER TILL DIVA Anvisning för export av poster från andra databassystem för import till DiVA

Transkript:

Dataspeglingsprocessen hos Quedro Ab Alin Oprea Kalm Högskolan på Åland serienummer 12/2013 Informationsteknik Mariehamn 2013 ISSN 1458-1531 Mariehamn 2009 ISSN 1458-1531

Examensarbete Högskolan på Åland Utbildningsprogram: Författare: Arbetets namn: Handledare: Uppdragsgivare: Informationsteknik Alin Oprea Kalm Dataspeglingsprocessen hos Quedro Ab Eriksson-Granskog Agneta Victor M. Rincón de Luis Abstrakt: Att ladda ner och överföra data från en plats till en annan kan utföras på flera olika sätt och det finns även flera skäl till varför detta görs. IT-leverantörföretaget Quedro Ab benämner detta fenomen dataspeglingsprocess. Det huvudsakliga syftet med speglingsprocessen är att skapa en kopia av de data som kan hämtas snabbare i Quedro Ab lösningar. I detta dokument analyseras de olika tekniker som används för dataspegling hos företaget Quedro Ab. Resultatet blir ett dokument som presenterar det mest ideala sättet att genomföra dataspeglingsprocessen utifrån befintliga modeller framställda i analysen. Nyckelord (sökord): Dataspeglingsprocess, nerladdning, php skript analys av dataspeglingsprocessen Högskolans serienummer: ISSN: Språk: Sidantal: 12-2013 1458-1531 Svenska 26 Inlämningsdatum: Presentationsdatum: Datum för godkännande: 22 Maj 2013 17 Maj 2013 22 Maj 2013

Degree Thesis Högskolan på Åland / Åland University of Applied Sciences Study program: Author: Title: Academic Supervisor: Technical Supervisor: Information Technology Alin Oprea Kalm The Process of Data Mirroring at Quedro Ltd. Eriksson-Granskog Agneta Victor M. Rincón de Luis Abstract: There are many ways to download and transport data from one place to another. And there may be many reasons why this is done. The IT firm Quedro Ltd. calls this the mirroring process. The main purpose of mirroring process is to create a copy of the data which can be retrieved in Quedro Ltd. solutions. This document will analyze the mirroring techniques that are in place at Quedro Ltd. The result is a document that presents the most ideal way to implement data mirroring process based on the existing models obtained in the analysis. Key words: Mirroring process, download, database, php script analysis of data mirroring process Serial number: ISSN: Language: Number of pages: 12-2013 1458-1531 Swedish 26 Handed in: Date of presentation: Approved on: 22 Maj 2013 17 Maj 2013 22 Maj 2013

INNEHÅLL 1 INTRODUKTION... 3 1.1 Bakgrund... 3 1.2 Syfte och mål... 4 1.3 Metod... 4 1.4 Avgränsningar... 5 1.5 Definition av begrepp... 6 2. KRAVSPECIFIKATION... 7 3. ANALYS AV SYSTEMET SOM DET ÄR IDAG... 8 3.1 Introduktion... 8 3.2 Speglingsprocessen... 9 3.3 Databasen... 10 3.4 Säkerhet... 10 3.5 ToSpooler... 11 3.6 Pingprocesser... 12 3.6.1 Ping per objekt... 12 3.6.2 Ping per kontor... 14 3.7 Cronprocesser... 16 3.7.1 Komplett XML-nerladdning... 16 3.7.2 Objekt som har uppdateras i ett viss intervall... 18 3.8 From Spooler... 20 4. RESULTAT... 23 5. SLUTSATSER... 24 KÄLLFÖRTECKNING... 26

1 INTRODUKTION Avsikten med dokumentet är att beskriva hur IT-leverantörföretaget Quedro Ab hanterar sin dataspeglingsprocess. Läsaren kommer att få en inblick i de olika sätt företaget Quedro Ab utför och hanterar sin dataspeglingsprocess. Uppsatsen förser läsaren med en analys av den dataspeglingssituation som finns idag samt en förklaring vad Quedro Ab exakt gör med de data som speglas, från det ögonblick informationen hämtas från uppdragsgivarens datasystem till dess att den sparas i säkerhet i Quedro Ab:s eget datasystem. Därefter presenteras resultatet i form av ett dokument som beskriver det ideala tillvägagångssättet för en säker dataspeglingsprocess hos företaget Quedro Ab. 1.1 Bakgrund Quedro Ab är ett företag som erbjuder mjukvaruprodukter och tjänster till sina kunder, främst gentemot företag inom fastighetsbranschen (Quedro, 2013). De flesta mäklare i fastighetsbranschen använder programvara i sitt arbete som inte är specifikt utvecklad för dem och därför inte heller svarar helt gentemot deras behov. Vanligtvis väljer företagen inom fastighetsbranschen att köpa eller hyra mjukvarutjänster från en leverantör. Dessa mjukvarutjänster kallas också för arbetsmiljöer eller mäklarsystem. Arbetsmiljöerna innehåller ett antal allmänna lösningar till de problem och utmaningar fastighetsmäklarna dagligen ställs inför. Vanligtvis visar sig dock dessa allmänna lösningar sig vara otillräckliga, då de endast erbjuder dellösningar till fastighetsmäklarnas vardagliga problem. IT-leverantörföretaget Quedro Ab erbjuder specialanpassade lösningar till sina kunder. 3

Lösningar som hjälper fastighetsmäklarna med deras dagliga problem och förenklar rutiner och gör dem därigenom mindre tidskrävande. Innan Quedro Ab kan implementera sina problemlösningar krävs tillgång till all data som mäklare lagrar i sina arbetsmiljöer. För detta ändamål har Quedro Ab utvecklat ett dataspeglingssystem och får på så sätt tillgång till uppdragsgivarnas uppgifter och speglar in data i företagets eget system. I detta dokument är fokus på de befintliga dataspeglingsprocesser Quedro Ab har utvecklat för detta ändamål. 1.2 Syfte och mål Syftet är att analysera den nuvarande dataspeglingsprocessen såsom den är idag, och målet är ett dokument som beskriver det ideala tillvägagångssättet att utföra dataspeglingsprocessen. Dokumentet är i form av en teknisk specifikation och skrivs på engelska. Syftet med dokumentet är att IT-leverantörföretaget Quedro Ab skall kunna erbjuda det som information till nya kunder inom fastighetsbranschen som efterfrågar deras tjänster. Dokumentets beställare är företaget Quedro Ab. 1.3 Metod För att förklara det logiska flödet i speglingsprocessen har jag valt att tolka dataspeglingssystemets källkod. Den källkod jag valt att tolka, består av php scripts som är relevanta för speglingsprocessen och som används i systemet. Frågeställningar som bearbetas i dokumentet diskuteras med respektive ansvariga personer inom de relevanta delarna av systemet i företaget Quedro Ab. 4

1.4 Avgränsningar Dataspegling är ett brett ämne i och med att speglingen kan göras på flera olika nivåer. IT-leverantörföretaget Quedro Ab utför dataspegling på följande tre nivåer: Objektspegling: hanterar all data som omfattar objektets utformning, dvs. bilder, deskriptioner, objektets placering osv. Kontorspegling: hanterar all data som har att göra med de olika enheter, så kallade kontor som tillhör kundföretaget. Anställdspegling: hanterar all data som härrör sig till enskilda anställda inom kundföretaget. I dokumentet har jag valt att avgränsa ämnet till hur objektspeglingen utförs. Anledningen till att jag valt att avgränsa mig till den infallsvinkeln är att jag finner det både relevant och samtidigt intressant samtidigt som den avses vara den viktigaste delen för Quedro Ab:s kunder. Figur 1 visar mellan vilka parter speglingsprocessen utförs. Bilden kan förklaras med att till exempel en fastighetsmäklare client matar in data om ett objekt via mäklarens mäklarsystem och data sparas hos dess mjukvaruleverantör provider. För att Quedro Ab skall få tillgång till dessa data måste den speglas. Figur 1. Parter mellan vilka spegling processens utförs. 5

1.5 Definition av begrepp Tabell 1. Definitions begrepp. Ord client provider objekt speglingsprocess arbetsmiljö/mäklarsystem guid Definition Dator som kör arbetsmiljön/mäklarsystem som är kopplad till leverantördatabas. Leverantör som tillhandahåller arbetsmiljön/mäklarsystem som används för att spara data om ett objekt. Fastighetsobjekt som utbjuds till försäljning gentemot kunden, till exempel en lägenhet eller ett hus. Överföring av data mellan olika platser t.ex. från en server till en annan. Mjukvaran som mäklaren använder för att jobba med fastighetsobjekt. Extern identifikationskod för ett specifikt objekt. cron Systemprogram som regelbundet utför en uppgift eller ett arbetsmoment. ping Information om att en viss förändring skickats till systemet. moduleid eaoid parsing officeid cachespooler tospooler fromspooler En intern representation av ett kontor hos Quedro Ab. En intern representation av ett objekt hos Quedro Ab. Syntaktisk analys av det inmatade dataflödet, används för att kontrollera data integritet. Extern identifikationskod för ett specifikt kontor. Tabell i databasen där data sparas i väntan på att processas. Arbetsmoment 1 i processen. Informationen om objekt hämtas och förbereds inför speglingsprocessen hos Quedro Ab. Arbetsmoment 2 i speglingsprocessen hos Quedro Ab. XML processeras och informationen sparas i databasen 6

2. KRAVSPECIFIKATION Att upprätta krav som är tydliga, konsistenta och prioriterade är en av grunderna för framgångsrikt arbete. Då vi på Quedro Ab vill att krav ska vara en naturlig del i arbete utformar vi vår kravspecifikation enligt följande. Utformning av ett dokument som Quedro Ab kan tilldela och förklarar det ideala sättet att utföra dataspeglingsprocessen för nya kunder. Dokumentet måste skrivas på engelska och är i form av en teknisk specifikation. Dokumentet skall dessutom baseras på en analys över de befintliga modeller och motiveras enligt följande begrepp: Fördröjning: Hur mycket tid tar det för Quedro Ab att bli medveten om en förändring? Optimering: Vilken modell är mest resurskrävande? Noggrannhet: Vilken modell är mest direkt i sortering av ett objekt? 7

3. ANALYS AV SYSTEMET SOM DET ÄR IDAG Quedro Ab:s datasystem är anpassat för att enkelt kunna integreras med alla större dataleverantörer inom fastighetsbranschen. Genom integration får företaget Quedro Ab tillgång till och kan importera all relevant information relaterad till ett visst objekt. Quedro Ab betraktar varje leverantör som unik och anpassar insamlingen av information och data från affärssystemet därefter. Varje leverantör erbjuds det mest optimala och bästa sättet med hänsyn till just den kundens speciella behov och eller önskemål. Informationen överförs med hjälp av speglingsprocessen och lagras i en säker och optimerad databas i Quedro Ab:s eget datasystem.(quedro, 2013) Men innan information/data om ett visst objekt kan speglas måste det först skapas. Nedan följer en beskrivning om det kronologiska skeendet i skapandet av ett specifikt objekt. 3.1 Introduktion Ett objekt skapas då en fastighetsmäklare kontaktas av en uppdragsgivare som till exempel önskar sälja sin lägenhet eller sitt hus eller med andra ord ett objekt. Fastighetsmäklaren skapar en så kallad befaring objekt och sparar den i sitt eget system, det vill säga mäklarens system. Vid den här tidspunkten består objektet endast av grundläggande information, ett identifikationsnummer så kallad guid och objektets adress. Därefter besöker fastighetsmäklaren tillsammans med uppdragsgivaren försäljningsobjektet för att uppgöra en värdering av vad objektet kan vara värt utifrån det aktuella marknadsperspektivet. Då uppdragsgivare och mäklare kommit överens om försäljningens olika aspekter skrivs ett uppdragsavtal som ger fastighetsmäklaren ensamrätt att bjuda ut objektet till försäljning under en viss period. Därefter arrangeras en besiktning av objektet, vilken oftast utförs av specialiserade besiktningsfirmor med vilka mäklarna samarbetar. En besiktning bör vara oberoende och opartisk. Målet är att finna de eventuella fel som ett objekt kan ha, så som till exempel en dold vattenskada. Dessutom kontrollerar mäklaren att försäljningsobjektets dokument är i ordning, att det är rätt ägare som säljer objektet, om det är belånat och så 8

vidare (FMI, 2013). Vanligtvis besöker också en fotograf objektet vid detta tillfälle för att ta foton av objektet. Då besöket avslutats återvänder mäklaren till sitt kontor och kompletterar försäljningsobjektet med ny data. Information i form av beskrivningar, antal rum, layout, foton och annan dokumentation. Allt matas in i mäklarens arbetsmiljö och sparas i mjukvaruleverantörens datasystem. När uppdragsavtalet träder i kraft ligger det i mäklarens intresse att sälja objektet så snabbt och med så högt pris som möjligt. För att uppnå detta så har mäklaren tillgång till ett antal applikationer som gör objektet så synligt och så attraktivt som möjligt. IT-leverantörföretaget Quedro Ab erbjuder i sin tur ett brett urval av funktioner speciellt anpassade för detta ändamål. Applikationer som hjälper till att skapa webbsidor och andra tjänster och gör det enkelt att söka, utforska och visa försäljningsobjekt. Allting för att underlätta försäljningen av fastigheter. 3.2 Speglingsprocessen Dataspeglingsprocessen avser överföring av data, från en plats till ett lokalt eller fjärranslutet lagringsmedium. I datorvärlden är en spegel en exakt kopia av en viss datamängd. Vanligast är att dataspegling används när flera exakta kopior av data krävs på flera olika platser.(techopedia, 2013) Företaget Quedro Ab behöver få tillgång till kundens data. Med hjälp av speglingsprocessen överförs därför en exakt kopia av kundens data som sparas i Quedro Ab:s egen databas. Speglingsprocessen hos Quedro Ab består av två huvudsakliga delar. Första delen är tospooler och är den förberedande delen i processen. Här kontrolleras nödvändiga parametrar för varje objekt och resultaten sparas i cachespooler. CacheSpooler är en databastabell som innehåller information om objekt som behöver speglas. Andra delen i processen är fromspooler, där information hämtas från cachespooler-tabellen, och med hjälp av dessa parametrar överförs data från provider. Dataöverföringen sker i form av XML. Extensible Markup Language(XML) är ett ramverk, en syntaktisk grund för att definiera olika märkuppspråk för olika typer av data. (Larry, P. and Bruce, D. 2007) 9

Innehållet kontrolleras för integritet och resulterande information sparas. Kontrollen sker via en parsingprocess som kontrollerar att variablernas integritet förblir enligt vår överenskommelse med kunden. På så sätt skapar och upprätthåller företaget Quedro Ab alltid en exakt kopia av leverantörens data. Dataspeglingsprocessen hos Quedro Ab kan startas vi två olika tillfällen: Då företagets system får ett ping vid skapandet av ett nytt objekt, då ett befintligt objekt förändrar sin status eller ett kontors datauppsättning förändras. Regelbundna kontroller i företagets system utförs för att fånga upp eventuella förändringar som skett i leverantörens data. 3.3 Databasen Databasen Quedro Ab använder sig av, är ett MySQL relation databas som drivs via phpmyadmin. PhpMyAdmin är en administratör verktyg i form av ett PHP-skript avsedd för att ge användarna möjlighet att interagera med sina MySQL-databaser. Quedro Ab lagrar all sin information i sin MySQL-databas och interagerar med databasen för att generera information till de lösningar som produceras (phpmyadmin, 2013). 3.4 Säkerhet Säkerheten är alltid en viktig och aktuell fråga som måste tas på största allvar. Eftersom Quedro Ab överför objekt information utifrån externa källor, måste säkerheten anpassas enligt värdens standard. Detta kan innebära, i vissa fall autentisering med användernyckel och passord innan objektet kan hämtas. Autentisering är processen som verifierar att en användare är den som användaren påstår sig vara. Anslutningar mellan servrar kan ibland kräva autentisering. I andra fall kan säkerheten bestå av IP lösta tjänster, dvs. det går att hämta objekt data bara från utifrån vissa IP adresser. Speglingsprocessmekanismen utförs som vanligt http. Hyper Text Transport Protocol 10

(HTTP) är den kommunikationsprotokoll som används för att överföra information (Larry, P. and Bruce, D. 2007). Quedro Ab skickar en förfråga, med information om ett eller flera objekt av intresse, och får som svar ett XML fil med objekt information. 3.5 ToSpooler Processen tospooler är den inledande delen i Quedro Ab:s speglingsprocess. Här kontrolleras varifrån förfrågan kommer. Dessutom kontrolleras om all nödvändig information finns med i begäran, samt vad det är för typ av process som skall inledas. Under processens lopp undersöks angivna parametrar för konsistens, till exempel kontrolleras om ett objekt verkligen tillhör det angivna kontoret, eller att ett kontor är markerat som aktiv eller inaktivt. Dessutom kontrolleras om objekt eller kontor identifikationsnummer finns med i begäran, allting måste stämma annars avslutas processen, eftersom avses som att data saknar konsistens. Alla förfrågningar loggas med ett unikt registreringnummer, som underlättar vid eventuell felsökning i ett senare skede. Processen kan startas: vid ett ping eller vid cron -jobb enligt modellen nedan. Ping processer: Ping per objekt Ping per kontor Cron jobbprocesser: Komplett XML-nerladdning också kallad komplett uppdatering Ladda ner XML med objekt som har uppdateras i ett viss intervall Processen tospooler kan dessutom startas manuellt av administratörer vid olika testkörningar, som t.ex. felsökning ändamål eller vid manuellt uppdatering av objekt. Detta åstadkoms via ett URL. Uniform Resource Locator (URL), är den teckensträng som identifierar en resurs. (Larry, P. and Bruce, D. 2007) 11

Exempel: http://quedro.com/estateaagent_mirror_skript.php?guid=g12345&officeid=1234&actio n=update; 3.6 Pingprocesser En pingprocess är en process som startas externt, då ett eller flera objekt ändrar status. Quedro Ab använder sig av två olika pingmodeller. 3.6.1 Ping per objekt Modellen ping per objekt är okomplicerad, den är snabb och resurssnål. Den inträffar då ett objekt har ändrat sin status. Provider informerar Quedro Ab om förändringen via ett ping i form av URL som innehåller objekt referenser samt objektets kontor. Vid ett ping per objekt händer följande: först kontrolleras om nödvändiga parametrar finns med i begäran guid, officeid samt provider namn. Kontrollen görs mellan det som skickas i förfrågan och information Quedro Ab här i databasen. Ett flödesdiagram presenteras i figur 2. 12

Figur 2. Flödesdiagram i process modellen ping per objekt. Vid processen tospooler, loggas händelsen med datum och med all information enligt begäran. Detta för att kunna felsöka händelsen ifall processen, mot förmodan, havererar av någon anledning. För att försäkra sig att alla nödvändiga parametrar finns tillgängliga kontrolleras hela konfigurationen. guid är objektets identifikationsnummer officeid är kontorets identifikationsnummer provider är data leverantören där objektet sparades Om alla parametrar godkänds kontrolleras kontorets integritet med getbyoffice. getbyoffice funktionen kontrollerar i Quedro Ab:s databas om det givna officeid verkligen existerar och att den tillhör angivna provider, dessutom görs en kontroll för att konstatera om kontoret är aktivt. Om kontoret visar sig inaktivt speglas inte objektet och processen avlutas. Om, däremot allting överensstämmer så laddas de specifika inställningarna för denna provider och objektet skickas till vidare i processen. 13

processsinglerequest konstaterar på vilket sätt skall objektet hanteras insättning, uppdatering eller radering. Avslutningsvis loggas processens resultat och objektet sparas till spooler i väntan på processen fromspooler. 3.6.2 Ping per kontor Modellen ping per kontor är mer resurskrävande då mängden av objekt som måste bearbetas är okänd. Processen startas externt då provider informerar Quedro Ab om förändringen via ett ping som innehåller kontor referenser. Denna modell kan utföras på ett eller flera kontor, beroende av vilka parametrar som skickas med i begäran. Den första modellen innebär att ett officeid finns med i begäran, och processen utförs enligt figur 3. Figur 3. Flödesdiagram i process modellen ping per kontor och bara ett kontor uppdateras. 14

getbyoffice kontrollerar i det interna databasen om det givna officeid verkligen existerar och om det tillhör angivna provider. Samtidigt görs även en kontroll för att konstatera om kontoret är aktivt. Om kontoret visar sig inaktivt avslutas processen. Om allt däremot överensstämmer, så laddas de specifika inställningarna för denna provider och processen fortsätter. makeobjectlist är ett extern förfrågan som hämtar kontorets alla objekt och processen går vidare. getoldlist hämtar kontorets objektlista från Quedro Ab:s databas. comparelist går igenom listan över objekt från databasen och jämför den med listan över objekt som mottagits från provider. För varje avvikelse mellan objektlistorna flaggas objektet med den åtgärd som skall appliceras. Om objektet finns i Quedro Ab:s lista men inte längre i listan från provider flaggas objektet för radering. Då objektet finns med i båda listor kontrolleras parametern updateddate och om datumet för senaste förändring är tidigare hos Quedro Ab än hos provider, flaggas objektet för uppdatering. I annat fall finns objektet endast i den externa listan och flaggas då för insättning i Quedro Ab:s system. Processen fortsätter till savespooler. savespooler tar den lista som är resultatet och sänder varje objekt till spoolern. Andra sättet att använda modellen ping per kontor utförs processen för varje kontor enligt figur 4. 15

Figur 4. Flödesdiagram i process modellen ping per kontor då flera kontor uppdateras. 3.7 Cronprocesser En cronprocess är en tidsbaserad process, eftersom den startas internt med jämt tidsintervall. Quedro Ab använder sig av två olika cronmodeller. 3.7.1 Komplett XML-nerladdning Första cron-processmodellen är en komplett kunduppdatering. Det är en mycket långvarig process som kräver tid och resurser. Komplett kunduppdateringmodellen körs oftast tidigt på morgonen då andra processer inte behöver lika mycket resurser. Komplett kunduppdateringmodellen här ingen tids begränsning och den körs tills den är 16

klar. Komplett kunduppdateringmodellen görs med hjälp av en stor XML-fil som omfattar samtliga objekt. Denna process är tidskrävande och utförs i följande fyra steg: Hela XML-filen laddas ner lokalt.(downloadfullxml) Uppdelning av den stora XML-filen i mindre XML-objekt.(extractXml) Kontroll om existerande objekt finns inte med i XML eftersom då skall de raderas.(extractxml) Avslutningsvis skickas de till spooler.(runpings). Processen är tidskrävande med tanke på mängden av objekt som skall speglas. Därför startas processen tidigt varje morgon och körs fram till dess den är klar, se flödesdiagram figur 5. Figur 5. Flödesdiagram i process modellen komplett uppdatering downloadfullxml skapar en lokal nedladdningsväg där XML-filen sparas. Samtidigt loggas processen för att underlätta senare felsökning ifall processen av någon anledning havererar. Då allting funktionerar arbetar processen vidare. 17

extractxml söker efter predefinierade tags som markerar ett objekts början och slut, till exempel: <EfterlängtatObjekt> </ EfterlängtatObjekt>. Inuti dessa taggar finns specifik information om objektet som guid, eaoid och officeid. Samtidigt hämtas listan över objekt som finns i Quedro Ab:s databas. För varje objekt guid som hittas i XML-filen kontrolleras objektets officeid och om objektet finns i Quedro Ab:s lista över aktiva objekt. Objekt som finns i båda listor flaggas som aktiva och skickas vidare i processen. Objekt som bara finns i XML-filen skickas vidare i processen. De objekt som återstår i Quedro Ab:s lista flaggas för radering. checkobjects kontrollerar alla objekt och tilldelar typen av åtgärd för varje objekt. Allting resulterar i en lista som skickas vidare i processen. savespooler tar listan och skickar alla objekt till spooler. Andra modell av cronprocess är att ladda ner XML-fil med objekt som har uppdateras i ett viss intervall. 3.7.2 Objekt som har uppdateras i ett viss intervall Modellen är resurskrävande med tanke på mängden av objekt som kontrolleras för att konstatera vilka objekt passar in, i det bestämda uppdateringsintervallen. Denna process börjar med att dynamiskt skapa ett uppdateringsintervall med getupdaterange. Den resulterande parametern används för att hämta en XML-fil med objekt som skapats eller uppdateras i denna intervall. På den returnerade XML-filen appliceras samma modell som tidigare men i mindre skala. 1. XML-fil med senast uppdaterade objekt laddas ner lokalt. 2. Uppdelning av den stora XML-filen i mindre XML-objekt. 3. Kontroll av parametrar och sänds till spooler. getupdaterange kontrollerar tiden då senaste uppdatering skedde och subtraherar den från den aktuella tiden. 18

downloadfullxml skapar en lokal nedladdningsväg där XML-filen sparas. Samtidigt loggas processen för att underlätta senare felsökning ifall processen av någon anledning havererar. Då allting funktionerar arbetar processen vidare. extractxml söker efter predefinierade tags som markerar ett objekts början och slut, till exempel: <EfterlängtatObjekt> </ EfterlängtatObjekt>. Inuti dessa taggar finns specifik information om objektet som guid, eaoid och officeid. Samtidigt hämtas listan över objekt som finns i Quedro Ab:s databas. För varje objekt guid som hittas i XML-filen kontrolleras objektets officeid och om objektet finns i Quedro Ab:s lista över aktiva objekt. Objekt som finns i båda listor flaggas som aktiva och skickas vidare i processen. Objekt som bara finns i XML-filen skickas vidare i processen. De objekt som återstår i Quedro Ab:s lista flaggas för radering. runpings kontrollerar varje objekt innan den skickas vidare i processen. savespooler skickar objekt till spooler. Om uppdaterade objekt hittas skickas de till tospooler för bearbetning, se figur 6. 19

Figur 6. Flödesdiagram i process modellen intervall uppdatering 3.8 From Spooler Processen fromspooler är ett cronjobb och dess huvudsakliga uppgift är att hämta data från cachespooler, kontrollera parametrarnas integritet genom parsing och spara resultatet i databasen. Processen fromspooler appliceras till alla tidigare nämnda modeller. Processen startar var femte minut och tillåts inte köra längre än fem minuter för att undvika att överlappa nästa process start. Processen fromspooler börjar med att logga händelsen. Detta görs för att möjliggöra 20

felsökning ifall processen oväntad avslutas. För att ytterligare försäkra sig om att processen kommer att utföras inom fem minuter, begränsas mängden av objekt till ett maximum av 120 objekt per körning och processen går vidare. getspoolerobjects hämtar ett maximum av 120 objekt från databasen. createeaoid kontrollerar varje objekt och om det är ett nytt objekt skapas ett internt identifikationsnummer, eaoid. getxmlfromprovider hämtar objekt XML-filen från provider. makeobject skapar ett objekt enligt Quedro Ab standard enligt figur 8. getobjectbyguid hämtar information från databasen. parseeaobject är en mycket viktig process i flödet, då den omvandlar data till den standard Quedro Ab använder sig av. Det innebär att varje tagg av intresse är kontrollerad, läst och behandlad innan den skickas vidare i processen. insertobject sparar den parsad data i Quedro Ab:s egna datasystem. Om körningen inte är klar inom loppet av fem minuter avslutas processen. 21

Figur 7. Flödesdiagram av fromspooler processen 22

4. RESULTAT Resultatet är det bifogade dokument som beställdes av Quedro Ab. 23

5. SLUTSATSER Syftet med arbetet var att beskriva och analysera dataspeglingsprocessen hos företaget Quedro Ab och i beskrivningen lyfta fram det ideala tillvägagångssättet att utföra dataspeglingen vilket är gjord i kapitel 3 ovan. Analysen avgränsades till objektspeglingsprocessen och bortser i från andra delar vilket motsvarar de avgränsningar som sattes upp för arbetet. I analysen framkom fyra alternativ: Ping per objekt är en okomplicerad process som förbereder speglingen för ett objekt åt gången. Ping per kontor kan utföras på basis av ett eller flera kontor åt gången. Processen hämtar två listor med objektinformation. En lokal lista hämtas från Quedro Ab:s databas och en extern lista som hämtas från den relevanta kunden. Listorna jämförs med varandra och varje objekt flaggas med den eventuella åtgärd som skall utföras. Full uppdatering är en tidskrävande och resurskrävande process som uppdaterar alla kontor och kontorets alla objekt för en provider. Uppdatering under en viss period är en resurskrävande process som uppdaterar alla objekt som ändrat status i ett visst tidsintervall. Varje alternativ beskrevs var för sig och i analysen, gjord i kapitel 3, framkom att ping per objekt är det bästa alternativet enligt tabell 2. Tabell 2. Modell analys. Modell Uppdatering Tid Resurser Maskinkomplexitet Antal objekt Ping per objekt Optimal Snål Optimal 1 Ping per kontor Objektberoende Lagom Lagom n/a Komplett Objektberoende Mycket krävande Mycket krävande n/a uppdatering Intervalluppdatering Objektberoende Krävande Krävande n/a 24

Målet var att efter analysen skapa ett dokument som beskriver det ideala tillvägagångssättet att utföra dataspeglingsprocessen utifrån befintliga modeller. Det ideala sättet resulterade i modellen ping per objekt, som är resurssnål, effektiv och med kort uppdateringstid eftersom denna modell hanterar bara relevanta objekt och bara ett objekt åt gången. 25

KÄLLFÖRTECKNING FMI.se. (2013). Uppdragsavtalet. [www]. Hämtat 28.03 2013. http://www.fmi.se/uppdragsavtalet Larry, P., Bruce, D. (2007). Computer Networks: A systems approach. 4 Ed. Burlington: Morgan Kaufmann. phpmyadmin.net. (2013). Bringing MySQL to the web. [www]. Hämtat 04.05 2013. http://www.phpmyadmin.net/home_page/index.php Techopedia.com. (2013). Data Mirroring. [www]. Hämtat 28.03 2013. http://www.techopedia.com/definition/ 1068/data-mirroring Quedro.com. (2013). Who we are. [www]. Hämtat 25.03 2013. http://www.quedro.com/ Quedro.com. (2013). Business system integration. [www]. Hämtat 25.03 2013. http://www.quedro.com/web-mobile/ 26