Utveckling av en Windows Service för databassynkronisering med Microsoft Sync Framework

Storlek: px
Starta visningen från sidan:

Download "Utveckling av en Windows Service för databassynkronisering med Microsoft Sync Framework"

Transkript

1 Utveckling av en Windows Service för databassynkronisering med Microsoft Sync Framework Christian Vik Examensarbete för ingenjörsexamen (YH) Utbildningsprogrammet för informationsteknik Vasa 2011

2 EXAMENSARBETE Författare: Christian Vik Utbildningsprogram och ort: Informationsteknik, Vasa Handledare: Kaj Wikman Titel: Utveckling av en Windows service för databassynkronisering med Microsoft Sync Framework Datum Sidantal 45 Abstrakt Detta examensarbete utfördes åt Hogia Ferry Systems. Examensarbetet behandlar utvecklingen av ett synkroniseringsverktyg för databaserna som företagets produkter använder. Lösningen kommer att ersätta ett befintligt system för synkronisering. Fokus för detta projekt ligger på utvecklingen av en synkroniseringstjänst för multipla typer av databaser. Databaserna som stöds är SQL Server, Informix samt Oracle. För utvecklingen av själva synkroniseringen har Microsoft Sync Framework använts. För att få konfigureringen och mappningen av databaserna dynamisk görs all konfigurering via XML-filer. För schemaläggning av synkroniseringen har Quartz.NET använts. Synkroniseringstjänsten har stöd för både schemalagd samt manuell synkronisering. Projektet utvecklades på Microsoft.NET plattformen och utvecklingen skedde i Visual Studio 2010 med programmeringsspråket C#. Resultatet blev ett fungerande synkroniseringsverktyg implementerat som en Windows Service samt en klient skriven i WPF där kommunikationen med servicen sker via WCF. Språk: svenska Nyckelord: databassynkronisering, Sync Framework, Quartz.NET, XML, WPF, WCF Förvaras: Examensarbetet finns tillgängligt antingen i webbiblioteket Theseus.fi eller i Tritonia.

3 OPINNÄYTETYÖ Tekijä: Christian Vik Koulutusohjelma ja paikkakunta: Tietotekniikka, Vaasa Ohjaaja: Kaj Wikman Nimike: Windows service tietokannan synkronoinnin kehittäminen Microsoft Sync Frameworkilla Päivämäärä Sivumäärä 45 Tiivistelmä Tämä opinnäytetyö tehtiin Hogia Ferry Systemsille. Tutkintotyö käsittelee synkronointityökalun kehittämisen tietokantaan, jota yrityksen tuotteet käyttävät. Ratkaisu tulee nykyisen ole synkronointijärjestelmän tilalle. Tämä projekti kohdistaa synkronointipalvelun kehittämisen useimmille eri tietokannoille. Tietokannat, joita tuetaan ovat SQL Server, Informix sekä Oracle. Synkronointityön kehittämiseksi olen käyttänyt Microsoft Sync Frameworkia. Jotta saataisiin tietokantojen kokoonpano ja kartoitus dynaamiseksi, teen kaiken kokoonpanon XML-tiedostojien avulla. Synkronoinnin ajastamiseen olen käyttänyt Quartz.NETiä. Synkronointipalvelulla on tuki sekä ajastetulle että käsin tehtävälle synkronisoinnille. Projekti kehitettiin Microsoft.NET perustalla ja kehitys tapahtui Visual Studio 2010:llä ohjelmointikielellä C#. Tuloksena saatiin toimiva synkronointityökalu toteutettuna kuten Windows Service sekä WPF:ssä kirjoitettu asiakasohjelma missä huollon kommunikaatio tapahtuu WCF:n kautta. Kieli: ruotsi Avainsanat: tietokannan synkronointi, Sync Framework, Quartz.NET, XML, WPF, WCF Arkistoidaan: Opinnäytetyö on saatavilla joko ammattikorkeakoulujen verkkokirjastossa Theseus.fi tai kirjastossa.

4 BACHELOR S THESIS Author: Christian Vik Degree programme: Information Technology, Vaasa Supervisor: Kaj Wikman Title: Development of a Windows Service for database synchronization using Microsoft Sync Framework Date Number of pages 45 Abstrakt This Bachelor s thesis was made for Hogia Ferry Systems. The project deals with the development of a synchronization tool for the databases that the company s products use. The solution will replace an existing synchronization system. The focus for this project is the development of a synchronization service for multiple types of databases. The supported databases are SQL Server, Informix and Oracle. Microsoft Sync Framework has been used for the development of the synchronization. To get the configuration and mapping dynamic, all the configuration are stored in XML files. Quartz.NET has been used for the scheduling of the synchronization. The synchronization service has support for both scheduled and manual synchronization. The project was written with C# for the Microsoft.NET framework using Visual Studio The result is a working synchronization tool implemented as a Windows Service along with a Client written in WPF where the communication is done with WCF. Language: Swedish Key words: database synchronization, Sync Framework, Quartz.NET, XML, WPF, WCF Filed at: The thesis is available either at the web library Theseus.fi or at Tritonia Academic Library, Vaasa.

5 Innehållsförteckning Innehållsförteckning Förkortningar och definitioner 1 Inledning Företaget Hogia Hogia Ferry Systems Projektbeskrivning Existerande lösning Begränsningar & krav Programvara och utvecklingsverktyg Microsoft Visual Studio 2010 Professional Databaserna Microsoft SQL Server 2008 R IBM Informix Oracle Microsoft.NET Framework Microsoft Sync Framework Entity Framework Quartz.net C# WPF Windows Presentation Foundation WCF Windows Communication Foundation Utförande Inledning Sync Framework vs Entity Framework Synkroniseringstjänsten Implementation av Windows servicen Implementation av WCF-tjänster Konfiguration Schemaläggaren Synkroniseringsmodulen Synkroniseringsmotorn... 26

6 3.4 Klienten Konfigureringsmöjligheter Manuell synkronisering Testning Resultat Diskussion Arbetets gång Tekniken Kommentarer Källförteckning... 43

7 Förkortningar och definitioner Android Android är ett operativsystem för bl.a. mobiltelefoner och utvecklas främst av Google och Open Handset Alliance. Arbetsminne Assembly BOOKIT BSD COM COM+ Databas Debugger DLL Arbetsminne är det minne som används för att lagra de datorprogram som körs och dess data. En assembly i.net är ett kompilerat kodbibliotek som används i den slutliga produkten. Dessa kan byggas som två olika typer: proces-assembly som är körbara program, EXE-filer, och libraryassembly som är en DLL-fil. BOOKIT är ett system bestående av flera olika applikationer för färjebokningar. Mer om detta kan läsas i kap BSD, Berkeley Software Distribution, utvecklades under och 1980-talet och är ett Unix-liknande operativsystem. Några operativsystem som används idag och som är baserade på detta är bl.a. FreeBSD, OpenBSD och Mac OS X. COM, Component Object Model, är en teknik som används för att kommunicera mellan olika objekt inom ett eller flera olika program. COM är plattforms- och språkoberoende. COM+ är en vidareutveckling av COM. I detta dokument behandlas relationsdatabaser. En relationsdatabas är en typ av databas som organiserar data i olika tabeller där kolumner i dessa tabeller kan ha en relation till andra tabeller. Dessa databaser behandlas mer i kap En debugger, översätts ibland till avlusare, är ett program som kan användas för att analysera ett program och dess minne under körning. DLL, Dynamic Linked Library, är Microsofts implementation av delade programbibliotek. Detta betyder att en fil som innehåller specifika programfunktioner kan användas av flera olika program för att man t.ex. inte skall behöva inkludera gemensam kod i flera program.

8 GNU GNU GPL GNU LGPL Implementera Interface ios Java Klassbibliotek Klient GNU-projektet skapades av Richard Stallman 1984 med målet att utveckla ett fritt UNIX-liknande operativsystem. GNU är en rekursiv akronym som står för GNU is Not Unix, vilket på svenska blir GNU är inte Unix. GNU går under licensen GNU GPL GNU General Public License är en licens för fri programvara. Kod som är under GPL-licens är helt fri att använda och förbättra, men då man vidaredistribuerar programvaran måste man göra det under samma licens. Detta betyder att källkoden måste vara öppen för de program som är under GPL-licensen. Licensen i sin helhet hittas på adressen ( ) GNU Lesser General Public License är en licens för fri programvara. Kortfattat får man använda kod från ett projekt som är under LGPL-licens i sitt eget projekt, men måste då använda samma licens för det egna projektet. Det är dock tillåtet att länka till ett externt bibliotek under LGPL-licens fastän man använder egen licens själv. Licensen i sin helhet hittas på webbadressen ( ) Att implementera en metod är den praktiska tillämpningen av metoden. Ett interface, eller gränssnitt, inom programmering är en typ av kontrakt. Ett objekt implementerar ett interface för att garantera att det stöder vissa operationer, på så vis kan man vara säker på att en viss metod finns på olika objekt om de bara implementerar det rätta interfacet. ios är ett operativsystem för mobiltelefoner och surfplattor och är utvecklat av Apple. Java är ett plattformsoberoende objektorienterat programmeringsspråk. Java nämns mer i kap Ett klassbibliotek är, i Windows miljö, oftast en DLL-fil. Ett klassbibliotek är en samling klasser och datastrukturer som kan användas till ett eller flera olika program. En klient är oftast en typ av program som gör det möjligt att arbeta mot ett annat program som kan köras på någon annan dator.

9 Konstruktor Linux Mac OS X ORM P2P Plugin Proxy Reflection RSS Server Synkronisering SQL Inom programmering är en konstruktor en speciell funktion i ett objekt som alltid körs då objektet skapas. Linux är en fri UNIX-liknande kärna för operativsystem som skapades av Linus Torvalds. I de flesta fall då man talar om Linux menar men egentligen GNU/Linux som är ett operativsystem som baserar sig på Linux-kärnan samt program från GNU-projektet. Mac OS X är ett operativsystem för Apples Macintosh-datorer. ORM, Object/Relational Mapping, är ett system för att konvertera databastabeller till objekt inom objektorienterad programmering. P2P, eller peer-to-peer, är ett nätverk som inte fungerar enligt server-klient-principen utan noderna i nätverket är ihopkopplade med andra noder. Ett plugin, kan även kallas insticksprogram eller modul, är ett program som inte körs som ett friståendeprogram utan som en del av ett annat program. Plugin används oftast för att lägga till mer funktionalitet till ett program. En proxy är vanligtvis en server som ligger mellan en klient och en annan server. Proxyns uppgift är då att dirigera om trafiken mellan klienten och den andra servern. Reflection är en process där ett datorprogram kan granska och modifiera sin egen struktur och beteende under programmets körning. RSS är en samling XML-baserade format som används för att publicera ofta uppdaterat material på webbsidor som t.ex. nyheter på nyhetssidor. Ett RSS-dokument innehåller oftast en full artikel eller en sammanfattning samt publiceringsdatum. Ett serverprogram är ett datorprogram som man kan ansluta till från ett klientprogram från antingen samma dator eller från någon annan dator eller mobil enhet över nätverk/internet. Synkronisering är då två eller flera objekt görs att t.ex. vara lika eller innehålla samma information vid en viss tidpunkt. SQL (Structured Query Language) är ett standardiserat språk som används för relationsdatabaser för att hämta eller modifiera data.

