SlideShare a Scribd company logo
| Experts Roadshow
Application
Architecture
Web & Mobile
| Experts
Roadshow
Rui
Coutinho
Architecture Domain Expert | OutSystems
@
in
rui.coutinho@outsystems.com
/rucoutinho
2
| Experts
Roadshow
Topics
1. Architecture principles
a. Architecture Framework
b. Architecture Design process
c. Let’s follow an example
d. 4 Layer Canvas Rules
e. Discovery
2. Mobile Architecture
a. Mindset
b. Top Principles
3
| Experts
Roadshow
Architecture principles
4
| Experts
Roadshow
Architecture Framework
aka, the 4 Layer Canvas
5
| Experts
Roadshow
Orchestration
Modules
End-user
Modules
Foundation
Modules
Core
Modules
The 4 layer canvas (4LC)
Multi-layer framework
● Supports Architecture Design
● Promotes correct abstraction of reusable services
● Independent Life cycles
6
| Experts
Roadshow
Orchestration
Modules
End-user
Modules
Foundation
Modules
Core
Modules Reusable
Services
The 4 layer canvas (4LC)
7
| Experts
Roadshow
Orchestration
Modules
End-user
Modules
Foundation
Modules
Core
Modules Reusable
Services Non-functional requirements
Services to connect to external systems or to
extend your framework
The 4 layer canvas (4LC)
8
| Experts
Roadshow
Orchestration
Modules
End-user
Modules
Foundation
Modules
Core
Modules
Non-functional requirements
Services to connect to external systems or to
extend your framework
The 4 layer canvas (4LC)
9
Reusable
Services
Business services
Services around business concepts
| Experts
Roadshow
Orchestration
Modules
End-user
Modules
Foundation
Modules
Core
Modules
Business services
Services around business concepts
Non-functional requirements
Services to connect to external systems or to
extend your framework
The 4 layer canvas (4LC)
10
No
Services
Reusable
Services
No
Services
| Experts
Roadshow
Orchestration
Modules
End-user
Modules
Foundation
Modules
Core
Modules
Business services
Services around business concepts
Non-functional requirements
Services to connect to external systems or to
extend your framework
The 4 layer canvas (4LC)
11
No
Services
Reusable
Services
No
Services
UI and processes
That provide functionality to the end users
| Experts
Roadshow
Orchestration
Modules
End-user
Modules
Foundation
Modules
Core
Modules
Business services
Services around business concepts
Non-functional requirements
Services to connect to external systems or to
extend your framework
The 4 layer canvas (4LC)
12
No
Services
Reusable
Services
No
Services
UI and processes
That provide functionality to the end users
Access Portals
Cross-application processes and dashboards
No
Services
| Experts
Roadshow
OutSystems
ESB
External
Producers Corporate
Databases
External
Consumers
13
OutSystems in the Enterprise Landscape
| Experts
Roadshow
OutSystems
ESB
External
Producers Corporate
Databases
Core ServicesExternal
Consumers NFRsIntegration Services
OutSystems in the Enterprise Landscape
14
| Experts
Roadshow
OutSystems
API
s
ESB
External
Producers
Intranet/extranet
users
Applications
Corporate
Databases
Core ServicesExternal
Consumers NFRsIntegration Services
15
OutSystems in the Enterprise Landscape
| Experts
Roadshow
Architecture
Design process
16
| Experts
Roadshow
Business, Business, Business!
Business drives the Architecture design:
● Translated business needs and concepts
● Scalable and independent per LOB
Approach
17
| Experts
Roadshow
Architecture design in 3 steps
Information
Architecture
User Stories
and Roles
Disclose business concepts and integration needs
18
| Experts
Roadshow
Architecture design in 3 steps
UX expectations
Information
Architecture
User Stories
and Roles
Integration
technology
Disclose business concepts and integration needs
19
| Experts
Roadshow
End-User
User processes
Claim handling
User
Management
Foundation
Integration needs & NFRs
ERP CRM Audit
Core Business
Business concepts
Customer Claim Contract Product
Architecture design in 3 steps
Orchestration
Access portals
Customer
Portal
Organize business concepts and integration needs
20
| Experts
Roadshow
Architecture design in 3 steps
Assemble by matching recommended architecture patterns
Assembling principles:
● Join concepts if they are conceptually related
● Don’t join concepts if they have different life cycles
● Isolate the reusable logic from all the integration logic
● Apply known design patterns
Customer_CS
Customer_IS
ERP
Customer _Sync
Synchronization with an
external system
21
| Experts
Roadshow
... to refine the
architecture, as you
disclose new concepts
and more details.
Iteration
22
Keep iterating these 3 steps...
| Experts
Roadshow
Let’s follow an example
23
Foundation
Modules
Core
Business
Modules
Orchestration
Modules
End User
Modules
4LC - “Pretty layout”
Foundation
Modules
Core
Business
Modules
Orchestration
Modules
End User
Modules
Let’s follow the architecture design for a
mobile app targeting event participants.
2424
Foundation
Modules
Core
Business
Modules
Orchestration
Modules
End User
Modules
Disclose & Organize
Register See Agenda Select favorites
2525
Foundation
Modules
Core
Business
Modules
Orchestration
Modules
End User
Modules
Disclose & Organize
Attendee
Register See Agenda Select favorites
Attendee
26
Foundation
Modules
Core
Business
Modules
Orchestration
Modules
End User
Modules
Disclose & Organize
Track
Attendee
Register See Agenda Select favorites
Track
Owner
Attendee
27
Foundation
Modules
Core
Business
Modules
Orchestration
Modules
End User
Modules
Disclose & Organize
Track
Attendee
Talk
Track
Owner
Speaker
Register See Agenda Select favorites
Attendee
28
Foundation
Modules
Core
Business
Modules
Orchestration
Modules
End User
Modules
Disclose & Organize
Event
Track
Attendee
Talk
Track
Owner
Speaker
Register See Agenda Select favorites
Attendee
29
Foundation
Modules
Core
Business
Modules
Orchestration
Modules
End User
Modules
Disclose & Organize
Event
Track
Attendee
Talk
Track
Owner
Speaker
TwitterFacebook
Register See Agenda Select favorites
Attendee
30
Foundation
Modules
Core
Business
Modules
Orchestration
Modules
End User
Modules
Disclose & Organize
Event
Track
Attendee
Talk
Track
Owner
Speaker
TwitterFacebook
Event
Planner
Register See Agenda Select favorites
Attendee Planner
31
Foundation
Modules
Core
Business
Modules
Orchestration
Modules
End User
Modules
Let’s Assemble
Event
Track
Attendee
Talk
Track
Owner
Speaker
TwitterFacebook
Event
Planner
Register See Agenda Select favorites
Attendee Planner
32
Foundation
Modules
Core
Business
Modules
Orchestration
Modules
End User
Modules
Next Step Mobile App
Assemble
Event
Track
Attendee
Talk
Track
Owner
Speaker
Event
Planner
TwitterFacebook
Register See Agenda Select favorites
Attendee Planner
33
Foundation
Modules
Core
Business
Modules
Orchestration
Modules
End User
Modules
Assemble
Event
Track
Attendee
Talk
Track
Owner
Speaker
Event
Planner
TwitterFacebook
NextStep
Attendee Planner
34
Foundation
Modules
Core
Business
Modules
Orchestration
Modules
End User
Modules
Assemble
Event
Track
Participant Attendee
Talk
Track
Owner
Speaker
Event
Planner
TwitterFacebook
NextStep
Attendee Planner
35
Foundation
Modules
Core
Business
Modules
Orchestration
Modules
End User
Modules
Assemble
Event
Track
Participant
CS
Talk
TwitterFacebook
Event
Planner
NextStep
CS: Core Service
Attendee Planner
36
Foundation
Modules
Core
Business
Modules
Orchestration
Modules
End User
Modules
Assemble
Track
Participant
CS
Talk
TwitterFacebook
Event
Planner
Event
NextStep
Attendee Planner
37
Foundation
Modules
Core
Business
Modules
Orchestration
Modules
End User
Modules
Assemble
Participant
CS
Talk
CS
Event
BL
Event
Planner
NextStep
TwitterFacebook
BL: Business Logic
Attendee Planner
38
Foundation
Modules
Core
Business
Modules
Orchestration
Modules
End User
Modules
Assemble
Event
Planner
TwitterFacebook
NextStep
Participant
CS
MyNextStep
MBL
Talk
CS
Event
BL
MBL: Mobile Business Logic
Attendee Planner
39
Foundation
Modules
Core
Business
Modules
Orchestration
Modules
End User
Modules
Assemble
TwitterFacebook
Facebook
Login Plugin
Event
Planner
NextStep
Participant
CS
Talk
CS
MyNextStep
MBL
Event
BL
Plugin: Mobile Plugin
Attendee Planner
40
Foundation
Modules
Core
Business
Modules
Orchestration
Modules
End User
Modules
Assemble
Twitter
IS
Facebook
IS
Facebook
Login Plugin
Event
Planner
NextStep
Participant
CS
Talk
CS
MyNextStep
MBL
Event
BL
IS: Integration Service
Attendee Planner
41
Foundation
Modules
Core
Business
Modules
Orchestration
Modules
End User
Modules
Assemble
Twitter
IS
Facebook
IS
Facebook
Login Plugin
NextStep
MTh
Planner
Th
Event
Planner
NextStep
Participant
CS
Talk
CS
MyNextStep
MBL
Event
BL
(M)Th: (Mobile) Theme
Attendee Planner
42
Foundation
Modules
Core
Business
Modules
Orchestration
Modules
End User
Modules
Architecture Blueprint
Twitter
IS
Facebook
IS
Facebook
Login Plugin
NextStep
MTh
Planner
Th
Event
Planner
NextStep
MyNextStep
MBL
Participant
CS
Talk
CS
Event
BL
Attendee Planner
43
| Experts
Roadshow
4 Layer Canvas
Rules
44
| Experts
Roadshow
Orchestration
Modules
End-user
Modules
Foundation
Modules
Core
Modules
Validation rules
B
EU1
A
X
EU2
EU2 became
dependent on this
cluster of
modules
45
No Upward
references
| Experts
Roadshow
Orchestration
Modules
End-user
Modules
Foundation
Modules
Core
Modules
Validation rules
No side references
on top 2 layers
B
EU1
A
X
EU2
C
Z
EU1 unnecessarily
inherits this
cluster
46
| Experts
Roadshow
Orchestration
Modules
End-user
Modules
Foundation
Modules
Core
Modules
Validation rules
A B
X Z
47
| Experts
Roadshow
Orchestration
Modules
End-user
Modules
Foundation
Modules
Core
Modules
Validation rules
• No Front-end screens
• Read-only entities
• No Business logic
• No core entities
No side references
on top 2 layers
No Upward
references
48
| Experts
Roadshow
Top Architecture mistakes
49
● End User modules providing reusable services
Prevent Application lifecycle independency, with complex deployment
● Lack of service abstraction around business concepts
Unmanageable dependencies and complex maintenance
● Cyclic references
Deployment and maintenance nightmare
● No abstraction of external integrations
Changes in external systems requires unexpected refactoring
| Experts
Roadshow
Discovery
50
| Experts
Roadshow
● Forge component
● Visually represents the 4LC
● Automatically validates the
dependency rules
https://www.outsystems.com/forge/component/409/discovery
Discovery
51
| Experts
Roadshow
Discovery overview
Classify the modules
according to their layer
52
| Experts
Roadshow
Discovery overview
Get a
comprehensive
explanation about
layers and violations.
Quickly spot
violations to the
module’s rules.
53
| Experts
Roadshow
Check module details
54
| Experts
Roadshow
Check consumers and producers
55
| Experts
Roadshow
Check violation details
56
| Experts
Roadshow
Mobile Architecture
57
| Experts
Roadshow
Mobile is NOT web!
Think less data and optimize per use case.
Disclaimer...
58
| Experts
Roadshow
Mindset
Web Vs Mobile
59
| Experts
Roadshow
60
Web Characteristics
| Experts
Roadshow
61
Mobile Characteristics
| Experts
Roadshow
Web Vs Mobile Mindset
62
Web
● Server-side Actions
● Responsive
● Only Online
● Limited plugins
Mobile
● Client Side Actions
● User Experience
● Local Storage + Offline
● Plugins
● IOS & Android
● Deploy in App Store
Based on server requests including
AJAX responsive patterns.
Depends heavily on the internet
connection.
Mobile-optimized performance.
App logic can run on the
device and the data exchange
with the server is reduced.
| Experts
Roadshow
Imagine it’s 2015...
... and you need to build a banking mobile app, that has two screens:
Account overview Account manager details
63
| Experts
Roadshow
Web implementation: screen load
RenderReady
Preparation elements
run in sequence
Preparation
64
| Experts
Roadshow
Mobile screen load: Web mindset
OnInitialize RenderReady
Use OnInitialize as a web Preparation
Incorrect approach
● App is unresponsive until the OnInitialize concludes
● Doesn’t take advantage of parallel execution
● TrueChange warnings were ignored
65
| Experts
Roadshow
Use OnReady as a web Preparation
Mobile screen load: Web mindset
OnInitialize RenderReady
Incorrect approach
● Same issues as using the OnInitialize action
66
| Experts
Roadshow
Mobile screen: What is the correct approach?
67
Use Fetch Data to retrieve content. Use On After Fetch event for post processing.
Data fetches are executed in parallel
Consider parallel data retrieval when designing your
local storage to optimize the screen data fetch.
| Experts
Roadshow
Mobile screen load: Correct approach
OnInitialize
DOM
Loading
Render
n #2
Render
GetBalance
OnAfterFetch
n #3
Render
n #1
Render
GetTransactions
OnAfterFetch
GetLocalAccount
GetBalance
#1
#2
#3
Ready
GetTransactions
Note that the screen render always uses the same action.
Be careful with any code placed here, as it may be running it
more than once.
68
| Experts
Roadshow
Mobile screen navigation
GetLocalAccountManagerPicture
#1
#2
On
Ready
GetLocalAccountManager
OnInitialize
#2 On
Render
#1 On
Render
On
Render
OnDestroy
(old screen)
Screen
transition
Don't forget to use OnDestroy event
to remove listeners and call destroy
action of 3rd-party components
Fetch Data from Local Storage is
also executed in parallel. Design
your local storage to avoid
dependencies.
69
| Experts
Roadshow
Top Principles
70
| Experts
Roadshow
Mobile Architecture Top Principles
71
Think lazy load
● Event driven
development
● Parallel data
fetch
Use local storage
● Think use case
● Optimize
content
Avoid server calls
● Expensive
● Bad User
Experience
| Experts
Roadshow
Think lazy load
72
| Experts
Roadshow
Event driven development Parallel data fetch
Think Lazy Load
73
| Experts
Roadshow
Mobile Events
74
OnInitialize
Occurs before navigating to the Screen and fetching
data.
OnReady
Occurs after the DOM is ready, before the transition
starts.
OnRender
Occurs right after the On Ready event handler and
every time the data changes.
OnAfterFetch
Occurs after an Aggregate or Data Action has finished
fetching data but before this data is rendered.
OnParametersChange
Occurs in a Block whenever the parent Screen/Block
input parameters are changed.
OnDestroy
Occurs before destroying a Screen/Block and
removing it from the DOM.
| Experts
Roadshow
● Design and display an empty
state image
○ While the dynamic content is being
fetched
● Choose images that assures a
smooth transition
○ Such as blurred gray line or a
spinner
Full Name
Contact
Address
Zip Code
First
Render
Content
Render
Empty state
75
| Experts
Roadshow
Prioritize Screen Content Rendering
76
● Display relevant content first
● Delay the rendering of the
secondary content
E.g.:
Display advertising banner
after the main information
| Experts
Roadshow
Optimize list load
77
● Fetch data on demand, not all
at once
● Use the On Scroll Ending event
to fetch the next set of records
Hint: Scaffold a list on a screen to understand
how the On Scroll Ending event works
| Experts
Roadshow
Optimize list load
78
● Avoid expanding content in the
list items
● Use UI patterns instead of
'Show All...' option
Master Detail
| Experts
Roadshow
Use Local Storage
79
| Experts
Roadshow
● Design local storage per end
user app
● Use Local Storage whenever
possible
■ Best for performance
■ Reduces the number of server calls
■ Offline Ready
Mobile
Agent
Accounts
Mobile
Banking
Banking
Core services
Customer Account
Plugin
Services
ID
Scanner
Fingerprint
reader
My account
Integration
Services
NFRs
MB_AccountMA_Account
Central storage
(server side)
Local storage
(mobile device)
Specific Local Storage
80
| Experts
Roadshow
Design a Lightweight Local Storage
81
● Don’t copy the server data
model
■ Denormalize the local storage
■ Group relevant information
■ Define only used attributes
● Don’t store too much data
■ Only relevant records
| Experts
Roadshow
Parallel Local Storage access
82
● Avoid table dependency
■ Denormalize to promotes parallel
data fetch
● Avoid generic tables
■ Contains too much data, not all
relevant
● Use Fetch Data
■ Avoid cascading aggregates in
OnInitialize and OnReady
| Experts
Roadshow
Avoid Server Calls
83
| Experts
Roadshow
● Online transactions
● Synchronization process
● Sensitive information
■ Optimize Server Data Fetch
Limit Server side calls
84
Mobile
Agent
Accounts
Mobile
Banking
Banking
Core services
Customer Account
Plugin
Services
ID
Scanner
Fingerprint
reader
My account
Integration
Services
NFRs
MB_AccountMA_Account
Central storage
(server side)
Local storage
(mobile device)
| Experts
Roadshow
● Security
■ Exposes internal services.
● Performance
■ Cannot cache/optimize information
at server side
● Maintainability
■ JS code is harder to maintain
No direct calls to backend systems
85
Mobile
Agent
Accounts
Mobile
Banking
Banking
Core services
Customer Account
Plugin
Services
ID
Scanner
Fingerprint
reader
My account
Integration
Services
NFRs
MB_AccountMA_Account
Backend systems
X
| Experts
Roadshow
● Use Entity Bulk Operations (built-in)
● Only synchronize deltas
■ Use control timestamps
● Only synchronize relevant data
■ Per business case
■ Think in terms of records (rows)
■ Think in terms of attributes (columns)
Synchronization Best Practices
86
| Experts
Roadshow
Sync only when required
■ At session start, sync summary data to local storage
■ At process start, sync process detail to local storage
■ At process/transaction end, sync back to server
Sync only what is strictly required
■ Both in terms of records (rows) and attributes (columns)
■ E.g.: On login sync accounts’ summary
On account selection, sync its details
Don’t sync on every screen or online event
Synchronization tips (1/2)
87
Mobile
Banking
Customer
Plugin
Services
ID Scanner
Fingerprint
reader
My account
Account
MB_Account
| Experts
Roadshow
Ensure sync granularity
■ Prepare for constant retries without repeating work (e.g.
network loss)
■ Sync in chunks, incremental by entity
● Avoid long synchronizations in a single transaction
■ Impacts UX - App becomes unresponsive
■ Not prepared for constant offline or device
standby
Synchronization tips (2/2)
88
Mobile
Banking
Customer
Plugin
Services
ID Scanner
Fingerprint
reader
My account
Account
MB_Account
| Experts
Roadshow
Wrap-up
89
| Experts
Roadshow
Do you want to learn more?
90
www.outsystems.com/learn
| Experts
Roadshow
Systematically use Discovery
Mobile is NOT web!
Apply the 4 Layer Canvas
Mobile is NOT web!
What do I hope you take home?
91
Thank You!
| Experts Roadshow

