UNIT III
Database Management System (DBMS) is a software used to manage data from a database.
A database is a structured collection of data that is stored in an electronic device. The
data can be text, video, image or any other format.
A relational database stores data in the form of tables and a NoSQL database in the
form of key-value pairs.
SQL (Structured Query Language) is a standard language for accessing and
manipulating data in a relational database.
A DBMS is a software that allows to create, update and retrieval of data in an
organized way. It also provides security to the database.
Examples of relational DBMS are MySQL, Oracle, Microsoft SQL Server, Postgre
SQL and Snowflake.
Examples of NoSQL DBMS are MongoDB, Cassandra, DynamoDB and Redis.
Conceptual presentation
A conceptual presentation is a way to share ideas and solutions with an audience, client, or
stakeholder. It's a key step in the creative process.
What's included in a conceptual presentation?
General information: Provide an overview of the project, research findings, and
main idea
Arguments: Convince the audience with good arguments
Solution concept: Present a solution to the problem or issue
How to make a conceptual presentation effective?
Tell a story: Connect your design choices to the audience's goals, values, and
emotions
Use a presentation model: Create a scale model of the final design to help explain
the idea
Communicate clearly: Use clear language and visuals to help the audience
understand your ideas
Brainstorming techniques
Brainstorming is a creative technique that can help generate ideas for a presentation. Some
brainstorming techniques include: Mind mapping, Free association, and Classic
brainstorming.
Related terms
Conceptual plan: An early-stage plan that needs more details to work
Conceptual model: An abstract representation of how tasks should be carried out
Client-server architecture, alternatively called a client-server model, is a network application
that breaks down tasks and workloads between clients and servers that reside on the same
system or are linked by a computer network.
Client-server architecture is a network model that allows clients to request services from a
server. It's the foundation of many digital services, including cloud computing, email, and
websites.
How it works
1. A client, like a web browser or mobile app, requests data or services from a server.
2. The server processes the request and sends the data or services back to the client.
3. The client displays the data or services to the user.
Benefits
Scalability: Developers can scale infrastructure up or down with minimal downtime.
Security: The server can reject requests that go against its rules.
Standardized user experience: The server provides a standardized interface to
clients, so they don't need to know the specifics of the system.
Examples
When you visit a website, your browser requests the website's domain from the
server.
When you send an email, your email client requests the email server to transmit your
email to the recipient.
When you run an application program to enter patient information, the client
computer is requesting services from the server computer.
What is Client Server Architecture?
Client-Server Architecture is a network model that allows communication and data exchange
between different applications over a single or multiple servers.
This model divides the system into two parts: the client side and the server side.
a) Client: An application that requests services from the server, such as data retrieval,
storage, calculations, or other functions.
b) Server: An application that processes client requests, sends responses, or performs
specified actions. The server and client may reside on the same machine or different devices
across the network. Effective Communication occurs via predefined protocols like HTTP,
FTP, or SMTP.
Client-Server Architecture is widely used in applications such as email, web browsing, online
banking, and e-commerce.
Components of Client-Server Architecture
Client-Server Architecture depends on three main components that need to work together for
it to function. These components are:
a) Client: A client device or software that requests services from a server. Clients are
consumer-facing and often include web browsers, mobile applications, or desktop
applications that people can interact with. They communicate with the server to retrieve data,
make transactions, or perform other tasks by delegating that responsibility to the server.
b) Server: A server is a computer or program that offers services or solutions to clients over
a network. Servers handle processing of client requests, which includes tasks like file storage,
database access, and application hosting, along with backend activities like
computations, data management, and business logic, significantly reducing what clients need
to handle.
c) Network: This serves as the channel through which clients and servers are connected for
data transfer between them. Networks range from local area networks (LAN) within a single
building to wide area networks (WAN) and the internet, which can span countries. It acts as
the intermediary, facilitating the interchange of requests and responses between the clients
and servers, which influences the speed and reliability of these interactions.
d) Protocol: Protocols are rules that define how data is exchanged between clients and
servers, ensuring communication is orderly, secure, and understandable. Common protocols
include HTTP or HTTPS for web services, FTP for file transfers, and SMTP for email. They
help bridge communication between different systems, independent of their technology stack.
e) Middleware: Middleware acts as a bridge between client-side and server-side code,
enabling them to communicate. It performs tasks such as authentication, load balancing, data
translation, and message queuing, simplifying interactions within the Client-Server model by
enhancing transaction speed, scalability, and integration.
f) Application Logic: Application logic is the code and processes that determine how a
server responds to client requests, involving business rules, Big Data Processing, and
workflows on the server side. It ensures the server correctly interprets client requests,
performs necessary calculations or data manipulations, and delivers appropriate responses.
Characteristics of Client-Server Architecture
Client-Server architecture has distinct characteristics:
a) The client and server machines can differ greatly in hardware and software requirements
and may come from different vendors.
b) The network can scale horizontally by adding more client machines or vertically by
upgrading to more powerful servers or a multi-server configuration.
c) A single server can offer multiple services simultaneously, though each service must run its
own server program.
d) Both client and server applications interact directly with a transport layer protocol,
establishing communication to send and receive information.
e) Both client and server computers require a full stack of protocols, where the transport
protocol utilises lower-layer protocols to send and receive individual messages.
How Does Client-Server Architecture Work?
The basic steps of how Client-Server Architecture works are:
1) In the first step, the client sends a request to the server using the network medium. The
request can be a query, a command, or a message.
2) In the second step, the server receives the request and processes it according to its logic
and data. The server may access its own resources or other servers to fulfil the request.
3) In the third step, the server sends a response back to the client using the network medium.
The response can be Data, an acknowledgement, or an error message.
4) Lastly, the client receives the response and displays it to the user or performs further
actions based on it.
What are Some Examples of Client-Server Architecture?
You might be surprised at how often you encounter Client-Server Architecture in everyday
life. Here are three common examples:
1) Email Servers: Email has evolved into the primary communication method for businesses
due to its speed and convenience. Various server components work together to deliver emails
between users across different mail servers.
2) File Servers: When saving documents on services like Google Docs or Microsoft Office,
you're interacting with file servers. These servers store data centrally and allow multiple
clients to access it.
3) Web Servers: These high-powered servers host websites, which web clients access
through DNS or an IP address. Here's a simplified process:
a) A user enters a URL in the browser.
b) The browser requests the IP address from the Domain Name System (DNS) .
c) The DNS server provides the IP address to the browser.
d) The browser sends an HTTPS or HTTP request to the web server.
e) The server sends back the requested files.
f) The user retrieves the files, and the process continues as needed.
These examples highlight how Client-Server Architecture forms the foundation of many
digital services we rely on daily.
Types of Client-Server Architecture
There are different types of Client-Server Architecture, depending on how many tiers or
layers are involved in the communication process. Some of the common types are:
1) One-tier Architecture
A self-contained application on a single platform. In one-tier architecture, the client, server,
and database are all on the same machine. The client handles user interaction and business
logic, the server provides services like data storage and processing, and the database manages
data. While simple and popular for small apps, this architecture is rarely used in production
because it doesn't meet most system requirements.
2) Two-tier Architecture
This basic Client-Server Architecture involves direct communication between the client and
server without an intermediate layer. The client manages the User Interface (UI) and business
logic, while the server handles data storage and processing. An example is a web browser
requesting pages from a web server, which responds with HTML files. It's easy to implement
but has drawbacks like low scalability, high network traffic, and security risks.
Three-tier Architecture
A more complex client-server setup with an intermediate layer (usually middleware or an
application server) that handles business logic, acting as a bridge between the client and
server. The client deals with the user interface (UI), while the server manages data storage.
An example is an online banking system where the client is a web browser, the middleware
checks transactions, and the server stores account data. This architecture improves scalability,
performance, and security but increases complexity and cost.
N-tier Architecture
A more flexible Client-Server Architecture with more than three tiers, allowing greater
scalability, flexibility, and modularity. Each tier can be distributed across different machines
or networks and updated independently. An example is an e-commerce system with a web
browser displaying the product catalog, a web server handling HTTP requests, an application
server processing business logic, and a database storing product information. While suitable
for complex systems, it requires more resources and management.
In addition to these types, there are also some variations or subtypes of Client-Server
Architecture, such as:
Peer-to-peer Architecture
This Client-Server Architecture allows each node to act as both a client and a server, with no
central authority or hierarchy. Nodes can directly request or provide services to each other.
An example is BitTorrent, a file-sharing system where nodes can download or upload files
from each other without a central server, enhancing reliability, availability, and resilience.
However, it presents challenges like security, coordination, and quality control.
Thin-client Architecture
In this architecture, the client has minimal functionality, relying on the server for processing
and data storage. The client handles only the user interface (UI) and sends inputs to the
server, which performs all computations and returns the results. An example is Google Docs,
where the client is a web browser accessing the document editor while the server stores and
updates data in the cloud. This architecture reduces client-side hardware costs, maintenance,
and security risks but increases network dependency, bandwidth usage, and server load.
Fat-client Architecture
In a fat-client setup, the client is highly functional, performing most processing and data
storage locally, and only occasionally communicates with the server for synchronisation or
backup. An example is an offline mobile app like Evernote, where the client runs the app and
stores notes locally, syncing with the cloud when connected. This architecture boosts
performance, responsiveness, and availability on the client side but increases hardware
requirements, software complexity, and risks of data inconsistency.
Advantages and disadvantages of Client-Server Architecture
Client-Server Architecture has some advantages and disadvantages, depending on the
requirements and constraints of the system.
Advantages
Some of the advantages are:
1) It is centralised, which means that all data and services are stored and managed in a single
place. This makes it easier to maintain, update, and secure the system.
2) It is cost-efficient, as it requires less hardware and software resources for the client side.
The client only needs a network connection and an application or web browser to access the
server.
3) It has high performance and low latency, as the server can handle many requests from
many clients simultaneously and efficiently.
Disadvantages
Some of the disadvantages are:
1) It has limited scalability, as it depends on the capacity and availability of the server. If the
server is overloaded or fails, the system may not function properly or at all.
2) It has high network dependency, as it relies on the network connection between the client
and the server. If the network is slow or disrupted, the system may experience delays or
errors.
3) It has complex architecture, as it involves multiple components and layers that need to be
designed, implemented, and coordinated. The system may also face challenges such as
security, synchronisation, and compatibility.
Unlock the power of Microservices: Join our Microservices Architecture Training today
and transform your software development!
Conclusion
Client Server Architecture is a powerful and flexible way of managing network resources and
applications. It allows IT professionals to handle the challenges of a dynamic and competitive
environment, by distributing the workload and responsibilities between clients and servers.
Client-Server Architecture also enables the network's scalability, security, reliability, and
performance. It is a vital concept for any IT professional to understand and master.
Business process re-engineering (BPR)
Business process re-engineering (BPR) is a business management strategy originally
pioneered in the early 1990s, focusing on the analysis and design of workflows and business
processes within an organization. BPR aims to help organizations fundamentally rethink how
they do their work in order to improve customer service, cut operational costs, and become
world-class competitors.
Business process reengineering (BPR) is a management strategy that redesigns business
processes to improve performance. It involves analyzing and redesigning workflows to
streamline processes, cut costs, and improve customer service.
Business process re-engineering is also known as business process redesign, business
transformation, or business process change management.
BPR is influenced by technological innovations as industry players replace old methods of
business operations with cost-saving innovative technologies such as automation that can
radically transform business operations
How it works
1. Identify the need for change
2. Define the scope
3. Analyze existing processes
4. Redesign the processes
5. Communicate and gain buy-in
6. Implement the new processes
Benefits of BPR
Improve efficiency, effectiveness, and performance
Cut operational costs
Improve customer service
Become a world-class competitor
Streamline workflows
Eliminate unnecessary steps
Improve resource utilization
Factors that are important to BPR success include:
1. BPR team composition.
2. Business needs analysis.
3. Adequate IT infrastructure.
4. Effective change management.
5. Ongoing continuous improvement.