Fitting OutSystems applications into Enterprise Architecture

45
Fitting OutSystems applications into Enterprise Architecture Architecture Webinar Francisco Menezes 1 Webinar / September 1st 2016

Transcript of Fitting OutSystems applications into Enterprise Architecture

Page 1: Fitting OutSystems applications into Enterprise Architecture

Fitting OutSystems applications into Enterprise ArchitectureArchitecture WebinarFrancisco Menezes

1Webinar / September 1st 2016

Page 2: Fitting OutSystems applications into Enterprise Architecture

Replace This image in master

About me

OutSystems Experts Architect

Francisco Menezes

[email protected]

2

Page 3: Fitting OutSystems applications into Enterprise Architecture

3

Learn how to build a Flexible and Cost-effective Solution Architecture aligned with Business concepts

G al

Page 4: Fitting OutSystems applications into Enterprise Architecture

OrchestrationModules

End UserModules

Core BusinessModules

LibraryModules

Reusable

Services

No

Services

The 4 layers canvas (4LC)

UI and processesThat provide functionality to end users

Access PortalsCross-application processes and dashboards

Business servicesServices around business concepts

Non functional requirementsservices to connect to external systems or to

extend your framework

4

Page 5: Fitting OutSystems applications into Enterprise Architecture

Speeds up architecture designwith a systematic approach

Why use the Canvas?

Common understandingbetween all Business users and Developers

Easy to validatesupported by a tool

5

Page 6: Fitting OutSystems applications into Enterprise Architecture

ESB

OutSystems

External Producers

Microsites

Intranet/extranet users

Applications

Corporate Databases

ServicesExternal Consumers

External Portals

6

Page 7: Fitting OutSystems applications into Enterprise Architecture

Services architecture

CRM ERP CMS

OutSystems Services

ExternalAPI

CoreServices

IntegrationServices

Customer_CSContract_CS

Sales_API

Order_CS Product_CS

Corporate DB

External Consumer

Catalog_API

Customer_IS Order_IS

OutSystems Consumer

Product_IS

7

Page 8: Fitting OutSystems applications into Enterprise Architecture

Service patterns

Customer_CS

Customer_IS

ERP

External Core Service (ECS)

ECS with local replica

ECS with isolated synchronization logic

Customer_CS

Customer_IS

ERP

Customer_CS

Customer_IS

ERP

Customer _Sync Customer_CS

ERP2 SaaSERP1

ERP1_IS ERP2_IS SaaS_IS

Customer_Sync

Transparencyservice

8

Page 9: Fitting OutSystems applications into Enterprise Architecture

Architecture design processKeep iterating 3 steps to refine the architecture using the canvas

Page 10: Fitting OutSystems applications into Enterprise Architecture

Keep iterating 3 steps to refine the architecture using the canvas, as new concepts and more details are disclosed

Architecture design in 3 steps

10

Page 11: Fitting OutSystems applications into Enterprise Architecture

business concepts and integration needs

Integration technology

User Stories and Roles

Points:13Must Have

Information Architecture

UX expectations

1. Disclose

Architecture design in 3 steps

11

Page 12: Fitting OutSystems applications into Enterprise Architecture

concepts on the canvas1. Disclose 2. Organize

Architecture design in 3 steps

AccessPortals Site Call Center Backoffice

UserProcesses

Customer management

Claim handling Analytics

BusinessConcepts

Customer Claim Contract Product

Integration& NFRs

ERP CRM Audit ACL12

Page 13: Fitting OutSystems applications into Enterprise Architecture

1. Disclose 2. Organize 3. AssembleMatching recommended patterns

Architecture design in 3 steps

Customer_CS

Customer_IS

ERP

Customer _SyncPortal

App1 App2

Theme13

Page 14: Fitting OutSystems applications into Enterprise Architecture

Architecture design processLet’s follow an example

Page 15: Fitting OutSystems applications into Enterprise Architecture

OrchestrationModules

End UserModules

CoreBusinessModules

LibraryModules

Product Store

Supplier

Recall plan

ERP Connector

User process

Business concepts

Integration needs

Product FamilyStock

Recall Process

Steps 1 2 - Disclose and Organize concepts

15

Page 16: Fitting OutSystems applications into Enterprise Architecture

OrchestrationModules

End UserModules

CoreBusinessModules

LibraryModules

Product Store

Supplier

Recall plan

ERP Connector

Steps 1 2 - Disclose and Organize concepts

Recall Process

Product FamilyStock

Supplier Audit

Supplier report

Supplier audit

Supplier audit plan

