BACHELOR'S THESIS. Python Scripting for Network Management PyMIP - TeMIP made simple. Mats Andersson Robert Wedin. Luleå University of Technology

Storlek: px
Starta visningen från sidan:

Download "BACHELOR'S THESIS. Python Scripting for Network Management PyMIP - TeMIP made simple. Mats Andersson Robert Wedin. Luleå University of Technology"

Transkript

1 BACHELOR'S THESIS 2006:043 HIP Python Scripting for Network Management PyMIP - TeMIP made simple Mats Andersson Robert Wedin Luleå University of Technology BSc Programmes in Engineering Computer Engineering Department of Skellefteå Campus Division of Mobile Networking and Computing 2006:043 HIP - ISSN: ISRN: LTU-HIP-EX--06/043--SE

2 Python scripting for network management PyMIP - Visual TeMIP made simple Mats Andersson Robert Wedin 31 oktober 2006

3 Förord Syfte med rapporten Syftet med denna rapport är att ge en beskrivning av det examensarbete vi har utfört åt Data Ductus. Den är även tänkt att ge utförlig information om vad PyMIP är, hur det fungerar samt hur det kan användas. Erkännanden Under tiden med examensarbetet har vi fått stöd och hjälp av många människor vilka vi vill tacka här: Alla på Data Ductus För den hjälp, det stöd och det kamratskap de har gett oss. De har verkligen fått oss att trivas under den här tiden. Urban Lundmark För att han gav oss chansen att göra examensarbetet här på Data Ductus. Ulrik Forsgren, Tord Andersson, Stefan Wallin och André Jonsson programmeringshjälp, de synpunkter och alla tips vi fått. För den Staffan Nilsson Examinator på LTU. Edward Domeij och Fredrik Ahlbäck Som alltid fanns till hands och hjälpte till med designfrågor, smarta lösningar och allmänt stöd. Utan alla er hade PyMIP aldrig varit möjligt! 1

4 Abstract This project was performed by the authors during 10 weeks in the spring of The primary goal was to produce a python-library as an interface for Visual TeMIP. Visual TeMIP is a C++-API used to develop applications and modules for interfacing with the alarmhandlingsystem, OpenView TeMIP. A secondary goal was to produce a light-weight webserver and webclient to be used by customers that has no need for the full-blown TeMIP-client. The webserver was written entirely in Python, using the PyMIP-library, and the webclient was written in DHTML, using AJAX. An ASCII-based alarmlist written in Python was also made for use by developers and technicians, and to test the functionality of the PyMIP-library. The main purpose of PyMIP is to decrease the time it takes to develop new applications and modules for TeMIP. Since Python is a fast and reliable scripting-language, it has no compilation-time. Also, it s simplicity and straight-forwardness when it comes to wrapping C++-classes makes it a natural choice for this kind of project. 2

5 Sammanfattning Det huvudsakliga målet var att skapa ett python-bibliotek som fungerar som ett interface till Visual TeMIP. Visual TeMIP är ett C++-API som används till att utveckla applikationer och moduler för alarmhanteringssystemet OpenView TeMIP. Ett sekundärt mål var att skapa en lättvikts-webbserver och en webbklient för de mindre kunder som inte har behov av den fullfjädrade TeMIP-klienten. Webbservern skrevs helt i Python och använde sig av PyMIPbiblioteket, webbklienten skrev i DHTML och AJAX. En ASCII-baserad larmlista skriven i Python gjordes också för att användas av utvecklare och tekniker, samt för att testa funktionaliteten i PyMIP. Huvudsyftet med PyMIP var att minska ned på utvecklingstiderna när man skapar applikationer och moduler för TeMIP. Eftersom Python är ett snabbt och tillförlitligt skriptspråk så har det ingen kompileringstid. Dessutom gör dess enkelhet och rättframhet när det gäller att wrappa C++-klasser den till ett naturligt val för denna typ av projekt. 3

6 Förklaringar och begrepp Vissa ord och uttryck som används i rapporten upprepade gånger förklaras ytterligare här. wrappa - Att kapsla in ett objekt så man kan ge det ett nytt interface, till exempel mellan olika språk. IDE - Integerated Development Enviroment. wxwidgets - Windows and X widgets är en open-source, plattformsoberoende verktyg för att skapa grafiska applikationer. Python-tolk - Ett program som tolkar python-kod och exekverar den. Makefil - En fil som beskriver för en kompilator hur ett objekt ska byggas. man - Unix-kommando för att söka hjälp om funktioner och liknande. Metaprogrammering - Metaprogrammering är skrivandet av program som skriver eller manipulerar andra program (eller sig själva). TeMIP PM - Programmodul som ligger i det översta skiktet av TeMIP. OC - Ett Operation Context är en entitet i TeMIP som anger ett intresseområde av larm. TeMIP:s dictionary - En databas som används för att slå upp information om olika entiteter i TeMIP. ncurses - Ett bibliotek för att utveckla pseudo-grafiska användarinterface i konsolmiljö. AJAX - Asynchronous JavaScript And XML. Collection - En samling av ett eller flera OC:s. 4

7 Innehåll Förord 1 Syfte med rapporten Erkännanden Innehållsförteckning 5 1 Introduktion Bakgrund och syfte Genomförande Initialt arbete Python TeMIP HP-UX och kompilatorer Wrappning SWIG Boost.Python Utveckling och tester PyMIP Lib C-to-Python Textlarmlista Webblarmlista Korrigeringsfilter Resultat 15 4 Diskussion 15 5 Referenser 17 Bilagor 18 A Visual TeMIP vs. PyMIP 18 B HTML-mallar 21 C Loopaloop 22 D Uppdragsbeskrivning 25 E TeMIP 30 5

8 1 Introduktion 1.1 Bakgrund och syfte Önskemålet från Data Ductus var att skapa ett bibliotek, PyMIP, skrivet i Python, för att använda till utveckling av applikationer och moduler till TeMIP. Anledningen till valet av just Python var att det är ett snabbt och robust skriptspråk vilket helt eliminerar kompileringstider jämfört med traditionell programmering i t.ex. C++. En andra anledning var dess enkelhet när det gäller att wrappa färdiga C++-klasser till fungerande Python-klasser. Se uppdragsbeskrivningen i bilaga D. Fördelen med Python och PyMIP jämfört med Visual TeMIP är att utvecklingstiderna minskas då man slipper kompileringstider. Detta sparar både tid och pengar för företaget, mycket för att man kan sitta ute hos kunden och genomföra tester, korrigera fel i existerande kod etc utan att behöva kompilera om hela systemet. Ett enkelt exempel som visar hur C++-kod skriven för Visual TeMIP samt Python-kod skriven för PyMIP finns att se i bilaga A. Anledningen till att vi valde detta examensarbete var för att det verkade mycket intressant och utvecklande. Ingen av oss hade tidigare programmerat i Python men vi var mycket intresserade av att lära oss ett så pass robust skriptspråk. Utmaningen att kunna tillgängliggöra ett interface från en klass i ett språk, till en annan klass i ett annat språk kändes utvecklande för oss som programmerare. 6

9 2 Genomförande 2.1 Initialt arbete Python Eftersom Python var okänt territorium krävdes det till en början en del inläsning och experimenterande för att få kunskap om hur Python fungerar och alla dess fördelar. Pythons hemsida 1 användes som startpunkt för studier och förståelse av Pythonspråket. Där fanns klara beskrivningar av det medföljande standardbiblioteket, grundläggande funktionalitet samt programmeringstips. Det första vi gjorde var att ladda hem och installera Python samt prova på språket i den interaktiva kommandotolken. Vi insåg ganska snabbt att den inte dög till att utveckla något användbart i, utan att det var dags att leta efter något form av IDE. Utvecklingsmiljön som följde med pythoninstallationen för windows var i princip bara en glorifierad texteditor utan funktionaliteter som automatisk kodkomplettering och någon större möjlighet att organisera ett projekt. Vi tittade på Boa Constructor samt Wing IDE. Boa Constructor hade fått ganska dåliga recensioner och Wing föll på det faktum att det var en kommersiell produkt. Vi ville helst komma igång så snabbt som möjligt utan att vara tvungna att betala för ett IDE. Till slut hittade vi SPE 2 som var ett gratis verktyg som byggde på wxwidgets och hade funktioner som automatisk kodkomplettering och bra möjligheter för att strukturera projekt. Det blev det slutgiltiga valet och den utvecklingsmiljö som vi arbetade i när det gällde Python för resten av projektet. Python gick fort att lära sig eftersom det är mycket intuitivt och går snabbt att prova sig fram i tack vare den interaktiva Python-tolken. En av de få svårigheter som vi stötte på var att vänja sig vid att Python är typeless, dvs man deklarerar inte variabler av en viss typ, eftersom typen av variabeln bestäms vid tilldelning TeMIP För att sätta sig in i TeMIP läste vi dokumentationen för utvecklare samt dokumentationen för TeMIP klienten. Sedan var även referensguiden till Visual TeMIP till stor hjälp när det gällde att förstå hur alla klasser hängde ihop och hur hela systemet fungerade. För att sammanfatta TeMIP: TeMIP är ett system för att hantera alarm från olika typer av enheter, såsom basstationer, routrar, mobilmaster och liknande. Dessa enheter tar själva hand om att skicka larm till TeMIP när något fel har uppstått. Larmen hanteras av TeMIP systemet och kan visas för en larmoperatör med hjälp av TeMIP klienten. Operatören hanterar larmen och väljer passande åtgärder som till exempel skicka ut en tekniker för att laga felet. För mer djupgående information om TeMIP samt TeMIP klienten, se bilaga E HP-UX och kompilatorer Det operativsystem som skulle användas för att utveckla och testa PyMIP på var HP-UX. En proprietär Unix-variant som Hewlett Packard utvecklat. Det är ett stabilt operativsystem, dock med 1 2 Stanis Python Editor 7

