In this Integration Monday session, Tomasso will show real time demos on how you can extend the ESB Toolkit depending on the requirements.You will also know how to store web services in the Sentinet SOA Repository from Nevatech and use the Sentinet Resolver to dynamically determine the URL of the webservice.
1. Sponsored & Brought to you by
Modifying and Extending the ESB
Toolkit
Tomasso Groenendijk
https://twitter.com/tlagroenendijk
https://www.linkedin.com/in/tomassogroenendijk
2. Modifying and Extending the ESB
Toolkit
Real world examples how to modify and extend the ESB Toolkit
Tomasso Groenendijk
5. Rethinking The Solution As A Set Of
Capabilities
Dynamic Resolution
Resolved Itinerary
Generic
Off Ramp
Generic
On Ramp
Multiple
Schemas (xN)
Multiple
Services (xN)
Transform
Service
Routing
Service
Custom
Service
8. Demo: Custom Itinerary Messaging Service
In this demonstration, you will see:
Build the Trackings project and deploy it.
Add an entry in the Esb.config file.
Add the custom Itinerary Service to an Itinerary.
Run the example.
10. Demo: Custom Itinerary Orchestration Service
In this demonstration, you will see:
Build the RecipientList project and deploy it.
Add an entry in the Esb.config file.
Add the custom Itinerary Service to an Itinerary.
Run the example.
11. Creating a Custom Resolver
11
In an Itinerary Service a Resolver is used for dynamically
resolving endpoint information and BizTalk Maps.
Provided Resolvers
• STATIC
• UDDI
• XPATH
• ITINERARY
• ITINERARY-STATIC
• BRE
• BRI
• LDAP
• CONTEXT
• WSMEX
13. Demo: Sentinet for BizTalk Server ESB Toolkit
Store web service in the Sentinet SOA Repository
Create a Keyword for an endpoint.
Using the Sentinet Resolver in the Itinerary Designer.
Testing the Resolver in Visual Studio.
Executing an Itinerary with Sentinet Resolver.
In this demonstration, you will see:
14. Creating a Custom Extender for an Orchestration-Based
Itinerary Service
14
15. Demo: Custom Extender for an Orchestration-
Based Itinerary Service
In this demonstration, you will see:
Create a Custom Extender for an Itinerary Service.
Create an Itinerary Service to validate the message.
Create a Business Rule Policy for validation.
Add the custom Validating Service to an Itinerary.
Test the Itinerary.
16. Links
Using MongoDB for Message Body Tracking in the ESB Toolkit
for BizTalk
Creating a Custom Itinerary Orchestration Service for the
Recipient List pattern
Using the ESB Toolkit and the Sentinet Resolver to dynamically
resolve Web Service Endpoints
Creating a Custom Extender for an Orchestration-Based Itinerary
Service
Hi I’m Tomasso Groenendijk. I’m an Integration MVP from the Netherlands and I’m going to talk about how to modify and extend the ESB Toolkit
In this presentation I’m going to show several examples how to extend modify it.
But first a small introduction about myself
I live in the Netherlands in Rotterdam and I am a BizTalk consultant at Motion10.
Motion10 is a company in the Netherlands that is specialized in SharePoint and BizTalk.
Last year in 2014 I became a MVP and I write a lot blog posts about the BizTalk and the ESB Toolkit. I also created several ESB Toolkit samples that I posted in the MSDN sample
Tonight I’m going to tell something about the samples
How they work, how you can install them and how to use them in an itinerary
So, what I’m going to show you?
These are the topics I’m going to talk about
First I want to do a very small introduction of the ESB Toolkit for if you not really familiar with the ESB Toolkit.
Because this is more an in depth presentation I’m not going to spent much time on the introduction.
Its only two slides to get familiar with the terminology.
Because else we dont have time to cover all the examples.
But I think it also duable see the presentation and be that familliat with the ESB Toolkit.
With the ESB Toolkit you have to rethink your solution because with the ESB Toolkit you want to create reusable components that you can use in multiple scenarios
For example: Normally with BizTalk you create an orchestration for a specific message type and for a specific scenario.
In that case is difficult to reuse
With ESB Toolkit you dont use a specific messagetypes anymore but XmlDocument as the message type.
And also with receive ports and sendports it easier to reuse them
Thats why they are called OnRamps and OffRamps with the ESB Toolkit. And thats only because you want to be able to reuse them
In the ESB generic services that have a specif task.
Out of the box you only have a Routing and a Transforming service
But if you want to use the ESB Toolkit in a real world scenario, these components are not enough and you have to create your own custom components.
So witch components are there?
ESB Toolkit are a set of components on top of the normal components in BizTalk
In the ESB Toolkit you make use of all the BizTalk components.
On top of it you have generic ESB components
So the ESB Toolkit is higly extendable and you can almost modify anything
In this presentation I’m going to focus on some of the core components that are in the Red Box
Resolvers
Itinerary Services
First I’m going to show how to create a custom Itinerary Service
There are two types of Itinerary Services.
Messaging Itinerary Service
Itinerary Service that is based on an Orchestration
First I’m going to show how you can create a custom Messaging Service
In the picture you see a custom Messaging Service in the Itinerary Designer in Visual Studio.
So what is a Messaging Service
A Messaging is a class that is that is executed by the Dispatcher pipeline component. That’s a pipeline compontent in the ESB Toolkit Framework
It’s similar when you create your own pipeline component. Its almost the same code but its much easier because in the end its only a class
And you only have to deploy it to the Global Assembly Cashe
In what scenarios do you need a custom Messaging Service :
For example If you want to implement
- Custom message validation
- Tracking, Tracing
- Custom processing of the message
In the first demo I’m going to create a custom Messaging Service
In this demo I’m going to show how you can track your message in MongoDB
I already created a Trackings project.
Walk through the code. Going to show how you can deploy it
Because you also have to create an entry in the Esb.config file.
I’m going to add the Itinerary Service to an Itinerary.
It’s a live demo so hopefully its going to work
Then I’m going to run the sample
Lets see!
With the ESB Toolkit you can also create a custom Itinerary Service by using Orchestrations.
You can use them in a lot of scenarios because you don’t need an OnRamp or an OffRamp where you have to attach them
In the picture you see a custom Itinerary Service based on an Orchestration.
Here I’v created a RecipientListService. Where you can send a message to multiple Reciepients.
Lets go to the demo!
In this demo I’m going to create a RecipientListService. Where you can send a message to multiple Reciepients.
I already created a RecipientList project.
Walk through the code. Going to show how you can deploy it
You also have to create an entry in the Esb.config file.
I’m going to add the Itinerary Service to an Itinerary.
This is also a live demo
Then I’m going to run the sample
Now I’m going to talk about Resolvers
A Resolver feeds the itinerary service at runtime with information
Normally you use a Resolver to specify wich map you going to execute or to wich endpoint your going to send a message
Out of the box our the following Providers
Static resolvers and dynamic resolvers like BRE
You can create your own Providers (For example: Get Information from SSO
and the Deployment Framework for BizTalk already did it.
If you are going to install the BTDF you can use it.
But I’m going to you how you can use custom Sentinet Resolver from Nevatech.
How you can use Sentinet in combination with the ESB Toolkit
Sentinet is a product from Nevatech and is a flexible, and scalable SOA Governance and API Management software platform
And you can use the Sentinet SOA Repository in combination with the Sentinet Resolver to dynamically determine the URL of the webservice.
First you have store a service in the Sentinet repository
Resolve the endpoint configuration of that service at runtime with the Sentinet Resolver.
You can do that by defining an unique key for that Service in the Repository.
How does it
In this demo I’m going to show how you can store a webservice in Sentinet SOA Repository
Create a Keyword for the endpoint of the webservice
Using the Sentinet Resolver in the Itinerary Designer.
Test the Resolver in Visual Studio.
Execute an Itinerary with Sentinet Resolver.
The last part I’m going to talk about how you can create a Custom Extender for an Itinerary Service.
The Itinerary Designer in Visual Studio allows you to create custom extenders for Itinerary Services but also for Resolvers.
In the Picture you see the properties for an Intinerary Service. And these are extended.
Because in the properties window you also a property to set the DocumentType and the Business Rule Policy. And normally you don’t have these properties.
And that is quite usefull because Normally with the ESB Toolkit you use a Resolver to feed your Orchestration with dynamic data
With an Extender you can set the properties directly on the Itinerary Service
Through this you no longer need to use a Resolver.
And that can be usefull because normally Resolver you get a Map or an EndPoint
In this demo I’m going to create a Custom Extender for an Orchestration-Based Itinerary Service
I already created an Extender and a Service to validate a message with Business Rules
Walk through the code of the Extender and the Itinerary Service
Show the Business Rules that I’ve created
And then I’m going to add the Validating Service to an Itinerary and set the properties
And I’m going to test the Itinerary.
All the demos that I’ve show are based on blog post and samples that I’ve posted on MSDN.
On this slide is an overview to of the Links to the samples.
If you are interested in customized the ESB Toolkit, you can use these links
When the presentation is published on the website of integrationusergroup.com
But If you use Google you can also find them.