Doorgaan naar hoofdcontent

Posts

Er worden posts getoond met het label ESB

WSO2 ESB - Design for testability

Introduction Testability is one of the underestimated qualities of software. This is also the case for WSO2 ESB projects. However it is important to design the integrations for testability and this starts with the way you setup the proxies. This blog gives some guidelines which you can use to design for testability. Sequences Sequences are a way in WSO2 to group Mediators. A proxy has by default an in-Sequence, out-sequence and optionally an error-sequence. These sequences can be split up in sub-sequences and this is a good way for reuse, but also a way to split up the design. A proxy usually contains the following functional parts: Validation Transformation Sending to an endpoint   These parts can be put in separate sequences. This has the advantage that the part scan be reused in other proxies. This is also the way to enable testing for these parts.  Design for testability The sequences are the basis for the testability of WSO2 ESB pr...

WSO2 ESB 5.0.0: Data Mapper

One of the features i missed within the WSO2 Developer Studio was a data mapper. We had to write our own XSLT or PayloadFactory within the product. But everything is going to change with the release of ESB 5.0.0 ! Or is it ? .... There is a first blog item on the datamapper that i read and tried: https://nuwanpallewela.wordpress.com/2016/04/10/how-to-use-wso2-data-mapping-mediator-in-esb/ A very good blog indeed. However when i tried the new developer studio, i was somehow disappointed. I am positive about the fact that the Mapper is a real resource (even project) now. But i miss a lot of features (like for example XPath functions, if-then-else-construct, constraints) within the mapper. As you can see from the picture below, only the following operators are supported: Concat Split LowerCase UpperCase And when you investigate the generated project files, you will notice that JScript? is generated to do the actual mapping. So my first impression is disappoin...

Kabisa ESB

Today i came accross an ESB of Kabisa ICT . They have a produkt called Kabisa ESB . This is a short blog item just to write down what i came to know about this ESB. Well first of all it is based on Apache Camel (for routing and mediation) and Apache Service Mix . Service Mix is an implementation of JBI (Java Business Integration) standard. On top of that Kabisa has made a graphical designer (FlowDesigner) to integrate your systems and to setup complex workflows and data streams. No more information on the site w.r.t FlowDesigner, so i asked for documentation. Hope to blog on this tool more soon ....

Cordys: The ESB

I sometimes hear that Cordys is only a BPM tool. This blog item describes the ESB of the Cordys platform, also known as the SOA Grid. Introduction The BPM layer of Cordys is built and runs on the SOA grid of the BOP4 platform. This SOA Grid is the integration ESB of Cordys. It also has, like other ESBs, adapters to files, webservices, databases etc. It has transformation logic. It is all on board but maybe somewhat hidden because it is integrated within the platform. All components are services and run on the SOA Grid. It also uses maybe somewhat other terms you are already familiar with, like Service Groups, Service Containers, Application Connectors. Service Messages SOAP Messages over http are used to transfer service messages. Calling a service is done by sending a soap request. The soap messages arrives at the webserver (Apache or IIS) and there the user is authenticated. The message is sent to the Cordys Web Gateway. There the message is transferred to a Service Contai...

SOA Service Design Principles by example

First some context I a project i had to couple a PeopleSoft system with Planon. PeopleSoft is a HRM system used to store information about employees (in this case) and Planon is a facility management tool so that employees can order facilities. When a employee is employed within the company, this employee has to added to the HRM system and this employee has to be authorised within the Planon system. In the past this synchronization was done (as you see often) through a CSV file. In the new architecture this kind of synchronization has to be done through a ESB (Enterprise Service Bus). In this case the Oracle Service Bus. Service Naming I wanted to add a new Service for this, so the first thing you do it to come up with a Service Name. A couple of mistakes you often see is: * The name is the same as the project name. This is of course not done, because in a couple of months this name is forgotten and has nothing to with the functionality of the service at all (most of the time)....

Afhandeling SOAP faults in ESB

Ik had laatst een interface specificatie gemaakt met WSDL met operaties die een soap fault terug kunnen geven. Deze wil ik afvangen in de ESB (10.1.3). Eerst de WSDL code: De provider van de webservice zal een soap fault retourneren met het element in het element van de soap fault: Vervolgens kun je in JDeveloper in de Routing Service de fault en reply van de service afhandelen: Vooral het feit dat de in het element moet staan is belangrijk en was even wat uitzoekwerk.

SOA De Hype Voorbij?

Voor mijn werkgever ben ik bezig met de implementatie van een ESB dat als basis zou moeten gaan dienen voor een SOA Architectuur. Zoals te lezen in de Computable is dit eigenlijk niet direct de goede benadering. Dit is meer een bottom up benadering terwijl een meer top down benadering nodig is. In ieder geval vertikaal waarbij je begint bij de business functionaliteit (indiensttreding van een werknemer), en deze case verticaal implementeerd (BPM, EAI, Data). In ons project zijn we eigenlijk meer bezig met EAI met Messaging i.p.v. de "service" benadering. Messaging in een SOA omgeving Ik zal dit nader proberen uitleggen. Als voorbeeld neem ik de indiensttreding van een werknemer en om het voorbeeld eenvoudig te houden onderken ik slechts een paar stappen: 1) Invoer werknemer met NAW gegevens 2) Werknemer moet een IT account krijgen 3) Werknemer krijgt een kostenplaats binnen het financieel systeem In dit scenario spelen 3 systemen applicaties een rol: A) Systeem invoer werkne...

Oracle SOA Suite: Adding a custom XSL Function to ESB

Sometimes you need a function within the XSLT that is not available within the standard XPath/XSLT functions or within the Oracle extensions, so you have to make an extension. This post explains how this can be done (within 10.1.3.x). 1) Create Java class that implements the extension function. You must inherit from IXPathFunction. Note: To be able to test your function within JDeveloper you have to add the Orabpel.jar and Orabpel-common.jar libraries. 2) To be able to "see" the function within JDeveloper to have to create a extension function config file: Within JDeveloper go to "Tools - Preferences" and select XSL Maps. Browse to the config file and restart JDeveloper afterwards. Within the component view you can see the extension function: 3) Use within the XSL file. Add the namespace of the extension function: xmlns:ext="http://www.oracle.com/XSL/Transform/java/ .CizBase64Encoder" And then use with the XSL code: 4) Add to SOA Suite runtime. To be able ...

Common Data Model on ESB

This item is about a CDM a.k.a CMM (Common Message Model) on the Bus, why is it wise and how can it be done. First of all when you face a integration challenge the systems to be integrated are heterogeneous and use different data models (syntactically and semantically). So the data needs to be mapped from requester data to provider data. 1) Direct mapping, this results in n * m mappings (n=#requestors, m=#providers) and is very costly when a new provider or requester is added. 2) CDM, this results in n + m mappings A CDM gives you: Message consistency Message maintainability A CDM is a set of data representing the business entities used in all messages on the Bus. This does not mean that each provider or requestor uses the same set of messages but that the messages are all based on the same types. Possible implementations for CDM on ESB Option 1: ESB translates The requestor and provider keep their own models Only CDM is used on ESB Existing services do not have to be changed (especial...