10 TCP UNIX Windows Windows Service WS WSDL XML TCP (Transmission Control Protocol) är ett dataöverföringsprotokoll som används t.ex. för kommunikation över internet. UNIX är en grupp operativsystem för datorer och började utvecklas Windows är en serie operativsystem för datorer och utvecklas av Microsoft. Första versionen av Windows släpptes 1985 En Windows Service är ett program som ofta är utvecklat för att köras under lång tid och utan att behöva interaktion av användare. En Windows Service kan konfigureras att starta redan då Windows startar eller genom manuell start. Då en Windows Service är igång körs den i bakgrunden i systemet och om man behöver konfigurera eller arbeta mot den används oftast någon typ av klient, då servicen inte har något eget grafiskt gränssnitt. WS (Web Services), webbtjänster, är en metod för datorprogram att kommunicera med varandra över nätverk. WSDL (Web Services Description Language) är ett XML-baserat format för att beskriva funktionaliteten hos, och hur man anropar, en webbtjänst (WS). XML (extensible Markup Language) är ett utbyggbart språk som främst används för att utväxla data mellan olika system eller program. Datan i ett XML-dokument skickas som text som även går att läsas av människor.

11 1 1 Inledning Examensarbetet utfördes åt företaget Hogia Ferry Systems, som är ett medelstort mjukvaruföretag i Korsholm. Examensarbetets uppgift gick ut på att planera och utveckla ett verktyg för att hålla databaser synkroniserade. De databaser detta främst gäller är databasen som används för deras huvudprodukt, kallad BOOKIT, men även övriga databaser kommer att gå att synkroniseras. 1.1 Företaget Hogia Programvaruföretaget Hogia grundades av Bert-Inge Hogsved 1980 i Stenungssund i Sverige och är ett helt familjeägt och självfinansierat företag. I dag består Hogia-gruppen av ett tjugotal företag som alla håller på med mjukvara i någon form. Varje enskilt bolag är komplett på det sättet att de ansvarar för allt från utveckling och försäljning till kundservice inom sitt verksamhetsområde. Bland de system som utvecklas av Hogia-företagen återfinns bl.a. system för kollektivtrafiken, färjetrafik, transport & lagerlogistik, terminalsystem och redovisningssystem Hogia Ferry Systems Hogia Ferry Systems (HFS) är ett av företagen i Hogia-koncernen och finns i Korsholm, Finland. HFS grundades redan 1981 och hette då Consy. I samband med att man gick ihop med Hogia-gruppen byttes namnet till Hogia Ferry Systems. Idag har HFS ca 40 anställda. HFS har sedan 1987 utvecklat och sålt ett bokningssystem för färjetrafik kallat BOOKIT. BOOKIT är ett system bestående av flera olika applikationer för färjebokningar. All information i BOOKIT:s olika applikationer sparas i en gemensam databas vilket ger den möjligheten att alla applikationer kan fritt dela information mellan varandra. Även om BOOKIT är en standardprodukt är den byggd för att vara modulär, skalbar och utökningsbar så att kunden får den funktionalitet de behöver. BOOKIT består bl.a. av följande applikationer: - BOOKIT Reservation - BOOKIT Check-In - BOOKIT Finance - BOOKIT Reports

12 2 - BOOKIT Quick Sale - Web Application - BOOKIT SOA Plattform. BOOKIT var från början skrivet i Informix 4GL, men 2001 började man utveckla en version i Microsoft.NET. I dag sker all nyutveckling på.net-versionen och endast underhåll på den äldre 4GL-versionen för de kunder som fortfarande inte uppgraderat till.netversionen. 1.2 Projektbeskrivning Projektet går ut på att ersätta det gamla synkroniseringsverktyget med en snabbare och mer tillförlitligt lösning. Den nya synkroniseringslösningen kommer att implementeras som en Windows-service. Servicen kommer att göras så att den kan köras på i princip vilken dator som helst i nätverket, bara den har tillgång till de databaser som ska synkroniseras. För att kunna konfigurera synkroniseringsservicen, t.ex. att ställa in vilken/vilka databaser som ska synkroniseras och när, kommer också en klient att utvecklas. Klienten och servern ska dessutom kunna kommunicera med varandra både såväl lokalt som över nätverket Existerande lösning Den existerande lösningen som används för synkronisering av databaserna är ett plugin för TaskScheduler som är ett eget utvecklat program som används för att köra schemalagda aktiviteter. Den plugin för TaskScheduler som används för synkroniseringen är begränsad till att synkronisera enbart en tabell åt gången, vilket betyder att för att kunna synkronisera hela databasen måste flera instanser av samma plugin köras. Detta medför problem i och med att flera, eller i värsta fall alla, tabeller kan börja synkroniseras under samma tillfälle. Detta kan sänka prestandan betydligt och det betyder också att man inte kan ha några relationer mellan tabellerna i databasen som det ska synkroniseras till. Själva synkroniseringen fungerar så att pluginen kör ett SQL-kommando mot BOOKIT:s databas för att se vilka rader som ändrats sedan senaste synkroniseringen. Data hämtas sedan från databasen i batchar med ett specificerat antal rader per batch och kopieras sedan in i CRM-databasen. CRM-databasen används av kunderna t.ex. för att ta ut tyngre statistik rapporter som annars skulle påverka prestandan negativt för BOOKIT.

13 1.2.2 Begränsningar & krav Ett av kraven på den nya synkroniseringen är att den måste stöda tre typer av databaser, MS SQL Server, Oracle och Informix. Detta medförde också att de ramverk och klassbibliotek som används måste stöda dessa typer av databaser. Det andra kravet var att synkroniseringen skulle gå att konfigurera via något verktyg så att man inte behöver ändra i programmets kod varje gång databasen ändras. Utöver detta är det enda övriga kravet att synkroniseringen ska köras under Windows Vista eller nyare. 3

14 4 2 Programvara och utvecklingsverktyg Det utvecklingsverktyg som använts för all programmering och utveckling av programmet är Microsofts Visual Studio 2010 och det programmeringsspråk som främst använts är C#, Visual Basic.NET har också använts i viss mån men endast för de projekt som refereras från BOOKIT. C# valdes som språk både p.g.a. egen erfarenhet, men också därför att största delen av den dokumentation och exempelkod som finns över de använda ramverken och komponenterna är gjorda i C#. Några alternativ till Visual Studio är MonoDevelop och SharpDevelop. MonoDevelop är en fri utvecklingsmiljö som stöder både Mono och Microsoft.NET samt kan köras på Linux, Windows och Mac OS X. MonoDevelop har även stöd för C# och Visual Basic.NET. SharpDevelop är, liksom MonoDevelop, en fri utvecklingsmiljö med stöd för bl.a. C# och Visual Basic.NET. Valet föll ändå på att använda Visual Studio för utvecklingen, dels för att det redan används för övriga projekt och vissa av dessa projekt kommer att refereras av synkroniseringsprojekten och dels för att många av de program och tjänster som kommer att användas är från Microsoft och integrationen med Visual Studio är bättre. De databaser som synkningen har blivit implementerad och testad med är MS SQL Server 2008 R2 Standard, Oracle 11g och Informix 10 och Dessa databaser var inte valbara eftersom det är de databaser som redan stöds och används av företagets andra produkter. 2.1 Microsoft Visual Studio 2010 Professional Valet av Visual Studio 2010 framför Visual Studio 2008 var på grund av att 2010 har stöd för.net 4, vilket behövs för att kunna använda Entity Framework 4. Microsoft Visual Studio 2010 är en integrerad utvecklingsmiljö från Microsoft som används främst för programutveckling. Visual Studion kan användas för utveckling av både konsolapplikationer och grafiska applikationer, som t.ex. Windows-program och webbanpassade applikationer och system. Visual studion har stöd för bland annat följande programmeringsspråk: C/C++, VB.NET (Visual Basic.NET), C# (Visual C#) och F#. /16/ Kod-editorn i Visual Studio har support för bl.a. IntelliSense som är Microsofts implementation av kod auto-komplettering, kodomstrukturering (eng. code refactoring) och syntaxmarkering (eng. syntax highlighting). Den inbyggda debuggern har bl.a. stöd för program skrivna både.net och i native windows-språk som t.ex. C++. Debuggern har också stöd för s.k. breakpoints, som gör att programmet kan stanna och vänta på en given kodrad så

15 5 att man kan undersöka hur olika variabler påverkats och vid behov ändra koden utan att behöva starta om programmet som testas. /8/ I övrigt har Visual Studio stöd för integration av tredjeparts-komponenter och ramverk. Beroende på vilken typ av komponent man installerar läggs även extra funktionalitet in i Visual Studio, t.ex. rapportverktyg brukar komma med en designer för att skapa layouten till rapporten. Visual studio 2010 har även stöd för s.k. extensions som gör att man kan installera ytterligare funktionalitet direkt från programmet. Figur 1. Visual Studio 2010 kodeditor. 2.2 Databaserna Synkroniseringstjänsten kommer att stöda tre olika databaser, Microsoft SQL Server, Informix och Oracle. Orsaken till det är att våra nuvarande produkter redan stöder dessa, så synkroniseringen måste också göra det. Alla dessa databaser är av typen relationsdatabaser och använder sig av SQL-kommandot. Ett SQL-kommando är en fråga eller kommando till databasen för att t.ex. hämta eller manipulera data. SQL är standardiserat, men alla dessa databaser har lite olika variationer av språket som måste tas i beaktande då synkroniseringstjänsten skrivs. Här följer exempel på fyra av de kanske mest använda SQL-kommandona: SELECT column1, column2 FROM table1 WHERE column3 = value Figur 2. SQL Select-kommando

16 6 Detta kommando hämtar kolumnerna column1 och column2 från tabellen table1 där kolumnen column3 har värdet value. DELETE FROM table1 WHERE column3 = value Figur 3. SQL Delete-kommando Detta kommando tar bort alla rader från tabellen table1 där kolumnen column3 har värdet value. INSERT INTO table1 (column1, column2, column3) VALUES ( value1, value2, value ) Figur 4. SQL Insert-kommando Detta kommando lägger in en rad i tabellen table1 där kolumnen column1 får värdet value1, column2 värdet value2 och column3 värdet value3. UPDATE table1 SET column1= value1, column2= value WHERE column3 = value Figur 5. SQL Update kommando Detta kommando uppdaterar de rader i tabellen table1 där kolumnen column3 har värdet value. I de uppdaterade raderna kommer värdet i kolumn column1 att få värdet value1 och kolumn column2 värdet value2. En relationsdatabas är en typ av databas där informationen är organiserad i tabeller, eventuellt med relationer inom en tabell eller med andra tabeller. En rad i en tabell kan ofta motsvara någon typ av objekt, t.ex. en person, ett företag eller en beställningsorder. Ofta används åtminstone en restriktion i en tabell, den s.k. primärnyckeln som identifierar unika rader i en tabell. Om man har en tabell över t.ex. beställningsorders så kunde ordernummern vara primärnyckel. Främmande nycklar är en hänvisning till en nyckel i en annan tabell, t.ex. om man har en tabell för personer och en tabell för beställningar så kan det finnas en främmande nyckel mellan dessa två tabeller som kopplar ihop beställningarna med den person som gjorde dem. Alternativ till relationsmodellen som används av relationsdatabaser är: Flat modell Består av en tvådimensionell tabell där all data lagras. Hierarkisk modell I en hierarkisk modell är data organiserad i en trädstruktur, t.ex. Parent-Child relation där en parent kan ha flera child noder, men en child nod kan bara ha en parent. Förutom databaser följer t.ex. XML denna typ.

