SlideShare a Scribd company logo
1 of 45
SERVICE ORIENTED ARCHITECTURE
WHAT IS IT AND WHAT IS IT GOOD FOR?
N E T C O M PA N Y L E C T U R E S E R I E S
2 0 1 5
R AS M U S R O S E N Q V I S T P E T E R S E N
(Dr.) Rasmus Rosenqvist Petersen
Consultant
Netcompany since August 2015
(Ph.d. fra Syddansk Universitet, og senest 3 år i Cambridge, England)
Sector: Unions software
Technologies: Java/JEE and Microsoft .NET
• Approx. 700+ consultants
– M.Sc. or Ph.D. typically from DTU, DIKU, ITU, ÅU, AAU, SDU
– Excel academically
• Offices in Copenhagen (HQ), Aarhus, Aalborg, Odense and Warszawa
• We deliver business-critical IT solutions
– Systems integration and SOA
– Portals
– Business applications
– Application and Facility Management
• Our customers include
– Financials Nordea, Saxo Bank, Letpension, PFA pension, FORCA, AP Pension
– Government KOMBIT, SKAT, Økonomistyrelsen, Undervisningsministeriet
– Industry Carlsberg, Dong Energy, Pandora
– Commerce Novozymes, Danmarks Apotekerforening
– Media JP/Politikens Hus, Aller
– Membership organizations IDA, HK, Dansk Erhverv
– Telco Telenor, TDC, Telmore
ABOUT NETCOMPANY
WHAT I WILL TALK ABOUT
SOA:
• SOA Concepts
• Describing a Service
• Designing Services
Mixing in
• A few cases with questions :-)
READY?
S E R V I C E O R I E N T E D A R C H I T E C T U R E
1
S O A C O N C E P T S
Contrac t -based
L o o s e c o u p l i n g
Abs tr ac tion Reusability
AUTONOMY
Discoverability
STATELESSN ESS
T H E H Y P E C Y C L E
W H A T H A P P E N E D A F T E R 2 0 0 9 ?
FIRST
SOA isn’t a technology.
SECOND
SOA isn’t new.
SOA rests on centuries old principles.
…yes, centuries!
B U S I N E S S S E R V I C E S
R E C E P T I O N
F I N A N C E
A C C O U N T I N G A R C H I V E
S A L E S
A D M I N I S T R A T I O N
Business case:
University of Copenhagen
• What are the products?
• What are the business services?
• (think in terms of service areas and units)
R E C E P T I O N
F I N A N C E
A C C O U N T I N G A R C H I V E
S A L E S
A D M I N I S T R A T I O N
B U S I N E S S S E R V I C E S
ADMINIS
TRATION
SALES
ACCOUN
TING
ARCHIV
E
FINANCE
RECEPTI
ON
D E P E N D E N C I E S
SALES ACCOUNTING
Open Account
D E P E N D E N C I E S
ADMINISTRATION
SALES
ACCOUNTING
ARCHIVE
FINANCE
RECEPTION
S E R V I C E D E S I G N P R I N C I P L E S
S E R V I C E D E S I G N P R I N C I P L E S
S O U N D B U S I N E S S P R I N C I P L E S
S O A
ADMINISTRATION
SALES
ACCOUNTING
ARCHIVE
FINANCE
RECEPTION
MODEL
Case:
EFI
What
is
EFI?
Case: EFI
• 1.000.000.000 DKK investment lost
• Accenture: ”The worlds most complex system for tax debt
recovery” – if it had worked.
• No requirements specification (400 out of typically 5000)
• EFI tightly coupled to other system, DMI
• Two suppliers, delivering the two systems, as separate
projects
• Better to deal with two monopolies than one? No!
• SOA was used to tie the two systems together
• Why was that problematic?
http://www.version2.dk/artikel/derfor-gik-det-galt-efi-systemet-412139
THIRD
SOA isn’t a dogma
THIRD
SOA isn’t a dogma
S O A M A N I F E S T O
www.soa-manifesto.org
P R I O R I T I E S
Business value over technical strategy
Strategic goals over project-specific benefits
Intrinsic interoperability over custom integration
Shared services over specific-purpose implementations
Flexibility over optimization
Evolutionary refinement over pursuit of initial perfection
G U I D I N G P R I N C I P L E S
Respect the social and power structure of the organization. Recognize that SOA ultimately demands change on many
levels. The scope of SOA adoption can vary. Keep efforts manageable and within meaningful boundaries. Products and
standards alone will neither give you SOA nor apply the service orientation paradigm for you. SOA can be realized
through a variety of technologies and standards. Establish a uniform set of enterprise standards and policies …
D E F I N I T I O N
2
D E S C R I B I N G A S E R V I C E
...a client who satisfies all the constraints
listed is entitled to the benefits. This is the
No Hidden Clause rule.
The No Hidden Clauses principle does not
prevent us from including references,
implicit or explicit, to rules not physical part
of the contract.
Computer, Vol. 25, No. 10. (1992), pp. 40-51.
A contract is a common agreement
with benefits for all participants.
The Beatles’ first contract
A more recent contract
What is a contract?
A real world example
Domain model from customer
Service description from customer
XML type definition
Java service implementation stub
Complete vs loose contract
A complete contract
Parts of the contract differ in degree of
detail/specificity. From more to less detail:
• Security model, infrastructure
• Input / output complex types
• Simpler xml types
• Normal behavior
• Restrictions between optional elements
• Expected business exceptions
• Extreme behavior (e.g. no elements
found)
• Runtime exceptions (e.g. time out, full
disk)
• Transactional integrity
• Concurrency (even on www)
… is not always a possibility
Therefore, take great care in documenting
the decisions made during implementation:
• Record changes, and the motivation for
these
• Beware of other usages of type
• Detailed behavior in service description.
• Restrictions between optional elements
• Reuse exception types across services
• Agree on common pattern for services
• Wrap in reusable exception types
• Part of system architecture not service
• Concurrency (even on www)
“Contract first” vs “Code first”
• Higher detail level
• Code independent
• Greater Interoperability
• Built in governance
• Less detailed
• Developer oriented
• Easy to get started
• Easy to break contract
WSDL
Code
Code
Code
Case: contract
• Complete elements? • Looser elements?
University Government
Student
graduating
Money
3
D E S I G N I N G S E R V I C E S
Domain models and services
• Model your data tables directly from
communication formats
• Don’t share physical types between
internal and external services.
Transformations in one system is easier
than changing two systems.
• Loose coupling of systems
• Provide a global logic domain model as
part of the contract, but leave external
physical communication types flexible.
• Be aware that reuse of types between
services is strong coupling
• Remember that services are used
together. Output will be used as input
by others.
Do’s Don'ts
Simple and more complex services
Keeping results in memory is a problem with large
result sets. Consider streaming services.
Two separate systems for vehicles and license
plates and a proxy service for an external
system with information about people.
Simple services for Create, Read, Update and
Delete, but what about more complex
services?
FindVehiclesWithPlateMatching(pattern) {
FindPlates(pattern)
For each plate
result +=ReadVehicle(VIN)
return result;
}
RegisterVechicleToPersonAndAssignPlate(VIN, person) {
UpdateVehicle // ad owner
GetNextAvailablePlate
UpdatePlate // add VIN
}
NotifyPoliceAboutExpiredPlates(startDate, endDate) {
GetAllExpiredPlates(startDate, endDate);
Foreach Plate
FindVehicle(VIN)
FindPersion(PersonID)
result += (Vehicle, Plate, Person)
}
Issues with concurrency and transactional integrity
“Batch job as service” with join over web service per
element and non-domain information (address).
CRUD, Find or Process service?
• Filtering on fields and values
• Avoid joining over services
• Behavior for not found and large
result sets.
Not all services are born alike!
Searching for entities via services
• On create, return assigned id
• Optional/required might differ in
create and read.
• Update by sending changes or
overwrite whole entity.
• Versioning on update can provide
optimistic locking
• Keep old versions on update and
delete operations
Create, Read, Update and Delete
• Sequences and available data
(order of creation)
• Avoid joining over services
• Consider asynchronous patterns
e.g. message queues
• Candidates for BPM
Processes in services
Bulk updates
• Avoid joining over services
• Let update services take a list of
elements to update
MESSAGE EXCHANGE PATTERNS
Consumer
Provider
S Y N C H R O N O U S A S Y N C H R O N O U S
Consumer
Provider
Consumer
Provider
Request/Response Request/Response One-way
Question:
Synchronous vs. asynchronous
• Positives? Negatives?
• Which is better for a service oriented
architecture?
Consumer
Provider
S Y N C H R O N O U S A S Y N C H R O N O U S
Consumer
Provider
Consumer
Provider
Synchronous = Poor scalability
Member Portal
CRM Service Pension Service Finance Service
Enterprise Service Bus
1
2 3 4
Wait time of 1 is the sum
of 2, 3 and 4 plus ESB
time.
AN EFFECIENT SOA
IS
ASYNCHRONOUS
S O A
I S H E R E T O
STAY!
T H A T ’ S A L L !
Q U E S T I O N S
?

