Monday, November 30, 2015

Introduction to Application Development

Introduction to Application Development

An application is software that is designed to meet specific user requirements. For example, the applications that you use for creating documents, sending email and instant messages, playing computer games, or listening to music are pieces of software developed to accomplish a particular task. To meet various types of requirements, you need to accordingly create various types of applications. Before you actually get into the application development process, you need to consider various factors, such as the type of application to be developed and the technology to develop the required application.

Identifying the Types of Applications

An application can be categorized on the basis of various factors, such as the type of interface it provides, the architecture on which it operates, the platform on which it
runs, and the device on which it has to be accessed or used. An application allows users to accomplish the desired tasks by accepting instructions. These instructions are given to the application through its interface. On the basis of the interface, applications can be broadly classified into the following categories:



Character User Interface (CUI) :

 In an application that provides a CUI, the instructions are given in the form of commands. These commands are a combination of characters. In these applications, the instructions can be given only by typing commands with the help of a keyboard.

Graphical User Interface (GUI) :

 In an application that provides a GUI, the instructions are given to the application by using various graphical components, such as menus, icons, buttons, and links. In such an application, a pointing device, such as a mouse, joystick, or trackball, is used to interact with the application. For example, the Windows operating system provides a GUI for interaction. In addition, these days most of the applications are developed with a GUI.

Applications can also be classified on the basis of their underlying architecture. From an architectural perspective, an application can be classified into the following layers:




Presentation layer : Consists of the interface through which the users interact with the application. Business logic layer : Consists of the components of the application that control the flow of execution and communication between the presentation and the data layers.

 Data layer : Consists of data storage, such as a file or a database.


Most applications are built using all the three layers. The manner in which these layers are distributed and the way in which they communicate with each other, define the architecture of an application. An application can have one of the following types of architecture:



Single-tier architecture :

 In an application based on the single- tier architecture, all the three layers are integrated together and can be installed on a single computer. If the application needs to be accessed on multiple computers, a separate installation is required on each of the computers. For example, Adobe Photoshop that is used to create and edit graphics is a standalone application based on the single- tier architecture.
Two- tier architecture : In an application based on the two-tier architecture, the three layers are distributed over two tiers, a client and a server. The presentation layer resides on each client computer, the business logic layer resides either on the client or on the server, and the data access layer resides on the server. Depending on the business requirements, an organization can have the following types of two-tier application architecture:

Fat client and thin server : The architecture in which the business logic layer resides on the client tier is referred to as the fat client and thin server architecture. 
In this architecture, the client accepts user requests and processes these requests on its own. The client communicates with the server only when the data for communication or archival needs to be sent to the server.
 Fat server and thin client : The architecture in which the business logic layer resides on the server is referred to as the fat server and thin client architecture. In this architecture, the client accepts requests from the users and forwards the same to the server. Further, the server processes these requests and provides responses. 


The two- tier architecture can be used when multiple users need to access and manipulate common data storage. For example, an application has to be developed to store an organization’s employee details in a database. In addition, the application should allow the retrieval of the employee details from the database. In this case, the employee details need to be entered and retrieved by using multiple computers. Therefore, installing a database, along with the application on each computer, may lead to storage of duplicate records. In addition, a user cannot retrieve the employee details that are stored on some other computer. To avoid these problems, the application can be installed on each computer. However, the database is installed on a single computer, and the same can be accessed by applications on multiple computers. In the preceding example, the presentation and business logic layers are integrated and installed on each computer. The applications installed on the computers send requests to the server (database) for the storage and retrieval of data. On the other hand, the server accepts the requests and responds accordingly. In this setup, the fat client and thin server architecture is used. 

Three- tier architecture :

 In an application based on the three- tier architecture, the three layers of the application are placed separately as three different entities. This architecture is used for those applications in which merging the business logic layer with the presentation layer or the data layer may degrade the performance of the application. To improve the application performance, the three layers are kept separately and the communication among the layers occurs with the help of a request-response mechanism.

No comments:

Post a Comment