ei
2016/09/06
6 Sep, 2016

[Article] Cloud to Cloud Integration with WSO2 ESB Connectors

  • Kesavan Yogarajah
  • Software Engineer - WSO2

Table of contents



Applies to

WSO2 Enterprise Service Bus (WSO2 ESB) Version 5.0 and above
ESB tooling Version 5.0 and above
NetSuite Connector Version 1.0.1
Zuora Connector Version 1.0.1
Zuora SOAP Connector Version 1.0.2



Introduction

Choosing the right application and automating business processes by integrating them could give an enterprise a real competitive advantage. Many organizations try point-to-point integration to solve immediate and use case-specific integration needs, but they often end up with a tightly coupled spaghetti integration model. To avoid these complexities, WSO2 Enterprise Service Bus (ESB) provides a way to integrate the applications in a bus architecture model. It acts as the integration bus between these disparate applications and enables seamless integration between applications regardless of underlying technologies.WSO2 ESB provides numerous connectors to cater to the enterprise’s integration requirements to connect with various on-premise and cloud applications. With its dynamic tooling support, connectors provide a fast, easy, reliable, and affordable solution that meets an enterprise’s integration requirements.



Usecase

ABC Solutions is a company that provides cloud services with a subscription-based pricing model. ABC Solutions is using Zuora as its billing and subscription management engine for the cloud service. It also uses NetSuite as its online accounting software that provides core accounting functions, such as general ledger, accounts receivables, and accounts payable. As illustrated in Figure 1, they have a requirement to sync generated invoices from the Zuora to NetSuite to perform advanced revenue recognition for their growing business and to consolidate billing.

Figure 1



What is a connector?

ESB connectors are readymade ESB extensions that allow leveraging a third-party product's functionality and data from the ESB message flow. Connectors hide the technical complications and allow the developer to focus only on the respective business logic. There are 150+ connectors to connect with SaaS applications, legacy services, on-premise systems, and third-party cloud APIs available in the WSO2 store.



Tooling for connectors

WSO2 ESB 5.0.0 comes with tooling support that enables easy integration with just a few clicks and drag and drops (Figure 2).

Figure 2



Securing credentials

WSO2 ESB provides a secure vault implementation that allows you to store encrypted passwords, which are mapped to aliases. This means you can use the aliases instead of the actual passwords in your mediation configuration files and at runtime, the WSO2 ESB looks up aliases in the secure vault and decrypts the passwords. You can encrypt and store the passwords via the ESB management console (Figure 3).

Figure 3


When you’re creating the config files in ESB tooling, you can use the {wso2:vault-lookup('alias')} expression to reference the password mapping.

Figure 4



Implementing the scenario

First, create an item in NetSuite with name Public Cloud Service and type as service for sale and get the internal ID of that item.

Registry is a content store and a metadata repository in ESB where we can store various configurations and artifacts. We can use mediators to persist/read the values stored in the registry. Achieving this with the property mediator is relatively easy rather than using script or class mediator in ESB 5.0.

Add the following resources to the ESB registry.

  • /_system/governance/netsuite/dateTime - The date and time hence the invoices fetched for the initial run.
  • /_system/governance/netsuite/itemId - The internal id of the item created in the NetSuite.
  • /_system/governance/netsuite/subsidiaryId - The internal id of the desired subsidiary in the NetSuite.

For more details on how to do this, refer to this blog.



Summary

This article described how WSO2 ESB enables automated integration between various SaaS applications without typing a single line of code. This would solve the enterprises' immediate integration requirements and provide a scalable solution.



References

 

About Author

  • Kesavan Yogarajah
  • Software Engineer
  • WSO2