Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
4 views

Implementation Architecture

Uploaded by

mivor18466
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

Implementation Architecture

Uploaded by

mivor18466
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

===================================================================

Implementation Architecture - Focuses on how the system is built

Which technological elements are needed to implement the system

Software packages, libraries, frameworks, classes, ...

Addresses non-runtime requirements &quality attributes:

configurability, testability, reusability, ...

Components and connectors reflect software entities and their

relationships at the level of source and binary code

Two types of components:

1.Application - are responsible for implementing domain-level responsibilities

2.Infrastructure - are needed to make the system run but are not related to the application
functionality

Often an infrastructure component acts as a “container” for application components

A container component provides an execution environment for the contained components and
manages their lifetime

Connectors represent a “uses” relation

Connectors

API call: Acomponent calls a method in another component(possibly

only if both components are in the same process)

Callback: The caller passes a reference of an object to the callee. The

callee invokes a method on that object later.

Network protocol: Needed when implementation components reside

in different processes on networked machines. Components need to

agree on a common protocol or use a standardized protocol

OS signals: Communication between processes running on the same


machine

Ports are used to represent the communication between inside and

outside of a component

How to design the implementation architecture?

Define application components

Define infrastructurecomponents

Define interfaces

Behaviour design and verification

Mapping of conceptual components to implementation components:

One-to-one

One-to-many

Many-to-one

Two types of prototypes: technical and executable

Technical prototypes - Quickly developed to serve their purpose, but not at product quality

level

Executable prototypes are a skeleton of the system itself

Mock-ups are special technical prototypes, especially for user interfaces

Serve as the communication tool with the stakeholders (and within

the team)

Should give an overview on how the system will look like

But does not contain any functionality


===========================================================================

Certain patterns and structures appear very often, there fore architectural patterns are discovered,
not invented

Architectural style defines the structural pattern, which consists

of the components that are used ,the connections that can be used, set of constraints how they
can be used

Architectural styles are also named architectural pattern

Classification of styles

Data-flow architectures

Data-centered architectures

Abstraction layer architectures

N-tier architectures

Notification architectures

Remote invocation and service architectures

Heterogeneous architectures

Data-flow architectures

Data enter the system and then flows through the componentsone at a time

Data-flow architectures can be classified into batch-sequential

architectures and pipes and filters

In the batch sequential style each step runs to completion

before the next step starts

Conceptually filters consume data from input and write data to output (Variations: structural
andcommunicational)

Data-centered architectures
These architectures have the goal of achieving the quality of

integrability of data

The means of communication distinguishes the two subtypes: repository and blackboard

Blackboard: the system sends notification and data to subscribers

when data of interest changes, and is thus active

One of the most well-known examples of the data-centered

architecture, is a database architecture

Abstract layer architectures

Layering: the structure of the system is organized into set of layers

Each layer is on the top of another layer

Well-defined interfaces between layers

e.g. Operating systems, Virtual machines, Interpreter, Peer-to-peer

The N-tier architecture is the modern client-server architecture

Originated with business applications

Through the popularity of the Web today typically related with

Web applications

3-tier architectures: Presentation, application, data

N-tier architectures are typically data-centric architectures

Rich clients

A rich client contains full knowledge of the application

It has access to the full suite of UI mechanisms on the platform

Two types of rich clients

Clients for standard applications using a standard protocol

(e.g. e-mail clients)

Clients for custom applications using a custom protocol


Thin clients

Thin clients have little knowledge of the application

The complete application knowledge is on the server

Most notably: Webclients

Notification architectures

Architectures where information and activity is propagated by a

notification mechanism

Also called: publish-and-subscribe

Other terminology: listeners and callbacks

===================================================================

Architectural Styles part 2

Network-Centered Style

*Client-Server - Theclient uses a service, The server provides a service

Separation of concerns (SoC)

Functionalityis clearly split into separate components

Twobasictypesoftopologyoftheserver

Single, centralised serveror

Multiple, distributedservers

Centralized servers are easier to administer (install,deploy updates,

maintain, monitor,...)

Distributed servers scale better,but could introduce complexity

Two basic types of scaling:

Vertically, byincreasingthecomputingpowerofasinglemachine (scaleup)

Horizontally, byaddingmoremachines(scaleout)

If the client-server communication is stateful,the server keeps track of the application state
If the client-server communication is stateless,the client is responsible

to keep track of the application state

Cloud Computing - The server is no longer in th eorganizations network,but somewhere in the


Internet

*Peer topeer

Each client is a server at the same time,called peer

Peer topeer

Separation between client and server is removed

Centralized peer to peer and Hybrid peer to peer

Each node is client, as well as server

Remote invocation and service architectures

A client component invokes a method(function)on a remote component

Interceptor - Separate functionality into a separate component

GUI Architectures

ModelViewController (MVC)

==================================================================

Distributed Architectures - Main goal: Scalability

Parallel computing vs. distributed computing

In parallel computing all component share a common memory, typically threads within a single
program
In distributed computing each component has it own memory

Typically in distributed computing the individual componentsare

connected over a network

Share Nothing Architecture

No centralised data storage

Can scale almost infinitely

Used since the beginning of the 80ies, popularised by Google

Only a few systems allow for such an architecture

Group serialisation

Transform an object into a byte array (and back)

Distributed locks

Restrict access to shared resources to only a single node at a time, E.g. allow only a single node to
write to a file

e.g. Blackboard

Barriers

Specific type of distributed lock

Sychronise multiple nodes

Distributed FileSystems

Virtual file system distributed over multiple machines

Sharding

Split the data horizontally

-------
Asynchronous Architectures

Queue and worker architecture

Stream processing - Continuous stream of incoming requests

---

Lambda Architecture

Large amount ofdata

This can also be called a incremental architecture

---

Kappa Architecture

The Lambda Architecture is relatively complex

Most of the problems can be solved via a streaming approach

=========================================================

Which operation should a service execute?

⇒ This is method information

What data should be manipulated?

⇒ This is scoping information

CompetingArchitectures

Resource-Oriented Architectures (RESTful)

Service Oriented Architectures(SOA)

REST-RPC Hybrid Architectures

WSDL (Web Service Description/Definition Language) - XML format to specify the

operations of a service

SOAP (SimpleObject Access Protocol) - one-way, stateless protocol to transfer XML data
to a single receiver (since SOAP 1.2 there can be more receivers)

Binding of Services:

Development-time binding vs. runtime binding

Typical service (component) types in SOA systems:

Application frontend - typically not a service, initiate operation and receive results

Basic services - they build the foundation

Intermediary services - adapters and facades to add functionality, typically stateless

Process centric services - implement the business logic, typically manage the process

state

Public services - for integration, higher levelfunctionality

SaaS Idea

An application is made available via a service interface. The application is hosted by a service

provider via the internet

Microservices

Services are developed and deployed independently from each other

Don't use for small simple systems

You might also like