More Related Content

Similar to SOA guest lecture at DIKU by Dr. Rasmus Petersen (Dec 17 2015)

Lessions Learned - Service Oriented Architecture
Lessions Learned - Service Oriented Architecture Lessions Learned - Service Oriented Architecture
Lessions Learned - Service Oriented Architecture Helge Olav Aarstein
 
SOA Service Oriented Architecture
SOA Service Oriented ArchitectureSOA Service Oriented Architecture
SOA Service Oriented ArchitectureVinay Rajadhyaksha
 
Ws Soa V6 Theory And Practice
Ws Soa V6 Theory And PracticeWs Soa V6 Theory And Practice
Ws Soa V6 Theory And PracticePini Cohen
 
Cloud computing
Cloud computingCloud computing
Cloud computingimaginoink
 
Migrating SOA
Migrating SOAMigrating SOA
Migrating SOACoi Xay
 
From the Monolith to Microservices - CraftConf 2015
From the Monolith to Microservices - CraftConf 2015From the Monolith to Microservices - CraftConf 2015
From the Monolith to Microservices - CraftConf 2015Randy Shoup
 
Patterns&Antipatternsof SOA
Patterns&Antipatternsof SOAPatterns&Antipatternsof SOA
Patterns&Antipatternsof SOAMohamed Samy
 
