RealDolmen Student Guide 2013-2014
Kim Vanderlinden 23/07/2013
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 Aanrijdingsformulier European hub & Mobile App ........................................................................................... 8 1.2 Track & Trace: The webapp with JEE6 ......................................................................................................... 10 1.3 IAM – Integrated Aviation Management ........................................................................................................ 11 1.4 Semantic Technologies supporting Next Generation SOA ............................................................................ 12 1.5 Employee Customer Map .............................................................................................................................. 13 1.6 Employee Customer Map - Mobile App ......................................................................................................... 14 1.7 OSGI Research Project ................................................................................................................................. 15 1.8 Semantic Layer Dashboard ........................................................................................................................... 16 1.9 Consolidator Dashboard ................................................................................................................................ 18 Stageopdrachten binnen Microsoft Competence Center ............................................................................................. 19 2.1 Single Page Applications ............................................................................................................................... 20 2.2 RealDolmen CustomerCases: „One backend, different clients‟ ..................................................................... 21 2.3 Software Dependencies Analyse Tool ........................................................................................................... 22 2.4 Service Governance met „AppFabric for Windows Server‟ ............................................................................ 23 2.5 Attribute-Based Authorization Framework ..................................................................................................... 24 2.6 Signing en privacy van pdf documenten ........................................................................................................ 25
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 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 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 verschilllende 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?)
8
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). 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
9
1.2 Track & Trace: The webapp with JEE6 De opdracht In een vorige stage opdracht werd een android applicatie ontwikkeld die het mogelijk maakt het transport van pakketten op te volgen. Opdat het transport in real-time gevolgd kan worden, moet een werknemer de te transporteren pakketten eerst en vooral ingeven. Dit kan gebeuren door barcodes in te scannen, maar er bestaat ook de mogelijkheid tot handmatige invoer. Eens een pakket - of meerdere - opgegeven is voor live tracking, wordt om een bepaalde tijd de huidige positie van de werknemer (koerier) doorgeven. Vervolgens worden deze positie en de vorige tussenstoppen weergegeven op een kaart. Daarenboven kan de koerier ook commentaren toevoegen. Door de real-time tracking en het toevoegen van opmerkingen, kan een klant het traject van zijn pakket bekijken en de eventuele problemen nagaan. Doelstellingen In deze opdracht zal er een web applicatie moeten ontwikkeld worden die de klanten in staat stelt zijn pakketten op te volgen. We hebben er voor gekozen voor een volledige JEE6 stack omdat we de mogelijkheden van deze nieuwe technologieën in de praktijk willen vertaald zien. Concreet zal de backend zodanig moeten gemaakt worden dat deze met de android front-end kan communiceren. Dit wil zeggen dat de android applicatie die reeds ontwikkeld is nog steeds zal kunnen gebruikt worden. Ook de web front-end zal ontwikkeld worden op basis van de JEE stack. Welke kennis en competenties ontwikkel je met deze opdracht?
Analyse Project planning, uitvoering en opvolging Java API for RESTful Web Services (JAX-RS) 1.1 JavaServer Faces 2.0 Contexts and Dependency Injection Bean Validation 1.0 Enterprise JavaBeans 3.1 Java Persistence 2.0 Testing Documentatie schrijven (technisch schrijver)
Welke competenties heb je nodig?
Een goede Java kennis is nodig. Basis JEE-kennis is een plus Interesse in de bouw van kwalitatief hoogstaande webtoepassingen Beschikken over analyse skills Zelfstandig kunnen werken
10
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, …) De ontwikkeling van de webapplicatie begon met Java EE 5 en Seam 2, maar ondergaat nu een evolutie naar een standaard Java EE stack (versie 6, binnenkort versie 7). Doelstellingen 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 gebruik te maken van de meeste recente technologie op gebied van Enterprise Java. Dit is een opdracht waar of 1 of max 2 personen aan kan/kunnen werken.
Welke kennis en competenties ontwikkel je met deze opdracht?
Analyse Project planning, uitvoering en opvolging Documentatie schrijven (technisch schrijver) Testing Java API for RESTful Web Services (JAX-RS) 1.1 - 2.0 (RESTEasy implementatie) JavaServer Faces (JSF) 2.0 - 2.2 RichFaces 4.3.x - 5.x Contexts and Dependency Injection (CDI) 1.0 - 1.1 Bean Validation 1.0 (Hibernate Validator) Enterprise JavaBeans (EJB) 3.1 - 3.2 Java Persistence (JPA) 2.0 - 2.1 Hibernate 4.x (Core, Search, Envers) JasperReports 4.7.x JBoss AS 7.1.1.Final - Wildfly 8.X Maven 3.0.3 Subversion 1.7.9
Welke competenties heb je nodig?
Goede Java kennis is een vereiste Basis JEE6 kennis is een plus Interesse in de bouw van kwalitatief hoogstaande webtoepassingen Beschikt over voldoende analyse skills Zelfstandig kunnen werken Stagewerk voor 1 à 2 personen
Locatie van de stage: Brussel-Noord
11
1.4 Semantic Technologies supporting Next Generation SOA De opdracht De wereld van Service Oriented Architecture staat niet stil. Een van de belangrijkste ontwikkelingen voor de volgende jaren in SOA (en ICT in het algemeen) is die op vlak van het Semantische Web. Op dat vlak moet er nog veel onderzoek en ontwikkeling worden gedaan, dat is waar deze opdracht in kadert.
Motivatie o Hoe doet onze traditionele Service Oriented Architecture aanpak het binnen de huidige snel evoluerende bedrijfswereld? o Is onze traditionele aanpak klaar voor opkomende trends als pervasive computing? Waarom wel/niet? Wat ontbreken we vandaag? Waar zitten de pijnpunten van onze huidige architectuur componenten? o Visie op de volgens jou meest optimale architectuur en introductie tot een referentie architectuur.
Doelstellingen
Beschrijven van een conceptuele referentie architectuur verder bouwend op SOA principes ter ondersteuning van dynamic service discovery, composition en context-awareness met het oog op een architectuur die pervasive computing kan ondersteunen.
Implementatie van deze referentie architectuur als proof-of-concept binnen een JEE stack bestaande uit: o Ontwikkeling van een service publication component o Ontwikkeling van een service discovery en service composition component o Ontwikkeling van de nodige componenten ter ondersteuning van de bouw en uitvoering van contextaware services o Ontwikkeling van een Web Service interface voor de bovengenoemde componenten o Het bouwen van een UI voor bovenstaande componenten behoord niet tot de scope van de stage opdracht
Evaluatie van deze nieuwe architectuur o Uitwerking van een aantal use case scenario‟s. Bij voorkeur binnen de context van onze klanten o Studie m.b.t haalbaarheid en toepasbaarheid in de praktijk aan de hand van survey bij een tweetal van onze klanten o Is privacy een show stopper? Waarom wel/niet? Hoe kunnen eventuele privacy issues gemitigeerd worden?
Dit is een opdracht waar of 1 of max 2 personen aan kan werken. Je wordt begeleid en gecoached door een ervaren Software Architect.
Welke skills en competenties ontwikkel je met deze opdracht?
Architectuur Analyse Research Semantic Technologies (RDF, OWL, OWL-S, Graph database, …) Enterprise JavaBeans 3.1 JaxWS Project planning, uitvoering en opvolging Testing Documentatie schrijven (technisch schrijver)
Welke competenties heb je nodig?
Innovatie drijft je Een goede Java kennis is nodig . Basis JEE-kennis is een plus Niet terugdeinzen van research – voorgekauwde dingen zijn niets voor jou Zelfstandig kunnen werken maar het team niet uit het oog verliezen 12
1.5 Employee Customer Map De opdracht Employee Customer Map is een webapplicatie die de locatie van onze werknemers op een kaart toont en bij welke klant ze werken. Zowel de werknemer alsook zijn manager moet dit via de web applicatie kunnen aanpassen. Werknemers kunnen bijvoorbeeld op deze kaart zien welke collega‟s er in de buurt werken. Een ander voorbeeld is dat een manager of werknemer kan zien waar iedereen in zijn afdeling werkt. Een extra mogelijkheid is dat je vanuit de applicatie gemakkelijk een mailtje kan sturen naar collega‟s die in de buurt werken, bijvoorbeeld om een terrasje te doen.
Doelstellingen Naast de te ontwikkelen webapplicatie moeten de gegevens ook beschikbaar zijn via een RESTfull webservice, zodat er nadien een mobiele app kan geschreven worden. Er bestaat al een oudere applicatie met een gelijkaardige functionaliteit die componenten kan bevatten die eventueel kunnen gebruikt worden..
Welke kennis en competenties ontwikkel je met deze opdracht?
Analyse Project planning, uitvoering en opvolging Integreren van kaarten in een webapplicatie JEE 7 (JSF 2.2, EJB 3.2, JPA 2.1, JAX-RS 2.0, …) Webtechnologieën: JSF 2.2, HTML 5, JavaScript RESTfull webservices Testen Documentatie schrijven Werken met legacy code
Welke competenties heb je nodig?
Grondige Java-kennis Basiskennis JEE Beschikt over voldoende analyse skills Zelfstandig kunnen werken Belang hechten aan kwaliteit
13
1.6 Employee Customer Map - Mobile App De opdracht Dit is een uitbreiding/aanvulling op de “Employee Customer Map” applicatie.Deze uitbreiding is een mobiele applicatie die de locatie van onze werknemers op een kaart toont en bij welke klant ze werken. Zowel de werknemer als zijn manager moet dit via de mobiele applicatie kunnen aanpassen. Werknemers kunnen bijvoorbeeld op deze kaart zien welke collega‟s er in de buurt werken. Een ander voorbeeld is dat een manager of werknemer kan zien waar iedereen in zijn afdeling werkt. Een extra mogelijkheid is dat je vanuit de applicatie gemakkelijk een mailtje kan sturen naar collega‟s die in de buurt werken, bijvoorbeeld om een terrasje te doen.
Doelstellingen Het is belangrijk dat deze applicatie op verschillende mobiele platformen werkt (iOS, android, Windows phone). Als bijkomende doelstelling dient er ook een RESTFull webservice ontwikkeld te worden via dewelke de Mobile app de nodige gegevens kan ophalen. De RESTFull webservice kan voorzien worden met mock-data.
Welke skills en competenties ontwikkel je met deze opdracht?
Analyse Projectplanning, uitvoering en opvolging Integreren van kaarten in een mobiele toepassing. Web technologieën: HTML 5, JavaScript Hybride technologie, bijvoorbeeld PhoneGap RESTfull webservices Testen Documentatie schrijven
Welke competenties heb je nodig?
Basiskennis HTML, JavaScript en mobile development Beschikt over voldoende analyse skills Zelfstandig kunnen werken Oog voor detail Belang hechten aan kwaliteit
14
1.7 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.
15
1.8 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.
16
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.
17
1.9 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
18
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. Naast de vermelde opdrachten vanuit onze Applications Microsoft divisie zijn we ook actief binnen Enterprise Solutions met Microsoft (Sharepoint, CRM, Business Intelligence). Ook daar zijn er boeiende opdrachten.
19
2.1 Single Page Applications Opdracht Single Page Applications zijn applicaties waarbij de hele applicatie bestaat uit slechts 1 pagina. Het voordeel hiervan is dat je een vlottere gebruikerservaring krijgt doordat de pagina niet moet herladen. Tot op heden maken alle applicaties gebaseerd op plugins (Flash, Silverlight, Flex, …) reeds gebruik van het Single Page-principe, maar sinds de producenten van de mobile OS hebben beslist niet langer het plugin-model te ondersteunen, wint de HTML/JavaScript-oplossing aan populariteit. Natuurlijk brengt dit enkele vragen met zich mee die dienen onderzocht te worden, vb. wat met navigatie, security, … Technologieën HTML JavaScript ASP.NET WebAPI ASP.NET MVC 4 WCF Doelstelling Onderzoek naar verschillende libraries (knockout, backbone, sammy, …) o Voor- en nadelen o Integratie met andere libraries o Hoe gebruiken o Doel van de library o Maturiteit o Support, pricing, licensing Onderzoek naar libraries voor dataservices (upshot, breeze, …) versus zelf implementeren o Offline mogelijkheden o Fetching-strategieën o Synchronisatie met de services Onderzoek security o Hoe beveiligen we de requests naar de services o Focus REST (WebAPI) & WCF Services Uitwerken van een POC o Aandacht voor projectopzet o Moet offline kunnen werken. o Motivering gebruikte libraries Conclusie o Lessons learned
Stagelocatie: Huizingen Stagebegeleider: Kristof Degrave
20
2.2 RealDolmen Customer Cases: „One backend, different clients‟ Opdracht De opdracht bestaat uit 2 luiken: Onderzoek mogelijkheden “One Backend, Different Clients” o Onderzoek “Building Services for Any Client”: ASP.NET Web API (evt met Azure?) o Documenteren best practices, framework, zijn er andere bruikbare technologieën? o Onderzoek wat is mogelijk met “Portable Class Libraries” => Sharing Models, ViewModels, Business Logic,… o Architectuur voor zo‟n toepassingen Herwerken van de RealDolmen Customer Cases (Web versie, Win 8/RT versie, eventueel WP8 versie) o Uitwerken design (Modern UI) o Windows 8/RT versie maken (XAML + C# of Html5 + JavaScript) o Web versie maken (ASP MVC, Html5, JavaScript, CSS,…) => (eventueel ondersteuning voor mobiele toestellen) o Extra WP8 versie of Mono IOS versie (http://www.mono-project.com/Main_Page) In samenspraak met marketing kan de inhoud van de Customer Cases aangepast worden voor de nieuwe app(s), dit is dan meer functioneel en best te bepalen door marketing. Bijvoorbeeld enkele extra‟s: Interactieve Corporate presentatie, Integratie RD Twitter & Facebook,… Technologiën .NET WP8 dev Html5 CSS design skills Inspiratie “Building Services for Any Client with ASP.NET Web API”: http://channel9.msdn.com/Events/Build/2012/3-036 “Huidige RealDolmen cases site”: http://customercases.realdolmen.com “Portable class libraries met Mono support”: http://slodge.blogspot.be/2012/05/portable-class-libraries-inmvvmcross.html Stagelocatie: Huizingen Stagebegeleider: Alexander Reynaert
21
2.3 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
22
2.4 Service Governance met „AppFabric for Windows Server‟ Opdracht De opdracht bestaat uit het bouwen van een virulisatielaag 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
23
2.5 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
24
2.6 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
25