Your SlideShare is downloading. ×
Forms2Future in action for SaaS provider Connexys
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Forms2Future in action for SaaS provider Connexys

958
views

Published on

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 …

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

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
958
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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