August 16, 2002
Steve Kirk
Microsoft Corporation
Summary: By looking at service-based architecture at different scales, Steve Kirk examines the place of factoring an application into logical layers in the new conceptual application architecture of Microsoft .NET. (3 printed pages)
In the July column, I introduced the .NET Architecture Center and some new content there, including the Application Architecture: Conceptual View. A colleague who had visited the Center and read this recently stopped by to discuss applications such as Duwamish 7 and IBuySpy catalogued in .NET Architectural Sample Applications. He wondered how those applications fit the new architectural concepts.
Those applications are factored into logical layers. For example, the Duwamish 7 architecture contains User, Business Façade, Business Rules, Data Access, and Data layers. The layers are themselves factored by use case, and the physical architectures vary significantly, but the concern driving my colleague's visit was, "Where do these logical layers fit in the new conceptual application architecture?"
The short answer is that it continues to make sense to factor an application into logical layers. If we want to address the question more thoroughly, we can consider the architecture at a range of scales.
.gif)
Figure 1. A service and process view
Figure 1, borrowed from the Applications part of Application Architecture: Conceptual View, shows a process service that calls other process services and business services. A process service is itself a service that controls step-by-step calls to services. An order process service might make calls to customer, shipping, and credit-card billing business or process services.
.gif)
Figure 2. Detail showing the internal architecture of a service
Figure 2 shows a service closer up, illustrating the internal service architecture. At this more detailed scale, we can see that the service is factored into layers that correspond reasonably well to the above-mentioned Duwamish 7 layers. So looking at the service-based architecture at different scales helps to show what doesn't change with this architecture, as well as what does.
From User-Interface Scale to Enterprise Scale
The exercise of applying the concepts at various scales can also help show, as suggested in Applications, how you can apply the service and process service concepts from the user-interface scale, to the business-process scale, and on to the enterprise scale.
Applying these concepts at the user-interface scale can enable better factoring of business logic from the user interface, leading to enhanced maintainability and reuse.
When applied at the enterprise scale, a portfolio of applications may be thought of as a portfolio of services—and this may in turn lead to enhanced enterprise integration. In fact we'll soon be addressing this, and other design issues, through a new document set, Application Architecture: Logical View, which is now being developed for publication on the .NET Architecture Center.
.NET Designers