SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
Tooling Best Practices for Integration Experts
Heshitha Hettihewa & Prabushi Samarakoon
WSO2 Integration Team
Agenda
• How to develop an integration scenario following best
practices
• Supported project & artifact types and their usages
• Naming conventions
• Useful shortcuts
• Native logging practices
• Message transformation conventions
• IDE Concepts
Developer Scenario
• A developer needs to implement a ‘User Registration’
System
• He wants to test the configurations in his QA environment
before deploying them in the production environment
• Some of the configurations in these two environments can
differ due to their infrastructure
User Registration Process
Register an
user request
Send an email
Process
registration
Registration
status response
Registration success
response
Registration
processing backend
system
Store registration
details in database
Let’s Develop
Next slides will be presented along with the video
Project Types
• Maven Multi Module Project
• ESB Solution Project
• Composite Application Project
• Registry Resources Project
• Connector Exporter Project
• Data Service Project
• Data Source Project
• BPEL Project
• Human Task Project
• BPMN Project
• Mediator Project
Artifact Types
• Proxy Service
• REST API
• Sequence
• Endpoint
• Inbound Endpoint
• Message Processor
• Message Store
• Scheduled Task
• Template
• Local Entry
• Data Service
ENTERPRISE
INTEGRATOR
Naming Conventions
Type Format Sample
Folders
<Project><FolderName>
Folder structure for registry resources;
<Project>/<ResourceType>/<subResourceType>
StudentInformationSystemLibraries
StudentInformationSystem/wsdl
StudentInformationSystem/xsd
StudentInformationSystem/schema/validate
StudentInformationSystem/schema/wsdl
Project
Name
<ProjectName> StudentInformationSystem
Source
Files
<ProjectName>_<FileName>_<Type>.<Extension>
Student_Student_Sequence.xml,
Stocks_StockQuote_FileInbound.xml
Sub
Modules
<Project><ModuleName> StudentInformationSystemDataService
ENTERPRISE
INTEGRATOR
Useful Shortcuts
Function Linux / Windows Mac
Copy Ctrl + c Command + c
Paste Ctrl + v Command + v
Cut Ctrl + x Command + x
Save Ctrl + s Command + s
Add block comment Ctrl + Shift + / Command + /
Remove block comment Ctrl + Shift +  Command + 
Remove line Ctrl + d Command + d
Un select Ctrl + click esc
Search in workspace Ctrl + Shift + r Command + Shift + r
Zoom in design view Ctrl + + Control + +
Log mediator
• Use in the message flow as checkpoints
• Not recommended to use in a production setup (Except in Fault
sequences)
• Important to use within the fault flow to isolate the issue
• Inbuilt properties can be used to retrieve the error details
– ERROR_MESSAGE
– ERROR_CODE
– ERROR_DETAIL
– ERROR_EXCEPTION
ENTERPRISE
INTEGRATOR
Message Transformation Conventions
Mediator Use Cases
Payload Factory Message format is fixed and there are less number of external inputs
ForEach Original message has repetitive elements that should be processed (use together
with the Payload Factory mediator)
Enrich Add/remove part of the/whole message
XSLT Transformation logic is complex and performance critical
Data Mapper
Change the structure of data in a message or convert and transform one data
format to another
Smooks Large file transformations
ForEach mediator
• Loops over the sub-messages and merges them back to the same parent
element of the message
• Does not allow using Call, Send and Callout mediators in the sequence
(Use an Iterate mediator instead)
• Does not split the message flow, unlike Iterate mediator
• Guarantees to execute in the same thread until all iterations are complete
Clone mediator
• Clones a message into several identical messages
• Use a Call mediator in the target sequence to bring the responses back
into the In-Sequence
• Similar to Iterate mediator, but it splits the message into different parts
ENTERPRISE
INTEGRATOR
Send | Call | Callout mediator
Mediator Use Cases
Send
● Sends a message, and the response comes to the OutSequence (or to the specified
receiving sequence)
● Uses non blocking transport
Call
● Sends a message, and the mediation flow will continue with the next mediator after
the send operation is done
● Recommended for service chaining scenarios
● Uses non blocking transport
Callout
● Behaviour is similar to Call mediator
● Uses blocking transport
● Performance is not good as Call or Send mediator because of the blocking nature
IDE Concepts - Perspectives
• Used to customize the IDE experience
• Consisted of view positionings, toolbar customizations etc. which will be
helpful when developing artifacts
• Effective use of the perspectives is very useful for development
• Several perspectives are used in Integration Studio;
– WSO2 ESB Graphical
– WSO2 Welcome
– WSO2 Data Mapper Graphical
– WSO2 Registry
– Debug
– BPEL
– Activiti
IDE Concepts - Views
• Views are the different window segments that IDE consists of
• Basically any sub window apart from the editors are known as a view in
Integration Studio
• Several views are used in Integration Studio;
– Project Explorer
– Console
– Properties
– Outline
– Template Guide
– Realtime Datamapper Preview
– Palette
– WSO2 Registry Browser
– Wire Log View
Connectors
• Use secure vault to secure user credentials
• To seamlessly refresh tokens, use a registry location that is visible to all
esb cluster members
• Use $ctx instead of the get-property() function to improve performance
Database mediators
• Use DB Report/ DB Lookup to process simple queries (Select, Insert)
• Use Data Services with complex scenarios such as retrieving multiple
rows, nested queries, etc.
Class | Custom mediator
• Should be used when the intended functionality cannot be achieved using
inbuilt mediators
• Consider the performance impact and possible memory leaks
• Follow Java naming conventions and best practices
THANK YOU
wso2.com