More Related Content

What's hot

Training Webinar: Top front-end techniques for OutSystems
 Training Webinar: Top front-end techniques for OutSystems Training Webinar: Top front-end techniques for OutSystems
Training Webinar: Top front-end techniques for OutSystems
OutSystems
 
OutSystems Tricks & Tips for Complex UI Integrations
OutSystems Tricks & Tips for Complex UI IntegrationsOutSystems Tricks & Tips for Complex UI Integrations
OutSystems Tricks & Tips for Complex UI Integrations
OutSystems
 
Training Webinar: Detect Performance Bottlenecks of Applications
Training Webinar: Detect Performance Bottlenecks of ApplicationsTraining Webinar: Detect Performance Bottlenecks of Applications
Training Webinar: Detect Performance Bottlenecks of Applications
OutSystems
 
0 to 60 With Outsystems
0 to 60 With Outsystems0 to 60 With Outsystems
0 to 60 With Outsystems
OutSystems
 
Growing and Scaling OutSystems
Growing and Scaling OutSystemsGrowing and Scaling OutSystems
Growing and Scaling OutSystems
OutSystems
 
Tenants: A Look Behind the Scenes
Tenants: A Look Behind the ScenesTenants: A Look Behind the Scenes
Tenants: A Look Behind the Scenes
OutSystems
 
