0% found this document useful (0 votes)
11 views

How Software Works

The document outlines the architecture of software systems, detailing three layers: the Interface, Business Logic, and Data layers, along with their functions and components. It discusses communication methods between systems, including APIs, message queues, and EDI, as well as common issues associated with these methods. Additionally, it provides a structured approach for system integration projects, emphasizing the importance of domain knowledge and documentation.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views

How Software Works

The document outlines the architecture of software systems, detailing three layers: the Interface, Business Logic, and Data layers, along with their functions and components. It discusses communication methods between systems, including APIs, message queues, and EDI, as well as common issues associated with these methods. Additionally, it provides a structured approach for system integration projects, emphasizing the importance of domain knowledge and documentation.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 40

How Software Works

#TheGoodBA
Hanoi ~ 2023
1. 3 layers in software business architecture

2. How systems communicate

3. System Integration Project

4. Q&A
3 layers in software

business architecture
The Front
Diagram

Interface: Window Web MobileApp Marketplace

Business Logic: Domain (Entities, Flow, Report); Utilities (Log, Language, Ccy,
Datetime)

Data
Interface Layer

User Interface
- Mobile/Tablet/Web/Desktop
- Any I/O devices
System Interface
- API: https://shopify.dev/docs/api
- Webhook: https://shopify.dev/docs/api/admin-rest/2023-01/resources/webhook
Business Logic Layer
Business Domain
- Entities: People, Goods/Services, Transactions, Values
- Business Rules: Internal, External
- Business Processes: The processes that involve
- Business Intelligence: Data, Report, Insight
System/Common Utilities
- Logging/Audit Trail, Scheduler, Calendar/Datetime,
Currencies, Language, Security…
Data Layer
Data Storage
- Databases: SQL/Non-SQL
- Files/Documents: Media (Photo, Video), Spreadsheets…
Data ETL
- Extract - Transform - Load
- Distribution Flow
The Front

Source: Wiki - Multitier Architecture


How systems communicate
Common System Communication Methods

1. Realtime: API - Application Programming Interface (GRPC,

RPC, SOAP, REST, RESTful…), Webhook - Reverse API

2. Near-Realtime: MQ - Message Queue

3. Non-Realtime: EDI - Electronic Data Interchange: FTP/SFTP -

(Secured) File Transfer Protocol


API -
Application
Programming
Interface

An application programming interface is a way for two or more


computer programs to communicate with each other. It is a type of
software interface, offering a service to other pieces of software.
Source: Wiki
API
v.s
Webhook
API v.s Webhook
Common issues with API
1. Timeout: What is the timeout limit? What could be the cause of timeout? If
retry is implemented, how to avoid duplication?.
2. Validation: Whether the consumer app/end user is authorized to use the service
provided by the API? Whether the API inputs should be validated by the
consumer, or within the API?
3. Compatibility: When an API is upgraded, how will it affect the existing
consumers?
4. Rate Limit: How many requests an app or user can make within a given time
period?
5. Others:
MQ - Message Queue

Messaging means that programs communicate by sending each


other data in messages rather than calling each other directly.

Queuing means that messages are placed on queues in storage,


allowing programs to run independently of each other, at
different speeds and times, in different locations, and without
having a logical connection between them.

Source: IBM
MQ - Message Queue - Point to Point
MQ - Message Queue - Point to Point
Producers knows about consumer beforehand and only the specified consumer can consume
the message from the queue
MQ - Message Queue - Publish and Subscribe
MQ - Message Queue - Publish and Subscribe
Publisher has no knowledge of the receiver and it just publishes a message in the queue by
specifying a class or tag. Any receiver which has subscribed to that class or tag will receive the
message.
Common issues with message queues
Common issues with message queues
1. Message loss: Messages can be lost due to network failures, system overloaded,
system crashes, or other unexpected events.
2. Message sequence: In a distributed system, messages may not be received in
the same order they were sent, which can cause issues when processing the
messages.
3. Unmatched messages: messages that cannot be processed by the consuming
application due to errors such as missing mandatory fields, unmatched data
type/length, unmatched predefined data.
4. High latency: Queue-based systems can experience high latency due to long
processing times, large message sizes, or network congestion.
Message Queue - JSON Payload Sample
Physical Document Transfer
EDI - File Transfer (FTP/SFTP)
EDI - SWIFT
Which method to use?

1. Realtime: API - Application Programming Interface, RPC -

Remote Procedure Call

2. Realtime: Webhook - Reverse API

3. Near-Realtime: MQ - Message Queue

4. Non-Realtime: EDI - Electronic Data Interchange: FTP/SFTP


Integration Approach
Integration Application - Middleware

EAI: the unrestricted sharing of data and business processes among


any connected application or data sources in the enterprise - Gartner

iPaaS: a suite of cloud services enabling development, execution and


governance of integration flows connecting any combination of on
premises and cloud-based processes, services, applications and data
within individual or across multiple organizations. - Gartner
Integration Application - eCommerce
Integration Application - Banking
Integration Application - Types
System Integration Project
Steps to approach an Integration Project as a BA
1. Get domain knowledge

2. Find out and document the purpose and context of integration


3. List of applications: Name/Code, Roles, Developers (in-house/3rd party), API Document
Reference (if any), Stakeholders (decision maker, SME, business, technical)
4. Define high level system context & business processes that involves the applications in
step 3 (using context diagrams & sequence diagrams - use business language for
interactions)
5. Detail down the business processes with technical team using technical languages for
interactions
6. Repeat 4 & 5 with lots of reviews and get confirmations.

7. Compose a lists of changes required for each applications. This will be the project’s
scope/high level backlog
API Requirement
1. Business Purpose: what the service is used for, and what it does.
2. Context: the provider, consumers and the usage context of the service.
3. Request/Response: details of the service inputs/outputs fields, with clear
explanation of their meanings, data type/length, mandatory/optional, mapping,
predefined list of values…
4. Service Processing: what actions need to be taken within the provider
application upon receiving the service requests.
5. Error Codes: possible error codes and their meaning.
a. Business Errors: Validation, Business Logic
b. System Errors: Connection, Timeout, Duplication
6. Non-Functional Requirement: Security, Performance, handling Timeout…
7. Sample Request/Response
8. API Requirement v.s API Documentation
Message Queue Requirement
1. Business Purpose: what the message queue is used for, and what it does.
2. Type of queue: Point to Point or Publish/Subscribe
3. Trigger: what triggers the generation of the message.
4. Message Payload: details of the payload, with clear explanation of fields,
description, data type/length, mandatory/optional, mapping, accepted values.
5. Acknowledgement: from consumer/subscribers if any
6. Non-Functional Requirement: Security, Encryption, Performance, Handling
message loss/duplication…
7. Sample payload
A Sample Project
1. Business Purpose: Missy Fantastic is a fashion retailer who runs their business on
different unconnected applications. As the online business grows dramatically during
Covid, they need their applications connected so that they can improve their operational
productivity and speed to better serve their clients.
2. List of applications

Name Role Note

Missy Fantastic eCommerce website for online Sales 3rd party - Shopify Store
website

ePOS POS application used at their 2 physical Inhouse application developed by


stores for offline sales IT department

PeopleVox WMS Warehouse Management system for 3rd party - PeopleVox


stocking & fulfillment
Type of system
Application integration is the process of enabling individual applications—each designed for its
own specific purpose—to work with one another.

Provider Consumer

The application/system that The application/system that


provides a service or data that uses (consumes) services or
other systems need to use. data that are provided by
other systems.
sequencediagram.org

You might also like