Mais conteúdo relacionado

Mais de WSO2

Mais de WSO2 (20)

WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & InnovationWSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
 
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and ApplicationsWSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
WSO2CON 2024 - Software Engineering for Digital Businesses
WSO2CON 2024 - Software Engineering for Digital BusinessesWSO2CON 2024 - Software Engineering for Digital Businesses
WSO2CON 2024 - Software Engineering for Digital Businesses
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of TransformationWSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
 
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
 
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
 
WSO2CON 2024 - Building a Digital Government in Uganda
WSO2CON 2024 - Building a Digital Government in UgandaWSO2CON 2024 - Building a Digital Government in Uganda
WSO2CON 2024 - Building a Digital Government in Uganda
 
WSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next IntegrationWSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Último (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

Tooling Best Practices for Integration Experts

  • 1. Tooling Best Practices for Integration Experts Heshitha Hettihewa & Prabushi Samarakoon WSO2 Integration Team
  • 2. Agenda • How to develop an integration scenario following best practices • Supported project & artifact types and their usages • Naming conventions • Useful shortcuts • Native logging practices • Message transformation conventions • IDE Concepts
  • 3. Developer Scenario • A developer needs to implement a ‘User Registration’ System • He wants to test the configurations in his QA environment before deploying them in the production environment • Some of the configurations in these two environments can differ due to their infrastructure
  • 4. User Registration Process Register an user request Send an email Process registration Registration status response Registration success response Registration processing backend system Store registration details in database
  • 6. Next slides will be presented along with the video
  • 7. Project Types • Maven Multi Module Project • ESB Solution Project • Composite Application Project • Registry Resources Project • Connector Exporter Project • Data Service Project • Data Source Project • BPEL Project • Human Task Project • BPMN Project • Mediator Project
  • 8. Artifact Types • Proxy Service • REST API • Sequence • Endpoint • Inbound Endpoint • Message Processor • Message Store • Scheduled Task • Template • Local Entry • Data Service
  • 9. ENTERPRISE INTEGRATOR Naming Conventions Type Format Sample Folders <Project><FolderName> Folder structure for registry resources; <Project>/<ResourceType>/<subResourceType> StudentInformationSystemLibraries StudentInformationSystem/wsdl StudentInformationSystem/xsd StudentInformationSystem/schema/validate StudentInformationSystem/schema/wsdl Project Name <ProjectName> StudentInformationSystem Source Files <ProjectName>_<FileName>_<Type>.<Extension> Student_Student_Sequence.xml, Stocks_StockQuote_FileInbound.xml Sub Modules <Project><ModuleName> StudentInformationSystemDataService
  • 10. ENTERPRISE INTEGRATOR Useful Shortcuts Function Linux / Windows Mac Copy Ctrl + c Command + c Paste Ctrl + v Command + v Cut Ctrl + x Command + x Save Ctrl + s Command + s Add block comment Ctrl + Shift + / Command + / Remove block comment Ctrl + Shift + Command + Remove line Ctrl + d Command + d Un select Ctrl + click esc Search in workspace Ctrl + Shift + r Command + Shift + r Zoom in design view Ctrl + + Control + +
  • 11. Log mediator • Use in the message flow as checkpoints • Not recommended to use in a production setup (Except in Fault sequences) • Important to use within the fault flow to isolate the issue • Inbuilt properties can be used to retrieve the error details – ERROR_MESSAGE – ERROR_CODE – ERROR_DETAIL – ERROR_EXCEPTION
  • 12. ENTERPRISE INTEGRATOR Message Transformation Conventions Mediator Use Cases Payload Factory Message format is fixed and there are less number of external inputs ForEach Original message has repetitive elements that should be processed (use together with the Payload Factory mediator) Enrich Add/remove part of the/whole message XSLT Transformation logic is complex and performance critical Data Mapper Change the structure of data in a message or convert and transform one data format to another Smooks Large file transformations
  • 13. ForEach mediator • Loops over the sub-messages and merges them back to the same parent element of the message • Does not allow using Call, Send and Callout mediators in the sequence (Use an Iterate mediator instead) • Does not split the message flow, unlike Iterate mediator • Guarantees to execute in the same thread until all iterations are complete
  • 14. Clone mediator • Clones a message into several identical messages • Use a Call mediator in the target sequence to bring the responses back into the In-Sequence • Similar to Iterate mediator, but it splits the message into different parts
  • 15. ENTERPRISE INTEGRATOR Send | Call | Callout mediator Mediator Use Cases Send ● Sends a message, and the response comes to the OutSequence (or to the specified receiving sequence) ● Uses non blocking transport Call ● Sends a message, and the mediation flow will continue with the next mediator after the send operation is done ● Recommended for service chaining scenarios ● Uses non blocking transport Callout ● Behaviour is similar to Call mediator ● Uses blocking transport ● Performance is not good as Call or Send mediator because of the blocking nature
  • 16. IDE Concepts - Perspectives • Used to customize the IDE experience • Consisted of view positionings, toolbar customizations etc. which will be helpful when developing artifacts • Effective use of the perspectives is very useful for development • Several perspectives are used in Integration Studio; – WSO2 ESB Graphical – WSO2 Welcome – WSO2 Data Mapper Graphical – WSO2 Registry – Debug – BPEL – Activiti
  • 17. IDE Concepts - Views • Views are the different window segments that IDE consists of • Basically any sub window apart from the editors are known as a view in Integration Studio • Several views are used in Integration Studio; – Project Explorer – Console – Properties – Outline – Template Guide – Realtime Datamapper Preview – Palette – WSO2 Registry Browser – Wire Log View
  • 18. Connectors • Use secure vault to secure user credentials • To seamlessly refresh tokens, use a registry location that is visible to all esb cluster members • Use $ctx instead of the get-property() function to improve performance
  • 19. Database mediators • Use DB Report/ DB Lookup to process simple queries (Select, Insert) • Use Data Services with complex scenarios such as retrieving multiple rows, nested queries, etc.
  • 20. Class | Custom mediator • Should be used when the intended functionality cannot be achieved using inbuilt mediators • Consider the performance impact and possible memory leaks • Follow Java naming conventions and best practices