SlideShare ist ein Scribd-Unternehmen logo
1 von 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
?

Weitere ähnliche Inhalte

Ähnlich wie 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
 

Ähnlich wie 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)
 

Kürzlich hochgeladen

Conf42-LLM_Adding Generative AI to Real-Time Streaming Pipelines
Conf42-LLM_Adding Generative AI to Real-Time Streaming PipelinesConf42-LLM_Adding Generative AI to Real-Time Streaming Pipelines
Conf42-LLM_Adding Generative AI to Real-Time Streaming PipelinesTimothy Spann
 
detection and classification of knee osteoarthritis.pptx
detection and classification of knee osteoarthritis.pptxdetection and classification of knee osteoarthritis.pptx
detection and classification of knee osteoarthritis.pptxAleenaJamil4
 
How we prevented account sharing with MFA
How we prevented account sharing with MFAHow we prevented account sharing with MFA
How we prevented account sharing with MFAAndrei Kaleshka
 
Call Us ➥97111√47426🤳Call Girls in Aerocity (Delhi NCR)
Call Us ➥97111√47426🤳Call Girls in Aerocity (Delhi NCR)Call Us ➥97111√47426🤳Call Girls in Aerocity (Delhi NCR)
Call Us ➥97111√47426🤳Call Girls in Aerocity (Delhi NCR)jennyeacort
 
Identifying Appropriate Test Statistics Involving Population Mean
Identifying Appropriate Test Statistics Involving Population MeanIdentifying Appropriate Test Statistics Involving Population Mean
Identifying Appropriate Test Statistics Involving Population MeanMYRABACSAFRA2
 
专业一比一美国俄亥俄大学毕业证成绩单pdf电子版制作修改
专业一比一美国俄亥俄大学毕业证成绩单pdf电子版制作修改专业一比一美国俄亥俄大学毕业证成绩单pdf电子版制作修改
专业一比一美国俄亥俄大学毕业证成绩单pdf电子版制作修改yuu sss
 
ASML's Taxonomy Adventure by Daniel Canter
ASML's Taxonomy Adventure by Daniel CanterASML's Taxonomy Adventure by Daniel Canter
ASML's Taxonomy Adventure by Daniel Cantervoginip
 
Generative AI for Social Good at Open Data Science East 2024
Generative AI for Social Good at Open Data Science East 2024Generative AI for Social Good at Open Data Science East 2024
Generative AI for Social Good at Open Data Science East 2024Colleen Farrelly
 
Biometric Authentication: The Evolution, Applications, Benefits and Challenge...
Biometric Authentication: The Evolution, Applications, Benefits and Challenge...Biometric Authentication: The Evolution, Applications, Benefits and Challenge...
Biometric Authentication: The Evolution, Applications, Benefits and Challenge...GQ Research
 
NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...
NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...
NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...Amil Baba Dawood bangali
 
毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degreeyuu sss
 
Vision, Mission, Goals and Objectives ppt..pptx
Vision, Mission, Goals and Objectives ppt..pptxVision, Mission, Goals and Objectives ppt..pptx
Vision, Mission, Goals and Objectives ppt..pptxellehsormae
 
Student Profile Sample report on improving academic performance by uniting gr...
Student Profile Sample report on improving academic performance by uniting gr...Student Profile Sample report on improving academic performance by uniting gr...
Student Profile Sample report on improving academic performance by uniting gr...Seán Kennedy
 
20240419 - Measurecamp Amsterdam - SAM.pdf
20240419 - Measurecamp Amsterdam - SAM.pdf20240419 - Measurecamp Amsterdam - SAM.pdf
20240419 - Measurecamp Amsterdam - SAM.pdfHuman37
 
Real-Time AI Streaming - AI Max Princeton
Real-Time AI  Streaming - AI Max PrincetonReal-Time AI  Streaming - AI Max Princeton
Real-Time AI Streaming - AI Max PrincetonTimothy Spann
 
April 2024 - NLIT Cloudera Real-Time LLM Streaming 2024
April 2024 - NLIT Cloudera Real-Time LLM Streaming 2024April 2024 - NLIT Cloudera Real-Time LLM Streaming 2024
April 2024 - NLIT Cloudera Real-Time LLM Streaming 2024Timothy Spann
 
DBA Basics: Getting Started with Performance Tuning.pdf
DBA Basics: Getting Started with Performance Tuning.pdfDBA Basics: Getting Started with Performance Tuning.pdf
DBA Basics: Getting Started with Performance Tuning.pdfJohn Sterrett
 
LLMs, LMMs, their Improvement Suggestions and the Path towards AGI
LLMs, LMMs, their Improvement Suggestions and the Path towards AGILLMs, LMMs, their Improvement Suggestions and the Path towards AGI
LLMs, LMMs, their Improvement Suggestions and the Path towards AGIThomas Poetter
 
Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024
Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024
Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024thyngster
 
