Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


advertisement
 

Effective Windows DNA Applications: Maximizing Performance with Object Pooling

Windows Distributed interNet Application (DNA) is an architecture for building n-tiered applications for the Microsoft Windows platform, based on the Microsoft Component Object Model (COM). Developers can generally choose the language in which they are most comfortable for building components, though you should be aware that not all languages are created equal. In this article we discuss the performance implications of development languages, as well as the impact of the database and the hardware on the overall performance and scalability of your application.


advertisement

indows Distributed interNet Application (DNA) is an architecture for building n-tiered applications for the Microsoft Windows platform. DNA is based on the Microsoft Component Object Model (COM), which provides for object level reuse and allows for a high degree of language neutrality. Developers can generally choose the language in which they are most comfortable for building components, though you should be aware that not all languages are created equal. We will discuss the performance implications of development languages later in this article.

Microsoft continues to enhance the features provided through COM, with a goal of eliminating much of the complexity involved in building scalable server-based applications. Windows NT 4.0 and MTS showed a lot of promise toward delivering on the goal of simplifying the development of systems utilizing distributed components and databases. Unfortunately, neither the infrastructure of the Windows NT OS nor the reference material made available about developing for MTS were sufficient to realize the vision.

While MTS on Windows NT was a step in the right direction, developers were like toddlers learning to walk as they implemented solutions based on this new vision. Even several years after the introduction of MTS (the dinosaur age in Web years) there is still an amazing amount of misinformation being published about MTS, the related infrastructure, interaction with RDBMS's, and effective component design.



With Windows 2000 Microsoft has taken another step toward the goal of simplifying the development of highly scalable server-based applications. The functionality in COM+ Services now offers multiple avenues to resolve performance and scalability issues without having to write your own infrastructure. The ability to manage application resources by object pooling is one of the new features of COM+ Services, and is the primary focus of this article.

Be aware that each of the features of COM+ can be used to reduce the perceived complexity of developing server applications. Unfortunately, the gross understatement of the complexity of implementing real-world applications based on some of the new features provided by COM+ Services will result in a repetition of the MTS cycle.

While in an ideal world you can use semi-skilled labor to build robust, scalable applications, the real world is a little more demanding. To design and build effective Windows DNA applications, developers must have a thorough understanding of the resources involved in a distributed application.

As we transition to an n-tier framework based on Windows DNA, server performance becomes an issue that many desktop application developers are unprepared to address. Coding techniques that were effective for 2-tier designs are unsuitable in an n-tier application. Many developers currently writing n-tier code targeted for the server have yet to understand the impact of object context and distributed transactions, even after several projects. There are major differences between the coding practices that prove effective for desktop vs. server environments. Failing to anticipate the impact of MTS or COM+ applications with regard to the network, database, or the application server resources will result in a solution that performs poorly and will not scale.

The purpose of this article is to provide developers with an understanding of the performance characteristics of middle-tier transactional components in a Windows DNA application. This article will not attempt to describe the basic concepts of Windows DNA, but rather will focus on the issues encountered in real-world deployment that lead us to conduct our performance analysis. We will also cover the tests conducted and our observations regarding the results.





Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date