OutSystems Webinar - Building a Live Style Guide
OutSystems Webinar - Building a Live Style GuideOutSystems Webinar - Building a Live Style Guide
OutSystems Webinar - Building a Live Style Guide
Daniel Reis
 
Using Processes and Timers for Long-Running Asynchronous Tasks
Using Processes and Timers for Long-Running Asynchronous TasksUsing Processes and Timers for Long-Running Asynchronous Tasks
Using Processes and Timers for Long-Running Asynchronous Tasks
OutSystems
 
Service Actions
Service ActionsService Actions
Service Actions
OutSystems
 
Extending OutSystems with Javascript
Extending OutSystems with JavascriptExtending OutSystems with Javascript
Extending OutSystems with Javascript
RitaDias72
 
Building CRUD Wrappers
Building CRUD WrappersBuilding CRUD Wrappers
Building CRUD Wrappers
OutSystems
 
OutSystems Platform Troubleshooting
OutSystems Platform TroubleshootingOutSystems Platform Troubleshooting
OutSystems Platform Troubleshooting
OutSystems Technical Knowledge
 
Automating Your Way to Greatness by Combining OutSystems CI/CD With the Power...
Automating Your Way to Greatness by Combining OutSystems CI/CD With the Power...Automating Your Way to Greatness by Combining OutSystems CI/CD With the Power...
Automating Your Way to Greatness by Combining OutSystems CI/CD With the Power...
OutSystems
 
