Architectures For Software Systems and Emerging Issues - Presentation

You might also like

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 21

ARCHITECTURES FOR SOFTWARE

SYSTEMS AND EMERGING ISSUES


ARCHITECTURAL STYLES
By Sandra Rono
ARCHITECTURAL STYLES
Data flow
Structured design procedure based
Object oriented
Event driven
Repositories
Client server
Multi-tier distributed architectures
Component based
ARCHITECTURAL STYLES
Definition of terms
Architectural style
Every software when it is developed requires a proper
plan and a detailed blue print. Software architecture is
the high level structure used for creating software
systems and is a step by step blue print of the entire
software that is to be built. The Architectural style is
therefore a very specific solution to a particular software
which focuses on how to organize the code created for
the software.
ARCHITECTURAL STYLES
- REPOSITORIES
Definition of terms: cont:
Repository
In common English, a repository is defined as a place
where things are or may be stored.
In Computing, it is a central location in which data is
stored and managed
Repository
ARCHITECTURAL STYLES
- REPOSITORIES: cont:
In a repository style there are two quite distinct kinds of
components
i. a central data structure represents the current state.
Shared data is held in a central database or repository
and may be accessed by all subsystems

ii. a collection of independent components operate on


the central data store.
Each sub-system maintains its own
database and passes data explicitly to other sub-
systems.
Examples of repository architectures include
blackboard architectures, where a blackboard serves as
communication centre for a collection of knowledge
sources, and database systems serving several
applications
Repositories (Blackboard)
Strengths:
 Efficient way to share large amounts of data
 Data integrity localized to repository module

Weaknesses:
 Subsystems must agree (i.e., compromise) on a
repository data model
 Schema evolution is difficult and expensive, for larger
subsystems
 Distribution can be a problem
Blackboard architecture
Repository Architecture style use
Complex interpretation of signal processing such as
speech and pattern recognition
Batch sequential systems working with a global
database
Programming environment- a lot of programming
modules uses this kind of architectural style
Advantages of Repository Architecture Style
Components can be independent—they do not need to know of
the existence of other components. Changes made by one
component can be propagated to all components. All data can be
managed consistently (e.g., backups done at the same time) as it
is all in one place.
• Repository Architecture Style provides data integrity, backup and
restore features.
• It reduces overhead of transient data between software
components.
• It has an efficient way to store large amount of data.
• It has a centralized management which consists of backup,
security and concurrency control.
Disadvantages
Disadvantages of Client Server Architecture
1) Congestion in Network: Too many requests from the clients
may lead to congestion. Overload can lead to breaking-down of
servers.
2) Client-Server architecture is not as robust i.e. if the server
fails, the whole network goes down. Also, if you are downloading
a file from server and it gets abandoned due to some error,
download stops altogether.
3) Cost: It is very expensive to install and manage this type of
computing.
4) You need professional IT people to maintain the servers and
other technical details of network.
CLIENT SERVER
Client-Server style components interact by requesting
services of other components.
Requesters are termed as clients, and service
providers are termed as servers, which provide a set of
services through one or more of their ports.
Clients initiate interactions, invoking services as
needed from servers and waiting for the results of
those requests.
Cont: Client server :
Cont: CLIENT SERVER CONSTRAINTS
Clients are connected to servers through
request/response connectors;
Server components can be clients to other servers;
Specializations may impose restrictions:
Numbers of attachments to a given port;
Allowed relations among servers.
Components may be arranged in tiers.
Centralized Server Advantage
Having a single server hosting the database of user
names and passwords and, at the same time,
managing what levels of access individual users and
computers can have to specific network resources is a
distinct advantage of client server architecture. Fewer
support staff are needed to manage centralized
security accounts than would be needed if security
and resource access had to be configured on each
individual computer on the network. E.g. Safaricom
self service
There are many types of servers:
File server
Printer server
Application server
Message server
Database server,
Client Server Examples
Typical examples of systems in the client-server style
include the following:
Information systems running on local networks,
where the clients are GUI applications (such as Visual
Basic) and the server is a database management
system (such as Oracle);
Web-based applications where the clients run on Web
browsers and the servers are components running on a
Web server (such as Tomcat).
Advantages of client server architecture
Centralization
 The main advantage of client server network is the centralized control
that it is integrated with. All the necessary information are placed in a
single location.
Security
 In client server network, the data is well protected due to its centralized
architecture.
Scalability
 Whenever the user needs they can increase the number of resources
such as clients and servers.
Flexibility: system can be integrated with new technology easily.
Accessibility – across multiple platforms, the server can be accessed
remotely
Disadvantages
Traffic congestion
Costly: Requires initial investment in a dedicated
serve
Maintenance: Large networks require professional
administration staff to ensure efficient operation.
Resources: May require a lot of resources in terms of
hardware
Dependence – When the server goes down,
operations will cease across the network.
THANK YOU

You might also like