SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Spring and SOA

Merelbeke, 7/11/2006
Agenda
What is SOA
JAXB2, Spring WS en XFire
JBI and the ESB
ServiceMix
About SOA
SERVICE ORIENTED ARCHITECTURE
What is “Service Oriented
Architecture”?
"Things should be made as simple as possible, but no simpler." -- Albert
Einstein
Applications build on Loosely Coupled Services
◦ Distributed resources
◦ Made available as independent services
◦ Services that are interoperable
◦ Interoperability based on contracts

Separation of Concerns
Elements of SOA
Stages of SOA
Fundamental SOA
Only basic services

◦ Data-centric: exposes resources
◦ Logic-centric: encapsulate business rules

Resources are never shared between services
Better Maintainability
Networked SOA
Introduce intermediate services
◦ Techonology Gateways
◦ Adapters
◦ Façades (?)
◦ Decorating services

Easier integration into Application frontends
More Flexibility
Process-Enabled SOA
Introduce process-centric service(s)

◦ Statefull intermediate service
◦ Hides process state from application frontend
◦ Process state can be shared for multiple users
◦ Can be event driven

Application frontend concentrates on User Interface (GUI or B2B)
Full Separation of Concerns
Implementing
basic Services
Implementing Services
Traditional Web Services: RPC
◦ Remote Procedure Call

SOA Web Services: contract first

◦ First define the messages, then implement the code
◦ Maximum interoperability
JAXB 2: Java Architecture for XML Binding
Java 6 standard extension for Java/XML Binding
SchemaGen: generate xsd/wsdl from java pojo’s
◦ Customisable with javax.xml.bind annotations
◦ javax.jws @WebService/ @WebMethod annotations

XJC: generate java from xsd/wsdl

◦ Generate pojo’s with javax.xml.bind/javax.jws annotations
◦ Customisable with xsd annotations or binding files
◦ Plugin API for e.g. naming conventions or generating EJB3
annotations
◦ Ant task, maven plugin, eclipse plugin

Code example
Implementing services with XFire and Spring
Codehaus XFire: next generation java SOAP
◦ Support for newest standards:

◦ JAXB 2.0: annotation based XML binding
◦ JSR-181/JAX-WS 2.0: annotations for WSDL generation

◦ POJO based
◦ Integration with Spring-core and Spring-MVC

Code example
Implementing services with
Spring-WS
Document-driven web services

◦ Can use XML directly as SAX, DOM, StAX…
◦ For efficiency, flexibility

◦ Can plugin Castor/JAXB/JiBX Marshallers

Similar architecture as Spring-MVC
◦ Configurable Dispatcher
◦ Endpoints as Controllers
◦ Mappings/Filters/Interceptors…

Code example
JBI and the
ESB
JAVA BUSINESS INTEGRATION
About JBI
Standards based API for Service Bus in a SOA
Normalized Message Router API
Container API for deploying Service Engines and Binding Components
◦ Service Engine

◦ Business logic service
◦ Transformation service
◦ Integration of multiple services

◦ Binding Component
◦ Connectivity to external services
◦ Consumer or provider
JBI Message interfaces
NormalizedMessage

◦ content: XML
◦ attachments: name -> Mime content
◦ properties: name -> object
◦ security subject: authentication subject

MessageExchange: W3C Message exchange patterns
◦ messages: name -> normalized message
◦ exchange id: GUID
◦ endpoint: service endpoint
◦ service, interface name, operation: QName
◦ subinterfaces: InOnly, InOptionalOut, InOut, RobustInOnly
◦ status: ACTIVE, DONE, ERROR
JBI Component interfaces
Component

◦ Lifecycle interface for service units

ServiceEndpoint

◦ Addres of a service
◦ List of interfaces
◦ List of operations

ComponentContext

◦ Callbacks for service units
◦ Get delivery channel: accept/send MessageExchange
◦ Get other ServiceEndpoints
ServiceMix JBI
Container
AN AGILE ENTERPRISE SERVICE BUS POWERED
BY SPRING
ServiceMix JBI Container
Bindings for common Java Technologies

