"I have studied up on the SOA approach and it all sounds good. But most articles stop at the theory.Lets say I sell things. I have a CustomerProfileService. The application does CRUD through this service to a back end database. Its autonomous and isolated.I have anther service, InventoryItemProfileService. Again, the application does CRUD through this service to a back end database. It is autonomous from the CustomerProfileService. Not only may it live on a different DB from the CustomerProfileService, it might exist on a different platform.Now lets get to the InvoiceService. Lets say from the client side, I would guess that i would have a CreateInvoice(custID,itemID[] ) method. The InvoiceService would then call out to the CustomerProfileService for profile that meets the needs of the invoice, then another call out to the InventoryItemProfileService for the item descriptions and such. Here is the question. It would seem like in the back end (the db) of the InvoiceService there would be tables to support the customer info and the item info from the invoice. Where prior to SOA, when everything was in the same db, these requirements would be largely satisfied by joins. Now a logical join across services just seems radically expensive (everytime you touch the invoice). hence the need for the customer and item tables local to the invoice service.Does this sound right? Just how often does the InvoiceService have to go back to these other supporting services?"
Subscribe to RSS headline updates from: