Follow Us on Twitter

Integratie van Cloud en On Premise applicaties

Juni 2016 - Tegenwoordig kiezen steeds meer bedrijven ervoor om één of meerdere van hun bedrijfsapplicaties in de Cloud te plaatsen. Dat wil zeggen bij een bedrijf wat deze applicatie als dienst in een webpagina aanbiedt. Dit heeft als voordelen dat je als bedrijf geen dure eigen server(s) meer hoeft te hebben, vaak voldoende hebt aan een lichte Client computer die overal vandaan bij de applicatie kan, geen dure licenties vooruit hoeft te betalen, en je applicatie en servers naadloos kunt laten opschalen of downsizen al naar gelang de behoefte. Hierbij wordt meestal een all-in bedrag per maand betaald voor de geleverde service, wat beter is voor de cashflow van je organisatie. Zie ook het Whitebook van Laurens van der Starre over de ICS.

Afgezien van het feit dat het bedrijf misschien een drempel over moet om zijn data buiten de deur te durven plaatsen, zijn er in bovengenoemde situatie alleen maar voordelen. Zeker zolang het om één applicatie gaat, die verder nergens mee hoeft samen te werken. Whitehorses zelf gebruikt naar alle tevredenheid Office 365 in de Cloud. Dat werkt prima tegen een vast bedrag per medewerker per maand en heeft geen connecties met andere systemen nodig.

Maar wat nu als de in de Cloud geplaatste applicatie, bijvoorbeeld een boekhoudprogramma, moet samenwerken met een urenschrijf-applicatie die zich ook in de Cloud bevindt, of dat deze bij het bedrijf zelf (on-premise) staat? Is er dan toch een manier om deze applicaties te laten samenwerken? Jazeker zullen wij als doorgewinterde Oracle- mensen zeggen: dan zet je de Oracle Service Bus (OSB) of de SOA suite in. Daarmee kun je letterlijk alle systemen gegevens met elkaar laten uitwisselen, van legacy Cobol-systemen tot Oracle Enterprise Business suite tot de modernste Cloud services. Deze producten komen echter met stevige licentiekosten, en hebben zelf ook weer servers nodig om op te draaien. Nu biedt Oracle echter ook sinds enige tijd de mogelijkheid om een soort van OSB in de Cloud te draaien. Dit heet Oracle Integration Cloud Service (ICS).

Het wordt nu wel wat lastig om door de bomen het bos te zien. Het doel van dit Whitebook is om aan te geven wat je wanneer het beste in kunt zetten en de basis te laten zien van hoe je dat met ICS kunt doen. Over wat je allemaal met de OSB kunt doen bestaat al heel veel informatie op het internet, dus dat wordt niet herhaald.

Mogelijkheden

Optie 1

Als je uitsluitend applicaties in de Cloud gebruikt, is mijn advies om dan ook Integration Cloud service in te zetten om deze applicaties met elkaar te verbinden. Alle bovengenoemde voordelen van Cloud services gaan dan op, en wat daarbij komt is: ICS biedt al heel veel adapters voor bestaande Cloud services, zie de volgende lijst:

Oracle RightNow Cloud, Integration Cloud Service Messaging, MailChimp, Oracle Sales Cloud, Evernote, MySQL, Oracle Messaging Cloud Service, Facebook, Responsys, Oracle Eloqua Cloud, File, SAP, Oracle HCM Cloud, FTP, Oracle Commerce Cloud, Salesforce, Gmail, Oracle Database, Oracle ERP Cloud, Google Calendar, Oracle E-Business Suite, SOAP Adapter, Google Task, Oracle Field Service, REST Adapter, JMS, Oracle Siebel, NetSuite Adapter, LinkedIn, SurveyMonkey, Integration Cloud Service Messaging, Microsoft Calendar, Twilio, Adobe eSign, Microsoft Contact, Twitter, DocuSign, Microsoft Email, Responsys, Eventbrite, Microsoft SQL Server

Iedere 3 maanden wordt er een nieuwe versie van ICS door Oracle uitgerold waar weer een flink aantal nieuwe adapters in zitten. Met name E-business Suite en SAP zijn belangrijke adapters, omdat die vaak ook voorkomen in grotere bedrijven. Ik mis wel adapters voor Microsoft Dynamics en Exact, maar zeker de laatste is natuurlijk erg Nederlands en relatief klein. De koppelingen met deze adapters kunnen heel eenvoudig gemaakt worden, ik zal daar straks een voorbeeld van geven.

Nadelen zijn er ook: als de koppelingen complexer worden, loop je tegen beperkingen aan en neemt de productiviteit af ten opzichte van een volwaardige IDE als Eclipse, omdat je bij de ICS steeds door een soort wizards heen gaat om dingen voor elkaar te krijgen, en het gaat wat minder snel omdat je op het web werkt.
Wanneer je naast de Cloud producten ook één of meerdere on-premise applicaties gebruikt, kun je wel tegen problemen aanlopen. ICS is vooral goed in het aanroepen van andere services, en kan niet zelf zomaar de data uit je Oracle database of je AS/400 systeem halen. Daarvoor is gelukkig wel een oplossing voorhanden in ICS: Adapters. Deze worden beschreven in optie 2.