◦ SOAP Bindings: plain HTTP/SOAP, jsr-181, X-Fire, ...
◦ JMS Binding for plain JMS and JMS+SOAP
◦ Quartz scheduler consumer binding
◦ FTP provider and consumer
◦ Bindings for JavaMail, HTTP, RSS, jabber ...

Service Engines

◦ Generic Routing patterns: router, filter, splitter, aggregator, ...
◦ XSLT transformation
◦ Support for BPEL engines: Intalio PXE en Apache ODE
◦ Support for Oracle XSQL

JBI Component Adaptors for POJO’s

◦ Real POJO’s: use reflection
◦ Implement JBI interfaces or use annotations
Using ServiceMix
Deployment options

◦ Standalone container with hot-deploy
◦ Bundled with Apache Geronimo J2EE container
◦ JBoss deployer

Spring based configuration

◦ XML namespaces avant la lettre

Code example

Weitere ähnliche Inhalte

Was ist angesagt?

SOA Pattern-Asynchronous Queuing
SOA Pattern-Asynchronous QueuingSOA Pattern-Asynchronous Queuing
SOA Pattern-Asynchronous QueuingWSO2
 
SOA Pattern : Policy Centralization
SOA Pattern : Policy CentralizationSOA Pattern : Policy Centralization
SOA Pattern : Policy CentralizationWSO2
 
WCF LOB SDK at CNUG
WCF LOB SDK at CNUGWCF LOB SDK at CNUG
WCF LOB SDK at CNUGclineer
 
Web services and SOA
Web services and SOAWeb services and SOA
Web services and SOASubin Sugunan
 
WCF LOB SDK from CodeMastery
WCF LOB SDK from CodeMasteryWCF LOB SDK from CodeMastery
WCF LOB SDK from CodeMasteryclineer
 
Enterprise Soa Concept
Enterprise Soa ConceptEnterprise Soa Concept
Enterprise Soa ConceptTerry Cho
 
Deep-dive into WSO2 ESB 5.0
Deep-dive into WSO2 ESB 5.0 Deep-dive into WSO2 ESB 5.0
Deep-dive into WSO2 ESB 5.0 Kasun Indrasiri
 
Software Evolution: From Legacy Systems, Service Oriented Architecture to Clo...
Software Evolution: From Legacy Systems, Service Oriented Architecture to Clo...Software Evolution: From Legacy Systems, Service Oriented Architecture to Clo...
Software Evolution: From Legacy Systems, Service Oriented Architecture to Clo...PET Computação
 
Introduction to REST
Introduction to RESTIntroduction to REST
Introduction to RESTkumar gaurav
 
ESB Evaluation Framework
ESB Evaluation FrameworkESB Evaluation Framework
ESB Evaluation FrameworkWSO2
 
[WSO2Con EU 2017] Ballerina Connectors for Seamless Integration
[WSO2Con EU 2017] Ballerina Connectors for Seamless Integration[WSO2Con EU 2017] Ballerina Connectors for Seamless Integration
[WSO2Con EU 2017] Ballerina Connectors for Seamless IntegrationWSO2
 
Microservices with Spring Cloud
Microservices with Spring CloudMicroservices with Spring Cloud
Microservices with Spring CloudWilder Rodrigues
 
Mule database-connectors
Mule database-connectorsMule database-connectors
Mule database-connectorsPhaniu
 
WSO2 ESB - The Backbone of Integration
WSO2 ESB - The Backbone of Integration WSO2 ESB - The Backbone of Integration
WSO2 ESB - The Backbone of Integration Kasun Indrasiri
 
An Overview of Web Services: SOAP and REST
An Overview of Web Services: SOAP and REST An Overview of Web Services: SOAP and REST
An Overview of Web Services: SOAP and REST Ram Awadh Prasad, PMP
 
Understanding Microservice Architecture WSO2Con Asia 2016
Understanding Microservice Architecture WSO2Con Asia 2016 Understanding Microservice Architecture WSO2Con Asia 2016
Understanding Microservice Architecture WSO2Con Asia 2016 Sagara Gunathunga
 
[WSO2Con EU 2017] Creating Composite Services Using Ballerina
[WSO2Con EU 2017] Creating Composite Services Using Ballerina[WSO2Con EU 2017] Creating Composite Services Using Ballerina
[WSO2Con EU 2017] Creating Composite Services Using BallerinaWSO2
 