Internal Theme

Supplier Theme

Internal portal Supplier portal

Access Portals

Domain Themes

16

Page 17: Fitting OutSystems applications into Enterprise Architecture

OrchestrationModules

End UserModules

CoreBusinessModules

LibraryModules ERP

Connector

Step 3 - Assemble

Recall Process Supplier Audit

Internal Theme

Supplier Theme

Internal portal Supplier portal

Process support concepts

Product

Product Family

Unbreakable concepts

Supplier StoreStock LocationBase core concepts

Recall plan

Supplier audit Supplier

report

Supplier audit plan

17

Page 18: Fitting OutSystems applications into Enterprise Architecture

OrchestrationModules

End UserModules

CoreBusinessModules

LibraryModules

Final architecture

Product Services

Supplier Services Store ServicesStock

Services

Supplier Audit Services

Recall Services

Recall Process Supplier Audit

Internal portal Supplier portal

Supplier IS Internal Theme

Supplier Theme

Abstracts external systems

18

Page 19: Fitting OutSystems applications into Enterprise Architecture

OrchestrationModules

End UserModules

CoreBusinessModules

LibraryModules

Product Services

Supplier Services Store ServicesStock

Services

Supplier Audit Services

Recall Services

Recall Process Supplier Audit

Internal portal Supplier portal

Supplier IS Internal Theme

Supplier Theme

Granularity

Low

Medium

High

+ Building blocks

Reusability

Low

Medium

High

+ Savings

Abstraction

Low

Medium

High

+ Information hiding

Mash up

High

Medium

Low

+ Composition

Autonomy

+ Control

The benefits

19

Page 20: Fitting OutSystems applications into Enterprise Architecture

How to validate the ArchitectureBasic rules to check if the architecture is Sound

Page 21: Fitting OutSystems applications into Enterprise Architecture

OrchestrationModules

End-userModules

LibraryModules

CoreModules

Validation rules

Every one became dependent on this cluster of modules

No Upward references

21

Page 22: Fitting OutSystems applications into Enterprise Architecture

OrchestrationModules

End-userModules

LibraryModules

CoreModules

Validation rules

No Upward references

No side references among orchestration or end-user

modules

EU1 EU2 EU1 unnecessarily

inherits this cluster

22

Page 23: Fitting OutSystems applications into Enterprise Architecture

OrchestrationModules

End-userModules

LibraryModules

CoreModules

Validation rules

No Upward references

• No Front-end screens• Read-only entities

• No Business logic• No core entities

cycle

s

No

No side references among orchestration or end-user

modules

23

Page 24: Fitting OutSystems applications into Enterprise Architecture

Validate your architecture with DiscoveryGet a comprehensive

explanation about layers and violations

Place each module in a layer24

Page 25: Fitting OutSystems applications into Enterprise Architecture

Check consumers

25

Page 26: Fitting OutSystems applications into Enterprise Architecture

Check violation details

26

Page 27: Fitting OutSystems applications into Enterprise Architecture

4 Rules for composing LifeTime applications

That will:- Minimize impacts between applications- Simplify deployments- Cope with different paces

Page 28: Fitting OutSystems applications into Enterprise Architecture

ConceptsOrchestrationapplications

End-userapplications

Coreapplications

Libraryapplications

ApplicationSet of modules defined in Service Studio that constitutes a minimal deployment unit for LifeTime

Application layerTopmost layer of the modules inside the application

28

Page 29: Fitting OutSystems applications into Enterprise Architecture

Rule #1 Correctly layer your modules

No upward references

No references among orchestrations or among end-users

Cycle

s

No29

Page 30: Fitting OutSystems applications into Enterprise Architecture

Application composition

Rule #2 Layer your applications

End-userApplication 1

End-user #1

CoreA

LibraryA

CoreB

LibraryB

End-userApplication 2

End-user #2

CoreC

LibraryC

CoreD

LibraryD

Layered module architecture

End-user #1

CoreA

CoreB

LibraryA

LibraryB

1st project

End-user #2

CoreC

LibraryC

CoreD

LibraryD

2nd project

3rd project

WRONG

30

Page 31: Fitting OutSystems applications into Enterprise Architecture

Applicationcomposition

Rule #2 Layer your applications

End-userApplication 1

End-user #1

CoreA

LibraryA

CoreApplication

CoreB

LibraryB

CoreC

LibraryC

End-userApplication 2

End-user #2

CoreD

LibraryD

Layered module architecture

End-user #1

CoreA

CoreB

LibraryA

LibraryB

1st project

