-2

Good evening,

I work for a customer who wants to have a Service Oriented Architecture. I work at the SAP system end, and the service bus used is Oracle Service Bus.

One of the providers (provider A) requires that an HTML is sent to them, contained as an XML element. We are responsible of generating the information that "provider A" needs, so we asked the OSB guys to do the transformation on the info sent by us. They basically told us to f*** off, as a service bus should not write code to do a transformation.

I understand what they mean, but as far as I know, an application should not be responsible for the connectivity logic in a service oriented architecture. Even if it means for them to write code, they should be the ones to implement it. For us, it would mean doing double the work.

Do you guys have any documentation regarding this? Or at least to provide information on what is the best practice. I have been searching, but have not found the precise info that I need.

Thanks.

Sandra Rossi
  • 11,934
  • 5
  • 22
  • 48
gabrielbaca
  • 123
  • 1
  • 2
  • 10

1 Answers1

1

Service buses can transform (It's part of the VETRO acronym), but generally only where it makes sense.

if there's an endpoint that is difficult for clients to consume due to its format, then transforming to a (canonical) domain model makes a lot of sense.

In your case, it looks like you just want an application-specific format from an existing service, which seems to be the app's responsibility rather than the service bus's.

I think the OSB team would agree that it's their responsibility to provide you with the data, but not their responsibility to decorate it in the format you'd like.

Trent Bartlem
  • 2,213
  • 1
  • 13
  • 22
  • Thank you very much for your answer. Actually we are the ones exposing the service, it is the other application that needs the format transformed to HTML. We usually have a lot of trouble with that provider, as they have web services with generic methods that ALL of their clients use. So they are never willing to make changes on their application, only adapt it. Our customer has just accepted this. If the other application does not have this connectivity logic, I believe the ESB should be responsible for the transformation. Given this scenario, do you think I have a valid claim? – gabrielbaca Oct 27 '15 at 04:29
  • In that case, what you seek is a mediator service (or Adaptor) to provide data model transformation. This would make sense to be on the bus if the client is expected to hit the mediator service directly. Obviously if there's a lot of business logic surrounding the transformation that's encapsulated in your app, then I can see where the OSB team would be reluctant to do that, since many service bus architectures try very hard to be stateless and have no business logic. – Trent Bartlem Oct 27 '15 at 06:50