8 juni 2009

Een provisioning systeem met behulp van SOA

In opdracht van iunxi heeft Furore aan een project gewerkt voor een grote speler in de Telecom sector. Het betreft een Java B2B (business-to-business) maatwerk project, Provisioning System genaamd, waarmee een verscheidenheid aan diensten bij verschillende externe partijen besteld en onderhouden kan worden. Het project wordt gekenmerkt door een heterogene omgeving waar elke externe partij een eigen interface gedefinieerd heeft om hun dienst aan te bieden.

 

Met behulp van het backend systeem van de Telecom partij kunnen opdrachten samengesteld worden die een combinatie zijn van producten en diensten. De applicatie verwerkt deze opdrachten en maakt verbinding met de  externe partijen om een product of dienst te bestellen. Naast het bestellen van een nieuwe dienst kan een opdracht ook bestaan uit het wijzigen van een reeds bestelde dienst.

 

Omdat het bestellen van de verschillende diensten een sterk proces georiƫnteerd karakter heeft is gekozen om de processen in BPEL vast te leggen. Hierbij worden de verschillende diensten via SOAP web services aangeroepen. Een aantal externe partijen maken echter alleen gebruik van XML over HTTP. Hiervoor zijn speciale adapter SOAP web services geschreven om ze toch aan het BPEL proces te kunnen koppelen. Door het aanbieden van de verschillende onderdelen als een web service kunnen deze gemakkelijk hergebruikt en herschikt worden om zo hoofd te bieden aan de wisselende omstandigheden en eisen tijdens het ontwikkeltraject. Om het berichtenverkeer tussen externe partijen en het Provisioning Systeem robuuster en betrouwbaarder te maken is verder gebruik gemaakt van message queues via JMS.

 

De applicatie is gebouwd met behulp van een door Sun gesteund open source project genaamd OpenESB. Dit project biedt een platform dat uitstekend geschikt is voor zowel Enterprise Apllication Integration (EAI) als Service-Oriented Architecture (SOA) oplossingen.

 

Om er voor te zorgen dat de applicatie een goede performance levert, is er voor OpenESB’s Glassfish ESB en de meegeleverde BPEL implementatie gekozen. Glassfish ondersteunt server-clustering en Quality of Service met een robuustere applicatie als gevolg. De mogelijkheid om de BPEL processen grafisch weer te geven en het gebruik van een Service-Oriented Architecture resulteerde in een succesvol project.

 

Links:

 

OpenESB

https://open-esb.dev.java.net/

 

OpenESB BPEL

http://wiki.open-esb.java.net/Wiki.jsp?page=BPELSE

 

Glassfish

https://glassfish.dev.java.net/