36
Developers have always known how to deliver successful SOA! Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

Embed Size (px)

Citation preview

Page 1: Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

Developers have always known how to deliver successful SOA!

Developers have always known how to deliver successful SOA! 1

Microsoft Application Platform Conference

11. April 2007

Mads Nissen & Totto

Objectware AS

Page 2: Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

SpeakerBio

Totto

• President i javaBin siden 1998• Sun Java Champion• Community Leader, java.net• Sjefskonsulent i Objectware

• Arkitekt, utvikler, mentor• J2EE siden 1997, J2SE/J2ME,

AOP, Jini/JavaSpaces, UML, RUP, Agile

• Programmert professionellt i over 25 år

• Sivilingeniør fra NTH/NTNU• ... og mye mye mer...

Mads Nissen

• Teamleder i Objectware

• Arkitekt, utvikler, teknologisk kverulant

• MOSS (Sharepoint)• SOA• .NET & C#• Workflow

• Microsoft Most Valuable Professional ’05/’06

• Bachelor Computer Science

2The Value of SOA Delivered

Page 3: Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

Purpose of this session

• Quickly review The Challenge (or one of them) in the current maturing SOA mindset – related to SOA Governance

• Briefly introduce The Categorization Framework for Services

• Review the concepts of SOA related to the real world with The Merchant Story:

• Service Descriptions and Contracts..• ..in relation to the Client and the Service internals..• ..related to the real world of commerce• This is less stuff – more fluff and food for thought

• Align patterns and technology to the real-world (more stuff again..)

3Developers have always known how to deliver successful SOA!

Page 4: Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

SOA IN OBJECTWARE

Objectwares approach to Service Orientation and Architecture

4The Value of SOA Delivered

Page 5: Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

5

What is Enterprise Design & Architecture?

”No non-sense”– Enterprise Architecture– Domain Driven Design– Service Oriented Architecture– Enterprise SOA Patterns– Code (reusable & starting points)

”How IT fits together”– From EA, to SOA categorized services, realized

using documented patterns and deployed on both .NET and Java in real projects.

The Value of SOA Delivered

Page 6: Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

SOA i Objectware

• Vi har utviklet tjeneste-orienterte systemer i lang tid

• SOA hypen gikk fra arkitektur til XML og WS-* fokus (definisjon)

• Ingen ser ut til å vite hva en tjeneste var..

• Så vi fokuserte på atomet i SOA, nemlig tjenesten....

• ..og det var ikke lett å få på plass....

The Eight Fallacies of Distributed Computing

6The Value of SOA Delivered

Page 7: Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

THE CHALLENGESome points to the challenge for successful SOA today

7Developers have always known how to deliver successful SOA!

Page 8: Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

From Legos..

8Developers have always known how to deliver successful SOA!

Page 9: Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

Via duplos..

9Developers have always known how to deliver successful SOA!

Page 10: Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

…to ”Service Orientation”

10Developers have always known how to deliver successful SOA!

Page 11: Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

Or in a protocol view..

TCP/IP

CORBA/COM

RMI/.NET Remoting

SOAP

WS*

11Developers have always known how to deliver successful SOA!

Page 12: Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

How far have we gone?

• Every level of abstraction allows us to build with larger blocks.

• Problem remains the same: Retain evolvability• Dependencies• Versioning• Change and adapt to business requirements

But what about:The Eight Fallacies of Distributed Computing

12Developers have always known how to deliver successful SOA!

Page 13: Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

Point in question: It works in the real world!

• Every major corporation was small once:• McDonalds, REMA, IKEA• They’ve all scaled and evolved and beaten the competition

• Can they keep on scaling?

• That’s partially up to us IT-folks!

• We need to talk about how we talk about services..

13Developers have always known how to deliver successful SOA!

Page 14: Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

THE MERCHANT STORY

Mixing up SOA terms with the real world to make your head spin

14Developers have always known how to deliver successful SOA!

Page 15: Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

Aligning SOA with the Merchant

The Merchant is the analogy for a service in a service oriented universe.

Tying in well-known SOA principles and artifacts with the merchants endeavors

Let’s try to find some service terms in the real world:

Endpoint Service Description Request message Response message The Contract Service implementation

Human 2 Application Service (H2A)Application 2 application service (A2A)Aggregated Core Service (ACS)Core Service (CS)

15Developers have always known how to deliver successful SOA!

Page 16: Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

SERVICE DESCRIPTIONSetter of expectations

16Developers have always known how to deliver successful SOA!

Page 17: Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

RWDL: Real-World Description Language

17Developers have always known how to deliver successful SOA!