Was ist angesagt? (20)

SOA Pattern-Asynchronous Queuing
SOA Pattern-Asynchronous QueuingSOA Pattern-Asynchronous Queuing
SOA Pattern-Asynchronous Queuing
 
SOA Pattern : Policy Centralization
SOA Pattern : Policy CentralizationSOA Pattern : Policy Centralization
SOA Pattern : Policy Centralization
 
WCF LOB SDK at CNUG
WCF LOB SDK at CNUGWCF LOB SDK at CNUG
WCF LOB SDK at CNUG
 
Web services and SOA
Web services and SOAWeb services and SOA
Web services and SOA
 
WCF Introduction
WCF IntroductionWCF Introduction
WCF Introduction
 
WCF LOB SDK from CodeMastery
WCF LOB SDK from CodeMasteryWCF LOB SDK from CodeMastery
WCF LOB SDK from CodeMastery
 
Enterprise Soa Concept
Enterprise Soa ConceptEnterprise Soa Concept
Enterprise Soa Concept
 
Web services
Web servicesWeb services
Web services
 
Deep-dive into WSO2 ESB 5.0
Deep-dive into WSO2 ESB 5.0 Deep-dive into WSO2 ESB 5.0
Deep-dive into WSO2 ESB 5.0
 
Software Evolution: From Legacy Systems, Service Oriented Architecture to Clo...
Software Evolution: From Legacy Systems, Service Oriented Architecture to Clo...Software Evolution: From Legacy Systems, Service Oriented Architecture to Clo...
Software Evolution: From Legacy Systems, Service Oriented Architecture to Clo...
 
Introduction to REST
Introduction to RESTIntroduction to REST
Introduction to REST
 
ESB Evaluation Framework
ESB Evaluation FrameworkESB Evaluation Framework
ESB Evaluation Framework
 
[WSO2Con EU 2017] Ballerina Connectors for Seamless Integration
[WSO2Con EU 2017] Ballerina Connectors for Seamless Integration[WSO2Con EU 2017] Ballerina Connectors for Seamless Integration
[WSO2Con EU 2017] Ballerina Connectors for Seamless Integration
 
Microservices with Spring Cloud
Microservices with Spring CloudMicroservices with Spring Cloud
Microservices with Spring Cloud
 
Mule database-connectors
Mule database-connectorsMule database-connectors
Mule database-connectors
 
WSO2 ESB - The Backbone of Integration
WSO2 ESB - The Backbone of Integration WSO2 ESB - The Backbone of Integration
WSO2 ESB - The Backbone of Integration
 
An Overview of Web Services: SOAP and REST
An Overview of Web Services: SOAP and REST An Overview of Web Services: SOAP and REST
An Overview of Web Services: SOAP and REST
 
Understanding Microservice Architecture WSO2Con Asia 2016
Understanding Microservice Architecture WSO2Con Asia 2016 Understanding Microservice Architecture WSO2Con Asia 2016
Understanding Microservice Architecture WSO2Con Asia 2016
 
[WSO2Con EU 2017] Creating Composite Services Using Ballerina
[WSO2Con EU 2017] Creating Composite Services Using Ballerina[WSO2Con EU 2017] Creating Composite Services Using Ballerina
[WSO2Con EU 2017] Creating Composite Services Using Ballerina
 
SOA
SOASOA
SOA
 

Ähnlich wie Spring and SOA (2006)

Service Oriented Architecture & Beyond
Service Oriented Architecture & BeyondService Oriented Architecture & Beyond
Service Oriented Architecture & BeyondImesh Gunaratne
 
Exploring Data Integration Capabilities of the WSO2 Platform
Exploring Data Integration Capabilities of the WSO2 PlatformExploring Data Integration Capabilities of the WSO2 Platform
Exploring Data Integration Capabilities of the WSO2 PlatformWSO2
 
SOA in a nutshell by Abhilash
 SOA in a nutshell by Abhilash SOA in a nutshell by Abhilash
SOA in a nutshell by AbhilashAbhilash Juluri
 
WebService-Java
WebService-JavaWebService-Java
WebService-Javahalwal
 