Daniel Jasník - ITSMF pro cloudové služby - AID2019
Daniel Jasník - ITSMF pro cloudové služby - AID2019Daniel Jasník - ITSMF pro cloudové služby - AID2019
Daniel Jasník - ITSMF pro cloudové služby - AID2019ALVAO
 
E governance and enteerprise architecture
E governance and enteerprise architectureE governance and enteerprise architecture
E governance and enteerprise architectureKumar
 
Seamless Integration of Data in E Government
Seamless Integration of Data in E Government Seamless Integration of Data in E Government
Seamless Integration of Data in E Government WSO2
 
SOA Mainframe Service Architecture and Enablement Practices Best and Worst Pr...
SOA Mainframe Service Architecture and Enablement Practices Best and Worst Pr...SOA Mainframe Service Architecture and Enablement Practices Best and Worst Pr...
SOA Mainframe Service Architecture and Enablement Practices Best and Worst Pr...Michael Erichsen
 
Clean architecture
Clean architectureClean architecture
Clean architecture.NET Crowd
 
OpenEdge Character UI - Where to go?
OpenEdge Character UI - Where to go?OpenEdge Character UI - Where to go?
OpenEdge Character UI - Where to go?Gabriel Lucaciu
 
SOA (Service Oriented Architecture)
SOA (Service Oriented Architecture)SOA (Service Oriented Architecture)
SOA (Service Oriented Architecture)Annie Comp
 
IWMW 2000: Self Evident Applications for Universities
IWMW 2000: Self Evident Applications for UniversitiesIWMW 2000: Self Evident Applications for Universities
IWMW 2000: Self Evident Applications for UniversitiesIWMW
 
The "Why", "What" and "How" of Microservices
The "Why", "What" and "How" of Microservices The "Why", "What" and "How" of Microservices
The "Why", "What" and "How" of Microservices INPAY
 
MuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration ArchitectureMuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration ArchitectureKim Clark
 
Clarisoft Software Development Process (Lunch & Learn Presentation)
Clarisoft Software Development Process (Lunch & Learn Presentation)Clarisoft Software Development Process (Lunch & Learn Presentation)
Clarisoft Software Development Process (Lunch & Learn Presentation)Robert Haines
 

Similar to SOA guest lecture at DIKU by Dr. Rasmus Petersen (Dec 17 2015) (20)

Lessions Learned - Service Oriented Architecture
Lessions Learned - Service Oriented Architecture Lessions Learned - Service Oriented Architecture
Lessions Learned - Service Oriented Architecture
 
SOA Service Oriented Architecture
SOA Service Oriented ArchitectureSOA Service Oriented Architecture
SOA Service Oriented Architecture
 
What are microservices
What are microservicesWhat are microservices
What are microservices
 
Ws Soa V6 Theory And Practice
Ws Soa V6 Theory And PracticeWs Soa V6 Theory And Practice
Ws Soa V6 Theory And Practice
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Soa 2013
Soa 2013Soa 2013
Soa 2013
 
Migrating SOA
Migrating SOAMigrating SOA
Migrating SOA
 
From the Monolith to Microservices - CraftConf 2015
From the Monolith to Microservices - CraftConf 2015From the Monolith to Microservices - CraftConf 2015
From the Monolith to Microservices - CraftConf 2015
 
Patterns&Antipatternsof SOA
Patterns&Antipatternsof SOAPatterns&Antipatternsof SOA
Patterns&Antipatternsof SOA
 
Daniel Jasník - ITSMF pro cloudové služby - AID2019
Daniel Jasník - ITSMF pro cloudové služby - AID2019Daniel Jasník - ITSMF pro cloudové služby - AID2019
Daniel Jasník - ITSMF pro cloudové služby - AID2019
 
E governance and enteerprise architecture
E governance and enteerprise architectureE governance and enteerprise architecture
E governance and enteerprise architecture
 
Seamless Integration of Data in E Government
Seamless Integration of Data in E Government Seamless Integration of Data in E Government
Seamless Integration of Data in E Government
 
SOA Mainframe Service Architecture and Enablement Practices Best and Worst Pr...
SOA Mainframe Service Architecture and Enablement Practices Best and Worst Pr...SOA Mainframe Service Architecture and Enablement Practices Best and Worst Pr...
SOA Mainframe Service Architecture and Enablement Practices Best and Worst Pr...
 
Clean architecture
Clean architectureClean architecture
Clean architecture
 
OpenEdge Character UI - Where to go?
OpenEdge Character UI - Where to go?OpenEdge Character UI - Where to go?
OpenEdge Character UI - Where to go?
 
SOA (Service Oriented Architecture)
SOA (Service Oriented Architecture)SOA (Service Oriented Architecture)
SOA (Service Oriented Architecture)
 
IWMW 2000: Self Evident Applications for Universities
IWMW 2000: Self Evident Applications for UniversitiesIWMW 2000: Self Evident Applications for Universities
IWMW 2000: Self Evident Applications for Universities
 
The "Why", "What" and "How" of Microservices
The "Why", "What" and "How" of Microservices The "Why", "What" and "How" of Microservices
The "Why", "What" and "How" of Microservices
 
MuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration ArchitectureMuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration Architecture
 
Clarisoft Software Development Process (Lunch & Learn Presentation)
Clarisoft Software Development Process (Lunch & Learn Presentation)Clarisoft Software Development Process (Lunch & Learn Presentation)
Clarisoft Software Development Process (Lunch & Learn Presentation)
 

Recently uploaded

Delhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Callshivangimorya083
 
Call me @ 9892124323 Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
Call me @ 9892124323  Cheap Rate Call Girls in Vashi with Real Photo 100% SecureCall me @ 9892124323  Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
Call me @ 9892124323 Cheap Rate Call Girls in Vashi with Real Photo 100% SecurePooja Nehwal
 
Mature dropshipping via API with DroFx.pptx
Mature dropshipping via API with DroFx.pptxMature dropshipping via API with DroFx.pptx
Mature dropshipping via API with DroFx.pptxolyaivanovalion
 
