IFA - 307 - Middleware - Client and Server - Lec5 - E
This document discusses middleware, client-server architecture, and different software architectures. It defines middleware as software that manages communication between different components of a distributed system. Client-server architecture is described as having advantages like modularity, flexibility, and extensibility. Common software architectures like thin/fat client, one-tier, two-tier, three-tier, and N-tier architectures are also summarized.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
28 views
IFA - 307 - Middleware - Client and Server - Lec5 - E
This document discusses middleware, client-server architecture, and different software architectures. It defines middleware as software that manages communication between different components of a distributed system. Client-server architecture is described as having advantages like modularity, flexibility, and extensibility. Common software architectures like thin/fat client, one-tier, two-tier, three-tier, and N-tier architectures are also summarized.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 19
Semester Ganjil 2018/2019 , Fakultas Teknologi Industri, Jurusan Teknik Informatika.
Middleware: Client and Server
Interoperability IFA-307
Lisa Kristiana S.T., M.T., Ph.D
Institut Teknologi Nasional, Fakultas Teknologi Industri
Jurusan Teknik Informatika, Program Sarjana Informatika lisa@itenas.ac.id Agenda • Middleware concept • Advantages and disadvantages of Client-server development • Client-server architecture Middleware Concept • Software that manages and supports the different components of a distributed system. • It sits in the middle of the system. Functions of middleware • It knows the addresses of servers. So, based on client requests, it can locate the servers. • It can translate between client and server formats of data and vice versa. Advantages of Client-server Software Development (1) • Simplicity and modularity – Client and server components are loosely coupled and therefore modular. • Flexibility – Both client and server software can be easily migrated across different machines. Also, clients and servers can be added incrementally. • Extensibility – More servers and clients can be effortlessly added. • Concurrency – Clients and servers reside in different machines which can operate in parallel and thus processing becomes faster. • Cost Effectiveness – Clients can be cheap desktop computers whereas severs can be sophisticated and expensive computers. Advantages of Client-server Software Development (2) • Specialization –Servers can be specialized to solve some specific problems. • Current trend –Cell phones can act as clients. • Application Service Providers (ASPs) –A client and simply logs in and ASP charges according to the time that the software is used. • Component-based development –This is akin/similar to the way hardware developers integrate ICs on a Printed Circuit Board (PCB). Components might reside on different computers which act as servers and clients. • Fault-tolerance – Client-server based systems are usually fault-tolerant. If one server crashes then client requests can be switched to a redundant server. Disadvantages of Client-server Software Development (1) • Security – a lot of flexibility is provided and a client can connect from anywhere. This makes it easy for hackers to break into the system. Therefore, ensuring security in client- server system is very challenging. • Servers can be bottlenecks – Servers can turn out to be bottlenecks because many clients might try to connect to a server at the same time. • Compatibility – Clients and servers may not be compatible to each other. • Inconsistency – Replication of servers is a problem as it can make data inconsistent. Client-server architecture Thin and fat clients (1) • Thin-client model – all of the application processing and data management is carried out on the server – client is simply responsible for running the presentation software • Fat-client model – the server is only responsible for data management – software on the client implements the application logic and the interactions with the system user Thin and fat clients (2) Software Architecture • A ‘tier’ can be referred as a ‘layer’ • Each tier/layer should be able to be constructed separately. • Each tier/layer should not be able to operate independently • Tier is a physical unit, where the code/process runs. E.g.: client, application server, data base server • Layer is a logical unit, how to organize the code. E.g.: presentation (view), controller, models, repository, data access • One Tier, Two Tier, Three Tier …and N Tier The Standard Logical layers • Presentation Logic: The User Interface (UI) which displays data to the user and accept input from the user. Ex: Web application, the part which receives the HTTP request and returns the HTML response. • Business Logi:; Handles data validation, business rules and task-specific behavior • Data Access Logic: Communicates the data base by constructing SQL queries and executing them via the relevant API One Tier Architecture • All 3 layers are on the same machine Stand alone application. It contains all the application, presentation layer • Presentation, Logic, Data layer are tightly connected: – Scalability: Single processor means hard to increase volume of processing – Portability: Moving to a new machine may mean rewriting everything – Maintenance: Changing the layer requires changing other layers. • MP3 Player, Ms Word Two-Tier Architecture • Database runs on server – Separated from client – Easy to switch to a different database • Presentation and Logic layers still tightly connected – Heavy load on server – Potential congestion on network – Presentation still tied to business logic Three-Tier Architecture • Each layer can potentially run on a different machine • Member of applications are increased • Presentation, logic, data layers disconnected N-Tier Architecture (1) • Multiple number of tier • The code for each layer must be contained with separate files which can be maintained separately • Each layer may only contain code which belongs in that layer. N-Tier Architecture (2) N-Tier Architecture (3) • Persistence Layer: The database or other storage mechanism that keeps data in an organized way • Accessor Layer: The programs that pass queries to the persistence layer. These programs expose “get” and “set” functions • Business logic Layer: the programs that process user input and stored data dan come up with a useful result. • Presentation Layer: the programs that format the results of the logic layer as HTML, XML. N-Tier Architecture (4) • Requester/consumer Layer: The Web browser, XML parser, or other client that makes requests of the application and receives its output. • Elsewhere Layer: the external Web Services, HTML pages, and other resources to which applications make reference.