CHAPTER 1 s DISTRIBUTED ARCHITECTURE
PDF417 Creator In Visual Basic .NET
Using Barcode maker for Visual Studio .NET Control to generate, create PDF-417 2d barcode image in Visual Studio .NET applications.www.OnBarcode.com
Decode PDF-417 2d Barcode In Visual Basic .NET
Using Barcode recognizer for VS .NET Control to read, scan read, scan image in Visual Studio .NET applications.www.OnBarcode.com
or procedures that can be called as needed. Like the Data Access layer, it s important to recognize that the designs for data storage and management are typically very procedural. Table 1-1 summarizes the five layers and their roles. Table 1-1. The Five Logical Layers and the Roles They Provide
Linear Printer In VB.NET
Using Barcode creation for Visual Studio .NET Control to generate, create Linear image in Visual Studio .NET applications.www.OnBarcode.com
Printing GS1 - 13 In Visual Basic .NET
Using Barcode generator for VS .NET Control to generate, create GTIN - 13 image in Visual Studio .NET applications.www.OnBarcode.com
QR Code JIS X 0510 Drawer In VB.NET
Using Barcode printer for VS .NET Control to generate, create QR Code JIS X 0510 image in VS .NET applications.www.OnBarcode.com
Generating Universal Product Code Version A In VB.NET
Using Barcode drawer for VS .NET Control to generate, create UPC Code image in Visual Studio .NET applications.www.OnBarcode.com
Generate Barcode In VB.NET
Using Barcode creation for .NET framework Control to generate, create Barcode image in VS .NET applications.www.OnBarcode.com
Drawing Planet In Visual Basic .NET
Using Barcode creator for Visual Studio .NET Control to generate, create Planet image in .NET applications.www.OnBarcode.com
Print PDF-417 2d Barcode In VS .NET
Using Barcode encoder for Visual Studio .NET Control to generate, create PDF 417 image in .NET framework applications.www.OnBarcode.com
PDF 417 Generator In None
Using Barcode drawer for Office Word Control to generate, create PDF417 image in Word applications.www.OnBarcode.com
Renders display and collects user input. Acts as an intermediary between the user and the business logic, taking user input and providing it to the business logic, then returning results to the user. Provides all business rules, validation, manipulation, processing, and security for the application. Acts as an intermediary between the business logic and data management. Also encapsulates and contains all knowledge of data access technologies (such as ADO.NET), databases, and data structures. Physically creates, retrieves, updates, and deletes data in a persistent data store.
Barcode Recognizer In Java
Using Barcode Control SDK for BIRT Control to generate, create, read, scan barcode image in Eclipse BIRT applications.www.OnBarcode.com
Code128 Generator In None
Using Barcode printer for Font Control to generate, create USS Code 128 image in Font applications.www.OnBarcode.com
Business Logic Data Access
ECC200 Recognizer In VS .NET
Using Barcode reader for .NET Control to read, scan read, scan image in .NET applications.www.OnBarcode.com
Barcode Generator In Visual Studio .NET
Using Barcode maker for .NET framework Control to generate, create Barcode image in .NET applications.www.OnBarcode.com
Data Storage and Management
Scanning QR Code ISO/IEC18004 In None
Using Barcode scanner for Software Control to read, scan read, scan image in Software applications.www.OnBarcode.com
Creating Barcode In Objective-C
Using Barcode drawer for iPhone Control to generate, create Barcode image in iPhone applications.www.OnBarcode.com
Everything I ve talked about to this point is part of a logical architecture. Now it s time to move on and see how it can be applied in various physical configurations.
PDF 417 Maker In Java
Using Barcode creation for Android Control to generate, create PDF 417 image in Android applications.www.OnBarcode.com
Encoding EAN13 In Java
Using Barcode maker for Java Control to generate, create EAN-13 Supplement 5 image in Java applications.www.OnBarcode.com
Applying the Logical Architecture
Generating UPCA In None
Using Barcode maker for Office Excel Control to generate, create UPC-A Supplement 2 image in Microsoft Excel applications.www.OnBarcode.com
Encoding Barcode In None
Using Barcode encoder for Font Control to generate, create Barcode image in Font applications.www.OnBarcode.com
Given this 5-layer logical architecture, it should be possible to configure it into one, two, three, four, or five physical tiers in order to gain performance, scalability, security, or fault tolerance to various degrees, and in various combinations.
In this discussion, it is assumed that there is total flexibility to configure which logical layer runs where. In some cases, there are technical issues that prevent the physical separation of some layers. Fortunately, there are fewer such issues with the .NET Framework than there were with COM-based technologies.
There are a few physical configurations that I want to discuss in order to illustrate how the logical model works. These are common and important setups that are encountered on a day-to-day basis.
Optimal Performance Smart Client
When so much focus is placed on distributed systems, it s easy to forget the value of a single-tier solution. Point of sale, sales force automation, and many other types of application often run in stand-alone environments. However, the benefits of the logical n-layer architecture are still desirable in terms of maintainability and code reuse. It probably goes without saying that everything can be installed on a single client workstation. An optimal performance smart client is usually implemented using Windows Forms for the presentation and UI, with the business logic and data access code running in the same process and talking to an Access (JET) or Microsoft SQL Server Express database. The fact that the system is deployed on a single physical tier doesn t compromise the logical architecture and separation, as shown in Figure 1-2.
CHAPTER 1 s DISTRIBUTED ARCHITECTURE
Figure 1-2. The five logical layers running on a single machine
I think it s very important to remember that n-layer systems can run on a single machine in order to support the wide range of applications that require stand-alone machines. It s also worth pointing out that this is basically the same as 2-tier, fat-client physical architecture; the only difference in that case is that the Data Storage and Management tier would be running on a central database server, such as SQL Server or Oracle, as shown in Figure 1-3.
Figure 1-3. The five logical layers with a separate database server
Other than the location of the data storage, this is identical to the single-tier configuration, and typically the switch from single-tier to 2-tier revolves around little more than changing the database configuration string for ADO.NET.
High-Scalability Smart Client
Single-tier configurations are good for stand-alone environments, but they don t scale well. To support multiple users, it is common to use 2-tier configurations. I ve seen 2-tier configurations support more than 350 concurrent users against SQL Server with very acceptable performance. Going further, it is possible to trade performance to gain scalability by moving the Data Access layer to a separate machine. Single or 2-tier configurations give the best performance, but they don t scale as well as a 3-tier configuration would. A good rule of thumb is that if you have more than 50 to 100 concurrent users, you can benefit by making use of a separate server to handle the Data Access layer. Another reason for moving the Data Access layer to an application server is security. Since the Data Access layer contains the code that directly interacts with the database, the machine on which it runs must have credentials to access the database server. Rather than having those credentials on the client workstation, they can be moved to an application server. This way, the user s computer won t have the credentials to interact directly with the database server, thus increasing security. It is also possible to put the Business Logic layer on the application server. This is very useful for non-interactive processes such as batch updates or data-intensive business algorithms. Yet, at the same time, most applications allow for user interaction, and so there is a very definite need to have the Business Logic layer running on the client workstation to provide high levels of interactivity for the user.