Introduction to SOAP/WSDL Web Services and RESTful Web Services
Introduction to SOAP/WSDL Web Services and RESTful Web ServicesIntroduction to SOAP/WSDL Web Services and RESTful Web Services
Introduction to SOAP/WSDL Web Services and RESTful Web Servicesecosio GmbH
 
Service-Oriented Architecture (SOA)
Service-Oriented Architecture (SOA)Service-Oriented Architecture (SOA)
Service-Oriented Architecture (SOA)WSO2
 
Enterprise Integration with WSO2 ESB
Enterprise Integration with WSO2 ESBEnterprise Integration with WSO2 ESB
Enterprise Integration with WSO2 ESBWSO2
 
2014 q3-platform-update-v1.06.johnmathon
2014 q3-platform-update-v1.06.johnmathon2014 q3-platform-update-v1.06.johnmathon
2014 q3-platform-update-v1.06.johnmathonaaronwso2
 
SOA 11g Foundation - 01.1 -SOA Overview.ppt
SOA 11g Foundation - 01.1 -SOA Overview.pptSOA 11g Foundation - 01.1 -SOA Overview.ppt
SOA 11g Foundation - 01.1 -SOA Overview.pptSudhirSinghShakyaVan
 

Ähnlich wie Spring and SOA (2006) (20)

Enterprise service bus part 2
Enterprise service bus part 2Enterprise service bus part 2
Enterprise service bus part 2
 
Service Oriented Architecture & Beyond
Service Oriented Architecture & BeyondService Oriented Architecture & Beyond
Service Oriented Architecture & Beyond
 
Exploring Data Integration Capabilities of the WSO2 Platform
Exploring Data Integration Capabilities of the WSO2 PlatformExploring Data Integration Capabilities of the WSO2 Platform
Exploring Data Integration Capabilities of the WSO2 Platform
 
Java web services
Java web servicesJava web services
Java web services
 
Soa Grundlagen
Soa GrundlagenSoa Grundlagen
Soa Grundlagen
 
Soa Grundlagen
Soa GrundlagenSoa Grundlagen
Soa Grundlagen
 
Soa Grundlagen
Soa GrundlagenSoa Grundlagen
Soa Grundlagen
 
Soa Grundlagen
Soa GrundlagenSoa Grundlagen
Soa Grundlagen
 
SOA in a nutshell by Abhilash
 SOA in a nutshell by Abhilash SOA in a nutshell by Abhilash
SOA in a nutshell by Abhilash
 
SCA
SCASCA
SCA
 
WebService-Java
WebService-JavaWebService-Java
WebService-Java
 
Wso2 tutorial
Wso2 tutorialWso2 tutorial
Wso2 tutorial
 
Introduction to SOAP/WSDL Web Services and RESTful Web Services
Introduction to SOAP/WSDL Web Services and RESTful Web ServicesIntroduction to SOAP/WSDL Web Services and RESTful Web Services
Introduction to SOAP/WSDL Web Services and RESTful Web Services
 
Service-Oriented Architecture (SOA)
Service-Oriented Architecture (SOA)Service-Oriented Architecture (SOA)
Service-Oriented Architecture (SOA)
 
Osbsoa1
Osbsoa1Osbsoa1
Osbsoa1
 
Enterprise Integration with WSO2 ESB
Enterprise Integration with WSO2 ESBEnterprise Integration with WSO2 ESB
Enterprise Integration with WSO2 ESB
 
OpenESB
OpenESBOpenESB
OpenESB
 
2014 q3-platform-update-v1.06.johnmathon
2014 q3-platform-update-v1.06.johnmathon2014 q3-platform-update-v1.06.johnmathon
2014 q3-platform-update-v1.06.johnmathon
 
Enterprise Service Bus
Enterprise Service BusEnterprise Service Bus
Enterprise Service Bus
 
SOA 11g Foundation - 01.1 -SOA Overview.ppt
SOA 11g Foundation - 01.1 -SOA Overview.pptSOA 11g Foundation - 01.1 -SOA Overview.ppt
SOA 11g Foundation - 01.1 -SOA Overview.ppt
 

Mehr von Geert Pante

