0% found this document useful (0 votes)
15 views4 pages

SE Exp.3

Aim: Implement an appropriate design/Architectural pattern for chosen

Uploaded by

gazalgg11
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views4 pages

SE Exp.3

Aim: Implement an appropriate design/Architectural pattern for chosen

Uploaded by

gazalgg11
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

EXPERIMENT NO.

3
Aim: Implement an appropriate design/Architectural pattern for chosen problem Statement.
Theory:
Architectural patterns are general reusable solutions to commonly occurring problems in
software architecture within a given context. They provide a structured approach to designing
software systems and help to ensure that software is scalable, maintainable, and robust.
Here’s a brief overview of some popular architectural patterns:
1. Layered Pattern:
Description: Divides the application into layers, each with distinct responsibilities (e.g.,
presentation, business logic, data access).
Usage: Common in enterprise applications; promotes separation of concerns.
2. Client-Server Pattern:
Description: Separates the client (user interface) from the server (data storage and
processing).
Usage: Widely used in web applications where clients interact with a centralized server.
3. Microservices Pattern:
Description: Structures an application as a collection of loosely coupled services, each
responsible for a specific function.
Usage: Facilitates scalability and independent deployment; popular in cloud-native
applications.
4. Event-Driven Pattern:
Description: Focuses on the production, detection, and reaction to events. Components
communicate through events rather than direct calls.
Usage: Ideal for applications requiring high scalability and responsiveness, such as IoT
systems.
5. Service-Oriented Architecture (SOA):
Description: Organizes software as a collection of services that communicate over a
network, often using standardized protocols.
Usage: Promotes reusability and integration of disparate systems.
6. Model-View-Controller (MVC):
Description: Separates application into three interconnected components: Model (data),
View (UI), and Controller (business logic).
Usage: Commonly used in web applications to promote organized code and enhance user
interaction.
7. Repository Pattern:
Description: Abstracts the data layer, providing a collection-like interface for data access
while hiding the underlying data storage details.
Usage: Promotes separation of concerns and makes it easier to swap out data storage
implementations.
8. Broker Pattern:
Description: Enables communication between decoupled components via a broker
(middleware) that handles message routing.
Usage: Useful in distributed systems where different services need to communicate
without tight coupling.
9. Pipeline Pattern:
Description: Processes data through a series of processing steps (stages), where the
output of one stage becomes the input for the next.
Usage: Common in data processing and transformation scenarios.

Design/Usage of Client-Server Architecture for Blog App


Overview of Client-Server Architecture:
In Blog App, the client-server architecture consists of two main components:
a. Client Side : This includes the user interface and the application logic that runs on user
devices (mobile or web). The client interacts with the server to send requests and receive
responses.
b. Server Side : This hosts the application logic, data processing, and storage. It manages
user requests, processes data, and sends the appropriate responses back to the clients.

Usage of Client-Server Architecture in Blog App:


1. User Profile Management :
a. Client : The user interface allows users to create, edit, and manage their profiles.
It handles input validation and provides real-time feedback.
b. Server : The server processes profile data, stores it securely in the database, and
ensures that user data is correctly updated.
2. Post Creation, Deletion, and Sharing :
a. Client : Users can create posts, upload multimedia content, and select privacy
settings through the app interface.
b. Server : The server manages post storage, applies metadata (likes, comments),
and handles user requests for post retrieval and deletion.
3. Commenting on Posts :
a. Client : Users can like and comment on posts, which are immediately reflected in
the interface.
b. Server : The server updates like counts and stores comments in the database,
ensuring that all interactions are tracked accurately.
4. User Notifications:
a. Client : Users receive notifications for activities related to their posts and
interactions.
b. Server : The server generates notifications based on user actions (likes,
comments, follows) and sends them to clients in real-time.
5. Direct Messaging :
a. Client : Users initiate and participate in conversations through the messaging
interface.
b. Server : The server facilitates message delivery, stores chat histories, and
manages real-time communication between users.
Advantages of Client-Server Architecture for Blog App:
a. Scalability : The server can handle multiple client requests simultaneously, making it
easier to scale as user traffic increases.
b. Centralized Management : The server acts as a central point for data management,
making it easier to implement security measures and data integrity.
c. Real-Time Interaction : By maintaining an active connection between clients and the
server, Blog App can provide real-time notifications and updates, enhancing user
engagement.
d. Modular Development : Client and server components can be developed and maintained
independently, allowing for easier updates and feature enhancements.
Conclusion: In summary, adopting a client-server architecture for Blog App effectively
supports user interactions and data management. This approach enables real-time updates,
scalability, and centralized control over data integrity and security. By clearly separating client
and server functions, Blog App can enhance user engagement while allowing for modular
development, making it easier to implement updates and new features as the platform grows.

You might also like