10 vissa kompatibilitets problem som var tvungna att hanteras. Anledningen till att HP-UX skulle användas var främst för att det fanns en existerande TeMIP-installation på det systemet. Under HP-UX var det acc som gällde som kompilator för att kompilera de wrappade C++klasserna till python-klasser. Att använda sig av makefiler och konsolbaserade kompilerare var något helt nytt vilket innebar en hel del huvudbry till en början. Inlärningskurvan var ganska brant då tidigare utveckling endast skett i IDE:s i Windowsmiljö. Tack vare man, hjälp från medarbetare och trial-and-error gick alla problem att lösa. 2.2 Wrappning Till en början gick det åt ett par dagar till att läsa och förstå hur man skulle gå till väga för att skriva Python klasser i C/C++. var här till stor hjälp för där fanns en beskrivning på hela C API:t samt exempel på hur strukturen av modulerna skulle se ut. Det första sättet vi testade var att följa Python-klasser-i-C exemplet som hittades på nämnda sida. Det fungerade som det skulle men kändes lite klumpigt eftersom det krävdes ganska mycket kodskrivande till och med för små klasser. Detta ledde till att vi gjorde efterforskningar för alternativa metoder. De två tillvägagångssätt som vi hittade var SWIG och Boost.Python SWIG SWIG står för Simplified Wrapper and Interface Generator. Det är ett verktyg som används för att generera wrappningskod för att t.ex. kunna komma åt ett C++ interface från andra språk som t.ex. Python, Perl, Ruby etc. Men det stödjer även språk som inte är skriptbaserade som t.ex. C#. Tanken med det hela är att man ska kunna ta redan utvecklade kodbibliotek och göra dem tillgängliga i t.ex. ett skriptspråk för att få snabbare utveckling med hjälp av minskade kompileringstider. Det verkade som att det passade perfekt för detta projekt. Till en början såg det ut som att det nästan skulle göra allt jobb eftersom det enda som behövdes för att ställa in SWIG var ett form av mallskript som beskrev hur den skulle generera kod för det skriptspråk man valt. Detta testades på HP-UX och det tog oss inte särskilt lång tid att förstå hur det hela fungerade. SWIG generade utifrån mallskriptet ett C++ bibliotek och en ren Pythonklass som använde sig av C++ biblioteket. Detta gav att man fick använda den C++ klass / bibliotek man valt att wrappa på samma sätt i Python som man skulle gjort i C++, med vissa språkliga skillnader givetvis. Det såg till en början riktigt bra ut och testades med ett par testklasser som skrevs i C++. Eftersom det fungerade som det borde gjordes vidare tester med Visual TeMIP klasser. Här var resultaten inte lika goda eftersom att det inte fanns stöd i SWIG för att hantera arv och mallar. Det blev även problem med att importera pythonklasserna ifall C++ klassen man valt att wrappa använde sig av vissa standardbibliotek. För att inte spilla allt för mycket tid på detta letade vi efter en alternativ metod för att underlätta wrappningen Boost.Python Efter lite mer letande på nätet och läsande av recensioner insåg vi att alla tecken pekade mot Boost.Python. Boost är ett open source C++ bibliotek som innehåller olika moduler som ökar C++:s funktionalitet, t ex färdiga bibliotek för datumhantering, Regex m.m. Här fanns även en 8

11 modul som hanterade wrappning av C++ klasser till Python på ett smidigt sätt genom metaprogrammering. Se följande exempel: En vanlig C++-funktion som denna: 1 char const g r e e t ( unsigned x ) 2 { 3 s t a t i c char const const msgs [ ] = { h e l l o, 4 Boost. Python, 5 world! } ; 6 7 i f ( x > 2) 8 throw std : : r a n g e e r r o r ( g r e e t : index out of range ) ; 9 10 return msgs [ x ] ; 11 } kan enkelt wrappas till Python med Boost.Python genom: 1 # include <boost/python. hpp> 2 using namespace boost : : python ; 3 BOOST PYTHON MODULE( h e l l o ) 4 { 5 def ( g r e e t, greet, 6 return one of 3 p a rts of a g r e e t i n g ) ; 7 } Jämförelsevis kan man se följande kod som ett exempel på hur man skulle wrappa samma funktion med hjälp av Pythons C-API: 1 // a l l Python i n t e r a c t i o n s use C linkage 2 // and c a l l i n g convention 3 extern C 4 { 5 // Wrapper to handle argument/ r e s u l t 6 // conversion and checking 7 PyObject greet wrap ( PyObject args, 8 PyObject keywords ) 9 { 10 i n t x ; 11 // e x t r a c t /check arguments 12 i f ( PyArg ParseTuple ( args, i, &x ) ) 13 { 14 // invoke wrapped function 15 char const r e s u l t = g r e e t ( x ) ; 16 // convert r e s u l t to Python 17 return PyString FromString ( r e s u l t ) ; 18 } 19 // e r r o r occurred 20 return 0 ; 21 } 22 9

12 23 // Table of wrapped f u n c t i o n s to be 24 // exposed by t h e module 25 s t a t i c PyMethodDef methods [ ] = { 26 { g r e e t, greet wrap, METH VARARGS, 27 return one of 3 p a rts of a g r e e t i n g } 28, { NULL, NULL, 0, NULL } // s e n t i n e l 29 } ; // module i n i t i a l i z a t i o n function 32 DL EXPORT i n i t h e l l o ( ) 33 { 34 // add the methods to the module 35 ( void ) Py InitModule ( h e l l o, methods ) ; 36 } 37 } Detta sätt att wrappa C++ på krävde lite mer jobb än vad SWIG gjorde men hade dock stöd för t.ex. arv och gav stor kontroll på vad man ville ta med om inte hela C++ klassens funktionalitet skulle tillgängliggöras. Boost.Python testades med stor framgång i windowsmiljö och det var enkelt att få klasser skrivna i C++ tillgängliga i Python med bara ett fåtal rader kod. En annan fördel med det hela var att biblioteket, i detta fall en.dll, som kompilerades var det enda som behövdes för att få tillgång till sitt pythonobjekt, dvs det krävdes ingen pythonkod som kapslade in det hela innan man kunde använda det i Python. När denna metod skulle testas på TeMIPklasserna i HP-UX miljö stötte vi på problem. Boost gick till stora delar bra att kompilera, men just Pythonmodulen vägrade att fungera. Vi sökte på nätet och fann att många andra hade haft liknade problem med just detta operativsystem. Någon konkret lösning på det hela hittades dock inte trots ihärdiga försök och vi insåg att det började bli slöseri med tid. Slutligen SWIG fungerade inte riktigt som väntat, och Boost gick tyvärr inte att kompilera med acc under HP-UX. Därför valdes Pythons C API som wrappningsmetod. Det blev en hel del jobb, mer än om man hade använt sig av SWIG eller Boost, men å andra sidan bidrog C API:t till en bättre kontroll över wrappningen, samt möjlighet att senare kunna lägga in stöd för arv mellan klasser. Det kändes då enklare att sätta sig in i C API:t då djupare förståelse för Python och hur dess objekt är uppbyggda hade uppnåtts. 2.3 Utveckling och tester Det första vi gjorde var att skapa en TeMIP PM vilken fungerade som en python-tolk som var integrerad med TeMIP. Detta krävs för att anropen till TeMIP skall fungera. Sedan wrappades några av de klasser som skulle behövas i PyMIP. För att kunna testa dessa PyMIP-klasser så gjordes en del mindre skript som testade funktionalitet i ett tidigt stadium. Det första testet som gjordes var att porta ett enkelt Visual TeMIP-program till Python. Allt detta gjorde var att visa information i konsolen om larm som hämtades från ett OC. Testet fungerade och gav en kvittens på att allt var gjort rätt, att PyMIP fungerade och det blev en första milstolpe. Härefter fortsatte utvecklingen ganska systematiskt efter den klassmall som designats. Fortlöpande tester gjordes allt eftersom nya klasser utvecklats för att kunna testa ytterligare 10