OAuth2 and OpenID with Spring Boot
OAuth2 and OpenID with Spring BootOAuth2 and OpenID with Spring Boot
OAuth2 and OpenID with Spring BootGeert Pante
 
Kafka Introduction.pptx
Kafka Introduction.pptxKafka Introduction.pptx
Kafka Introduction.pptxGeert Pante
 
Kubernetes and Amazon ECS
Kubernetes and Amazon ECSKubernetes and Amazon ECS
Kubernetes and Amazon ECSGeert Pante
 
Docker in practice
Docker in practiceDocker in practice
Docker in practiceGeert Pante
 
Spring JMS and ActiveMQ
Spring JMS and ActiveMQSpring JMS and ActiveMQ
Spring JMS and ActiveMQGeert Pante
 
Log management with ELK
Log management with ELKLog management with ELK
Log management with ELKGeert Pante
 
Spring 4 en spring data
Spring 4 en spring dataSpring 4 en spring data
Spring 4 en spring dataGeert Pante
 
Maven plugins, properties en profiles: Advanced concepts in Maven
Maven plugins, properties en profiles: Advanced concepts in MavenMaven plugins, properties en profiles: Advanced concepts in Maven
Maven plugins, properties en profiles: Advanced concepts in MavenGeert Pante
 
The glory of REST in Java: Spring HATEOAS, RAML, Temenos IRIS
The glory of REST in Java: Spring HATEOAS, RAML, Temenos IRISThe glory of REST in Java: Spring HATEOAS, RAML, Temenos IRIS
The glory of REST in Java: Spring HATEOAS, RAML, Temenos IRISGeert Pante
 
Version Management in Maven
Version Management in MavenVersion Management in Maven
Version Management in MavenGeert Pante
 

Mehr von Geert Pante (11)

OAuth2 and OpenID with Spring Boot
OAuth2 and OpenID with Spring BootOAuth2 and OpenID with Spring Boot
OAuth2 and OpenID with Spring Boot
 
Kafka Introduction.pptx
Kafka Introduction.pptxKafka Introduction.pptx
Kafka Introduction.pptx
 
Kubernetes and Amazon ECS
Kubernetes and Amazon ECSKubernetes and Amazon ECS
Kubernetes and Amazon ECS
 
Docker in practice
Docker in practiceDocker in practice
Docker in practice
 
Spring JMS and ActiveMQ
Spring JMS and ActiveMQSpring JMS and ActiveMQ
Spring JMS and ActiveMQ
 
Log management with ELK
Log management with ELKLog management with ELK
Log management with ELK
 
Java EE 6
Java EE 6Java EE 6
Java EE 6
 
Spring 4 en spring data
Spring 4 en spring dataSpring 4 en spring data
Spring 4 en spring data
 
Maven plugins, properties en profiles: Advanced concepts in Maven
Maven plugins, properties en profiles: Advanced concepts in MavenMaven plugins, properties en profiles: Advanced concepts in Maven
Maven plugins, properties en profiles: Advanced concepts in Maven
 
The glory of REST in Java: Spring HATEOAS, RAML, Temenos IRIS
The glory of REST in Java: Spring HATEOAS, RAML, Temenos IRISThe glory of REST in Java: Spring HATEOAS, RAML, Temenos IRIS
The glory of REST in Java: Spring HATEOAS, RAML, Temenos IRIS
 
Version Management in Maven
Version Management in MavenVersion Management in Maven
Version Management in Maven
 

Kürzlich hochgeladen

Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 

Kürzlich hochgeladen (20)

Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 

