Scaling Out of the Box ERP and CRM whilst you get some REST.
Many ERP / CRM products are coming to market spouting Web Services as their customisation and integration saviour. These products are exposing their innards to the world via a SOAP Web Service layers, a design which is often tightly coupled to their more familiar units of extensibility or API’s. What does that mean? As an example, NAV 2009 will allow you to expose known development artefacts such as ‘Pages’, ‘Code Units’ etc as SOAP Endpoints (Web Services) and the Sage Accpac products also encourages integration via a web service layer.
So, Integration…..yes I guess so….. and custom solutions interfacing with a given system, well yes a bit of that too, but scalable, that I am not too sure about. One way of making such systems more scalable is to introduce a bit of publish and subscribe, some good old HTTP and a little resource
oriented Architecture. By simply monitoring events in the system and by publishing those events and their data we can do interesting things.
Building Around the Edges
It’s a popular approach to customise an alternative User Interface for OOTB ERP systems. There are many simple things you can do to make your custom system more scalable - for instance, when fetching semi static data you might think about publishing it as a HTTP resources and putting REST to work, the net effect of which should greatly reduce the all too common syndrome we have observed in systems that make constant and arguably redundant request / response calls to the systems API and consequently over working it’s database system. This approach was detailed very elegantly a while back by Udi.
As percentage, the number of request messages (request / response) made when there has been little or no change to semi static data is often alarmingly high. Nonetheless, it is commonplace to see applications employ this ‘ask and wait’ routine, which places a cascade of over utilisation across all the systems involved in the call chain. By publishing semi static data when events occur you can save precious resources and gain significant scale.
Udi recently reminded me that NServiceBus provides another way of approaching this problem and of course as usual he’s right. If developers can get their heads around PUB / SUB and the fundamental shift in approach it requires without getting sidetracked by everything that they have done in the past, then this can be a very satisfying way of working. The outcome is that we can build a system that customises user experience with OOTB CRM or ERP systems, without placing the same kind of request / response stresses that we would usually create if we choose to use the vendors Web Service option.


