Choosing an e-Business Architecture
In a client/server environment, the client connects to the database via SQL*Net or Net8 and maintains the connection until all the transactions are complete. This process is resource intensive because the client maintains the connection even if no processing is actually occurring. For an e-Business such as DOeBIZ.com, a thin-client multitier architecture is more suitable. In this architecture, an application server can act as a broker for client requests and server responses:
The client uses a Web browser or some other interface to send requests to the application server.
The application server makes a connection to the database server.
The server processes the request, and the result is sent back to the application server.
The application server disconnects from the server and returns the requested information to the client.
Note that most Web applications use some form of connection-sharing techniques such as connection pooling, multithreaded servers, and so on.
Be Ready for Change
As an iDBA, you should redesign the technical aspects of a project to align with the changes made in the various business units and practices.
This architecture is better than a straight client/server architecture for the following reasons:
The client doesn't stay connected to the database.
The application server stays connected only for the time required to make a request and receive the results back from the database server.
Network traffic is reduced.
Idle processes do not consume resources.
Response time is improved.
You should consider mirroring of Web servers that provide static content. Mirroring will improve the performance and availability of the overall system.
In addition, you can use Oracle's multithreaded server configuration (MTS) and connection managers to maintain constant prespawned connections to the server. This approach reduces the amount of overhead time needed to create the connection each time a query needs to be processed. Applications in the middle tier can be controlled by a Transaction Processing Monitor (TPM)for example, Tuxedo, Encina, Microsoft Transaction Server, or CICS.
Transaction Processing Monitor
You should consider a Transaction Processing Monitor (TPM) when you have to support high transaction volumes involving one or more databases.
Changing a business to an e-Business involves, to an extent, support for globalization. Understanding this fact is very important because, for an e-Business to be successful, the business practices will have to change a great deal, and the architecture you choose will have to take into account these various factors. For example, the growing complexity of a global supply chain would require scalable systems that can extend the capabilities of current Enterprise Resource Planning (ERP), Advanced Planning and Scheduling (APS), Order Management System (OMS), legacy, and so on. Generally, the existing systems are unable to support the new demands placed on them by the e-Business. Consider these examples:
ERP systems are designed to standardize transactions and processes for efficiency purposes but not rapidly perform global commerce.
APS systems are not flexible enough to compensate for the changing external constraints placed by the B2B environment or global commerce.
Order management systems are not optimized for inventory and shipment tracking.
Choosing the File System
Several questions need to be addressed when you're determining the file system to use:
Should disk striping be used?
Should a RAID configuration be used? If yes, RAID 0+1 or RAID 5?
How should the RAID cache be configured?
Should RAW partitions be used?
For Windows NT, disk striping probably provides the best performance advantage over other disk management strategies. Two types of disk configuration are popular when you're running Oracle on Windows NT:
RAID 5 (disk striping with parity)
RAID 0+1 (disk striping combined with disk mirroring)
RAID 0+1 is expensive but provides the best fault tolerance due to the hardware duplication. On the other hand, RAID 5 provides a more cost-effective solution.
The following guidelines can be useful in configuring a RAID cache for the various parts of the system:
A write cache can be useful in an online transaction processing (OLTP) environment to accommodate the rate of data updates. When you use the write cache, ensure that the disk controller is backed up by a battery; otherwise, data may be lost. Oracle can cache its own reads; therefore, you don't need to use a read cache.
Neither a read nor write cache is needed in a decision support system (DSS) environment.
RAW partitions aren't buffered by the kernel and can provide faster access compared to File Allocation Table (FAT) or New Technology File System (NTFS) file systems for files accessed sequentially and for I/O-bound systems. The disadvantage of using RAW partitions, however, is that they provide restricted disk configuration options.
Choosing the Operating System
Essentially, all operating systems do the same thing: They make your computer work and perform various tasks. In addition to this basic requirement, an operating system used for an e-Business should provide the following features:
Support for X.500-based directories (which will allow customer profiling)
Table 3.1 shows some important OS requirements for an e-Business and how Windows 2000, Linux, and UNIX stack up.
Table 3.1 Comparing Operating Systems for an e-Business
|Feature||Windows2000 Server||Red Hat Linux6.2 Professional||Sun Solaris 8|
|Maximum CPUs per node||4||8||64|
|Remote administration console||Yes||Yes||No|
|Bundled Web server||IIS 5.0||Apache Web Server 1.3.9||Apache Web Server 1.3.9|
|Cost||Medium||Low (almost free)||High|
|Performance monitoring of CGI and other API requests||Yes||Yes||Yes|
|Maximum nodes for load balancing||32||Unlimited||Unlimited|
|Hot swapping of hardware supported||Yes||Yes||Yes|
|Hot patching of software supported||No||No||Yes|
|Application server supported||Yes||Yes||No|
|Authoring tools supported||Yes||Yes||No|
|Search engine included||Yes||No||No|
|Minimum processor||Pentium class||i386 or better||SPARC or Intel|
|Vendor Web site||http://www.microsoft.com||http://www.redhat.com||http://www.sun.com|
Choosing the e-Business Server
Servers are machines on the network that control various critical operations. They manage a number of functionalities, and as such they fall in different categories depending upon their functionalities:
Web serversThese servers act as intermediaries between the client's Web browser (such as Internet Explorer or Netscape Navigator) and the actual content. Original Web servers simply served HTML documents and images, but the Web servers of today are more intelligent and specialized and can perform tasks such as load balancing, security, and performance. The core functionality provided by Web servers is to satisfy requests for Uniform Resource Locators (URLs). In other words, a client may use a browser to send a request for a Web page such as www.doebizhomepage.com. This request is received by a Web server that maps the URL to a local file on the host server. The Web server loads the file from disk and serves it across the network to the client's browser.
Payment serversThese servers are an important part of an e-Commerce system. They allow customers to buy things and make payments. Customers can place orders and enter payment information, which is transmitted by the payment server for processing. Upon receipt of approval, the server completes the order and gives the customer an order number and payment receipt; the order is then transmitted to the internal order processing system. Use of a separate payment server allows you to optimize it for payment processing as well as enhance its security (because it is dealing with customers' credit cards and so on).
Database serversMost businesses use databases, and the database server provides a means to centralize the data that will be provided to various applications.
Application serversThese servers enable you to develop and deploy Internet applications by allowing client programs running in browsers to connect to the database. Application servers provide several advantages:
Reduce the size and complexity of client programs
Improve security for data
Improve performance by caching data
Allow ease in application management
Allow ease in sharing data across applications
Figure 3.1 shows a simple architecture using the various servers. In later chapters, we will refine the architecture for scalability, security, performance, and availability.
Figure 3.1 Simple initial architecture for DOeBIZ.com.
These major players in the industry provide application servers:
Microsoft's Windows DNA (IIS, SQL Server 2000, and Commerce Server 2000) and the .NET initiative.
iPlanet e-Business suite, including iPlanet Application Server 6.0 (iPlanet is the result of a joint venture between Sun Microsystems and Netscape).
IBM's WebSphere application server
BEA Systems' WebLogic
Oracle's Internet Application Server
Additional Architectural Components
While you're designing your e-Business, you will have to consider several other components, such as XML, firewalls, Java, JavaBeans, HTML, CGI, and so on. These technologies will be discussed in later chapters as appropriate.