13 funktionalitet. Under utvecklingens gång skapades även flera mindre skript som kunde utföra diverse funktioner som till exempel att skicka larm med jämna mellanrum, lyssna efter nya larm samt slå upp information från TeMIP:s dictionary. Dessa skript användes bland annat för att se vilken minnesanvändning varje objekt hade, samt för att upptäcka och spåra minnesläckor. För att enkelt kunna skapa dokumentation för de wrappade C++-klasserna så skrevs ett skript som automatiskt genererade ett antal HTML-filer. Dessa skapades från kommentarerna, som skulle följa ett visst format, i varje C++-klass header-fil PyMIP Lib Tidigt insåg vi att flera TeMIP-objekt såsom AlarmObject, OperationContext och liknande behövdes som klasser i de olika skripten. Dessa fanns inte som klasser i Visual TeMIP utan krävde ett extra lager abstraktion. Därför gjordes ett nytt bibliotek, helt skrivet i Python, av de vanligaste objekten för att enkelgöra vidare utveckling C-to-Python För att de wrappade klasserna från TeMIP skulle kunna interagera mellan varandra som vanliga TeMIP-klasser krävdes att man skapade en C++-funktion som varje klass använde sig av för att enkelt kunna konvertera returvärden till rätt typ. Funktionen fick heta C-to-Python och blev en enkel och självbeskrivande funktion som var mycket lätt att bygga ut allt eftersom nya klasser tillkom Textlarmlista Ett önskemål från Data Ductus var att det skulle skrivas en ASCII-baserad larmlista för att enkelt kunna bevaka OC:s och hantera larm i en enkel och textbaserad miljö. Tanken var först att den skulle utvecklas med hjälp av ncurses, men det gick tyvärr inte på grund av kompabilitetsproblem med HP-UX. Tanken från början var att skapa ett enkelt skript som använde sig av trådade funktioner för att lyssna efter larm, samt ett enkelt textbaserat menysystem. Det visade sig också att vi var inne på rätt spår med dessa tankar som resulterade i en enkel och användbar larmlista, med begränsad funktionalitet. Ett av de första misstagen som gjordes under utvecklingen av textlarmlistan var att det knappt gjordes någon design över programmet alls innan programmerandet började. Detta innebar en hel del extrajobb och omskrivningar innan man kunde få alla delar att fungera tillsammans. När den första versionen var färdigställd tog det inte lång tid innan vi upptäckte att upplägget behövde snyggas till. Därför gjorde vi en ny version. Den här gången började vi med att designa upp en klasstruktur som kändes modulär och stabil. Detta gjorde att utvecklingen framskred mycket smidigare och en slutgiltig version var snart klar. Slutresultatet blev en larmlista som startade upp trådar för att lyssna och hålla koll på larm inom det OC:n man valt, samt ett enkelt menysystem som presenterade användaren för ett antal olika alternativ. 11

14 Inkommande, nya larm visades direkt i konsolen så man fick en visuell notifiering om att det hänt något i nåt av OC:na. Alternativen i menyn inkluderade bland annat att kunna ändra vilka OC:s man ville bevaka, flagga alarm som terminated 3 eller acknowledged 4, tömma ett helt OC på sina larm med mera. Figur 1: En visning av larmen i den textbaserade larmlistan såg ut såhär 3 Ett alarm som är hanterat och avslutat 4 Ett larm som är uppmärksammat och under hantering 12

15 2.3.4 Webblarmlista Ett annat önskemål som fanns var att skapa en webbaserad larmlista som alternativ till TeMIPklienten. Eftersom det redan fanns en alarmlista som kunde hantera larm i realtid samt hade ett grundläggande klassbibliotek klart var det steget inte så stort att ta. Inledande arbete bestod i att undersöka vilka möjligheter Python hade för att enkelt skapa en stabil webbserver. Snabbt upptäcktes en standardmodul i Python, BaseHTTPServer, som uppfyllde alla önskemål vid den tidpunkten. PyMIP lib användes till stor del i webbservern, men kompletterades löpande för att möta de nya krav som hela tiden ställdes. Version 1 Syftet med den första versionen av webblarmlistan var till stor del ett experiment för att testa våra kunskaper och Pythons webbservermodul, samt för att sätta PyMIP-biblioteket på prov. I denna version sköttes allting i servern. Den svarade på vanliga HTTP-förfrågningar och skapade HTML-sidor utifrån de larm som fanns i servern. Ett skript för att generera HTML av larm skrevs och baserades på HTML-mallar som innehåll nyckelord som byttes ut mot riktig larminformation. Genereringsskriptet hade även stöd för upprepande sektioner i mallarna. Valet att använda sig av mallar grundade sig på att vi ville lämna design av larmvisningen utanför själva webbservern så att de som använde den själva skulle kunna konfigurera utseende samt vilken information som skulle visas med hjälp av nämnda nyckelord och sektioner. Ett exempel på HTML-mallar finns att se i bilaga B. Resultatet blev blandat. Pythons webbservermodul fungerade som förväntats. Men HTML-genereringen var alldeles för långsam och svår att vidareutveckla för att det skulle vara något att fortsätta på. Eftersom servern skapade HTML-sidorna vid en ny förfrågan kunde man aldrig se i realtid att nya larm kommit in, och detta var en stor nackdel eftersom användaren då var tvungen att manuellt uppdatera sidan för att få se förändringar. Version 2 När det var dags för version 2 av webblarmlistan lades fokus lite mer på att få fram en webbserver som skulle vara användbar och smidig, även för icke-tekniska användare. Vi fick tipset om att kolla upp AJAX vilket vi fann intressant och mycket användbart direkt. Själva webbservern blev en hybrid av den gamla teknologin med mallar och AJAX. Mallarna användes bara för att presentera mer eller mindre statisk information, såsom vilka OC:s man bevakade med mera. AJAX användes för att skicka en förfrågan till webbservern som då svarade med nya larm om sådana fanns. I och med AJAX växte det fram en mindre webbklient som bestod av HTMLfiler, HTML-mallar och JavaScript. Denna webbklient gjorde även att sidan blev interaktiv, användaren kunde välja att visa ytterligare information om ett larm, flagga larm som terminated eller acknowledged samt sortera hela listan med ett enkelt musklick. Det första man fick se i tidiga versioner innan man gick in på larmlistan var en lista med collections som fanns att tillgå, där man antingen fick välja en existerande collection, eller skapa en ny och lägga till OC:s i denna. Vi insåg ganska snart att detta var ett felaktigt sätt att använda sig av collections. TeMIP jobbar på så sätt att endast ett system kan lyssna på en specifik collection i taget, så första sidan ändrades till att istället skapa en ny collection varje gång, och man fick direkt ange de OC:s man ville bevaka. 13

16 Efter det att man gjort detta val skickades man vidare in till själva larmlistan där man presenterades med information om det OC man valt, statistik över de larm som servern hade läst in från TeMIP samt en lista över alla dessa larm. För att kunna visa de larm som stämde in på vissa kriterier kunde man klicka fram ett dialogfönster och ställa in filter. En stor begränsning på filter i detta stadium var dock att man endast kunde filtrera på numeriska värden där man angav en undre och en övre gräns. En fördel med att använda AJAX var att nu kunde man visa larm som kom in till servern i realtid för användaren vilket gjorde webbklienten mycket mer användbar. Det vill säga, man var inte längre tvungen att manuellt uppdatera sidan för att få se nya larm utan det skedde semiautomatiskt. Skriptet skickade en förfråga till servern med jämna mellanrum och uppdaterade larmlistan för användaren vid behov. Figur 2: Larmlistan fick följande utseende och det som visas här är själva larmlistan efter att man valt vilka OC:s man vill bevaka Det slutliga resultatet blev ganska tillfredsställande. Denna version blev betydligt snabbare och mer dynamisk än version 1, mycket tack vare användandet av AJAX. Att användaren fick möjlighet att kontrollera vad som visades och att kunna påverka larm var ett stort steg närmare en fullfjädrad, lättanvänlig, webbaserad larmlista. Nackdelar med webbservern var dock att den endast hade stöd för en enda användare. Den kunde hantera förfrågningar från olika håll, men de ändringar som gjordes i sortering, filter och likande sparades på ett enda ställe i servern vilket resulterade i att alla användare fick se de ändringar som en användare utförde. Sedan var användandet av mallar lite för tungt för servern. Allting borde 14