Spring and SOA (2006)

  • 2. Agenda What is SOA JAXB2, Spring WS en XFire JBI and the ESB ServiceMix
  • 4. What is “Service Oriented Architecture”? "Things should be made as simple as possible, but no simpler." -- Albert Einstein Applications build on Loosely Coupled Services ◦ Distributed resources ◦ Made available as independent services ◦ Services that are interoperable ◦ Interoperability based on contracts Separation of Concerns
  • 7. Fundamental SOA Only basic services ◦ Data-centric: exposes resources ◦ Logic-centric: encapsulate business rules Resources are never shared between services Better Maintainability
  • 8. Networked SOA Introduce intermediate services ◦ Techonology Gateways ◦ Adapters ◦ Façades (?) ◦ Decorating services Easier integration into Application frontends More Flexibility
  • 9. Process-Enabled SOA Introduce process-centric service(s) ◦ Statefull intermediate service ◦ Hides process state from application frontend ◦ Process state can be shared for multiple users ◦ Can be event driven Application frontend concentrates on User Interface (GUI or B2B) Full Separation of Concerns
  • 11. Implementing Services Traditional Web Services: RPC ◦ Remote Procedure Call SOA Web Services: contract first ◦ First define the messages, then implement the code ◦ Maximum interoperability
  • 12. JAXB 2: Java Architecture for XML Binding Java 6 standard extension for Java/XML Binding SchemaGen: generate xsd/wsdl from java pojo’s ◦ Customisable with javax.xml.bind annotations ◦ javax.jws @WebService/ @WebMethod annotations XJC: generate java from xsd/wsdl ◦ Generate pojo’s with javax.xml.bind/javax.jws annotations ◦ Customisable with xsd annotations or binding files ◦ Plugin API for e.g. naming conventions or generating EJB3 annotations ◦ Ant task, maven plugin, eclipse plugin Code example
  • 13. Implementing services with XFire and Spring Codehaus XFire: next generation java SOAP ◦ Support for newest standards: ◦ JAXB 2.0: annotation based XML binding ◦ JSR-181/JAX-WS 2.0: annotations for WSDL generation ◦ POJO based ◦ Integration with Spring-core and Spring-MVC Code example
  • 14. Implementing services with Spring-WS Document-driven web services ◦ Can use XML directly as SAX, DOM, StAX… ◦ For efficiency, flexibility ◦ Can plugin Castor/JAXB/JiBX Marshallers Similar architecture as Spring-MVC ◦ Configurable Dispatcher ◦ Endpoints as Controllers ◦ Mappings/Filters/Interceptors… Code example
  • 15. JBI and the ESB JAVA BUSINESS INTEGRATION
  • 16. About JBI Standards based API for Service Bus in a SOA Normalized Message Router API Container API for deploying Service Engines and Binding Components ◦ Service Engine ◦ Business logic service ◦ Transformation service ◦ Integration of multiple services ◦ Binding Component ◦ Connectivity to external services ◦ Consumer or provider
  • 17. JBI Message interfaces NormalizedMessage ◦ content: XML ◦ attachments: name -> Mime content ◦ properties: name -> object ◦ security subject: authentication subject MessageExchange: W3C Message exchange patterns ◦ messages: name -> normalized message ◦ exchange id: GUID ◦ endpoint: service endpoint ◦ service, interface name, operation: QName ◦ subinterfaces: InOnly, InOptionalOut, InOut, RobustInOnly ◦ status: ACTIVE, DONE, ERROR
  • 18. JBI Component interfaces Component ◦ Lifecycle interface for service units ServiceEndpoint ◦ Addres of a service ◦ List of interfaces ◦ List of operations ComponentContext ◦ Callbacks for service units ◦ Get delivery channel: accept/send MessageExchange ◦ Get other ServiceEndpoints
  • 19. ServiceMix JBI Container AN AGILE ENTERPRISE SERVICE BUS POWERED BY SPRING
  • 20. ServiceMix JBI Container Bindings for common Java Technologies ◦ SOAP Bindings: plain HTTP/SOAP, jsr-181, X-Fire, ... ◦ JMS Binding for plain JMS and JMS+SOAP ◦ Quartz scheduler consumer binding ◦ FTP provider and consumer ◦ Bindings for JavaMail, HTTP, RSS, jabber ... Service Engines ◦ Generic Routing patterns: router, filter, splitter, aggregator, ... ◦ XSLT transformation ◦ Support for BPEL engines: Intalio PXE en Apache ODE ◦ Support for Oracle XSQL JBI Component Adaptors for POJO’s ◦ Real POJO’s: use reflection ◦ Implement JBI interfaces or use annotations
  • 21. Using ServiceMix Deployment options ◦ Standalone container with hot-deploy ◦ Bundled with Apache Geronimo J2EE container ◦ JBoss deployer Spring based configuration ◦ XML namespaces avant la lettre Code example