{Pooja: 9892124323 } Call Girl in Mumbai | Jas Kaur Rate 4500 Free Hotel Del...
{Pooja:  9892124323 } Call Girl in Mumbai | Jas Kaur Rate 4500 Free Hotel Del...{Pooja:  9892124323 } Call Girl in Mumbai | Jas Kaur Rate 4500 Free Hotel Del...
{Pooja: 9892124323 } Call Girl in Mumbai | Jas Kaur Rate 4500 Free Hotel Del...Pooja Nehwal
 
Call Girls 🫤 Dwarka ➡️ 9711199171 ➡️ Delhi 🫦 Two shot with one girl
Call Girls 🫤 Dwarka ➡️ 9711199171 ➡️ Delhi 🫦 Two shot with one girlCall Girls 🫤 Dwarka ➡️ 9711199171 ➡️ Delhi 🫦 Two shot with one girl
Call Girls 🫤 Dwarka ➡️ 9711199171 ➡️ Delhi 🫦 Two shot with one girlkumarajju5765
 
Smarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptxSmarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptxolyaivanovalion
 
BabyOno dropshipping via API with DroFx.pptx
BabyOno dropshipping via API with DroFx.pptxBabyOno dropshipping via API with DroFx.pptx
BabyOno dropshipping via API with DroFx.pptxolyaivanovalion
 
VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130
VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130
VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130Suhani Kapoor
 
꧁❤ Greater Noida Call Girls Delhi ❤꧂ 9711199171 ☎️ Hard And Sexy Vip Call
꧁❤ Greater Noida Call Girls Delhi ❤꧂ 9711199171 ☎️ Hard And Sexy Vip Call꧁❤ Greater Noida Call Girls Delhi ❤꧂ 9711199171 ☎️ Hard And Sexy Vip Call
꧁❤ Greater Noida Call Girls Delhi ❤꧂ 9711199171 ☎️ Hard And Sexy Vip Callshivangimorya083
 
Ravak dropshipping via API with DroFx.pptx
Ravak dropshipping via API with DroFx.pptxRavak dropshipping via API with DroFx.pptx
Ravak dropshipping via API with DroFx.pptxolyaivanovalion
 
VidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptxVidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptxolyaivanovalion
 
Delhi Call Girls Punjabi Bagh 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Punjabi Bagh 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls Punjabi Bagh 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Punjabi Bagh 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Callshivangimorya083
 
BigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptxBigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptxolyaivanovalion
 
ALSO dropshipping via API with DroFx.pptx
ALSO dropshipping via API with DroFx.pptxALSO dropshipping via API with DroFx.pptx
ALSO dropshipping via API with DroFx.pptxolyaivanovalion
 
CebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptxCebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptxolyaivanovalion
 
Log Analysis using OSSEC sasoasasasas.pptx
Log Analysis using OSSEC sasoasasasas.pptxLog Analysis using OSSEC sasoasasasas.pptx
Log Analysis using OSSEC sasoasasasas.pptxJohnnyPlasten
 
100-Concepts-of-AI by Anupama Kate .pptx
100-Concepts-of-AI by Anupama Kate .pptx100-Concepts-of-AI by Anupama Kate .pptx
100-Concepts-of-AI by Anupama Kate .pptxAnupama Kate
 
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...amitlee9823
 
Halmar dropshipping via API with DroFx
Halmar  dropshipping  via API with DroFxHalmar  dropshipping  via API with DroFx
Halmar dropshipping via API with DroFxolyaivanovalion
 
Introduction-to-Machine-Learning (1).pptx
Introduction-to-Machine-Learning (1).pptxIntroduction-to-Machine-Learning (1).pptx
Introduction-to-Machine-Learning (1).pptxfirstjob4
 

Recently uploaded (20)

Delhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
 
Call me @ 9892124323 Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
Call me @ 9892124323  Cheap Rate Call Girls in Vashi with Real Photo 100% SecureCall me @ 9892124323  Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
Call me @ 9892124323 Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
 
