Talking to Other Applications
The POP Forums case study assumes that you are building your application from top to bottom in your own little universe. We know that the bigger the company, the less likely that is. In fact, in a large organization, different business units might draw on the same resources that are maintained by another unit.Figure 4.1, a number of different units (the Web site, customer service, and the warehouse) need to get product data. It wouldn't make much sense for each unit to create its own data access layer to retrieve that data, not to mention that the lack of coordination could cause conflicts in terms of data concurrency.One solution to this problem is to have another unit that provides services for the other units. Both the Web site and the customer service department need to know if an item is in stock, so the unit maintaining the transaction router can provide an interface that they can both use to discover that information. At the same time, they can provide a service for the warehouse system to update inventory numbers.A service-oriented architecture is most easily implemented in the .NET world using Web services and .NET remoting. There are also classes that help you work with message queue systems, where data is queued for processing across a network between systems. The topic of SOA and large-scale distributed applications is beyond the scope of this book.