Team LiB
Previous Section Next Section

List of Figures

Chapter 1: Introduction to Enterprise Application Design

Figure 1-1: The chaotic situation at R & R Automobile Corporation
Figure 1-2: An n-tier application model
Figure 1-3: An n-tier application model with integration that includes legacy systems
Figure 1-4: An ordinary n-tier application model
Figure 1-5: A wrapper to a legacy system built with .NET techniques
Figure 1-6: An integration scenario using Microsoft BizTalk Server as a message broker
Figure 1-7: Different clients sharing the same business logic
Figure 1-8: An activity diagram showing activities as rounded rectangles
Figure 1-9: A swim lane added to our activity diagram
Figure 1-10: Actors in a use case diagram represented as stick figures
Figure 1-11: Actions that a system performs for the actors
Figure 1-12: A sequence diagram of the addition of a new product to a campaign
Figure 1-13: A class diagram
Figure 1-14: The class Campaign and its five attributes
Figure 1-15: The Campaign class and its operations, with the attributes hidden
Figure 1-16: An association between two classes
Figure 1-17: An aggregation between two classes
Figure 1-18: A dependency
Figure 1-19: A multiplicity of one to many
Figure 1-20: Here we have a one-to-three relationship.
Figure 1-21: An arrow starting at the SalesManager class indicates that the sales manager initiates communication with the Campaign class.
Figure 1-22: Inheritance between two classes
Figure 1-23: An ORM model
Figure 1-24: The ORM model mapped to a database schema

Chapter 2: Operating Systems and the .NET Enterprise Servers

Figure 2-1: The Manage Your Server Wizard in Windows Server 2003 Enterprise Edition
Figure 2-2: The Server Administration page in Windows Server 2003 Web Edition
Figure 2-3: SQL Server is not allowed to install on the Web Edition.
Figure 2-4: An overview of the internal relations in Commerce Server
Figure 2-5: An integrated communications platform using Microsoft technology
Figure 2-6: The placement of ISA Server between an external and an internal firewall extends the security provided by the firewall hardware.

Chapter 3: Cluster Techniques

Figure 3-1: Combining MSCS and NLB
Figure 3-2: Clients access only one IP address, while several servers actually perform the tasks in the background.
Figure 3-3: The wlbs.sys driver runs between TCP/IP and the network interface card (NIC) drivers.
Figure 3-4: Dedicated IP addresses and primary IP address
Figure 3-5: NLB is available under Local Area Connection properties.
Figure 3-6: A simple two-node cluster
Figure 3-7: A schematic view of a Web site solution
Figure 3-8: The New Cluster Wizard, an example of the wizards provided in Application Center
Figure 3-9: The New Cluster Wizard screen, where you choose the type of cluster you are building
Figure 3-10: Specifying a load-balancing type for a new cluster
Figure 3-11: A typical scenario using Network Load Balancing with Application Center
Figure 3-12: A simplified scenario using Network Load Balancing for a COM+ cluster
Figure 3-13: A likely scenario using CLB for distributing the activation requests for a COM+ cluster and NLB for a Web cluster
Figure 3-14: The Application Center MMC
Figure 3-15: The Application Center UI showing performance counters
Figure 3-16: The Application Center data generation process
Figure 3-17: The Application Center custom setup
Figure 3-18: The Application Center UI. Marked is the place where you choose the time frame to be displayed.
Figure 3-19: Schematics of Application Center data use
Figure 3-20: Here you can connect to a remote or local server. You can also choose to connect to a cluster or to a specific server.
Figure 3-21: A simple scenario using COM+ and a single firewall
Figure 3-22: By adding a second firewall, we create a DMZ.
Figure 3-23: The application logic is moved behind the second firewall.
Figure 3-24: In this scenario, we expose the business logic as Web services.

Chapter 4: An Overview of the Windows Server Family

