Uitleg wosi

From WOSI
Jump to: navigation, search

Technische omgeving. Spring als webservices framework; steeds vaker in combinatie met javscript engine.

spring framework

Het Spring framework is in de afgelopen jaren uitgegroeid tot een de facto standaard voor het bouwen van enterprise Java-applicaties. Wie goed leert werken met Spring MVC, kan vervolgens ook snel leren met andere frameworks applicaties te bouwen. Veel belangrijke basis-principes blijven bij object georiënteerde softwareontwikkeling ongeveer hetzelfde.

Uiteraard zien wij ook snelle veranderingen in de ontwikkeling van applicaties, met name aan de client side (one pagers; react). In de komende periode gaan we dat versterkt inzetten. Binnen WOSI komen studenten (deels afhankelijk van het project) met een groot aantal technieken in aanraking, zoals Tree.js, jquery, thymeleaf, React (en andere javascript frameworks), REST, Jason, WebGL, Android, MySQL, MongoDB, Tomcat, enzovoorts.

Voor de backend (oftewel: als webservices framework) en uiteraard voor alle business logica, berekeningen en dergelijke blijven we voorlopig in elk geval Spring gebruiken. We kijken daarbij uiteraard ook naar nieuwe ontwikkelingen van de Spring-familie, zoals Spring ROO En we houden bijvoorbeeld ook de ontwikkelingen van het play-framework en Akka in het oog.

WOSI is een project dat in samenwerking met de informatica opleiding van de HvA geïnitieerd is, en waar vooral op basis van het Spring-framework enterprise applicaties gebouwd worden voor 'echte' opdrachtgevers, als woningcorporaties, Ministerie van Defensie, NOS, onderwijsinstellingen en diverse andere grote organisaties. Ook doen regelmatig studenten van andere hogescholen mee.

Naast studenten die Software Engineering als hoofdrichting hebben, begeleidt WOSI ook studenten van andere richtingen binnen de informatica opleidingen. Studenten kunnen bij ons terecht voor hun stage of projectpunten. Als je de ambitie hebt om een professioneel software engineer te worden, loop dan gerust eens binnen, want we zorgen voor een goede begeleiding.

Ook studenten van andere studierichtingen kunnen deelnemen, bijvoorbeeld studenten die grafische vormgeving, interactieve media, communicatie of rechten studeren. In de afgelopen periode hebben bijvoorbeeld verschillende groepen HvA-rechtenstudenten onderzoek naar (open source) licenties gedaan.

Voor het onderwijs en voor WOSI heeft het framework Spring MVC een aantal voordelen boven het (leren) werken met bijvoorbeeld een PHP, Python of .NET. Het gaat daarbij om een mix van argumenten. Een aantal daarvan zetten we hieronder op een rij. Laat duidelijk zijn dat het geen waarde-oordeel bevat over een taal of welke oplossing in een specifieke situatie de beste keuze is. Deze argumentatie staat ook los van de ontwikkelingen die wij nu zien in de markt richting "JavaScript frameworks.

php versus java

PHP is weliswaar (ook) groeiend in het professionele domein, maar wordt op de arbeidsmarkt toch beduidend minder gevraagd.

Dat geldt in nog sterkere mate voor Python en ook voor bijvoorbeeld C++. Dit zegt uiteraard niets over het gebruik bij specifieke toepassingen.

python versus java

Spring is open source en dus is alle informatie, code en libraries voor iedereen toegankelijk. Voor onderwijs- en onderzoeksdoeleinden is dat essentieel, vanwege de inzichtelijkheid en controleerbaarheid.

Het gereedschap dat nodig is voor software-ontwikkeling, is eveneens voor iedereen beschikbaar, zoals bijvoorbeeld: Eclipse, Maven, Tomcat, GIT, etc.).

Applicaties zijn te gebruiken in combinatie met vrijwel ieder operating systeem. Dat is belangrijk, omdat ze in iedere infrastructuur passen en er dus geen verplichte winkelnering ontstaat bij één specifieke leverancier.

python versus java

Spring-applicaties kunnen gebruikt worden in combinatie met vrijwel iedere database. In veel gevallen wordt gebruik gemaakt van een ORM (object relational mapping tool), zoals Hibernate (JPA). Dat betekent dat een applicatie getest kan worden met een groot aantal verschillende databases.

database independent

Alle WOSI-modules zijn zoveel mogelijk gebouwd met oss-tools en oss-producten, waardoor er voor onze opdrachtgevers geen wederkerende licentiekosten zijn. Echter, als onze klanten gebruik willen maken van gelicenseerde operating systemen of databases (Oracle, MSSql, DB2, etc), dan kan dat uiteraard.

Programmeurs met kennis van enterprise frameworks worden (door ICT-bedrijven) veel gevraagd, volgens diverse bronnen beduidend meer dan mensen met andere (Java-)kennis.

python versus java

Java en .NET zijn ongeveer evenveel gevraagd op de arbeidsmarkt.

Goeie software-architecten en -ontwikkelaars heb je, in onze visie, dichtbij huis nodig en moeten dus hier worden opgeleid. De Automatiseringsgids berichtte al in mei 2011 over het groeiende tekort aan SE'ers, het is er sindsdien niet beter op geworden. Het idee dat je alles makkelijk kunt out-sourcen, is voorbij. Out-sourcen kan wel, maar alleen als bedrijven heel goed weten wat ze willen en dat ook heel goed kunnen aansturen. Dan is goede inhoudelijke kennis (hier) nodig, die alleen te verwerven is door 'fysiek' in grote softwareprojecten te participeren.

Er was ook een hele praktische reden om voor de architectuur van Spring te kiezen: die is namelijk geschikt om grote projecten blijvend goed te managen. Om die reden is het ook mogelijk gebleken met steeds weer wisselende (grote) groepen studenten aan (een onderdeel van) dezelfde applicatie te werken.

Spring heeft een zeer levendige en grote community, met talloze bijeenkomsten, forums, blogs en mailinglijsten.

Conclusie: we gebruiken steeds meer verschillende technologiën, vooralsnog blijven we voor de grote applicaties Spring als voornaamste web services engine gebruiken.

Jo Lahaye, j.lahaye@hva.nl, voorjaar 2017.