Optie 2

Optie 2 is een systeem bestaande uit Oracle ICS aangevuld met agents om te verbinden met on-Premise applicaties. Waar dit op neerkomt is dat er on-Premise een Agent wordt geïnstalleerd, die je kunt zien als een soort mini-OSB, die enerzijds zorgt voor een veilige tunnel door je firewall heen naar Oracle ICS, en daarnaast de diverse adapters (file-, ftp-, db) bevat om alle soorten applicaties aan te spreken.

Optie 3

Optie 3 is, zoals in onderstaand plaatje getoond, een hybride systeem bestaande uit ICS aangevuld met een on-premise SOA/OSB omgeving om de Cloud -applicaties optimaal met de interne systemen te koppelen en de interne applicaties optimaal en snel met elkaar te verbinden zonder het interne netwerk te verlaten. Deze hybride opzet is goed toepasbaar wanneer er diverse interne applicaties zijn en gebruikt blijven worden, die aangevuld worden met in-Cloud systemen.

Hybride ICS met on premise OSB/SOA

Optie 4

Optie 4 is de Oracle SOA Suite, eventueel gecombineerd met de OSB, on-premise inzetten. Dit is het meest logisch wanneer het overgrote deel van de applicaties on-premise draait, en wordt aangevuld met een of enkele applicaties in de Cloud. Je benut dan de voordelen van het snelle interne netwerk, hebt geen last van firewall/connectiviteit- en autorisatieproblemen bij het koppelen van de interne applicaties, en kunt vanuit die SOA/OSB omgeving natuurlijk ook prima Cloud services aanroepen of eigen services vanuit de Cloud laten aanroepen.

Hoe maak je nu zo'n koppeling in Oracle ICS

Ik heb wat screenshots gemaakt terwijl ik de koppeling maakte tussen een Oracle RightNow- en een Oracle Sales Cloud omgeving. Log aan op de Oracle Integration Cloud omgeving en kies vervolgens voor de Designer omgeving, je komt dan in het volgende scherm:

De belangrijkste twee functies staan links bovenaan: Connections en Integrations. Met Connections definieer je een adapter naar een omgeving, en met Integrations koppel je deze omgevingen aan elkaar en definieer je routeringen en transformaties.

In het dashboard kun je zien of je je integratie al uitgerold hebt en worden eventuele fouten getoond, met lookups kun je lijsten van waarden definiëren (bijvoorbeeld landcodes of geslacht), met packages kun je sets van integrations importeren en exporteren (ook voorgedefinieerde sets van Oracle) en met agents kun je on-premise applicaties benaderen door middel van een data-tunnel gecombineerd met on-premise adapters om databases en filesystemen aan te spreken (zie bovenstaande optie 2).
Eerst heb ik de 2 connecties gemaakt: klik op de gele button, en vervolgens op de 'create new Connection' button.

De Rightnow adapter geselecteerd:

RightNow adapter

Bij "connection name" heb ik "Oracle Rightnow emjeve" ingevuld (om de naam uniek te houden), de velden "identifier" en "Version" worden automatisch gevuld, en blijven ongewijzigd. Klik vervolgens op "Create". Geef een administrator email adres op, vul daar je eigen adres in. Geef bij "configure connectivity" aan waar je naartoe wil verbinden. Hier heb ik een geldige Oracle Rightnow URL ingevuld, inclusief het bijbehorende username en password. Klik vervolgens op de "test" button. Als het goed is zie je "Connection tested succesfully" (linksboven, zie plaatje), rechtsboven zie je ook dat de progress indicator 100% is, dus hij is klaar.

Connection test

Druk vervolgens op "save" en "exit". Adapter 1 is nu klaar. Maak op dezelfde manier adapter nummer 2 met de volgende waarden:

  • Oracle Sales Cloud adapter
  • Naam "Oracle sales Cloud emjeve", "identifier" en "version" ongewijzigd.
  • email adres weer eigen adres opgegeven en, een Oracle Sales Cloud url bij "Configure connectivity".
  • Voor "osc events catalogue" hoef je niets op te geven.
  • Bij "configure credentials" het bijbehorende username en password opgegeven.
  • Connectie succesvol getest, opgeslagen en scherm verlaten.

Er zijn nu twee adapters voor 2 systemen. Nu worden ze met elkaar verbonden door het definiëren van een "Integration flow" tussen de Oracle Sales Cloud en de Oracle Rightnow Cloud. Kies voor de blauwe "Integrations" knop en vervolgens "create new integration" en "map my data":

Integration flow

Geef voor "Integration name" de waarde "Haal Rightnow incidenten op" op, en laat de overige default waarden ongewijzigd, en kies voor "create integration".

Create integration

