In this chapter, we introduce and demonstrate Application Designer, the Distributed System Designer that enables you to define and configure applications that provide and consume services in a service-oriented architecture. The application diagram that you create using this designer describes the overall structure of your service-based solution in terms of the following:
The major applications, services, and databases
The endpoints through which those applications communicate
The connections between the endpoints, showing application interdependencies
First we'll introduce the most common toolbox items that are available for use in an application diagram. You construct this diagram, and other diagrams we will introduce in subsequent chapters, by dragging toolbox items (called prototypes) onto the diagram.
Next, we'll provide a design overview of the StockBroker scenario that is used throughout subsequent chapters. We'll present the complete application diagram up-front as a means of communicating the overall design of an application system, and we'll briefly compare that diagram to an equivalent UML diagram. You will then learn how to create the diagram yourself.
It's important to consider that the Application Definition is used to define the applications and that these are composed in one or more systems that describe the intended deployable systems. In some cases, the Application Definition and resultant System Definition will be similar, but the Application Definition is simply a dynamic view of the solution; it is the System Definition created with a Distributed System Designer that is the rigorously maintained and versioned design artifact that should be focused on as the target of the overall design activity.
After that, you'll see how easy it is to take the application design right through to a set of executable implementations. This is one of the major differences between the Team Edition for Software Architects and equivalent UML tools. The former pays attention to implementation and deployment issues from the very start, and the latter allows for the design of systems in an abstract sense with little attention paid up-front to the final realization in software.
Finally, you'll learn about the additional features and characteristics of Application Designer, including model-code synchronization, reverse-engineering of existing solutions, the Settings and Constraints Editor, and printing.
This chapter provides a very practical and accessible demonstration of the Application Designer's capabilities in the context of the StockBroker example that we will use in upcoming chapters. Using this example, you will get the chance to learn by doing.