Mature dropshipping via API with DroFx.pptx
Mature dropshipping via API with DroFx.pptxMature dropshipping via API with DroFx.pptx
Mature dropshipping via API with DroFx.pptx
 
{Pooja: 9892124323 } Call Girl in Mumbai | Jas Kaur Rate 4500 Free Hotel Del...
{Pooja:  9892124323 } Call Girl in Mumbai | Jas Kaur Rate 4500 Free Hotel Del...{Pooja:  9892124323 } Call Girl in Mumbai | Jas Kaur Rate 4500 Free Hotel Del...
{Pooja: 9892124323 } Call Girl in Mumbai | Jas Kaur Rate 4500 Free Hotel Del...
 
Call Girls 🫤 Dwarka ➡️ 9711199171 ➡️ Delhi 🫦 Two shot with one girl
Call Girls 🫤 Dwarka ➡️ 9711199171 ➡️ Delhi 🫦 Two shot with one girlCall Girls 🫤 Dwarka ➡️ 9711199171 ➡️ Delhi 🫦 Two shot with one girl
Call Girls 🫤 Dwarka ➡️ 9711199171 ➡️ Delhi 🫦 Two shot with one girl
 
Smarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptxSmarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptx
 
BabyOno dropshipping via API with DroFx.pptx
BabyOno dropshipping via API with DroFx.pptxBabyOno dropshipping via API with DroFx.pptx
BabyOno dropshipping via API with DroFx.pptx
 
VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130
VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130
VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130
 
꧁❤ Greater Noida Call Girls Delhi ❤꧂ 9711199171 ☎️ Hard And Sexy Vip Call
꧁❤ Greater Noida Call Girls Delhi ❤꧂ 9711199171 ☎️ Hard And Sexy Vip Call꧁❤ Greater Noida Call Girls Delhi ❤꧂ 9711199171 ☎️ Hard And Sexy Vip Call
꧁❤ Greater Noida Call Girls Delhi ❤꧂ 9711199171 ☎️ Hard And Sexy Vip Call
 
Ravak dropshipping via API with DroFx.pptx
Ravak dropshipping via API with DroFx.pptxRavak dropshipping via API with DroFx.pptx
Ravak dropshipping via API with DroFx.pptx
 
VidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptxVidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptx
 
Delhi Call Girls Punjabi Bagh 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Punjabi Bagh 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls Punjabi Bagh 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Punjabi Bagh 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
 
BigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptxBigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptx
 
ALSO dropshipping via API with DroFx.pptx
ALSO dropshipping via API with DroFx.pptxALSO dropshipping via API with DroFx.pptx
ALSO dropshipping via API with DroFx.pptx
 
CebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptxCebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptx
 
Log Analysis using OSSEC sasoasasasas.pptx
Log Analysis using OSSEC sasoasasasas.pptxLog Analysis using OSSEC sasoasasasas.pptx
Log Analysis using OSSEC sasoasasasas.pptx
 
100-Concepts-of-AI by Anupama Kate .pptx
100-Concepts-of-AI by Anupama Kate .pptx100-Concepts-of-AI by Anupama Kate .pptx
100-Concepts-of-AI by Anupama Kate .pptx
 
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
 
Halmar dropshipping via API with DroFx
Halmar  dropshipping  via API with DroFxHalmar  dropshipping  via API with DroFx
Halmar dropshipping via API with DroFx
 
Introduction-to-Machine-Learning (1).pptx
Introduction-to-Machine-Learning (1).pptxIntroduction-to-Machine-Learning (1).pptx
Introduction-to-Machine-Learning (1).pptx
 