17 hellre skötas med AJAX så att servern kunde få fokusera på sin huvudsakliga uppgift vilket var att bevaka OC:s och hantera larm Korrigeringsfilter Ett sidospår vi gick in på under utvecklingen av webservern var något som kallades korrigeringsfilter. Detta var i vanliga fall en modul skriven i C++ som användes för att kunna filtrera och ändra larm baserat på vilka parametrar de innehöll. T ex att ändra ett larms allvarlighetsgrad eller lägga till/ta bort text som skickades med. Det var en önskan att kunna skriva dessa korrigeringsfilter i Python med hjälp av PyMIP. Mycket för att kunna dra nytta av att Pythonmoduler enkelt går att ladda om dynamiskt vilket gör att man kan ändra och testa nämnda korrigeringsfilter i realtid. Efter lite tester togs en C++ modul fram. Modulens uppgift var att agera som ett riktigt korrigeringsfilter, men istället för att själv sköta korrigeringen läste den in ett Pythonskript och skickade vidare den information den hade till skriptet. Därefter sköttes all logik för att hantera larmet i Python. Detta gjorde att man aldrig behövde läsa om C++ modulen, men kunde ändå ändra hur korrigeringsfiltret betedde sig och låta C++ modulen läsa om den när filen ändrats. Trots den korta tid som lades ned på korrigeringsfilterna och den relativt lilla mängd kod som producerades blev resultatet oerhört bra och lade en stabil grund för fortsatt utveckling och användning. 3 Resultat Tanken att använda Python som skriptspråk för att utveckla mot TeMIP har visat sig vara en mycket bra och enkelt genomförbar metod. Beroende på vilken plattform man ska jobba mot är själva processen med att wrappa Visual TeMIP:s klasser något varierande i komplexitet och tidsåtgång. Dock är det mesta fullt möjligt och man tjänar snabbt in den tid man lagt ned på att bygga grunden. PyMIP-biblioteket innehöll i slutet 26 stycken wrappade C++-klasser. Det har visat sig att det går mycket snabbt att wrappa nya klasser, samt att utöka de redan existerande klasserna. Användandet av biblioteket är smidigt och enkelt, vilket gör att utveckling av nya moduler till TeMIP, skrivna i Python, kan snabbt bli fullt realiserade. Biblioteket lämpar sig även till mindre skript. Exempelvis kan man göra ett skript för att simulera inkommande larm och samtidigt simulera en operatör som hanterar larmen, på några få rader kod. Se bilaga C för ett enkelt exempel skrivet i PyMIP. Webbservern och webbklienten som utvecklades har man fortsatt att jobba på mot en kommersiellt gångbar produkt. En nyare version av webbklienten där mer sköts med hjälp av AJAX och ett helt nytt grafiskt interface har blivit skriven, samt även en ny version av webbservern som nu stödjer multipla, simultana klienter. 4 Diskussion I arbetsuppgiften fanns även ett önskemål att kunna dynamiskt generera nya Python-moduler från objekt som registrerades i TeMIP. Detta fanns det dock ingen tid till att undersöka närmare då vikten lades mer på att få fram en webbserver med tillräcklig funktionalitet. Endast en ytlig undersökning har genomförts och uppfattningen är att det skulle kunna vara klart genomförbart. 15

18 Figur 3: Den nyaste versionen av webblarmlistan Nya objekt registreras i TeMIP:s dictionary, vilket gör det fullt möjligt att kunna utläsa de funktioner och parametrar som objektet kan behöva. Någon vidare undersökning kommer inte att utföras under detta examensarbete. 16

19 5 Referenser - Pythons officiella hemsida ( ) - SWIG ( ) - Boost.Python ( ) 17

20 Bilagor A Visual TeMIP vs. PyMIP En kodsnutt skriven i C++ för Visual TeMIP 1 // 2 // Visual TeMIP Include F i l e s 3 // 4 # include <tfc framework. hxx> 5 # include <t e m i p a h f m s r v c i f. h> 6 # include <tfc wp mt log. hxx> 7 # include <temip mt log report. hxx> 8 # include <t f c s p c a t a l o g. hxx> 9 # include <n l t y p e s. h> 10 # include <iostream > // 13 // Example Include F i l e s 14 // 15 # include s w i t c h a p p l i. hxx // 18 // Implementation of the TeMIP Application 19 // 20 IMPLEMENT TEMIP APPLICATION( s w i t c h a p p l i ) # define TRACE SWITCH APPLI MCC T CVR MApplicationswitch appli : : OnExecute ( i n t argc, 26 char argv [ ] ) 27 { MCC T CVR r e s u l t = MCC S NORMAL; // Create the OC e n t i t y 32 MFullName ocname( argv [ 1 ] ) ; 33 MClientEntitySpec alarmentity ; 34 alarmentity. AddClassInstance ( 35 MCC K CLASS OPERATION CONTEXT, ocname ) ; 36 alarmentity. AddWildInstance (MCC K CLASS ALARM OBJECT ) ; // Get a d i c t i o n a r y o b j e c t 39 MDictClass c l assdef ( alarmentity ) ; // Create the c a l l 42 MCallShow showcall ( alarmentity, MCC K PRT CHAR ) ; // Loop f o r e v e r 45 do 46 { 47 // Make the c a l l 18

Datasäkerhet och integritet

Datasäkerhet och integritet Chapter 4 module A Networking Concepts OSI-modellen TCP/IP This module is a refresher on networking concepts, which are important in information security A Simple Home Network 2 Unshielded Twisted Pair

Läs mer

Beijer Electronics AB 2000, MA00336A, 2000-12

Beijer Electronics AB 2000, MA00336A, 2000-12 Demonstration driver English Svenska Beijer Electronics AB 2000, MA00336A, 2000-12 Beijer Electronics AB reserves the right to change information in this manual without prior notice. All examples in this

Läs mer

Biblioteket.se. A library project, not a web project. Daniel Andersson. Biblioteket.se. New Communication Channels in Libraries Budapest Nov 19, 2007

Biblioteket.se. A library project, not a web project. Daniel Andersson. Biblioteket.se. New Communication Channels in Libraries Budapest Nov 19, 2007 A library project, not a web project New Communication Channels in Libraries Budapest Nov 19, 2007 Daniel Andersson, daniel@biblioteket.se 1 Daniel Andersson Project manager and CDO at, Stockholm Public

Läs mer

HP BSM - Erfarenheter från FMS projektet ComHem Jan Östgren MangE Nordic AB (Med hjälp från Thomas Englund ComHem)

HP BSM - Erfarenheter från FMS projektet ComHem Jan Östgren MangE Nordic AB (Med hjälp från Thomas Englund ComHem) Novug 2013-02-13 HP BSM - Erfarenheter från FMS projektet ComHem Jan Östgren MangE Nordic AB (Med hjälp från Thomas Englund ComHem) 2013-02-13 1 Jan Östgren - Bio September 2012 Manag E (Nordic) Solution

Läs mer

COPENHAGEN Environmentally Committed Accountants

COPENHAGEN Environmentally Committed Accountants THERE ARE SO MANY REASONS FOR WORKING WITH THE ENVIRONMENT! It s obviously important that all industries do what they can to contribute to environmental efforts. The MER project provides us with a unique

Läs mer

Support Manual HoistLocatel Electronic Locks

Support Manual HoistLocatel Electronic Locks Support Manual HoistLocatel Electronic Locks 1. S70, Create a Terminating Card for Cards Terminating Card 2. Select the card you want to block, look among Card No. Then click on the single arrow pointing

Läs mer

2.1 Installation of driver using Internet Installation of driver from disk... 3

2.1 Installation of driver using Internet Installation of driver from disk... 3 &RQWHQW,QQHKnOO 0DQXDOÃ(QJOLVKÃ'HPRGULYHU )RUHZRUG Ã,QWURGXFWLRQ Ã,QVWDOOÃDQGÃXSGDWHÃGULYHU 2.1 Installation of driver using Internet... 3 2.2 Installation of driver from disk... 3 Ã&RQQHFWLQJÃWKHÃWHUPLQDOÃWRÃWKHÃ3/&ÃV\VWHP

Läs mer

Flytta din affär till molnet

Flytta din affär till molnet Flytta din affär till molnet Låt oss prata moln 2 Låt oss prata moln 3 Marknadsförare var först i molnet. Vi skulle inte bli förvånade om du redan använder molnet för: CRM Marketing automation Social media-platformar

Läs mer

SAS VIYA JOHAN ELFMAN ROLAND BALI

SAS VIYA JOHAN ELFMAN ROLAND BALI 5/31/2016 SAS VIYA JOHAN ELFMAN ROLAND BALI Co p yr i g h t 2 0 1 6, S A S In s t i tut e In c. A l l r i g h t s r e s e r v ed. Co p yr i g h t 2 0 1 6, S A S In s t i tut e In c. A l l r i g h t s r

Läs mer

Examensarbete Introduk)on - Slutsatser Anne Håkansson annehak@kth.se Studierektor Examensarbeten ICT-skolan, KTH

