angularjsarchitectureclient-side-templating

Please explain me the Service-Oriented Composition architecture described by Mr. Udi Dahan


Can anybody please explain me with a step by step example as how to satisfy the
Service-Oriented Composition
described by Mr. Udi Dahan. You will find an equivalent diagram in the same blog.

Technology I am using is AngularJS, Asp.net WebAPI.

I am not clear specially with the below part

enter image description here


Solution

  • This Basically talks about packaging requests from client.

    Instead of making multiple ajax calls from client to server, package them (this is what IT/OPs Client / JS Library component doing), and send one request to server. The server on the other hand, un-pack and process all the requests and repackage response to individual request and send them as single response to client.

    At the client's end then again these packaged response is unpacked and distributed to individual requester (This again is done by IT/OPs Client / JS Library component).

    This library Component is made here intelligent enough that it knows what all calls can be buffered considering a context.

    I am making up an example here, but not sure whether that is a right choice for this architecture.

    Consider a form in Expandable section. In this case Component A that is raising event would be Expand / Collapse of the Expandable section and initially is it collapsed.

    The expandable section has say many sub parts for which some data needs to be pulled (say four dropdown, component B C D & E, for each of them list options needs to be pulled from server).

    Now as soon as you click on Expanding of section - Component A raises event, and on that event four additional requests will be raised by both dropdown to pull options data from server. In normal scenario, there will be four ajax requests that will be going to server. But with Service Oriented Compositions, the intelligent component will buffer till it get all the four requests and then package them together to send one request to the server.