Title: SOA Governance
1The Value of SOA Delivered
Microsoft Application Platform Conference 11.
April 2007 Mads Nissen Totto Objectware AS
2SpeakerBio
- 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... ?
- Teamleder i Objectware
- Arkitekt, utvikler, teknologisk kverulant
- MOSS (Sharepoint)
- SOA
- .NET C
- Workflow
- Microsoft Most Valuable Professional 05/06
- Bachelor Computer Science
3Agenda
- Justification for SOA
- Integration strategy and the challenge SOA might
bring - Categorizing Services
- Gain control and overview
- How about products?
- Governance Policy
- Guidelines Examples
- Case to test your attention
- Demo to prove the value
4SOA in Objectware
- Objectwares approach to Service Orientation and
Architecture
5What 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.
6SOA 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
7Justification FOR SOA
- Some points to the challenge for successful SOA
today
8Integration challenges
Product
Product
Customer
Customer
9(No Transcript)
10Maturing SOA - Problems
- Gartner Strategic Planning Assumption
- In 2006, lack of working governance mechanisms in
midsize to large (more than 50 services),
post-pilot SOA projects will be the most-common
reason for project failure (0.8 probability).
10
11Categorizing Services
- The Service Manifest and the Categorization
Framework
12The Service Manifest
- I shall do one thing and one thing well.
- I shall never fail and if I do I will do it
gracefully. - I shall provide great service.
13(No Transcript)
14(No Transcript)
15Categorizing products
- Services never walk alone
16Product focus vs. Service focus
- A common challenge when doing Service
categorization is how to align products into the
model - Products are often dominant in discussions around
integration architecture - Makes it hard to establish clear policy for
services - And sometimes products even exposes their own
services! - Products in a SOA context tend to grasp too much
of the domain - What processes should a product support?
- Should my CRM system store my Invoices or
Documents? - Should my document management system be the
master of Products? - We must harvest as much value from products as
possible - Accounting work very efficiently in the ERP
system! - Sales get great support from the CRM system!
- We need a clear understanding and separation of
what is solved by products and what is solved by
services
17Microsoft CRM 3.0 in SOA Context
Service Context
Product Context
KundeOversikt
18Governance
- Some words on the value of governing
19Governing the Universe
- Governing the service universe requires
- A referenceframe (i.e. the categories)
- A clear definition of the responsibility of your
pawns (services service owners) - Strategies for capturing new land and nations
(new markets) - Remember that complex laws are more often broken.
School and adapt not police - Example
- Services not in compliance must use A2A layer for
interaction (i.e. Context-Crossover)
20Policy
- Policy are the laws that regulate your service
universe - Legislative authority establishes the policies
- For example a Policy Advisory Board (Center Of
Excellence) - Policy is enforced by a judicial authority
- For example with Policy Audits (manual/automatic)
- Legislature must enable judicial authority to
- Locate possible policy violations
(manually/automatic) - Judge wether or not it is a violation
- Efficient policy is required to enable efficient
government
21Governing the Run-Time
- Often referred to as Application Management or
SOA Service Management - Governing the run-time services requires
- Some base monitoring policy for services at each
category - Proper tooling which must adapt to the universe
- Monitoring clients interaction with the service
is valuable - Example
- All Core Services must interface agains Microsoft
Operations Manager for health monitoring
22How to Govern
23Evaluate yourself first
- What are you governing?
- What integration strategy?
- What domain and system complexity?
- Who are in your legislative branch?
- Internal Architect(s)?
- Random consultant(s)?
- What are your resources for judicial enforcement?
- Internal Architect(s) / IT Director / IT
Department / Business Owner / Process Owners? - Who are in your executive branch?
- Do developers change every 4 years or every
project? - How often do YOU change?
- You have self-service so all your end-users are
executing..
24Your size and resources matter
- Small/Midsized
- Hire external developers and/or architects
- May suffer from every vendor new solution
- Consider teaming up on verticals
- Enterprise
- Usually developers and architects in-house
- May hire external developers
- Should establish own legislation
- May hire external judicial branch (QA)
- Larger amount of services (100-600)
- Greater domain complexity
25Policy per category
- Example rules per service category
26Example Policy Rules for H2A services
- Alle tjenester må ha EN navngitt eier
- Alle tjenester skal gi forretningsverdi
- Alle tjenester skal gjøre en ting og en ting godt
- En tjeneste (webpart/portlet) skal være en
selvstendig komponent - En tjeneste (webpart/portlet) skal være en del av
et større fellesskap, ikke forsøke å diktere
andre. - H2A arbeidsflyt er portalen/arbeidsflytsmotoren
sitt ansvar, og ikke webparten/portletten/tjeneste
n sitt ansvar - Webparts/portlets som er for generiske flytter
bare kompleksiteten ut i konfigurasjon som
reduserer kvalitet og skal unngås
27Example Policy Rules for A2A services
- Alle tjenester må ha EN navngitt eier
- Alle tjenester skal ligge i en tjeneste katalog
- Alle tjenester skal gi forretningsverdi
- Alle tjenester skal gjøre en ting og en ting godt
- Alle tjenester skal være kategorisert (OW SOA
kategori) - Alle tjenester skal ha ett "authentication/authori
sation/endpoint strategi" - Alle tjenester skal dokumenteres med en Service
Level Agreement SLA innenfor lag (respons tid,
oppe tid)
28Example Policy Rules for Aggregated Core services
- Alle tjenester må ha EN navngitt eier
- Alle tjenester skal gi forretningsverdi
- Alle tjenester skal gjøre en ting og en ting godt
- Alle tjenester skal ha en versjonerings strategi
(ACS, CS) - Skal etableres en prosess for monitorering av
bruk av tjenester - Alle tjenester skal ha ett "authentication/authori
sation/endpoint strategi" - Alle tjenester skal dokumenteres med en Service
Level Agreement SLA - respons tid lt30ms
- oppe tid 99.995)
29Example Policy Rules for Core services
- Alle tjenester skal gjøre en ting og en ting godt
- Alle tjenester må ha EN navngitt eier
- Alle tjenester skal ha minst et Evolving Service
Endpoint - Alle tjenester skal ha både heartbeat og
trafikkrapportering - Alle tjenester skal ha ett "authentication/authori
sation/endpoint strategi" - Alle tjenester skal dokumenteres med en Service
Level Agreement SLA - respons tid lt30ms
- oppe tid 99.995)
- Core services skal ha sterk ortagonal
funksjonalitet
30Techology per Category
31Summary technology/strategy(Java technology)
32Summary technology/strategy (Java technology)
33Summary technology/strategy(.NET technology)
34Summary technology/strategy (.NET technology)
35Policy enforcement quiz
- Real-world example problem resolution
36Case Prosjekt-tjeneste med behov for ressurser
- Man har en ProsjektRepositoryService (CS) som
leverer prosjekter fra prosjektdatabasen - Nytt krav En ny klient/tjenste ønsker å vise
prosjektene med tilhørende ressurser. - Alternativ 1 Man utvider ProsjektRepositoryServi
ces med metoder som returnerer prosjekter med
tilknyttede ressurser - Alternativ 2 Man lager en ProsjektRessurs
ACS-tjeneste som kobler sammen informasjon fra
ProsjektRepositoryService og ResourceRepositorySer
vice
37Case diskusjon
- Alternativ 1 er raskeste vei til mål men
- Policy brudd
- En tjeneste skal gjøre en ting og en ting godt
- Her vil man potensielt få duplisering av
ResourceRepositoryService funksjonalitet i
ProjectRepositoryService - Vil en resource fra ProjectRepositoryService være
kompatibel med en ressurs fra ResourceRepositorySe
rvice? - Hva blir ansvarsfordelingen mellom
ProjectRepositoryService og ResourceRepositoryServ
ice når det gjelder tilgangstyring/cache
strategier m.m.? - CS tjenester skal ha orthogonal funksjonalitet.
if(!Totto) string explanation
HttpGet(http//en.wikipedia.org/wiki/Orthogonal)
Console.Write(explanation)
Orthogonality guarantees that modifying the
technical effect produced by a component of a
system neither creates nor propagates side
effects to other components of the system. The
emergent behavior of a system consisting of
components should be controlled strictly by
formal definitions of its logic and not by side
effects resulting from poor integration
Orthogonality reduces testing and development
time because it is easier to verify designs that
neither cause side effects nor depend on them.
38Case videre diskusjon
- ResourceRepositoryService har ikke naturlig
tilgang til prosjektdatabasen, men
ProjectRepositoryService har. - Alternativ 1 La prosjekt-domene objektet
inneholde en id-liste - Alternativ 2 La ResourceRepositoryService spørre
i projectdatabasen - Alternativ 3 La ProsjektRepositoryService være
ansvarlig knytningene mellom de to CoreServicene. - Og hva med kilder som ikke har fornuftige IDer,
f.eks - Kun interne GUIDs
- Konstruere logiske IDer?
39DEMO
- Categorized Services in Action
40Lorentzen Stemoco Arkitektur
Invoice
41Form for contract management (H2A)
- Advanced form based on ASP.NET
- Attached to K2.net process
- Validation and dynamic rendering
- Advanced AJAX controls for better user experience
42Sharepoint Workspace for Fixture
43Process for contract registration
- Process in compliance with ISO certification
standards - Approved by Veritas
- K2.net Workspace
- Reports
- Status
- Same view as in process designer
- Timing on task execution against baseline
- Starting point for process optimization and
measurement of ROI
44A2A Invoicing
45Key Takeaways
- Make a concious decision about your integration
strategy - Consider Service Categorization seriously if SOA
is your current strategy, or might be in the
future - Consider your size and resources
- Have clear ROI goals
- Observe that a SOA strategy might have potential
for your business if you do it right. The
potential is in the processes and loosely
coupled, high cohesive services
46Takk for oppmerksomheten!
- Totto totto_at_objectware.no
- Mads mads_at_objectware.no
- Øystein oystein.garshol_at_objectware.no
FÃ¥ med dere neste SOA Sesjon Developers have
always known how to deliver successful SOA!
47Appendix