You are probably familiar with the Windows NT Server family and now the Windows 2000 Server family. Just out is the new and improved Windows 2000 Advanced Server. Of course, Windows NT 4.0 Enterprise Edition is at the core of this new offering. It has been renamed, improved, and repackaged. You will likely experience an easy and painless migration into the Windows 2000 Server family offerings. These will form many of today's organizational computing infrastructures. In years past, many large organizations relied solely on Unix or on mainframe-based operating systems to provide their mission-critical application services. This was due in large part to the inherent scalability and reliability in both of those operating environments. Microsoft has recognized the need to provide the same level of performance, reliability, and scalability in its Windows 2000 Advanced Server product.
Both Windows 2000 AS and Windows 2000 Datacenter are based on the original Windows NT 4.0 Server Enterprise Edition engine with several enhancements and bundled services to provide the high availability, enhanced performance, and comprehensive services required in the largest enterprises. A couple significant performance features along with enhancements to server clusters and load balancing top the list:
8GB RAM main memory on Intel PAE systems?This enhancement enables Windows 2000 AS to address up to 8GB of RAM. The standard NT Server can only address up to 2GB of RAM per process. This addition can provide a major performance boost for applications' large databases on machines with more than 2GB of physical RAM.
Eight-processor symmetric multiprocessor (SMP) support?Windows 2000 AS is licensed for use on up to eight-processor SMP servers.
Enhanced two-node server clusters?These enable you to more affectively create and manage fault-tolerant/fail-over environments.
Network (TCP/IP) load balancing?This provides another avenue for improving scalability.
In addition to these performance-enhancing features, Windows 2000 AS is bundled with several other services that are designed to enhance your ability to develop the large-scale distributed applications that are necessary within your enterprise. These other services are described in the following section.
One of the primary characteristics of enterprise computing is scalability. This implies not only scalable computing power, but also scalable application development. As an organization grows, its need for rapid development and easy modification of mission-critical applications intensifies.
This need has resulted in an explosion of component-based distributed application development. This type of application development is commonly referred to as n-tier application development. It is characterized by the separation of business logic from presentation and data logic. By creating a set of independent, reusable components that can encapsulate an organization's business logic, you can create a scalable application development architecture. This type of architecture enables you to quickly bring new applications online and to change business logic without having to recompile and redistribute client applications. Chapter 43, "Microsoft Transaction Server," covers MTS and the features that make it the architecture of choice for developers.
Two other important characteristics of enterprise computing are availability and interoperability. An enterprise usually consists of many heterogeneous entities that must function together as a logical whole. For example, your enterprise might have both a Windows NT Server network and a legacy mainframe system. Likewise, you might have remote or disconnected users who need access to enterprise application resources. In any event, the enterprise systems must be available and interoperable.
The Message Queue Server (MSMQ) enables availability and interoperability by allowing applications to easily communicate with one another. You might be thinking, "Applications communicate with each other all the time, so why do I need MSMQ?" The answer is that MSMQ allows applications to communicate with one another asynchronously. In other words, an application can send a request to a receiving application and continue with another task even if the receiving application is unusable or disconnected from the network.
The MSMQ is based on a store-and-forward model. Applications send messages to MSMQ, and those messages are stored in queues. Each application involved in the communication sends messages to MSMQ and receives messages from MSMQ. MSMQ is effective in situations in which sending and receiving applications run at different times, or in which the cost of message loss or interruption is extremely high.