SlideShare a Scribd company logo
1 of 9
Download to read offline
Forms2Future presentatie op OBUG 2010:


Castle in the clouds – Building the Connexys
SaaS application with Fusion Middleware

Tijdens de OBUG 2010 conferentie op dinsdag 23 maart jl. in conferentie centrum Papendal was
'Forms2Future' een van thema's, zowel in de presentaties als op de expositie. Dit thema betreft niet
uitsluitend over Forms - het beschrijft in het algemeen een omgeving met klassieke Oracle ontwikkel-
technologie en bijbehorende applicaties, werkmethodes en medewerkers in organisaties die op de
toekomst willen inspelen. De toekomst voor deze organisaties omvat verschillende uitdagingen en
mogelijkheden. Bijvoorbeeld nieuwe wensen van de business - en de eis om een kortere time-to-market
te realiseren voor toekomstige nieuwe wensen, nieuwe gebruikersgroepen en nieuwe kanalen
waarlangs applicatie-functionaliteit moet worden aangeboden. En ook een verdergaande integratie
binnen de organisatie - koppelingen tussen systemen, bruggen tussen technologieën - en tussen de
organisatie en business partners en overheidsinstanties.

De presentatie van Arne van den Ing (architect bij Connexys) en Lucas Jellema (technisch consultant bij
AMIS) ging in op de reis die Connexys heeft gemaakt in het licht van een aantal van deze uitdagingen
van een klassieke Oracle omgeving naar een op de toekomst voorbereide situatie. Deze reis omvat
zowel technologie en applicatie als werkwijze en veel betrokken medewerkers en klanten. De Connexys-
applicatie is een SaaS-applicatie (Software as a Service) die vanuit 'de cloud' door meer dan 150
organisaties wordt gebruikt. Dit stelt specifieke eisen aan de applicatie, ondermeer op het vlak van de
dynamische aanpasbaarheid, het operationele beheer en de integratie (across the cloud). Het lijkt er
overigens op dat veel van de voorzieningen die ten behoeve van het SaaS karakter van de applicatie zijn
ontworpen eigenlijk in iedere applicatie van waarde kunnen zijn.
Figuur: Gepersonificeerd Dashboard voor de Connexys NextGen applicatie

 Dit artikel geeft een beeld van de presentatie van Arne en Lucas - achtereenvolgens van de
uitgangssituatie bij Connexys, de keuzes die zijn gemaakt en de overwegingen daarbij, de belangrijkste
elementen in het "NextGen project" en de specifieke voorzieningen die voor 'customization' en 'cross-
cloud service ontsluiting' van SaaS applicaties ontworpen zijn.

Connexys - een paar jaar geleden
Aan het begin van het decennium startte Connexys met een browser gebaseerde applicatie die Werving
& Selectie en HRM-processen ondersteunde voor kleinere en vooral grotere organisaties. In een paar
jaar bouwt Connexys een groot marktaandeel op met ruim 100 klanten en superieure functionaliteit.




Figuur: Screenshot van Connexys OldGen - de applicatie van voor 2008
Dan doet de wet van de remmende voorsprong zich gelden: nieuwe partijen in de markt bieden visueel
rijkere, modernere applicaties en verleiden daarmee nieuwe klanten. Andere aandachtspunten voor
Connexys zijn de groeiende kosten van implementaties, de inspanning voor het onderhoud van de vele
klantspecifieke aanpassingen en het te beperkte vermogen snel nieuwe functionaliteit te realiseren.

Het marktaandeel van Connexys groeit niet meer en het bedrijf staat voor een belangrijke keuze: de
bestaande applicatie handhaven, verder uitmelken en een langzame maar zekere teruggang accepteren
of de applicatie en de organisatie moderniseren en het leiderschap in de markt terugpakken en
uitbouwen. Dat laatste scenario vergt actie en een substantiële investering.

De directie van Connexys is niet toe aan de rol van Cash Cow en op termijn een nachtkaarsscenario. Er
wordt besloten tot het NextGen project dat de toekomst zal binnenhalen.

Het NextGen project
Het uitgangspunt voor Connexys is een deels met de Oracle Designer WebServer Generator gegeneerde
PL/SQL applicatie - op basis van de Web PL/SQL Toolkit die vanuit de Oracle Database met behulp van
het HTP package en de MOD_PLSQL module voor Apache HTML pagina's oplevert. De applicatie is in de
loop der jaren enorm verrijkt, middels handmatige aanpassingen op de gegenereerde code. Het
fundament van de applicatie wordt gevormd door een solide data model en een laag die bedrijfsregels
en data integriteit afdwingt met triggers en packages. Een dozijn medewerkers werkt aan het ontwerp,
de ontwikkeling en het beheer van de applicatie.

Keuzecriteria voor de technologie die voor NextGen werd geselecteerd waren met name:

      functionaliteit - kan de stack de functionele (en vele non-functionele) eisen implementeren
      productiviteit - is de ontwikkeling van toekomstige functionaliteit mogelijk binnen tijd en budget
      time to market & flexibiliteit - biedt de stack voldoende 'agility'? Kan nieuwe functionaliteit snel
       ingepast en bijgebouwd worden
      licentiekosten - de directe out-of-pocket kosten voor het inzetten van de stack
      haalbaarheid voor team - in hoeverre kan het bestaande team van ontwikkelaars en beheerders
       maar ook ontwerpers, testers en andere betrokkenen, de stack adopteren binnen redelijke
       termijn en tegen redelijke kosten

Daarnaast was een uitgangspunt dat de bestaande Oracle database ook de nieuwe applicatie zou gaan
bedienen - ondermeer omdat gedurende een overgangsperiode zowel OldGen als NextGen actief
zouden zijn.

Het selectietraject, waarin ondermeer naar Open Source Java en .Net oplossingen werd gekeken,
resulteerde in een keuze voor Oracle's ADF framework. Om grotere productiviteit en een vlakkere
leercurve voor het ontwikkelteam te bewerkstelligen werd JHeadstart ingezet als extra
ontwikkelgereedschap. Ook werd de kracht van de database nadrukkelijk ingezet: bij gelijke geschiktheid
werden operaties met behulp van SQL en PL/SQL gerealiseerd in plaats van ten alle tijde Java in te
zetten.
Figuur: van oude architectuur naar de nieuwe NEXTGEN situatie

