|
Beginning ASP Components, page 5 Author: Richard Anderson Contents
Network Application Architecture ASP is a relatively new technology, but people have been building network-based applications for many years. To help us see where our components fit, it's worth taking a look at the options available for network development as whole, since the same considerations will be relevant when it comes to designing our component-based solutions. Two-Tier (or Client-Server) Systems Older types of network application were invariably made up of a server (which did the real grunt-work of running the application) and multiple clients (which connected to that server). The clients provided instructions to the server and accessed the results it produced. The clients in this situation are referred to as thin clients, because they do not have to do much work-most of the functionality is hosted on the server. As time went by and computing power got cheaper, the temptation was for the clients to perform more of the processing work, easing the strain on big expensive servers. When more of this processing work is passed to a client, the typical client application needs to contain all the code needed to process the required tasks. If such a client were accessing a database, for example, the client application would need to be capable of accessing the database and manipulating that data-while the data alone still resides on the server. This is known as a fat client because some of the processing has been passed onto it. While this relieved the load on the main server, any changes either to the client or to the database then have rippling effects across all client installations. Any changes that need to be made are not just made to the central server; each individual client has to be updated for each change, and potentially several different applications have to be recompiled and updated if data manipulation and access code is shared between them. To help reduce the maintenance of 2-tier systems, database views and stored procedures can be used. Both provide an elementary level of indirection that can sometimes help reduce the impact of database changes on client code. However, neither works very well in the case of distributed, heterogeneous databases; unless the same provider (SQL Server, for example) is used for each database engine, and inter-database interoperation is non-existent. This means that stored procedures have to be duplicated, which can be a potential concern for enterprise applications. As computers spread into more areas of the workplace, the demands on computer-based applications rose rapidly. These applications are often referred to as enterprise applications, and incorporate many servers and data stores. They tend to be organic in that they are always growing, and tend to be difficult to design and to maintain. To help programmers work with programs and data spanning increasing areas, it made sense to divide up the application into layers or tiers. The important thing to remember when talking about tiers in an application is that they can be logical or physical. A physical tier is one that actually resides in a distinct physical place, while logical tiers are more conceptual way of thinking. Logical tiers help us plan and view the different parts of an application, removed from concerns about where they reside physically. Thinking about architecture changed, along with the expansion of networked applications, to three-tier models. We shall take a quick look at this next so that you can understand where we are using our components (you may also have heard of n-tier applications, which are an extension of the three-tier model, and which we come back to in Chapter 5). Three-Tier Applications You can view the client-server model as being a 2-tier application structure. This is extended in the three-tier model by the addition of a middle layer that sits between the client and the data sources. The three physical tiers break down as follows:
The Client Tier The client browser requests an ASP page from the server, and is presented with an HTML form for entering data about the size of wall and brick. The user then clicks on the Calculate button, which sends the form details to the web server. Later, the client receives the response from the web server and displays the results of the calculation. The Middle Tier This is where our web server resides, holding (amongst other things) the ASP pages and our components. When the client requests the form, the web server creates it as HTML using WroxBloxForm.asp. When the user clicks Calculate on the client end, the values are sent to WroxBloxResult.asp. WroxBloxResult.asp creates an instance of the BrickCalculator component, also on the middle tier, which uses the passed parameter values to calculate the number of bricks required, and returns the result to the page. The page then writes this back to the client. In this case, all of the logic of the application, creating the component, and calculating the number of bricks required, goes on in the middle tier. The Data Tier OK, so our example doesn't use the data tier. However, if we needed to collect or store any persistent data in a database, such data would reside in this tier. Busy sites will gain great performance advantages from actually having the database residing on a separate physical server, because databases typically require a lot of system resources. During the design phase, this is not always possible-but the notion of a logical data tier still exists, whether or not the database resides on a separate server. Next Page....Building Our First Component Buy the book!! This article is the first chapter of the book 'Beginning ASP Components' from Wrox Press. Order Beginning ASP Components from Amazon UK/Europe Today! Contribute to IDR: To contribute an article to IDR, a click here.
|
|