Jeff GenenderCTO Savoir Technologies
A Road to a Successful SOA Implementation
The Rules of SOAThe Rules of SOA
Rules of EngagementRules of Engagement
COME UM UPUM HARD WAYCOME UM UPUM HARD WAY
ClientClient’’s Mess (My real 1 trick pony)s Mess (My real 1 trick pony)
Tip #1 Tip #1 -- Think BigThink BigWhere am I going?Where am I going? Tip #1 Tip #1 -- Start SmallStart Small
What we did...What we did... And if you donAnd if you don’’t...t...
And if you donAnd if you don’’t...t...
$$$$$$Tip #2 Tip #2 -- SOA GovernanceSOA GovernanceWho are these guys?Who are these guys?
And if you donAnd if you don’’t...t...Tip #3 Tip #3 -- Tools Tools -- Choose your Choose your weapons, govern themweapons, govern themWhatWhat’’s this? Where am I going?s this? Where am I going?
A. DonA. Don’’t use a sledge hammer for a t use a sledge hammer for a nailnail
A. DonA. Don’’t use a sledge hammer for a t use a sledge hammer for a nailnail
Locking into one technology does not fix all problems• Use WS where you want but don’t force everyone...
• Misnomer WS != SOA (necessarily). WS is a component of SOA.
Bad
Good
B. Consider an Enterprise Service B. Consider an Enterprise Service Bus (ESB)Bus (ESB)
B. Consider an Enterprise Service B. Consider an Enterprise Service Bus (ESB) Bus (ESB) -- ContCont
B. Consider an Enterprise Service B. Consider an Enterprise Service Bus (ESB) Bus (ESB) -- ContCont
Normalized Messaging• Components speak with each other in one language
Pluggable components• Use any component or technology
• Much more flexible to get components talking to each other
Message Oriented Middleware (MOM)• Reliable messaging based on JMS
Orchestration• Workflow
• Transactionality
• Routing
C. Consider Open Source PlatformsC. Consider Open Source Platforms
Just as good as the commercial stuff
ESBs/SOA Platforms• Apache ServiceMix (JBI)
• Apache Camel
• Apache Tuscany (SCA)
• Apache Synapse
• Sun OpenESB (JBI)
• Mule
• Progress FUSE
Tip #4 Tip #4 -- Know thy basic SOA PatternsKnow thy basic SOA Patterns
http://http://www.soapattewww.soapatterns.orgrns.org
http://http://www.eaipatterwww.eaipatterns.comns.com
////refcardz.dzone.com/refcardz/soarefcardz.dzone.com/refcardz/soa--patpat
WhatWhat’’s this? Where am I going?s this? Where am I going? Tip #4 Tip #4 -- Know thy basic SOA PatternsKnow thy basic SOA Patterns
AggregatorAggregator
ServiceBusServiceBus
Dynamic RoutingDynamic Routing
Event Driven ConsumerEvent Driven Consumer
Pipe/FilterPipe/Filter
RouterRouter
Translator/TransformerTranslator/Transformer
AggregatorAggregator ServiceBus/Messaging PatternServiceBus/Messaging Pattern
Dynamic RoutingDynamic Routing Event Driven ConsumerEvent Driven Consumer
Pipe/FilterPipe/Filter RouterRouter
Translator or TransformerTranslator or TransformerTip #5 Tip #5 -- Version early Version early -- Version Version oftenoften
Tip #5 Tip #5 -- And if you donAnd if you don’’t version...t version...
MARSHALING EXCEPTION
Are these lines sloped or parallel?Are these lines sloped or parallel?Tip #6 Tip #6 -- Be as Asynchronous as Be as Asynchronous as PossiblePossible
Tip #6 Tip #6 -- Be as Asynchronous as Be as Asynchronous as PossiblePossible Tip #6 Tip #6 -- And if you donAnd if you don’’t...t...
Tip #7 Tip #7 -- Watch your XML/SOAP UseWatch your XML/SOAP Use
I LOVE SOAP!
I LOVE XML!
WhatWhat’’s this? Where am I going?s this? Where am I going?Tip #7 Tip #7 -- And if you use too much And if you use too much XML...XML...
Tip #8 Tip #8 -- Design with the right Design with the right granularitygranularityWhatWhat’’s this? Where am I going?s this? Where am I going?
Tip #8 Tip #8 -- Design with the right Design with the right granularitygranularity
Tip #8 Tip #8 -- And if you donAnd if you don’’t...t...Tip #8 Tip #8 -- The Granularity Caveat The Granularity Caveat --The Uber ServiceThe Uber Service
Tip #9 Tip #9 -- Point to Point is Bad, Bad, Point to Point is Bad, Bad, BadBadWhatWhat’’s this? Where am I going?s this? Where am I going?
Tip #9 Tip #9 -- Point to Point is Bad, Bad, Point to Point is Bad, Bad, BadBad
Tip #9 Tip #9 -- And if you donAnd if you don’’t...t...Tip #10 Tip #10 -- There is no There is no ““oneone”” right right waywayWhatWhat’’s this? Where am I going?s this? Where am I going?
Tip #10 Tip #10 -- And if you donAnd if you don’’t...t... Questions?Questions?
Thank You!Thank [email protected]@savoirtech.com
[email protected]@apache.org
Special Thanks To Eugene Special Thanks To Eugene CiuranaCiuranahttp://http://refcardz.dzone.com/refcardz/soarefcardz.dzone.com/refcardz/soa
--patternspatterns