Connexys beoogde twee belangrijke doelstellingen met het NextGen project. Allereerst de ontwikkeling
van een applicatie die de leidende marktpositie zou herbevestigen en voor de toekomst zeker stellen.
Direct daaraan gekoppeld en voor het bestendigen van het succes net zo belangrijk de ontwikkeling van
de hele organisatie - van ontwikkelaar tot secretaresse was op een of andere manier bezig met of op zijn
minst bewust van NextGen - en ook de klanten die al in een vroeg stadium werden geïnformeerd over
het project en konden meedenken over de functionaliteit en het uiterlijk van de applicatie. Connexys
zocht een externe partij aan om de reis naar de toekomst te helpen plannen en daarna
achtereenvolgens als gids/reisleider, reisgenoot en uiteindelijk steunpunt te fungeren. Enthousiasme- en
kennisoverdracht leidend tot zelfstandigheid van de eigen medewerkers waren de sleutel voor succes.

Rijke functionaliteit
De NextGen applicatie is aantrekkelijk en plezierig intuïtief om mee te werken. Klanten moeten vroeg in
salescycli in een oppervlakkige kennismaking geïnteresseerd raken. En vervolgens bij nadere
beschouwing en toetsing door kandidaat-eindgebruikers maar met name in het dagelijkse gebruik moet
de applicatie functioneel rijk zijn, taak- en procesgericht zodat gebruikers zonder steile leercurve of veel
zoeken doelgericht en productief hun werk kunnen doen. Rijke web-applicaties van verschillende
leveranciers zoals SalesForce.com inspireerden het ontwerp van NextGen.

De basis voor het ontwerp werd gevormd door een user interaction design - een consistente
beschrijving van de meest voorkomende acties en interacties in de applicaties met antwoorden op
vragen als: welke stappen zet een gebruiker, wat zijn de mogelijke keuzes op ieder punt in de applicatie,
welke informatie heeft de gebruiker nodig om een actie te initiëren. Dit ontwerp omvat de structuur van
applicatie-pagina's en de vaste interactie-gebieden - zoals tabs voor modules (1), broodkruimelspoor
voor de flow binnen een module (2), navigatie-historie voor (short-cuts naar) de recent bezochte
kandidaten, vacatures en contactpersonen (3), knoppenbalk voor transactie controle (Opslaan, Opslaan
& Specifieke vervolgactie en Annuleren) en navigatie door gegevensset (4) en het wellicht meest
opmerkelijke onderdeel: de relevante acties (5).
Figuur: de vaste interactie-gebieden in het NextGen interaction ontwerp

De applicatie kent geen globaal menu zoals we dat van oudsher in veel applicaties tegenkomen. In plaats
daarvan wordt in NextGen op iedere pagina in de 'Acties-box' een lijst van acties (hyperlinks) getoond
die op dit moment beschikbaar zijn. Op basis van de huidige pagina, de huidige gebruiker (rechten) en
het huidige record (status) wordt door de applicatie aan een PL/SQL gebaseerde workflow engine
gevraagd welke operaties beschikbaar zijn. Dit dynamische lijstje vormt voor gebruikers een heel
intuïtieve manier om snel de meest voor de hand liggende actie in het kader van een logisch
samenhangende workflow (die door de klanten zelf kan worden ingericht) uit te voeren.

Daarnaast wordt de look & feel - de stijl, kleursamenstelling, icoongebruik - vastgelegd in dit interaction
design.

Kenmerken van SaaS applicaties
NextGen is een applicatie die wordt aangeboden via het SaaS model (Software as a Service). Dit model
kent een aantal karakteristieken en uitdagingen waarmee bij het ontwerp en de bouw nadrukkelijk
rekening moet worden gehouden.

Er is sprake van een 'single instance' van een standaard applicatie die door veel gebruikers binnen
meerdere (bij Connexys meer dan 150) klantorganisaties wordt gebruikt. SaaS applicaties draaien
binnen een centrale en centraal beheerde infrastructuur en zijn (nagenoeg) 24/7 beschikaar, zeker bij
internationaal gebruikte applicaties. De applicatie wordt aangeboden via een web browser. Het licentie-
model is gebaseerd op gebruik - zowel hoeveelheid gegevens en transacties (diepte) als de gebruikte
modules en afgenomen functionaliteit (breedte). Service Level Agreement leggen de gegarandeerde
dienstverlening vast - zoals beschikbaarheid en reactie-snelheid van de applicatie.

We bespreken twee specifieke aandachtspunten voor NextGen als gevolg van deze SaaS
karakteristieken:
   klanten en eindgebruikers willen een applicatie die naadloos aansluit bij hun werkelijkheid; ze
        willen weliswaar een standaardapplicatie uit oogpunt van ondermeer kostenoverwegingen,
        beheerefficiency en toekomstzekerheid, maar ook een die voelt als 'eigen', bijvoorbeeld doordat
        eigen terminologie wordt gehanteerd (kandidaat dan wel sollicitant dan wel reflectant,
        belangstellende, gegadigde), het menu en de workflow naar eigen inzicht kunnen worden
        ingericht en doordat validaties, bedrijfsregels, veld-verplichtheid naar eigen inzicht kunnen
        worden gedefinieerd.
       organisaties werken aan de integratie van hun systemen en applicaties, veelal op basis van
        services en soms ook events; SaaS applicaties maken dan wel niet fysiek deel uit van het IT
        landschap van de gebruikende organisatie, ze zijn logisch gezien volstrekt vergelijkbaar met de
        applicaties die wel on-site beheerd worden -zowel standaard als maatwerk applicaties. De
        integratie en service-gebaseerde ontsluiting betreft dus ook de SaaS applicaties.




Dynamische Aanpasbaarheid
Voor klanten van de Connexys applicatie is de mogelijkheid om wat in essentie een standaard-applicatie
is - en zelfs een single, shared instance van die applicatie - aan de eigen wensen en omstandigheden aan
te passen een belangrijke eis. NextGen voorziet daarin op een aantal terreinen, zoals workflow-
configuratie, menu-inrichting, boilerplate tekst zoals prompts en error-teksten en flex-velden . Deze
hebben qua technische implementie een overeenkomst: meta-data voor de klant-specifieke
uitbreidingen/aanpassingen is vastgelegd in de database.

