Programmers and technical managers get a clear overview of Microsoft Transaction Server, the keystone to the service technologies that Microsoft is developing on top of Windows 2000. This readable, cogent overview of MTS architecture and related services also provides a clear understanding of how these technologies fit together in an enterprise's application strategies.
About the Author
David Chappell BA(Hons Arch), MA(Arch), MA(Law), PhD, RIBA has worked as an architect in the public and private sectors and is currently the Director of David Chappell Consultancy Ltd. He frequently acts as an adjudicator and is author of ten books on construction law for Blackwell Publishing.
Read an Excerpt
Chapter 1: The Windows 2000 Distributed EnvironmentWhat’s required to build an effective distributed environment? What does it take to transform a group of individual computers into a usable, manageable whole? Over the last twenty years or so, we in the computer industry have had plenty of experience with this problem, and perhaps the most important thing we’ve learned is that answering these questions is not simple. Distributed environments pose a number of difficult problems.
First, a distributed environment requires some kind of distributed infrastructure, complete with the services needed to make that environment usable. How is information about the people, computers, and applications in the environment made available? How are the services and information a distributed environment provides made accessible to the right users, yet kept inaccessible to the wrong users? Second, a distributed environment should allow the creation of distributed applications. Doing this well requires solving yet another set of hard problems. For example, how should these diverse pieces of software communicate? How will they find one another? How can scalable applications be created, applications that support many simultaneous users, Web-based and otherwise? Finally, an effective distributed environment implies the ability to manage a potentially large number of applications, computers, and users, spread around a building, a campus, or the entire world. Distributed management brings its own set of challenges that must be solved to create a workable environment.
Successfully creating an effective distributed environment requires using the right distributed services. MicrosoftWindows 2000, the successor to Windows NT 4.0, includes the most powerful group of distributed services ever bundled with a mainstream operating system. While similar services have been available from various vendors (including Microsoft) for several years, the release of Windows 2000 marks the first time a complete set has been made a standard part of the system. Accordingly, deploying Windows 2000 in all but the simplest configurations requires using the distributed services it includes. The goal of this book is to help you understand what those services are, what they have to offer, and how they fit together.
Figure 1-1 A typical network today organizes its protocols into layers.
Most organizations use several different kinds of subnetworks, so the next layer in the stack houses a protocol capable of routing data across diverse subnetworks. This function is commonly called internetworking, and the most widely used choice for this protocol today is the Internet Protocol (IP). But IP, like most internetworking protocols, is unreliable-it might lose some of the data it’s transferring. Accordingly, the transport layer protocol above it can add reliability, guaranteeing that whatever data is sent actually arrives at its destination. Not every application needs this reliability, though, so simpler transport layer protocols also exist that don’t guarantee delivery. Today’s most common choice for a reliable transport protocol is the Transmission Control Protocol (TCP), while the most popular choice for an unreliable transport protocol is the User Datagram Protocol (UDP).
The protocols described so far collectively provide a way to move bytes, perhaps reliably, between machines connected to any kind of subnetwork. If you’re a masochist, you can build a bare-bones distributed environment using only the services these protocols provide. For example, distributed applications can be built that access the transport protocol’s services directly through an application programming interface (API) named sockets. In the Microsoft environment, this API is called Windows Sockets or, more often, just Winsock. Winsock-based applications can be simple and fast, and plenty of them exist.
Yet creating an application directly on a transport protocol can be a little challenging-all the developer has to build on is a way to move bytes between machines. Trying to create a true distributed environment with only a basic byte transfer service to work with is nobody’s idea of a good time. Instead, distributed services built on top of some transport protocol can underlie an application and provide an infrastructure for a distributed environment. Because distributed services are implemented between-that is, in the middle of-a distributed application and the transport layer, they’re sometimes called middleware. Whatever they’re called, however, a powerful set of distributed services helps immeasurably in building an effective distributed environment.
What should those distributed services be? Reasonable people can disagree on the answer, but it’s sometimes useful to think of the essential distributed services as falling into two broad categories:
- Infrastructure services This category includes directory services that make it easier to find resources in a distributed environment and security services that control access to information and services in that environment. One might easily argue that many other technologies also fall into this category, but to keep this book to a manageable length, I’ve chosen to focus on directory and security services.
- Application support services The group of services in this category support building distributed applications using remote procedure calls (RPCs), message queuing, or Web-based access via the Hypertext Transfer Protocol (HTTP). This category also includes services that make it easier to build more scalable and correct distributed applications, such as services for performing transactions involving multiple databases.
Some of the distributed services in Windows 2000 have been part of earlier releases of Windows NT, while others are new with this most recent version. Whatever their genesis, these technologies as a group comprise a powerful, well-integrated set of services that offers a solid foundation for building a distributed computing environment.
All of these things and more can be accomplished using a directory service. The most widely used directory service in data networks today is the Domain Name System (DNS), and Windows 2000 makes extensive use of DNS. But Windows 2000 also includes Active Directory, a wholly new directory service that implements the Lightweight Directory Access Protocol (LDAP). To see how DNS and Active Directory work together, it’s useful to first take a look at how domains are organized in Windows 2000.
Domains in Windows 2000 Like earlier versions of Windows NT, Windows 2000 allows grouping users and computers into domains. Using domains is not required, of course, and not all computers or users belong to a domain, but to fully use Windows 2000’s distributed services, domains are all but obligatory. Figure 1-2 shows an example Windows 2000 domain installed at a fictitious financial services firm called QwickBank. Although a domain can mix Windows 2000 systems with computers running Windows 9x or older versions of Windows NT-a subject that’s discussed in more detail in Chapter 2-this example assumes that the domain is purely Windows 2000...
Table of Contents
|Chapter 1||The Windows 2000 Distributed Environment||1|
|Defining Distributed Services||2|
|Application Support Services||14|
|Managing Distributed Services||25|
|Using Windows 2000 Distributed Services||26|
|Chapter 2||Directory Services||33|
|Defining Directory Services||34|
|DNS in Windows 2000||35|
|Understanding Active Directory||39|
|An Example Use of Active Directory: Group Policy||70|
|Upgrading to Active Directory||79|
|Chapter 3||Distributed Security Services: Kerberos||83|
|Distributed Security in Windows 2000||83|
|Chapter 4||Distributed Security Services: Public Key Technology||117|
|Understanding Public Key Technology||118|
|Managing Public Key Technology in Windows 2000||133|
|Using Public Key Technology with Kerberos||163|
|Chapter 5||Component Services: COM and DCOM||167|
|Understanding COM Objects||167|
|Threads and Apartments||190|
|Chapter 6||Data Access Services||205|
|Open Database Connectivity||206|
|ActiveX Data Objects||209|
|Related Technologies for Accessing Data||235|
|Chapter 7||Distributed Transaction Services||239|
|The DTC Environment||240|
|A DTC Example||246|
|Chapter 8||Component Services: COM+||259|
|From COM to COM+||260|
|Object Lifetime Services||289|
|Other COM+ Technologies||310|
|Chapter 9||Message Queuing Services||329|
|When to Use Message Queuing||330|
|MSMQ Security Services||353|
|MSMQ and Transactions||357|
|Routing in MSMQ||364|
|Connecting MSMQ to Other Systems||366|
|Chapter 10||Web Application Services||369|