BPM Patterns & Best Practices with OutSystems BPT
BPM Patterns & Best Practices with OutSystems BPTBPM Patterns & Best Practices with OutSystems BPT
BPM Patterns & Best Practices with OutSystems BPT
Gonçalo Borrêga
 
Launching a BPT Process on Entity Update
Launching a BPT Process on Entity UpdateLaunching a BPT Process on Entity Update
Launching a BPT Process on Entity Update
OutSystems
 
Integrate OutSystems With Office 365
Integrate OutSystems With Office 365Integrate OutSystems With Office 365
Integrate OutSystems With Office 365
OutSystems
 
Technical Webinar: By the (Play) Book: The Agile Practice at OutSystems
Technical Webinar: By the (Play) Book: The Agile Practice at OutSystemsTechnical Webinar: By the (Play) Book: The Agile Practice at OutSystems
Technical Webinar: By the (Play) Book: The Agile Practice at OutSystems
OutSystems
 
Testing With OutSystems
Testing With OutSystemsTesting With OutSystems
Testing With OutSystems
OutSystems
 
Hands on With Advanced Data Grid
Hands on With Advanced Data GridHands on With Advanced Data Grid
Hands on With Advanced Data Grid
OutSystems
 
Training Webinars - Secret hacks for OutSystems 10
Training Webinars - Secret hacks for OutSystems 10Training Webinars - Secret hacks for OutSystems 10
Training Webinars - Secret hacks for OutSystems 10
OutSystems
 

What's hot (20)

Training Webinar: Top front-end techniques for OutSystems
 Training Webinar: Top front-end techniques for OutSystems Training Webinar: Top front-end techniques for OutSystems
Training Webinar: Top front-end techniques for OutSystems
 
OutSystems Tricks & Tips for Complex UI Integrations
OutSystems Tricks & Tips for Complex UI IntegrationsOutSystems Tricks & Tips for Complex UI Integrations
OutSystems Tricks & Tips for Complex UI Integrations
 
Training Webinar: Detect Performance Bottlenecks of Applications
Training Webinar: Detect Performance Bottlenecks of ApplicationsTraining Webinar: Detect Performance Bottlenecks of Applications
Training Webinar: Detect Performance Bottlenecks of Applications
 
0 to 60 With Outsystems
0 to 60 With Outsystems0 to 60 With Outsystems
0 to 60 With Outsystems
 
Growing and Scaling OutSystems
Growing and Scaling OutSystemsGrowing and Scaling OutSystems
Growing and Scaling OutSystems
 
Tenants: A Look Behind the Scenes
Tenants: A Look Behind the ScenesTenants: A Look Behind the Scenes
Tenants: A Look Behind the Scenes
 
OutSystems Webinar - Building a Live Style Guide
OutSystems Webinar - Building a Live Style GuideOutSystems Webinar - Building a Live Style Guide
OutSystems Webinar - Building a Live Style Guide
 
Using Processes and Timers for Long-Running Asynchronous Tasks
Using Processes and Timers for Long-Running Asynchronous TasksUsing Processes and Timers for Long-Running Asynchronous Tasks
Using Processes and Timers for Long-Running Asynchronous Tasks
 
Service Actions
Service ActionsService Actions
Service Actions
 
Extending OutSystems with Javascript
Extending OutSystems with JavascriptExtending OutSystems with Javascript
Extending OutSystems with Javascript
 
Building CRUD Wrappers
Building CRUD WrappersBuilding CRUD Wrappers
Building CRUD Wrappers
 
OutSystems Platform Troubleshooting
OutSystems Platform TroubleshootingOutSystems Platform Troubleshooting
OutSystems Platform Troubleshooting
 