Figure 4-1: The Windows Server 2003 architecture
Figure 4-2: The executive protects the kernel
Figure 4-3: The ntoskrnl.exe file of Windows Server 2003 Web Edition
Figure 4-4: The four rings of security surrounding the core of the system
Figure 4-5: User mode, kernel mode, and the applications within
Figure 4-6: The system components of the Windows architecture
Figure 4-7: The property page of ntdll.dll
Figure 4-8: Here are the subsystems on our system.
Figure 4-9: The hal.dll property page
Figure 4-10: The components of the Windows Architecture
Figure 4-11: A cluster with one passive node and one active node
Figure 4-12: A cluster with two active nodes
Figure 4-13: A four-node cluster where all servers could fail over to all others
Figure 4-14: A four-node cluster with only one passive node
Figure 4-15: The architecture of MSCS in Windows Server 2003
Figure 4-16: The Cluster Administrator before any cluster is set up
Figure 4-17: A multisite cluster solution that uses both NLB and MSCS to handle clusters
Figure 4-18: An ordinary quorum placement on a shared disk array
Figure 4-19: A Windows Server 2003 MSCS configuration where the quorum resource has been configured as a majority node set
Figure 4-20: The properties of a local area connection
Figure 4-21: An NLB cluster can operate in either unicast or multicast mode.
Figure 4-22: The Network Load Balancing Manager in Windows Server 2003
Figure 4-23: Enabling logging in Network Load Balancing Manager
Figure 4-24: The dedicated IP address should always be listed before the cluster IP address.
Figure 4-25: Setting up remote control for your NLB cluster
Figure 4-26: A display of the effective permission of a user or a group for a specific object
Figure 4-27: Encrypting your files and folders

Chapter 5: The Enterprise Application Architecture

Figure 5-1: Building blocks for an enterprise application
Figure 5-2: The normal flow when using message queues for asynchronous communications
Figure 5-3: Managed code in .NET
Figure 5-4: Unmanaged code in .NET
Figure 5-5: The Common Type System (CTS) is a vital part of the CLR
Figure 5-6: The Common Language Specification is a subset of the Common Type System
Figure 5-7: A hypothetical setup of an enterprise application
Figure 5-8: Some well-known patterns divided into categories
Figure 5-9: An overview of the chunky and the chatty techniques
Figure 5-10: An overview of the enterprise architecture
Figure 5-11: The facade layer can handle direct calls and Web service calls
Figure 5-12: The dataflow for the business layer, including transaction support
Figure 5-13: The enterprise architecture divided among different machines
Figure 5-14: An n-tier architecture using Enterprise Services with COM+
Figure 5-15: The general context for an unmanaged application and its components
Figure 5-16: The context for the example managed application
Figure 5-17: The calls that occur when your server component is executed the first time and registered in Component Services
Figure 5-18: The normal flow in an application window
Figure 5-19: The flow in the UI
Figure 5-20: The message flow between the client proxy and the server object
Figure 5-21: The building blocks of EPiServer
Figure 5-22: The construction of a requested page in EPiServer
Figure 5-23: The different security issues that need to be handled

Chapter 6: Web Services Design and Practice

Figure 6-1: Web services environment
Figure 6-2: The Internet protocol stack for browser/server communication
Figure 6-3: SOAP over TCP/IP
Figure 6-4: SOAP layered over HTTP
Figure 6-5: The architecture of the SOAP message
Figure 6-6: The flow for a Web service request
Figure 6-7: Configuring the trace utility to listen for SOAP messages
Figure 6-8: Creating an ASP.NET Web service
Figure 6-9: Renaming the default Web service
Figure 6-10: The generated service description page
Figure 6-11: The parameter page for the GetSalaryOnAccount function
Figure 6-12: The flow for a Web request to your Web service
Figure 6-13: The input and output filters used for applying the WS-Security implementation
Figure 6-14: The complete flow for SoapWebRequest processing
Figure 6-15: The complete client architecture with the new Web services client protocol
Figure 6-16: The DIME structure
Figure 6-17: The DIMEClient added to the solution file
Figure 6-18: The user interface of the DIMEClient application
Figure 6-19: Adding the Web reference to your Web service
Figure 6-20: Changing the proxy class
Figure 6-21: A common dataflow between client and servers

