0

our team have been working on application for e-organization base on Service Oriented Architecture(SOA) and want to integrated services and other lagacy applications and System Applications that develop before has integrate and communicate with new application and new systems with Enterprise Service Bus(ESB) like NServiceBus. my problem is the how to design interface or abstract class for consuming services( UI- BackEnd Design that Users can define own services and other application and systems consume this services through ESB(like NServiceBus).

any idea's?

MKSabzi
  • 69
  • 2
  • 9

1 Answers1

0

Asynchronous communication

Designing the 'interface' is designing the messages that asynchronously flow between services.

Messages as .NET types

Messages with NServiceBus are .net classes or interfaces that are (de)serialized from/to xml, json or other serializer.

http://docs.particular.net/nservicebus/messaging/messages-as-interfaces

This means that we expect a xml or json message to be deserialized to the corresponding .net type with the configured serializer.

If you model messages as XML/JSON and then can have that generate a type safe class representation then you are fine. If not, then you miss out on the programming model that NServiceBus tries to apply.

Native integration without NServiceBus

However, messages on the wire are XML/JSON or any format that you choose which makes it easier to natively integrate via the underlying transport like MSMQ, RabbitMQ, SQL, Azure Service Bus, Azure Storage Queues or any of the community supported transports if the receiving or sending side is not a .NET NServiceBus process.

However, you will that need to implement your own serialization, transaction management, pubsub and process pipeline.

Integration patterns

If you want to integrate with existing applications or external systems then a good book to get familiar with common integration patterns is:

http://www.enterpriseintegrationpatterns.com/

Data transformation and protocol bridging

Related to building integrations I think a good read would be :

http://udidahan.com/2011/04/08/integration-how-and-where/

The blog post talks about data transformation and protocol bridging. These are not native features that NServiceBus provides.

NServiceBus integration channels

It is fairly common that you have NServiceBus integration services that would take care of the transformation and communication for a specific integration channel. Such channels could very well have a different (public) schema from how the data is stored and/or communicated within a collection of independent components that represent a SOA service or system and that use NServiceBus for communication.

Other resources

This might help you wrap your existing systems and expose them as messages based systems which can send/receive asynchronous messages.

You might find relevant videos here: http://particular.net/videos-and-presentations

Ramon Smits
  • 2,482
  • 1
  • 18
  • 20
  • thanks a lot for reply Ramon. our team design a bpms and deployed in the organizations and decide to design and implement a Message Designer over the NServiceBus for Consumers(like other Applications and WebServices and ...) to Design own messages for intract with other services and apps in the organization. my question is : are the IMessage Interface(NServiceBus) Design and Develope is Satisfied my Goals? – MKSabzi Aug 24 '16 at 06:57
  • I've updated the post, please let me know if this provides you with enough information. – Ramon Smits Aug 24 '16 at 12:22