RealDolmen Student Guide 2014 - 2015
Table of contents Table of contents ........................................................................................................................................................... 2 RealDolmen ................................................................................................................................................................... 3 Onze Visie & Missie ................................................................................................................................................... 3 Waarden ........................................................................................................................................................................ 4 RealDolmen acADDemICT Junior Track ....................................................................................................................... 5 RealDolmen Traineeship ............................................................................................................................................... 6 Hoe je kandidaat stellen? ........................................................................................................................................... 6 Stageopdrachten binnen Java Competence Center ...................................................................................................... 7 1.1 Enterprise systemen + Context informatie == ? .............................................................................................. 8 1.2 Route & capaciteitsplanning in de cargo luchtvaart industrie .......................................................................... 9 1.3 IAM – Integrated Aviation Management ........................................................................................................ 10 1.4 Internal corporate news webapplication ........................................................................................................ 11 1.5 Aanrijdingsformulier European hub & Mobile App ......................................................................................... 12 1.6 OSGI Research Project ................................................................................................................................. 14 1.7 Semantic Layer Dashboard ........................................................................................................................... 15 1.8 Consolidator Dashboard ................................................................................................................................ 17 Stageopdrachten binnen Microsoft Competence Center ............................................................................................. 18 2.1 Software Dependencies Analyse Tool ........................................................................................................... 19 2.2 Service Governance met ‘AppFabric for Windows Server’ ............................................................................ 20 2.3 Attribute-Based Authorization Framework ..................................................................................................... 21 2.4 Signing en privacy van pdf-documenten........................................................................................................ 22 2.5 Digitaliseren planningsbord RealDolmen Education ...................................................................................... 23 2.6 Mobile Application Education ........................................................................................................................ 25 2.7 Microsoft Community skills finder .................................................................................................................. 26
2
RealDolmen RealDolmen valt niet onder de standaardnoemer van een ICT-bedrijf. ICT-bedrijven focussen op en vertrekken bijna ste altijd eerst vanuit de technologie, RealDolmen focust in de 1 plaats op het resultaat dat haar klanten ermee kunnen bereiken en werkt zo naar het technologische gegeven. We zijn er bij RealDolmen dan ook vast van overtuigd dat ICT het functioneren van mensen en bedrijven efficiënter en bovenal eenvoudiger moet maken. Daarvoor dient ICT trouwens toch? We zijn er ook zeker van dat als je iets eenvoudiger maakt, je het tegelijk ook efficiënter maakt. ICT perfect doen werken voor de business van onze klanten doen we door dicht bij hen te staan, hen goed te leren kennen en te begrijpen waar zij mee bezig zijn en wat hen ’s ochtend uit hun bed doet komen. Klanten het leven eenvoudig maken doen we voornamelijk door dé expert te zijn in ICT-technologieën en de uitvoering van ICT-projecten en outsourcingstrajecten. Op deze manier nemen wij de complexiteit die inherent is aan heel dat ICT-domein bij hen weg, en kunnen de klanten zich concentreren op waar hun bedrijf bezig mee moet zijn.
Onze Visie & Missie Visie In de lokale markten en domeinen waarin we actief zijn, willen we de referentie zijn inzake geïntegreerde oplossingen die de gehele ICT-levenscyclus ondersteunen.
Referentie: de preferentiële en betrouwbare keuze voor klanten, partners en werknemers Lokaal: nabijheid tot onze klanten in de Benelux en Frankrijk Geïntegreerde oplossingen: volledige ICT-aanbod dat de hele levenscyclus bestrijkt, inclusief infrastructuur, toepassingen en communicatie Gehele ICT-levenscyclus: het ondersteunen van alle plan-build-run (design-deploy-maintain) activiteiten
Missie “We make ICT work for your business”.
3
Waarden Onze waarden zijn meer dan loze woorden. Ze zijn de fundamenten waarop we bouwen om “Employer of Choice” te zijn voor onze medewerkers. Ze zijn de rode draad doorheen alles wat we doen om succesvol en uitmuntend te zijn. Samenwerken bepaalt ons succes Houdt rekening met verschillen tussen mensen en hun mening. Voelt zich medeverantwoordelijk voor het eindresultaat ook al draagt hij/zij als teamlid slechts een gedeelte bij. Staat open voor aanpassingen en veranderingen aangegeven door collega's. Communiceert proactief en op het juiste moment over zijn/haar deeltaak met de betrokkene. Wij respecteren ieders eigenheid Erkent en aanvaardt individuele verschillen. Handelt zonder determinisme of cultuurblindheid. Communiceert frequent en op alle niveaus op een transparante manier. Benut de waarde van het individu in het belang van de collectiviteit. We komen onze afspraken na Maakt afspraken in duidelijke en klare taal, zonder kleine lettertjes. Respecteert afspraken naar interne en externe klanten. Communiceert tijdig wanneer er een kink in de kabel komt en zorgt voor een oplossing. Wij leveren vakmanschap Luistert naar de klant en levert oplossingen op maat van de klant. Durft onhaalbare opdrachten weigeren. Beschikt over een doorgedreven kennis van de producten en diensten die gecommercialiseerd worden. Realiseert de opdracht in alle eenvoud maar met de juiste kwaliteit. Wij maken ruimte voor innovatie Streeft vereenvoudiging na in alles wat hij/zij doet. Bedenkt nieuwe toepassingen die een meerwaarde leveren voor bestaande en nieuwe klanten. Luistert met een open geest naar de creativiteit van anderen. Wij delen passie en enthousiasme Deelt de gezamenlijke ambitie en gaat samen met anderen voor de hoofdprijs. Viert successen en deelt problemen. Spaart geen moeite en ageert omdat hij/zij zich graag inspant. Verlegt zijn/haar grenzen: voldoende is niet goed genoeg voor hem of haar. Is positief ingesteld.
4
RealDolmen acADDemICT Junior Track Met het acADDemICT Junior Track introduceert RealDolmen een uniek programma met focus op pasafgestudeerden. De term acADDemICT staat voor een pasafgestudeerde die gepassioneerd is door ICT en levenslang wil leren. Elk jaar investeert RealDolmen in een klein aantal high potentials. Tijdens een intensieve trainingsperiode van 3 maanden bereidt RealDolmen hen voor op het leven van een professionele ICT Consultant. Bij RealDolmen weten we ook dat een carrière meer is dan een aaneenschakeling van verschillende jobs. Het is een voortdurend groeiproces en het verwezenlijken van jouw professionele ambities terwijl je jouw kennis van zaken ten dienste stelt van RealDolmen. Het is belangrijk te weten dat "doorgroeimogelijkheden” geen loze beloften zijn voor ons. Je carrière kan zowel verticaal als horizontaal evolueren. Ook in ondersteunende functies of in Business Development kan jij bijdragen tot het groeipad van RealDolmen. Sowieso word je begeleid door ervaren coaches die je helpen de juiste keuzes te maken en je wordt ondersteund door een groot aanbod leermogelijkheden. http://www.facebook.com/acADDemICT
5
RealDolmen Traineeship De beste manier om RealDolmen te leren kennen, is natuurlijk door hier stage lopen. Laat je onderdompelen in onze No Nonsense-bedrijfscultuur, ondervind aan de lijve hoe het is om een RealDolmen’er te zijn. Snuif de technologie op, proef de vernieuwing,…
Hoe je kandidaat stellen? Vind je een stage die helemaal iets voor jou is? Laat ons je interesse weten en stel je kandidaat via onze career website.
6
Stageopdrachten binnen Java Competence Center Het RealDolmen Java Competence Center and you! Het RealDolmen Java Competence Center is met zijn 130 Java consultants het grootste onafhankelijke Java expertisecentrum op het Vlaamse/Belgische grondgebied. Naast zijn jarenlange ervaring in de sector, beschikt het over een technologische knowhow die gerust als uniek beschouwd mag worden. Binnen RealDolmen noemen we dit expertisecentrum niet zomaar onze “Java Community”. Onze gepassioneerde Java-professionals geven dagelijks het beste van zichzelf om projecten bij klanten op tijd en binnen het overeengekomen budget op te leveren. Java is een technologie die van meet af aan opgezet is als een open technologie. “Open” wil zeggen dat technologische evoluties gedreven worden vanuit communities. Hierin zijn zowel mensen uit de industrie, de leveranciers en technologie-experten vertegenwoordigd. De vele innovaties die gegroeid zijn uit deze communities, hebben voor een groot deel het IT-landschap gevormd tot wat het vandaag is. Een greep uit de expertise van het Java Competence Center omvat technologieën en methodologieën zoals: Java Enterprise Edition 6 & 7 o Java Persistence API (en Hibernate) o Java Server Faces (Primefaces, RichFaces, Facelets, MyFaces, …) o Enterprise Java Beans Spring Framework (met al zijn modules) Web Services (REST/ SOAP) en Service Oriented Architecture Vaadin / Google Web Toolkit / Gxt / ExtJs HTML5 / JQuery Agile / Scrum / Test Driven Development … RealDolmen hecht een groot belang aan een constante flow van innovatie, optimalisatie en uitbreiding van kennis. De instroom aan creatieve ideeën over het integreren of bestuderen van nieuwe technologieën is allerminst gering. Dit is het punt waar nieuwe en uitdagende opportuniteiten liggen voor jullie. Via een grote waaier van stageopdrachten geven we jullie de kans om binnen het RealDolmen Java Competence Center deze nieuwe ideeën uit te werken en ons te overtuigen of dit al dan niet een meerwaarde kan betekenen binnen ons huidig aanbod. Ben je geïnteresseerd en ga je geen uitdaging uit de weg, wil je je verdiepen in één van de meest uitgebreide technologie stacks op dit moment, en ben je bedreven in Java? Dan is nu het moment om je kans te grijpen! Overtuig ons van je enthousiasme, technische en analytische skills tijdens het uitwerken van één van de vele projecten. Contacteer ons om jouw stageplaats aan te vragen!
7
1.1 Enterprise systemen + Context informatie == ? De opdracht Context-aware systemen bieden nieuwe opportuniteiten aan ontwikkelaars en eindgebruikers van applicaties, door het verzamelen van context informatie en het overeenkomstig bijsturen van het gedrag van deze applicatie. Voornamelijk in combinatie met een mobile device is dit mechanisme van grote waarde en draagt het bij tot een verhoogde gebruiksvriendelijkheid van de applicaties. Miljoenen digitale producten, van smartphones tot sensoren in woningen, auto’s en huishoudelijke-, medische- en andere producten, worden met elkaar verbonden. Met andere woorden een Internet Of Things (IoT) toepassing is een concept dat door optimaal gebruik te maken van beschikbare sensoren, een internetkoppeling en een interface, meerwaarde creëert voor de eindgebruiker door het koppelen van de “echte” wereld en de virtuele wereld waarin enterprise systemen van vandaag zich meestal bevinden. Het IoT is met andere woorden een belangrijke bron van context informatie voor enterprise systemen. Vandaag is het potentieel van deze technologie nog niet eenduidig, laat staan dat bedrijven zicht hebben op hetgeen dit voor hen kan betekenen. Deze opdracht heeft als doelstelling hier duidelijkheid en inzicht in te verschaffen. De opdracht bestaat uit 3 luiken: De evaluatie van het context-aware concept (inzetbaarheid, gebruik scenario’s…) bij een aantal klanten van RealDolmen. Kwantificeer het potentieel van deze technologie bij onze klanten? Welke bedrijfsprocessen zouden voordeel halen uit deze aanpak en op welke manier? Zijn context-aware systemen een onderdeel van e-government 2.0? Waar staan buitenlandse overheden op dit vlak en wat kunnen we hier op Belgisch niveau van leren/toepassen? Op basis van deze brainstorm oefeningen komen tot een definitie van context op een domein overkoepelend niveau alsook toegespitst op het domein van een aantal klanten van RealDolmen (bv : een bepaalde sector). Dit luik zal resulteren in een aantal ontologieën waarin de semantiek van de gemodelleerde context informatie wordt vastgelegd. Daarnaast worden een aantal specifieke services beschreven die gebruik maken van contextuele informatie. Aangezien context mogelijks gevoelige informatie kan bevatten (locatie van een persoon en zijn huidige activiteit) over bepaalde entiteiten in het systeem, is het nodig om de privacy van de met context informatie verrijkte entiteiten te garanderen. Welke informatie is privacy gevoelig? Wat betekent privacy in deze context? Hoe kunnen we de privacy entiteiten (personen, objecten, plaatsen, …) in dit soort systemen garanderen? Als conclusie kunnen we stellen dat deze opdracht het vraagteken in de titel moet invullen, bespreken, toepassen en motiveren. Dit zowel vanuit een business als technisch perspectief. De student is vrij in het kiezen van de aanpak die hij/zij hiervoor hanteert maar wordt ondersteunt door een stagebegeleider van RealDolmen die samen met een aantal collega’s erg benieuwd is naar de invulling van het vraagteken zodat nagedacht kan worden hoe RealDolmen op deze relatief nieuwe trend in de komende jaren kan inspelen richting haar klanten. Welke kennis en competenties ontwikkel je met deze opdracht? Analyse Project planning, uitvoering en opvolging Communicatie en organisatie Semantische technologie (RDF, OWL, OWL-S) Samenwerken met collega’s in de organisatie Welke competenties heb je nodig? Beschikt over voldoende analyse skills Communicatief Zelfstandig kunnen werken Belang hechten aan kwaliteit Brengt structuur in deze brede opdracht Blik op oneindig; niet blind starend op de huidige technologie Kan nadenken met een business insteek 8
Gaat een uitdaging niet uit de weg
1.2 Route & capaciteitsplanning in de cargo luchtvaart industrie De opdracht Een centraal en uitdagend aspect in het efficiënte management van het netwerk van een grootschalig cargo luchtvaart bedrijf is de route & capaciteitsplanning van de vloot van het bedrijf. In deze opdracht onderzoeken we algoritmes en hun implementaties om efficiënt gebruik te maken van de beschikbare voertuigen om vracht over het netwerk van een bedrijf te vervoeren. Hierbij is het belangrijk te op te merken dat de problematiek extra complex wordt door de grote hoeveelheid data die in deze context moet geanalyseerd worden. De opdracht omvat de volgende facetten Modelleren van de probleemstellingen en het catalogeren & opzetten van algoritmes om deze probleemstellingen efficiënt en geautomatiseerd op te lossen. Voor 1 of 2 probleemstellingen een POC in Java te implementeren die binnen aanvaardbare grenzen oplossingen produceert en kunnen opgeschaald worden naar grote datasets. Hierbij is het niet alleen belangrijk om deze problemen snel geautomatiseerd op te lossen maar ook om (1) deze oplossingen efficiënt te persisteren en naar andere systemen en eindgebruikers te communiceren en (2) op een aanvaardbare manier grote datasets te laden. In dit project ligt de nadruk op de backend, niet op de visualisatie van deze resultaten. Algoritmes die hierbij bekeken zullen worden situeren zich in het gebied van “linear programming” en/of “constraint programming”. Welke kennis en competenties ontwikkel je met deze opdracht? Analyse & research vaardigheden Gebruik van geavanceerde optimalisatie algoritmes Implementatie van algoritmes op grote datasets Verificatie & testen van algoritmes Welke competenties heb je nodig? Zelfstandig kunnen werken Grondige kennis van Java SE Kennis van relationele database systemen Grote analytische skills en affiniteit/interesse voor wiskundige technieken Kennis van “constraint programming” en/of “linear programming” is een bonus
9
1.3 IAM – Integrated Aviation Management De opdracht Integrated Aviation Management (IAM) is een IT-programma dat reeds verscheidene jaren in ontwikkeling is bij de stafdienst ICT van FOD Mobiliteit en Vervoer. Het heeft als doel om het geheel van processen binnen de DirectoraatGeneraal Luchtvaart te automatiseren. Meerdere deelapplicaties zijn tot nu toe opgeleverd. Zo worden de licenties van verkeerspiloten, luchtverkeersleiders en onderhoudstechniekers behandeld door de applicatie. Daarnaast verzorgt de applicatie eveneens het beheer van de in België ingeschreven luchtvaartuigen (inschrijvingen, luchtwaardigheidsattesten, geluidscertificaten, ELT-bakens, luchtarbeid voor commerciële vloot, …). Het programma is modulair opgebouwd. Het is de bedoeling dat de stagiair één van de toekomstige deelmodules zal ontwikkelen. Het biedt de kandidaat de mogelijkheden om: de meeste recente technologieën op gebied van Enterprise Java te gebruiken; in een interessante business te werken, nl. de Belgische luchtvaart; de unieke ervaring om mee te draaien bij één van onze klanten. Welke kennis en competenties ontwikkel je met deze opdracht? Analyse Project planning, uitvoering en opvolging Documentatie (technisch schrijver) Testing JavaServer Faces (JSF) 2.1 RichFaces 4.3.x Bean Validation 1.0 Contexts and Dependency Injection (CDI) 1.0 Enterprise JavaBeans (EJB) 3.1 Java API for RESTful Web Services (JAX-RS) 1.1 RESTEasy 2.7.x Java Persistence (JPA) 2.0 Hibernate (Core, Search, Envers, Validator) 4.x JasperReports 4.7.x JBoss EAP 6.2 Maven 3.0.3 Git, GitHub Welke competenties heb je nodig? Grondige Java kennis vereist Basis JEE6 kennis is een plus Interesse in de bouw van kwalitatief hoogstaande webtoepassingen Beschikt over voldoende analyse skills Zelfstandig kunnen werken
10
1.4 Internal corporate news webapplication De opdracht Vandaag communiceert een bedrijf via allerlei kanalen met zijn werknemers: Mail, interne (web)applicaties, intranet sites etc etc. De bedoeling van de ze nieuw te ontwikkelen “nieuws hub webapp” is dat deze kan dienen als centraal communicatiemedium. Via deze applicatie zal een werknemer niet alleen algemeen nieuws over de organisatie kunnen opzoeken maar ook gepersonaliseerde boodschappen ontvangen. Verder kan hij ook op de hoogte gehouden worden van events die doorgaan of interne vacatures die geopend worden etc Deze nieuwe manier van werken moet een gebruiker in staat stellen om via verschillende toestellen(desktop, tablet, smartphone etc) aan zijn informatie te komen. Daarom kijken we naar een cross-platform oplossing. Concreet zullen we deze applicatie uitwerken voor RealDolmen. Maar het is de bedoeling dat het opzet herbruikbaar is voor eventuele andere klanten. Functioneel: De te ontwikkelen applicatie zal dus over volgende eigenschappen beschikken: Interne nieuwsaankondigingen, flashes kunnen weergeven Calendar kunnen tonen met interne events Weergeven van interne vacatures Eventueel persoonlijke berichten laten zien Te gebruiken op zowat alle soorten toestellen (mobiel, tablet) Scope:
Opstellen en uitbreiden van functionele en technische documenten Functionele analyse Technische analyse Architectuur document Ontwikkelen van de eigenlijke applicatie: De “News webapp” implementeren in JEE en Agluar.js technologieën Presentatie van het resultaat.
Welke kennis en competenties ontwikkel je met deze opdracht? Analyse Project planning, uitvoering en opvolging (Scrum project aproach) Java backend technologieën (JEE6) Web technologieën (Angluar js, jQuery, AngularFaces? ) Testing Performantie testing Documentatie schrijven Backend integratie Webservices (RESTfull, SOAP based,..) Data-interchange formats (XML, JSON) Welke competenties heb je nodig? Brede technologische interesse Goede kennis van Java (Backend) en Javascript (Frontend) Zelfstandig kunnen werken Beschikt over voldoende analytisch skills
11
1.5 Aanrijdingsformulier European hub & Mobile App De opdracht Wanneer je met de wagen betrokken raakt in een ongeval op de weg, moet er steeds een Europees Aanrijdingsformulier worden ingevuld. Met deze opdracht willen we een 100% digitale aangifte mogelijk maken, met enerzijds een mobile app die men ter plaatste gebruikt en anderzijds een back-end (middleware) applicatie die de integratie van gegevens tussen de verschillende partijen toelaat. De “Aanrijdingsformulier European hub” applicatie is een middleware applicatie die de integratie tussen volgende partijen/applicaties toelaat: Verzekerden – Aanrijdingsformulier android app. Verzekeringsmaatschappijen – verzekeringsmaatschappij connector. En dit om de noodzakelijke gegevens uit te wisselen bij een aanrijding: Opvraging verzekeringsgegevens. Doorsturen aanrijdingsgegevens. … Hierbij dienen enkele technische vragen beantwoord te worden. Onderzoek/keuze middleware platform. Security: o Beveiliging berichten. o Authenticatie. o Autorisatie. Integratie nieuwe verzekeringsmaatschappijen? Architectuur middleware platform: o meerdere hubs of 1 centrale hub. o Onderhoud / synchronisatie wanneer voor meerdere hubs gekozen wordt. o … … De “Aanrijdingsformulier” applicatie is een mobile applicatie die de gebruiker toelaat om: Eigen Verzekeringsgegevens registreren in de app. via QR code of invoerscherm. Verzekeringsgegevens tegenpartij delen via Bluetooth / QR code / SMS / invoerscherm. o Onderzoek, welk is de meest aangewezen manier. Locatie bepaling via GPS of invoerscherm. o Onderzoek welke mogelijkheden er zijn. Invullen aanrijdingsformulier, in principe enkel de gegevens van de aanrijding zelf. Foto’s van schade en verkeerssituatie koppelen aan het aanrijdingsformulier. Versturen van aanrijdingsformulier naar verzekeringsmaatschappijen. Digitale handtekening. o Onderzoek welke mogelijkheden er zijn. De “Aanrijdingsformulier” server applicatie biedt in eerste instantie de nodige services aan om de android app te ondersteunen: Ophalen verzekeringsgegevens op basis van de QR code. Doorsturen van aanrijdingsformulier. Accepteren aanrijdingsformulier. (digitale handtekening?)
Doelstellingen
Opstellen van functionele en technische documenten o Functionele analyse o Technische analyse o Architectuur document
Ontwikkelen van proof-of-concept voor European hub o De “Aanrijdingsformulier European Hub” implementeren. o Integratie met de “Aanrijdingsformulier” applicatie (android app). 12
o
Implementatie van verzekeringsmaatschappij connector (mockup impl).
Ontwikkelen van proof-of-concept voor Android App o De “Aanrijdingsformulier” applicatie implementeren op Android toestel. o De “Aanrijdingsformulier” server applicatie implementeren.
Welke kennis en competenties ontwikkel je met deze opdracht?
Analyse Project planning, uitvoering en opvolging Java-platform Android-platform Webtechnologieën (JSF-Richfaces of Flex) SOA –ESB technology Testing Performantie testing Documentatie schrijven (technisch schrijver) Backend integratie (mockup verzekeringsmaatschappij) Webservices Data-interchange formats ...
Welke competenties heb je nodig?
Brede technologische interesse Kennis van Java Interesse in research – energie halen uit het oplossen van problemen Zelfstandig kunnen werken Beschikken over analytische skills
13
1.6 OSGI Research Project De opdracht Het OSGI framework is een zogenaamd modulesysteem en serviceplatform voor Java dat een implementatie is van een volledig en dynamisch component model, iets dat momenteel nog niet bestaat in de standalone Java/VM. De bedoeling van het project is om modulaire software te leren ontwikkelen op het Java-platform. Hiervoor gebruiken we een OSGI container, deze leent zich uitermate tot het deployen van modules met low coupling en high cohesion. OSGI wordt al langer gebruikt op embedded devices, het is pas sinds enkele jaren dat OSGI ook gebruikt wordt om enterprise applicaties mee te runnen. OSGI is een innovatieve technologie en een trend die steeds belangrijker wordt in de enterprise ICT wereld.
Doelstellingen De doelstelling is om op een praktische manier te leren a.d.h.v. een kleine applicatie. De beheerder van de applicatie kan kantoorruimten toevoegen met een bepaald aantal plaatsen. De gebruiker van de applicatie kan een vrije plaats in een bepaald kantoor reserveren, voor een bepaalde dag. Aan de hand van dit voorbeeld leer je hoe je een goed modulair ontwerp maakt. Door gebruik te maken van OSGI zal het ook mogelijk zijn om bijvoorbeeld de admin modules (en dus ook pagina’s) offline te halen terwijl de gebruiker wel gewoon kan blijven plaatsen reserveren. Het hoofddoel is dus het onderzoeken en documenteren van het ontwikkelen van modulaire software met OSGI.
Welke skills en competenties ontwikkel je met deze opdracht?
Analyse, researchen Projectplanning, uitvoering en opvolging De werking van Java containers Modulair software design Documentatie schrijven
Welke competenties heb je nodig?
Goede kennis van Java SE Basiskennis van Java containers is een plus (JBoss, GlassFish, …) Zin om een nieuwe technologie grondig te onderzoeken en deze kunnen plaatsen in een grotere context. Zelfstandig kunnen werken Goed en gestructureerd kunnen documenteren.
14
1.7 Semantic Layer Dashboard De opdracht Applicaties maken bijna altijd uitvoerig gebruik van classificaties (AKA codes, codetabellen, coding schemes, enumerations, types, enz.). Gekende voorbeelden classificatieschema’s zijn gender, personeelstypes en –functies, de ISO taal- en landcodes. Codes kunnen nietszeggende nummers zijn of enige betekenis hebben: ‘M’, ‘V’, ‘O’. Hun bijbehorende termen ‘ man’, ‘vrouw’, ‘onbekend’ en omschrijving kunnen ook nodig zijn in meerdere talen. Soms zijn codes louter applicatie-technisch, of vervangen ze bedrijfsbegrippen, en soms zijn ze dermate ingeburgerd dat ze deel gaan uitmaken van de bedrijfsterminologie. Varianten van classificaties worden gebruikt in verschillende applicaties, die draaien binnen het bedrijf, of bij derden, of door publieke of eigen webservices. Veel van die classificaties gebruiken meestal dezelfde begrippen, maar anders gecodeerd, of met een grotere set of een subset van begrippen, of meer gedetailleerd of algemener geclassificeerd. Tijdens de communicatie tussen de applicaties – meer en meer via een Enterprise Service Bus ofte ‘ESB’, moeten die termen in beide richtingen vertaald worden of afgeleid worden. In veel gevallen gaat deze mapping één op één, maar er kunnen ook combinaties van classificaties uit verschillende schema’s nodig zijn om te vertalen naar één classificatie binnen een ander schema. Doelstellingen Ontwerp een applicatie die toelaat om een Semantic Layer te onderhouden: schema’s aan te maken, de classificaties, termen en omschrijvingen in te voeren . twee schema’s met hun classificaties met elkaar te relateren, gebruik makend van een derde schema om de relatie semantiek aan te duiden. In eerste instantie hoef je geen meertaligheid, fracties of geldigheidsperiodes te implementeren. De gebruiker moet intuïtief en vlot kunnen werken met een overzichtelijk dashboard, gebruik makend van een goede browser of een desktop applicatie. Bedenk en implementeer een SOAP communicatie tussen twee “applicaties” die elk gelijkwaardige classificaties gebruiken maar elk met hun eigen specifiek schema. Maak gebruik van uw semantische layer voor een één op één mapping tijdens de communicatie. Volgende functionaliteiten kunnen vervolgens bij gebouwd worden (in volgorde van prioriteit): Het semantisch model publiceren via RESTFUL services Toelaten om aan een inter-classificatie relatie een fractie toe te kennen. meertalige termen en omschrijvingen RESTFUL services die toelaten om een schema aan te maken en hieraan classificaties toe te voegen of te bewerken. aangeven van de originele taal / vertaling voor een schema waar dit van belang zou kunnen zijn (voorbeeld: Nederlandstalige termen en omschrijvingen van de Vlaamse overheid een Franse vertaling geven) (Tegenvoorbeeld: taalkundige termen zoals “tegengesteld” hebben geen “originele” taal.) Geldigheidsperiodes implementeren, met strenge controles of hints voor periodegrenzen. Een voorbeeld, een schema dat vòòr 1999 niet geldig is kan geen classificaties bevatten die geldig zijn op 1/1/1998.
15
Welke skills en competenties ontwikkel je met deze opdracht?
Analyse, project planning, uitvoering en opvolging Web technologieën (JSF-Richfaces en Javascript based rich client) SOA –ESB technology Testing en Performantie testing Documentatie schrijven (technisch schrijver) Backend integratie (mockup verzekeringsmaatschappij) Webservices Data-interchange formats Teamwerk en taakverdeling...
Welke competenties heb je nodig?
Brede technologische interesse Goede kennis van Java Interesse in research – energie halen uit het oplossen van problemen Zelfstandig kunnen werken Teamplayer mentaliteit Communicatief Over voldoende analytisch skills.
16
1.8 Consolidator Dashboard De opdracht Veel applicaties en databases bevatten verschillende waarden voor een bepaalde eigenschap, die eigenlijk hetzelfde betekenen, maar net iets anders door de gebruiker werd ingegeven. Varianten ontstaan door spellingsfouten, afkortingen, gissingen, enz. … Consistentie brengen in deze data is een essentieel onderdeel die bijvoorbeeld een migratie voorafgaat. Doelstellingen Bedenk een dashboard dat toelaat om een reeks varianten van een gegeven op te lijsten. Hieruit moet de gebruiker de correcte of ideale schrijfwijze uitkiezen, of een nieuwe correcte schrijfwijze toevoegen. Daarna moet hij kunnen aanstippen welke varianten uit de lijst effectief moeten vervangen worden met de gekozen schrijfwijze. Probeer een zo groot mogelijk hergebruik van het dashboard te bereiken. Denk hierbij aan het werken met interfaces of een plugin architectuur, zowel voor de presentatie laag als de onderliggende transacties en technische architectuur. De integratie moet zoveel mogelijk gebeuren door configuratie. De integrator moet dan enkel nog zorgen voor implementatie (en configuratie) van deze interfaces en de effectieve transacties. Voorzie een voorbeeld van een eenvoudige integratie via een werkend dashboard op een enkelvoudig gegeven uit een datasource. Voorzie een voorbeeld van een complexere integratie waarbij volledige objecten worden geconsolideerd. Een voorbeeld van een iets complexer gegeven is een tuple “Uitgever”-“Plaats” uit de publicatiewereld, waarbij beide velden worden geconsolideerd in één dashboard. Publisher
Publisher Place
Publisher
Publisher Place
Kluwer
Amsterdam
Kluwer
A’dam
Kluwer
Amsterdam
Kluwer
A’pen
Kluwer
Antwerpen
Kluwer
Amsterdam
Kluwer, A’dam
Kluwer Amsterdam
Optioneel: een derde integratie om te testen hoe integreerbaar/generiek de interface is. Deze test mag eventueel falen, maar het herwerken van de module om de integratie te laten lukken moet een minimale effort zijn. De gebruiker moet intuïtief en vlot kunnen werken met een overzichtelijk dashboard, gebruik makend van een goede browser of een desktop applicatie. Nice to have is een html5 mobile demo webapplicatie.
Welke skills en competenties ontwikkel je met deze opdracht?
Analyse Project planning, uitvoering en opvolging Denken in abstracties, interfaces los van implementatie Modulair software design Documentatie schrijven Webdevelopment HTML5 mobile development
Welke competenties heb je nodig?
Goede kennis van Java SE Zin in onderzoek en dit kunnen plaatsen in een grotere context. Zelfstandig kunnen werken Goed en gestructureerd kunnen documenteren. Beschikken over voldoende analyse skills
17
Stageopdrachten binnen Microsoft Competence Center De RealDolmen Microsoft Divisie daagt je uit! Als RealDolmen Microsoft Divisie zijn wij met meer dan 125 medewerkers in België de grootste Microsoft .NET ontwikkelorganisatie. We zijn o.a. actief in de totaalrealisatie van Microsoft-projecten, zowel in strategie, architectuur, implementatie, integratie van systemen, onderhoud, opleiding als ondersteuning. Onze kennis en ervaring situeert zich vandaag binnen de volgende technologieën en solution domains: Ontwikkeling van Windows-, web- en smart client-applicaties (Silverlight, WPF, ASP.NET MVC, Azure, …) Office Automation Mobility (Windows Mobiele & Windows Phone 7) Integration – EAI (Biztalk & WCF) CAD/GIS-integratieprojecten Opleiding Binnen onze interne werking dragen we technologie hoog in het vaandel, het is als het ware de grondstof van onze divisie. Daarom lopen er tal van initiatieven om binnen de Microsoft technology stack research te voeren naar al wat nieuw is. En hier komen jullie in the picture! We zijn ervan overtuigd dat jullie ons met al jullie energie, enthousiasme en creativiteit kunnen helpen om deze nieuwe technologieën te onderzoeken en klaar te stomen voor gebruik in de business-toepassingen van de toekomst. Hieronder vinden jullie een lijst van de technologieën en/of topics waarrond we volledige opdrachten willen uitwerken in het komende academiejaar. Laat het duidelijk zijn dat de complexiteit van de opdrachten niet van de poes zal zijn, we verwachten dan ook dat je reeds over een degelijke basiskennis beschikt van .NET. Laat dit jullie zeker niet afschrikken maar wij zijn nu eenmaal op zoek naar “the best of the best”. Ben jij diegene die de business-toepassingen van de toekomst mee vorm wil geven? Aarzel dan niet om een stageplaats bij de RealDolmen Microsoft Divisie aan te vragen.
18
2.1 Software Dependencies Analyse Tool Opdracht Een analysetool die software dependencies in kaart kan brengen op basis van een scan van de source code repository (local filesystem, git, mercurial, svn en TFS source control). In het kader van ALM-projecten, specifiek inzake de problematiek van dependency management, is het in kaart brengen van software dependencies van kritisch belang. Dit heeft impact op zowat alle aspecten van ALM: source control structure, branching, NuGet, planning & release mgmt, continuous integration, automated deployment & continuous delivery, … Bedoeling van deze tool zou zijn om een source control repository te kunnen scannen naar nuget pkg dependencies, en in ruimere zin alle binaire dependencies. Deze ruwe data in een dependency matrix/graph omzetten is heel nuttige informatie en helpt de klant en de ALM consultant om sneller en met betere wapens het ALM proces op punt te stellen. De huidige codebase (consoleapplicatie) en problem statement kan je vinden op dezen github repository: https://github.com/xavierdecoster/NuGet.Analyze Het betreft een consoleapplicatie omdat die makkelijk kan ingeplugd worden op een CI build definition bijvoorbeeld. Een NuGet Powershell commandlet is ook voorzien (of in de pipeline) om dit zelfs vanuit Visual Studio te kunnen runnen vanuit de NuGet Powershell console. Technologieën
Kennis van Git, Mercurial, TFS, SVN, … C# uiteraard, maar met hoge focus op performantie, redundantie en IO optimalizatie Ontwikkeling met onder andere de TFS API (client en/of server SDK) Kennis van NuGet & PowerShell ALM process kennis (impact van dependency mgmt op…)
Stagelocatie: Huizingen Stagebegeleider: Xavier De Coster
19
2.2 Service Governance met ‘AppFabric for Windows Server’ Opdracht De opdracht bestaat uit het bouwen van een virtualisatielaag voor services in een SOA-omgeving. Via deze laag wordt het mogelijk gemaakt om services sneller uit te rollen, versies te beheren en het hergebruik te stimuleren via een service repository. Verder zal eveneens onderzocht moeten worden hoe het gebruik van ‘IIS Application Request Router’ en ‘IIS Web Farm Framework’ kunnen gebruikt worden om een dynamisch schaalbare en fault tolerante hosting omgeving voor services te bouwen. Het is de bedoeling om een entry-level SOA governance tool te bouwen die gebruik maakt van ‘AppFabric for Windows Server’. Het open source “Managed Services Engine “-project dat momenteel niet meer verdergezet wordt, kan als inspiratie bron dienen. (http://servicesengine.codeplex.com)
Technologiëen
SOA, Web Services, Governance .NET 4.0, WCF, WF, IIS 7.x & 8 MSDeploy, IIS-ARR, IIS Web Farm Framework
Stagelocatie: Huizingen Stagebegeleider: Luc Van Keer
20
2.3 Attribute-Based Authorization Framework “Attribute-based access control” is een autorisatiemanier die zeer geschikt is voor servicegeoriënteerde toepassingen. In tegenstelling tot de klassieke ‘Role-base access control’ technieken heeft ‘Attribute-based access control (ABAC)’ meer mogelijkheden voor het modelleren van complexe en gedetailleerde autorisatieregels. Een aanpak voor ABAC wordt beschreven in de XACML 3.0 standaard van Oasis (http://www.oasisopen.org/committees/tc_home.php?wg_abbrev=xacml). Deze standaard beschrijft zowel een framework als een formaat en taal om ABAC toe te passen. Momenteel zijn er in de .NET wereld weinig of geen implementaties van de XACML 3.0 standaard beschikbaar (dit in tegenstelling tot de Java/Open-Source omgeving). Windows Indentity Foundation, een deel van het Microsoft .NET Framework 4.5, biedt opportuniteiten voor een implementatie van de XAMCL-standaard in de .NET-omgeving.
Opdracht 1.
2.
Een diepgaande studie van de XACML 3.0 standaard uitvoeren, gekoppeld aan het produceren van trainingsmateriaal voor een ééndaagse training in XACML/ABAC. Dit materiaal moet ook in presalesomgevingen kunnen gebruikt worden. Het opstarten en produceren van een eerste versie van een ABAC framework gebaseerd op XACML 3.0 en Windows Identity Foundation in open source-vorm.
Technologieën SOA, Security, OASIS, ABAC, RBAC, XACML, Open Source .NET 4.5, Windows Idenity Foundation, WCF, WF Stagelocatie: Huizingen Stagebegeleider: Luc Van Keer
21
2.4 Signing en privacy van pdf-documenten ETSI is een Europese standaardisatieorganisatie in de telecomindustrie. Deze instelling heeft volgende standaarden gepubliceerd: ‘Cryptographic Message Syntax (CMS) Advanced Electronic Signatures (CAdES) ‘XML Advanced Electronic Signatures (XAdES) In 2009 heeft deze organisatie de inhoud van bovengenoemde standaarden ook toegepast op pdf-documenten, wat geleid heeft tot de ‘PDF Advanced Electronic Signatures (PAdES) profiles’. Eveneens heeft Adobe zelf een aantal diensten rond het elektronisch ondertekenen van documenten, zoals Adobe EchoSign’. Opdracht 1. 2.
Studie maken van de mogelijkheden om pdf-documenten digitaal te handtekenen. Hierbij moet ook aandacht besteed worden aan “long-longterm signature validation” en privacy-aspecten Een concrete manier van aanpak uitwerken op basis van het Microsoft .NET Framework en open source libraries zoals ITextSharp.
Stagelocatie: Huizingen Stagebegeleider: Luc Van Keer
22
2.5 Digitaliseren planningsbord RealDolmen Education De opdracht RealDolmen Education is de unit binnen RealDolmen die opleidingen voor eindgebruikers, developers en systeem beheerders verkoopt aan klanten. Ze nemen het beheer van de leszalen voor hun rekeningen en de volledige praktische uitwerking van opleidingen. Al jaren worden de verschillende opleidingen van Education gepland op een magneetbord (4mx2m). Dit magneetbord geeft de planning van ongeveer 3 maanden weer. Via verschillende kleurcodes wordt de planning van de verschillende docenten aangebracht. Het grote voordeel van dit planningsbord is dat er een heel goede visibiliteit is wanneer bepaalde trainers beschikbaarheden, verlof, voorbereiding,… is. Het grote nadeel is het extra werk dat dit bord genereerd. De planning wordt immers al bijgehouden in een eigen applicatie (Tropix) en aangevraagde data die niet op het planningsbord kunnen (latere datum) worden bijgehouden in een Excel sheet. De informatie uit de SQL database en de Excel sheet moeten steeds overgebracht worden naar het magneetbord en bij voorkeur ook synchroon gehouden worden tussen de verschillende bronnen. Daarnaast is het voor de trainers niet mogelijk om van op afstand een algemeen beeld te krijgen van hun planning en de planning van de collega’s. Bedoeling van deze opdracht is om een visualisatiemodule te bouwen die het planningsbord kan vervangen. De applicatie moet de data rechtstreeks halen uit de SQL database met opleidingen en deze op een eenvoudige wijze weergeven. Ook de omgekeerde weg moet bewandeld worden: indien aanpassingen worden uitgevoerd op het digitaal planningsbord, dan moet dit zich reflecteren in de SQL database. De functionele analyse is reeds gebeurd. Doelstellingen
Opstellen van functionele en technische documenten o Technische analyse o Architectuur document
Ontwikkelen van digitaal planningsbord o Ontwikkelen applicatie o Plannen acceptatie gebruikers o Installeren applicatie
Welke kennis en competenties ontwikkel je met deze opdracht?
Probleemoplossend denken Het implementeren van een analyse Hoe “business value” kan gecreëerd worden Integratie van verschillende .NET onderdelen Werken met TFS, workitems en build workflows Samenwerken met eindgebruikers Testing en bug fixing Technologieën o ASP.NET MVC o ASP.NET Web Api o HTML5, Javascript, CSS3 o Entity Framework o AngularJS, KnockoutJS
23
Welke competenties heb je nodig?
Brede technologische interesse Kennis van .NET Interesse in research – energie halen uit het oplossen van problemen Zelfstandig kunnen werken Beschikken over analytische skills
Stagelocatie: Huizingen Stagebegeleider: Tom Knockaert
24
2.6 Mobile Application Education De opdracht RealDolmen Education beschikt over zijn eigen website (http://education.realdolmen.com) waarop de beschrijving van hun opleiding zichtbaar zijn, er kan gezocht worden naar een specifieke opleiding en kan ingeschreven worden op een opleiding. Bedoeling van deze stageopdracht is om naast de website ook een app te ontwikkelen voor Education met minimaal volgende functionaliteiten: o nieuwe opleidingen bekijken o zoeken naar opleidingen per categorie o zoeken naar opleidingen via sleutelwoord o details van opleidingen bekijken o aanvraag voor inschrijving sturen o kalender van opleidingen bekijken o een andere taal kiezen o bericht naar Education sturen Doelstellingen
Opstellen van functionele en technische documenten o Technische analyse o Architectuur document
Ontwikkelen van Mobile App o Mobile app voor Windows 8.1 o Mobile app voor Windows Phone 8.1 o Mobile app voor iOS (optioneel) o Mobile app voor Android (optioneel)
Welke kennis en competenties ontwikkel je met deze opdracht?
Integreren van nieuwe functionaliteit in een bestaande applicatie Aanmaken van analyses Structureren van een applicatie Ontwikkelen voor mobile platformen Technologieën o XAML o C# o Universal apps o ASP.NET Web API
Welke competenties heb je nodig?
Brede technologische interesse Kennis van .NET Interesse in research – energie halen uit het oplossen van problemen Zelfstandig kunnen werken Beschikken over analytische skills
Stagelocatie: Huizingen Stagebegeleider: Tom Knockaert
25
2.7 Microsoft Community skills finder De opdracht De RealDolmen Microsoft Community beschikt over een eigen website (https://realdolmenmsc.azurewebsites.net) die toegankelijk is voor alle medewerkers uit het RealDolmen Microsoft Competence center. Op de website worden de laatste nieuwtjes aangekondigd, worden events aangekondigd, is er een gamification platform geïntegreerd met badges die onze medewerkers kunnen verdienen na het behalen van een bepaalde doelstelling,… Om dit platform verder te ontwikkelen willen we een skills finder module bouwen: “een medewerker kan inloggen en kan zoeken naar medewerkers die sterk zijn in een bepaalde technologie of skill”. Op deze manier kan bij een probleem of binnenkomende opdracht direct de geschikte persoon gevonden worden. Doelstellingen
Opstellen van functionele en technische documenten o Technische analyse o Architectuur document
Ontwikkelen van skills finder module
Welke kennis en competenties ontwikkel je met deze opdracht?
Integreren van nieuwe functionaliteit in een bestaande applicatie Aanmaken van analyses Structureren van een applicatie Ontwikkelen voor mobile platformen Technologieën o ASP MVC o C# o CQRS o Azure
Welke competenties heb je nodig?
Brede technologische interesse Kennis van .NET & ASP MVC/CQRS/Azure Interesse in research – energie halen uit het oplossen van problemen Zelfstandig kunnen werken Beschikken over analytische skills
Stagelocatie: Huizingen Stagebegeleider: MSCommunity board member
26