End-user #2

CoreC

LibraryC

CoreD

LibraryD

2nd project

3rd project31

Page 32: Fitting OutSystems applications into Enterprise Architecture

Rule #2 Layer your applications

No upward references

No references among orchestrations or among end-users

Cycle

s

No32

Page 33: Fitting OutSystems applications into Enterprise Architecture

Application 2Common application

Rule #3 Don’t mix owners

Module 3Module 1 Module 2

Owner 1 Owner 2

Spl

it Application 1

Module 3Module 1 Module 2

Owner 1 Owner 2

33

Page 34: Fitting OutSystems applications into Enterprise Architecture

Common services

Life Suite Property Suite

Auto Suite

Simulators Simulation Portal

... ... ...Auto Life Property

Engines Policy

Simulators Simulation Portal

... ... ...Auto Life Property

Engines PolicyS

plit

Property business

Auto business

Life business

Property business

Auto business

Life business

Rule #4 Don’t mix sponsors

34

Page 35: Fitting OutSystems applications into Enterprise Architecture

LibraryApps

IntegrationServices

OrchestrationApps

End UserApps

CoreBusinessApps

Previous example – application composition

CommonServices

Themes

Recall SupplierAudit

Product Services

Supplier Services Store Services

Internal Theme

Supplier Theme

Stock Services

Supplier IS

Recall Supplier Audit

Internal portal Supplier portal

Supplier portal

Supplier Audit Services

Recall Services

Internal portal

35

Page 36: Fitting OutSystems applications into Enterprise Architecture

Validate your applications with Discovery

• Violations prevent life cycle independence with complex deployments

• To many shared services inside End user applications

36

Page 37: Fitting OutSystems applications into Enterprise Architecture

Common Style GuideShare the look and feel among applications

Page 38: Fitting OutSystems applications into Enterprise Architecture

Commonservices

Application 1

Theme independent

Lisbon Template

Lisbon theme

App1 theme

Lisbon template

ML

ML

Cloned when creating 1st module of the application

Based on

ML

- Menu- Login flow

#1 Built-in Style GuideDon’t forget to link menu entries to screens with external URLs

38

Page 39: Fitting OutSystems applications into Enterprise Architecture

Commonservices

Application 1

Theme independent

#2 Custom Style Guide, clone a built-in

Custom Style Guide

Custom theme

App1 theme

Custom template

ML

ML

Lisbon Template

Lisbon theme

Lisbon template

ML

Clone

Don’t benefits from new versions of the built-in theme without complex merges

Best performance by avoiding an extra indirection

Use when the Custom Style guide introduces lots of changes

39

Page 40: Fitting OutSystems applications into Enterprise Architecture

Commonservices

Application 1

Theme independent

#3 Custom Style Guide, specialize a built-in

Custom Style Guide

Custom theme

App1 theme

Custom template

ML

ML

Lisbon Template

Lisbon theme

Lisbon template

ML

Clone

Lower performance (extra imports of CSS and other resources)

Keep inheriting new benefits from new versions of the built-in theme

Use when the Custom Style guide has only minor changes and is shared by several applications

40

Page 41: Fitting OutSystems applications into Enterprise Architecture

Commonservices

Application 1

Theme independent

#4 Build your own custom Style Guide

Custom Style Guide

Custom theme

App1 theme

Custom template

ML

ML

Vanilla Template

Vanilla theme

Vanilla template

ML

Clone the Vanilla Template

Use when the Custom Style guide can not benefit from any existing theme. The vanilla template is the correct starting point, since it contains only the minimum required structure

41

Page 42: Fitting OutSystems applications into Enterprise Architecture

Common Style Guide

Global theme

Application 1

App1 theme

Application 2

App2 theme

ML

Common Style Guide

Global theme

Application 1

App1 theme

Application 2

App2 theme

L

M M

Sharing a style guide - possible scenarios#3 PortalCommon Menu and Login flow

#2 IntranetOwn menu, same login flow

Global template

Global template

M

Common Style Guide

Global theme

Application 1

App1 theme

Application 2

App2 theme

ML

ML

#1 Independent AppsOwn Menu and Login flow

Global template

ML

Common Menu and Login flow need to be moved to the theme

Common login flow needs to be moved to the theme eSpace

Standard pattern

42

Page 43: Fitting OutSystems applications into Enterprise Architecture

Don’t forget ✓Keep iterating your

architecture✓Avoid violations✓Follow patterns✓Optimize application

composition43

Page 45: Fitting OutSystems applications into Enterprise Architecture

Thank you!