Rob Tweed · Jul 25, 2016 2m read

ewd-feder8: New EWD 3 module for federation / integration of Web Service and REST end-points

Today I'm releasing a new EWD 3 module - ewd-feder8.

ewd-feder8 is a federation or integration platform, built as an extension of the EWD 3 ewd-xpress module.  So what does it do and what's it for? 

It's all about federating and integrating multiple web or REST service end-points.

At its simplest you can use it as a proxy server in front of a remote web service or REST end-point.

More usefully, you can send an HTTP or REST request to ewd-feder8, which can then forward it to every member of a group of web service or REST end-point servers.  The responses from the servers are automatically combined by ewd-feder8 to create a composite response which is then returned to the client that sent the original request to ewd-feder8.

Even more usefully, you can customise ewd-feder8 by adding event handlers to:

  • intercept incoming requests to ewd-feder8
  • intercept responses returned to ewd-feder8 by web service or REST end-point servers
  • intervene just before a combined/composite response is returned.

Things you can do when handling these events include:

  • modifying the incoming request
  • modifying the incoming response(s)
  • modifying the composite response

but you can also forward a new request to a remote end-point server or group of servers.  As a result you can easily and simply define a complex "dance" whereby a single incoming request into ewd-feder8 can generate a cascade of intermediate requests and responses between ewd-feder8 and your remote web service or REST end-points, eg for single sign-on and/or implementing other authentication services, ultimately resulting in a final, combined response being returned to the client that sent the original request to ewd-feder8.

Furthermore, because ewd-feder8 extends ewd-xpress, your event handler functions have exactly the same access to Cache as you would with ewd-xpress (courtesy of the EWD 3 module ewd-document-store).  This means you can cache intermediate information within ewd-feder8 during a complex "dance" to generate a complex composite response.  By also making use of the EWD 3 ewd-session module, you could also maintain EWD sessions to further assist with this process. 

Your remote endpoints can be any web service or REST service, including other ewd-xpress servers. 

For example, for users of VistA, the US Dept of Veteran's Affairs' EHR, you could use ewd-feder8 to manage and maintain federated access (including single sign-on authentication services) across multiple VistA systems, where each VistA system was interfaced using the EWD 3 ewd-qoper8-vistarpc module.

If you want to take a look and try out ewd-feder8, see

Full documentation can be found here:

Of course, like all EWD 3 modules, it's free, Open Source software, licensed under the Apache 2 license.

0 315
Discussion (0)0
Log in or sign up to continue