Question

I am a consultant in a firm and this firm have huge amount of projects which does basic CRUD operations in every project (like Update, Select, Delete, Add) in GridView

I was thinking instead of creating for every project the same operation over n over again, why don't I create some kind of SOA based architecture design pattern? In that way, anyone can inherit the operations performed using SOA services and execute it.

Also, I maybe wrong here! How should I approach this pattern? Most of the developers here in this company are DB developers.

Was it helpful?

Solution

I think you are searching for a dataservices layer, that is, a layer exposing services withuot business logic, just CRUD operations.

Take a look to the opensource "WSO2 Dataservices" http://wso2.com/products/data-services-server/

OTHER TIPS

CRUD over services is generally an anti-pattern. Far better are service operations which have business meaning.

SOA is less about enabling re-use of service operations than allowing the vertical separation of different business concerns.

Apps which talk to databases of course need to speak CRUD (as DBs are inherently CRUDy). There is no getting away from this, nor should this be seen as being bad. However, CRUD will never have business meaning.

When thinking about a shared services landscape for your business to build apps on, you should be thinking about which business-meaningful operations are candidates for sharing via service orientation.

These can then become your vertical service stacks.

Each stack will have database, data access, business logic, and presentation layers within them, can expose service operations with business meaning to be used by other services or applications, and can be developed and managed entirely separately.

The best description of soa I have heard is in this video: https://vimeo.com/5022174

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top