SlideShare a Scribd company logo
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
Ad

More Related Content

What's hot (20)

SOA Pattern-Asynchronous Queuing
SOA Pattern-Asynchronous QueuingSOA Pattern-Asynchronous Queuing
SOA Pattern-Asynchronous Queuing
WSO2
 
SOA Pattern : Policy Centralization
SOA Pattern : Policy CentralizationSOA Pattern : Policy Centralization
SOA Pattern : Policy Centralization
WSO2
 
WCF LOB SDK at CNUG
WCF LOB SDK at CNUGWCF LOB SDK at CNUG
WCF LOB SDK at CNUG
clineer
 
Web services and SOA
Web services and SOAWeb services and SOA
Web services and SOA
Subin Sugunan
 
WCF Introduction
WCF IntroductionWCF Introduction
WCF Introduction
Mohamed Zakarya Abdelgawad
 
WCF LOB SDK from CodeMastery
WCF LOB SDK from CodeMasteryWCF LOB SDK from CodeMastery
WCF LOB SDK from CodeMastery
clineer
 
Enterprise Soa Concept
Enterprise Soa ConceptEnterprise Soa Concept
Enterprise Soa Concept
Terry Cho
 
Web services
Web servicesWeb services
Web services
Diwakar Babu
 
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 REST
kumar gaurav
 
ESB Evaluation Framework
ESB Evaluation FrameworkESB Evaluation Framework
ESB Evaluation Framework
WSO2
 
