2. Introduction to Business Processes
• Provide an understanding of the Business Process Designer.
• Provide and understanding of the Business Process Step Library and the process steps
contained within.
• Provide an understanding of how to test and debug business processes.
Goals
3. Introduction to Business Processes
• Introduction to Business Processes
• Business Process Designer
• Business Process Library
• Business Process Step Library
• Testing Business Processes
• Design Time
• Runtime
Lesson Plan
4. Introduction to Business Processes
Business processes are stateless / in memory processes which allow for a variety of actions to be
used in the processing of messages.
• Business processes can be attached to either the OnPublish or OnReceive events of a party
• In a request / reply scenario each party would have both execution environments available to them
• Multiple business processes can be used in conjunction with one another
• Messaging conditions can be used to control the execution of a business process
• The “Execute Process” process step can be used to componentize processes
Business Processes
5. Introduction to Business Processes
• When performance and low latency are required
• In a request / response MEP
• When event tracking is not necessary
• When fault tolerance is not necessary
• When a long running process is not required
When to use Business Processes
6. Introduction to Business Processes
Business Process Designer
The business process designer is used to build out
the logic applied to messages
• Import / Export
• Zoom / Pan
• Copy / Cut / Paste
• Print / Save out as JPEG
• Enable / Disable
7. Introduction to Business Processes
Process Library
The process library is a repository for saved business
processes
• Create new business processes
• Create folders for organizing business processes
• Copy / Rename/ Move / Delete
• View entities dependent on each business process
8. Introduction to Business Processes
Process Step Library
Business process steps are the actions taken in the processing of messages
Icon
Supports Environmental Variables
Step specific properties
Disable
Name
Flow Control
XML
Services
Message
Languages
Security
Error Handling
Storage
Each Step 8 Process Step Categories
9. Introduction to Business Processes
Flow Control
Decision
• Supports adding multiple branches
• Only one branch will execute
• Order of evaluation is left to right
• Branch conditions are expressed
as C# Boolean statements
Execute Process
• Configure with an existing process
• Becomes a child of the parent process
• Flows context from parent to child and back
• Double click to navigate to child process
• Can select an external configuration
• Supports Pool Management for high concurrency
• Process name can be dynamically set at runtime
by setting custom property:
neuron.pipelineName
Break
• Used in For, ForEach and While process
steps to break out of the loop prematurely
or based on custom logic
Cancel
• Used to stop further process execution
• If “Cancel” is the last process step in the
flow, it will prevent the message from being
published
• If attached to a client connector and the last
process in the flow, “Cancel” will return the
final message as the reply message
10. For
• Used for iterating through a collection
• Has 3 properties
• Condition
• Initializer
• Iterator
ForEach
• Used for iterating through a collection
• Has 2 properties
• Collection property name
• Item property name
• Set “Collection Property Name” in a
preceding C# code step
Retry
• Used to retry all process steps inside of the
“Retry” process block when exception occurs
• Has 4 properties
• RetryCount
• TraceErrors
• ErrorType
• RetryDelay
While
• Used for iterating through a collection
• Has 1 property
• Condition
• Example:
var counter = (int)
context.Properties["counter"];
var max = (int) context.Properties["max"];
return counter < max;
Introduction to Business Processes
Flow Control
11. Introduction to Business Processes
Flow Control
Parallel
• Parallel processing
• Can set the number of threads
• Maximum concurrent branches
• Can add branches
• Branch specific properties:
context.Properties["CurrentBranch"]
• Aggregate results into a collection
var responseMsgs =
(System.Collections.Generic.Dictionary<string,
ESBMessage>)context.Properties["Messages"];
foreach(var c in responseMsgs)
Console.WriteLine(c.Value.Text);
Timeout
• Executes process steps inside of “Timeout” execution
block in background thread
• Default timeout setting of 60 seconds
• Throws exception on timeout
• Contained steps will execute until finished even if
timeout occurs
12. Introduction to Business Processes
Flow Control
Split
• Used for batch splitting and aggregation
• Define split using C# or Xpath
• Define join using C#, xml wrapper or null (no
aggregation)
• Can run synchronously (default) or asynchronously
• Can set maximum number of threads
Transaction
• Uses System.Transactions
• Configurable timeout
• Configurable transaction level
• Always creates a new transaction
13. Flow Control : Demo
Purpose:
Familiarize users with the flow control process steps.
Objectives:
Acquaint users with the following flow control process steps
• Using the Decisions process step
• Using the Cancel process step
• Using the Timeout process step
• Using the Transaction process step
14. Introduction to Business Processes
Language
C#
• Method template “OnExecute”
• PipelineContext passed in
• i.e. “context.Data”
C# Class
• Class template
• Has OnExecute method
• PipelineContext passed in
• i.e. “context.Data”
• Can add “using” statements for
namespaces
VB.NET
• Method template
• PipelineContext passed in
• i.e. “context.Data”
15. Language : Demo
Purpose:
Familiarize users with the Language Editor process steps.
Objectives:
Acquaint users with the following flow control process steps
• Using the C# process step
• Using the C# class process step
• Accessing message data in language editors
16. Audit
• Stores message in either failed message or
message history table depending on action
property
• Xpath can be used to audit a specific part
of the message
• Supports Pool Management for high
concurrency
• On failure, process name and step are
captured
Trace
• Writes ESB message body to the Neuron
ESB trace log in Runtime mode or trace
window of the Business Process Designer
in design mode
Pop
• Retrieves the ESB message previously
stored by the “Push” process step, and
overwrites the current ESB message
Push
• Preserves the current ESB message
Introduction to Business Processes
Message
17. Compression
• Supports Gzip, Winzip and other popular formats
• Can compress files, collections of files or files with folders
• Supports password encryption
• Writes metadata to ESBMessage
• Has properties that can be set at runtime:
compression.password
compression.Filename
• At runtime total number of files unzipped can be retrieved:
compression.Count
• Compression produces ZipMessage as body of ESBMessage:
Neuron.Esb.Zip.ZipMessage zipMessage = Neuron.Esb.Zip.ZipMessage.Deserialize(context.Data.InternalBytes);
foreach(var zipFile in zipMessage.Attachments)
context.Instance.TraceInformation(zipFile.Filename);
Introduction to Business Processes
Message
18. Introduction to Business Processes
Message
Detect Duplicates
• Detects is the message was previously
sent within a given time window
• Uses Neuron ESB database
• User defines unique ID by Xpath or
setting the property:
dupcheck.UniqueId
• Application name can be set to partition
data in database
• Check Window property defines the
timespan range in which a message
received will be considered a duplicate if
matches the UniqueId
• Has 2 other properties that can be set at
runtime:
dupcheck.ConnectionString – used for
design time testing
dupcheck.MessageFound – used to
determine if the Detect Duplicates
Process Step evaluated the incoming
message as a duplicate.
JSON
• Can serialize between XML, JSON and
.NET classes
• Can customize XML serialization
• Can customize date format for JSON
• Used most often for REST endpoints
Excel to XML
• Can convert binary excel to XML
• Version 2007 and above supported
• Uses ODBC, 32 bit by default with Office
• Exposes metadata using the “exceltoxml”
property prefix
• See sample that ships with Neuron ESB
19. Introduction to Business Processes
Message
Set Property
• Used to set common properties at runtime
• Expression property exposes drop down of
properties
• Can be used instead of setting properties
in code step
Flat File Parser
• Launches Wizard to create flat file parsing
instructions
• Converts Comma, Tab, Space and char
delimited files to XML
20. Message : Demo
Purpose:
Familiarize users with the Message process steps.
Objectives:
Acquaint users with the following Message process steps
• How to use the Audit process step
• How to use the Trace process step
• How to use the Set Property process step
• How to use the JSON process step
21. Introduction to Business Processes
Services
Publish
• Publishes ESB Message to Topic using existing party
context
• Supports all semantics
• Can override default timeout of 60 seconds for Request
/ Response
• Topic to publish to can be dynamic, evaluated at
runtime using code step
• Common to change context.Data.Header.Topic
property in a Code Step and have Publish Step use it.
Rule - WF
• Exposes the .NET framework rules engine and
graphical editor for building rules
• Neuron ESB ESBMessage object appears via
intellisense within the Rules Editor’s “Condition”,
“Then”, “Else” text editors
22. Introduction to Business Processes
Services
Service Endpoint
• Allows direct execution of any configured service
connector
• Bypasses Pub / Sub infrastructure
• Should be used for all Request / Response MEP
• Policy controlled
• Supports Pool Management for high concurrency
• Can be set dynamically by setting the following
property to the name of the Service connector to be
executed:
context.Data.Header.Service
• Also means that URL and Action can be set dynamically
using Addressing.To property and ESBMessage
Header’s Action property
Adapter Endpoint
• Allows direct execution of any configured adapter
endpoint
• Supports Pool Management for high concurrency
• Bypasses Pub / Sub infrastructure
• Should be used for all Query or Solicit / Response
type MEPs
• Policy controlled
23. Introduction to Business Processes
• When to use what?
• When calling a request/response style Service, use Service Endpoint
• When calling a solicit/response or Query mode adapter, use Adapter Endpoint
• For multicast/datagram types of calls, IF there could ever be more than one subscriber, use Publish otherwise,
use Service Endpoint or Adapter Endpoint
• Note: the Service Process Step, based on WCF, is deprecated
When to use which Business Process Step
24. Introduction to Business Processes
Services
HTTP Client Utility
• Similar to Postman
• Configure all HTTP properties for REST calls
• Supports dynamic configuration using
Environmental Variables, message body and
context properties
25. Introduction to Business Processes
Services
Service
• Uses WCF configuration
• Uses either a WSDL address and configuration or
“Select Endpoint” dialog
• Can support custom binding, which must be entered
into runtime app.config file
Workflow
• Can be used to run a Windows Workflow version 3
assembly
• User can select the assembly and class
These steps have been deprecated and while they still exist in the process step library, are not
recommended for use, and not supported.
26. Services : Demo
Purpose:
Familiarize users with the Services process steps.
Objectives:
Acquaint users with the following Services process steps
• How to employ Service Endpoints
• How to employ Adapter Endpoints
• How to use the Publish process step
• How to use the HTTP Client Utility process step
27. Introduction to Business Processes
XML
Transform - XSLT
• Executes XSLT
• Can execute script
• XSLT source can be imported from file, copied from the Neuron ESB repository, or linked directly to an XSLT in the Neuron ESB repository
• Supports passing and setting XSLT Parameters
• See Sample **
• At Runtime, the XSLT or the name of the XSLT document can be set using the following properties:
neuron.xslt
neuron.xsltName
• Also Supports Dynamic Parameters
28. Introduction to Business Processes
XML
Transform - XSLT
• Dynamic Parameters
The following syntax can be used as the Value of the parameter in the parameter collection dialog:
To use a custom property, enter the following into the value field for the parameter:
{property:<prefix>.<name>}
For example, if I have defined the custom property “Person.Name” with value “Michael Collins”, then using
“{property:Person.Name}” will insert the value “Michael” into the parameter value when the XSLT is evaluated.
For an environment variable:
{env:<name>}
If I have the environment variable “MachineName” set to “MCOLLINS01”, then using “{env:MachineName}” will
result in the parameter having the value “MCOLLINS01”.
For an XPath expression:
{xpath:<xpath-expression>}
Using “{xpath:/person/firstname}” will use the value “Michael” for the parameter value.
29. Introduction to Business Processes
XML
Validate - Schema
• Validates an XML message using an XSD
Schema
• XSD Schema source can be imported from
file, copied from the Neuron ESB repository,
or linked directly to an XSD Schema in the
Neuron ESB repository
• Supports Includes/imports of other schemas
schemaLocation = file based location
schemaLocation = ESB Repository
Format = “esb:<name of schema>”
• Invalid Branch contains exception that can be inspected or re-thrown
• See Sample **
• At Runtime, the XSD Schema or a list of Schemas can be set using the following properties:
neuron.schema
neuron.schemaNames (i.e. if more then 1, separate with ‘;’)
30. XML : Demo
Purpose:
Familiarize users with the XML process steps.
Objectives:
Acquaint users with the following XML process steps
• How to use the Transform – XSLT process step
• How to use the Validate – Schema process step
31. Introduction to Business Processes
Security
Encrypt XML
• Uses AES 256 encryption to sign the XML
• Can specify an Xpath to determine the
content to sign
• Use in concert with Topic level encryption
for end to end encryption
Decrypt XML
• Decrypts XML encrypted XML provided it
has the same key that was used to encrypt
the XML originally
Verify Signed XML
• Must use the same X 509 Certificate, that
was originally used to sign the message, to
verify the integrity of the received XML
message
Sign XML
• Uses and X 509 Certificate to digitally sign
an XML message
32. Security : Demo
Purpose:
Familiarize users with the Security process steps.
Objectives:
Acquaint users with the following Security process steps
• How to Encrypt / Decrypt XML
• How to Sign / Verify Signed XML
33. Introduction to Business Processes
Storage
ODBC
• Supports all formats and functions as the ODBC adapter
• Only supports Solicit / Response or Multicast
• Ingrained connection string builder
• Supports XML schema generation
• All the following properties can be set dynamically:
odbcstep.RowName
odbcstep.RootName
odbcstep.Namespace
odbcstep.ConnectionString
• See Sample **
• Documentation link:
http://www.neudesic.com/neuron/Help3/Development/Samples_and_Walkthroughs/Process_Samples/Using_the_ODBC_Process_Step.htm
34. Introduction to Business Processes
Storage
Store, Table Query and Xml Query
• These only work against Microsoft SQL Server
• See Sample **
• A connection string must be supplied, or it can be set
at runtime by using the respective property:
TableQuery.ConnectionString
XmlQuery.ConnectionString
Store.ConnectionString
• All support either calling a sql statement or stored procedure
• All support setting an XPATH statement to determine what part of the ESB Message body will be used when setting Parameters collection
• Each support a Parameters collection that allows the user to define what part of the message “maps” to a parameter
• Parameters can be mapped to either:
OuterXml, Element name, attribute name, Xpath statement, ESB Message Header property or custom property
35. Introduction to Business Processes
Storage
MSMQ
• Supports reading from and writing to MSMQ
• Supports correlated receives from MSMQ
• Adds MSMQ metadata to the ESB message
• See Sample **
• Documentation link:
http://www.neudesic.com/neuron/Help3/Development/Samples_and_Walkthroughs/Process_Samples/Correlated_Messaging_with_the_MSMQ_
Process_Step.htm
36. Introduction to Business Processes
Storage
Websphere MQ
• Supports both Send and Query mode functions
• Query Mode
• Supports retrieval of first message in queue or specific message by message id or correlation id
• Can retrieve message and remove from queue or retrieve message and leave on queue
• Supports multiple bindings (Server, Client, Bindings)
• Supports conversion from source code when performing MQGET
• Uses same properties a the Websphere MQSeries Adapter
37. Security : Demo
Purpose:
Familiarize users with the Storage process steps.
Objectives:
Acquaint users with the following Storage process steps
• How to use the ODBC process step
38. Introduction to Business Processes
Testing Business Processes (Design Time)
• Launch the test window by clicking the “Test
Process” button
• Messages can be entered manually, loaded
from an ESB message or loaded from a file
• Load custom message, properties and
environmental variables in the “Edit Test
Message” dialog
• For “Active” process steps “Source Id”,
“Semantic” and “Topic” should be entered in
the “Edit Test Message” dialog
39. Introduction to Business Processes
Testing Business Processes (Design Time)
• Use context.Instance.Trace methods to output
any information you want to the Trace output
window
• The Trace process step outputs the message
body to the Trace output window
• All trace statements controlled by the Trace
Level setting in the Neuron ESB Explorer
40. Design Time Testing : Demo
Purpose:
Familiarize users with how to test a business processes at design time.
Objectives:
Acquaint users with the following aspects of testing business processes at design time
• How to use the Edit Test Message dialog
• Loading messages and files into the Edit Test Message dialog
• Creating custom properties inside the Edit Test Message dialog
• Using Environmental Variables inside the Edit Test Message dialog
• View output from context.Instance.Trace and the Trace process step
41. Introduction to Business Processes
Error Handling
Exception
• Mimics the functionality of Try / Catch / Finally block in
C# code
• Process steps can be included in any block
• Current exception can be retrieved in the Catch block
via a code step
Rethrow
• Re-throws the current exception
• Can be used in the Catch block of the Exception
process step
• Can be used in the “Invalid” branch of the Validate –
Schema process step
42. Introduction to Business Processes
Testing Business Processes (Runtime)
• Ensure that the Neuron ESB service
configuration is set
• Ensure that the Neuron ESB Service instance is
running
• Associate the business process to be tested
with the appropriate type of party (publisher
or subscriber)
• Launch two Neuron ESB Test Clients
• Connect the first test client to the appropriate
publisher
• Connect the second test client to the
appropriate subscriber
• Send a test message
43. Introduction to Neuron ESB : Lab
Purpose:
In this lab, you will learn how to create a simple business process, test it at design time, attach it to a party to be executed
on every message that the party handles and finally ensure that it works at runtime as well.
Objectives:
• Creating a simple business process
• Testing the business process at design time
• Assigning the business process to a party
• Testing the business process at runtime
44. Introduction to Neuron ESB
Review
• Business process steps are divided into 8 categories
• Flow Control
• Languages
• Message
• Services
• XML
• Security
• Storage
• Error Handling
• Every business process step has 3 properties
• Icon
• Name
• Disable
• Business processes can be tested at both design time and runtime
Hinweis der Redaktion
In this course you will receive an introduction to Neuron ESB, it’s features, tools and operating principles. We will also take a look at the core technology and architecture of Neuron ESB, in order to provide you with a better understanding of the platform.
Wto e will take a look at the tools and services associated with Neuron ESB. We will also look at how to create, configure and host a Neuron ESB solution so that you can get started building your own Neuron ESB solution. In addition we will also look at the Neuron ESB runtime and how it uses the WS-Discovery service, so that you can better understand the architecture behind Neuron ESB.
Wto e will take a look at the tools and services associated with Neuron ESB. We will also look at how to create, configure and host a Neuron ESB solution so that you can get started building your own Neuron ESB solution. In addition we will also look at the Neuron ESB runtime and how it uses the WS-Discovery service, so that you can better understand the architecture behind Neuron ESB.
Wto e will take a look at the tools and services associated with Neuron ESB. We will also look at how to create, configure and host a Neuron ESB solution so that you can get started building your own Neuron ESB solution. In addition we will also look at the Neuron ESB runtime and how it uses the WS-Discovery service, so that you can better understand the architecture behind Neuron ESB.
Neuron ESB is not simply just an ESB but a full Hybrid Integration Platform. Because of this it comes with a suite of tools and services that one may not find in other ESB platforms.
Because Neuron ESB is built on the .NET framework, it exposes the .NET runtime for development purposes.
To compliment the Business Process designer (which is for in-memory processes and covered in later sessions) Neuron ESB provides a long running workflow designer and host.
As with all ESBs, Neuron ESB is a pub/sub based platform and thus provides you a messaging service to use in transmitting data between systems.
Neuron ESB provides an API/SOA gateway for hosting and consuming services.
Neuron ESB provides a reporting service which provides history on the messaging service
Neuron ESB ships with a number of connectors (also called adapters) that help integrate commonly used applications.
A suite of management features are provided with Neuron ESB to help with maintenance and monitoring
To make solutions easier to build, Neuron ESB provides designers for both business processes and workflows.
Neuron ESB is not simply just an ESB but a full Hybrid Integration Platform. Because of this it comes with a suite of tools and services that one may not find in other ESB platforms.
Because Neuron ESB is built on the .NET framework, it exposes the .NET runtime for development purposes.
To compliment the Business Process designer (which is for in-memory processes and covered in later sessions) Neuron ESB provides a long running workflow designer and host.
As with all ESBs, Neuron ESB is a pub/sub based platform and thus provides you a messaging service to use in transmitting data between systems.
Neuron ESB provides an API/SOA gateway for hosting and consuming services.
Neuron ESB provides a reporting service which provides history on the messaging service
Neuron ESB ships with a number of connectors (also called adapters) that help integrate commonly used applications.
A suite of management features are provided with Neuron ESB to help with maintenance and monitoring
To make solutions easier to build, Neuron ESB provides designers for both business processes and workflows.
Wto e will take a look at the tools and services associated with Neuron ESB. We will also look at how to create, configure and host a Neuron ESB solution so that you can get started building your own Neuron ESB solution. In addition we will also look at the Neuron ESB runtime and how it uses the WS-Discovery service, so that you can better understand the architecture behind Neuron ESB.
Neuron ESB is not simply just an ESB but a full Hybrid Integration Platform. Because of this it comes with a suite of tools and services that one may not find in other ESB platforms.
Because Neuron ESB is built on the .NET framework, it exposes the .NET runtime for development purposes.
To compliment the Business Process designer (which is for in-memory processes and covered in later sessions) Neuron ESB provides a long running workflow designer and host.
As with all ESBs, Neuron ESB is a pub/sub based platform and thus provides you a messaging service to use in transmitting data between systems.
Neuron ESB provides an API/SOA gateway for hosting and consuming services.
Neuron ESB provides a reporting service which provides history on the messaging service
Neuron ESB ships with a number of connectors (also called adapters) that help integrate commonly used applications.
A suite of management features are provided with Neuron ESB to help with maintenance and monitoring
To make solutions easier to build, Neuron ESB provides designers for both business processes and workflows.
Neuron ESB is not simply just an ESB but a full Hybrid Integration Platform. Because of this it comes with a suite of tools and services that one may not find in other ESB platforms.
Because Neuron ESB is built on the .NET framework, it exposes the .NET runtime for development purposes.
To compliment the Business Process designer (which is for in-memory processes and covered in later sessions) Neuron ESB provides a long running workflow designer and host.
As with all ESBs, Neuron ESB is a pub/sub based platform and thus provides you a messaging service to use in transmitting data between systems.
Neuron ESB provides an API/SOA gateway for hosting and consuming services.
Neuron ESB provides a reporting service which provides history on the messaging service
Neuron ESB ships with a number of connectors (also called adapters) that help integrate commonly used applications.
A suite of management features are provided with Neuron ESB to help with maintenance and monitoring
To make solutions easier to build, Neuron ESB provides designers for both business processes and workflows.
Neuron ESB is not simply just an ESB but a full Hybrid Integration Platform. Because of this it comes with a suite of tools and services that one may not find in other ESB platforms.
Because Neuron ESB is built on the .NET framework, it exposes the .NET runtime for development purposes.
To compliment the Business Process designer (which is for in-memory processes and covered in later sessions) Neuron ESB provides a long running workflow designer and host.
As with all ESBs, Neuron ESB is a pub/sub based platform and thus provides you a messaging service to use in transmitting data between systems.
Neuron ESB provides an API/SOA gateway for hosting and consuming services.
Neuron ESB provides a reporting service which provides history on the messaging service
Neuron ESB ships with a number of connectors (also called adapters) that help integrate commonly used applications.
A suite of management features are provided with Neuron ESB to help with maintenance and monitoring
To make solutions easier to build, Neuron ESB provides designers for both business processes and workflows.