SOA guest lecture at DIKU by Dr. Rasmus Petersen (Dec 17 2015)

  • 1. SERVICE ORIENTED ARCHITECTURE WHAT IS IT AND WHAT IS IT GOOD FOR? N E T C O M PA N Y L E C T U R E S E R I E S 2 0 1 5
  • 2. R AS M U S R O S E N Q V I S T P E T E R S E N
  • 3. (Dr.) Rasmus Rosenqvist Petersen Consultant Netcompany since August 2015 (Ph.d. fra Syddansk Universitet, og senest 3 år i Cambridge, England) Sector: Unions software Technologies: Java/JEE and Microsoft .NET
  • 4. • Approx. 700+ consultants – M.Sc. or Ph.D. typically from DTU, DIKU, ITU, ÅU, AAU, SDU – Excel academically • Offices in Copenhagen (HQ), Aarhus, Aalborg, Odense and Warszawa • We deliver business-critical IT solutions – Systems integration and SOA – Portals – Business applications – Application and Facility Management • Our customers include – Financials Nordea, Saxo Bank, Letpension, PFA pension, FORCA, AP Pension – Government KOMBIT, SKAT, Økonomistyrelsen, Undervisningsministeriet – Industry Carlsberg, Dong Energy, Pandora – Commerce Novozymes, Danmarks Apotekerforening – Media JP/Politikens Hus, Aller – Membership organizations IDA, HK, Dansk Erhverv – Telco Telenor, TDC, Telmore ABOUT NETCOMPANY
  • 5. WHAT I WILL TALK ABOUT SOA: • SOA Concepts • Describing a Service • Designing Services Mixing in • A few cases with questions :-)
  • 7. S E R V I C E O R I E N T E D A R C H I T E C T U R E
  • 8. 1 S O A C O N C E P T S
  • 9. Contrac t -based L o o s e c o u p l i n g Abs tr ac tion Reusability AUTONOMY Discoverability STATELESSN ESS
  • 10. T H E H Y P E C Y C L E
  • 11. W H A T H A P P E N E D A F T E R 2 0 0 9 ?
  • 12. FIRST SOA isn’t a technology.
  • 13. SECOND SOA isn’t new. SOA rests on centuries old principles. …yes, centuries!
  • 14.
  • 15.
  • 16. B U S I N E S S S E R V I C E S R E C E P T I O N F I N A N C E A C C O U N T I N G A R C H I V E S A L E S A D M I N I S T R A T I O N
  • 17. Business case: University of Copenhagen • What are the products? • What are the business services? • (think in terms of service areas and units) R E C E P T I O N F I N A N C E A C C O U N T I N G A R C H I V E S A L E S A D M I N I S T R A T I O N
  • 18. B U S I N E S S S E R V I C E S ADMINIS TRATION SALES ACCOUN TING ARCHIV E FINANCE RECEPTI ON
  • 19. D E P E N D E N C I E S SALES ACCOUNTING Open Account
  • 20. D E P E N D E N C I E S ADMINISTRATION SALES ACCOUNTING ARCHIVE FINANCE RECEPTION
  • 21. S E R V I C E D E S I G N P R I N C I P L E S
  • 22. S E R V I C E D E S I G N P R I N C I P L E S S O U N D B U S I N E S S P R I N C I P L E S
  • 25. Case: EFI • 1.000.000.000 DKK investment lost • Accenture: ”The worlds most complex system for tax debt recovery” – if it had worked. • No requirements specification (400 out of typically 5000) • EFI tightly coupled to other system, DMI • Two suppliers, delivering the two systems, as separate projects • Better to deal with two monopolies than one? No! • SOA was used to tie the two systems together • Why was that problematic? http://www.version2.dk/artikel/derfor-gik-det-galt-efi-systemet-412139
  • 28. S O A M A N I F E S T O www.soa-manifesto.org P R I O R I T I E S Business value over technical strategy Strategic goals over project-specific benefits Intrinsic interoperability over custom integration Shared services over specific-purpose implementations Flexibility over optimization Evolutionary refinement over pursuit of initial perfection G U I D I N G P R I N C I P L E S Respect the social and power structure of the organization. Recognize that SOA ultimately demands change on many levels. The scope of SOA adoption can vary. Keep efforts manageable and within meaningful boundaries. Products and standards alone will neither give you SOA nor apply the service orientation paradigm for you. SOA can be realized through a variety of technologies and standards. Establish a uniform set of enterprise standards and policies … D E F I N I T I O N
  • 29. 2 D E S C R I B I N G A S E R V I C E
  • 30. ...a client who satisfies all the constraints listed is entitled to the benefits. This is the No Hidden Clause rule. The No Hidden Clauses principle does not prevent us from including references, implicit or explicit, to rules not physical part of the contract. Computer, Vol. 25, No. 10. (1992), pp. 40-51. A contract is a common agreement with benefits for all participants. The Beatles’ first contract A more recent contract What is a contract?
  • 31. A real world example Domain model from customer Service description from customer XML type definition Java service implementation stub
  • 32. Complete vs loose contract A complete contract Parts of the contract differ in degree of detail/specificity. From more to less detail: • Security model, infrastructure • Input / output complex types • Simpler xml types • Normal behavior • Restrictions between optional elements • Expected business exceptions • Extreme behavior (e.g. no elements found) • Runtime exceptions (e.g. time out, full disk) • Transactional integrity • Concurrency (even on www) … is not always a possibility Therefore, take great care in documenting the decisions made during implementation: • Record changes, and the motivation for these • Beware of other usages of type • Detailed behavior in service description. • Restrictions between optional elements • Reuse exception types across services • Agree on common pattern for services • Wrap in reusable exception types • Part of system architecture not service • Concurrency (even on www)
  • 33. “Contract first” vs “Code first” • Higher detail level • Code independent • Greater Interoperability • Built in governance • Less detailed • Developer oriented • Easy to get started • Easy to break contract WSDL Code Code Code
  • 34. Case: contract • Complete elements? • Looser elements? University Government Student graduating Money
  • 35. 3 D E S I G N I N G S E R V I C E S
  • 36. Domain models and services • Model your data tables directly from communication formats • Don’t share physical types between internal and external services. Transformations in one system is easier than changing two systems. • Loose coupling of systems • Provide a global logic domain model as part of the contract, but leave external physical communication types flexible. • Be aware that reuse of types between services is strong coupling • Remember that services are used together. Output will be used as input by others. Do’s Don'ts
  • 37. Simple and more complex services Keeping results in memory is a problem with large result sets. Consider streaming services. Two separate systems for vehicles and license plates and a proxy service for an external system with information about people. Simple services for Create, Read, Update and Delete, but what about more complex services? FindVehiclesWithPlateMatching(pattern) { FindPlates(pattern) For each plate result +=ReadVehicle(VIN) return result; } RegisterVechicleToPersonAndAssignPlate(VIN, person) { UpdateVehicle // ad owner GetNextAvailablePlate UpdatePlate // add VIN } NotifyPoliceAboutExpiredPlates(startDate, endDate) { GetAllExpiredPlates(startDate, endDate); Foreach Plate FindVehicle(VIN) FindPersion(PersonID) result += (Vehicle, Plate, Person) } Issues with concurrency and transactional integrity “Batch job as service” with join over web service per element and non-domain information (address).
  • 38. CRUD, Find or Process service? • Filtering on fields and values • Avoid joining over services • Behavior for not found and large result sets. Not all services are born alike! Searching for entities via services • On create, return assigned id • Optional/required might differ in create and read. • Update by sending changes or overwrite whole entity. • Versioning on update can provide optimistic locking • Keep old versions on update and delete operations Create, Read, Update and Delete • Sequences and available data (order of creation) • Avoid joining over services • Consider asynchronous patterns e.g. message queues • Candidates for BPM Processes in services Bulk updates • Avoid joining over services • Let update services take a list of elements to update
  • 39. MESSAGE EXCHANGE PATTERNS Consumer Provider S Y N C H R O N O U S A S Y N C H R O N O U S Consumer Provider Consumer Provider Request/Response Request/Response One-way
  • 40. Question: Synchronous vs. asynchronous • Positives? Negatives? • Which is better for a service oriented architecture? Consumer Provider S Y N C H R O N O U S A S Y N C H R O N O U S Consumer Provider Consumer Provider
  • 41. Synchronous = Poor scalability Member Portal CRM Service Pension Service Finance Service Enterprise Service Bus 1 2 3 4 Wait time of 1 is the sum of 2, 3 and 4 plus ESB time.
  • 43. S O A I S H E R E T O STAY!
  • 44. T H A T ’ S A L L !
  • 45. Q U E S T I O N S ?