[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
WSO2
 
Microservices with Spring Cloud
Microservices with Spring CloudMicroservices with Spring Cloud
Microservices with Spring Cloud
Wilder Rodrigues
 
Mule database-connectors
Mule database-connectorsMule database-connectors
Mule database-connectors
Phaniu
 
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 Ballerina
WSO2
 
SOA
SOASOA
SOA
Uday Bhaskar
 
SOA Pattern-Asynchronous Queuing
SOA Pattern-Asynchronous QueuingSOA Pattern-Asynchronous Queuing
SOA Pattern-Asynchronous Queuing
WSO2
 
SOA Pattern : Policy Centralization
SOA Pattern : Policy CentralizationSOA Pattern : Policy Centralization
SOA Pattern : Policy Centralization
WSO2
 
WCF LOB SDK at CNUG
WCF LOB SDK at CNUGWCF LOB SDK at CNUG
WCF LOB SDK at CNUG
clineer
 
Web services and SOA
Web services and SOAWeb services and SOA
Web services and SOA
Subin Sugunan
 
WCF LOB SDK from CodeMastery
WCF LOB SDK from CodeMasteryWCF LOB SDK from CodeMastery
WCF LOB SDK from CodeMastery
clineer
 
Enterprise Soa Concept
Enterprise Soa ConceptEnterprise Soa Concept
Enterprise Soa Concept
Terry 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 REST
kumar gaurav
 
ESB Evaluation Framework
ESB Evaluation FrameworkESB Evaluation Framework
ESB Evaluation Framework
WSO2
 
[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
WSO2
 
Microservices with Spring Cloud
Microservices with Spring CloudMicroservices with Spring Cloud
Microservices with Spring Cloud
Wilder Rodrigues
 
Mule database-connectors
Mule database-connectorsMule database-connectors
Mule database-connectors
Phaniu
 
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 Ballerina
WSO2
 

Similar to Spring and SOA (2006) (20)

Enterprise service bus part 2
Enterprise service bus part 2Enterprise service bus part 2
Enterprise service bus part 2
Return on Intelligence
 
Service Oriented Architecture & Beyond
Service Oriented Architecture & BeyondService Oriented Architecture & Beyond
Service Oriented Architecture & Beyond
Imesh 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 Platform
WSO2
 
Java web services
Java web servicesJava web services
Java web services
kumar gaurav
 
Soa Grundlagen
Soa GrundlagenSoa Grundlagen
Soa Grundlagen
Brockhaus Group
 
Soa Grundlagen
Soa GrundlagenSoa Grundlagen
Soa Grundlagen
Brockhaus Group
 
Soa Grundlagen
Soa GrundlagenSoa Grundlagen
Soa Grundlagen
Brockhaus Group
 
Soa Grundlagen
Soa GrundlagenSoa Grundlagen
Soa Grundlagen
Brockhaus Group
 
SOA in a nutshell by Abhilash
 SOA in a nutshell by Abhilash SOA in a nutshell by Abhilash
SOA in a nutshell by Abhilash
Abhilash Juluri
 
SCA
SCASCA
SCA
Basel Altoom
 
WebService-Java
WebService-JavaWebService-Java
WebService-Java
halwal
 
Wso2 tutorial
Wso2 tutorialWso2 tutorial
Wso2 tutorial
Armando Ramirez Vila
 
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
ecosio GmbH
 
Service-Oriented Architecture (SOA)
Service-Oriented Architecture (SOA)Service-Oriented Architecture (SOA)
Service-Oriented Architecture (SOA)
WSO2
 
Osbsoa1
Osbsoa1Osbsoa1
Osbsoa1
xavier john
 
Enterprise Integration with WSO2 ESB
Enterprise Integration with WSO2 ESBEnterprise Integration with WSO2 ESB
Enterprise Integration with WSO2 ESB
WSO2
 
OpenESB
OpenESBOpenESB
OpenESB
Carol McDonald
 
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
aaronwso2
 
Enterprise Service Bus
Enterprise Service BusEnterprise Service Bus
Enterprise Service Bus
Return on Intelligence
 
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
SudhirSinghShakyaVan
 
Service Oriented Architecture & Beyond
Service Oriented Architecture & BeyondService Oriented Architecture & Beyond
Service Oriented Architecture & Beyond
Imesh 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 Platform
WSO2
 
SOA in a nutshell by Abhilash
 SOA in a nutshell by Abhilash SOA in a nutshell by Abhilash
SOA in a nutshell by Abhilash
Abhilash Juluri
 
WebService-Java
WebService-JavaWebService-Java
WebService-Java
halwal
 
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
ecosio 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 ESB
WSO2
 
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
aaronwso2
 
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
SudhirSinghShakyaVan
 
Ad

More from 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
Geert Pante
 
Kafka Introduction.pptx
Kafka Introduction.pptxKafka Introduction.pptx
Kafka Introduction.pptx
Geert Pante
 
Kubernetes and Amazon ECS
Kubernetes and Amazon ECSKubernetes and Amazon ECS
Kubernetes and Amazon ECS
Geert Pante
 
Docker in practice
Docker in practiceDocker in practice
Docker in practice
Geert Pante
 
Spring JMS and ActiveMQ
Spring JMS and ActiveMQSpring JMS and ActiveMQ
Spring JMS and ActiveMQ
Geert Pante
 
Log management with ELK
Log management with ELKLog management with ELK
Log management with ELK
Geert Pante
 
Java EE 6
Java EE 6Java EE 6
Java EE 6
Geert Pante
 
Spring 4 en spring data
Spring 4 en spring dataSpring 4 en spring data
Spring 4 en spring data
Geert 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 Maven
Geert 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 IRIS
Geert Pante
 
Version Management in Maven
Version Management in MavenVersion Management in Maven
Version Management in Maven
Geert Pante
 
OAuth2 and OpenID with Spring Boot
OAuth2 and OpenID with Spring BootOAuth2 and OpenID with Spring Boot
OAuth2 and OpenID with Spring Boot
Geert Pante
 
Kafka Introduction.pptx
Kafka Introduction.pptxKafka Introduction.pptx
Kafka Introduction.pptx
Geert Pante
 
Kubernetes and Amazon ECS
Kubernetes and Amazon ECSKubernetes and Amazon ECS
Kubernetes and Amazon ECS
Geert Pante
 
Docker in practice
Docker in practiceDocker in practice
Docker in practice
Geert Pante
 
Spring JMS and ActiveMQ
Spring JMS and ActiveMQSpring JMS and ActiveMQ
Spring JMS and ActiveMQ
Geert Pante
 
Log management with ELK
Log management with ELKLog management with ELK
Log management with ELK
Geert Pante
 
Spring 4 en spring data
Spring 4 en spring dataSpring 4 en spring data
Spring 4 en spring data
Geert 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 Maven
Geert 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 IRIS
Geert Pante
 
Version Management in Maven
Version Management in MavenVersion Management in Maven
Version Management in Maven
Geert Pante
 
Ad

Recently uploaded (20)

Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 

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