Software Development Life-cycle Hygiene with Message ...
Transcript of Software Development Life-cycle Hygiene with Message ...
![Page 1: Software Development Life-cycle Hygiene with Message ...](https://reader031.fdocuments.us/reader031/viewer/2022013009/61cdb2dc915509475c6166ae/html5/thumbnails/1.jpg)
Software Development Life-cycle Hygiene with Message Broker in end-to-end SOATips for building and maintaining a working SOA implementation in MB
Stuart Smith - Consultant, [email protected]
1Thursday, 24 March 2011
![Page 2: Software Development Life-cycle Hygiene with Message ...](https://reader031.fdocuments.us/reader031/viewer/2022013009/61cdb2dc915509475c6166ae/html5/thumbnails/2.jpg)
What it’s not
• How to architect a SOA
• How to implement/realise a SOA with MB
2Thursday, 24 March 2011
![Page 3: Software Development Life-cycle Hygiene with Message ...](https://reader031.fdocuments.us/reader031/viewer/2022013009/61cdb2dc915509475c6166ae/html5/thumbnails/3.jpg)
What it is
• Suggestions/Tips for ensuring your MB based SOA ‘works’• Discussion of the skills your developers will need• A look at why hygiene is so important to get it to ‘work’
3Thursday, 24 March 2011
![Page 4: Software Development Life-cycle Hygiene with Message ...](https://reader031.fdocuments.us/reader031/viewer/2022013009/61cdb2dc915509475c6166ae/html5/thumbnails/4.jpg)
What’s an SOA Again ?
• Smart421 splits it into two parts:
• the glue and base capabilities (aka ESB)
• the re-usable services
4Thursday, 24 March 2011
![Page 5: Software Development Life-cycle Hygiene with Message ...](https://reader031.fdocuments.us/reader031/viewer/2022013009/61cdb2dc915509475c6166ae/html5/thumbnails/5.jpg)
The Glue: If it’s not a product, what is the ESB ?
• It’s the standards and policies for exposing and consuming the first class interface of a component being integrated.
• And if it has good hygiene, it also has a good story for:
• transactionality• security• logging, monitoring, error handling• QoS• easy reuse• low cost of change
5Thursday, 24 March 2011
![Page 6: Software Development Life-cycle Hygiene with Message ...](https://reader031.fdocuments.us/reader031/viewer/2022013009/61cdb2dc915509475c6166ae/html5/thumbnails/6.jpg)
Services
• Fundamental shift in ownership from the designer/developer owned ‘interface spec’ to the business architect owned services
• ESB is no longer just a term used for ‘plumbing’ : it is an enterprise app in its own right...• Business services provide high value reuse across the organisation• Technical services provide a common set of capabilities to all those ‘higher’ services (e.g.
logging, security, monitoring, SLAs. etc)
6Thursday, 24 March 2011
![Page 7: Software Development Life-cycle Hygiene with Message ...](https://reader031.fdocuments.us/reader031/viewer/2022013009/61cdb2dc915509475c6166ae/html5/thumbnails/7.jpg)
What does ‘work’ mean for an SOA ?
• A fully realised ESB• Lots of reusable (and reused!!) services• Many services are business focused• Services exhibit tiering• Services easily enhanced & extended with high confidence• Quick to build, quick to change
7Thursday, 24 March 2011
![Page 8: Software Development Life-cycle Hygiene with Message ...](https://reader031.fdocuments.us/reader031/viewer/2022013009/61cdb2dc915509475c6166ae/html5/thumbnails/8.jpg)
What ‘works’ for a WAS-ESB/Java based SOA ?
• Business focused services• Open standards (SOAP, etc)• Designed from outset for reuse• OO patterns used (e.g. separation of concerns• Designed from outset for testability• Test Driven Development/CI
8Thursday, 24 March 2011
![Page 9: Software Development Life-cycle Hygiene with Message ...](https://reader031.fdocuments.us/reader031/viewer/2022013009/61cdb2dc915509475c6166ae/html5/thumbnails/9.jpg)
WAS-ESB/Java based SOA
• Business focused services• Open standards (SOAP, etc)• Designed from outset for reuse• OO patterns used (e.g. separation of concerns• Designed from outset for testability• Test Driven Development/CI
9Thursday, 24 March 2011
![Page 10: Software Development Life-cycle Hygiene with Message ...](https://reader031.fdocuments.us/reader031/viewer/2022013009/61cdb2dc915509475c6166ae/html5/thumbnails/10.jpg)
Old Skool MB Skillz
• MB is for when you can’t do it with just MQ• Some transforms, the odd protocol transfer - but basically point to point plumbing• MB devs might be more admins than software engineers• Admin led approach leads to little, if any, design or documentation
10Thursday, 24 March 2011
![Page 11: Software Development Life-cycle Hygiene with Message ...](https://reader031.fdocuments.us/reader031/viewer/2022013009/61cdb2dc915509475c6166ae/html5/thumbnails/11.jpg)
11Thursday, 24 March 2011
![Page 12: Software Development Life-cycle Hygiene with Message ...](https://reader031.fdocuments.us/reader031/viewer/2022013009/61cdb2dc915509475c6166ae/html5/thumbnails/12.jpg)
Old Skool MB Skillz
• “bodged together until the two apps are ‘connected’ ” ?• Probably no unit testing to speak of...• MB support team own the ‘tin and wires’ and the bit of plumbing: idea of service level
ownership an anathema
12Thursday, 24 March 2011
![Page 13: Software Development Life-cycle Hygiene with Message ...](https://reader031.fdocuments.us/reader031/viewer/2022013009/61cdb2dc915509475c6166ae/html5/thumbnails/13.jpg)
13Thursday, 24 March 2011
![Page 14: Software Development Life-cycle Hygiene with Message ...](https://reader031.fdocuments.us/reader031/viewer/2022013009/61cdb2dc915509475c6166ae/html5/thumbnails/14.jpg)
The ESB - Core Capabilities
• on/off ramp• validation• routing• transformation• error handling• logging• auditing• monitoring• SLA enforcement• security• etc, etc, etc
14Thursday, 24 March 2011
![Page 15: Software Development Life-cycle Hygiene with Message ...](https://reader031.fdocuments.us/reader031/viewer/2022013009/61cdb2dc915509475c6166ae/html5/thumbnails/15.jpg)
it’s a Brave New World
15Thursday, 24 March 2011
![Page 16: Software Development Life-cycle Hygiene with Message ...](https://reader031.fdocuments.us/reader031/viewer/2022013009/61cdb2dc915509475c6166ae/html5/thumbnails/16.jpg)
What is an ‘SOA Service’ ?
• Service provider has ownership of service.• Creation and Enforcement of a set of behaviour:
• validation of messages (schema, complex, partial)
• integration with ESB core services
• uses other services
• uses other ESB shared components (canonical data format, frameworks, libraries)
• quick to build, quick to adapt
• exist in a design time repository
16Thursday, 24 March 2011
![Page 17: Software Development Life-cycle Hygiene with Message ...](https://reader031.fdocuments.us/reader031/viewer/2022013009/61cdb2dc915509475c6166ae/html5/thumbnails/17.jpg)
The Story so far...
The ESB is the heart of the organisation.The business services running on it, are your organisation.
Building and Maintaining it, should be a selection of your brightest and most experienced software developers.
17Thursday, 24 March 2011
![Page 18: Software Development Life-cycle Hygiene with Message ...](https://reader031.fdocuments.us/reader031/viewer/2022013009/61cdb2dc915509475c6166ae/html5/thumbnails/18.jpg)
18Thursday, 24 March 2011
![Page 19: Software Development Life-cycle Hygiene with Message ...](https://reader031.fdocuments.us/reader031/viewer/2022013009/61cdb2dc915509475c6166ae/html5/thumbnails/19.jpg)
What ‘works’ for a WAS-ESB/Java based SOA ?
• Business focused services• Open standards (SOAP, etc)• Designed from outset for reuse• OO patterns used (e.g. separation of concerns• Designed from outset for testability• Test Driven Development/CI
19Thursday, 24 March 2011
![Page 20: Software Development Life-cycle Hygiene with Message ...](https://reader031.fdocuments.us/reader031/viewer/2022013009/61cdb2dc915509475c6166ae/html5/thumbnails/20.jpg)
The WAS-ESB Team Member Skillset
• Senior Software Engineer• Excellent OO Knowledge and Experience• In Depth knowledge of software patterns• Lots of enterprise level experience (probably including lots of different
technologies)• Interface design experience
• WAS-ESB Knowledge and Experience
20Thursday, 24 March 2011
![Page 21: Software Development Life-cycle Hygiene with Message ...](https://reader031.fdocuments.us/reader031/viewer/2022013009/61cdb2dc915509475c6166ae/html5/thumbnails/21.jpg)
The MB-ESB Team Member Skillset
• Senior Software Engineer• Excellent OO Knowledge and Experience• In Depth knowledge of software patterns• Lots of enterprise level experience (probably including lots of different
technologies)• Interface design experience
• MB Knowledge and Experience
21Thursday, 24 March 2011
![Page 22: Software Development Life-cycle Hygiene with Message ...](https://reader031.fdocuments.us/reader031/viewer/2022013009/61cdb2dc915509475c6166ae/html5/thumbnails/22.jpg)
22Thursday, 24 March 2011
![Page 23: Software Development Life-cycle Hygiene with Message ...](https://reader031.fdocuments.us/reader031/viewer/2022013009/61cdb2dc915509475c6166ae/html5/thumbnails/23.jpg)
Skill Summary
Existing (even senior) MB developers are just as likely to be lacking required core skills as a junior developer
Retraining/Restaffing, External Consultancy will almost certainly be required to get your ESB team in shape.
23Thursday, 24 March 2011
![Page 24: Software Development Life-cycle Hygiene with Message ...](https://reader031.fdocuments.us/reader031/viewer/2022013009/61cdb2dc915509475c6166ae/html5/thumbnails/24.jpg)
We’ve got the right people - what now ?
they will tell you !
24Thursday, 24 March 2011
![Page 25: Software Development Life-cycle Hygiene with Message ...](https://reader031.fdocuments.us/reader031/viewer/2022013009/61cdb2dc915509475c6166ae/html5/thumbnails/25.jpg)
Some SDLC suggested outputs
Output Role Inputs
Solution Design Solution Designer service contracts, app designs, requirements, ESB team input
Service Contact(s), Service Design(s)
Service Designer, Lead MB ESB team
solution design, existing service contracts, existing service designs
TDD MB ESB Team Service Contracts, Service Designs
25Thursday, 24 March 2011
![Page 26: Software Development Life-cycle Hygiene with Message ...](https://reader031.fdocuments.us/reader031/viewer/2022013009/61cdb2dc915509475c6166ae/html5/thumbnails/26.jpg)
Service Contract - suggested content
• schemas• security• pre/post conditions• error handling• configuration• non-functionals• interface versioning• SLAs, QoS
26Thursday, 24 March 2011
![Page 27: Software Development Life-cycle Hygiene with Message ...](https://reader031.fdocuments.us/reader031/viewer/2022013009/61cdb2dc915509475c6166ae/html5/thumbnails/27.jpg)
Service Design - suggested content
• designed for lose coupling (inc time dimension: e.g. asynchronous or datagram message patterns)
• sequence diagrams covering as many paths as required• more detailed pre/posts (inside the black box)• detailed error handing in MB flows, error codes, etc• deployment characteristics• transport choices, details associated with them (e.g. queue names, etc)• mapping specifications• validation tasks• ‘Last Mile’ designed here too - same principles applied here. interface specified, transports,
etc
27Thursday, 24 March 2011
![Page 28: Software Development Life-cycle Hygiene with Message ...](https://reader031.fdocuments.us/reader031/viewer/2022013009/61cdb2dc915509475c6166ae/html5/thumbnails/28.jpg)
Development
• TDD can begin alongside service contract/design stage, or traditional waterfall.• Code Repository used, code reviews enforce detailed coding standards and design patterns.• Build tests for every pre/post condition, every error condition, all the non-functionals• AFTER you write the test, write the code• Repeat until full coverage• Wrap all these tests into CI and: easy service enhancement, refactoring with confidence,
quick to respond to business.• Regression tests suites• Apply TDD to ‘last mile’ interfaces to applications too - not just the first class interface
28Thursday, 24 March 2011
![Page 29: Software Development Life-cycle Hygiene with Message ...](https://reader031.fdocuments.us/reader031/viewer/2022013009/61cdb2dc915509475c6166ae/html5/thumbnails/29.jpg)
TDD
• Better designed code• Higher reuse• Lower bugs• Easier maintenance• Easier refactoring with high confidence• Almost a prerequisite for a ‘working’ SOA
29Thursday, 24 March 2011
![Page 30: Software Development Life-cycle Hygiene with Message ...](https://reader031.fdocuments.us/reader031/viewer/2022013009/61cdb2dc915509475c6166ae/html5/thumbnails/30.jpg)
• Part of the KCOM Group (£400M, 2200 people)• IBM Premier Business Partner • IBM Tier 1 WebSphere Integration Services Partner• Smart421 SOA Consultancy • Large DataPower and Message Broker practice• Experience of numerous WebSphere projects
30
Smart421 www.smart421.com
Thursday, 24 March 2011