Chapter 7: Internet Information Services

Figure 7-1: The Windows 2000 user management feature
Figure 7-2: An overview of the IIS 5.0 architecture
Figure 7-3: The three different ways an application can be run in IIS 5.0
Figure 7-4: Setting the application protection for a Web application or site
Figure 7-5: The new IIS Reliable Restart
Figure 7-6: The command-line tool to restart IIS
Figure 7-7: Server.transfer cuts the number of round-trips to the server, which increases performance
Figure 7-8: The Performance Monitor, which you use to collect a server baseline
Figure 7-9: The Enable parent path option
Figure 7-10: The extended logging options of the W3C extended log file format
Figure 7-11: An overview of IIS 6.0 when running in worker process isolation mode
Figure 7-12: Adding a new application pool
Figure 7-13: IIS 6.0 has to be installed separately
Figure 7-14: Enabling FrontPage Server extensions
Figure 7-15: Here you can manually enable or disable extensions in IIS Manager
Figure 7-16: Adding a new Web service extension
Figure 7-17: The Authentication Methods dialog box in IIS Manager
Figure 7-18: Communication between IIS, ASP.NET, and the operating system
Figure 7-19: How aspnet_isapi.dll maps file requests to aspnet_wp.exe
Figure 7-20: The flow inside the ASP.NET worker process

Chapter 8: Data Storage Design and SQL Server

Figure 8-1: A SAN connects the HBA to a switch.
Figure 8-2: A distributed storage design
Figure 8-3: A centralized storage design
Figure 8-4: A NAS appliance that also provides access to SANs
Figure 8-5: SQL Servers' two main components in the SQL Server address space
Figure 8-6: The Memory: Pages/sec counter in the Performance MMC
Figure 8-7: Setting the memory pool size from SQL Server Enterprise Manager
Figure 8-8: The different files in SQL Server
Figure 8-9: The virtual log files in a log file
Figure 8-10: Executing DBCC LOGINFO against the Northwind database
Figure 8-11: Two tables are separated on two different filegroups and then placed on different disk arrays.
Figure 8-12: Specifying automatic file growth and maximum file size in Enterprise Manager
Figure 8-13: Manually enabling fiber mode from Enterprise Manager
Figure 8-14: A logical database design
Figure 8-15: Two performance counters that are used to monitor disk access
Figure 8-16: Two performance counters are used to separate SQL Server disk I/O from other I/O.
Figure 8-17: A MSCS cluster with four nodes
Figure 8-18: A federation of SQL Servers
Figure 8-19: The sysxlogins table from the master database
Figure 8-20: The Enterprise Manager gives you an overview of the users in a database.
Figure 8-21: The roles in SQL Server

Chapter 9: An Example Application

