Forms2Future in action for SaaS provider Connexys

9
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.

description

This article describes the history of the NextGen project at Dutch SaaS provider Connexys (www.connexys.eu). It outlines common challenges for SaaS applications - such as customization and cross-cloud-integration - and describes how these were addressed. The article brushes upon the technology used (Oracle Database, SQL/PLSQL, Oracle ADF (ADF BC, JSF/ADF Faces, JDeveloper, JHeadstart).

Transcript of Forms2Future in action for SaaS provider Connexys

Page 1: Forms2Future in action for SaaS provider Connexys

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.

Page 2: Forms2Future in action for SaaS provider Connexys

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

Page 3: Forms2Future in action for SaaS provider Connexys

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.

Page 4: Forms2Future in action for SaaS provider Connexys

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).

Page 5: Forms2Future in action for SaaS provider Connexys

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:

Page 6: Forms2Future in action for SaaS provider Connexys

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.

Page 7: Forms2Future in action for SaaS provider Connexys

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.

Page 8: Forms2Future in action for SaaS provider Connexys

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.

Page 9: Forms2Future in action for SaaS provider Connexys

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

[email protected] 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.