Why most of what I read about service-oriented architecture annoys me - Part 3

If we apply the approach that I described in my last post (too long ago) to the requirements of an arbitrary, yet commonplace line of business application, you will see the tremendous power of the approach as it yields significant insights even into the very tiny set of the requirements of the example.



So, let us describe an arbitrary, yet unremarkable line of business application to which we would apply our analysis. Let us say that the application is a Web application for a sales organization with a number of branches, and that it must allow branch administrators to, amongst other things, manage the physical sales contract documents that the sales personnel complete when they close a sale. Those physical documents are shipped to the branches directly from the printers, and each document has a branch-independent, unique serial number to identify it. There are various types of sales contracts however, and there is a specific type of document for each type of contract. The sequence of serial numbers for the documents for one type of document is different from the sequence of serial numbers for another type of document, and it is possible for those sequences to overlap. Branch administrators must be able to use the software to record them assigning sales contract documents to sales people, keep track of each sales person’s supply of sales contract documents, and retrieve unused sales contract documents from them if necessary. When a branch’s supply of documents is depleted to a certain point, which varies from branch to branch, an order for replacements should be automatically transmitted to the ordering system of the printer, and the status of any such order retrieved from that remote system on demand. However, branch administrators may determine from reports that supplies of a given type of contract document will be exhausted before new replacements are to arrive, in which case, a branch manager or assistant manager may implement the expensive process of having some couriered in from another branch.



So, in summary, our application must allow branch administrators to manage the physical sales contract documents that the sales personnel complete when they close a sale. They must be able to record their having received a batch of documents shipped to them from the printers, record them issuing the documents to sales personnel, as well as allow them to update the status of the documents and record them shipping the documents between branches.