🎧 New: AI-Generated Podcasts Turn your study notes into engaging audio conversations. Learn more

DCN_Ch_02 - Application Layer_Sep 07, 2023.pdf

Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Full Transcript

The Application Layer Dr. Ramakrishna Dantu College of Business Application Layer Topics • Application Architectures • World Wide Web • Electronic Email • Other Applications • Implications for Cyber Security Application Architectures Functions of Application Programs Application Architecture...

The Application Layer Dr. Ramakrishna Dantu College of Business Application Layer Topics • Application Architectures • World Wide Web • Electronic Email • Other Applications • Implications for Cyber Security Application Architectures Functions of Application Programs Application Architectures Functions of Application Programs Presentation Logic (User Interface) Data Access Logic Application logic (Business Logic) Services Logic Application Architectures Functions of Application Programs • Data Storage  Most application programs require data to be stored and retrieved, whether it is a small file such as a memo produced by a word processor or a large database such as an organization’s accounting records. • Data access logic  Involves processing required to access data (select, update, delete), often done using database queries in SQL (structured query language). Application Architectures Functions of Application Programs • Application logic (business logic)  Business logic refers to the rules or commands that dictate how the software creates, stores, and processes data.  Can be simple or complex, depending on the application.  Examples:  Validation: rules for validating user input.  Transaction: rules for executing a transaction such as a bank deposit.  Calculations: such as applying discounts on a purchase transaction.  Process Flow: deciding how to trigger steps in a process  Pages: deciding what page to display to a user  Data transformation: rules for transforming data from one format to another. Application Architectures Functions of Application Programs • Presentation logic (user interface)  Involves the presentation of information to the user and the acceptance of the user’s commands. • Services logic  It is the provision of services to other applications (e.g., application program interfaces (API)).  This is like the user interface, but enables other application software packages to make requests, rather than users.  Not every application has services logic.  Example:  Validating the social security number, credit card, etc., of the customer.  Checking the credit history of the customer. Application Architectures Functions of Application Programs • Four fundamental application architectures.  In host-based architectures  the server (or host computer) performs virtually all of the work.  In client-based architectures  the client computers perform most of the work.  In client–server architectures  the work is shared between the servers and clients.  In cloud-based architectures  the cloud provides services (software, platform, and/or infrastructure) to the client. Host-Based Architectures Application Architectures Host-Based Architectures Application Architectures Host-Based Architectures • Very first data communications networks developed in the 1960s • The server is usually a large mainframe computer • Server performs all functions. • The clients (dumb terminals) enables users to communicate (send and receive messages) with the host computer. • The client merely  captured keystrokes,  sends them to the server for processing, and  accepts instructions from the server on what to display. • If you’ve ever used a terminal or Citrix Receiver, you’ve used a host-based application. Application Architectures Host-Based Architectures • Advantages  Very simple architecture.  Application software and data are stored on one server.  Single point of control.  Economies of scale (In theory), because all computer resources are centralized. Application Architectures Host-Based Architectures • Disadvantages: two problems.  The server must process all messages.  Servers get overloaded  Response time becomes slower as the demand increases  High cost to upgrade the server.  Upgrades to the mainframes are “lumpy.”  That is, upgrades come in large increments and are expensive (e.g., $500,000)  it is difficult to upgrade “a little.” Client-Based Architectures Application Architectures Client-Based Architectures Application Architectures Client-Based Architectures • In the late 1980s, there was an explosion in the use of personal computers. • Today, more than 90% of most organizations’ total computer processing power resides on personal computers, not in centralized mainframe computers. • This expansion was due to two key factors:  First, availability of a number of low-cost, highly popular applications such as word processors, spreadsheets, and presentation graphics programs.  Second, managers’ frustrations with application software on host mainframe computers. Most mainframe software is not as easy to use as personal computer software, is far more expensive, and can take years to develop. • In the late 1980s, many large organizations had application development backlogs of 2–3 years; that is, getting any new mainframe application program written would take years. • New York City, for example, had a 6-year backlog. • In contrast, managers could buy personal computer packages or develop personal computer-based applications in a few months. Application Architectures Client-Based Architectures • The clients are personal computers on a LAN • The server is usually another personal computer on the same network. • The application software on the client computers is responsible for the:  presentation logic,  application logic, and  data access logic; Application Architectures Client-Based Architectures • The server simply stores the data. • There is no services logic. • Examples:  A word processor on the client and the actual document stored on the server.  A program in Visual Basic or C that runs on your computer but stores data on a server Application Architectures Client-Based Architectures • Advantages  This simple architecture often works very well. • Disadvantages  All data on the server must travel to the client for processing. Application Architectures Client-Based Architectures • Advantages  This simple architecture often works very well. • Disadvantages  All data on the server must travel to the client for processing.  For example:  Suppose the user wishes to display a list of all employees with company life insurance.  All the data in the database must travel from the server where the database is stored over the network circuit to the client  The client then examines each record to see if it matches the data requested by the user.  This can overload the network circuits because far more data are transmitted from the server to the client than the client actually needs. Client-Server Architectures Application Architectures Client-Server Architectures Application Architectures Client-Server Architectures • Figure shows one example • The presentation logic and application logic on the client • Services logic, application logic, data access logic and data storage on the server. • Client software  Accepts user requests and performs the application logic that produces database requests that are transmitted to the server.  The client software accepts the results and presents them to the user. • Server software  Accepts the database requests, performs the data access logic, and transmits the results to the client. Application Architectures Client-Server Architectures Application Architectures Client-Server Architectures Image Source: https://geekflare.com/middleware-work/ Application Architectures Client-Server Architectures • Advantages and Disadvantages  Client–server networks enable software and hardware from different vendors to be used together.  But this is also become a drawback, because it can be difficult to get software from different vendors to work together. • One solution to this problem is middleware • Middleware is a software that sits between the application software on the client and the application software on the server. • Middleware does two things:  First, provides a standard way of communicating that can translate between software from different vendors.  Second, manage the message transfer from clients to servers (and vice versa). Application Architectures Client-Server Architectures • Two functions of Middleware:  First, it provides a standard way of communicating that can translate between software from different vendors.  Many middleware tools began as translation utilities that enabled messages sent from a specific client tool to be translated into a form understood by a specific server tool.  Second, manage the message transfer from clients to servers (and vice versa)  Clients need not know the specific server that contains the application’s data.  The application software on the client sends all messages to the middleware, which forwards them to the correct server.  The application software on the client is therefore protected from any changes in the physical network.  If the network layout changes (e.g., a new server is added), only the middleware must be updated. Types of Client-Server Architectures Application Architectures Two-Tier Architecture • There are many ways in which the application logic can be partitioned between the client and the server.  Two-Tier Architecture  Three-Tier Architecture  N-Tier Architecture Application Architectures Two-Tier Architecture • Two-Tier Thick Client-Server Architecture Application Architectures Three-Tier Architecture • Three-Tier Thin ClientServer Architecture Application Architectures n-Tier Architecture • Thin n-Tier Client-Server Architecture Application Architectures n-Tier Architecture • Advantages  Separate components (client, web server, application server, and database server) for separate tasks.  Makes it easy to spread different tasks to different servers and to partition the application logic on two different servers.  Balances the load on different servers.  Since there are multiple servers, the architecture provides more power as compared to onetier or two-tier architectures.  More scalable. If any server is too heavily loaded, we an replace it with a more powerful server or add additional servers.  If any server (E.g., database server) is underused, we can put data from another application on it. Application Architectures n-Tier Architecture • Disadvantages  Two primary disadvantages compared with a two-tier architecture (or a three-tier with a two-tier).  First, it puts a greater load on the network.  The n-tier model requires more communication among the servers  It generates more network traffic so you need a higher capacity network.  Second, more difficult to program and test software because more devices have to communicate to complete a user’s transaction. Application Architectures Thin Clients Vs. Thick Clients • Client-server architectures can be classified based on how much of the application logic is placed on the client computer. • Thin-client architecture  Places little or no application logic on the client  Much easier to manage.  If an application changes, only the server with application logic needs to be updated.  It also enables cloud-based architecture Three-tier thin client client–server architecture Application Architectures Thin Clients Vs. Thick Clients • Thick-client architecture  Places all or almost all of the application logic on the client  If an application changes, the software on all the clients would need to be updated.  Conceptually, this is a simple task  one simply copies the new files to the hundreds of affected client computers.  In practice, it can be a very difficult task. Two-tier thick client client–server architecture Application Architectures Thin Clients Vs. Thick Clients • There is no direct relationship between thin and thick clients and two-, three-, and n-tier architectures. • For example, Figure shows a typical Web architecture:  a two-tier architecture with a thin client.  One of the biggest forces favoring thin clients is the Web. Thank You

Use Quizgecko on...
Browser
Browser