SlideShare uma empresa Scribd logo
1 de 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

Mais conteúdo relacionado

Mais procurados

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
 

Mais procurados (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
 

Semelhante a 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
 

Semelhante a 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
 

Mais de 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
 

Mais de 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
 

Último

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 

Último (20)

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
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
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 

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