Examensarbete Introduk)on - Slutsatser Anne Håkansson annehak@kth.se Studierektor Examensarbeten ICT-skolan, KTH Examensarbete Introduk)on - Slutsatser Anne Håkansson annehak@kth.se Studierektor Examensarbeten ICT-skolan, KTH 2016 Anne Håkansson All rights reserved. Svårt Harmonisera -> Introduktion, delar: Fråga/

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

Om oss DET PERFEKTA KOMPLEMENTET THE PERFECT COMPLETION 04 EN BINZ ÄR PRECIS SÅ BRA SOM DU FÖRVÄNTAR DIG A BINZ IS JUST AS GOOD AS YOU THINK 05

Om oss DET PERFEKTA KOMPLEMENTET THE PERFECT COMPLETION 04 EN BINZ ÄR PRECIS SÅ BRA SOM DU FÖRVÄNTAR DIG A BINZ IS JUST AS GOOD AS YOU THINK 05 Om oss Vi på Binz är glada att du är intresserad av vårt support-system för begravningsbilar. Sedan mer än 75 år tillverkar vi specialfordon i Lorch för de flesta olika användningsändamål, och detta enligt

Läs mer

LARS. Ett e-bokningssystem för skoldatorer.

LARS. Ett e-bokningssystem för skoldatorer. LARS Ett e-bokningssystem för skoldatorer. Därför behöver vi LARS Boka dator i förväg. Underlätta för studenter att hitta ledig dator. Rapportera datorer som är sönder. Samordna med schemaläggarnas system,

Läs mer

Schenker Privpak AB Telefon VAT Nr. SE Schenker ABs ansvarsbestämmelser, identiska med Box 905 Faxnr Säte: Borås

Schenker Privpak AB Telefon VAT Nr. SE Schenker ABs ansvarsbestämmelser, identiska med Box 905 Faxnr Säte: Borås Schenker Privpak AB Interface documentation for web service packageservices.asmx 2012-09-01 Version: 1.0.0 Doc. no.: I04304b Sida 2 av 7 Revision history Datum Version Sign. Kommentar 2012-09-01 1.0.0

Läs mer

TRENDERNA SOM FORMAR DIN VERKLIGHET 2014 ÅRETS IT AVDELNING 2014 2014-01-23

TRENDERNA SOM FORMAR DIN VERKLIGHET 2014 ÅRETS IT AVDELNING 2014 2014-01-23 TRENDERNA SOM FORMAR DIN VERKLIGHET 2014 ÅRETS IT AVDELNING 2014 2014-01-23 THE POWER OF INTEGRATION There will not exist hardware without services integrated, services without applications surrounding

Läs mer

OFTP2: Secure transfer over the Internet

OFTP2: Secure transfer over the Internet Presentation We are ready for OFTP2! OFTP2: Secure transfer over the Internet Productive, standardized and secure flow of information in the Product Lifecycle Management (PLM) by Nils Johansson, LTH &

Läs mer

F1 SBS 2008. 2013-01-16 EC Utbildning AB 2013-01-16

F1 SBS 2008. 2013-01-16 EC Utbildning AB 2013-01-16 F1 SBS 2008 EC Utbildning AB 1 F1 SBS 2008 Dagens föreläsning Den mjuka sidan: Vad är Microsoft Small Business Server 2008? Varför SBS 2008? Den hårda sidan, teknik: Installation, systemkrav Konfiguration

Läs mer

Enterprise App Store. Sammi Khayer. Igor Stevstedt. Konsultchef mobila lösningar. Teknisk Lead mobila lösningar

Enterprise App Store. Sammi Khayer. Igor Stevstedt. Konsultchef mobila lösningar. Teknisk Lead mobila lösningar Enterprise App Store KC TL Sammi Khayer Konsultchef mobila lösningar Familjen håller mig jordnära. Arbetar med ledarskap, mobila strategier och kreativitet. Fotbollen ger energi och fokus. Apple fanboy

Läs mer

Mönster. Ulf Cederling Växjö University Ulf.Cederling@msi.vxu.se http://www.msi.vxu.se/~ulfce. Slide 1

Mönster. Ulf Cederling Växjö University Ulf.Cederling@msi.vxu.se http://www.msi.vxu.se/~ulfce. Slide 1 Mönster Ulf Cederling Växjö University UlfCederling@msivxuse http://wwwmsivxuse/~ulfce Slide 1 Beskrivningsmall Beskrivningsmallen är inspirerad av den som användes på AG Communication Systems (AGCS) Linda

Läs mer

Quick Start Guide Snabbguide

Quick Start Guide Snabbguide Quick Start Guide Snabbguide C Dictionary Quick Start Thank you for choosing C Dictionary and C-Pen as your translation solution. C Dictionary with its C-Pen connection will make translation easy and enable

Läs mer

Isolda Purchase - EDI

