Blog Post‎ > ‎

Why Should Enterprise Adopt Client Side Integration as part of SOA Strategy?

posted Aug 3, 2013, 5:34 PM by Julian Zhu   [ updated Aug 3, 2013, 6:38 PM ]

Web Services is now so popular as standard way of services integration among enterprise information systems. At the same time, Widget, gadget, or Tags are popular to allow web sites to integrate content from the 3rd party -- typically large companies like Google, Facebook, LinkedIn, etc.

Large enterprise can leverage the same technique to make integration much easier and this should become part of SOA strategy and development standard and framework for the enterprise.

Server or Client?

It is confusing, isn't it? There are two basic ways of integration from the perspective of communication styles:
  • Server to Server (or Server Integration)
 When a user visits a web page, web browser requests content from a server (let's call it Server A). The Server A (behind scene and invisible to end user) makes the request to another server (where API or services is hosted, and let's call it Server B). Typically this server-to-server communication uses protocol that both servers have agreed upon ahead of time, which involves security, API key, and request/response data format. If the Server B is satisfied with security and other data sent from Server A, Server B sends response back to Server A.

Server A typically will do more than just getting response back from Server B. Once it gets response back from Server B, Server A will do whatever it needs to do and some case it will format response from Server B before it finally sends data to the user's browser for rendering.

Typical server integration uses web services (SOAP/XML/HTTP).
  • Client to Server (or Client Integration)

When a user visits a web page served by Server A, Server A sends back response and data is rendered in user's browser right away. This response includes client side code typically JavaScript -- sometimes it is called widget, gadget, or tag. JavaScript code is executed in user's web browser and it understands it needs to do more -- in this case, it will trigger request sent to Server B. Keep it in mind, this request is made directly from user's web browser on the user's behalf, and it is typically asynchronous. Use's web browser will then display whatever information sent as response from Server B. 

Typical client integration is called Widget, Gadget Tag or simply JavaScript. 

These two integration patterns are illustrated below:

(scribbled from my Galaxy Note II phone)

Benefit of using Client Integration

Since the client integration relies on JavaScript that is typically supported on most modern web browsers (including mobile devices), its key benefit is amazingly flexibility and adoptable for the other web application to integrate -- the popularity of Google AdSense/AdWords and other gadgets has approved this. 

Is Client Integration appropriate for my application?

The client integration depends on one thing: trust. If you don't have trust with the client tag provider, you should not use it. That is why I recommend the use of client integration in the internal enterprise information system environment where the trust is typically not a problem with the protection and convenience of single sign-on.