Java applicaties gebruiken meestal file-gebaseerde resource bundles waarin de teksten zoals prompt,
hint, titel, menulabel, domeinwaarden en foutboodschap zijn vastgelegd in mogelijk meerdere talen.
Deze teksten kunnen niet eenvoudig worden aangepast en wijzigingen vereisen een herstart van de
applicatie. De NextGen applicatie maakt gebruik van resource bundles die in de database worden
onderhouden, dynamisch kunnen worden aangepast en per klant overschreven kunnen worden.
Hiermee kunnen organisaties iedere schermtekst naar eigen inzicht aanpassen via een speciaal
beheerscherm in de applicatie.

Een andere geavanceerde voorziening in de NextGen applicatie biedt klanten de mogelijkheid om velden
uit te schakelen - onzichtbaar te maken voor gebruikers omdat ze geen relevantie hebben voor de
bedrijfsprocessen van die klant - of toe te voegen. NextGen bevat velden voor de meestvoorkomende
attributen van de business objecten. Veel klanten hebben niet de behoefte aan ál die eigenschappen -
en willen de schermen versimpelen door de overtollige standaard-elementen uit te schakelen - en
sommige klanten hebben behoefte aan aanvullende attributen voor specifieke aspecten in hun eigen
manier van werken. Beide wensen worden door de applicatie ondersteund via voor de
applicatiebeheerder van een klant zelf toegankelijke beheerschermen binnen de applicatie.
Figuur: dynamisch applicatiebeheer - bewerken, verbergen en toevoegen van velden

Het gebruik van JavaServer Faces (ADF Faces) voor de user interface maakt het betrekkelijk eenvoudig
om op dynamische wijze, gestuurd door meta-data in de database, velden weg te laten dan wel toe te
voegen. Vrijwel alle eigenschappen van schermelementen kunnen in JSF met dynamisch geëvalueerde
EL expressies worden gedefinieerd, zoals bijvoorbeeld:

<af:inputText id="NationaliteitKandidaat"
rendered="#{klantContext['kandidaat_nationaliteit'].enabled}" />

Wolk-waardige Integratie
Een SaaS applicatie moet kunnen integreren met ondermeer de Enterprise Service Bus van haar
gebruikers - door het aanbieden van een WebService API die dezelfde operaties ondersteunt als de User
Interface en door het consumeren en publiceren van business events. En bijvoorbeeld ook door de
mogelijkheid te bieden aan klanten om services te registreren bij de SaaS applicatie die kunnen worden
aangeroepen voor het uitvoeren van ondersteunende acties zoals het versturen van emails, het
uitvoeren van complexe, klantspecifieke validaties of het in batch uitprinten van rapportages of brieven.
Figuur: SOA across the cloud - integratie tussen de SaaS applicatie en de klant-omgeving

De figuur laat zien hoe de SaaS klant verschillende diensten kan 'injecteren' in de SaaS applicatie om te
bijvoorbeeld te verzekeren dat haar eigen email en fax voorzieningen worden benut voor de
communicatie met kandidaten en zakelijke partners. Daarnaast publiceren de SaaS applicaties business
events - zoals nieuwe kandidaat is vastgelegd of kandidaat heeft een aanbieding geaccepteerd, die door
de systemen van de klant kunnen worden opgepikt. Daartoe kunnen listeners (web services)
geregistreerd worden bij de SaaS applicatie die zullen worden aangeroepen als het event zich voordoet.
Andersom kan ook de SaaS applicatie listeners bevatten voor events die door de klant gemeld kunnen
worden - bijvoorbeeld onmiddellijke vacature stop.

Andere faciliteiten zijn meer op de integratie van user interfaces gericht. Gebruikers van de NextGen
applicatie maken ook gebruik van andere applicaties. Idealiter kan een gebruiker van de ene applicatie
rechtstreeks navigeren naar de andere: deeplink navigatie die de gebruiker naar de juiste context
brengt van relevant scherm en het juiste record. Zulke navigatie zou ook uit workflow-systemen en
todo-takenlijstjes van de SaaS klanten kunnen plaatsvinden.

Ook front-end integratie, bijvoorbeeld door integratie van de SaaS applicatie in het intranet (portaal)
van de SaaS afnemen is veelal gewenst. Daartoe kan de SaaS leverancier overwegen onderdelen van de
applicatie als Portlets aan te bieden die op deze manier geabsorbeerd en visueel geïntegreerd kunnen
worden.
Conclusies
Connexys heeft haar doelen gerealiseerd: het marktaandeel stijgt weer. Het klantverloop is gestopt, een
hoog percentage van sales-cycli wordt gewonnen en eerdere weggelopen klanten komen zelfs weer
terug. De klanttevredenheid is gestegen tot ruim boven de scherp gestelde doelen en de
implementatietrajecten duren kort: het up & running krijgen van nieuwe klanten vergt slechts een paar
dagen, zelfs als er klantspecifieke aanpassingen moeten worden gerealiseerd. Het ontwikkel- en
beheerteam is inmiddels volledig zelfstandig bezig met de technologie en de analisten en implementatie
consultants maken gretig gebruik van alle mogelijkheden die de nieuwe technologie en applicatie-
voorzieningen hen bieden om nieuwe functionaliteit te specificeren.

De reis is niet een eenvoudige geweest - een kleine twee jaar tussen eerste gedachtevorming en
overzetten van de laatste klanten, een forse investering, een aantal teleurstellingen gaandeweg het
traject - maar blijkt nu wel de moeite waard geweest. Overigens beschouwt Connexys de huidige siuatie
zeker niet als eindpunt maar als tussenstation in een voortdurende reis op weg naar een mooiere
toekomst.

Meer informatie over Connexys, het NextGen project en de samenwerking met AMIS kan je navragen bij
info@connexys.nl en vinden via http://www.connexys.eu. De presentatie op OBUG die de aanleiding
vormt voor dit artikel kan je terugzien op: http://www.slideshare.net/lucasjellema.

More Related Content

Viewers also liked

The True State of the Oracle Public Cloud - Dutch Oracle Architects Platform ...
The True State of the Oracle Public Cloud - Dutch Oracle Architects Platform ...The True State of the Oracle Public Cloud - Dutch Oracle Architects Platform ...
The True State of the Oracle Public Cloud - Dutch Oracle Architects Platform ...Lucas Jellema
 
Introducing Node.js in an Oracle technology environment (including hands-on)
Introducing Node.js in an Oracle technology environment (including hands-on)Introducing Node.js in an Oracle technology environment (including hands-on)
Introducing Node.js in an Oracle technology environment (including hands-on)Lucas Jellema
 
