Swa Cs 1to10
Swa Cs 1to10
Introduction
Author: Viswanathan Hariharan
BITS Pilani Edited by Vijayarajan A
Contents
No Course Objective
• Lectures
• Activities
• Assignments
• Self study
Evaluation method
• 2 Quizzes
• 2 Assignments
• Mid term exam
• End term exam
Handout
• The structure of the system refers to architecture style (or styles) the system is
implemented in (such as microservices, layered, or microkernel)”
• Architecture characteristics refers to the “-ilities” that the system must support”
• Architecture decisions define the rules for how a system should be constructed.
For example, only the business and services layers can access the database
restricting the presentation layer from making direct database calls.
• Design principle is a guideline rather than a hard-and-fast rule. For example, the
design principle may state that the development teams should leverage
asynchronous messaging between services within a microservices architecture to
increase performance.
Role of Architect
SS ZG653
Difference between architecture
and design
SS ZG653
Architecture - Trade Offs
SS ZG653
Architecting has become
iterative
Unknown unknowns are the nemesis of software systems.
Many projects start with a list of known unknowns.
However, projects also fall victim to unknown unknowns: things
no one knew were going to crop up yet have appeared
unexpectedly.
This is why all “Big Design Up Front” software efforts suffer:
architects cannot design for unknown unknowns.
HTTP
Reservation
Check-in module
system API
Firewall
Load Balancer
Server cluster / farm
Web server / App Server Web server / App Server Web server / App Server
SMS
gateway
Case Other Case Other Case Other (Telco)
module modules module modules module modules
Firewall
Primary Backup
DB DB
server server
A diagram (view) to explain a scenario:
Ex. Show how the ‘Stop booking’ request works
1
Stop booking request
Web Server
Desktop
req. 2
handler Stop booking request msg
Reservation
system API
Reservation
system
Why is software architecture
important?
• Lays foundation for future work - detailed design, development & testing
• Helps stakeholders understand how the system will work. Stakeholders are
sponsors, developers, operations staff, etc.
Architecture structures
Client-server pattern.
– The components are the clients and the servers.
– The connectors are protocols and messages they share among each other to
carry out the system’s work.
Architectural Patterns
Architect’s Influences
Business
Architecture
Technical Stakeholders
Project
Professional System
Architect
Input for software architecture
• What are the inputs needed for doing software architecture?
• Business goals. Provide a ‘Unified view’ of the customer to the Bank staff,
by presenting information from disparate systems such as Savings bank
system, Loan system, Credit card system, etc. This will enable be better
customer service by staff.
Dev &
End user maintenance
team
• Functionality • Easy to dev & modify
• Reliability • Portable
• Ease of use • Customizable
• Speed
Software
Business IT
manager department
Dedicated &
Secure network
Backend system
Cash dispenser
https://drive.google.com/drive/folders/1_iwHUhadscnBEZwopmUWVopkahhy506e?usp=sharing
Structural recommendations
• Create well defined modules with information hiding
• Use small number of ways to interact eg. RPC or REST or pipes
• If performance is a major concern, define performance expectation of each
component in the chain
Views
• It can show
• Structure: Ex. Class diagram, package diagram, context diagram
• Behaviour: Ex Sequence diagram, state diagram,
• It also contains
• Software element description
• Element interfaces
• Rationale
Structures
• Module structure
• Decomposition structure (System, sub-system, elements)
• Class diagram (Classes, associations, interfaces, dependencies, inheritance)
• Data model (ER diagram)
• Component & Connector structure
• Interaction between components (sequence diagram, collaboration diagram, interaction
mechanisms such as Call return, message queues, REST)
• Process synchronization (semaphores, critical section)
• Shared data stores (Database and access mechanisms)
• Allocation structure
• Processors and software elements in them
• Directories and files and what software elements they contain
• Assignment of software elements to software teams
The 3 structures correspond to 3 broad types of decisions
that an architectural design involves:
• How is the system to be structured as a set of code
units?
• How is the system to be structured as a set of runtime
components and interactions between them?
• How is the system to relate to non-software elements in
its environment? (CPU, file systems, networks,
development teams, etc)
Different types of software
Type of application Example
Enterprise apps Banking, Telecom, Airline, Retail
Industrial control, avionics Monitoring & controlling a power plant or chemical
factory
Monitoring and controlling an aircraft
Operating system Unix, Android, iOS
Industrial control, avionics Time critical, very reliable, life threatening if it fails
Inputs
Flight
control
system
Outputs
Real time software
architecture
Engine
Altimeter Fuel level
sensors
Sensors
MakeMyTrip
Internet backend Internet
Front end of system
application
(GUI)
Inq. room
availability,
Reserve room
Services offered by
other systems
Layered pattern:
Example: Architecture of an Information system
SS ZG653
Software Architecture
• Recap
• Quality attributes and Tactics Continued
• Architecturally significant Requirements
[email protected]
Assignment
• Availability
• Performance
• Modifiability
Scalability
• Testability
• Usability
• Interoperability
• Security
Quality Attribute Scenario
Environment: The stimulus occurs within certain conditions - Normal, safe mode,
overload condition etc
Artifact: Some artifact is stimulated – whole system or parts
Response: activity undertaken after the arrival of the stimulus.
Response measure: Measurable outcome, it should be measurable in some
fashion so that the requirement can be tested.
Design Tactics
What are some of the issues that lead to increased testing effort or lead to
delay in testing ?
Example
Testability Tactics
Record/ Limit
Playback Non-determinism
Localize State
Storage
Abstract Data
Sources
Sandbox
Executable
Assertions
Control and Observe System
State
Specialized Interfaces: to control or capture variable values for a
component either through a test harness or through normal
execution.
Record/Playback: capturing information crossing an interface
and using it as input for further testing.
Localize State Storage: To start a system, subsystem, or module in
an arbitrary state for a test, it is most convenient if that state
is stored in a single place.
Control and Observe System
State
Abstract Data Sources: Abstracting the interfaces lets you
substitute test data more easily.
Sandbox: isolate the system from the real world to enable
experimentation that is unconstrained by the worry about
having to undo the consequences of the experiment.
Executable Assertions: assertions are (usually) hand coded and
placed at desired locations to indicate when and where a
program is in a faulty state.
Limit Complexity
Encrypt Data
Separate
Entities
Change Default
Settings
Detect Attacks
• Efficiency: Once users have learned the SW, how quickly can they
perform tasks?
Usability Tactics
Cancel: the system must listen for the cancel request; the
command being canceled must be terminated; resources
used must be freed; and collaborating components must
be informed.
Pause/Resume: temporarily free resources so that they may
be re-allocated to other tasks.
Undo: maintain a sufficient amount of information about
system state so that an earlier state may be restored, at
the user’s request.
Aggregate: ability to aggregate lower-level objects into a
group, so that a user operation may be applied to the
group, freeing the user from the drudgery.
Support System Initiative
• Interoperability
• Scalability
• Portability
• Deployability
• Monitorability
Design trade-offs
Examples
IRCTC
YouTube
Flipkart.com
OnlineSBI.com
Uber
Exercise: Identify one dominant quality
attribute (QA) of systems given below
System Dominant Quality attribute to be addressed
YouTube Performance
OnlineSBI.com Security
Uber Usability
Exercise: Identify a tactic to
address the Quality Attribute
System Dominant Quality Tactics
attribute to be
addressed
IRCTC Availability,
Performance
YouTube Performance
Flipkart.com Availability,
Performance, Usability
OnlineSBI.com Security
Uber Usability
Exercise: Identify a tactic to
address the Quality Attribute
System Dominant Quality Tactics
attribute to be
addressed
IRCTC Availability, Multiple servers
Performance
YouTube Performance Content Delivery Network (data
replication)
Flipkart.com Availability, Easy to search and buy (navigation)
Performance, Usability
• Recap
• Introduction to quality attributes
• Tactics to achieve quality attributes
Evolution of SW Architecture
• Availability
• Performance
• Modifiability
• Testability
• Usability
• Interoperability
• Security
How to achieve quality
attributes?
• Partly through coding
• Partly through architecture
How to achieve quality
attributes?
Example
Environment: The stimulus occurs within certain conditions - Normal, safe mode,
overload condition etc
Artifact: Some artifact is stimulated – whole system or parts
Response: activity undertaken after the arrival of the stimulus.
Response measure: Measurable outcome, it should be measurable in some
fashion so that the requirement can be tested.
Quality attribute Scenario
Framework - example
Refer to the PDF
Design Tactics
Calculating availability
Uptime
Downtime
(Time between failures)
(Time to repair)
(TBF)
(TTR)
99 days
1 day
Link failure
Malicious user
floods the system
with fictitious login
Temporary loss of
connection
Unreliable code /
algorithm
Availability
Issue Tactic
Disk failure Real time replication (Hot standby)
Server failure Backup server running the same application
Master regularly updates the Backup about the progress. Upon
failure, backup becomes master and continues from the last
known state (Warm standby)
Link failure Redundant communication paths
Malicious user Block IP
floods the system
with fictitious login
Temporary loss of Retry after some time. Ex. Mobile app unable to reach
connection application in central server
Unreliable code / Have multiple algorithms compute the result. Compare their
algorithm results. Take the result given my most algorithms
Example: Boeing 777 Triple
Modular Redundancy (TMR)
• The flight computer uses TMR with three dissimilar computation
lanes
Compute
altitude using
pressure
Compute
altitude using Compare Altitude of plane
sound wave
Compute
altitude using
infrared?
Availability - Details
① Source of stimulus. entity ( human, computer system, or any other actuator) that generated the stimulus
② Stimulus - condition that needs to be considered when it arrives at a system. Tactic is a design
③ Artifact: Some artifact is stimulated – whole system or parts; option for the
④ Environment: The stimulus occurs within certain conditions - Normal, safe mode, overload condition etc architect
⑤ Response: activity undertaken after the arrival of the stimulus.
⑥ Response measure: Measurable outcome, it should be measurable in some fashion so that the requirement can be tested.
①
Scenarios should cover a range of
• Anticipated uses of (use case scenarios), ②
• Anticipated changes to (growth scenarios), or ③
• Unanticipated stresses (exploratory scenarios) to the system.
④
⑤
Quality Attributes &Tactics
Identify the Quality attributes and Tactics
require to achieve them ⑥
①
②
③
④
⑤
① ⑥
②
③
④
⑤
⑥
Measure Availability percentage (e.g., 99.999%)
Time to detect the fault
Time to repair the fault
Availability Scenario
Time or time interval in which system can be in degraded mode
Proportion (e.g., 99%) or rate (e.g., up to 100 per second) of a certain
class of faults that the system prevents, or handles without failing
1
Artifact: 2
Process 3
Stimulus: Response:
Server Inform 4
Unresponsive Environment: Operator
Source: Continue
Response
Normal Measure:
Heartbeat to Operate
Operation No Downtime
Monitor
Measurements
• Latency: Time to respond: Ex. 3 seconds
• Throughput: The number of requests handled per second: Ex. 3000
txns per second
• Jitter of response: Variation in response time: Response time is 3
seconds when # of users is 50, 5 seconds when # of users is 100
Request Response
Time
Latency
Throughput
Throughput = # of
Request requests processed in
unit time
Time
Response
1 second
Jitter
Latency
Jitter
Request
Performance tactics
Volume of data to be
processed is high
Number of concurrent users
is high
Performance tactics
Cause Tactic
Poor algorithm Improve search algorithm
Approaches
• Round robin
• Based on txn load
How to improve performance when multiple
users want to READ the same data?
Before After
Poor response due to large data and Replicated data enables load balancing
high volume txns
Example
Google Data
centers
① Source of stimulus. entity ( human, computer system, or any other actuator) that generated the stimulus
② Stimulus - condition that needs to be considered when it arrives at a system. Tactic is a design
③ Artifact: Some artifact is stimulated – whole system or parts; option for the
④ Environment: The stimulus occurs within certain conditions - Normal, safe mode, overload condition etc architect
⑤ Response: activity undertaken after the arrival of the stimulus.
⑥ Response measure: Measurable outcome, it should be measurable in some fashion so that the requirement can be tested.
①
Scenarios should cover a range of
• Anticipated uses of (use case scenarios), ②
• Anticipated changes to (growth scenarios), or ③
• Unanticipated stresses (exploratory scenarios) to the system.
④
⑤
Quality Attributes &Tactics
Identify the Quality attributes and Tactics
require to achieve them ⑥
①
②
③
④
⑤
① ⑥
②
③
④
⑤
⑥
Performance Scenario
1
Artifact: 2
System 3
Stimulus: Response:
Initiate Transactions 4
Transactions Are Processed
Environment: Response
Source: Normal
Users Measure:
Operation Average
Latency
of Two
Seconds
• Deals with the ease with which we can make changes to a system
Modifiability
Weather forecasting
Process air
pressure data
Complex weather
forecasting module Weather
forecasting - Process
Master module Humidity data
Process
Temperature
data
Encapsulate things that are
likely to change
Interface to external Database technology may
systems may change change
Order
Fund xfer
processing
module
module
via internet
Oracle
SBI system External DBMS
system
Protect system from variations
Variation
Examples of variations: Example
Changes in business rules Income Tax rules, Pricing rules in Rules engine (Deployment time)
• Changes in business rules – IT rules, Pricing rules in airline?
airline change frequently
• Change
Change in business
in business process process – Need one more approval?
Need one more approval Work flow engine, Configuration
• Changes in module interface – Need to interface with a different
files SMStime)
(Deployment
service provider?
• Adding
Changes newinterface
in module recipients Need
of notification of event
to interface with – New order
a different Adaptorevent needs
pattern totime)
(Build
be notified to TransportSMS module
serviceinprovider
addition to Fulfilment module
• Enhancing browser to handle new audio file format – such as mp3, wav, ..
Adding new recipients of ‘New order’ event needs to be Publish – Subscribe
notification of event notified to Order Fulfilment module (Deployment time)
& Transport module
Enhancing browser to handle mp3, wav, … Plugins (Deployment time)
new audio file format
Example of Rules engine
Book ticket
(Pax name,
Booking Reserva
profession, age, Flt#,
date, etc.) module tion DB
Web
server Determine ticket price
(profession, age, Flt#, date, etc)
Rules engine
Rules
DB
• All flights in the afternoon will have 5% discount
• Flights booked 3 months before will have 20% discount
• Senior citizens above 60 yrs will have 5% discount
• Defence personnel will get 10% discount
Exercise - RTO
As the project entered the design stage, new requirements started coming in.
These consisted of many more reports. They also said that they may
require more reports in the future.
As the project entered the design stage, new requirements started coming in.
These consisted of many more reports. They also said that they may
require more reports in the future.
A module for generating ad-hoc reports which can generate a report based on
specification provided by the user, can address most of the reports. Some
examples of report generation tools are Ubiq, Zoho Analytics, BIRT, etc.
Exercise – Airline Loyalty
module
An airline is building a comprehensive flight information & reservation system. It has
several modules such as Flight planning, Flight schedules, Pricing, Reservations,
Departure control, Analytics, etc.
As the airline industry is very competitive, the airline foresees many new requirements
such as Loyalty card, etc. to come up in the future. The new modules to be built in the
future would most probably be dependent on existing modules. For example, the
Loyalty module will have to calculate Loyalty points based on flights undertaken by
the customer, which is an output of Departure control module.
As the airline industry is very competitive, the airline foresees many new requirements
such as Loyalty card, etc. to come up in the future. The new modules to be built in the
future would most probably be dependent on existing modules. For example, the
Loyalty module will have to calculate Loyalty points based on flights undertaken by
the customer, which is an output of Departure control module.
Since new modules would require information from other modules, it is good idea to have
a common database which can be accessed by all modules. If information is needed
in real-time, one can adopt a Publish-Subscribe approach where all important events
taking place in different modules are identified and published to interested
subscribing modules
① Source of stimulus. entity ( human, computer system, or any other actuator) that generated the stimulus
② Stimulus - condition that needs to be considered when it arrives at a system. Tactic is a design
③ Artifact: Some artifact is stimulated – whole system or parts; option for the
④ Environment: The stimulus occurs within certain conditions - Normal, safe mode, overload condition etc architect
⑤ Response: activity undertaken after the arrival of the stimulus.
⑥ Response measure: Measurable outcome, it should be measurable in some fashion so that the requirement can be tested.
①
Scenarios should cover a range of
• Anticipated uses of (use case scenarios), ②
• Anticipated changes to (growth scenarios), or ③
• Unanticipated stresses (exploratory scenarios) to the system.
④
⑤
Quality Attributes &Tactics
Identify the Quality attributes and Tactics
require to achieve them ⑥
①
②
③
④
⑤
① ⑥
②
③
④
⑤
⑥
Modifiability Scenario
1
Artifact: 2
Stimulus: Code Response: 3
Wishes Change Made 4
to Change and Unit Tested
the UI Environment: Response
Source: Design
Developer Measure:
Time In Three
Hours
Have you come across any situation where you had tough time
modifying the design to accommodate a requirement change?
Can you explain the situation? How did you address it?
Software Architecture
Architecturally Significant
Requirements
BITS Pilani Vijayarajan
Requirements
• In house use
• Use Only Open Source
• Align with Legacy Product
• Ahead of Competition
• Development to be outsourced
• Multi Generational Product Road Map
• Huge Number of customers
• International customers
• Deployed as SaaS Model
• Customer specific Configuration (ERP)
ASR from Quality Attribute
Scenarios
Discuss with Stake holders
Elaborate Requirements with Scenarios
Create Questionnaires based on Quality Attributes
ASR from Design Decisions
• Recap
• Architecture Patterns - 01
Assignment & Quiz 1
A1 - Build an Architecture for an App
• The App should at minimum include the technologies Web, Mobile, IOT,
cloud and analytics.
• Each team will select an application and get the approval of the TA.
• Duplication May not be allowed …
• The submitted architecture will be evaluated by the TA
• The team will be evaluated for their developed architecture
A2 – Research paper on real life architecture / latest trends etc
• Each team has to select a topic and get the approval of the faculty.
• Duplication may not be allowed.
• Final Paper should be submitted as per the agreed upon template and
schedule
Quiz 1 Ignore this Quiz related information… check the portals
Sunday 14th Feb - late evening after 6 PM; Block 45 minutes; 25 questions
Evolution of SW Architecture
Architecturally
significant
requirements
Power Screwdrivers
1. Layer
2. Pipe & Filter
3. MVC
4. Publish & Subscribe
5. Client & Server
6. P2P
7. Shared Data
8. Broker
9. Map-Reduce
10.Multi-tier
11.SOA
Layered pattern
Example: Architecture of Android
http://www.techotopia.com/index.php/An_Overview_of_the_Android_Architecture
1/26/21 SS ZG653 12
Layer Pattern
Context:
Complex systems, needs decomposition & independent evolution of
parts.
Problem:
Developers need a clear & well-documented way to implement
separation of concerns (focus)
Software needs to be segmented such that modules can be
developed and evolved separately with little interaction among
the parts, supporting portability, modifiability, and reuse.
Part of the system can be extended (evolution)
Stable interface among modules – defined by standards
OSI 7 layer model
Network Layering
3
Why Layering?!
Montreal London Paris
Alice wants to send
a mail to Bob and
a parcel to John.
Post Office
Alice drops off both performs final
at the same Post Office. delivery based
on the street and
personal names.
Intermediate
layer
1/26/21 By Vijayarajan 16
Pipe and Filter Pattern
a) If the cab deviates from the designated route and if the deviation is
significant, then we want to alert the passenger as well as the ops team
(inform via SMS)
b) If the customer presses the emergency button, we want to inform the
police and the ops team immediately (inform via SMS)
Using Pipe & filter pattern, draw an architecture diagram to implement the
above requirements. Indicate how the pipes and filters are used.
Example: Monitoring real time
events by cab operator
Pickup event Msg. to Ops team
Driver app Analyse delay
API Driver
event
handler Msg. to Ops team &
Cab location event Customer
Analyse
deviation Send
SMS
SMS Msg Q
Customer app
Emergency event
Customer Alert Ops
API
event team
handler Msg. to Ops team
Pipes & Filters: Applications
Applications where Pipes & Filters are useful
• Satellite signal processing – noise reduction, transformations
• Extract – Transform – Load (ETL) is a good fit for Pipes & filters architecture
• Real time recommendations to customer in ecommerce
Weakness
• Not good for interactive system
• More filters - Computational overhead
• Any failure can cause the entire pipeline to fail
Each component
supports an interface
Date Format
View components
Controller components
Model components
MVC architecture of eComm
system
View components
Controller components
Model components
Example
Picking
module
New
Order order Transport
Event
module notifier module
Loyalty
module
Publisher Subscribers
Publish-Subscribe tools
35
Client-Server Architecture of Internet
36
1/26/21 SS ZG653 By Vijayarajan
Client-Server Pattern
Useful when several clients want to access the services provided by the server
Examples
• Database server (accessed using ODBC)
• Mail server (MS Outlook)
• Web server (accessed using HTTP request)
Client server pattern: Example
ODBC
LAN
Server machine
Containing DBMS
software
Client server pattern: Example
Client PC Client PC Client PC
Web server
DB
Place Make
Login Search
order payment
Client-server pattern
Now we have
• Asynchronous communication (using AJAX)
• Clients providing call back functions (ex. Javascript). Eg. Updating Live
cricket scores on a Cricket website or updating Live stock prices in a stock
exchange
Demerits
The illustration in Figure 4 shows the basic flow of BitTorrent. The figure on the left shows a
client-server approach to download. The peers download from the server simultaneous. If we
assume the upload capacity of the server is the same as the download capacity of a peer, the
time for the download to finish will be two times the time if only one peer where downloading
from the server. The figure on the right shows an approach similar to BitTorrent. By splitting
the file and send one part to each peer, and let the peers download the part they are missing
from each other, both download time and load on the server is reduced. Of course, the
BitTorrent protocol is much more sophisticated than this simple example, but this shows the
P2P
Peer A requests for some data that Peer D and Peer H have. The
query will be broadcasted to the neighbors of Peer A, and
gradually, to the other peers in the whole network
2.3 Fully Decentralized P2P Systems 23
other hand, as more and more nodes join the Gnutella network and the nodes is-
sue queries continuously, the network may be congested with floods of messages. 47
1/27/21 By Vijayarajan
and near to the node issuing the lookup. A simple routing process is illustrated in
Fig. 2.4.
P2P Communication
2.3.3.1 Properties
48
1/27/21 By Vijayarajan
P2P Application
The entities are on the move and there is no fixed network consisting of links and routers
Every node gathers information about the enemy and shares it with other nodes
Peer-to-Peer Challenges
Challenges
• Data consistency – Copies of data in different nodes might be out of sync
• Data & service availability – No central authority to ensure this
• Backup & Recovery – May be more involved, since there is no single source
from where to recover
Shared-Data Pattern
1 Layer
2 Broker
3 MVC
Pipe &
4
Filter
Client &
5
Server
Peer to
6
Peer
7 SOA
Publish &
8
Subscribe
Shared
9
Data
Map-
10
Reduce
11 Multi Tier
Shared data pattern
Shared data
Software Architecture
Architecture Patterns - 2
BITS Pilani Vijayarajan
Contents
• Recap
• Architecture Patterns - 02
Assignment & Quiz 1
A1 - Build an Architecture for an App
• The App should at minimum include the technologies Web, Mobile, IOT, cloud
and analytics.
• Each team will select an application and get the approval of the TA.
• Duplication May not be allowed …
• The submitted architecture will be evaluated by the TA
• The team will be evaluated for their developed architecture
A2 – Research paper on real life architecture / latest trends etc
• Each team has to select a topic and get the approval of the faculty.
• Duplication may not be allowed.
• Final Paper should be submitted as per the agreed upon template and schedule
Quiz 1
In the coming week. It will be available for 3 to 5 days. Wait for announcement in
Taxila
Evolution of SW Architecture
Architecturally
significant
requirements
What is a Pattern
1. Layer
2. Pipe & Filter
3. MVC
4. Publish & Subscribe
5. Client & Server
6. P2P
7. Shared Data
8. Broker
9. Map-Reduce
10.Multi-tier
11.SOA
Service Oriented Architecture
2/5/21 By Vijayarajan 9
Banking Example –Process & Tech View
2/5/21 By Vijayarajan 10
Another Example
2/5/21 By Vijayarajan 11
Towards – SOA
2/5/21 By Vijayarajan 12
Services as reusable components
2/5/21 By Vijayarajan 13
Definition of Service Oriented Architecture
2/5/21 By Vijayarajan 14
Business Centric SOA Event
Sub-routines Enterprise
Remote Services
Monolithic /Remote Message Application
Object
Architectures Procedure Processing Integration (SOA)
Invocation
Calls (EAI)
2/5/21 By Vijayarajan 16
Business Centric SOA Event
Connectivity,
mediation & Connectivity logic
Lines of code
process-control
logic Connectivity and
Mediation & mediation logic
process-control Connectivity,
logic Process-control mediation & process-
logic control logic
18
Business Centric SOA Event
Users Users
Define/refine Define/refine
business business
processes processes
Application
Limited Extensive Developers
Overlap Translate business
Overlap processes into
applications by
Service assembling and
configuring
Developers building blocks
Developers Create application
Program building blocks –
applications patterns,
using core templates, and
technologies components using
core technologies
Technical Expertise Technical Expertise
Service Consumers
Data
Security Discovery
Transformation
Infrastructure
Service Interfaces
Architects of service-oriented systems often find themselves in a conflict. On one hand, there are
2/5/21 By Vijayarajan 20
business/mission goals and quality attribute requirements driving the architecture of a system. On
Service
2/5/21 By Vijayarajan 21
WHAT CAN SERVICES DO?
• Perform business logic • Transform data
• Route messages
• Query databases
• Apply business policy
• Handle business exceptions
• Prepare information for use by a user interface
• Orchestrate conversations between multiple services
2/5/21 By Vijayarajan 22
Service Implementation / service interface
2/5/21 By Vijayarajan 23
Adapters
2/5/21 By Vijayarajan 24
Service Consumers
n Service consumers are the clients for the
functionality provided by the services. Examples
of service consumers are end-users, internal
systems, external systems, and composite
services
Example:
n Tax Payers filing tax returns end users
2/5/21 By Vijayarajan 26
Service Invocation
2/5/21 By Vijayarajan 27
tems, as shown in Figure 2. Because it is the most common technology pattern,
Web Services is often equated to SOA. Initially, Web Services were commonly
n,
Web Service
implemented using the WS* stack. More recently, an alternative called REpre-
sentational State Transfer (REST) has surfaced and is being widely adopted.
often
Class of System Distributed Systems
vices
Architecture Service-Oriented Peer-to-Peer
Pattern Systems Systems ….
g
the Technology
Pattern Web Services Broker Architecture ….
, an
ly Implemented using
Service interface
Service
WSDL
description
Service SOAP
consumer
The service consumer Service
binds to the service Bind
provider by sending
a SOAP-request. Service
provider
4/31
© Peter R. Egli 2015 Rev. 2.00
2/5/21 By Vijayarajan 30
Business Centric SOA Event
2/5/21 By Vijayarajan 32
ESB - Services
n Messaging : provide intelligent content-based routing, and
guarantee delivery.
n Management : Monitor their own performance, helping to
n enforce SLA (latency).
n Interface : Can validate messages against schema and
provide application adapters
n Mediation : Transform messages between the formats
n Metadata : transform data from one format to another by
using metadata definitions.
n Security : Encrypt messages where needed; authorize,
authenticate, and audit all ESB activity.
2/5/21 By Vijayarajan 33
No SOA
2/5/21 By Vijayarajan 34
No SOA
2/5/21 By Vijayarajan 35
SOA - additional Points
2/5/21 By Vijayarajan 36
SOA
2/5/21 By Vijayarajan 37
SoA : Travel company
Travel company’s application makes use of business services offered by partner systems such
as Airline, Lodging, Bank, etc.
Business services
SoA: Travel company – SoA
components
Does message
routing, format
Travel Company conversion,
application security check,
txn mgmt
2/5/21 By Vijayarajan 40
MAP REDUCE
• Invented by Google.
• Is a programming model for processing large datasets
• distributed on a large cluster.
• Uses the concept of Divide and Conquer.
• Two methods: map() and Reduce() .
2/5/21 By Vijayarajan 41
Map-Reduce Pattern
n Context: Businesses have a pressing need to quickly analyze
enormous volumes of data they generate or access, at petabyte
scale.
n Problem: The problem the map-reduce pattern solves is to
efficiently perform a distributed and parallel sort of a large data
set and provide a simple means for the programmer to specify the
analysis to be done.
Map-Reduce Pattern
n Solution: The map-reduce pattern requires three parts:
q A specialized infrastructure takes care of allocating software to
each other.
q The only communication between map reduce instances is the
is not justified.
q If you cannot divide your data set into similar sized subsets, the
orchestrate.
2/5/21 By Vijayarajan 49
Map-Reduce – Generic Explanation
2/5/21 By Vijayarajan 50
Multi-tier pattern
• Tier is a physical unit, where the code / process runs. E.g.: client,
application server, database server;
• Layer is a logical unit, how to organize the code. ... Layers are the logical
groupings of the software components that make up the application or
service.
• All layers may reside on one server or can be distributed across multiple
servers
© Len Bass, Paul Clements, Rick Kazman, distributed under Creative Commons Attribution
License
Logical Groupings or “Layers” of
SAP R/3 Components
The Presentation Layer
Those SAP R/3 software components that
specialise in interacting with end-users
form the Presentation Layer.
© Len Bass, Paul Clements, Rick Kazman, distributed under Creative Commons Attribution License
Tactics Augment Patterns
• Patterns solve a specific problem but are
neutral or have weaknesses with respect to
other qualities.
• Consider the broker pattern
– May have performance bottlenecks
– May have a single point of failure
• Using tactics such as
– Increase resources will help performance
– Maintain multiple copies will help availability
© Len Bass, Paul Clements, Rick Kazman, distributed under Creative Commons Attribution License
Tactics and Interactions
• Each tactic has pluses (its reason for being)
and minuses – side effects.
• Use of tactics can help alleviate the minuses.
• But nothing is free…
© Len Bass, Paul Clements, Rick Kazman, distributed under Creative Commons Attribution License
Tactics and Interactions - 2
A common tactic for detecting faults is
Ping/Echo.
Common side-effects of Ping/Echo are:
• security: how to prevent a ping flood attack?
• performance: how to ensure that the performance overhead
of ping/echo is small?
• modifiability: how to add ping/echo to the existing
architecture?
Tactics and Interactions - 3
System
Ping/Echo
Ping/Echo
Increase Available
Resources
Resource
Cost
Utilization
Tactics and Interactions - 6
A tactic to address the efficient use of resources
side-effect is “Scheduling Policy”.
Common side effects of Scheduling Policy are:
• modifiability: how to add the scheduling policy to the existing
architecture
• modifiability: how to change the scheduling policy in the
future?
Tactics and Interactions - 7
System
Ping/Echo
Increase Available
Resources
Resource
Cost
Utilization
Scheduling
Policy
Add to Modify
system policy
Tactics and Interactions - 8
A tactic to address the addition of the scheduler
to the system is “Use an Intermediary”.
Common side effects of Use an Intermediary
are:
• modifiability: how to ensure that all communication passes
through the intermediary?
Tactics and Interactions - 9
System
Ping/Echo
Cost Resource
Utilization
Scheduling
Policy
Add to Modify
system policy
Use an
Intermediary
Ensure
usage
Tactics and Interactions – 10.
A tactic to address the concern that all
communication passes through the
intermediary is “Restrict Communication
Paths”.
Common side effects of Restrict Communication
Paths are:
• performance: how to ensure that the performance overhead
of the intermediary are not excessive?
© Len Bass, Paul Clements, Rick Kazman, distributed under Creative Commons Attribution License
Broker pattern
Examples of Brokers:
• Load balancer
• EJB server
Broker pattern:
Example: Load balancer
Load balancer
• Distributes requests to different servers in a server farm
• Takes care of non-availability issues by switching to another server
•Round robin
•Least connections
Designing Architecture
BITS Pilani Vijayarajan
Contents
• Recap
• Designing Architecture #1 (will continue in the next class
also)
Assignment & Quiz 1
A1 - Build an Architecture for an App
• The App should at minimum include the technologies Web, Mobile, IOT, cloud
and analytics.
• Each team will select an application and get the approval of the TA.
• Duplication May not be allowed …
• The submitted architecture will be evaluated by the TA
• The team will be evaluated for their developed architecture
A2 – Research paper on real life architecture / latest trends etc
• Each team has to select a topic and get the approval of the faculty.
• Duplication may not be allowed.
• Final Paper should be submitted as per the agreed upon template and schedule
Assignment & Quiz 1
Quiz 1
The quiz will not be available until Sunday, 14 February 2021, 12:00 AM
This quiz will close at Sunday, 21 February 2021, 11:59 PM
20 Questions - 30 minutes
Once you start you should complete in 30 minutes….
Example:
Resynchronizing the state of a repaired component with the current state of
operation and then re-introducing this component is the tactic for improving
which of the following attribute.
A. Security
B. Performance
C. Testability
D. Availability
Evolution of SW Architecture
Architecturally
significant
requirements
What is a Pattern
1. Layer 8. Broker
2. Pipe & Filter 9. Map-Reduce
3. MVC 10.Multi-tier
4. Publish & Subscribe 11.SOA
5. Client & Server
6. P2P
7. Shared Data
Reference Architecture
Web Application
278 .NET Application Architecture Guide, 2nd Edition
Go to Page 278
Go to page 371
1. Review Inputs
2. Establish iteration Goal - Selecting drivers
3. Choose one or more elements of system to refine
4. Choose design concept(s) that satisfy the drivers
5. Instantiate the architecture, allocate responsibilities and
define interfaces
6. Sketch views to record design decisions
7. Analyze the current design against the iteration goal - refine
Iterate …
Software Architecture
Designing an architecture
BITS Pilani Viswanathan Hariharan
Edited by Vijayarajan
Contents
• Recap
• Designing Architecture #2 (part 1 was covered in the last
session)
• Documenting the architecture
• Architecture Evaluation - ATAM Method
Assignment & Quiz 1
A1 - Build an Architecture for an App
• The App should at minimum include the technologies Web, Mobile, IOT, cloud
and analytics.
• Each team will select an application and get the approval of the TA.
• Duplication May not be allowed …
• The submitted architecture will be evaluated by the TA
• The team will be evaluated for their developed architecture
A2 – Research paper on real life architecture / latest trends etc
• Each team has to select a topic and get the approval of the faculty.
• Duplication may not be allowed.
• Final Paper should be submitted as per the agreed upon template and schedule
Assignment & Quiz 1
Quiz 1
The quiz will not be available until Sunday, 14 February 2021, 12:00 AM
This quiz will close at Sunday, 21 February 2021, 11:59 PM
20 Questions - 30 minutes
Once you start you should complete in 30 minutes….
Example:
Resynchronizing the state of a repaired component with the current state of
operation and then re-introducing this component is the tactic for improving
which of the following attribute.
A. Security
B. Performance
C. Testability
D. Availability
Evolution of SW Architecture
Architecturally
significant
requirements
What is a Pattern
1. Layer 8. Broker
2. Pipe & Filter 9. Map-Reduce
3. MVC 10.Multi-tier
4. Publish & Subscribe 11.SOA
5. Client & Server
6. P2P
7. Shared Data
Reference Architecture - Microsoft, AWS, IBM
Attribute-Driven Design
Purpose , Quality Attributes , Functionality, Architectural concerns , Constraints
1. Review Inputs
2. Establish iteration Goal - Selecting drivers
3. Choose one or more elements of system to refine
4. Choose design concept(s) that satisfy the drivers
• Proven methods, reference architecture, Patterns, tactics, externally developed
components - products (SQL DB), library, framework, Platform (java, .net), Past
experience, Best Practices, Expert Knowledge
• For a specific problem, one will combine different types of design concepts
• Making decision is a Process, Make Candidate Decisions then refine
Attribute-Driven Design
Purpose , Quality Attributes , Functionality, Architectural concerns , Constraints
• Since we are designing a new system, the entire system is our element
Business / Mission presentation by sponsor
Example: Judiciary Management System
Judge:
• The proceedings should not be lost or tampered with, by unauthorized
people, including those working in the court (Security)
Court staff
• Proceedings will consist of text, photos, images & videos (Store pictures)
Citizen
• The system should clearly indicate the steps to file a case (Ease of use)
Lawyers
• I should be notified when the proceedings are posted (Notification)
Scenario refinement & elaboration
LAN
Firewall
Court management
system
Now let us try to address the
ASRs
Security of data
Court management
system
Allows only the
Court management
Firewall system to access
the database
Firewall
DB server
Now let us try to address the
ASRs
SMS notification
Firewall
DB server
Putting it all together
Citizens & Lawyers
LAN
Firewall
Firewall
DB server
Verify & refine requirements and
generate input for next iteration
A. Verify:
• Implement and test if it works as expected
B. Refine requirements:
– Sometimes expectations can not be met. In such cases the requirements may
have to be refined in consultation with stakeholders
– Ex. In eCommerce system if Analytics group wants every user action to be
logged and if this is severely impacting response time, we can discuss with
stakeholders to understand what is critical to be logged and what need not be
logged.
Have you come across any situation where you could not
meet a requirement and had to discuss with
stakeholders to modify the requirement?
Verify & refine requirements and
generate input for next iteration
Module: Database
1. Disk mirroring
2. 2nd firewall to protect
from accessing the
database directly from
outside the network
Example architecture
Client Client
Browser Browser HTTPS
Firewall
Scheduling Judgement
RESTful APIs
module module
Documenting architecture
BITS Pilani Viswanathan Hariharan
Contents
• Introduction
• Different architectural views
• Combining different views
• Documentation package
Introduction
Communication
Basis for evaluation
vehicle
Architects, sponsor, Analyse how well the
business managers, end architecture meets the
users, developers, testers quality attributes
Different architectural views
Blood
Skeletal view Digestive system circulation Nervous system
system
Have you observed the several photos they show about the house to
get a good idea about the house ?
3 types of architecture views
ERP system
Market
Accounting Budgeting Audit Advertising Planning Inventory
research
Module view of Judiciary
system
Module decomposition view
Judiciary
system
Business Technical
modules modules
If we want to develop admin.client, we need to also develop admin.core, dao and util
Benefits of Module view
Responsibilities:
• Maintain quantity in stock of different items
• Handles inventory transactions
• Automatically generate request when quality goes below reorder level
Interface provided:
• Issue inventory (Item code, quantity) Returns Success or Error code
• Receive inventory (Item code, quantity) Returns Success or Error code
• Inquire quantity in stock (Item code) Returns quantity
Module documentation -
Examples
Name: Proceedings
Responsibilities:
• Maintain information about proceedings of different cases
• Logs changes
Interface
• Add proceedings (Case code, Date, Text)
• Retrieve proceedings (Case code, Date) Returns Text of procedings
Module documentation -
Examples
Name: Workflow engine
Responsibilities:
• Maintains workflow graph consisting of sequence of tasks for a process
• Maintains information about pending tasks
• Alerts users of their pending tasks
Interface
• Define task (Task name, Task description, Previous task name, User types
who can perform this task)
• Add task instance (Task name, Id of User who should perform this task)
returns Task Id
Exercise: Module
decomposition
Draw the module decomposition view of Departure Control System
Component & Connection
view
• Shows how components interact
C&C View: ATM example
ATM
Bank server
C&C View: Example
Notification
messges Picking
module
New
Order order
Event
Transport
module dispatcher module
Loyalty
module
• A system imports critical data from a service provider such as Dow Jones using
FTP. Upon analysis if realize that data is not encrypted, we may consider S-FTP
(Secure FTP protocol)
Firewall
Load Balancer
Server cluster / farm
Web server / App Server Web server / App Server Web server / App Server
Generic
Get case Get case Proceedings Scheduling
File case File case SMS
status status module module client
Firewall
Multiple
Primary Backup
servers
dedicated for DB DB
case module server server
Exercise: Deployment view
• Module view
• C&C view
• Deployment view
It allocates components to
servers and shows the
dependencies between the
components. It’s often useful
to label the dependencies with
a name that indicates the
protocol that is used to
communicate between the
components. For example, the
OrderProcessing executable
component requires JDBC1 to
access the NewOrders table in
the OrdersDB database.
Exercise
Firewall
Only authorized
Airtel
Generic Airtel SMS
users
adaptor can accesssystem
Workflow engine SMS
client data
Vodafone Vodafone SMS
adaptor system
Sensitive data such
Firewall allows only Firewall
as judge’s notes
Backend servers to
are encrypted
connect to DB server DB server
Combining view
Many a times we need to combine views – Module view, C&C view and
deployment view
Load Balancer
Firewall
LAN
Firewall
Load Balancer
Server cluster / farm
Web server / App Server Web server / App Server Web server / App Server
Generic
Get case Get case Proceedings Scheduling
File case File case SMS
status status module module client
Firewall
Multiple
Primary Backup
servers
dedicated for DB DB
case module server server
Exercise: Views - DCS
• Draw a view to explain what happens when an airline staff asks the
system to stop booking. How is Reservation system notified about
it?
Exercise: Views - DCS
Ref: Architectural Blueprints—The “4+1” View Model of Software Architecture by Philippe Kruchten, IEEE Software Nov 1995 4 plus 1 views
Exercise
The Observe and React pattern (Figure in the previous slide ) is a pattern that is
commonly used in monitoring systems.
The values of sensors are observed and when particular values are detected,
the system reacts in some way.
Depending on the system requirements, you may then optimize the design by
combining processes (e.g., you may use a single display process to display the
information from all of the different types of sensors).
Documentation
package
Documentation package: Example
Client Client
Firewall
Scheduling Judgement
module module
Technical
services
Firewall
Mirroring
Documentation package: Example
Section 2: Element catalogue
1. Name: Proceedings
Responsibilities:
• Maintain information about proceedings of different cases
• Allows entry by court staff and verification by judge
• Can retrieve linked evidences and documents
• Logs changes
Interface
• Add proceedings (Case code, Date, Text)
• Verify proceedings (Case code, Date)
• Retrieve evidences (Case code) Returns List of evidences
Passenger Boarded
list passenger
list
No-fly passenger
list
Documentation package: Example
4. Variability guide
• To switch to a different telecom service provider, switch the adaptor
(SMS client module) using configuration file
• To switch from Oracle to My SQL in the future, use features common
to all R-DBMS
5. Rationale
• Disk mirroring: This is to provide high availability when a disk fails
• Load balancer: This is to provide satisfactory performance when
number of users is large
• 2nd firewall: This is to protect the data from hackers
• In some cases we document alternate designs and why picked one
Exercise
For the Departure Control System
• Assignment 1 & 1
• Recap
• Architecting for Cloud
Assignment
A1 - Build an Architecture for an App
• The App should at minimum include the technologies Web, Mobile, IOT, cloud
and analytics.
• Each team will select an application.
• The submitted architecture will be evaluated by the TA
• The team will be evaluated for their developed architecture
A2 – Research paper on real life architecture / latest trends etc
• Each team has to select a topic
• Final Paper should be submitted as per the agreed upon template and schedule
Refer to the template for Assignment #1
Assignment - 2 Sampe
1. Performance - at least 3 popular applications Guidelines
2. Scalability - at least 3 popular applications ● You are not building an architecture
3. Facebook - scalability ● You are studying what is happening
4. Agile and Architecture around
● You must read many papers / case
5. Micro Services
studies
6. Uber / Ola etc ● You can do a Literature survey
7. Architecture For IOT paper
8. Architecture For Mobile ● Key words
9. Architecture For Machine Learning • Study
10. Architecture for Conferencing Platform • Analyze strengths / weakness
11. AWS Lambda • Compare
Architecturally
significant
requirements
What is a Pattern
1. Layer 8. Broker
2. Pipe & Filter 9. Map-Reduce
3. MVC 10.Multi-tier
4. Publish & Subscribe 11.SOA
5. Client & Server
6. P2P
7. Shared Data
1. Review Inputs
2. Establish iteration Goal - Selecting drivers
3. Choose one or more elements of system to refine
4. Choose design concept(s) that satisfy the drivers
• Proven methods, reference architecture, Patterns, tactics, externally developed
components - products (SQL DB), library, framework, Platform (java, .net), Past
experience, Best Practices, Expert Knowledge
• For a specific problem, one will combine different types of design concepts
• Making decision is a Process, Make Candidate Decisions then refine
Architecting
Intro to Cloud
– Definition
– Virtualization
– Architecting for cloud - what is the difference
– Multi Tenancy
Cloud Definition
NIST
Cloud Definition
NIST
Why Cloud
A virtual machine consists of several files that are stored on a storage device. The key files are
the configuration file, virtual disk file, NVRAM setting file, and log file
Both Data and Executable code - OS & VM tools (Device drivers etc)
It is a Software Computer -
Roughly equivalent an OS Image in a computer…
When instantiated on a physical Hardware it behaves like a computer on which One can run
applications…
Software Architecture
Examples
• Uber
• Swiggy
• Courier delivery
• eCom
• Banking
• Spotify
• Where Is My Train
• …
Mobile Application: Design
considerations
• Simple User interface: Easy to type, Large buttons, Minimal
features, menu options, actions
Ref: buildfire.com
Mobile Native app
• Languages used:
• Native iOS : Swift or Objective-C
• Native Android: Java or Kotlin
• Examples:
• Flipkart
• BookMyShow
• MakeMyTrip
• Hybrid apps are essentially web apps (HTML, CSS, Javascript) that
have been put in a native app shell.
• Tools such as Xamarin and React Native allows app to run across
platforms
Pros & Cons
This is how
the display
looks on
desktop
Responsive design
This is how
the display
looks on
mobile
Adjusted
vertically
Responsive design
Ref: Wikipedia
Responsive design
Ref: Wikipedia
Flexi grids
Doctors enter patient data in mobile, which gets synced with server later
Mobile Application Architecture
4 types of components
• Activity (UI)
• Service (background process) - ex. playing music, download
• Content provider (Storage) - ex. SQLite, files,
• Broadcast receiver (Acts on events received from OS and other apps) - Ex
arrival of SMS
Examples of components
Activity & Content providers
Personal Calendar
App
<<Activity>>
Appointment list
<<Content Provider>>
SQLite API
DB
(Background) Service
Google Play initiating a
download service to
<<Activity>> download an App
Google Play
<<Service>>
Server
Download file
<<Content Provider>>
File API
File
Broadcast receiver (Event
handlers)
<<Service>> <<Service>> 7 Recorded Doctor’s
message phone
Alarm Call doctor
(Makes sound) 4 5 Get doc details
4
<<Broadcast <<Broadcast <<Content
receiver>> receiver>> Provider>>
High Pulse event High Pulse event
receiver receiver File API
High
3
pulse
6 Patient monitoring
event / 3
system
intent
<<Service>>
Config file
(Doc #,
Pulse rate
Recorded
monitor msg)
2
1
UI
Screen to book a cab
Broadcast receiver
Receive location of cab from backend server and provide to UI for
display
Service
Provide cab location to backend server after journey starts
Database
Configuration file containing user data
Exercise
Identify the components of a mobile app & its inter-connections and draw an
appropriate software architecture diagram
a) View courier packages to be
delivered
List of packages to
be delivered
(UI screen)
SQLite content
provider
b) Mark a package as delivered. Upon this event, the app sends
information to central server
Mark package as
'Delivered'
(UI screen)
• Clarification on Assignments
• Quiz 2
• Makeup Exam Answers
• Architecting for IOT & AI
Assignment
A1 - Build an Architecture for an App
• The App should at minimum include the technologies Web, Mobile, IOT, cloud
and analytics.
• Each team will select an application.
• The submitted architecture will be evaluated by the TA
• The team will be evaluated for their developed architecture
A2 – Research paper on real life architecture / latest trends etc
• Each team has to select a topic
• Final Paper should be submitted as per the agreed upon template and schedule
Refer to the template for Assignment #1
Assignment - 2 Sample
1. Performance - at least 3 popular applications
2. Scalability - at least 3 popular applications
3. Facebook - scalability
4. Agile and Architecture
5. Micro Services
6. Uber / Ola etc
7. Architecture For IOT
8. Architecture For Mobile
9. Architecture For Machine Learning
10. Architecture for Conferencing Platform
11. AWS Lambda
12. Architecture and NoSql DB
13. Architecting for cloud - trends
14. Compare cloud - Amazon / Azure / Google
15. YouTube / Netflix
Assignment - 2 Guidelines
Guidelines Guidelines for the paper
● You are not building an architecture • Intro
● You are studying what is happening • Scope / objective
around • Contents
● You must read many papers / case • References
studies
● You can do a Literature survey paper
● Key words
• Study
• Analyze strengths / weakness
• Compare
• Trend - what is driving the trends
Quiz 2
Sensors such as probes, gauges, meters, and others. They collect physical
parameters like temperature or humidity, turn them into electrical signals,
and send them to the IoT system. IoT sensors are typically small and
consume little power.
Actuators, translating electrical signals from the IoT system into physical
actions. Actuators are used in motor controllers, lasers, robotic arms.
Machines and devices connected to sensors and actuators or having them as
integral parts.
It’s important to note that the architecture puts no restriction on the scope of
its components or their location. The edge-side layer can include just a
few “things” physically placed in one room or myriads of sensors and
devices distributed across the world.
Connectivity
Connectivity
Connectivity
Connectivity - Protocols
Once parts of the IoT solution are networked, they still need messaging
protocols to share data across devices and with the cloud. The most
popular protocols used in the IoT ecosystems are:
DDS (the Data Distribution Service) which directly connects IoT things to
each other and to applications addressing the requirements of real-time
systems;
AMQP (the Advanced Message Queuing Protocol) aiming at peer-to-peer
data exchange between servers;
CoAP (the Constrained Application Protocol), a software protocol designed
for constrained devices — end nodes limited in memory and power (for
example, wireless sensors). It feels much like HTTP but uses fewer
resources;
MQTT (the Message Queue Telemetry Transport), a lightweight messaging
protocol built on top of TCP/IP stack for centralized data collection from
low-powered devices.
Edge or fog computing layer:
reducing system latency
Processing layer: making raw
data useful
The processing layer accumulates, stores, and processes
data that comes from the previous layer. All these tasks
are commonly handled via IoT platforms and include two
major stages.
Examples
Amazon Fulfillment Center
Google and Aravind Eye
BUSINESS IMPACT
INFUSE
PROCESS OPERATIONS PRINCIPLES
INSIGHTS
ORCHESTRATOR
OTHER ASSISTANT DISCOVERY OPEN
AI APPS
BUSINESS ANALYTICS
DATA CONSOLIDATION
OBJECT RDBMS DATA NoSQL OPERATIONAL EVENT DATA
STORAGE WAREHOUSE DATA STORE STORE SANDBOX
COLLECT
DATA DATA
VIRTUALIZATION INTEGRATION