Designing the Physical Architecture

   

The goal of the physical model is to produce an application architecture that best meets the requirements identified in each of the other submodels of the Enterprise Application Model.

Physical Model Tasks

In the physical model design phase, you put the requirements of the other models into concrete form in order to create a physical architecture for your application. In many ways this is the most complex part of the design process, because it is here that you define the pieces and the way they work together. This is where the issues of performance, bandwidth, scalability, reliability, and maintainability are resolved and implemented.

The most important physical model design tasks include the following.

Defining Object Roles

Component-based applications provide resources and services through COM-based objects, which can assume different roles. Examples of object roles include:

Defining Work Delegation

There are two Work Delegation Options — personal and delegated.

Defining Call/Message Concurrency and Delivery

Components call each other for various reasons. Calls and messages between components can be either synchronous or asynchronous, and can use various messaging options that affect performance, throughput, and security.

Defining State Options

Components may need to store many kinds of state information, including computer state, user state, job state, and transaction state. State can be stored in memory or on disk in database or file system storage. All of these choices have performance and integrity implications.

Defining Access Latency and Bandwidth Approaches

Performance is crucial in a distributed environment, where low bandwidth and multiple servers can strain throughput enormously. Careful design consideration needs to be given to performance issues that may be difficult to predict in advance. Various throughput handling options such as local and remote caches and connection pooling need to be considered and tested.

Physical Model Tools

Visual Studio, Enterprise Edition provides several powerful tools for designing, deploying, and testing various physical architecture options.

Application Performance Explorer (APE)

Application Performance Explorer is an application modeling tool that tests the performance of a distributed architecture in many different configurations. APE provides a visual interface for quickly setting up architectures using multiple clients and servers, over different protocols, using different database parameters, object queues, and different numbers of users and transaction volumes. By setting up test architectures that parallel your application, you can quickly run them on multiple computers under many different conditions to evaluate relative performance and efficiency.

For more information   For more information about Application Performance Explorer, see Application Performance Explorer Reference online in MSDN Library Visual Studio 6.0.

Visual Studio Analyzer

Visual Studio Analyzer is a distributed application profile and debugging tool. It collects information about your application while it is running, and is capable of producing reports that help you understand structure and performance issues, as well as isolating faults, identifying bottlenecks, and detecting bugs.

For more information   For more information about Visual Studio Analyzer, see Visual Studio Analyzer Reference online in MSDN Library Visual Studio 6.0.

Visual Database Tools

Microsoft Visual Database Tools are a set of database design components for creating and maintaining database objects that implement live connections to Microsoft SQL Server, Oracle, and other ODBC-compliant databases. These tools include four components that are integrated directly into the Visual Studio development environments: a Data View component, a Database Designer, a Query Designer, and a stored procedure Source Code Editor.

For more information   For more information about Visual Database Tools, see Introducing Microsoft Visual Database Tools online in MSDN Library Visual Studio 6.0.

Build Package and Deployment tools

New application platforms like the Internet and intranets give developers much greater flexibility in packaging and deploying distributed, component-based enterprise applications. Visual Studio's solution building, packaging, and deployment tools can package your components in flexible ways and create a variety of distribution units for deployment.

These tools operate within the Microsoft development environment (for Visual J++™ and Visual InterDev™) to create setup executable (.exe) files, cabinet (.cab) files, or Zip Archive (.zip) files for remote deployment. You can also digitally sign setup or cabinet files for additional security in unprotected environments.

For more information   For more information about the build, package, and deployment tools, see Solution Building and Packaging Reference and Solution Deployment Reference online in MSDN Library Visual Studio 6.0.