17 Nätverksmodell Ganska lik den hierarkiska modellen förutom att en child kan relatera till flera parents. Dimensionsmodell Dimensionsmodellen är en special anpassning av relationsmodellen som används för t.ex. summeringar i OLAP. I dimensionsmodellen finns en fakta tabell som beskrivs av s.k. dimensions och measures tabeller. En dimension ger ett sammanhang över fakta tabellen medan en measure är en storhet som beskriver faktatabellen, t.ex. antal eller intäkter. Objekt-relationsmodell Objekt-relationsmodellen är lika relationsmodellen men med en objektorienterad databasmodell Microsoft SQL Server 2008 R2 Microsoft SQL Server är en databashanterare från Microsoft. SQL Server är av typen relationsdatabas. Som frågespråk används SQL, eller närmare bestämt T-SQL som står för Transact-SQL. Första versionen av Microsoft SQL Server, 1.0, släpptes 1989 och den senaste versionen ( ) är 10.5 och går under namnet SQL Server 2008 R2. Till skillnad från flera av de andra stora databaserna kan Microsoft SQL Server numera enbart köras under operativsystemet Windows IBM Informix IBM Informix är en produktfamilj av relationsdatabaser (eng. Relational Database Management System) (RDBMS). Informix-projektet skapades av företaget Relational Database Systems Företaget bytte sedan namn till Informix Software köpte IBM upp Informix Softwares databasteknologi och allt däromkring samt dess kundbas. /3/ IBM Informix är designat från grunden för enkel skalbar administration och många funktioner som tillåter Informix att försvinna in i en applikation. I Informix har man också satsat på tillförlitlighet och flexibel replikering samt redundans alternativ för kontinuitet i kundens verksamhet. Informix kan köras på följande plattformar: Windows, Mac OS X, Linux, BSD, UNIX och z/os./4/ Oracle Oracle, eller Oracle Database, är liksom SQL Server och Informix också av typen relationsdatabas, eller närmare bestämt ORDBMS som står för Object-Relational Database Management System. ORDBMS liknar en traditionell relationsdatabas men med en objektorienterad databasmodell där objekt, klasser och arv stöds direkt i databasscheman och i frågespråket. Oracle använder SQL som frågespråk. 7

18 8 Oracle produceras och marknadsförs av Oracle Corporation och grundades Oracle kan köras på följande plattformar: Windows, Mac OS X, Linux, UNIX och z/os. /13/ 2.3 Microsoft.NET Framework Microsoft.NET Framework är ett programvaruramverk för Microsofts Windows operativ system..net-ramverket har kommit med som standard sedan Windows Server 2003, vilket betyder att alla Windows Server-versioner sedan 2003 samt Windows Vista och Windows 7 har.net ramverket färdigt installerat vid leverans. Microsoft.NET har stöd för flera olika programmeringsspråk, inklusive C# och VB.NET, och stöder också att ett program kan skrivas med flera olika programmeringsspråk. Basklassbiblioteket ger sådan funktionalitet som användargränssnitt, dataåtkomst, databasanslutningar, kryptografi, webapplikationer och nätverkskommunikation. Detta klassbibliotek används då av programmerare tillsammans med eventuella andra klassbibliotek samt egen utvecklad kod för att skapa de önskade funktionerna/applikationerna. Program som är skrivna i.net-ramverket körs i en mjukvarumiljö under namnet Common Language Runtime (CLR). CLR fungerar som en virtuell maskin så att programmerarna inte behöver ta i beaktande de specifika hårdvarukonfigurationerna. /11/ Ett alternativ till Microsoft.NET är Mono. Mono är ett gratis öppen källkodsbaserat projekt som leds av Novell för att skapa en Ecma-standard.NET-kompatibel uppsättning verktyg, bl.a. en C# kompilerare och CLR. Till skillnad från Microsoft.NET, som bara fungerar i Windows, fungerar Mono på bl.a. Android, BSD, ios, Linux, Mac OS X och Windows. Mono har full support för C# 4.0, men flera av de teknologier som finns i Microsoft.NET saknas ännu i Mono, bl.a. WPF, Entity Framework, Workflow Foundation och WCF. 2.4 Microsoft Sync Framework Microsoft Sync Framework är en omfattande synkroniseringsplattform med möjligheter för samarbete och off-line-läge för applikationer och tjänster mellan datorer och mobila enheter. En av huvudfunktionerna i Sync Framework är att man kan skapa egna providers, vilket gör det möjligt att synkronisera i princip vilken typ av data som helst. En provider för en viss typ av datakälla gör det möjligt att synkronisera denna typ. Providers som finns med i Sync Framework är: - Databassynkroniseringsprovider för databaser med ADO.NET drivrutiner. - Filsynkroniseringsprovider för filer och kataloger. - Webbsynkroniseringsprovider för t.ex. RSS.

19 9 Sync Framework kan användas för att arbeta med data utan att behöva vara uppkopplad mot datakällan för att sedan då man är färdig bara skicka ändringarna. Då en klient skickat in ändringar finns också möjligheter att kunna meddela övriga klienter att ändringar skett och på så vis hålla dem synkroniserade, s.k. publish/subscribe sync, samt P2Psynkronisering. /7/ Sync Framework har även inbyggd funktionalitet för upptäckande av konflikter, d.v.s. när den data en klient ändrat redan blivit ändrad av en annan klient sedan den senaste synkroniseringen, och kan då markera dem för manuell bearbetning eller använda förhandsdefinierade metoder. För att synkronisera data mellan t.ex. två databaser behövs inte direkt tillgång till databaserna, utan Sync Framework kan också använda bl.a. web services och WCF bara det finns en proxy för att abstrahera bort datakällan. Klienterna delas upp i tre olika kategorier: - Full deltagare (Full Participant) - Partiell deltagare (Partial Participant) - Enkel deltagare (Simple Participant) En full deltagare är sådana enheter där utvecklarna kan installera programvara direkt på enheten, t.ex. en dator eller smarttelefon är sådana enheter. En partiell deltagare är en sådan enhet som kan lagra data men där man inte kan köra egna program. Exempel på sådana enheter är t.ex. masslagringsenheter. En enkel deltagare är sådana som bara kan ge information då man frågar efter den. Dessa enheter kan inte lagra eller ändra informationen. RSS är ett exempel på en sådan. 2.5 Entity Framework 4 ADO.NET Entity Framework (EF) är ett ORM ramverk för.net-ramverket. Syftet med EF är att abstrahera bort relationsschemamodellen som används i en relationsdatabas till objekt/klasser i.net. Detta medför då att man i programkoden inte behöver känna till den exakta databasstrukturen samt att det blir lättare att anpassa programmet för ändringar i databasen. Entity Framework är databasoberoende och använder sig av ADO.NET för kommunikation med databaser. Detta betyder att EF skall vara kompatibel med en databas om det finns en

20 10 ADO.NET Provider för den. EF använder sig i grunden av SQL-kommandon för att kommunicera med databasen, men dessa kommandon exponeras aldrig mot användaren utan denne använder sig av de metoder EF erbjuder för att arbeta mot databasen. Man kan däremot inte editera databasstrukturen via EF. En provider för EF finns åtminstone för följande databaser: Sql Server MySQL Oracle SQLite PostgreSQL DB2 Informix Första versionen av EF (EFv1) inkluderades med.net 3.5 Service Pack 1 samt Visual Studio 2008 Service Pack 1. Den andra versionen av EF, kallas Entity Framework 4.0, inkluderades som en del av.net 4.0. Det finns också flera alternativ till Entity Framework, här nedan följer några: NHibernate SubSonic Mindscape s LightSpeed NHibernate är liksom Entity Framework en ORM-lösning för Microsoft.NET-ramverket. NHibernate är en portad version av Hibernate som är skriven i Java och är i nuvarande version, 3.0.0, en fri och öppen källkodsprojekt som går under licensen GNU LGPL. Från och med version har NHibernate stöd för Microsoft.NET 3.5. /12/ SubSonic har mindre funktionalitet än NHibernate men fokuserar i stället på att vara mer flexibelt och snabbare att använda. SubSonic fungerar dessutom mot de flesta databaser./1/ LightSpeed, till skillnad från övriga nämnda alternativ, är inte en gratis produkt. Det finns en fri Express-version, men den är begränsad till 8 modeller/klasser. Förutom stöd för Microsoft.NET har LightSpeed även stöd för Mono samt flera olika databaser. /9/

21 2.6 Quartz.net Quartz.NET är ett jobbschemaläggningssystem med öppen källkod. Quartz.NET är en portad version av ett jobbschemaläggningsramverk skrivet i programmeringsspråket Java. Quartz.NET kan köras som en del av ett annat program eller som ett eget program. Det kan också köras som ett kluster av flera program för belastningsbalans och/eller redundans funktionalitet. Quartz.NET:s jobbschemaläggning har stöd för s.k. triggers som bl.a. anger vilka tidpunkter ett jobb ska köras. En trigger behöver också start- och eventuellt stoppdatum för när den skall vara aktiv. En trigger kan skapas med kombinationer av dessa direktiv: på en given tidpunkt på dagen på givna veckodagar på givna dagar i månaden eller året upprepas ett specificerat eller oändligt antal gånger upprepas till en specificerad tid upprepas med ett intervall. Nuvarande version av Quartz.NET, 1.0.3, har stöd för.net 1.1 till 3.5, men fastän det inte har officiellt stöd för.net 4 ännu så har det fungerat utan problem i detta projekt. /14/ 2.7 C# Visual C# är Microsofts implementering av programmeringsspråket C#. C# är ett programmeringsspråk designat för att utveckla variationer av program för.net-ramverket. Visual Studio har fullt stöd för C# med bl.a. kodeditorn, kompilerare, projektmallar, designer och en kraftfull samt lättanvänd debugger. /15/ Eftersom C# har en hel del influenser från C++ liknar dessa två språk varandra i viss mån. Då även Java också bl.a. baserar sig på C++, även om C# och Java tagit sina egna spår, går det relativt enkelt att förstå program skrivna i de andra språken och att porta ett program mellan de olika språken. Utöver dessa tre vanligt förekommande språk finns även Visual Basic.NET (VB.NET) som, liksom C#, baserar sig på.net-ramverket. Funktionsmässigt är det väldigt lika C# då de funktioner som finns i.net-ramverket är samma oberoende språk, men syntaxmässigt är VB.NET väldigt olik de olika C-deriverade språken. 11