Automating Your Way to Greatness by Combining OutSystems CI/CD With the Power...
Automating Your Way to Greatness by Combining OutSystems CI/CD With the Power...Automating Your Way to Greatness by Combining OutSystems CI/CD With the Power...
Automating Your Way to Greatness by Combining OutSystems CI/CD With the Power...
 
BPM Patterns & Best Practices with OutSystems BPT
BPM Patterns & Best Practices with OutSystems BPTBPM Patterns & Best Practices with OutSystems BPT
BPM Patterns & Best Practices with OutSystems BPT
 
Launching a BPT Process on Entity Update
Launching a BPT Process on Entity UpdateLaunching a BPT Process on Entity Update
Launching a BPT Process on Entity Update
 
Integrate OutSystems With Office 365
Integrate OutSystems With Office 365Integrate OutSystems With Office 365
Integrate OutSystems With Office 365
 
Technical Webinar: By the (Play) Book: The Agile Practice at OutSystems
Technical Webinar: By the (Play) Book: The Agile Practice at OutSystemsTechnical Webinar: By the (Play) Book: The Agile Practice at OutSystems
Technical Webinar: By the (Play) Book: The Agile Practice at OutSystems
 
Testing With OutSystems
Testing With OutSystemsTesting With OutSystems
Testing With OutSystems
 
Hands on With Advanced Data Grid
Hands on With Advanced Data GridHands on With Advanced Data Grid
Hands on With Advanced Data Grid
 
Training Webinars - Secret hacks for OutSystems 10
Training Webinars - Secret hacks for OutSystems 10Training Webinars - Secret hacks for OutSystems 10
Training Webinars - Secret hacks for OutSystems 10
 

Similar to Architecture 101 + Libraries

Training Webinar: Fitting OutSystems applications into Enterprise Architecture
Training Webinar: Fitting OutSystems applications into Enterprise ArchitectureTraining Webinar: Fitting OutSystems applications into Enterprise Architecture
Training Webinar: Fitting OutSystems applications into Enterprise Architecture
OutSystems
 
Importance of Solution Architecture in Automation
Importance of Solution Architecture in AutomationImportance of Solution Architecture in Automation
Importance of Solution Architecture in Automation
Cristina Vidu
 
VisualOomph design portfolio
VisualOomph design portfolioVisualOomph design portfolio
VisualOomph design portfolio
Kumar Kolaganti
 
System Architect and Rhapsody
System Architect and RhapsodySystem Architect and Rhapsody
System Architect and Rhapsody
Martin Owen
 
Conteneo Weave Overview
Conteneo Weave OverviewConteneo Weave Overview
Conteneo Weave Overview
Luke Hohmann
 
Software requirements
Software requirementsSoftware requirements
Software requirements
IAMCP MENTORING
 
Solution Design & Architecture.pptx
Solution Design & Architecture.pptxSolution Design & Architecture.pptx
Solution Design & Architecture.pptx
NikhileshSathyavarap
 
ASAP_Methodology.pptx
ASAP_Methodology.pptxASAP_Methodology.pptx
ASAP_Methodology.pptx
SridharSridhar314797
 
UiPath Denver chapter- How to be a solution architect
UiPath Denver chapter- How to be a solution architectUiPath Denver chapter- How to be a solution architect
UiPath Denver chapter- How to be a solution architect
sharonP24
 
Improving the User Experience of UiPath Apps
Improving the User Experience of UiPath AppsImproving the User Experience of UiPath Apps
Improving the User Experience of UiPath Apps
DianaGray10
 
Smarter Integration Using the IBM SOA Foundation Stack: Best Practices and Le...
Smarter Integration Using the IBM SOA Foundation Stack: Best Practices and Le...Smarter Integration Using the IBM SOA Foundation Stack: Best Practices and Le...
Smarter Integration Using the IBM SOA Foundation Stack: Best Practices and Le...
Prolifics
 
Danforth Media Capabilities
Danforth Media CapabilitiesDanforth Media Capabilities
Danforth Media Capabilities
Danforth
 
SAPience UserDay 2015 TheValueChain UMICORE sap_building_blocks
SAPience UserDay 2015 TheValueChain UMICORE sap_building_blocksSAPience UserDay 2015 TheValueChain UMICORE sap_building_blocks
SAPience UserDay 2015 TheValueChain UMICORE sap_building_blocks
TheValueChain
 
Progettare la propria strategia di BPM per Alfresco Process Services
Progettare la propria strategia di BPM per Alfresco Process ServicesProgettare la propria strategia di BPM per Alfresco Process Services
Progettare la propria strategia di BPM per Alfresco Process Services
Commit University
 
Design your own BPM Program Strategy with Alfresco Process Services
Design your own BPM Program Strategy with Alfresco Process ServicesDesign your own BPM Program Strategy with Alfresco Process Services
Design your own BPM Program Strategy with Alfresco Process Services
Piergiorgio Lucidi
 
Understanding and Applying The Open Group Architecture Framework (TOGAF)
Understanding and Applying The Open Group Architecture Framework (TOGAF)Understanding and Applying The Open Group Architecture Framework (TOGAF)
Understanding and Applying The Open Group Architecture Framework (TOGAF)Nathaniel Palmer
 
Understanding and Applying The Open Group Architecture Framework (TOGAF)
Understanding and Applying The Open Group Architecture Framework (TOGAF)Understanding and Applying The Open Group Architecture Framework (TOGAF)
Understanding and Applying The Open Group Architecture Framework (TOGAF)Nathaniel Palmer
 
Mulesoft Milano meetup #6 Florence Consulting
Mulesoft Milano meetup #6 Florence ConsultingMulesoft Milano meetup #6 Florence Consulting
Mulesoft Milano meetup #6 Florence Consulting
Florence Consulting
 
Orchestration, Automation and Virtualisation Maturity Model
Orchestration, Automation and Virtualisation Maturity ModelOrchestration, Automation and Virtualisation Maturity Model
Orchestration, Automation and Virtualisation Maturity Model
CSUC - Consorci de Serveis Universitaris de Catalunya
 
UiPath rpa developer best practices
UiPath rpa developer best practicesUiPath rpa developer best practices
UiPath rpa developer best practices
UiPath
 

Similar to Architecture 101 + Libraries (20)

Training Webinar: Fitting OutSystems applications into Enterprise Architecture
Training Webinar: Fitting OutSystems applications into Enterprise ArchitectureTraining Webinar: Fitting OutSystems applications into Enterprise Architecture
Training Webinar: Fitting OutSystems applications into Enterprise Architecture
 
Importance of Solution Architecture in Automation
Importance of Solution Architecture in AutomationImportance of Solution Architecture in Automation
Importance of Solution Architecture in Automation
 