Trek vervolgens vanuit de "connections" kolom de "Oracle sales Cloud" adapter naar de "trigger/source area" en geef op de "basic info page" de volgende waarden op:

  • "what do you want to call your endpoint?" -> "Request"
  • "What does this connection do?" -> "Ontvang aanroepen van OSC om incidenten op te halen uit Rightnow voor een Account ID"

Geef op de "request configuration page" de volgende waarden aan:

  • "Configure a request" -> "With business Objects" (standaard radio button keuze)
  • "Select Business Object" -> "Selecteer Account object"

Dan ziet de pagina er als volgt uit:

Request configuration page

De response configuration page vul ik als volgt in:

Response configuration page

Vervolgens klik je op "done":

Summary endpoint configuration

De integratie ziet er dan als volgt uit:

Integration overview

Voeg de tweede adapter toe door de Oracle Rightnow adapter naar de "Invoke/Target area" te trekken:

Tweede adapter toevoegen

Kies "response" voor de endpoint naam en "Verzendt een aanroep naar Rightnow om de incidenten op te halen" voor de functie.

  • "operation mode" -> "Single operation"
  • "operation type" -> "ROQL"
  • "ROQL query" -> "select incident from incident where incident.organization.id=&orgid"

Response mapping

Geef voor orgid een getal op en test de query. Als de test succesvol is, krijg je de resultaten te zien, gaat het fout, dan krijg je een foutmelding te zien en kun je de query aanpassen om hem wel werkend te krijgen. Controleer vervolgens de "summary" en klik op "done". Het begin- en eindpunt is nu aangegeven, het is nu tijd om de mapping van de velden te gaan definiëren. Klik op de "Request mapping" button om de mapper op te roepen:

Request mapping

Map "Process>Account>Partyid" op "QueryObjects>QueryObjectParameters>orgid"

Mapping maken

Sla de mapping op en druk op "exit". De mapping wordt groen om aan te geven dat hij goed is gedefinieerd. Druk nu op "response mapping":

Klik in de "target kolom" op "ICS_CrmCommonRefCO" om de "mapping builder" op te roepen. Klap XSL elements uit:

Mapping builder

Sleep het "for each" element op de "ICS_CrmCommonRefCO"

Mapping builder

De tekst wordt nu aangevuld met de zin "Drag and drop or Type her. For select"
Aan de linkerzijde van de mapping builder kan ik nu de bron sectie openklappen en QueryObjectsResponse op het rechter gedeelte van het schem slepen.

Het statement ziet er nu zo uit:

Mapping statement

Sla op en sluit het scherm af.

Vervolgens map ik het QueryObjectsresponse>Incident>ID>id veld op processResponse>ICS_CrmCommonRefCO>id, klik op save, en verlaat de mapper.
De integratie ziet er nu zo uit:

Integration overview

Ik configureer de "Business Identifier for Tracking" (het identificerende veld om een bericht te volgen) als volgt: ik klik op "tracking" bovenaan het scherm, klap het process>Account element open van de beschikbare bronvelden. Ik sleep vervolgens het "PartyId" naar de "Tracking Field" kolom en geef een waarde op voor de naam van het tracking veld: Party ID.

Het scherm ziet er dan als volgt uit:

Business identifier for tracking

Klik op "done", sla het scherm op, en verlaat het scherm.

Zoek de flow op en activeer de integratie. Je krijgt nu een bevestigingsscherm wat vraagt "Are you sure you want to activate integration <integratienaam>". Ik selecteer de "Enable detailed tracing" optie en klik dan op activeer om te bevestigen.

Nu is de integratie gereed.

Als je op "information" klikt (rechtsboven), krijg je een scherm te zien met informatie over de service. Deze bevat de URL van de service. Deze kan gebruikt worden om de integratie te testen met SoapUI.

Ik heb in SoapUI een project aangemaakt met de url, basic authentication toegevoegd met de username en password van mijn eigen Oracle ICS-omgeving, deze toegevoegd aan mijn request als wss username token, en toen kon ik de integratie gaan testen!

Conclusie

Zoals je in bovenstaande handleiding hebt kunnen zien kun je vrij eenvoudig, middels begrijpelijke dialogen integraties bouwen in ICS. Ook vrij ingewikkelde transformaties of if-then-else structuren zijn allemaal te bouwen. Je wordt daarin niet snel beperkt, hoogstens wat in snelheid door de wizard-structuur. Met name in de combinatie met een communication Agent is in een eenvoudige opzet snel integratie tussen verschillende Cloud- en on-Premise systemen te realiseren, zowel voor definitieve oplossingen, maar ook voor overgangssituaties en Proof of concepts.

Afhankelijk van het zwaartepunt van het toekomstige applicatielandschap (on-premise of in de cloud), en of er reeds een on-premise OSB draait kan een keuze worden gemaakt uit bovengenoemde vier opties.

Referenties

Waardering:
 

Reacties

Nieuwe reactie inzenden

De inhoud van dit veld is privé en zal niet openbaar worden gemaakt.

Meer informatie over formaatmogelijkheden

CAPTCHA
Deze vraag is om te testen of u een persoon bent en om spam te voorkomen
Image CAPTCHA
Enter the characters shown in the image.