22 Nedan följer det klassiska Hello World-programmet i en version för vardera av de fyra språken. Hello World-programmets enda syfte är att skriva ut texten Hello, World! på skärmen då det körs. #include <iostream> void main() { std::cout << "Hello, world!"; } 12 Figur 6. Hello World i C++. using System; class ExampleClass { static void Main() { Console.WriteLine("Hello, world!"); } } Figur 7. Hello World i C#. public class HelloWorld { public static void main(string[] args) { System.out.println("Hello, World!"); } } Figur 8. Hello World i Java. Imports System Module Module1 Sub Main() Console.WriteLine("Hello, world!") End Sub End Module Figur 9. Hello World i Visual Basic.NET. 2.8 WPF Windows Presentation Foundation WPF är ett grafiskt system för att skapa och rendera grafiska användargränssnitt för Microsoft Windows-baserade applikationer. WPF har funnits med i.net-ramverket sedan version 3.0 och har kommit som standard i Windows Vista, Windows 7 och Windows Server Det finns även tilläggskomponenter för Windows XP SP2/SP3 och Windows Server 2003 för att installera stöd för WPF.

23 13 WPF är främst menat för programutvecklare och grafiker som vill skapa moderna och användarvänliga användargränssnitt utan att behöva lära sig många olika teknologier. Några av funktionerna i WPF är: Bred integration WPF har inbyggt stöd för 3D (via DirectX), video, ljud, text hantering och vanliga 2-dimensionella grafiska kontroller som alla kan användas med samma programmeringsmodell. Med tidigare alternativ har man behövt lära sig de olika delarna separat och försöka få dem integrerade med varandra så gott det gått. Upplösningsoberoende Program skrivna i WPF har den möjligheten att de kan förminskas och förstoras, både hela fönster eller vissa komponenter, oberoende av upplösningen på skärmen utan att för den skull se förstörda ut. Detta är till stor del möjligt p.g.a. att WPF använder vektorgrafik. Hårdvaruacceleration Eftersom WPF är byggt ovanpå Direct3D så finns det fullt stöd för hårdvaruacceleration i WPF. Allt innehåll i en WPF-applikation, oberoende av om det är 2D eller 3D, konverteras till 3D-trianglar samt andra Direct3D-objekt som sedan renderas av hårdvaran. Om hårdvaran inte stöder 3D faller renderingen automatiskt över till mjukvarurendering som dock inte är lika snabb som hårdvarurenderingen då den belastar datorns processor mer. Deklarativ programmering I WPF är användargränssnittet separerat från programlogiken. Användargränssnittet byggs upp av XAML, Extensible Application Markup Language, -filer. WPF och XAML kan liknas vid hur man använder HTML för att bygga upp utseendet på en webbsida. Genom att separera programlogiken och användargränssnittet finns den möjligheten att grafiker kan lättare och snabbare skapa eller ändra utseendet på ett program utan att nödvändigtvis kunna programmera. Enkel distribuering WPF, liksom Windows Forms, har stöd för olika former av distribuering. Det är möjligt att använda bl.a. Windows Installer eller ClickOnce för vanliga program eller att köra programmet i en webbläsare. /10/

24 14 Figur 10. Visual Studio 2010 WPF designer med XAML-editor. 2.9 WCF Windows Communication Foundation WCF, Windows Communication Foundation eller Indigo, som dess kodnamn var under utvecklingen, är en teknologi som gör det möjligt för olika program eller delar av program eller system att kommunicera med varandra. Det är m.a.o. ett ramverk för att bygga s.k. serviceorienterade applikationer. Några av de funktioner som finns i WCF: SOA Service-Oriented Architecture innebär att distribuerade informationssystem organiseras som kommunicerande tjänster. SOA kan bestå av olika entiteter enligt figuren nedan. /6/ Figur 11. Schema över en SOA arkitektur.

25 15 Förklaring av figur 11: - Service Consumer är t.ex. en applikation som behöver en service. Det är denna entitet som söker upp servicen från serviceregistret, tar upp en förbindelse och kör servicens funktion. Service Consumern kör servicen genom att sända ett anrop enligt kontraktet. - Service Providern är en adresserbar entitet i nätverket som accepterar och kör anrop som kommer från Consumern. Providern publicerar sitt kontrakt i registret så att Consumern kan få tag i det. - Service Registry är en entitet som accepterar och lagrar kontrakt från service providers och ger ut dessa till service consumers. - Ett Contract är en specifikation över hur en consumer skall kommunicera med providern. Serviceorienterat En serviceorienterad arkitektur har den fördelen att servicen är löst kopplad istället för hårdkodad mellan olika applikationer. Att vara löst kopplade betyder att vilken klient på vilken plattform som helst kan ansluta till servicen så länge de väsentliga kontrakten uppfylls. Interoperabilitet WCF kan samarbeta med flera andra olika teknologier, som t.ex. Web Service Protocol, COM+, COM och.net remoting. Servicemetadata WCF har stöd för att publicera servicemetadata i industristandarder som WSDL, XML och WS. Metadatan kan sedan användas för att automatiskt generera och konfigurera klienter för att kunna ansluta till WCF-servicen. Data contract För att hantera den data som skickas över WCF kan man skapa klasser som representerar den. WCF genererar sedan automatiskt det metadata som klienten behöver. Säkerhet Meddelanden som går över WCF kan krypteras och man kan också göra så att en användare måste identifiera sig före den kan ta emot meddelanden. Säkerheten kan implementeras med standarder som t.ex. SSL eller WS- SecureConversation. /5/ För att skapa en WCF-server och -klient behövs relativt lite kod. Här nedan följer ett klassdiagram samt exempel på en enkel implementation för en server/klient.

26 16 Figur 12. Klassdiagram för ett WCF-kontrakt samt implementationen. Först skapas service kontraktet som WCF-servicen kommer att implementera. Detta kontrakt exponeras senare till klienten så att den får informationen den behöver för att kunna anropa servicen. using System.ServiceModel; namespace SimpleWCF { [ServiceContract] interface IService { [OperationContract] int DoAddition(int Value1, int Value2); } } Figur 13. Definiering av ett WCF-kontrakt. Efter att kontraktet är klart implementeras servicen. Service-klassen implementerar interfacet (kontraktet) ovan. Funktionen DoAddition tar två parametrar och returnerar summan av dem. using System.ServiceModel; namespace SimpleWCF { [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)] public class Service : IService { public int DoAddition(int Value1, int Value2) { return Value1 + Value2; } } } Figur 14. Implementation av WCF-service.

27 17 Med koden nedan startas en WCF-server. ServiceHost svh = new ServiceHost(typeof(Service)); svh.addserviceendpoint(typeof(iservice), new NetTcpBinding(), "net.tcp://localhost:8000"); svh.open(); Figur 15. Instansiering av en WCF-service. Med koden nedan ansluter man till servern som startades tidigare och anropar funktionen DoAddition med parametrarna 5 och 10. Efter att server tagit emot anropet, behandlat det och returnerat ett värde kommer en meddelanderuta att visas med talet 15. ChannelFactory<IService> cf = new ChannelFactory<IService>( new NetTcpBinding(), "net.tcp://localhost:8000"); IService s = cf.createchannel(); int response = s.doaddition(5, 10); (s as ICommunicationObject).Close(); MessageBox.Show(response.ToString()); Figur 16. Ansluta till en WCF-Service.

28 18 3 Utförande 3.1 Inledning Synkroniseringsverktyget kommer att utvecklas med något existerande ramverk för hantering av dataöverföring mellan databaserna. Valet står mellan Sync Framework och Entity Framework, så förrän utvecklingen kan påbörjas av själva verktyget måste en utvärdering ske av dessa två ramverk. Verktyget kommer sen att implementeras som en Windowsservice med funktionalitet för schemalagda synkroniseringar och loggning. Utöver Windows-servicen kommer även en klient att skapas för att kunna köra manuella synkningar och för att konfigurera när synkningarna skall köras. 3.2 Sync Framework vs Entity Framework Före utvecklingen av synkroniseringsverktyget, härefter SyncService, kunde påbörjas var man tvungen att ta ett beslut på vilket ramverk som skulle användas för hanteringen och överföringen av data. Som alternativ fanns Microsoft Sync Framework och Entity Framework. För att ta det beslutet beslöts att man utvecklar ett enkelt program i två versioner som använder de respektive två ramverken. Programmets enda syfte var att göra en envägssynkronisering av data från två tabeller mellan två databaser där databasschemat var identiskt förutom att tabell- och kolumnnamn var översatta till engelska i klientdatabasen. Programmen implementerades så simpelt som möjligt, d.v.s. ett enda projekt som använde sig av de två ramverken och enbart den nödvändiga koden för att möjliggöra en envägssynkronisering av data från en databas till en annan. Som programmeringsspråk valdes C# och utvecklingen skedde i Visual Studio Databasen som användes i testet var MS SQL Server 2008 R2 Standard. I de tester som kördes med dessa två program visade det sig att prestandamässigt var de två ramverken i princip lika effektiva i denna enklaste variant. I samtliga tester där mängden data varierade mellan och rader var Entity Framework 1 2 sekunder snabbbare. På grund av den lilla tidsskillnaden valde man att avgöra beslutet på mängden arbete att implementera en fullt fungerande lösning och på de båda ramverkens för- och nackdelar. MS Sync Framework Fördelar: - Inbyggd funktion för hantering av s.k. anchors som bestämmer vilket intervall av data som ska synkroniseras och vad som redan blivit synkroniserat.

29 19 - Har stöd för att använda direkta SQL-kommandon för att hämta och spara data. - Har stöd för s.k. Batching, vilket gör det möjligt att dela upp det data som ska synkroniseras i mindre delar för att undvika att datorns arbetsminne inte fylls upp under synkronisering av större mängder data. - Går bra att använda diverse olika datakällor eftersom man kan implementera egna DataProviders för att ansluta till dessa olika källor. Nackdelar: - Väldigt komplicerat om databaserna som ska synkroniseras inte har samma schema. - Delvis bristfällig dokumentation och väldigt få fungerande exempel. - Tar betydligt längre att komma igång med än Entity Framework Entity Framework 4 Fördelar: - Enkelt att komma igång med. - Väldigt flexibelt då man själv kan implementera hela överföringen av data. - Går bra att synkronisera data mellan databaser som har helt olika scheman då man själv kan transformera datan. Nackdelar: - Eftersom Entity Framework inte har någon färdig implementation av överföringen av data från en databas till en annan måste man implementera den själv, detta gäller också funktioner som t.ex. anchors och batchning som finns i Sync Framework. - Fungerar inte bra då databaslagret skall vara transparent, d.v.s. att programmet ska fungera lika oberoende av vilken av de tre databaserna som används. På grund av att datan som skall synkroniseras skall vara identisk mellan de två databaserna och då det behöver stöda flera typer av databaser så beslöt man att MS Sync Framework är bättre lämpad för det här projektet. Då MS Sync Framework har inbyggt stöd för anchors och batchning av data så behöver man inte heller implementera detta, så som man hade blivit tvungen att göra med Entity Framework. Om uppgiften däremot hade krävt att datan skulle transformeras eller behandlas på något vis, t.ex. för att föra över data till en databas med ett annorlunda schema, så skulle Entity Framework ha valts.

