30
Software Development Life-cycle Hygiene with Message Broker in end-to-end SOA Tips for building and maintaining a working SOA implementation in MB Stuart Smith - Consultant, Smart421 [email protected] 1 Thursday, 24 March 2011

Software Development Life-cycle Hygiene with Message

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Software Development Life-cycle Hygiene with Message

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

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

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

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

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

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

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

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

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

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

11Thursday, 24 March 2011

Page 12: Software Development Life-cycle Hygiene with Message

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

13Thursday, 24 March 2011

Page 14: Software Development Life-cycle Hygiene with Message

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

it’s a Brave New World

15Thursday, 24 March 2011

Page 16: Software Development Life-cycle Hygiene with Message

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

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

18Thursday, 24 March 2011

Page 19: Software Development Life-cycle Hygiene with Message

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

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

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

22Thursday, 24 March 2011

Page 23: Software Development Life-cycle Hygiene with Message

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

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

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

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

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

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

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

• 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