VisualOomph design portfolio
VisualOomph design portfolioVisualOomph design portfolio
VisualOomph design portfolio
 
System Architect and Rhapsody
System Architect and RhapsodySystem Architect and Rhapsody
System Architect and Rhapsody
 
Conteneo Weave Overview
Conteneo Weave OverviewConteneo Weave Overview
Conteneo Weave Overview
 
Software requirements
Software requirementsSoftware requirements
Software requirements
 
Solution Design & Architecture.pptx
Solution Design & Architecture.pptxSolution Design & Architecture.pptx
Solution Design & Architecture.pptx
 
ASAP_Methodology.pptx
ASAP_Methodology.pptxASAP_Methodology.pptx
ASAP_Methodology.pptx
 
UiPath Denver chapter- How to be a solution architect
UiPath Denver chapter- How to be a solution architectUiPath Denver chapter- How to be a solution architect
UiPath Denver chapter- How to be a solution architect
 
Improving the User Experience of UiPath Apps
Improving the User Experience of UiPath AppsImproving the User Experience of UiPath Apps
Improving the User Experience of UiPath Apps
 
Smarter Integration Using the IBM SOA Foundation Stack: Best Practices and Le...
Smarter Integration Using the IBM SOA Foundation Stack: Best Practices and Le...Smarter Integration Using the IBM SOA Foundation Stack: Best Practices and Le...
Smarter Integration Using the IBM SOA Foundation Stack: Best Practices and Le...
 
Danforth Media Capabilities
Danforth Media CapabilitiesDanforth Media Capabilities
Danforth Media Capabilities
 
SAPience UserDay 2015 TheValueChain UMICORE sap_building_blocks
SAPience UserDay 2015 TheValueChain UMICORE sap_building_blocksSAPience UserDay 2015 TheValueChain UMICORE sap_building_blocks
SAPience UserDay 2015 TheValueChain UMICORE sap_building_blocks
 
Progettare la propria strategia di BPM per Alfresco Process Services
Progettare la propria strategia di BPM per Alfresco Process ServicesProgettare la propria strategia di BPM per Alfresco Process Services
Progettare la propria strategia di BPM per Alfresco Process Services
 
Design your own BPM Program Strategy with Alfresco Process Services
Design your own BPM Program Strategy with Alfresco Process ServicesDesign your own BPM Program Strategy with Alfresco Process Services
Design your own BPM Program Strategy with Alfresco Process Services
 
Understanding and Applying The Open Group Architecture Framework (TOGAF)
Understanding and Applying The Open Group Architecture Framework (TOGAF)Understanding and Applying The Open Group Architecture Framework (TOGAF)
Understanding and Applying The Open Group Architecture Framework (TOGAF)
 
Understanding and Applying The Open Group Architecture Framework (TOGAF)
Understanding and Applying The Open Group Architecture Framework (TOGAF)Understanding and Applying The Open Group Architecture Framework (TOGAF)
Understanding and Applying The Open Group Architecture Framework (TOGAF)
 
Mulesoft Milano meetup #6 Florence Consulting
Mulesoft Milano meetup #6 Florence ConsultingMulesoft Milano meetup #6 Florence Consulting
Mulesoft Milano meetup #6 Florence Consulting
 
Orchestration, Automation and Virtualisation Maturity Model
Orchestration, Automation and Virtualisation Maturity ModelOrchestration, Automation and Virtualisation Maturity Model
Orchestration, Automation and Virtualisation Maturity Model
 
UiPath rpa developer best practices
UiPath rpa developer best practicesUiPath rpa developer best practices
UiPath rpa developer best practices
 

More from OutSystems

Innovating at the Speed of Business in the High-Bandwidth World of Digital Media
Innovating at the Speed of Business in the High-Bandwidth World of Digital MediaInnovating at the Speed of Business in the High-Bandwidth World of Digital Media
Innovating at the Speed of Business in the High-Bandwidth World of Digital Media
OutSystems
 
Beyond “Location”: Informing Real-Estate Decisions Through Innovative Technology
Beyond “Location”: Informing Real-Estate Decisions Through Innovative TechnologyBeyond “Location”: Informing Real-Estate Decisions Through Innovative Technology
Beyond “Location”: Informing Real-Estate Decisions Through Innovative Technology
OutSystems
 
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...
OutSystems
 
From Core Systems to Mobile Apps: Digital Transformation from the Inside-Out
From Core Systems to Mobile Apps: Digital Transformation from the Inside-OutFrom Core Systems to Mobile Apps: Digital Transformation from the Inside-Out
From Core Systems to Mobile Apps: Digital Transformation from the Inside-Out
OutSystems
 
Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...
Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...
Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...
OutSystems
 
Fast and Furious: Modernizing Clinical Application
Fast and Furious: Modernizing Clinical ApplicationFast and Furious: Modernizing Clinical Application
Fast and Furious: Modernizing Clinical Application
OutSystems
 
Enrich Visually Google Map Information With Layers
Enrich Visually Google Map Information With LayersEnrich Visually Google Map Information With Layers
Enrich Visually Google Map Information With Layers
OutSystems
 
Speed up Development by Turning Web Blocks Into First-Class Citizens
Speed up Development by Turning Web Blocks Into First-Class CitizensSpeed up Development by Turning Web Blocks Into First-Class Citizens
Speed up Development by Turning Web Blocks Into First-Class Citizens
OutSystems
 
Responsive Ui with Realtime Database
Responsive Ui with Realtime DatabaseResponsive Ui with Realtime Database
Responsive Ui with Realtime Database
OutSystems
 
RADS - Rapid Application Design Sprint
RADS - Rapid Application Design SprintRADS - Rapid Application Design Sprint
RADS - Rapid Application Design Sprint
OutSystems
 
Pragmatic Innovation
Pragmatic InnovationPragmatic Innovation
Pragmatic Innovation
OutSystems
 
Troubleshooting Dashboard Performance
Troubleshooting Dashboard PerformanceTroubleshooting Dashboard Performance
Troubleshooting Dashboard Performance
OutSystems
 
No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...
No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...
No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...
OutSystems
 
Neo in Wonderland: Essential Tools for an Outsystems Architect
Neo in Wonderland: Essential Tools for an Outsystems ArchitectNeo in Wonderland: Essential Tools for an Outsystems Architect
Neo in Wonderland: Essential Tools for an Outsystems Architect
OutSystems
 
Measure Customer Experience of Your OutSystems Web and Mobile Applications
Measure Customer Experience of Your OutSystems Web and Mobile ApplicationsMeasure Customer Experience of Your OutSystems Web and Mobile Applications
Measure Customer Experience of Your OutSystems Web and Mobile Applications
OutSystems
 
