Skip to content

Technology Patterns

Technology patterns are general purpose and are commonly used in a wide variety of solutions.

Web service based integration/messaging

Web services and Web protocols are common in today’s SOA implementations.  However, interoperability remains a challenge because of the wide variety of protocols and standards (SOAP, REST, WS*, security, etc.), some of which are simply not interoperable (e.g. basic authentication versus WS-Security).  Web services are not a silver bullet; in fact they introduce some of their own challenges, such as how to handle changes to services (versioning), handling changes to URL’s, and message routing.  Neuron can be used as a mediation solution to easily handle these and other Web protocol based integration challenges.

As an example, Figure 10 shows a Neuron configuration where a client application is using SOAP 1.2 and WS* protocols to communicate with services that only support SOAP 1.1 (and therefore no WS* compatibility).  This is possible because Neuron communication domains are bounded by the client application and client connector, or the service application and the service connector; the communication protocols only need to match these endpoints, all messages are passed between client connector and service connectors using topics (as configured with Neuron Explorer) and each connector is solely responsible for packaging the message and exchanging it with the endpoint.

Figure_10.gif
Figure 10 – Web service integration

Because Neuron does not care about the contents of a message (although it can be configured to enforce message constraints) this pattern can also be used to provide a single URL access point for all traffic.  Using the Neuron API, this URL can be dynamically resolved so that no physical addresses are actually required in code or configuration.  This dramatically reduces the maintenance required by client applications and allows operations to change the addresses as required (maintenance, failover, etc.)

Adapter based integration (non Web service)

There are many situations where Web services are simply not available or appropriate; Neuron adapters provide support for virtually any system or technology.  Neuron adapters provide protocol conversion from native system protocols to standard WCF protocols (used internally in Neuron).

Neuron provides an extensible, open framework for adapters, making development of custom adapters straightforward by providing a standard set of API’s for configuration, UI, logging, and execution.  Neuron also directly supports the Microsoft WCF LOB adapters available with BizTalk Server (or separately.)

Figure_11.gif
Figure 11 – Adapter based integration

Adapter endpoints, client connectors, and service connectors can all operate simultaneously; there are no constraints to mixing connectors.  As discussed in the previous section, communications domains are bounded by the connectors and endpoints, and the applications themselves and Neuron exchanges messages internally between the connectors and endpoints; protocol conversion occurs at the adapter endpoint only.

Reliable messaging

One of the biggest challenges with Web based protocols is reliable message delivery.  There are many reasons that endpoints may not be available, and in every case the overall reliability of the application is only as good as the least reliable link.  Because business applications often require high levels of delivery guarantee, Neuron provides a configurable policy object with a variety of options to help ensure message delivery.

As shown in Figure 12, Neuron provides a variety of methods to improve the reliability of messaging.  By associating a policy with a service or adapter endpoint the endpoint will execute the policy upon message failure, and can be configured to retry message transmission, log the message to the disk, or republish the message on a new topic.  Policies can dramatically increase the robustness of message delivery and error handling.

figure_12.png
Figure 12 – Neuron Policy Configuration
Was this article helpful?
Dislike 0
Previous: High Level Patterns