 In this module, we'll talk about the schema of the web-based database application, we'll talk about the architecture and the architecture specifically the three-tier architecture, the data access layer. So we will be talking about the three-tier architecture a number of times. This is very keyword over here and this three-tier architecture will be looking at from different angles, from different aspects, because this is the core of a web-based application. And we look at that three-tier architecture from different aspects so as to enhance your understanding, to enhance your comprehension about this web-based database applications. So now I will explain it to you diagrammatically and things will become more simple and more understandable and of course I will enhance that understanding with more examples. So these are the design considerations for a three-tier architecture. So you can call it this is the client tier, this is the web server tier and this over here is the database tier. Now these divisions are logical, these divisions are logical and these divisions are loosely coupled, okay. They are logical as well as loosely coupled and these are the boundaries of these divisions and these makes the understanding of the concept more simple, more understandable. So we have this data component part. Now remember that these two things they are not the same. This is the actual data. This is the data aspects of the web server. These are the business logic of the web server and this is you. You are the client over here, you are the client over here. So the client is the browser. It is the browser and it could be many browsers are there and of course these are the cross cutting things. So we will cover all of these aspects in the subsequent modules in the subsequent slides. Now let's look at the web application framework. The framework which these are some of the components, these are the aspects which need to be addressed for a web-based database application. Over here I have shown you about 10 of them. They are more than 10 and I will discuss all of them in detail. Let's look at the authentication aspect also. Now this authentication is at the trust boundary and this authentication ensures that there are no issues. Actually there are issues if the passwords are stored as text files. So the issues of passwords stored as text files are covered in this authentication. Then is the authorization. In the authorization also this is also at the trust boundary. So this is also covered and of course the exception management. For the issue of exception management could be say for example that enough detail is not stored when an exception takes place and of course the list goes on. I will cover all of these things when we come to the main part, the main component of this module. Then there are four main layers over here. These are the layers over here. So we have the presentation layer, the business layer, the data layer and the service layer. The presentation layer takes care of what you see on your screen, how you interact with the web application and the business layer is where the business logic is built. This is the most important part because that's where the programming takes place. This is the middle tier, this is the web server tier where a web programming language is used such as PHP which we covered in this course and then is the data layer. The data layer is where you access the data itself, the database and then the service layer. Service layer takes into account when you are hosting your application at a certain level with a certain service provider which I discussed in the last module. Then is the testing and testability. This means that how testing scenarios are built, how testing takes place and how testing results can be evaluated. Then are the performance considerations, these are the non-functional requirements in terms of CPU, in terms of memory, in terms of clock cycles and so on. Then are the security considerations. Now you can see the slight repetition, authentication, authorization and client side validation. Client side validation means that things are not sent from the client which could hamper the operation of the main server. So that is the client side validation. Then is the server side validation that for say for example before something is submitted to the server it is checked at the server end assuming that it has passed from the client end. That can happen also. So that validation should be take place over there also and then encryption. As I said in the last module that TCP and IP were not built for e-commerce, were not built for having database applications running on the web with important data about the banks financial institutions. So that was not built into TCP and IP. So encryption is an important aspect. Then finally are the deployment considerations, non-distributed deployment. So the application is residing at a single place at the main server and it gives a good performance. Why? Because the processing is not distributed. The results don't have to go through the internet where the bottlenecks can be present. And then is the distributed deployment. Distributed deployment has scalability. So if I have more load then I can distribute my processing at different aspects. So over here I am over here. I can send it over there, send it over there, send it over there. So this means that the distribution of the processing reduces the load and I can increase scalability. Load balancing when I have distributed the application then I should ensure that there are no hotspots meaning that the processing is not overwhelmed at a certain node so that the overall impact is degradation in performance. And then the web farm considerations. Web farm considerations take into account the load balancing, the load distribution and performance scalability. And finally the technology considerations. So there is an ecosystem of different organizations of different products, say Microsoft products. So when we develop an application we take into account all the aspects, all the technologies and all the services and all the programs and all the applications which are there which are provided by certain companies so that they talk together collectively. There are no issues, there are no hiccups and things are working smoothly. So this is what I will have to cover in this module.