Link Users to Your Specific Page in a Mobile App With Deeplinks
Link Users to Your Specific Page in a Mobile App With DeeplinksLink Users to Your Specific Page in a Mobile App With Deeplinks
Link Users to Your Specific Page in a Mobile App With Deeplinks
OutSystems
 
Setting up a Tech Innovation Lab in a Traditional Grocery Retail Environment
Setting up a Tech Innovation Lab in a Traditional Grocery Retail EnvironmentSetting up a Tech Innovation Lab in a Traditional Grocery Retail Environment
Setting up a Tech Innovation Lab in a Traditional Grocery Retail Environment
OutSystems
 
Intro to the Data Grid
Intro to the Data GridIntro to the Data Grid
Intro to the Data Grid
OutSystems
 
How to Attract and Train Talent in Highly Competitive Markets
How to Attract and Train Talent in Highly Competitive MarketsHow to Attract and Train Talent in Highly Competitive Markets
How to Attract and Train Talent in Highly Competitive Markets
OutSystems
 

More from OutSystems (19)

Innovating at the Speed of Business in the High-Bandwidth World of Digital Media
Innovating at the Speed of Business in the High-Bandwidth World of Digital MediaInnovating at the Speed of Business in the High-Bandwidth World of Digital Media
Innovating at the Speed of Business in the High-Bandwidth World of Digital Media
 
Beyond “Location”: Informing Real-Estate Decisions Through Innovative Technology
Beyond “Location”: Informing Real-Estate Decisions Through Innovative TechnologyBeyond “Location”: Informing Real-Estate Decisions Through Innovative Technology
Beyond “Location”: Informing Real-Estate Decisions Through Innovative Technology
 
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...
 
From Core Systems to Mobile Apps: Digital Transformation from the Inside-Out
From Core Systems to Mobile Apps: Digital Transformation from the Inside-OutFrom Core Systems to Mobile Apps: Digital Transformation from the Inside-Out
From Core Systems to Mobile Apps: Digital Transformation from the Inside-Out
 
Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...
Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...
Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...
 
Fast and Furious: Modernizing Clinical Application
Fast and Furious: Modernizing Clinical ApplicationFast and Furious: Modernizing Clinical Application
Fast and Furious: Modernizing Clinical Application
 
Enrich Visually Google Map Information With Layers
Enrich Visually Google Map Information With LayersEnrich Visually Google Map Information With Layers
Enrich Visually Google Map Information With Layers
 
Speed up Development by Turning Web Blocks Into First-Class Citizens
Speed up Development by Turning Web Blocks Into First-Class CitizensSpeed up Development by Turning Web Blocks Into First-Class Citizens
Speed up Development by Turning Web Blocks Into First-Class Citizens
 
Responsive Ui with Realtime Database
Responsive Ui with Realtime DatabaseResponsive Ui with Realtime Database
Responsive Ui with Realtime Database
 
RADS - Rapid Application Design Sprint
RADS - Rapid Application Design SprintRADS - Rapid Application Design Sprint
RADS - Rapid Application Design Sprint
 
Pragmatic Innovation
Pragmatic InnovationPragmatic Innovation
Pragmatic Innovation
 
Troubleshooting Dashboard Performance
Troubleshooting Dashboard PerformanceTroubleshooting Dashboard Performance
Troubleshooting Dashboard Performance
 
No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...
No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...
No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...
 
Neo in Wonderland: Essential Tools for an Outsystems Architect
Neo in Wonderland: Essential Tools for an Outsystems ArchitectNeo in Wonderland: Essential Tools for an Outsystems Architect
Neo in Wonderland: Essential Tools for an Outsystems Architect
 
Measure Customer Experience of Your OutSystems Web and Mobile Applications
Measure Customer Experience of Your OutSystems Web and Mobile ApplicationsMeasure Customer Experience of Your OutSystems Web and Mobile Applications
Measure Customer Experience of Your OutSystems Web and Mobile Applications
 
Link Users to Your Specific Page in a Mobile App With Deeplinks
Link Users to Your Specific Page in a Mobile App With DeeplinksLink Users to Your Specific Page in a Mobile App With Deeplinks
Link Users to Your Specific Page in a Mobile App With Deeplinks
 
Setting up a Tech Innovation Lab in a Traditional Grocery Retail Environment
Setting up a Tech Innovation Lab in a Traditional Grocery Retail EnvironmentSetting up a Tech Innovation Lab in a Traditional Grocery Retail Environment
Setting up a Tech Innovation Lab in a Traditional Grocery Retail Environment
 
Intro to the Data Grid
Intro to the Data GridIntro to the Data Grid
Intro to the Data Grid
 
How to Attract and Train Talent in Highly Competitive Markets
How to Attract and Train Talent in Highly Competitive MarketsHow to Attract and Train Talent in Highly Competitive Markets
How to Attract and Train Talent in Highly Competitive Markets
 

Recently uploaded

Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
XfilesPro
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
Peter Caitens
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
Jelle | Nordend
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
MayankTawar1
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 

Recently uploaded (20)

Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 

Architecture 101 + Libraries

