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
[email protected] 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.