Introducing Oracle Real-Time Integration Business Insight
Introducing Oracle Real-Time Integration Business InsightIntroducing Oracle Real-Time Integration Business Insight
Introducing Oracle Real-Time Integration Business InsightLucas Jellema
 
Oracle Database 12c - Introducing SQL Pattern Recognition through MATCH_RECOG...
Oracle Database 12c - Introducing SQL Pattern Recognition through MATCH_RECOG...Oracle Database 12c - Introducing SQL Pattern Recognition through MATCH_RECOG...
Oracle Database 12c - Introducing SQL Pattern Recognition through MATCH_RECOG...Lucas Jellema
 
What is the Oracle PaaS Cloud for Developers (Oracle Cloud Day, The Netherlan...
What is the Oracle PaaS Cloud for Developers (Oracle Cloud Day, The Netherlan...What is the Oracle PaaS Cloud for Developers (Oracle Cloud Day, The Netherlan...
What is the Oracle PaaS Cloud for Developers (Oracle Cloud Day, The Netherlan...Lucas Jellema
 
Oracle Management Cloud - introduction, overview and getting started (AMIS, 2...
Oracle Management Cloud - introduction, overview and getting started (AMIS, 2...Oracle Management Cloud - introduction, overview and getting started (AMIS, 2...
Oracle Management Cloud - introduction, overview and getting started (AMIS, 2...Lucas Jellema
 
Oracle OpenWorld 2016 Review - Focus on Data, BigData, Streaming Data, Machin...
Oracle OpenWorld 2016 Review - Focus on Data, BigData, Streaming Data, Machin...Oracle OpenWorld 2016 Review - Focus on Data, BigData, Streaming Data, Machin...
Oracle OpenWorld 2016 Review - Focus on Data, BigData, Streaming Data, Machin...Lucas Jellema
 
Oracle OpenWorld 2016 Review - High Level Overview of major themes and grand ...
Oracle OpenWorld 2016 Review - High Level Overview of major themes and grand ...Oracle OpenWorld 2016 Review - High Level Overview of major themes and grand ...
Oracle OpenWorld 2016 Review - High Level Overview of major themes and grand ...Lucas Jellema
 
Handson Oracle Management Cloud with Application Performance Monitoring and L...
Handson Oracle Management Cloud with Application Performance Monitoring and L...Handson Oracle Management Cloud with Application Performance Monitoring and L...
Handson Oracle Management Cloud with Application Performance Monitoring and L...Lucas Jellema
 
AMIS SIG - Introducing Apache Kafka - Scalable, reliable Event Bus & Message ...
AMIS SIG - Introducing Apache Kafka - Scalable, reliable Event Bus & Message ...AMIS SIG - Introducing Apache Kafka - Scalable, reliable Event Bus & Message ...
AMIS SIG - Introducing Apache Kafka - Scalable, reliable Event Bus & Message ...Lucas Jellema
 
Comparing 30 MongoDB operations with Oracle SQL statements
Comparing 30 MongoDB operations with Oracle SQL statementsComparing 30 MongoDB operations with Oracle SQL statements
Comparing 30 MongoDB operations with Oracle SQL statementsLucas Jellema
 

Viewers also liked (11)

The True State of the Oracle Public Cloud - Dutch Oracle Architects Platform ...
The True State of the Oracle Public Cloud - Dutch Oracle Architects Platform ...The True State of the Oracle Public Cloud - Dutch Oracle Architects Platform ...
The True State of the Oracle Public Cloud - Dutch Oracle Architects Platform ...
 
Introducing Node.js in an Oracle technology environment (including hands-on)
Introducing Node.js in an Oracle technology environment (including hands-on)Introducing Node.js in an Oracle technology environment (including hands-on)
Introducing Node.js in an Oracle technology environment (including hands-on)
 
Introducing Oracle Real-Time Integration Business Insight
Introducing Oracle Real-Time Integration Business InsightIntroducing Oracle Real-Time Integration Business Insight
Introducing Oracle Real-Time Integration Business Insight
 
Oracle Database 12c - Introducing SQL Pattern Recognition through MATCH_RECOG...
Oracle Database 12c - Introducing SQL Pattern Recognition through MATCH_RECOG...Oracle Database 12c - Introducing SQL Pattern Recognition through MATCH_RECOG...
Oracle Database 12c - Introducing SQL Pattern Recognition through MATCH_RECOG...
 
What is the Oracle PaaS Cloud for Developers (Oracle Cloud Day, The Netherlan...
What is the Oracle PaaS Cloud for Developers (Oracle Cloud Day, The Netherlan...What is the Oracle PaaS Cloud for Developers (Oracle Cloud Day, The Netherlan...
What is the Oracle PaaS Cloud for Developers (Oracle Cloud Day, The Netherlan...
 
Oracle Management Cloud - introduction, overview and getting started (AMIS, 2...
Oracle Management Cloud - introduction, overview and getting started (AMIS, 2...Oracle Management Cloud - introduction, overview and getting started (AMIS, 2...
Oracle Management Cloud - introduction, overview and getting started (AMIS, 2...
 
Oracle OpenWorld 2016 Review - Focus on Data, BigData, Streaming Data, Machin...
Oracle OpenWorld 2016 Review - Focus on Data, BigData, Streaming Data, Machin...Oracle OpenWorld 2016 Review - Focus on Data, BigData, Streaming Data, Machin...
Oracle OpenWorld 2016 Review - Focus on Data, BigData, Streaming Data, Machin...
 
Oracle OpenWorld 2016 Review - High Level Overview of major themes and grand ...
Oracle OpenWorld 2016 Review - High Level Overview of major themes and grand ...Oracle OpenWorld 2016 Review - High Level Overview of major themes and grand ...
Oracle OpenWorld 2016 Review - High Level Overview of major themes and grand ...
 
Handson Oracle Management Cloud with Application Performance Monitoring and L...
Handson Oracle Management Cloud with Application Performance Monitoring and L...Handson Oracle Management Cloud with Application Performance Monitoring and L...
Handson Oracle Management Cloud with Application Performance Monitoring and L...
 
AMIS SIG - Introducing Apache Kafka - Scalable, reliable Event Bus & Message ...
AMIS SIG - Introducing Apache Kafka - Scalable, reliable Event Bus & Message ...AMIS SIG - Introducing Apache Kafka - Scalable, reliable Event Bus & Message ...
AMIS SIG - Introducing Apache Kafka - Scalable, reliable Event Bus & Message ...
 
Comparing 30 MongoDB operations with Oracle SQL statements
Comparing 30 MongoDB operations with Oracle SQL statementsComparing 30 MongoDB operations with Oracle SQL statements
Comparing 30 MongoDB operations with Oracle SQL statements
 

Similar to Forms2Future in action for SaaS provider Connexys

Waarom Bedrijven Kiezen Voor Drupal Voor De Ontwikkeling Van Futuristische We...
Waarom Bedrijven Kiezen Voor Drupal Voor De Ontwikkeling Van Futuristische We...Waarom Bedrijven Kiezen Voor Drupal Voor De Ontwikkeling Van Futuristische We...
Waarom Bedrijven Kiezen Voor Drupal Voor De Ontwikkeling Van Futuristische We...Rasin Bekkevold
 
Sdb Presentatie
Sdb PresentatieSdb Presentatie
Sdb Presentatiemenfey
 
Pembertons gelijk
Pembertons gelijkPembertons gelijk
Pembertons gelijkDino Seelig
 
Trends in Project Management Article
Trends in Project Management ArticleTrends in Project Management Article
Trends in Project Management ArticleHPM BV
 
Bedrijfspresentatie Geuze Automatisering B.V.
Bedrijfspresentatie Geuze Automatisering B.V.Bedrijfspresentatie Geuze Automatisering B.V.
Bedrijfspresentatie Geuze Automatisering B.V.cmgeuze
 
Automatiseren van IT activiteiten
Automatiseren van IT activiteitenAutomatiseren van IT activiteiten
Automatiseren van IT activiteitenRob Akershoek
 
20170901 - Over wyStack
20170901 - Over wyStack20170901 - Over wyStack
20170901 - Over wyStackTom van Oost
 
Presentatie minisymposium M&I Partners van 20 september 2010
Presentatie minisymposium M&I Partners van 20 september 2010Presentatie minisymposium M&I Partners van 20 september 2010
Presentatie minisymposium M&I Partners van 20 september 2010Karin Zwiggelaar
 
Presentatie Wildcard
Presentatie WildcardPresentatie Wildcard
Presentatie WildcardOmnilevel
 
ISES_Whitepaper-toekomst
ISES_Whitepaper-toekomstISES_Whitepaper-toekomst
ISES_Whitepaper-toekomstRik Pennartz
 
20081126 Hands On Presentatie Bram
20081126 Hands On Presentatie Bram20081126 Hands On Presentatie Bram
20081126 Hands On Presentatie BramFARO
 
20081126 Hands On Presentatie Bram
20081126 Hands On Presentatie Bram20081126 Hands On Presentatie Bram
20081126 Hands On Presentatie BramFARO
 
Dutch Industry Experience - Whitepaper Jan Baan
Dutch Industry Experience - Whitepaper Jan BaanDutch Industry Experience - Whitepaper Jan Baan
Dutch Industry Experience - Whitepaper Jan BaanSalesforce_Benelux
 
Gemeente Arnhem Case Study
Gemeente Arnhem Case StudyGemeente Arnhem Case Study
Gemeente Arnhem Case StudyBas Kooter
 

Similar to Forms2Future in action for SaaS provider Connexys (20)

Solvinity Server to Service
Solvinity Server to ServiceSolvinity Server to Service
Solvinity Server to Service
 
Waarom Bedrijven Kiezen Voor Drupal Voor De Ontwikkeling Van Futuristische We...
Waarom Bedrijven Kiezen Voor Drupal Voor De Ontwikkeling Van Futuristische We...Waarom Bedrijven Kiezen Voor Drupal Voor De Ontwikkeling Van Futuristische We...
Waarom Bedrijven Kiezen Voor Drupal Voor De Ontwikkeling Van Futuristische We...
 
De Digitale Sprong
De Digitale SprongDe Digitale Sprong
De Digitale Sprong
 
Sdb Presentatie
Sdb PresentatieSdb Presentatie
Sdb Presentatie
 
Pembertons gelijk
Pembertons gelijkPembertons gelijk
Pembertons gelijk
 
111450
111450111450
111450
 
Artikel MSchilperoort (2)
Artikel MSchilperoort (2)Artikel MSchilperoort (2)
Artikel MSchilperoort (2)
 
CloudOS_boekje
CloudOS_boekjeCloudOS_boekje
CloudOS_boekje
 
Trends in Project Management Article
Trends in Project Management ArticleTrends in Project Management Article
Trends in Project Management Article
 
Bedrijfspresentatie Geuze Automatisering B.V.
Bedrijfspresentatie Geuze Automatisering B.V.Bedrijfspresentatie Geuze Automatisering B.V.
Bedrijfspresentatie Geuze Automatisering B.V.
 
Automatiseren van IT activiteiten
Automatiseren van IT activiteitenAutomatiseren van IT activiteiten
Automatiseren van IT activiteiten
 
20170901 - Over wyStack
20170901 - Over wyStack20170901 - Over wyStack
20170901 - Over wyStack
 
Avanade Stageopdrachten
Avanade StageopdrachtenAvanade Stageopdrachten
Avanade Stageopdrachten
 
Presentatie minisymposium M&I Partners van 20 september 2010
Presentatie minisymposium M&I Partners van 20 september 2010Presentatie minisymposium M&I Partners van 20 september 2010
Presentatie minisymposium M&I Partners van 20 september 2010
 
Presentatie Wildcard
Presentatie WildcardPresentatie Wildcard
Presentatie Wildcard
 
ISES_Whitepaper-toekomst
ISES_Whitepaper-toekomstISES_Whitepaper-toekomst
ISES_Whitepaper-toekomst
 
20081126 Hands On Presentatie Bram
20081126 Hands On Presentatie Bram20081126 Hands On Presentatie Bram
20081126 Hands On Presentatie Bram
 
20081126 Hands On Presentatie Bram
20081126 Hands On Presentatie Bram20081126 Hands On Presentatie Bram
20081126 Hands On Presentatie Bram
 
Dutch Industry Experience - Whitepaper Jan Baan
Dutch Industry Experience - Whitepaper Jan BaanDutch Industry Experience - Whitepaper Jan Baan
Dutch Industry Experience - Whitepaper Jan Baan
 
Gemeente Arnhem Case Study
Gemeente Arnhem Case StudyGemeente Arnhem Case Study
Gemeente Arnhem Case Study
 

More from Lucas Jellema

Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Lucas Jellema
 
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Lucas Jellema
 
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lucas Jellema
 
Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...Lucas Jellema
 
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...Lucas Jellema
 
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...Lucas Jellema
 
Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!Lucas Jellema
 
IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)Lucas Jellema
 
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Lucas Jellema
 
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Lucas Jellema
 
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...Lucas Jellema
 
Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Lucas Jellema
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...Lucas Jellema
 
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Lucas Jellema
 
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Lucas Jellema
 
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...Lucas Jellema
 
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Lucas Jellema
 
Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)Lucas Jellema
 
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Lucas Jellema
 
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Lucas Jellema
 

More from Lucas Jellema (20)

Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...
 
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
 
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
 
Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...
 
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
 
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
 
Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!
 
IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)
 
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
 
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
 
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
 
Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
 
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
 
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
 
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
 
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
 
Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)
 
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
 
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
 

Forms2Future in action for SaaS provider Connexys

  • 1. Forms2Future presentatie op OBUG 2010: Castle in the clouds – Building the Connexys SaaS application with Fusion Middleware Tijdens de OBUG 2010 conferentie op dinsdag 23 maart jl. in conferentie centrum Papendal was 'Forms2Future' een van thema's, zowel in de presentaties als op de expositie. Dit thema betreft niet uitsluitend over Forms - het beschrijft in het algemeen een omgeving met klassieke Oracle ontwikkel- technologie en bijbehorende applicaties, werkmethodes en medewerkers in organisaties die op de toekomst willen inspelen. De toekomst voor deze organisaties omvat verschillende uitdagingen en mogelijkheden. Bijvoorbeeld nieuwe wensen van de business - en de eis om een kortere time-to-market te realiseren voor toekomstige nieuwe wensen, nieuwe gebruikersgroepen en nieuwe kanalen waarlangs applicatie-functionaliteit moet worden aangeboden. En ook een verdergaande integratie binnen de organisatie - koppelingen tussen systemen, bruggen tussen technologieën - en tussen de organisatie en business partners en overheidsinstanties. De presentatie van Arne van den Ing (architect bij Connexys) en Lucas Jellema (technisch consultant bij AMIS) ging in op de reis die Connexys heeft gemaakt in het licht van een aantal van deze uitdagingen van een klassieke Oracle omgeving naar een op de toekomst voorbereide situatie. Deze reis omvat zowel technologie en applicatie als werkwijze en veel betrokken medewerkers en klanten. De Connexys- applicatie is een SaaS-applicatie (Software as a Service) die vanuit 'de cloud' door meer dan 150 organisaties wordt gebruikt. Dit stelt specifieke eisen aan de applicatie, ondermeer op het vlak van de dynamische aanpasbaarheid, het operationele beheer en de integratie (across the cloud). Het lijkt er overigens op dat veel van de voorzieningen die ten behoeve van het SaaS karakter van de applicatie zijn ontworpen eigenlijk in iedere applicatie van waarde kunnen zijn.
  • 2. Figuur: Gepersonificeerd Dashboard voor de Connexys NextGen applicatie Dit artikel geeft een beeld van de presentatie van Arne en Lucas - achtereenvolgens van de uitgangssituatie bij Connexys, de keuzes die zijn gemaakt en de overwegingen daarbij, de belangrijkste elementen in het "NextGen project" en de specifieke voorzieningen die voor 'customization' en 'cross- cloud service ontsluiting' van SaaS applicaties ontworpen zijn. Connexys - een paar jaar geleden Aan het begin van het decennium startte Connexys met een browser gebaseerde applicatie die Werving & Selectie en HRM-processen ondersteunde voor kleinere en vooral grotere organisaties. In een paar jaar bouwt Connexys een groot marktaandeel op met ruim 100 klanten en superieure functionaliteit. Figuur: Screenshot van Connexys OldGen - de applicatie van voor 2008
  • 3. Dan doet de wet van de remmende voorsprong zich gelden: nieuwe partijen in de markt bieden visueel rijkere, modernere applicaties en verleiden daarmee nieuwe klanten. Andere aandachtspunten voor Connexys zijn de groeiende kosten van implementaties, de inspanning voor het onderhoud van de vele klantspecifieke aanpassingen en het te beperkte vermogen snel nieuwe functionaliteit te realiseren. Het marktaandeel van Connexys groeit niet meer en het bedrijf staat voor een belangrijke keuze: de bestaande applicatie handhaven, verder uitmelken en een langzame maar zekere teruggang accepteren of de applicatie en de organisatie moderniseren en het leiderschap in de markt terugpakken en uitbouwen. Dat laatste scenario vergt actie en een substantiële investering. De directie van Connexys is niet toe aan de rol van Cash Cow en op termijn een nachtkaarsscenario. Er wordt besloten tot het NextGen project dat de toekomst zal binnenhalen. Het NextGen project Het uitgangspunt voor Connexys is een deels met de Oracle Designer WebServer Generator gegeneerde PL/SQL applicatie - op basis van de Web PL/SQL Toolkit die vanuit de Oracle Database met behulp van het HTP package en de MOD_PLSQL module voor Apache HTML pagina's oplevert. De applicatie is in de loop der jaren enorm verrijkt, middels handmatige aanpassingen op de gegenereerde code. Het fundament van de applicatie wordt gevormd door een solide data model en een laag die bedrijfsregels en data integriteit afdwingt met triggers en packages. Een dozijn medewerkers werkt aan het ontwerp, de ontwikkeling en het beheer van de applicatie. Keuzecriteria voor de technologie die voor NextGen werd geselecteerd waren met name:  functionaliteit - kan de stack de functionele (en vele non-functionele) eisen implementeren  productiviteit - is de ontwikkeling van toekomstige functionaliteit mogelijk binnen tijd en budget  time to market & flexibiliteit - biedt de stack voldoende 'agility'? Kan nieuwe functionaliteit snel ingepast en bijgebouwd worden  licentiekosten - de directe out-of-pocket kosten voor het inzetten van de stack  haalbaarheid voor team - in hoeverre kan het bestaande team van ontwikkelaars en beheerders maar ook ontwerpers, testers en andere betrokkenen, de stack adopteren binnen redelijke termijn en tegen redelijke kosten Daarnaast was een uitgangspunt dat de bestaande Oracle database ook de nieuwe applicatie zou gaan bedienen - ondermeer omdat gedurende een overgangsperiode zowel OldGen als NextGen actief zouden zijn. Het selectietraject, waarin ondermeer naar Open Source Java en .Net oplossingen werd gekeken, resulteerde in een keuze voor Oracle's ADF framework. Om grotere productiviteit en een vlakkere leercurve voor het ontwikkelteam te bewerkstelligen werd JHeadstart ingezet als extra ontwikkelgereedschap. Ook werd de kracht van de database nadrukkelijk ingezet: bij gelijke geschiktheid werden operaties met behulp van SQL en PL/SQL gerealiseerd in plaats van ten alle tijde Java in te zetten.
  • 4. Figuur: van oude architectuur naar de nieuwe NEXTGEN situatie Connexys beoogde twee belangrijke doelstellingen met het NextGen project. Allereerst de ontwikkeling van een applicatie die de leidende marktpositie zou herbevestigen en voor de toekomst zeker stellen. Direct daaraan gekoppeld en voor het bestendigen van het succes net zo belangrijk de ontwikkeling van de hele organisatie - van ontwikkelaar tot secretaresse was op een of andere manier bezig met of op zijn minst bewust van NextGen - en ook de klanten die al in een vroeg stadium werden geïnformeerd over het project en konden meedenken over de functionaliteit en het uiterlijk van de applicatie. Connexys zocht een externe partij aan om de reis naar de toekomst te helpen plannen en daarna achtereenvolgens als gids/reisleider, reisgenoot en uiteindelijk steunpunt te fungeren. Enthousiasme- en kennisoverdracht leidend tot zelfstandigheid van de eigen medewerkers waren de sleutel voor succes. Rijke functionaliteit De NextGen applicatie is aantrekkelijk en plezierig intuïtief om mee te werken. Klanten moeten vroeg in salescycli in een oppervlakkige kennismaking geïnteresseerd raken. En vervolgens bij nadere beschouwing en toetsing door kandidaat-eindgebruikers maar met name in het dagelijkse gebruik moet de applicatie functioneel rijk zijn, taak- en procesgericht zodat gebruikers zonder steile leercurve of veel zoeken doelgericht en productief hun werk kunnen doen. Rijke web-applicaties van verschillende leveranciers zoals SalesForce.com inspireerden het ontwerp van NextGen. De basis voor het ontwerp werd gevormd door een user interaction design - een consistente beschrijving van de meest voorkomende acties en interacties in de applicaties met antwoorden op vragen als: welke stappen zet een gebruiker, wat zijn de mogelijke keuzes op ieder punt in de applicatie, welke informatie heeft de gebruiker nodig om een actie te initiëren. Dit ontwerp omvat de structuur van applicatie-pagina's en de vaste interactie-gebieden - zoals tabs voor modules (1), broodkruimelspoor voor de flow binnen een module (2), navigatie-historie voor (short-cuts naar) de recent bezochte kandidaten, vacatures en contactpersonen (3), knoppenbalk voor transactie controle (Opslaan, Opslaan & Specifieke vervolgactie en Annuleren) en navigatie door gegevensset (4) en het wellicht meest opmerkelijke onderdeel: de relevante acties (5).
  • 5. Figuur: de vaste interactie-gebieden in het NextGen interaction ontwerp De applicatie kent geen globaal menu zoals we dat van oudsher in veel applicaties tegenkomen. In plaats daarvan wordt in NextGen op iedere pagina in de 'Acties-box' een lijst van acties (hyperlinks) getoond die op dit moment beschikbaar zijn. Op basis van de huidige pagina, de huidige gebruiker (rechten) en het huidige record (status) wordt door de applicatie aan een PL/SQL gebaseerde workflow engine gevraagd welke operaties beschikbaar zijn. Dit dynamische lijstje vormt voor gebruikers een heel intuïtieve manier om snel de meest voor de hand liggende actie in het kader van een logisch samenhangende workflow (die door de klanten zelf kan worden ingericht) uit te voeren. Daarnaast wordt de look & feel - de stijl, kleursamenstelling, icoongebruik - vastgelegd in dit interaction design. Kenmerken van SaaS applicaties NextGen is een applicatie die wordt aangeboden via het SaaS model (Software as a Service). Dit model kent een aantal karakteristieken en uitdagingen waarmee bij het ontwerp en de bouw nadrukkelijk rekening moet worden gehouden. Er is sprake van een 'single instance' van een standaard applicatie die door veel gebruikers binnen meerdere (bij Connexys meer dan 150) klantorganisaties wordt gebruikt. SaaS applicaties draaien binnen een centrale en centraal beheerde infrastructuur en zijn (nagenoeg) 24/7 beschikaar, zeker bij internationaal gebruikte applicaties. De applicatie wordt aangeboden via een web browser. Het licentie- model is gebaseerd op gebruik - zowel hoeveelheid gegevens en transacties (diepte) als de gebruikte modules en afgenomen functionaliteit (breedte). Service Level Agreement leggen de gegarandeerde dienstverlening vast - zoals beschikbaarheid en reactie-snelheid van de applicatie. We bespreken twee specifieke aandachtspunten voor NextGen als gevolg van deze SaaS karakteristieken:
  • 6. klanten en eindgebruikers willen een applicatie die naadloos aansluit bij hun werkelijkheid; ze willen weliswaar een standaardapplicatie uit oogpunt van ondermeer kostenoverwegingen, beheerefficiency en toekomstzekerheid, maar ook een die voelt als 'eigen', bijvoorbeeld doordat eigen terminologie wordt gehanteerd (kandidaat dan wel sollicitant dan wel reflectant, belangstellende, gegadigde), het menu en de workflow naar eigen inzicht kunnen worden ingericht en doordat validaties, bedrijfsregels, veld-verplichtheid naar eigen inzicht kunnen worden gedefinieerd.  organisaties werken aan de integratie van hun systemen en applicaties, veelal op basis van services en soms ook events; SaaS applicaties maken dan wel niet fysiek deel uit van het IT landschap van de gebruikende organisatie, ze zijn logisch gezien volstrekt vergelijkbaar met de applicaties die wel on-site beheerd worden -zowel standaard als maatwerk applicaties. De integratie en service-gebaseerde ontsluiting betreft dus ook de SaaS applicaties. Dynamische Aanpasbaarheid Voor klanten van de Connexys applicatie is de mogelijkheid om wat in essentie een standaard-applicatie is - en zelfs een single, shared instance van die applicatie - aan de eigen wensen en omstandigheden aan te passen een belangrijke eis. NextGen voorziet daarin op een aantal terreinen, zoals workflow- configuratie, menu-inrichting, boilerplate tekst zoals prompts en error-teksten en flex-velden . Deze hebben qua technische implementie een overeenkomst: meta-data voor de klant-specifieke uitbreidingen/aanpassingen is vastgelegd in de database. Java applicaties gebruiken meestal file-gebaseerde resource bundles waarin de teksten zoals prompt, hint, titel, menulabel, domeinwaarden en foutboodschap zijn vastgelegd in mogelijk meerdere talen. Deze teksten kunnen niet eenvoudig worden aangepast en wijzigingen vereisen een herstart van de applicatie. De NextGen applicatie maakt gebruik van resource bundles die in de database worden onderhouden, dynamisch kunnen worden aangepast en per klant overschreven kunnen worden. Hiermee kunnen organisaties iedere schermtekst naar eigen inzicht aanpassen via een speciaal beheerscherm in de applicatie. Een andere geavanceerde voorziening in de NextGen applicatie biedt klanten de mogelijkheid om velden uit te schakelen - onzichtbaar te maken voor gebruikers omdat ze geen relevantie hebben voor de bedrijfsprocessen van die klant - of toe te voegen. NextGen bevat velden voor de meestvoorkomende attributen van de business objecten. Veel klanten hebben niet de behoefte aan ál die eigenschappen - en willen de schermen versimpelen door de overtollige standaard-elementen uit te schakelen - en sommige klanten hebben behoefte aan aanvullende attributen voor specifieke aspecten in hun eigen manier van werken. Beide wensen worden door de applicatie ondersteund via voor de applicatiebeheerder van een klant zelf toegankelijke beheerschermen binnen de applicatie.
  • 7. Figuur: dynamisch applicatiebeheer - bewerken, verbergen en toevoegen van velden Het gebruik van JavaServer Faces (ADF Faces) voor de user interface maakt het betrekkelijk eenvoudig om op dynamische wijze, gestuurd door meta-data in de database, velden weg te laten dan wel toe te voegen. Vrijwel alle eigenschappen van schermelementen kunnen in JSF met dynamisch geëvalueerde EL expressies worden gedefinieerd, zoals bijvoorbeeld: <af:inputText id="NationaliteitKandidaat" rendered="#{klantContext['kandidaat_nationaliteit'].enabled}" /> Wolk-waardige Integratie Een SaaS applicatie moet kunnen integreren met ondermeer de Enterprise Service Bus van haar gebruikers - door het aanbieden van een WebService API die dezelfde operaties ondersteunt als de User Interface en door het consumeren en publiceren van business events. En bijvoorbeeld ook door de mogelijkheid te bieden aan klanten om services te registreren bij de SaaS applicatie die kunnen worden aangeroepen voor het uitvoeren van ondersteunende acties zoals het versturen van emails, het uitvoeren van complexe, klantspecifieke validaties of het in batch uitprinten van rapportages of brieven.
  • 8. Figuur: SOA across the cloud - integratie tussen de SaaS applicatie en de klant-omgeving De figuur laat zien hoe de SaaS klant verschillende diensten kan 'injecteren' in de SaaS applicatie om te bijvoorbeeld te verzekeren dat haar eigen email en fax voorzieningen worden benut voor de communicatie met kandidaten en zakelijke partners. Daarnaast publiceren de SaaS applicaties business events - zoals nieuwe kandidaat is vastgelegd of kandidaat heeft een aanbieding geaccepteerd, die door de systemen van de klant kunnen worden opgepikt. Daartoe kunnen listeners (web services) geregistreerd worden bij de SaaS applicatie die zullen worden aangeroepen als het event zich voordoet. Andersom kan ook de SaaS applicatie listeners bevatten voor events die door de klant gemeld kunnen worden - bijvoorbeeld onmiddellijke vacature stop. Andere faciliteiten zijn meer op de integratie van user interfaces gericht. Gebruikers van de NextGen applicatie maken ook gebruik van andere applicaties. Idealiter kan een gebruiker van de ene applicatie rechtstreeks navigeren naar de andere: deeplink navigatie die de gebruiker naar de juiste context brengt van relevant scherm en het juiste record. Zulke navigatie zou ook uit workflow-systemen en todo-takenlijstjes van de SaaS klanten kunnen plaatsvinden. Ook front-end integratie, bijvoorbeeld door integratie van de SaaS applicatie in het intranet (portaal) van de SaaS afnemen is veelal gewenst. Daartoe kan de SaaS leverancier overwegen onderdelen van de applicatie als Portlets aan te bieden die op deze manier geabsorbeerd en visueel geïntegreerd kunnen worden.
  • 9. Conclusies Connexys heeft haar doelen gerealiseerd: het marktaandeel stijgt weer. Het klantverloop is gestopt, een hoog percentage van sales-cycli wordt gewonnen en eerdere weggelopen klanten komen zelfs weer terug. De klanttevredenheid is gestegen tot ruim boven de scherp gestelde doelen en de implementatietrajecten duren kort: het up & running krijgen van nieuwe klanten vergt slechts een paar dagen, zelfs als er klantspecifieke aanpassingen moeten worden gerealiseerd. Het ontwikkel- en beheerteam is inmiddels volledig zelfstandig bezig met de technologie en de analisten en implementatie consultants maken gretig gebruik van alle mogelijkheden die de nieuwe technologie en applicatie- voorzieningen hen bieden om nieuwe functionaliteit te specificeren. De reis is niet een eenvoudige geweest - een kleine twee jaar tussen eerste gedachtevorming en overzetten van de laatste klanten, een forse investering, een aantal teleurstellingen gaandeweg het traject - maar blijkt nu wel de moeite waard geweest. Overigens beschouwt Connexys de huidige siuatie zeker niet als eindpunt maar als tussenstation in een voortdurende reis op weg naar een mooiere toekomst. Meer informatie over Connexys, het NextGen project en de samenwerking met AMIS kan je navragen bij info@connexys.nl en vinden via http://www.connexys.eu. De presentatie op OBUG die de aanleiding vormt voor dit artikel kan je terugzien op: http://www.slideshare.net/lucasjellema.