Certification Objective 8.03: Creating the Physical Design for Maintenance


Ensuring that the application can be maintained once it is deployed is another important consideration for application design. As an application designer, you should try to answer several questions about the maintainability of your application before proceeding past the physical design phase, such as:

  • Will application support staff have easy access to the application code in production to find and fix problems? Or is the production environment off limits to developers?

  • What design changes can you make now to make it easier on yourself to debug problems after deployment? What additional auditing and logging should be implemented to support maintenance?

  • How easy will it be for other developers to maintain your code after the application has been implemented? What types of documentation should be created during the development process to support maintenance?

It is sometimes hard to be thinking about what happens after implementation when coding hasn’t even begun on the application. But you will discover that changes to the design that occur at this stage in design are much easier to implement than those that happen during or after implementation.

The ability for application developers to support an application during the maintenance phase is impacted by the type of application architecture chosen, for instance:

  • Single-tier architectures The simplicity of the application design makes problems easier to find, fix, and test, but the stand-alone nature of the application makes it harder to deploy fixes. The same challenges in deploying the entire application will be faced for each bug fix or enhancement to be made.

  • Two-tier architectures There will be bugs and enhancements that can be implemented by simply changing the server-side component of this application, but changes to the client will still be a hassle to deploy. Application bugs are a bit more difficult to find and fix because the application is broken into two components, either of which could be the problem.

  • Three-tier and n-tier architectures Three-tier and n-tier applications are generally easier to maintain, because the amount of server-side code is more significant. However, finding bugs can be problematic because of all the components involved.

  • High and very-high availability This is not technically an application architecture, although it deserves special mention. Applications that require 100 percent (or close) availability can also be difficult to maintain. This is because changes have to be coordinated between several clients and/or servers, and might have to be done without any system downtime. The seamlessness of the transition makes maintainability so difficult.

Designing Application Monitoring

When designing the deployment strategy for mission-critical applications, it is often important that there be some way to monitor their status after rollout. This can be accomplished in a variety of ways:

  • A developer or support analyst performs a series of manual tests against the production application daily.

  • An automated script is developed to regularly check the status of the application, server and database.

  • A full-blown application monitoring tool is purchased or developed to check the status in real-time.

  • The application itself can have some features that monitor its own performance, such as refusing new connections once CPU and/or memory usage reaches critical levels.

The responses of these monitoring tools to perceived problems can be varied as well. Some tools can be programmed to send an e-mail to key support personnel, or even dial a pager or mobile phone. More advanced tools can automatically reconfigure servers to bypass the potential problem until a support person can examine the issue. Some monitoring tools come with complex reporting features, providing support staff with accurate performance and availability benchmarks, which can help warn of potential problems before they occur.




MCSD Analyzing Requirements and Defining. NET Solutions Architectures Study Guide (Exam 70-300)
MCSD Analyzing Requirements and Defining .NET Solutions Architectures Study Guide (Exam 70-300 (Certification Press)
ISBN: 0072125861
EAN: 2147483647
Year: 2003
Pages: 94

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net