Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco
-
Upload
alessandro-nadalin -
Category
Technology
-
view
3.415 -
download
2
description
Transcript of Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco
![Page 1: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/1.jpg)
TIPS AND TRICKS FOR YOURSERVICE ORIENTED
ARCHITECTURECakeFest, San Francisco, Sep 2013
![Page 2: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/2.jpg)
WARNING
![Page 3: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/3.jpg)
NO CAKEPHP
AHEAD
![Page 4: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/4.jpg)
This talk is for those...
![Page 5: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/5.jpg)
Stuck with the legacy
![Page 6: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/6.jpg)
dealing with CRONs
![Page 7: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/7.jpg)
in the need of a solid foundation
![Page 8: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/8.jpg)
rely on web services
![Page 9: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/9.jpg)
need a pluggable software architecture
![Page 10: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/10.jpg)
SOA
![Page 11: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/11.jpg)
Agenda
1. Service Oriented WHAT?!?!
2. Tips, Tricks and lessons learned (the hard way)
3. Conclusion
![Page 12: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/12.jpg)
1
![Page 13: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/13.jpg)
SO(A) WHAT?
![Page 14: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/14.jpg)
A software design based on discrete software components, "services", that collectively provide the functionalities of the larger
software application
![Page 15: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/15.jpg)
You typically start with theinfamous web application
which does everything on its own
![Page 16: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/16.jpg)
![Page 17: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/17.jpg)
Then you realize that to providea chat system to your users
PHP might not be the best...
![Page 18: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/18.jpg)
![Page 19: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/19.jpg)
And soon you also decide,to improve performances,
that your frontend should have its ownin-memory persistence, to be faster
and you put it into another service
![Page 20: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/20.jpg)
![Page 21: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/21.jpg)
Then, as always...
![Page 22: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/22.jpg)
SCALE.
![Page 23: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/23.jpg)
![Page 24: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/24.jpg)
And eventually, your lead architectwill come up and tell youthat your Java-based chat
sucks and should bereplaced with...
![Page 25: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/25.jpg)
NODEJS
![Page 26: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/26.jpg)
![Page 27: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/27.jpg)
In human-understandable words, SOA is a software design which embraces splitting a monolithic, totalitarian software
architecture into smaller pieces, thus making them independent, loosely coupled and more maintainable
![Page 28: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/28.jpg)
Ok, but in the real world?
![Page 29: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/29.jpg)
A few points...
![Page 30: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/30.jpg)
DATA
![Page 31: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/31.jpg)
each service might have its own data-layer, but nothingprevents you from sharing data across the services
![Page 32: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/32.jpg)
reads: abstract the data
![Page 33: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/33.jpg)
WEBSERVICES
![Page 34: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/34.jpg)
Services can request data to other services,usually through WSs
![Page 35: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/35.jpg)
POX
![Page 36: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/36.jpg)
![Page 37: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/37.jpg)
SOAP
![Page 38: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/38.jpg)
![Page 39: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/39.jpg)
HTTP
![Page 40: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/40.jpg)
REST
![Page 41: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/41.jpg)
Note to self:check the difference between HTTP and
REST APIs
![Page 42: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/42.jpg)
Note to self:check the difference between HTTP and
REST APIs
(HATEOAS)
![Page 43: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/43.jpg)
Note to self:check the difference between HTTP and
REST APIs
(HATEOAS)
![Page 44: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/44.jpg)
EVENTS
![Page 45: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/45.jpg)
services notify the architecture that an event has happened
![Page 46: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/46.jpg)
asynchronous messaging queues
![Page 47: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/47.jpg)
2
![Page 48: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/48.jpg)
TIPS ANDTRICKS
![Page 49: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/49.jpg)
LEARNT THEHARD WAY
![Page 50: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/50.jpg)
2.1 AVOID SOA
![Page 51: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/51.jpg)
DIFFICULT TO TEST
![Page 52: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/52.jpg)
COMPLEX
![Page 53: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/53.jpg)
SOA would beoverkill for mostof the common
scenarios
![Page 54: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/54.jpg)
But if you're handlinga product or a
monolithic softwarestack, the added
complexity pays offon the long run
![Page 55: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/55.jpg)
2.2 FREETHE DATA
![Page 56: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/56.jpg)
CONSIDER ELIMINATING FK CONSTRAINTS
![Page 57: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/57.jpg)
A service might need to handle data withanother DBMS, so FKs are virtually impossible
![Page 58: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/58.jpg)
ABSTRACT THE DATA
![Page 59: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/59.jpg)
You might think in "rows" but the architecturethinks in "resources"
![Page 60: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/60.jpg)
No more FKs andthe ability of
JOINing to retrievesome related data
![Page 61: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/61.jpg)
But you choosewhat perfectly fits
each service:your transactionsover a RDBMS andyour communityover a graph DB
![Page 62: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/62.jpg)
2.3 Standardize
![Page 63: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/63.jpg)
Build a vast suite of E2E tests
![Page 64: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/64.jpg)
and give your developer a way to easily test
![Page 65: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/65.jpg)
EVERY DEVELOPER NEEDSTHE ENTIRE ARCHITECTURE ON LOCAL
![Page 66: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/66.jpg)
The architecture needsto be installed in
~1 hour
![Page 67: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/67.jpg)
Setting up VMsis an hassle and
they are so slow!
![Page 68: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/68.jpg)
go #vagrant
![Page 69: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/69.jpg)
2.4 IDENTIFYWISELY
![Page 70: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/70.jpg)
AUTHENTICATION IS KING
![Page 71: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/71.jpg)
Centralized authentication = identity service
![Page 72: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/72.jpg)
NEVER HANDLE CREDENTIALS IN CLEAR
![Page 73: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/73.jpg)
NEVER.
man in the middle
![Page 74: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/74.jpg)
NEVER.
man in the middle
SSL
![Page 75: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/75.jpg)
NEVER.
man in the middle
SSL
tokenize
![Page 76: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/76.jpg)
OAuth
![Page 77: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/77.jpg)
OpenID
![Page 78: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/78.jpg)
JWS
![Page 79: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/79.jpg)
JSON WEB SIGNATURE
![Page 80: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/80.jpg)
JSON WEB TOKEN
![Page 81: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/81.jpg)
JSON WEB SIGNATURE
![Page 82: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/82.jpg)
JAVASCRIPT OBJECT SIGNING & ENCRYPTION
![Page 83: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/83.jpg)
JOSEhttp://www.thread-safe.com/2012/03/json-object-signing-and-encryption-jose.html
![Page 84: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/84.jpg)
1. The user enters the credentials once in your frontend
JS APP
AUTHSERVICE
2. The JS app will forward themto your Auth webservice
3. The Auth webservice will then generate the encryptedJWS and set a cookie withits value
JS APP
4. The JS app can now just execute calls usingthat cookie
![Page 85: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/85.jpg)
1. The user enters the credentials once in your frontend
JS APP
![Page 86: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/86.jpg)
AUTHSERVICE
2. The JS app will forward themto your Auth webservice
JS APP
![Page 87: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/87.jpg)
AUTHSERVICE
3. The Auth webservice will then generate the encrypted JWS and set a cookie with its value
![Page 88: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/88.jpg)
JS APP
AUTHSERVICE
4. The JS app can now just execute calls using that cookie
![Page 89: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/89.jpg)
1. The user enters the credentials once in your frontend
JS APP
AUTHSERVICE
2. The JS app will forward themto your Auth webservice
3. The Auth webservice will then generate the encryptedJWS and set a cookie withits value
JS APP
4. The JS app can now just execute calls usingthat cookie
![Page 90: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/90.jpg)
setcookie($name, $jws,$ttl, $path, $domain, true);
![Page 91: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/91.jpg)
setcookie($name, $jws,$ttl, $path, $domain, true);
HTTPS
![Page 92: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/92.jpg)
JWS in PHP?
![Page 93: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/93.jpg)
namshi/jose
![Page 94: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/94.jpg)
use Namshi\JOSE\JWS;
$jws = new JWS('RS256');$jws->setPayload(array( 'uid' => $user->getid(),));
$privateKey = openssl_get_privatekey("file://path/to/private.key");$jws->sign($privateKey);setcookie('identity', $jws->getTokenString());
use Namshi\JOSE\JWS;
$jws = JWS::load($_COOKIE['identity']);$public_key = openssl_pkey_get_public("/path/to/public.key");
if ($jws->verify($public_key)) { echo "EUREKA!;}
![Page 95: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/95.jpg)
use Namshi\JOSE\JWS;
$jws = new JWS('RS256');$jws->setPayload(array( 'uid' => $user->getid(),));
$privateKey = openssl_get_privatekey("file://path/to/private.key");$jws->sign($privateKey);setcookie('identity', $jws->getTokenString());
use Namshi\JOSE\JWS;
$jws = JWS::load($_COOKIE['identity']);$public_key = openssl_pkey_get_public("/path/to/public.key");
if ($jws->verify($public_key)) { echo "EUREKA!;}
![Page 96: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/96.jpg)
use Namshi\JOSE\JWS;
$jws = new JWS('RS256');$jws->setPayload(array( 'uid' => $user->getid(),));
$privateKey = openssl_get_privatekey("file://path/to/private.key");$jws->sign($privateKey);setcookie('identity', $jws->getTokenString());
use Namshi\JOSE\JWS;
$jws = JWS::load($_COOKIE['identity']);$public_key = openssl_pkey_get_public("/path/to/public.key");
if ($jws->verify($public_key)) { echo "EUREKA!;}
![Page 97: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/97.jpg)
use Namshi\JOSE\JWS;
$jws = new JWS('RS256');$jws->setPayload(array( 'uid' => $user->getid(),));
$privateKey = openssl_get_privatekey("file://path/to/private.key");$jws->sign($privateKey);setcookie('identity', $jws->getTokenString(), ...);
use Namshi\JOSE\JWS;
$jws = JWS::load($_COOKIE['identity']);$public_key = openssl_pkey_get_public("/path/to/public.key");
if ($jws->verify($public_key)) { echo "EUREKA!;}
![Page 98: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/98.jpg)
use Namshi\JOSE\JWS;
$jws = new JWS('RS256');$jws->setPayload(array( 'uid' => $user->getid(),));
$privateKey = openssl_get_privatekey("file://path/to/private.key");$jws->sign($privateKey);setcookie('identity', $jws->getTokenString());
use Namshi\JOSE\JWS;
$jws = JWS::load($_COOKIE['identity']);$public_key = openssl_pkey_get_public("/path/to/public.key");
if ($jws->verify($public_key)) { echo "EUREKA!;}
![Page 99: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/99.jpg)
use Namshi\JOSE\JWS;
$jws = new JWS('RS256');$jws->setPayload(array( 'uid' => $user->getid(),));
$privateKey = openssl_get_privatekey("file://path/to/private.key");$jws->sign($privateKey);setcookie('identity', $jws->getTokenString());
use Namshi\JOSE\JWS;
$jws = JWS::load($_COOKIE['identity']);$public_key = openssl_pkey_get_public("/path/to/public.key");
if ($jws->verify($public_key)) { echo "EUREKA!;}
![Page 100: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/100.jpg)
I can't simplyuse the HTTP
basic authentication,it was so
convenient!
![Page 101: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/101.jpg)
...and flawed.
Modern apps,modern tech.
![Page 102: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/102.jpg)
All myauthenticated
traffic needs to gothrough HTTPS:
it will be soSLOW!
![Page 103: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/103.jpg)
Only if youdon't know
about...
![Page 104: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/104.jpg)
WebP
![Page 105: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/105.jpg)
WebP
lossless compression
![Page 106: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/106.jpg)
WebP
lossless compression
30% smaller than PNG
![Page 107: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/107.jpg)
And if you don'tknow about...
![Page 108: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/108.jpg)
SPDY
![Page 109: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/109.jpg)
HTTP on steroids
![Page 110: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/110.jpg)
(come to my next talk)
![Page 111: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/111.jpg)
(that one won't suck)
![Page 112: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/112.jpg)
2.5 EMBRACEMESSAGING
![Page 113: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/113.jpg)
Don't wait, notify instead
![Page 114: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/114.jpg)
Different services can intercept an even, separately
![Page 115: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/115.jpg)
If one is down, the others keep working
![Page 116: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/116.jpg)
Who cares about milliseconds for notifications?
![Page 117: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/117.jpg)
The human body is the bottleneck
![Page 118: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/118.jpg)
Email?
![Page 119: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/119.jpg)
SMS?
![Page 120: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/120.jpg)
Be reliable
![Page 121: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/121.jpg)
“Daemons are great”
![Page 122: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/122.jpg)
“Daemons are great”- No PHP developer ever
![Page 124: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/124.jpg)
SUPERVISEhttp://cr.yp.to/daemontools/supervise.html
![Page 125: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/125.jpg)
use python ;-)
![Page 126: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/126.jpg)
It doesn’t matter...
![Page 127: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/127.jpg)
if you talk الحروف العربیة
![Page 128: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/128.jpg)
Rabbit makes everyone talk the same language
![Page 129: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/129.jpg)
chat
Batch processing
frontend
sync daemons
transcoding
agony
ERP
telcom
![Page 130: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/130.jpg)
![Page 131: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/131.jpg)
But I PHP
![Page 132: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/132.jpg)
Monogamyis so ‘90
“given a hammer,everything
becomes a nail”
![Page 133: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/133.jpg)
One size doesn’t fit all
![Page 134: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/134.jpg)
2.5 ALWAYS SUNDAY?
![Page 135: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/135.jpg)
Monitor in real time
![Page 136: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/136.jpg)
and do retrospectives
![Page 137: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/137.jpg)
![Page 138: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/138.jpg)
Talking about retrospectives?
![Page 139: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/139.jpg)
Logs are first-class citizens
![Page 140: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/140.jpg)
Sharpen asmuch as possible
![Page 141: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/141.jpg)
![Page 142: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/142.jpg)
Assume thingswill break
![Page 143: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/143.jpg)
All in all...
![Page 144: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/144.jpg)
SOA is complex
![Page 145: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/145.jpg)
A puzzle with more pieces
![Page 146: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/146.jpg)
More things to keep in mind
![Page 147: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/147.jpg)
COMPLEXIS NOT
COMPLICATED
![Page 148: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/148.jpg)
Loose coupling
![Page 149: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/149.jpg)
every service is independent, not forced to theconstraints of a monolithic block
![Page 150: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/150.jpg)
you have the freedom of changing or replacing serviceswithout the hassle of touching an entire system
![Page 151: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/151.jpg)
State-of-the-art defense against outages
![Page 152: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/152.jpg)
Fault tolerance
![Page 153: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/153.jpg)
if one of the services has an outage, the restof the architecture still works
![Page 154: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/154.jpg)
if a service, listening for messages, is down,the publisher doesn't get stuck
![Page 155: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/155.jpg)
Cleaner architecture
![Page 156: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/156.jpg)
SoC happens at architectural, not application, level and you can perform large-scale refactorings without the fear of destroying the entire system
![Page 157: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/157.jpg)
Perfect ground for advanced tooling
![Page 158: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/158.jpg)
...yawn...
![Page 159: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/159.jpg)
Alessandro Nadalin
![Page 160: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/160.jpg)
Alessandro Nadalin
@_odino_
![Page 161: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/161.jpg)
Alessandro Nadalin
@_odino_
Namshi | Rocket Internet
![Page 162: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/162.jpg)
Alessandro Nadalin
@_odino_
Namshi | Rocket Internet
VP Technology
![Page 163: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/163.jpg)
Alessandro Nadalin
@_odino_
Namshi | Rocket Internet
VP Technology
odino.org
![Page 164: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/164.jpg)
Thanks!Alessandro Nadalin
@_odino_
Namshi | Rocket Internet
VP Technology
odino.org
![Page 165: Tips and Tricks for your Service Oriented Architecture @ CakeFest 2013 in San Francisco](https://reader036.fdocuments.in/reader036/viewer/2022070313/554bb238b4c90594278b456c/html5/thumbnails/165.jpg)
Image credits
http://www.flickr.com/photos/randystiefer/6998037429/sizes/h/in/photostream/http://www.flickr.com/photos/55432818@N02/5500963965/
http://www.flickr.com/photos/pamhule/4503305775/http://www.flickr.com/photos/wili/1427890704/
http://www.flickr.com/photos/nickpiggott/5212959770/sizes/l/in/photostream/http://www.flickr.com/photos/nomad9491/2549965427/sizes/l/in/photostream/
http://www.flickr.com/photos/amyvdh/95764607/sizes/l/in/photostream/http://www.flickr.com/photos/matthoult/4524176654/
http://www.flickr.com/photos/kittyeden/2416355396/sizes/l/in/photostream/http://www.flickr.com/photos/jpverkamp/3078094381/
http://www.flickr.com/photos/madpoet_one/5554416836/http://www.flickr.com/photos/87792096@N00/2732978107/
http://www.flickr.com/photos/petriv/4787037035/http://www.flickr.com/photos/51035796522@N01/111091247/sizes/l/in/photostream/
http://www.flickr.com/photos/m-i-k-e/6366787693/sizes/l/in/photostream/http://www.flickr.com/photos/39065466@N04/9111005211/
http://www.flickr.com/photos/marchorowitz/5449945176/sizes/l/in/photolist-9iAoQ1-8s4ueH-bCWef9-bCWdPh-e48XUm-bu67nh-a7xaEr-8wLiNh-9aYU1k-9F4VUN-dYqzr1-9vosHb-8BtFuw-8P3h2e-9tqc6M-82qpt4-7UgkBJ-dgSnfS-aJiubZ-9Xji2U-9UVpkC-
7BSh7Y-8GE54k-91GHtB-8VMHJ2-8wiwvo-aCmPCg-925Tg8-bcBv9T-dGUseY/http://www.flickr.com/photos/blegg/745322703/sizes/l/in/photostream/
http://www.flickr.com/photos/centralasian/4649550142/sizes/l/in/photostream/http://www.flickr.com/photos/pennstatelive/4947279459/sizes/l/in/photostream/
http://www.flickr.com/photos/tjblackwell/7819341478/http://www.flickr.com/photos/brainbitch/6066375386/
http://www.flickr.com/photos/nnova/4215594009/http://www.flickr.com/photos/publicenergy/2246574379/
http://www.flickr.com/photos/andrewteman/4592833017/sizes/o/in/photostream/http://www.flickr.com/photos/beautifulrevelry/8548004964/sizes/o/in/photostream/
http://www.flickr.com/photos/denaldo/5066810104/sizes/l/in/photostream/http://www.flickr.com/photos/picturewendy/8365723674/sizes/l/in/photostream/http://www.flickr.com/photos/danielygo/6644679037/sizes/l/in/photostream/
http://www.flickr.com/photos/ross/7614352/sizes/l/in/photostream/http://www.flickr.com/photos/75932013@N02/6874087329/sizes/l/in/photostream/
http://crucifixjel.deviantart.com/art/300-Wallpaper-03-66516887