Student profile product demonstration on grades, ability, well-being and mind...
Student profile product demonstration on grades, ability, well-being and mind...Student profile product demonstration on grades, ability, well-being and mind...
Student profile product demonstration on grades, ability, well-being and mind...Seán Kennedy
 

Kürzlich hochgeladen (20)

Conf42-LLM_Adding Generative AI to Real-Time Streaming Pipelines
Conf42-LLM_Adding Generative AI to Real-Time Streaming PipelinesConf42-LLM_Adding Generative AI to Real-Time Streaming Pipelines
Conf42-LLM_Adding Generative AI to Real-Time Streaming Pipelines
 
detection and classification of knee osteoarthritis.pptx
detection and classification of knee osteoarthritis.pptxdetection and classification of knee osteoarthritis.pptx
detection and classification of knee osteoarthritis.pptx
 
How we prevented account sharing with MFA
How we prevented account sharing with MFAHow we prevented account sharing with MFA
How we prevented account sharing with MFA
 
Call Us ➥97111√47426🤳Call Girls in Aerocity (Delhi NCR)
Call Us ➥97111√47426🤳Call Girls in Aerocity (Delhi NCR)Call Us ➥97111√47426🤳Call Girls in Aerocity (Delhi NCR)
Call Us ➥97111√47426🤳Call Girls in Aerocity (Delhi NCR)
 
Identifying Appropriate Test Statistics Involving Population Mean
Identifying Appropriate Test Statistics Involving Population MeanIdentifying Appropriate Test Statistics Involving Population Mean
Identifying Appropriate Test Statistics Involving Population Mean
 
专业一比一美国俄亥俄大学毕业证成绩单pdf电子版制作修改
专业一比一美国俄亥俄大学毕业证成绩单pdf电子版制作修改专业一比一美国俄亥俄大学毕业证成绩单pdf电子版制作修改
专业一比一美国俄亥俄大学毕业证成绩单pdf电子版制作修改
 
ASML's Taxonomy Adventure by Daniel Canter
ASML's Taxonomy Adventure by Daniel CanterASML's Taxonomy Adventure by Daniel Canter
ASML's Taxonomy Adventure by Daniel Canter
 
Generative AI for Social Good at Open Data Science East 2024
Generative AI for Social Good at Open Data Science East 2024Generative AI for Social Good at Open Data Science East 2024
Generative AI for Social Good at Open Data Science East 2024
 
Biometric Authentication: The Evolution, Applications, Benefits and Challenge...
Biometric Authentication: The Evolution, Applications, Benefits and Challenge...Biometric Authentication: The Evolution, Applications, Benefits and Challenge...
Biometric Authentication: The Evolution, Applications, Benefits and Challenge...
 
NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...
NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...
NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...
 
毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
 
Vision, Mission, Goals and Objectives ppt..pptx
Vision, Mission, Goals and Objectives ppt..pptxVision, Mission, Goals and Objectives ppt..pptx
Vision, Mission, Goals and Objectives ppt..pptx
 
Student Profile Sample report on improving academic performance by uniting gr...
Student Profile Sample report on improving academic performance by uniting gr...Student Profile Sample report on improving academic performance by uniting gr...
Student Profile Sample report on improving academic performance by uniting gr...
 
20240419 - Measurecamp Amsterdam - SAM.pdf
20240419 - Measurecamp Amsterdam - SAM.pdf20240419 - Measurecamp Amsterdam - SAM.pdf
20240419 - Measurecamp Amsterdam - SAM.pdf
 
Real-Time AI Streaming - AI Max Princeton
Real-Time AI  Streaming - AI Max PrincetonReal-Time AI  Streaming - AI Max Princeton
Real-Time AI Streaming - AI Max Princeton
 
April 2024 - NLIT Cloudera Real-Time LLM Streaming 2024
April 2024 - NLIT Cloudera Real-Time LLM Streaming 2024April 2024 - NLIT Cloudera Real-Time LLM Streaming 2024
April 2024 - NLIT Cloudera Real-Time LLM Streaming 2024
 
DBA Basics: Getting Started with Performance Tuning.pdf
DBA Basics: Getting Started with Performance Tuning.pdfDBA Basics: Getting Started with Performance Tuning.pdf
DBA Basics: Getting Started with Performance Tuning.pdf
 
LLMs, LMMs, their Improvement Suggestions and the Path towards AGI
LLMs, LMMs, their Improvement Suggestions and the Path towards AGILLMs, LMMs, their Improvement Suggestions and the Path towards AGI
LLMs, LMMs, their Improvement Suggestions and the Path towards AGI
 
Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024
Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024
Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024
 
Student profile product demonstration on grades, ability, well-being and mind...
Student profile product demonstration on grades, ability, well-being and mind...Student profile product demonstration on grades, ability, well-being and mind...
Student profile product demonstration on grades, ability, well-being and mind...
 

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 ?