Figure 9-1: Activity diagram for selecting a project
Figure 9-2: Activity diagram for removing a project row
Figure 9-3: Activity diagram for submitting a report
Figure 9-4: The only actor in our simple example
Figure 9-5: The use case we are going to follow
Figure 9-6: Sequence diagram for selecting a subproject
Figure 9-7: Sequence diagram for deleting a project row
Figure 9-8: Sequence diagram for submitting a report
Figure 9-9: The attributes of our three classes
Figure 9-10: The three classes updated with operations
Figure 9-11: A many-to-many relationship
Figure 9-12: Our new class
Figure 9-13: The new relationships
Figure 9-14: A new class between User and WeekReport
Figure 9-15: This diagram shows all relationships between the five classes.
Figure 9-16: An object in the ORM model
Figure 9-17: A predicate sequence box in the ORM model
Figure 9-18: A predicate with a role and sequence box in the ORM model
Figure 9-19: Uniqueness is shown with an arrow-tipped bar in the ORM model.
Figure 9-20: Mandatory roles are shown with a dot on the connector.
Figure 9-21: The completed ORM model
Figure 9-22: The database schema
Figure 9-23: Recursive projects by ProjectID references
Figure 9-24: Two possible ways to implement our application
Figure 9-25: The same application is executed on two platforms and comparisons are made.
Figure 9-26: We simulated 10 connections on the first test runs.
Figure 9-27: First two tests on Windows Server 2003
Figure 9-28: First two tests on Windows Server 2000
Figure 9-29: Windows 2000 versus Windows Server 2003
Figure 9-30: Windows 2000 versus Windows Server 2003 with five connections
Figure 9-31: The equipment Dell provided us
Figure 9-32: Results on Windows Server 2003 with three connections
Figure 9-33: Results on Windows 2000 Server with three connections
Figure 9-34: Average results on Windows 2000 Server compared to Windows Server 2003 with three connections
Figure 9-35: Average results on Windows 2000 Server compared to Windows Server 2003 with eight connections
Figure 9-36: Average results on Windows 2000 Server compared to Windows Server 2003 with 30 connections
Figure 9-37: The chosen platform
Figure 9-38: Disabling the IUSR_MACHINE account
Figure 9-39: Telling IIS to use the new account
Figure 9-40: Disabling the Administrator and Guest accounts
Figure 9-41: Making sure no unnecessary services are installed or disabled
Figure 9-42: Prohibiting unwanted Web Service extensions
Figure 9-43: Limiting who has access to our Web server root directory
Figure 9-44: Minimizing the number of unnecessary virtual directories
Figure 9-45: Restricting access to the log files
Figure 9-46: The Directory Security tab
Figure 9-47: The Web Server Certificate Wizard
Figure 9-48: The trial certificate from VeriSign
Figure 9-49: The communications setting for SSL on our site
Figure 9-50: Firewalls protecting the system from both the external world and the internal
Figure 9-51: The Network Load Balancing Manager
Figure 9-52: The Cluster Parameters dialog box
Figure 9-53: Adding or editing the port rules
Figure 9-54: Defining the port rules
Figure 9-55: Choosing which network connection to use
Figure 9-56: Finishing the wizard
Figure 9-57: The first member is configured.
Figure 9-58: The time reporting solution so far
Figure 9-59: The time reporting solution with the application layer
Figure 9-60: The time reporting solution with the final layering
Figure 9-61: Overview of the implementation and the facade class UserReportFacade
Figure 9-62: Creating the enterprise template
Figure 9-63: Visual Studio will ask for a URL for the location where the Web Application will be created.
Figure 9-64: All projects in our enterprise application
Figure 9-65: The Project Dependencies dialog box
Figure 9-66: The dependencies between the different projects
Figure 9-67: The build order for all projects in our solution
Figure 9-68: The different kind of references we can use from a managed project
Figure 9-69: Making changes in the Configuration Manager
Figure 9-70: Adding a reference to System.EnterpriseServices
Figure 9-71: The tables in the dataset
Figure 9-72: The tables in the dataset and all its properties
Figure 9-73: The Edit Key dialog box
Figure 9-74: The Edit Relation dialog box is used to add relationships between tables in a typed dataset.
Figure 9-75: The complete dataset with the relationship between the UserReport and the ReportLine tables
Figure 9-76: Creating the private queue with transactional support
Figure 9-77: The Web reference form
Figure 9-78: The login page for our application
Figure 9-79: Adding the deployment project to the solution
Figure 9-80: The folders in the default view of the Web setup project
Figure 9-81: The output from the WebUI project
Figure 9-82: The Component Services Admin tool
Figure 9-83: Adding the data connection string to the UserReport data access component

Appendix A: Test Equipment at Dell

Figure A-1: The test environment

Team LiB
Previous Section Next Section