30 Synkroniseringstjänsten Implementation av Windows servicen Servicedelen av SyncService implementeras som en enkel Windows-service, d.v.s. en klass som ärver basklassen ServiceBase som finns implementerad i Microsoft.NET under System. Serviceproces- biblioteket. Denna klass åter implementerar den funktionalitet som sker då servicen startas, stoppas och pausas. static class Program { static void Main() { ServiceBase[] ServicesToRun; ServicesToRun = new ServiceBase[] { new SyncService() }; ServiceBase.Run(ServicesToRun); } } public partial class SyncService : ServiceBase { private readonly Scheduler.Scheduler scheduler; } public SyncService() { InitializeComponent(); ServiceName = "Hogia SyncService"; scheduler = Scheduler.Scheduler.Instance; } protected override void OnStart(string[] args) { scheduler.start(); } protected override void OnStop() { scheduler.stop(); } protected override void OnPause() { scheduler.pause(); } protected override void OnContinue() { scheduler.resume(); } Figur 17. Kod för att skapa en Windows service. För att separera all funktionalitet i servicen från scheduleringen, synkningen samt kommunikationen med klienten så har det skapats en egen klass, kallad Scheduler, som innehåller all verklig funktionalitet. Scheduler-klassen har motsvarande funktioner som servicen, nämligen OnStart, OnStop, OnPause och OnContinue. Då en funktion anropas i servicen behöver den då bara anropa motsvarande funktion i Scheduler-klassen. Detta förenklar också testningen då man inte behöver installera om servicen i Windows för varje ändring, utan det går enkelt att skapa t.ex. ett litet program med en knapp för varje funktion och anropa Scheduler-klassen direkt. Scheduler-klassen är implementerad som en singleton, vilket betyder att då programmet körs kan det bara finnas en enda instans av Schedulerklassen.

31 21 Scheduler-klassen har fyra huvudfunktioner som sker i följande ordning: Starta upp WCF-tjänsterna som klienten kommunicerar med. Läsa in konfigurationen för de olika jobb som blivit specificerade för schemaläggaren. Starta upp Quartz.NET-schemaläggaren. Läsa in konfigurationen och starta om Quartz.Net efter att konfigurationen uppdaterats Implementation av WCF-tjänster Totalt implementeras tre WCF-tjänster enligt klassdiagrammet nedan: Figur 18. Klassdiagram över SyncServicens WCF-tjänster. Authentication Service Denna tjänst har endast två funktioner Login och Logout. Dessa används för autentisering mellan klienten och servern så att endast en person med behörighet kan ändra konfigurationen av jobb och göra manuella synkroniseringar. Login-funktionen gör i sin tur ett anrop till BOOKIT-servern för att autentisera mot befintliga BOOKIT-användare. Detta betyder att för att kunna använda SyncService-verktygen måste användaren finnas uppsatt i BOOKIT.

32 22 Management Service Denna tjänst innehåller de funktioner som behövs för att kunna konfigurera, lägga till och ta bort jobb från schemaläggaren. Utöver att kunna spara och hämta konfigurationen finns även funktionalitet för att meddela alla övriga inloggade användare att konfigurationen ändrats så att en användare inte sparar över de övrigas ändringar. Synchronization Service Denna tjänst innehåller funktioner för att hämta information om vilka databaser som synkroniseras för tillfället. Det finns även funktionalitet för att kunna manuellt synkronisera en alla eller enskilda tabeller i en databas som blivit uppsatt för synkroniseringsmodulen. Dessa tjänster startas upp då Start-funktionen i Scheduler-klassen anropas och kommer sedan att köra tills Stop-funktionen anropas. För att den s.k. Callback funktionaliteten, som gör det möjligt för servern att anropa klienterna och inte bara andra vägen, ska fungera används TCP som kommunikationsprotokoll för tjänsterna Konfiguration Konfigurationen av SyncService består av ett antal klasser. Huvudklassen, Configuration, har bara en lista av jobbklasser, Job, som finns uppsatta för schemaläggaren. Jobbklassen har en ID samt information om vilken dll jobbet ligger i och vad det heter. Ett jobb har dessutom en lista av trigger-konfigureringar och parametrar. Parameterklassen har enbart ett namn för parametern och ett värde. En trigger innehåller enbart information om när och inom vilka intervaller ett jobb ska köra. Nedan följer ett klassdiagram över Configurationklassen och dess underklasser. Figur 19. Klassdiagram över SyncServicens konfiguration. Konfigurationen sparas ned som en xml fil på servern där den läses upp av SyncServiceservicen då den startar. Konfigurationen kan skötas antingen via klienten för de som har behörighet eller genom att editera xml-filen för de som har tillgång till servern.

