Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get up to speed on SOA? [closed]

I've been given the task of laying the groundwork of a SOA for my client. The goal is to open up various processes in an end-client independent way and also to make data available offline e.g. for reps visiting customers.

I do have extensive experience with J2EE (Websphere) and web services but I would appreciate advice on how to build up such an SOA.

Where are the pitfalls? What about security? How finely granulated should services be? etc.

Links to tutorials and book recommendations would also be useful.

Thanks!

like image 990
paul Avatar asked Sep 24 '08 07:09

paul


3 Answers

Pitfalls

  • Versioning/backwards compatibility: it gets really hard to change a contract once you have loads of clients. I have seen many sites version the APIs by introducing the version in the URL

Granularity

  • Each service should be reasonly self-contained (don't expect people to do 3 calls before they get what they need)

Platform Independence

  • Try to give more than one way of accessing your APIs (WS, JSON, REST...)
like image 156
Sklivvz Avatar answered Nov 17 '22 10:11

Sklivvz


People can't agree on what SOA actually means.

http://martinfowler.com/bliki/ServiceOrientedAmbiguity.html

(although consensus may have grown since that was written)

I suggest quizzing your client to find out exactly what they mean - if anything. Then give them something that actually provides business value, while ticking any SOA boxes that might coincide with that effort.

like image 40
slim Avatar answered Nov 17 '22 09:11

slim


Call me a SOA-skeptic. Fowler's lament still seems right on.

I would focus on the more general problem: your client has 2 or more applications that have to collaborate together. Look at old school integration patterns.

EIP image
(source: amazon.com)

like image 4
Alan Avatar answered Nov 17 '22 10:11

Alan