Isolda Purchase - EDI Isolda Purchase - EDI Document v 1.0 1 Table of Contents Table of Contents... 2 1 Introduction... 3 1.1 What is EDI?... 4 1.2 Sending and receiving documents... 4 1.3 File format... 4 1.3.1 XML (language

Läs mer

Service och bemötande. Torbjörn Johansson, GAF Pär Magnusson, Öjestrand GC

Service och bemötande. Torbjörn Johansson, GAF Pär Magnusson, Öjestrand GC Service och bemötande Torbjörn Johansson, GAF Pär Magnusson, Öjestrand GC Vad är service? Åsikter? Service är något vi upplever i vårt möte med butikssäljaren, med kundserviceavdelningen, med företagets

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

Alternativet är iwindows registret som ni hittar under regedit och Windows XP 32 bit.

Alternativet är iwindows registret som ni hittar under regedit och Windows XP 32 bit. TNT ExpressShipper installation. Om ni redan har en ExpressShipper installation på företaget behöver ni först ta reda på vilken version som är installerad och sökvägen till databasen. Versionen ser ni

Läs mer

Att utveckla och skapa en effektiv och dynamisk process för konsolidering och rapportering

Att utveckla och skapa en effektiv och dynamisk process för konsolidering och rapportering Ulla-Britt Fagerström - Senior lösningsspecialist, IBM Business Analytics 22 maj 2013 Att utveckla och skapa en effektiv och dynamisk process för konsolidering och rapportering Då kan drömmar gå i uppfyllelse

Läs mer

Webbregistrering pa kurs och termin

Webbregistrering pa kurs och termin Webbregistrering pa kurs och termin 1. Du loggar in på www.kth.se via den personliga menyn Under fliken Kurser och under fliken Program finns på höger sida en länk till Studieöversiktssidan. På den sidan

Läs mer

PRODUCT MANAGEMENT. Klicka här för att ändra format. Klicka här för att ändra format på underrubrik i bakgrunden

PRODUCT MANAGEMENT. Klicka här för att ändra format. Klicka här för att ändra format på underrubrik i bakgrunden på From Requirements in Excel - to development of profitable products Strategic Technology PRODUCT PRODUCT Market PLANNING MARKETING på Operational Product planning = Define and Develop Product marketing

Läs mer

Installation av F13 Bråvalla

Installation av F13 Bråvalla Website: http://www.rbdesign.se Installation av F13 Bråvalla RBDESIGN FREEWARE - ESCK Norrköping-Bråvalla 1. Ladda ner och packa upp filerna i en mapp som du har skapat på ett lättöverskådligt ställe utanför

Läs mer

Flytta din affär till molnet

Flytta din affär till molnet Flytta din affär till molnet Låt oss prata moln 2 Låt oss prata moln 3 Marknadsförare var först i molnet. Vi skulle inte bli förvånade om du redan använder molnet för: CRM Marketing automation Social media-platformar

Läs mer

The Swedish National Patient Overview (NPO)

The Swedish National Patient Overview (NPO) The Swedish National Patient Overview (NPO) Background and status 2009 Tieto Corporation Christer Bergh Manager of Healthcare Sweden Tieto, Healthcare & Welfare christer.bergh@tieto.com Agenda Background

Läs mer

.SE (Stiftelsen för Internetinfrastruktur) Presentation November 2009

.SE (Stiftelsen för Internetinfrastruktur) Presentation November 2009 .SE (Stiftelsen för Internetinfrastruktur) Presentation November 2009 About us.se (The Internet Infrastructure Foundation) is responsible for the.se top-level domain. Non-profit organisation founded in

Läs mer

Användning av Erasmus+ deltagarrapporter för uppföljning

Användning av Erasmus+ deltagarrapporter för uppföljning Användning av Erasmus+ deltagarrapporter för uppföljning Internationaliseringsdagarna 2016 2016-11-02 Anders Clarhäll Participant Report Form Identification of the Participant and General Information (Motivation)

Läs mer

Användarhandbok. MHL to HDMI Adapter IM750

Användarhandbok. MHL to HDMI Adapter IM750 Användarhandbok MHL to HDMI Adapter IM750 Innehåll Inledning...3 MHL to HDMI Adapter-översikt...3 Komma igång...4 Smart Connect...4 Uppgradera Smart Connect...4 Använda MHL to HDMI Adapter...5 Ansluta

Läs mer

Styrteknik 7.5 hp distans: E-1000 och E-Designer

Styrteknik 7.5 hp distans: E-1000 och E-Designer PLC8A:1 E1000 operatörsterminaler En operatörsterminal ger ett gränssnitt mellan männinska-maskin, (MMI människa-maskininteraktion, HMI Human Machine Interface) Alla terminalerna i E1000-serien är utvecklade

Läs mer

Webbtillgänglighet. Tillgänglighet på webben. Hörselskadades behov. Synskadades behov. Kognitivt funktionshindrades behov. Rörelsehindrades behov

Webbtillgänglighet. Tillgänglighet på webben. Hörselskadades behov. Synskadades behov. Kognitivt funktionshindrades behov. Rörelsehindrades behov Webbtillgänglighet Tillgänglighet på webben Att göra webbsidor så att de är tillgängliga för alla oavsett vilka funktionsnedsättningar man har Att göra sidor tillgängliga oavsett vilken inoch utmatningsutrustning

Läs mer

Materialplanering och styrning på grundnivå. 7,5 högskolepoäng

Materialplanering och styrning på grundnivå. 7,5 högskolepoäng Materialplanering och styrning på grundnivå Provmoment: Ladokkod: Tentamen ges för: Skriftlig tentamen TI6612 Af3-Ma, Al3, Log3,IBE3 7,5 högskolepoäng Namn: (Ifylles av student) Personnummer: (Ifylles

Läs mer

Alias 1.0 Rollbaserad inloggning

Alias 1.0 Rollbaserad inloggning Alias 1.0 Rollbaserad inloggning Alias 1.0 Rollbaserad inloggning Magnus Bergqvist Tekniskt Säljstöd Magnus.Bergqvist@msb.se 072-502 09 56 Alias 1.0 Rollbaserad inloggning Funktionen Förutsättningar Funktionen

Läs mer

Per-Anders Nilsson SaabTech Systems Oktober 2001

Per-Anders Nilsson SaabTech Systems Oktober 2001 Per-Anders Nilsson SaabTech Systems Oktober 2001 SWEDISH 4TH GENERATION AIR FORCE Joint Command CCIS JAS 39 Gripen Fighter Link S 100B ERIEYE Air Command CCIS STRIC TARAS radio system Civilian Air Traffic

Läs mer

Writing with context. Att skriva med sammanhang

Writing with context. Att skriva med sammanhang Writing with context Att skriva med sammanhang What makes a piece of writing easy and interesting to read? Discuss in pairs and write down one word (in English or Swedish) to express your opinion http://korta.nu/sust(answer

Läs mer

Swedbank Mobile Loadtesting. LoadRunner 11.04 Mobile App protocol

Swedbank Mobile Loadtesting. LoadRunner 11.04 Mobile App protocol Swedbank Mobile Loadtesting LoadRunner 11.04 Mobile App protocol Bakgrund Mission: Prestandatesta mobilt backend Typ: RESTful tjänst Underlag: Dokumenterat URI och API (Uniform Resource Identifier, Application

Läs mer

802.11b Wireless router w. 4 port switch. StarTech ID: BR411BWDC

802.11b Wireless router w. 4 port switch. StarTech ID: BR411BWDC 802.11b Wireless router w. 4 port switch StarTech ID: BR411BWDC Share your Internet connection without being constrained by cables with StarTech.com s 802.11b wireless router. The BR411BWDC lets you share

Läs mer

Senaste trenderna från testforskningen: Passar de industrin? Robert Feldt,

Senaste trenderna från testforskningen: Passar de industrin? Robert Feldt, Senaste trenderna från testforskningen: Passar de industrin? Robert Feldt, robert.feldt@bth.se Vad är på gång i forskningen? (ICST 2015 & 2016) Security testing Mutation testing GUI testing Model-based

Läs mer

Övning 5 ETS052 Datorkommuniktion Routing och Networking

Övning 5 ETS052 Datorkommuniktion Routing och Networking Övning 5 TS5 Datorkommuniktion - 4 Routing och Networking October 7, 4 Uppgift. Rita hur ett paket som skickas ut i nätet nedan från nod, med flooding, sprider sig genom nätet om hop count = 3. Solution.

Läs mer

QC i en organisation SAST 2008-09-16

QC i en organisation SAST 2008-09-16 QC i en organisation SAST 2008-09-16 1 Agenda Hur är vi organiserade inom test på SEB? Hur är QC uppsatt på SEB? Hur arbetar vi med QC i en stor organisation? Uppfyllde QC våra förväntningar och hur har

Läs mer

Välkommen in på min hemsida. Som företagsnamnet antyder så sysslar jag med teknisk design och konstruktion i 3D cad.

Välkommen in på min hemsida. Som företagsnamnet antyder så sysslar jag med teknisk design och konstruktion i 3D cad. Välkommen in på min hemsida. Som företagsnamnet antyder så sysslar jag med teknisk design och konstruktion i 3D cad. har varit aktivt sedan 2004, men min bransch erfarenhet började redan 1983. Jag sysslar

Läs mer

Support for Artist Residencies

Support for Artist Residencies 1. Basic information 1.1. Name of the Artist-in-Residence centre 0/100 1.2. Name of the Residency Programme (if any) 0/100 1.3. Give a short description in English of the activities that the support is

Läs mer

Collaborative Product Development:

Collaborative Product Development: Collaborative Product Development: a Purchasing Strategy for Small Industrialized House-building Companies Opponent: Erik Sandberg, LiU Institutionen för ekonomisk och industriell utveckling Vad är egentligen

Läs mer

Authentication Context QC Statement. Stefan Santesson, 3xA Security AB stefan@aaa-sec.com

Authentication Context QC Statement. Stefan Santesson, 3xA Security AB stefan@aaa-sec.com Authentication Context QC Statement Stefan Santesson, 3xA Security AB stefan@aaa-sec.com The use case and problem User identities and user authentication is managed through SAML assertions. Some applications

Läs mer

Översättning av galleriet. Hjälp till den som vill...

Översättning av galleriet. Hjälp till den som vill... Hjälp till den som vill... $txt['aeva_title'] = 'Galleri'; $txt['aeva_admin'] = 'Admin'; $txt['aeva_add_title'] = 'Titel'; $txt['aeva_add_desc'] = 'Beskrivning'; $txt['aeva_add_file'] = 'Fil att ladda

Läs mer

The present situation on the application of ICT in precision agriculture in Sweden

The present situation on the application of ICT in precision agriculture in Sweden The present situation on the application of ICT in precision agriculture in Sweden Anna Rydberg & Johanna Olsson JTI Swedish Institute for Agricultural and Environmental Engineering Objective To investigate

Läs mer

Klicka här för att ändra format

Klicka här för att ändra format på 1 på Marianne Andrén General Manager marianne.andren@sandviken.se Sandbacka Park Högbovägen 45 SE 811 32 Sandviken Telephone: +46 26 24 21 33 Mobile: +46 70 230 67 41 www.isea.se 2 From the Off e project

Läs mer

8% 6% 4% 2% 0% -2% -4% -6% -8% 2009 2010 2011 2012 2013p. BNP IT-budget

8% 6% 4% 2% 0% -2% -4% -6% -8% 2009 2010 2011 2012 2013p. BNP IT-budget PREDICTIONS 8% 6% 4% 2% 0% -2% -4% -6% -8% 2009 2010 2011 2012 2013p BNP IT-budget 3% Utveckling 2013 2% 1% 1-9 10-49 50-99 100-249 250+ 0% 1-9 10-49 50-99 100-249 250+ UTMANINGEN STÖRRE VOLYM FÖR MINDRE

Läs mer

Föreläsning i webbdesign. Interak*onsdesign. Rune Körnefors. Medieteknik. 2012 Rune Körnefors rune.kornefors@lnu.se

Föreläsning i webbdesign. Interak*onsdesign. Rune Körnefors. Medieteknik. 2012 Rune Körnefors rune.kornefors@lnu.se Föreläsning i webbdesign Interak*onsdesign Rune Körnefors Medieteknik 1 2012 Rune Körnefors rune.kornefors@lnu.se Från föreläsning F1 Användarcentrerad design "Take the user into account every step of

Läs mer

Services + REST och OAuth

Services + REST och OAuth Services + REST och OAuth Syftet med Services Skapa ett Drupal API för att exponera webb- API:er. Officiella versionen - Create a unified Drupal API for web services to be exposed in a variety of different

Läs mer

Introduktion till Entity Framework och LINQ. Källa och läs mer https://msdn.microsoft.com/en-us/data/aa937709.aspx

Introduktion till Entity Framework och LINQ. Källa och läs mer https://msdn.microsoft.com/en-us/data/aa937709.aspx Introduktion till Entity Framework och LINQ Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Vad är Entity Framework? The Microsoft ADO.NET Entity Framework is an Object/Relational Mapping

Läs mer

Styrteknik: Binära tal, talsystem och koder D3:1

Styrteknik: Binära tal, talsystem och koder D3:1 Styrteknik: Binära tal, talsystem och koder D3:1 Digitala kursmoment D1 Boolesk algebra D2 Grundläggande logiska funktioner D3 Binära tal, talsystem och koder Styrteknik :Binära tal, talsystem och koder

Läs mer

Utkast. Programmering. Signals. Olika typer av program. Sommarkurs 2007 www.hh.se/staff/vero/programmering. Avbrott i mjukvara.

Utkast. Programmering. Signals. Olika typer av program. Sommarkurs 2007 www.hh.se/staff/vero/programmering. Avbrott i mjukvara. Programmering Sommarkurs 2007 www.hh.se/staff/vero/programmering Verónica Gaspes Utkast Avbrott i mjukvara Larm signaler Avslutnings signaler IDE-sektionen Curses Juli 2 Olika typer av program Signals

Läs mer

http://marvel.com/games/play/31/create_your_own_superhero http://www.heromachine.com/

http://marvel.com/games/play/31/create_your_own_superhero http://www.heromachine.com/ Name: Year 9 w. 4-7 The leading comic book publisher, Marvel Comics, is starting a new comic, which it hopes will become as popular as its classics Spiderman, Superman and The Incredible Hulk. Your job

Läs mer

SharePoint 2010 licensiering Wictor Wilén

SharePoint 2010 licensiering Wictor Wilén SharePoint 2010 licensiering Wictor Wilén Sweden SharePoint User Group 26:e maj 2010 Vem är jag? Inte för rutinuppdrag. Wictor Wilén SharePoint Arkitekt Connecta AB SharePoint MVP Microsoft Certified Trainer,

Läs mer

AGIL KRAVHANTERING. Hitta behoven bakom kraven!! Thomas Nilsson! Agile Coach & Mentor! CTO, Responsive

AGIL KRAVHANTERING. Hitta behoven bakom kraven!! Thomas Nilsson! Agile Coach & Mentor! CTO, Responsive AGIL KRAVHANTERING Hitta behoven bakom kraven!!! Thomas Nilsson! Agile Coach & Mentor! CTO, Responsive KRAVSTÄLL EN PRODUKT! Skriv ner tre krav som ni ställer på produkten INNOVATIONSDRIVNA PRODUKTER...

Läs mer

TS CASESKOLA B. Asplund, CJ och Bengtsson, L. LTH

TS CASESKOLA B. Asplund, CJ och Bengtsson, L. LTH TS CASESKOLA B Asplund, CJ och Bengtsson, L. LTH 2016 Ett styrdokument. Är en naturlig del av caset. Bör vara utförlig och strukturerad (se Asplund 2011). Undervisningssyfte, målgrupp, nivå, typ av kurs

Läs mer

1. Compute the following matrix: (2 p) 2. Compute the determinant of the following matrix: (2 p)

1. Compute the following matrix: (2 p) 2. Compute the determinant of the following matrix: (2 p) UMEÅ UNIVERSITY Department of Mathematics and Mathematical Statistics Pre-exam in mathematics Linear algebra 2012-02-07 1. Compute the following matrix: (2 p 3 1 2 3 2 2 7 ( 4 3 5 2 2. Compute the determinant

Läs mer

Senaste trenderna inom redovisning, rapportering och bolagsstyrning Lars-Olle Larsson, Swedfund International AB

Senaste trenderna inom redovisning, rapportering och bolagsstyrning Lars-Olle Larsson, Swedfund International AB 1 Senaste trenderna inom redovisning, rapportering och bolagsstyrning Lars-Olle Larsson, Swedfund International AB 2 PwC undersökning av börsföretag & statligt ägda företag Årlig undersökning av års- &

Läs mer

Förändrade förväntningar

Förändrade förväntningar Förändrade förväntningar Deloitte Ca 200 000 medarbetare 150 länder 700 kontor Omsättning cirka 31,3 Mdr USD Spetskompetens av världsklass och djup lokal expertis för att hjälpa klienter med de insikter

Läs mer

Inför projektuppgiften. Markus Buschle, markusb@ics.kth.se

Inför projektuppgiften. Markus Buschle, markusb@ics.kth.se Inför projektuppgiften Markus Buschle, markusb@ics.kth.se Agenda Möjligheter,ll samarbete Enterprise Architecture för beslutsfa8ande Modell Analys Resultat Projektuppgi? Möjligheter -ll samarbete Examensarbeten

Läs mer

SICS Introducing Internet of Things in Product Business. Christer Norström, CEO SICS. In collaboration with Lars Cederblad at Level21 AB

SICS Introducing Internet of Things in Product Business. Christer Norström, CEO SICS. In collaboration with Lars Cederblad at Level21 AB SICS Introducing Internet of Things in Business Christer Norström, CEO SICS In collaboration with Lars Cederblad at Level21 AB A NOT CONNECTED PRODUCT TO A CONNECTED PRODUCT IOT introduction Examples What

Läs mer

The road to Recovery in a difficult Environment

The road to Recovery in a difficult Environment Presentation 2010-09-30 The road to Recovery in a difficult Environment - a presentation at the Workability International Conference Social Enterprises Leading Recovery in Local and Global Markets in Dublin

Läs mer

SkillGuide. Bruksanvisning. Svenska

SkillGuide. Bruksanvisning. Svenska SkillGuide Bruksanvisning Svenska SkillGuide SkillGuide är en apparat utformad för att ge summativ återkoppling i realtid om hjärt- och lungräddning. www.laerdal.com Medföljande delar SkillGuide och bruksanvisning.

Läs mer

Kundfokus Kunden och kundens behov är centrala i alla våra projekt

Kundfokus Kunden och kundens behov är centrala i alla våra projekt D-Miljö AB bidrar till en renare miljö genom projekt där vi hjälper våra kunder att undersöka och sanera förorenad mark och förorenat grundvatten. Vi bistår dig som kund från projektets start till dess

Läs mer

ISTQB Testarens ledstjärna

ISTQB Testarens ledstjärna ISTQB Testarens ledstjärna SSTB SAST-möte 2012-02-23 Vilka är vi? Mångårig erfarenhet från testarbete, testare, testledare, testchef. Utveckling av test metoder och processer. Test kurser. Jobbar som Systemarkitekt

Läs mer

Resurser. Visa sidan Hjälpguide. Menykarta. Phaser 4400 laserskrivare

Resurser. Visa sidan Hjälpguide. Menykarta. Phaser 4400 laserskrivare Phaser 4400 laserskrivare Resurser En stor mängd information finns samlad i skrivaren som utskrivbara sidor. På följande sidor visas Hjälpguiden, en utskrivbar sida över resurser för att få hjälp. P4400-77

Läs mer

FÖRBERED UNDERLAG FÖR BEDÖMNING SÅ HÄR

FÖRBERED UNDERLAG FÖR BEDÖMNING SÅ HÄR FÖRBERED UNDERLAG FÖR BEDÖMNING SÅ HÄR Kontrollera vilka kurser du vill söka under utbytet. Fyll i Basis for nomination for exchange studies i samråd med din lärare. För att läraren ska kunna göra en korrekt

Läs mer

Viktig information för transmittrar med option /A1 Gold-Plated Diaphragm

Viktig information för transmittrar med option /A1 Gold-Plated Diaphragm Viktig information för transmittrar med option /A1 Gold-Plated Diaphragm Guldplätering kan aldrig helt stoppa genomträngningen av vätgas, men den får processen att gå långsammare. En tjock guldplätering

Läs mer

Robust och energieffektiv styrning av tågtrafik

Robust och energieffektiv styrning av tågtrafik 1 Robust och energieffektiv styrning av tågtrafik - CATO - Forskning inom OnTime - Vidareutveckling och möjligheter KAJT, temadag om punktlighet 2014-11-13 Tomas Lidén Transrail Sweden AB Dagens trafikledning

Läs mer

PROFINET MELLAN EL6631 OCH EK9300

PROFINET MELLAN EL6631 OCH EK9300 PROFINET MELLAN EL6631 OCH EK9300 Installation och beskrivningsfil Exemplet visar igångkörning av profinet mellan Beckhoff-master och Beckhoff-kopplare för EL-terminaler. Med ny hårdvara är det viktigt

Läs mer

EU:s ministerkonferens för e-förvaltning under det svenska ordförandeskapet

EU:s ministerkonferens för e-förvaltning under det svenska ordförandeskapet EU:s ministerkonferens för e-förvaltning under det svenska ordförandeskapet Seminarium 1:6 Föreläsare Urban Funered, urban.funered@finance.ministry.se Offentliga Rummet, Norrköping, 26 Maj 2009 Urban Funered

Läs mer

Designmönster för sociala användningssituationer

Designmönster för sociala användningssituationer Designmönster för sociala användningssituationer Baserat på Interaction design patterns for computers in sociable use, kommande artikel i International Journal of Computer Applications in Technology, matar@ida.liu.se

Läs mer

Custom-made software solutions for increased transport quality and creation of cargo specific lashing protocols.

Custom-made software solutions for increased transport quality and creation of cargo specific lashing protocols. Custom-made software solutions for increased transport quality and creation of cargo specific lashing protocols. ExcelLoad simulates the maximum forces that may appear during a transport no matter if the

Läs mer

Signatursida följer/signature page follows

Signatursida följer/signature page follows Styrelsens i Flexenclosure AB (publ) redogörelse enligt 13 kap. 6 och 14 kap. 8 aktiebolagslagen över förslaget till beslut om ökning av aktiekapitalet genom emission av aktier och emission av teckningsoptioner

Läs mer

Innovation in the health sector through public procurement and regulation

Innovation in the health sector through public procurement and regulation Innovation in the health sector through public procurement and regulation MONA TRUELSEN & ARVID LØKEN 1 14/11/2013 Copyright Nordic Innovation 2011. All rights reserved. Nordic Innovation An institution

Läs mer

Boiler with heatpump / Värmepumpsberedare

Boiler with heatpump / Värmepumpsberedare Boiler with heatpump / Värmepumpsberedare QUICK START GUIDE / SNABBSTART GUIDE More information and instruction videos on our homepage www.indol.se Mer information och instruktionsvideos på vår hemsida

Läs mer

Technology Services. Rikard Ericsson, Services Business Manager, EG Indirect 5 november 2014

Technology Services. Rikard Ericsson, Services Business Manager, EG Indirect 5 november 2014 Technology Services Rikard Ericsson, Services Business Manager, EG Indirect 5 november 2014 Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change

Läs mer

Medical Informatics Period 2, 2009

Medical Informatics Period 2, 2009 Medical Informatics Period 2, 2009 Bengt Sandblad Human-computer Interaction (HCI) Dept of Information Technology Uppsala University http://www.it.uu.se/research/hci Course homepage: http://www.it.uu.se/edu/course/homepage/medinf/ht09

Läs mer

School of Management and Economics Reg. No. EHV 2008/220/514 COURSE SYLLABUS. Fundamentals of Business Administration: Management Accounting

School of Management and Economics Reg. No. EHV 2008/220/514 COURSE SYLLABUS. Fundamentals of Business Administration: Management Accounting School of Management and Economics Reg. No. EHV 2008/220/514 COURSE SYLLABUS Fundamentals of Business Administration: Management Accounting Course Code FE3001 Date of decision 2008-06-16 Decision-making

Läs mer

Samarbete i större infrastrukturprojekt med informationsmodeller som bas genom hela BIM baserade processen

Samarbete i större infrastrukturprojekt med informationsmodeller som bas genom hela BIM baserade processen Samarbete i större infrastrukturprojekt med informationsmodeller som bas genom hela BIM baserade processen Stefan Sigvardsson Business Solutions Director, Project Delivery - Europe 1 WWW.BENTLEY.COM 2017

Läs mer

The Municipality of Ystad

The Municipality of Ystad The Municipality of Ystad Coastal management in a local perspective TLC The Living Coast - Project seminar 26-28 nov Mona Ohlsson Project manager Climate and Environment The Municipality of Ystad Area:

Läs mer

Ökat personligt engagemang En studie om coachande förhållningssätt

Ökat personligt engagemang En studie om coachande förhållningssätt Lärarutbildningen Fakulteten för lärande och samhälle Individ och samhälle Uppsats 7,5 högskolepoäng Ökat personligt engagemang En studie om coachande förhållningssätt Increased personal involvement A

Läs mer

Sectra Critical Security Services. Fel bild

Sectra Critical Security Services. Fel bild Sectra Critical Security Services Fel bild Sectra is world leading in data security Sectra is also one of Europes most reknown IT-security companies with solutions such as: EU TOP SECRET High speed encryption

Läs mer

Daniel.Ringquist@swe.sas.com Copyright 2003, SAS Institute Inc. All rights reserved.

Daniel.Ringquist@swe.sas.com Copyright 2003, SAS Institute Inc. All rights reserved. SAS Enterprise Guide 3.0 och framåt Daniel.Ringquist@swe.sas.com Copyright 2003, SAS Institute Inc. All rights reserved. SAS Enterprise Guide Ett Windowsbaserat rapporterings och analysverktyg. Enterprise

Läs mer

Kursplan. AB1029 Introduktion till Professionell kommunikation - mer än bara samtal. 7,5 högskolepoäng, Grundnivå 1

Kursplan. AB1029 Introduktion till Professionell kommunikation - mer än bara samtal. 7,5 högskolepoäng, Grundnivå 1 Kursplan AB1029 Introduktion till Professionell kommunikation - mer än bara samtal 7,5 högskolepoäng, Grundnivå 1 Introduction to Professional Communication - more than just conversation 7.5 Higher Education

Läs mer

School of Management and Economics Reg. No. EHV 2008/245/514 COURSE SYLLABUS. Business and Market I. Business Administration.

School of Management and Economics Reg. No. EHV 2008/245/514 COURSE SYLLABUS. Business and Market I. Business Administration. School of Management and Economics Reg. No. EHV 2008/245/514 COURSE SYLLABUS Business and Market I Course Code FE4001 Date of decision 2008-09-02 Decision-making Body Board: School of Management and Economics

Läs mer

H0008 Skrivskydd FBWF

H0008 Skrivskydd FBWF Skrivskydd FBWF Skrivskydd FBWF (File-Based Write Filter) är en Microsoft komponent som finns med i Windows Embedded image. Det finns inte för Windows CE/Compact 7 operativ, hanteringen av skrivningar

Läs mer

Självkörande bilar. Alvin Karlsson TE14A 9/3-2015

Självkörande bilar. Alvin Karlsson TE14A 9/3-2015 Självkörande bilar Alvin Karlsson TE14A 9/3-2015 Abstract This report is about driverless cars and if they would make the traffic safer in the future. Google is currently working on their driverless car

Läs mer

Wi-Fi travel router for ipad and mobile devices

Wi-Fi travel router for ipad and mobile devices Wi-Fi travel router for ipad and mobile devices Product ID: R150WN1X1T This Wireless N travel router lets you create a portable wireless hot-spot from a wired network connection or an existing wireless

Läs mer

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk

Läs mer

FFI - Learning Fleet. Transporteffektivitetsdagen 2014 09 11. Hans.Deragarden@Volvo.com

FFI - Learning Fleet. Transporteffektivitetsdagen 2014 09 11. Hans.Deragarden@Volvo.com FFI - Learning Fleet Transporteffektivitetsdagen 2014 09 11 Hans.Deragarden@Volvo.com Bakgrund Varför Learning Fleet? Möjlighet: Rutt- och fordonsadaptation mot dynamiska vägattribut som trafikflöden,

Läs mer

Ett hållbart boende A sustainable living. Mikael Hassel. Handledare/ Supervisor. Examiner. Katarina Lundeberg/Fredric Benesch

Ett hållbart boende A sustainable living. Mikael Hassel. Handledare/ Supervisor. Examiner. Katarina Lundeberg/Fredric Benesch Ett hållbart boende A sustainable living Mikael Hassel Handledare/ Supervisor Examinator/ Examiner atarina Lundeberg/redric Benesch Jes us Azpeitia Examensarbete inom arkitektur, grundnivå 15 hp Degree

Läs mer

xperia p manual svenska

xperia p manual svenska Print and Online In case you are particular with knowing everything relating to this, you will need to search for this information. 2 XPERIA P MANUAL SVENSKA It absolutely was available on the web, and

Läs mer

Plats för projektsymbol. Nätverket för svensk Internet- Infrastruktur

Plats för projektsymbol. Nätverket för svensk Internet- Infrastruktur Nätverket för svensk Internet- Infrastruktur NSII Nätverket för Svensk Internet-Infrastruktur Medlemmar: FMV, Frobbit, Netnod, STUPI, SUNET och TU-Stiftelsen Vi har några av världens ledande experter inom

Läs mer

Testramverk och Model based testing med java i praktiken

Testramverk och Model based testing med java i praktiken WHITE PAPER MODEL BASED TESTING Testramverk och Model based testing med java i praktiken Prolore AB Page 1 (6) Web: www.prolore.se Målet med artikeln Den här artikeln syftar till att praktiskt visa hur

Läs mer