33 Schemaläggaren Det som Quartz.NET definierar som ett jobb är egentligen bara en klass. De enda kraven för att en klass skall fungera som ett jobb i Quartz är att den implementerar interfacet IJob som finns definierat i Quartz och att klassens konstruktor inte har några argument. I IJob interfacet finns metoden Execute definierad och det är denna metod som körs när ett jobb startas av Quartz. Ett jobb i Quartz kan skapas med följande kod: public class MyJob : IJob { // Konstruktorn får inte ta några parametrar. public MyJob() { } } // Viktigt att implementera denna funktion! // Denna funktion är utgångsläget för ett jobb. public void Execute(JobExecutionContext context) { // Visa ett meddelande med nuvarande datum och tid MessageBox.Show(DateTime.Now.ToString()); } Figur 20. Implementation av ett Quartz-jobb. För att lägga till jobbet MyJob, som skapades ovan, till schemaläggaren kan följande kod användas (se figur 21): private void CreateScheduler() { // Skapa ett nytt jobb med namnet JobName av typen MyJob. JobDetail jobdetail = new JobDetail("JobName", typeof(myjob)); // Skapa en trigger med namnet TriggerName som refererar till jobbet som // skapades tidigare och som startar nu och kör igång jobbet en gång varje // minut fram tills årsskiftet 2001/2012. CronTrigger ct = new CronTrigger(); ct.cronexpressionstring = "0 * * * *? 2011"; ct.starttimeutc = DateTime.Now.ToUniversalTime(); ct.jobname = "JobName"; ct.name = "TriggerName"; // Skapa schemaläggaren och starta den. ISchedulerFactory schedulerfactory = new StdSchedulerFactory(); IScheduler scheduler = schedulerfactory.getscheduler(); scheduler.start(); // Lägg till jobbet och triggern. scheduler.addjob(jobdetail, true); scheduler.schedulejob(ct); } Figur 21. Kod för att skapa en schemaläggare och lägga till ett jobb samt en trigger för jobbet.

Elisabet Stöök Konsult SAS Institute AB Copyright 2003, SAS Institute Inc. All rights reserved.

Elisabet Stöök Konsult SAS Institute AB Copyright 2003, SAS Institute Inc. All rights reserved. Administrera din SAS miljö med SAS Metadata Server och SAS Management Console. Elisabet Stöök Konsult SAS Institute AB Copyright 2003, SAS Institute Inc. All rights reserved. SAS Intelligence Value Chain

Läs mer

ADO.NET Murach Kapitel 17-20

ADO.NET Murach Kapitel 17-20 Databaser och C# ADO.NET Murach Kapitel 17-20 2013-01-30 1 Winstrand Development Databas ADO.NET Är en del av.net ramverket och tillhandahåller delar för att kommunicera med olika datakällor. Dessa kan

Läs mer

Daniel Akenine, Teknikchef, Microsoft Sverige

Daniel Akenine, Teknikchef, Microsoft Sverige Daniel Akenine, Teknikchef, Microsoft Sverige Quincy Invånare: 5,300 Arbete: 52% jordbruk 18 % byggsektor 18 % offentlig sektor Språk: Spanska 57% Företaget Inköp Företaget Inköp Installering Lång

Läs mer

Creo Customization. Lars Björs 2014-10-16

Creo Customization. Lars Björs 2014-10-16 Creo Customization Lars Björs 2014-10-16 Norra Europas största partner och återförsäljare av PTC relaterad programvara (Windchill, Creo, Arbortext, MathCad, Relex) 70 anställda Egen utvecklingsavdelning

Läs mer

Inledande programmering med C# (1DV402) Introduktion till C#

Inledande programmering med C# (1DV402) Introduktion till C# Introduktion till C# Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så här: Allt innehåll i

Läs mer

Din guide till. Teknisk Specifikation Säljstöd

Din guide till. Teknisk Specifikation Säljstöd Din guide till Teknisk Specifikation Säljstöd April 2014 Innehåll Systemkrav... 3 Operativsystem... 3 Mjukvara... 3 Maskinvara... 4 Datakällor... 4 Databas... 5 Databasstruktur... 5 Katalogstruktur...

Läs mer

Nya möjligheter med M3 Technology. Björn Svensson, Björn Torold

Nya möjligheter med M3 Technology. Björn Svensson, Björn Torold Nya möjligheter med Technology Björn Svensson, Björn Torold Vem är vi? 2 Copyright 2011 Lawson. All rights reserved. Nya möjligheter med Technology System Foundation Grid Förändrar basen i Installation

Läs mer

Stored procedure i ASP.NET

Stored procedure i ASP.NET Stored procedure i ASP.NET OBS! Om du vill jobba med att skapa en stored procedure i en SQL Serverdatabas ifrån VS2010 måste du ha fullversion, expressversionen tillåter dig ej att skapa triggers, stored

Läs mer

Web Services. Cognitude 1

Web Services. Cognitude 1 Web Services 1 Web Services Hur ska tillämpningar integreras? Hur ska tillämpningar integreras (via nätet ) för att erbjuda tjänster åtkomliga på nätet? SVAR: Web Services (Enligt Microsoft, Sun, IBM etc.)

Läs mer

2014-2015 Alla rättigheter till materialet reserverade Easec

2014-2015 Alla rättigheter till materialet reserverade Easec 1 2 Innehåll Introduktion... 3 Azure Client SDK Libraries... 4 Översikt: Azure Client Libraries... 5 Azure SDK... 6 Azure SDK (forts.)... 7 Azure SDK (forts.)... 8 Cloud Services... 10 Cloud Services...

Läs mer

Christer Scheja TAC AB

Christer Scheja TAC AB Byggnadsautomation för ingenjörer Byggnadsautomation för ingenjörer VVS-tekniska föreningen, Nordbygg 2004 Christer Scheja TAC AB resentation, No 1 Internet/Intranet Ihopkopplade datornät ingen ägare Internet

Läs mer

30 år av erfarenhet och branschexperts

30 år av erfarenhet och branschexperts 30 år av erfarenhet och branschexperts Integrerad Säkerhet Integrerad Säkerhet Varför överordnat system Användarvänlighet Kvalitet Trygghet Kostnadseffektivitet Varför ett överordnat system? Med stora

Läs mer

Installationsanvisningar HogiaLön Plus

Installationsanvisningar HogiaLön Plus Installationsanvisningar HogiaLön Plus Installation Med den här installationen kan du installera HogiaLön Plus på Windows XP, Vista, Windows 7 och Windows 8. Om du vill installera en MSI-installation finns

Läs mer

Webbservrar, severskript & webbproduktion

Webbservrar, severskript & webbproduktion Webbprogrammering Webbservrar, severskript & webbproduktion 1 Vad är en webbserver En webbserver är en tjänst som lyssnar på port 80. Den hanterar tillgång till filer och kataloger genom att kommunicera

Läs mer

Systemkrav och tekniska förutsättningar

Systemkrav och tekniska förutsättningar Systemkrav och tekniska förutsättningar Hogia Webbrapporter Det här dokumentet går igenom systemkrav, frågor och hanterar teknik och säkerhet kring Hogia Webbrapporter, vilket bl a innefattar allt ifrån

Läs mer

Plattform as a Service, leverantör tillhandahåller plattformen, jag tillhandahåller applikation och ansvarar för denna.

Plattform as a Service, leverantör tillhandahåller plattformen, jag tillhandahåller applikation och ansvarar för denna. Modul 1: Molntjänst Publikt moln Privat moln Hybrid moln IaaS PaaS SaaS DaaS DaaS SLA Infrastructure as a Service, leverantör tillhandahåller infrastrukturen, jag tillhandahåller virtuella maskiner eller

Läs mer

Guide för Innehållsleverantörer

Guide för Innehållsleverantörer Library of Labs Content Provider s Guide Guide för Innehållsleverantörer Inom LiLa ramverket är innehållsleverantörer ansvariga för att skapa experiment som "LiLa Learning Objects", att ladda upp dessa

Läs mer

UML. Översikt UML. Relationer mellan klasser. A är ett aggregerat av B:n. Kontor aggregat av Enheter. 12 olika diagramtyper, bl.a.

UML. Översikt UML. Relationer mellan klasser. A är ett aggregerat av B:n. Kontor aggregat av Enheter. 12 olika diagramtyper, bl.a. Översikt UML Sekvensdiagram (dynamic structure) Informationsflöde genom programmet Användningsfall (use cases) Aktörers interaktion med systemet Paketdiagram Beroenden mellan paket abstrakta klasser Multipel

Läs mer

Storegate Pro Backup. Innehåll

Storegate Pro Backup. Innehåll Storegate Pro Backup Välkommen! I denna manual kan du bland annat läsa om funktioner och hur du ska konfigurerar programmet. Läs gärna vårt exempel om versionshantering och lagringsmängd innan du konfigurerar

Läs mer

VAD GÖR DU / VEM ÄR DU?

VAD GÖR DU / VEM ÄR DU? INNEHÅLL Vad blir din roll Databaser vad är och varför Terminologi Datamodellering vad är och varför Utvecklingsprocessen SQL vad är det Data / Information / Kunskap Kapitel 1 delar av. Praktisk Datamodellering

Läs mer

Föreläsning 15: Repetition DVGA02

Föreläsning 15: Repetition DVGA02 Föreläsning 15: Repetition DVGA02 Vad handlar kursen om? Kursen kan i grova drag delas upp i tre delar: 1. Objekt-orienterad programmering 2. Grafiska användargränssnitt 3. Datastrukturer Dessutom genomsyras

Läs mer

PHP-presentation Dataföreningens Open Source-nätverk

PHP-presentation Dataföreningens Open Source-nätverk PHP-presentation Dataföreningens Open Source-nätverk Netera AB Jimmy Furland jimmy@netera.se Björn Hansson hansson@netera.se Introduktion HTML-inbäddat webbprogrammeringsspråk Står för PHP Hypertext Preprocessor

Läs mer

Auktorisation och grupphantering

Auktorisation och grupphantering Webadress https://portal.nordu.net/display/inkubator/projektrapporter Dokumentnamn.pdf Dokumentansvarig Jan Rundström Dokumentidentitet N/A Version 1.0 Datum 2014-19-02 Status Publicerad 1 Innehåll 1 Verktyg

Läs mer

Lab1 Introduktion. 1 Syfte. 2 Innehåll Win32API Skapa trådar Kritiska sektioner Mailslothantering. 3 Förberedelse & Tips

Lab1 Introduktion. 1 Syfte. 2 Innehåll Win32API Skapa trådar Kritiska sektioner Mailslothantering. 3 Förberedelse & Tips Lab1 Introduktion Förberedelse för planetlabben genom att kapsla in (skapa wrappers) systemanrop. 1 Syfte Få en känsla av hur Win32API fungerar, dvs programmerarens interface gentemot Windows. Känsla för

Läs mer

Vägen till en modern. integrations plattform

Vägen till en modern. integrations plattform Vägen till en modern integrations plattform Integrerade säkerhetssystem Integrerade säkerhetssystem Basen i det integrerade säkerhetssystemet utgörs alltid av olika funktionssystem, inbrottslarm, överfallslarm,

Läs mer

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista Databaser Vad är en databas? Vad du ska lära dig: Använda UML för att modellera ett system Förstå hur modellen kan översättas till en relationsdatabas Använda SQL för att ställa frågor till databasen Använda

Läs mer

LEX INSTRUKTION LEX LDAP

LEX INSTRUKTION LEX LDAP LEX INSTRUKTION LEX LDAP Innehållsförteckning LEX INSTRUKTION LEX LDAP... 1 1 INLEDNING... 1 2 INSTALLATION... 2 3 LEXLDAPSERVICE - KLIENTEN... 3 3.1 HUVUDFÖNSTER... 3 3.2 INSTÄLLNINGAR... 4 3.2.1 Lex...

Läs mer

Programmering B med Visual C++ 2008

Programmering B med Visual C++ 2008 Programmering B med Visual C++ 2008 Innehållsförteckning 1 Repetition och lite nytt...5 I detta kapitel... 5 Programexekvering... 5 Loop... 5 Källkod... 6 Verktyg... 6 Säkerhetskopiera... 6 Öppna, kompilera,

Läs mer

DI Studio 4.3 - nyheter

DI Studio 4.3 - nyheter DI Studio 4.3 - nyheter Sofie Eidensten och Patric Hamilton Copyright 2010 SAS Institute Inc. All rights reserved. 2 Varför DI Studio Snabbare utveckling Enklare underhåll Gör det överskådligt 3 Nyheter

Läs mer

360 Infrastruktur - 360 v.4.1 & SharePoint 2010. Magnus Larsson, Software Innovation

360 Infrastruktur - 360 v.4.1 & SharePoint 2010. Magnus Larsson, Software Innovation 360 Infrastruktur - 360 v.4.1 & SharePoint 2010 Magnus Larsson, Software Innovation Agenda 360 Grundinstallation 360 Avancerad installation 360 & Microsoft OneNote 360 Features installation 360 Grundinstallation

Läs mer

Boss installationsmanual förberedelser

Boss installationsmanual förberedelser 1 Boss installationsmanual förberedelser Boss kan installeras på flera sätt, Serverinstallation eller Nätverksinstallation. För båda dessa sätt kan man dela databasen med flera användare. Serverinstallation,

Läs mer

Innehåll. MySQL Grundkurs

Innehåll. MySQL Grundkurs MySQL Grundkurs Copyright 2014 Mahmud Al Hakim mahmud@dynamicos.se www.webbacademy.se Innehåll Introduktion till databaser Installera MySQL lokalt Webbserverprogrampaket (XAMPP) Introduktion till phpmyadmin

Läs mer

Skapa ett eget programnu! NU! Komplett med programvara och konkreta exempel! Patrice Pelland. Swedish Language Edition published by Docendo Sverige AB

Skapa ett eget programnu! NU! Komplett med programvara och konkreta exempel! Patrice Pelland. Swedish Language Edition published by Docendo Sverige AB NU! Skapa ett eget programnu! Patrice Pelland Komplett med programvara och konkreta exempel! Swedish Language Edition published by Docendo Sverige AB Kapitel 2 Installera Visual Basic 2005 Express Edition

Läs mer

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

Hå rd- och mjukvårukråv såmt rekommendåtioner fo r 3L Pro from version 2015.Q1 Hå rd- och mjukvårukråv såmt rekommendåtioner fo r 3L Pro from version 2015.Q1 För att 3L Pro skall fungera krävs att nedanstående hårdvarukrav och mjukvarukrav är uppfyllda. Viktigt är att tänka på att

Läs mer

FactoryCast HMI. Premium & Quantum PLC. MySQL Server och FactoryCast HMI databastjänst 2004-10-29

FactoryCast HMI. Premium & Quantum PLC. MySQL Server och FactoryCast HMI databastjänst 2004-10-29 FactoryCast HMI Premium & Quantum PLC MySQL Server och FactoryCast HMI databastjänst 2004-10-29 INNEHÅLLSFÖRTECKNING 1 DATABASTJÄNSTEN...3 1.1 KONFIGURERING AV DATABASTJÄNST...3 2 KONFIGURERING MYSQL...6

Läs mer

WHITE PAPER. Open End TM Funktionell översikt

WHITE PAPER. Open End TM Funktionell översikt Open End TM Funktionell översikt Open End tillför verksamhetsprocesser nya möjligheter genom att kombinera avancerad teknik för automatiserad informationshantering i realtid med intuition och hög användbarhet.

Läs mer

Installationsmanual för OnCourse

Installationsmanual för OnCourse Installationsmanual för OnCourse Detta dokument beskriver de steg som ni behöver gå igenom för att installera OnCourse på er golfklubb. OnCourse är utvecklat och testat för Windows XP, Windows Vista och

Läs mer

Svenska Linuxföreningen. Fri programvara Mycket mer än bara gratis 1(29)

Svenska Linuxföreningen. Fri programvara Mycket mer än bara gratis 1(29) Fri programvara Mycket mer än bara gratis Copyright 2005,2006 Marcus Rejås Jag ger härmed rätten till alla att nyttja denna presentation på alla sätt som anses lämpliga så länge som syftet

Läs mer

Installationsanvisning. Dokumenttyp Installationsanvisning Område Boss med delad databas

Installationsanvisning. Dokumenttyp Installationsanvisning Område Boss med delad databas Ort och datum Ort och datum Namn Namn Magnus Einarsson/+46 (0)+46 54 291742 2010-06-29 1.0 1 (5) Innehållsförteckning 3 1 Inledning 3 1.1 Introduktion... 3 1.2 Revisionshistoria... 3 1.3 Referenser...

Läs mer

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio Ditt första C#-program med Visual Studio Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så

Läs mer

Programmering. Hur, var, när och varför. 22 November. Lars Ohlén Tieto lars.ohlen@tieto.com

Programmering. Hur, var, när och varför. 22 November. Lars Ohlén Tieto lars.ohlen@tieto.com Programmering Hur, var, när och varför 22 November Lars Ohlén Tieto lars.ohlen@tieto.com Agenda Om mig Programmering Vad är? Varför kunna? Hur använda kunskapen? Framtiden Sammanfattning Q+A 2 Om mig Arbetat

Läs mer

Installation/uppdatering av Hogia Personal fr.o.m. version 13.1

Installation/uppdatering av Hogia Personal fr.o.m. version 13.1 Installation/uppdatering av Hogia Personal fr.o.m. version 13.1 Viktig information gällande installation Från version 12.2 av Hogia Personal krävs Microsoft.Net Framework 3.5 SP1 för att installation skall

Läs mer

I. Krav på terminaler för telefonistprodukter 1. II. Krav på server och klient till Telefonistöd och Kalenderkoppling 4

I. Krav på terminaler för telefonistprodukter 1. II. Krav på server och klient till Telefonistöd och Kalenderkoppling 4 TELIA CENTREX KRAV PÅ TERMINALER / SERVRAR Innehållsförteckning I. Krav på terminaler för telefonistprodukter 1 II. Krav på server och klient till Telefonistöd och Kalenderkoppling 4 III. Krav på server

Läs mer

Kunskapsbank ICARUS DB

Kunskapsbank ICARUS DB Kunskapsbank ICARUS DB K E Y L O G I C A B 1 Innehållsförteckning 1 Innehållsförteckning 1 2 SQL Server 2005 3 2.1 Installation 3 2.2 Användargränssnitt (DBMS) för SQL Express 3 2.3 Undvik att transaktionsloggen

Läs mer

KAP 18 SQL SERVER AGENT

KAP 18 SQL SERVER AGENT KAP 18 SQL SERVER AGENT Tjänsten Sql Server Agent Operator Job Alert (larm) http://www.youtube.com/watch?v=ii1tc493bzm 1 VAD ÄR SQL SERVER AGENT? SQL Server Agent är en tjänst (service) som ansvarar för:

Läs mer

EVRY One Outsourcing Linköping AB. Erfaranheter av daglig drift och nyttjande av IFS Applications 8.

EVRY One Outsourcing Linköping AB. Erfaranheter av daglig drift och nyttjande av IFS Applications 8. EVRY One Outsourcing Linköping AB Erfaranheter av daglig drift och nyttjande av IFS Applications 8. Vår erfarenhet IFS Applications 8 Ca 10 st genomförda eller pågående uppgraderingar till IFS 8. Första

Läs mer

Open Source - Program och hur man väljer

Open Source - Program och hur man väljer Open Source - Program och hur man väljer Copyright 2007, 2008 Marcus Rejås Rejås Datakonsult Jag ger härmed rätten till alla att nyttja denna presentation på alla sätt som anses lämpliga

Läs mer

Operativsystem och användargränssnitt

Operativsystem och användargränssnitt Operativsystem och användargränssnitt Som du fick läsa tidigare behöver datorn förutom hårdvara också ett program för att hantera hårdvaran, dvs. ett operativsystem. Denna sida behandlar bland annat följande

Läs mer

! Teori och praktik. ! Ändringar från förra året. ! Examination (tenta, projekt) LiU. ! Varför ni? ! Varför överhuvudtaget? LiU

! Teori och praktik. ! Ändringar från förra året. ! Examination (tenta, projekt) LiU. ! Varför ni? ! Varför överhuvudtaget? LiU Databaser Design och programmering, IDA Kursen, diverse praktiskt Varför databaser? Vad är en databas? Andra viktiga begrepp Kursöversikt Teori och praktik Fö och bok lektioner, labbar i projekt (3,5hp=100h)

Läs mer

Labb LABB 1. Databassagan och en rundtur i databasers märkliga värld. Plushögskolan Frågeutveckling inom MSSQL - SU14

Labb LABB 1. Databassagan och en rundtur i databasers märkliga värld. Plushögskolan Frågeutveckling inom MSSQL - SU14 Labb LABB 1 Databassagan och en rundtur i databasers märkliga värld Plushögskolan Frågeutveckling inom MSSQL - SU14 I Microsoft SQL-Server Management Studio kan man arbeta på olika sätt. Antingen via användargränssnittet

Läs mer

Installation och konfiguration av klientprogramvara 2c8 Modeling Tool

Installation och konfiguration av klientprogramvara 2c8 Modeling Tool Installation och konfiguration av klientprogramvara 2c8 Modeling Tool Hämta programpaket, MSI Aktuell version av klientprogramvaran finns tillgänglig för nedladdning på vår hemsida på adress http://www.2c8.com/

Läs mer

Spara papper! Skriv inte ut sammanfattning utan ladda ner PDF!

Spara papper! Skriv inte ut sammanfattning utan ladda ner PDF! Denna beskrivning har gjorts på Windows 2000 Server (men bör fungera även på Windows XP Home Edition/Professional och Windows 2003 Server). Att installera Oracle 10g kräver ca. 2 GB hårddiskplats och ca.

Läs mer

Open Source - Utmaningar och fördelar

Open Source - Utmaningar och fördelar Open Source - Utmaningar och fördelar Johan Hübner Emil Dicksved 16 mars 2011 Agenda Vad är open source? Historik och utveckling över tid Krav på open source-licenser Översiktlig genomgång av några vanliga

Läs mer

Installationsanvisningar HogiaLön Plus

Installationsanvisningar HogiaLön Plus Installationsanvisningar HogiaLön Plus Installation Med den här installationen kan du installera HogiaLön Plus på Windows XP, Vista och Windows 7. Om du vill installera en MSI-installation finns en separat

Läs mer

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

Webbteknik II. Föreläsning 4. Watching the river flow. John Häggerud, 2011 Webbteknik II Föreläsning 4 Watching the river flow Web Service XML-RPC, SOAP, WSDL, UDDI HTTP Request, Response, Headers, Cache, Persistant Connection REST Hype or the golden way? Web Service / Webbtjänst

Läs mer

Kort om klasser och objekt En introduktion till GUI-programmering i Java

Kort om klasser och objekt En introduktion till GUI-programmering i Java Kort om klasser och objekt En introduktion till GUI-programmering i Java Klasser En klass är en mall för hur man ska beskriva på något. Antag att vi har en klass, Bil. Den klassen innehåller en lista på

Läs mer

communication En produkt från ida infront - a part of Addnode

communication En produkt från ida infront - a part of Addnode communication En produkt från ida infront - a part of Addnode Det handlar egentligen inte om kryperting, nyckelhantering, och elektroniska certifikat. innehåll communication Det handlar om trygghet och

Läs mer

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration

Läs mer

Henrik Häggbom Examensarbete Nackademin Våren 2015

Henrik Häggbom Examensarbete Nackademin Våren 2015 AV Henrik Häggbom Examensarbete Nackademin Våren 2015 1 INLEDNING Som examensarbete på min utbildning på Nackademin Programutveckling.NET kommer jag skapa ett webbaserat system för statistik, tabeller

Läs mer

Administrationsmanual ImageBank 2

Administrationsmanual ImageBank 2 Administrationsmanual ImageBank 2 INNEHÅLL 1. Konventioner i manualen 3 2. Uppmärksamhetssymboler 3 3. Vad är imagebank SysAdmin 4 4. Guide för att snabbt komma igång 5 5. Uppgradera din imagebank 1.2

Läs mer

Systemkrav WinServ II Edition Release 2 (R2)

Systemkrav WinServ II Edition Release 2 (R2) Systemkrav WinServ II Edition Release 2 (R2) Observera: Alla rekommendationer är aktuella vid den tid då dokumentet publicerades och visar den senaste informationen för nödvändig mjukvara. Systemkrav för

Läs mer

Apple Remote Desktop 3. Viktor Glemme Systemingenjör - Apple glemme.v@euro.apple.com 2006-06-07

Apple Remote Desktop 3. Viktor Glemme Systemingenjör - Apple glemme.v@euro.apple.com 2006-06-07 Apple Remote Desktop 3 Viktor Glemme Systemingenjör - Apple glemme.v@euro.apple.com 2006-06-07 Datorer Kontrollerade datorer har 40% lägre TCO! Kontrollerad Hård och mjukvara Drift Administration Slutanvändare

Läs mer

Systemkrav Tekis-Bilflytt 1.3

Systemkrav Tekis-Bilflytt 1.3 Systemkrav 1. Systemkrav Systemkrav 2015-06-09 2 (8) Systemkrav 1. Dokumentet beskriver de krav som systemet ställer på maskinvara och programvara i de servrar och klientdatorer som ska användas för systemet.

Läs mer

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

Hå rd- och mjukvårukråv såmt rekommendåtioner fo r 3L Pro from version 2013.Q3 Hå rd- och mjukvårukråv såmt rekommendåtioner fo r 3L Pro from version 2013.Q3 För att 3L Pro skall fungera krävs att nedanstående hårdvarukrav och mjukvarukrav är uppfyllda. Viktigt är att tänka på att

Läs mer

Innehåll. Installationsguide

Innehåll. Installationsguide Innehåll Innehåll... 2 Förberedelser... 3 Rättigheter... 3 Installera programmen... 3 Konfiguration av databas... 5 Installera databasserver... 5 Konfigurera en databas på en befintlig databasserver...

Läs mer

Information Management made simple

Information Management made simple Information Management made simple Genom fullständigt stöd för dokument hantering tillsammans med inbyggd ärendehantering och nämndadministration erbjuds ett komplett informationsstöd som påtagligt underlättar

Läs mer

Introduktion till programmering, hösten 2011

Introduktion till programmering, hösten 2011 Föreläsning 1 Programmering är ett hantverk. Det betyder att man inte kan läsa sig till den förmågan, man måste träna och man tränar genom att skriva mer och mer avancerade program. Programmering förutsätter

Läs mer

Curriculum Vitae. Systemutvecklare/konsult. Kontaktuppgifter. Sammanfattning. Uppgifter hos Pulsen. Stefan Elvestål. Född: 1973 Nationalitet: Svensk

Curriculum Vitae. Systemutvecklare/konsult. Kontaktuppgifter. Sammanfattning. Uppgifter hos Pulsen. Stefan Elvestål. Född: 1973 Nationalitet: Svensk /konsult Stefan Elvestål Född: 1973 Nationalitet: Svensk Kontaktuppgifter Mobil: 0703-88 35 39 elvestal@outlook.com Sammanfattning Jag är en målmedveten och ständigt nyfiken utvecklare som är nogrann med

Läs mer

Innehåll 1 Inledning Serverinstallation 2.1 Systemkrav 2.2 SQL Server 2.3 Behörighet vid installation 2.4 Behörighetskontroll i Microsoft SQL Server

Innehåll 1 Inledning Serverinstallation 2.1 Systemkrav 2.2 SQL Server 2.3 Behörighet vid installation 2.4 Behörighetskontroll i Microsoft SQL Server Installationsanvisning Boss delad databas sid 2 (40) Innehåll 1 Inledning 3 2 Serverinstallation 3 2.1 Systemkrav 3 2.2 SQL Server 3 2.3 Behörighet vid installation 3 2.4 Behörighetskontroll i Microsoft

Läs mer

Operativsystem. Innehåll. Operativsystemets funktion. Vad är ett OS? Vart hittar men ett OS? OS hanterar processorns resurser

Operativsystem. Innehåll. Operativsystemets funktion. Vad är ett OS? Vart hittar men ett OS? OS hanterar processorns resurser Innehåll Operativsystem Vad är operativsystem och hur fungerar de Vad är ett OS? Syfte Att tillåta flera program att köra samtidigt Att fungera som ett abstraktionslager mot hårdvaran Att hantera olika

Läs mer

HJÄLPPROGRAM FÖR RÖNTGENSTUDERANDEN

HJÄLPPROGRAM FÖR RÖNTGENSTUDERANDEN HJÄLPPROGRAM FÖR RÖNTGENSTUDERANDEN Mikael Norrbäck Examensarbete för ingenjör (YH)-examen Utbildningsprogrammet för informationsteknik Vasa 2012 EXAMENSARBETE Författare: Utbildningsprogram och ort: Handledare:

Läs mer

Konsultprofil Joel Andersson Född 1976

Konsultprofil Joel Andersson Född 1976 Konsultprofil Joel Andersson Född 1976 Erfaren systemutvecklare som jobbat med olika typer av utveckling sedan 1998 i Microsoftmiljö med inriktning på.net (C#, VB.NET & ASP.NET) och SQL. Som konsult i

Läs mer

ALM Live: Testfokus bättre mjukvarukvalitét med Visual Studio 2008 Team System

ALM Live: Testfokus bättre mjukvarukvalitét med Visual Studio 2008 Team System ALM Live: Testfokus bättre mjukvarukvalitét med Visual Studio 2008 Team System Magnus Juvas Qwise Om oss: Qwise Vi hjälper systemutvecklingsteam att bli bättre. Vi är experter på ALM och Team System. Vi

Läs mer

Administrationsmanual ImageBank 2

Administrationsmanual ImageBank 2 Document information ID: P001 Appendix C Rev: 4 Author: Tomas von Peltzer Product nr: Title: Reviewed by: Approved by: P001 ImageBank Administration Manual Product name: Ingvar Falconer Date: 2014-10-22

Läs mer

Diagnostisktprov Utveckla i Azure

Diagnostisktprov Utveckla i Azure .easec Diagnostisktprov Utveckla i Azure Mats Johannesson 2015-06-08 1 o Indikerar ett svar önskas. Flera svar önskas. Maxpoäng: 86 Din poäng: Godkänt: 43 poäng Väl Godkänt: 60 poäng 2 1. Vilka fyra alternativ

Läs mer

Slutrapport. APFy.me

Slutrapport. APFy.me Slutrapport APFy.me Innehållsförteckning 1 Inledning... 3 2 Mål och syfte... 3 3 Projektbeskrivning... 3 4 Leverabler... 4 5 Resultat... 4 6 Utvärdering och analys... 4 6.1 Utvärdering av resultat... 4

Läs mer

INSTALLATIONSINSTRUKTIONER FÖR VIDA INNEHÅLL

INSTALLATIONSINSTRUKTIONER FÖR VIDA INNEHÅLL VIDA INSTALLATIONSINSTRUKTIONER VIDA 2015 INNEHÅLL 1 INLEDNING... 3 2 FÖRE INSTALLATION... 4 2.1 Checklista för åtgärder före installation... 4 2.2 Tredjepartsprodukter... 4 2.2.1 Adobe Reader... 5 2.3

Läs mer

Årsskiftesrutiner i HogiaLön Plus SQL

Årsskiftesrutiner i HogiaLön Plus SQL Årsskiftesrutiner i HogiaLön Plus SQL Installation av HogiaLön Plus version 14.0 samt anvisningar till IT-ansvarig eller IT-tekniker Installation på Terminal Server: En korrekt installation i Terminal

Läs mer

Flytt av. Vitec Mäklarsystem

Flytt av. Vitec Mäklarsystem Flytt av Vitec Mäklarsystem Augusti 2014 Innehållsförteckning 1. Inledning... 2 Förutsättningar... 2 Läs noga igenom manualen... 2 Systemkrav... 2 Kundservice/Teknisk support... 2 2. Skapa säkerhetskopia...

Läs mer

Webbprogrammering, grundkurs 725G54

Webbprogrammering, grundkurs 725G54 Webbprogrammering, grundkurs 725G54 Bootstrap jquery SEO RWD MuddyCards. Tidigare Muddycards Många positiva kommentarer Ibland för högt tempo på föreläsning Lägg ut labbar tidigare Mer föreläsningar (2

Läs mer

Utveckling av tjänster

Utveckling av tjänster Utveckling av tjänster Stockholms stad SOA-plattform 1 (22) Innehållsförteckning 1 Inledning 3 2 Utvecklingsstandard 4 2.1 Namngivningskonventioner... 4 2.1.1 Namespaces... 4 2.1.2 Exempel... 4 2.1.3 Kontrakt...

Läs mer

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration

Läs mer

L0009B. Moment. Introduktion till geografiska databaser: G:\L0009B\Allmänt\IntroGeoDB.pdf (F)

L0009B. Moment. Introduktion till geografiska databaser: G:\L0009B\Allmänt\IntroGeoDB.pdf (F) L0009B Moment FL 1: Kursintroduktion. Kursinformation: G:\L0009B\Allmänt\KursInformationL0009B.pdf (F) Kursplan: Se https://portal.student.ltu.se/stuka/kurs.php?kurs=l0009b&lang=swe (F) Allt som markerats

Läs mer

GADD Software en introduktion

GADD Software en introduktion GADD Software en introduktion Publik version, September 2013, gaddsoftware.com page 1 Vad är GADD Software? Vårt fokus Beslutsstöd, BI, tillgängligt för alla Retailing och ISV (Independent Software Vendors)

Läs mer

Tekniskt ramverk för Svensk e- legitimation

Tekniskt ramverk för Svensk e- legitimation Tekniskt ramverk för Svensk e- legitimation ELN-0600-v1.4 Version: 1.4 2015-08-14 1 (10) 1 INTRODUKTION 3 1.1 IDENTITETSFEDERATIONER FÖR SVENSK E- LEGITIMATION 3 1.2 TILLITSRAMVERK OCH SÄKERHETSNIVÅER

Läs mer

Föreläsning 1. Presentation av kursen Vad är programmering? Lite om java och utvecklingsmiljöer Aktivitetsdiagram Ett första program

Föreläsning 1. Presentation av kursen Vad är programmering? Lite om java och utvecklingsmiljöer Aktivitetsdiagram Ett första program Föreläsning 1 Presentation av kursen Vad är programmering? Lite om java och utvecklingsmiljöer Aktivitetsdiagram Ett första program Deitel: 1.1-1.9, 2.1-2.3 DA101A Programmering Programmering, DA101A Kursansvarig:

Läs mer

I. Krav på terminaler för telefonistprodukter 2. II. Krav på server och klient till Telefonistöd och Kalenderkoppling 4

I. Krav på terminaler för telefonistprodukter 2. II. Krav på server och klient till Telefonistöd och Kalenderkoppling 4 TELIA CENTREX KRAV PÅ TERMINALER / SERVRAR Innehållsförteckning I. Krav på terminaler för telefonistprodukter 2 II. Krav på server och klient till Telefonistöd och Kalenderkoppling 4 III. Krav på server

Läs mer

Systemintegration baserad på WCF System integration based on WCF

Systemintegration baserad på WCF System integration based on WCF Systemintegration baserad på WCF System integration based on WCF HT 2011 Examensarbete, 15 HP Program IngOnline, specialisering Datorteknik och inbyggda system, 180 hp Institutionen för tillämpad fysik

Läs mer

APPLIKATION FÖR SAMORDNING AV ENTREPRENÖRER

APPLIKATION FÖR SAMORDNING AV ENTREPRENÖRER Examensarbete 15 högskolepoäng C-nivå APPLIKATION FÖR SAMORDNING AV ENTREPRENÖRER Reg.kod: Oru-Te-DT3017-D106/08 Daniel Lindqvist Dataingenjörsprogrammet 180 hp Örebro vårterminen 2008 Handledare: Kjell

Läs mer

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten? Programmeringsteknik och Matlab Övning 4 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312

Läs mer

Omnis Data Bridge. Raining Data Corporation, and its licensors 2005. All rights reserved. Portions Copyright Microsoft Corporation.

Omnis Data Bridge. Raining Data Corporation, and its licensors 2005. All rights reserved. Portions Copyright Microsoft Corporation. Omnis Data Bridge The software this document describes is furnished under a license agreement. The software may be used or copied only in accordance with the terms of the agreement. Names of persons, corporations,

Läs mer

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

Hogias Ekonomisystem. Systemkrav för enanvändarinstallation fr o m version 2015.1 av GENERELLA KRAV Systemkrav för enanvändarinstallation fr o m version 2015.1 av Hogias Ekonomisystem Systemkraven specificerar de miljöer och förutsättningar som programvaran är testad i och som vi rekommenderar för att

Läs mer

Manual licenserver. Installations och konfigurations-manual för Adtollo licenserver 2014-10-07

Manual licenserver. Installations och konfigurations-manual för Adtollo licenserver 2014-10-07 Installations och konfigurations-manual för Adtollo licenserver 2014-10-07 2014-10-07 Sida 2 av 8 Detta är en installationsanvisning för Adtollo licensserver. Applikationen kan användas till flera av Adtollos

Läs mer

Domänspecifika språk. TDP007 Konstruktion av datorspråk Föreläsning 5. Peter Dalenius Institutionen för datavetenskap 2013-02-11

Domänspecifika språk. TDP007 Konstruktion av datorspråk Föreläsning 5. Peter Dalenius Institutionen för datavetenskap 2013-02-11 Domänspecifika språk TDP007 Konstruktion av datorspråk Föreläsning 5 Peter Dalenius Institutionen för datavetenskap 2013-02-11 Domänspecifika språk Ett domänspecifikt språk (eng. domain specific language,

Läs mer

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

Systemkrav 2014 för enanvändarinstallation fr o m version 2014.2 av Systemkrav 2014 för enanvändarinstallation fr o m version 2014.2 av Hogias ekonomisystem Systemkraven specificerar de miljöer och förutsättningar som programvaran är testad i och som vi rekommenderar för

Läs mer

Insamlingsverktyg - teknisk beskrivning av metadataformuläret

Insamlingsverktyg - teknisk beskrivning av metadataformuläret Digitala leveranser Insamlingsverktyg - teknisk beskrivning av metadataformuläret Innehåll: Allmänt Layout och uppbyggnad Hur man använder programmet Starta Fylla i metadata Skapa metadatafiler och leverera

Läs mer

Javautvecklare. Utbildningsfakta. 400 YH-poäng, 2 år

Javautvecklare. Utbildningsfakta. 400 YH-poäng, 2 år Javautvecklare 400 YH-poäng, 2 år Utbildningsfakta Kurser (12 stycken) Grundläggande programmering och javaverktyg 50 yhp Grafiskt gränssnitt och interaktion 20 yhp Internet, webb och webbramverk 40 yhp

Läs mer

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer. Översikt Klasshierarkier UML klassdiagram Relation mellan klasser mellan klasser och objekt Association ning ing andling Programmering tillämpningar och datastrukturer 2 UML UML Unified Modeling Language

Läs mer