Editor's Notes

  1. Name Experience Role
  2. Benefits: Supports Architecture Design, providing a systematic approach that speeds up architecture design Minimizes impact of changes across modules → easier to maintain and evolve Independent life cycles, by reducing dependencies among each other
  3. Foundation services Business agnostic, reusable, non-functional modules Connect to external systems - SAP, External database Extend our framework - Libraries Reusable UI patterns - carrousel NFR - auditing
  4. Core Services Reusable services around business concepts. Business entities, business rules, and business widgets. Systems agnostic Foundation modules abstract the integration details
  5. These top two layers provide no services: Expose functionality and allow users to interact with your systems
  6. Support user interaction. User interfaces and processes, reusing Core and Library services to implement the user stories
  7. Cross application orchestration. Processes, dashboards and portal homepages, mashing up information from different applications to provide a unified user experience
  8. OutSystems is just another technology in your IT ecosystem Based on standard technology - IIS, .Net, SQL Server / Oracle, ... You may integration OutSystems with/to any other system
  9. Integration Services A Technical wrapper of external producers, normalizing data structures and abstracting integration complexity (error handling, authentication, etc.). No business logic should be placed at this level Non Functional Requirements Non-business functionality, reusable across any business domain, like an Audit Trail, UI Patterns, Style guides, Google maps ... Core Services Implementation of a reusable core concept, with all the business rules and core entities
  10. Public APIs Composition of APIs that exposes the Services to external consumers - using REST, SOAP or other. No business logic is added at this level → technical wrapper to the real services implemented in the Core Services layer, translating those services to the aggreed contract These 2 layers ensure my architecture survives: if we replace an external producer, there’s no impact on the core services (we only have to change the Foundation). As a final note, the 4LC is not limited to 4 layers as each layer may be broken down into sub-layers.
  11. Business oriented architecture allows us to evolve and scale up with business, while ensuring independent life cycles between different LOB Only afterward it thinks about IT, by mapping the concepts into architecture patterns and promoting code reusability.
  12. Business alignment Identify relevant User Stories for each Role Information Architecture Identify the Information Architecture recognized by business users Get the right names and hierarchy
  13. Integration impacts Disclose unknown features of the involved technology E.g., API is not stateless, and the communication protocol requires custom certification User experience Manage expectation Accessibility requirements Get as many concepts as possible - missing a concept might compromise the future of your applications
  14. A way to use the canvas to organize the disclosed concepts is to place each type of concept in the layer where it has an impact on. Examples of business elements: Core elements (Customers, Products) Composition of core elements (Contract) Represent an end user flow and complex business process (Claim handling)
  15. We are going to iterate through the 3 process steps: Disclose, Organize and Assemble
  16. Mobile app for events: Register for the event See the event agenda Select your favorite talks
  17. Every event has attendees… hopefully lots of them!
  18. The event is organized into tracks, each one with an owner
  19. A Track has Talks, and each talk has one or more speakers.
  20. The event is a concept that composes all the other concepts. It stores several events and their agenda, including the tracks, talks, start and end dates, schedule, and location of each talk.
  21. The app allows interacting with social media (Facebook or Twitter) and sharing the coolest moments.
  22. We also need a backoffice, to plan and organize the event (web application).
  23. Note no orchestration is required. Next step is to go over the assemble. Note that only now, we re going to think on how these concepts will translate into modules and dive into the technical side.
  24. These processes will be available in the mobile app
  25. Let’s group concepts: These are participants, with different roles. A speaker may also be an attendee in other talks. The app is targeted only for attendees.
  26. A Track is part of an Event - these are unbreakable concepts. A Track will contain an owner, a group of Talks, a schedule and room per talk. Event will define a group of tracks, an event venue, an overall start and end date. Note that we don’t group Talks into Event, because Talks can be reused in different contexts of an event. E.g.: It may be available at an online knowledge base.
  27. MyNextStep contains the mobile local storage: personal event plan attendee global agenda track and talks info Please check the mobile architecture session to learn more about mobile patterns.
  28. NFR: Authentication is done on the mobile device through Facebook. For this purpose, let's use a mobile plugin existing on Forge, called Facebook Login Plugin.
  29. The Facebook and Twitter modules provide the functionality that allows users to retrieve publications and to publish. This is done through integration services, on the server side, so that web applications can also reuse it.
  30. Finally, the theme modules are added.
  31. A Library is non-functional, and should not depend on functional or end-user modules.
  32. Read-only entities This best practice ensures that the write operations are controlled by the module in which the entity is defined. Useful, for example, to ensure that all the write operations are logged. Other modules can read data at will.
  33. Make sure to keep your version up-to-date.
  34. How many of you actually use and keep the modules classified? Mention automatic classification per convention (configurable).
  35. You can use Discovery to understand our entire application architecture.
  36. Mobile importance is growing, so I want to dedicate part of this talk to mobile.
  37. If you try to build your mobile app with an web mindset, you will fail. OutSystems speeds up mobile development, but if it’s implemented using the same principles as web, you will fail… faster. Mobile has specificifies that both architects and developers must take into consideration. User adoption is key: do not disregard performance and usability.
  38. Mobile importance is growing, so I want to dedicate part of this talk to mobile. You have more about architecture on our online content, such as Application Composition. I will also cover this in the workshops.
  39. Web Server-side Actions Responsive Only Online Limited plugins
  40. Mobile Client Side Actions User Experience Offline Local Storage Plugins IOS & Android Deploy in App Store
  41. How developers tend to implement, keeping web mindset
  42. Note: The screen can be further optimized, as the two server calls can be grouped into a single call. However, this example will keep them separate, as the main goal is to illustrate multiple possibilities.
  43. Mobile importance is growing, so I want to dedicate part of this talk to mobile. You have more about architecture on our online content, such as Application Composition. I will also cover this in the workshops.
  44. “Think Less Data” is the main mindset, crucial to ensure a performant and scalable mobile app Keep data to the minimum: optimize data loaded into the mobile device according to the use case Clean unused data: remove legacy code - same is valid for unused scripts and plugins Optimize resources: image size and scripts
  45. Two pillars: Use available mobile events and fetch data in parallel as much as possible
  46. Online documentation provides more details about each event, including use cases https://success.outsystems.com/Documentation/10/Developing_an_Application/Implement_Application_Logic/Screen_and_Block_Lifecycle_Events#Lifecycle_Event_Handlers
  47. When a user navigates to a screen, the static content is usually rendered first, while the dynamic content takes more time since it is fetched asynchronously. This results in a poor UI experience, where an apparently incomplete screen is displayed with content moving around while the dynamic data is being rendered. Avoids flickering when the empty state turns into the fetched content
  48. Place the secondary content in a Block inside an IF True branch On the False branch, place an empty state Set the If condition variable to False by default On Render event of the screen, set the variable to True
  49. Scroll threshold triggers fetching new items is the distance in pixels before the scroll hits the end. Recommendation is 2000 pixels: tune it by adding the attribute infinite-scroll-threshold to the list widget with a new integer value in pixels Users should never hit a loading wall at the end of a list
  50. 'Show All...' link impacts the behavior of the list while rendering
  51. First make sure you are allow to use Local storage!
  52. https://success.outsystems.com/Documentation/Best_Practices/OutSystems_Mobile_Best_Practices#Design_a_Lightweight_Local_Storage
  53. In order to be able to use the Fetch Data actions, you have to keep your local storage independent. It’s advisable to denormalize the database model, even if it duplicates data in the local storage.
  54. Synchronization process must be adjusted to the data lifecycle and the number of sync points should be minimized Sensitive information, such as bank account information, cannot be stored into the device - not even if it’s stored encrypted. It implies constant server calls to retrieve and display the information. When not dealing with sensitive information, cache all data in Local Storage, for performance (less server calls) and promote offline.
  55. Long synchronizations in a single transaction is not compatible with Device standby or constant offline periods Default Timeout in Server Calls in Mobile Apps is 10s
  56. Go to OutSystems site and learn more about architecture: Application composition Advanced patterns, such as multi-layer cache and massive batch processing
  57. You have more about architecture on our online content, such as Application Composition, integration patterns, … Think less data and optimize per use case.