Page 18: Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

The Endpoint

18Developers have always known how to deliver successful SOA!

Page 19: Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

RWDL Sets Expectations

19Developers have always known how to deliver successful SOA!

Page 20: Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

Poor Expectations?

20Developers have always known how to deliver successful SOA!

Page 21: Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

Service Descriptions

• Services are described both explicitly and implicitly

• Services need to be aware of their implicit responsibility (customer expectations) and adapt

• Customers are trained through extensive marketing and branding

• Great service descriptions and their related contracts are often adopted by competitors:

• McDonalds & Burger King – What’s the difference?

21Developers have always known how to deliver successful SOA!

Page 22: Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

THE CLERKAka - what sits behind the service endpoint and boundry

22Developers have always known how to deliver successful SOA!

Page 23: Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

The Clerk

23Developers have always known how to deliver successful SOA!

Page 24: Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

The Clerks Responsibility

• REQUIRED: Fulfill the Service Contract

• RECOMMENDED: Fulfill the expectations set to Customers by the Service Description (implicitly or explicitly)

• LEADING: Surpass the Customers expectations

• The clerk must handle anything that is thrown at him/her

24Developers have always known how to deliver successful SOA!

Page 25: Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

The Clerks interface

• May interpret many languages – or only one badly

• May accept one currency – or several (check exchange rate!)

• May understand the request – but have no means of fulfilling it

• May attempt to fulfill your request – even though it wasn’t understood completely

25Developers have always known how to deliver successful SOA!

Page 26: Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

The Clerk 2.0 aka The Learning Service

26Developers have always known how to deliver successful SOA!

• If our service can adapt to variance on requests we can serve more types of clients

• XML, Strings, CSVs, Voice, Morse-code.. • And respond in the same way

• If our service at least can record what it doesn’t understand we can train it

• Wait for those AI guys at MIT to come along

• This internalizes the responsability of serving clients to the service

• Good for cohesion• Good for versioning• Good for coupling

Page 27: Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

More Clerk Strategies

27Developers have always known how to deliver successful SOA!

• Clerk scaling!

Page 28: Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

HOWTO: MIMIC RWDL

Trying to make Endpoints, Service descriptions, Contracts and Clerks work in software

28Developers have always known how to deliver successful SOA!

Page 29: Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

29The Value of SOA Delivered

Page 30: Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

Changing Contracts

• High-level contracts (H2A/A2A) require agile evolvability• Low Cost• Rapid deployment (Time-To-Market)

• Low-level contracts (ACS/CS) require stable evolvability• Moderate Cost• Not break existing clients• Controlled deployment

30Developers have always known how to deliver successful SOA!

Page 31: Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

Evolving H2A/A2A services

• H2A and A2A layers should be product-centric and thus very evolvable towards their clients

• Ex: Sharepoint, BizTalk, Windows Workflow Foundation, K2.NET

• H2A and A2A layers depend on ACS and CS services and can evolve on their interfaces

31Developers have always known how to deliver successful SOA!

• If all your human interactionpoints (H2A) and processes (A2A) use your services, would you make a breaking change?

• What about self service process orchestration?

Page 32: Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

Evolving ACS/CS services• ACS and CS are code-centric and stable and needs

architectural evolvable interfaces towards upper layers• Windows Communication Foundation• Enterprise Library 3.0• Evolving Endpoint Pattern

• ACS and CS must be stable upon changing datasources to provide a robust repository

• Enterprise Library 3.0• Enterprise Domain Repository Pattern

32Developers have always known how to deliver successful SOA!

Page 33: Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

Evolving Service Endpoint Pattern

33Developers have always known how to deliver successful SOA!

Page 34: Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

Enterprise Domain Repository Pattern

34Developers have always known how to deliver successful SOA!

Page 35: Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

Key Takeaways

• Make sure SOA won’t be Same Old Architecture

• Use Service Categorization to place responsibility and achieve good cohesion and coupling for your services

• Think about evolvable services that last for 20 years

• Think Evolvability

• Create services that provide great service like in RWDL!• Implicit and explicit expectations• Evolving endpoints that don’t break existing customers (clients)

35The Value of SOA Delivered

Page 36: Developers have always known how to deliver successful SOA! 1 Microsoft Application Platform Conference 11. April 2007 Mads Nissen & Totto Objectware AS

TAKK FOR OPPMERKSOMHETEN!

Totto – [email protected]

Mads – [email protected]

36The Value of SOA Delivered

Få med dere neste SOA Sesjon:

Software Factories i den virkelige verden

- Inge Stubdal vil stilne kodehungrige sjeler