SlideShare a Scribd company logo
| Service Actions
Service Actions
Trick or treat?
| Service Actions| Service Actions
Rui
Coutinho
Architecture & Development Domain Expert
@
in
rui.coutinho@outsystems.com
/rucoutinho
| Service Actions
Session Goal
That you learn more about
Service Action.
| Service Actions
Personal Goal
Present what is probably the
most boring NextStep topic…
without the audience falling
asleep!
| Service Actions
Dependencies
Back to basics
| Service Actions
What is a
Dependency?
Whenever a module uses an
element that is defined in
another module.
| Service Actions
Dependency
representation
Used in OutSystems
architecture designs.
Consumer
Producer
Consumer depends
on the Producer
We have two type
of dependencies
| Service Actions
Strong
Dependency
In runtime, producer logic is
executed as if it’s defined in
the consumer module.
Consumer
Producer
Strong
Changes in the producer only take
effect after republish the consumer.
| Service Actions
Weak
Weak
Dependency
In runtime, the consumer
module only needs to know
the signature of the element to
be able to reuse it.
Consumer
Producer
Changes in the producer take
immediate effect in the consumer.
| Service Actions| Service Actions
The strong impact
of weak dependencies
| Service Actions
Elements that are
weak dependencies
OutSystems 11 introduced
Service Action, and made
improvements on existing
elements.
| Service Actions
Foundation
Layer
Core Business
Layer
Orchestration
Layer
End-user
Layer
Impacts on
architecture
framework
Let’s revise the canvas.
| Service Actions
Foundation
Layer
Core Business
Layer
Orchestration
Layer
End-user
Layer
Service Actions
Service Actions provide
services to
OutSystems applications.
| Service Actions
Foundation
Layer
Core Business
Layer
Orchestration
Layer
End-user
Layer
Screens
Screens used to be strongly
referenced, meaning that
screen navigation caused side
references.
| Service Actions
Foundation
Layer
Core Business
Layer
Orchestration
Layer
End-user
Layer
Screens
Screen navigation is the main
reason of existence for the
Orchestration Layer.
| Service Actions
Foundation
Layer
Core Business
Layer
Orchestration
Layer
End-user
Layer
Screens
B
EU1
A
X
EU2
C
Z
Screen navigation is the main
reason of existence for the
Orchestration Layer.
| Service Actions
Foundation
Layer
Core Business
Layer
Orchestration
Layer
End-user
Layer
Screens
B
EU1
A
X
EU2
C
Z
Screen navigation is the main
reason of existence for the
Orchestration Layer.
| Service Actions
Foundation
Layer
Core Business
Layer
Orchestration
Layer
End-user
Layer
Screens
And in OutSystems 11?
B
EU1
A
X
EU2
C
Z
| Service Actions
Foundation
Layer
Core Business
Layer
Orchestration
Layer
End-user
Layer
Bye bye
Mr. Orchestration
Orchestration Layer is no
longer required in OutSystems
11.
However, still makes sense for
OutSystems 10.
| Service Actions
Service Actions
The king of weak references
| Service Actions
.. if you ever used Service Actions!
Please raise your hands...
| Service Actions
What is a
Service Action?
It’s an action that mixes
the advantages of
loosely-coupled REST API
with the RAD capabilities
of tightly-coupled Server Actions.
Service
Action
(weak)
Consumer
Producer
| Service Actions
Making it simpler
It’s an internal REST method, that
has the benefits of public actions.
Consumer
Producer
Service
Action
(weak)
| Service Actions
Making it simpler
It’s an internal REST method, that
has the benefits of public actions.
Consumer
Producer
● Same Request Key
● Same UserId and Tenant Id
● Different DB Transaction
● Different Session
Service
Action
(weak)
| Service Actions
Benefits
Findability
Add or remove references
Security
User Id in context; only accessible from
the same environment
Access governance
With LifeTime, like other public elements
Strong typing
Entities and structures in
signatures
Exception handling
User/communication exceptions
can be caught in consumers
Impact analysis
Breaking changes on signature
| Service Actions
Service Actions
are internal
A service action can only be
called inside the same
OutSystems environment.
OS Environment 1
Consumer
Service Action
OS Environment 2
Consumer
External System
Consumer
localhost
| Service Actions
Outsystems Environment
External System
Service Actions
are internal
To provide external APIS, you
should continue to use REST
APIs.
Consumer
Service Action REST API
Consumer
Core Service
| Service Actions
New Naming
Convention
Anyone can guess what is an
OAPI?
| Service Actions
New Naming
Convention
| Service Actions
New Naming
Convention
Consumer
Producer_OAPI
Producer
OutSystems API
| Service Actions| Service Actions
Isolate your
service actions
| Service Actions
Must use
Service Modules
Service Actions can only be
exposed inside Service Modules.
Note: There is no Interface tab.
| Service Actions
Should use
Service
Applications
Organized service modules,
supporting service-oriented
architecture.
Note: Service Modules may also be
created in other types of application.
| Service Actions
Please setup your
DevOps model
Service application should
prevent unwanted references.
Reflect that model in your
Lifetime teams.
Consumer
Producer_OAPI
Producer
Team A
No
Access
Full
Control
Full
Control
Team B
Full
Control
Reuse &
Monitor
No
Access
| Service Actions
Don’t
implement logic
in the API
Service Actions should be
business agnostic.
Consumer
Producer_OAPI
Producer
| Service Actions
Don’t
implement logic
in the API
Allows to expose the
same logic to external systems,
by using REST APIs.
Consumer
Producer_OAPI
Producer
Producer_API
| Service Actions
Careful
design your
boundaries
Think on the relation
between
consumer-producer.
You Spouse
Kids
Lover
Stuff
Design the contract to fit the use case
| Service Actions| Service Actions
OAPI Versioning
| Service Actions
Producer_OAPI
Why
versioning?
Consumer
Minimize the impact on
consumers:
● Ensure Back-compatibility
● Allow for different development paces
● Deprecate versions elegantly
Producer
Contract
Change
Code
Change
| Service Actions
Producer_OAPI
Code
Change
Consumer
Producer
Code
Change
When the change happens
on the internal code,
consumers should
not be affected.
| Service Actions
Code
Change
Customer
OAPI
Consumer
Version Id ensures legacy
consumers still works,
given consumers time to adjust.
Customer
OAPI
Customer
CS
Contract CS
| Service Actions
Code
Change
Consumers control
when to adopt new
version
Consumer use a site
property to avoid republish
Customer
OAPI
Consumer
Customer
OAPI
Customer
CS
Contract CS
| Service Actions
Code
Change
Don’t support
too many
versions!
London Eye Anti-Pattern
| Service Actions
Code
Change
Force consumers to adapt
when version becomes
deprecated.
| Service Actions
Producer_OAPI
Contract
Change
Consumer
Producer
Contract
Change
Since there is a API change,
consumers are affected.
| Service Actions
Contract
Change
| Service Actions
Contract
Change
Take effect
immediatly?
Break the contract.
Use impact analysis for broken.
Yes
Clone existing Service Action.
Give consumers time to catch up.
No
| Service Actions
Avoid Temptation
Input as generic text seems a
great way to avoid contract
changes...
| Service Actions| Service Actions
Service Composition
| Service Actions
Service
Composition
How to handle multiple
transactions?
| Service Actions
Happy Path
Travel Planner
Book HotelBook Flight
Rental
Services
Flight
Services
Hotel
Services
Rent Car
| Service Actions
Travel Planner
Harsh reality...
Book HotelBook Flight
Rental
Services
Flight
Services
Hotel
Services
Rent Car
Undo
Flight
Undo
Hotel
User
Exception
!
Consumers should not
have to worry about
complex exception
handling
| Service Actions
Abstract complexity
Travel Planner
Transaction is handled by a
centralized same service,
reusable by other consumers.
Booking
Services
Undo
Flight
Undo
Hotel
User
Exception
!
Rental
Services
Flight
Services
Hotel
Services
| Service Actions
Happy Path
Travel Planner
Reissue
online Ticket
Change
Passenger
Passenger
Services
Flight
Services
| Service Actions
Harsh reality...
Travel Planner
Reissue
online Ticket
Passenger
Services
Flight
Services
Undo
Passenger Info
User
Exception
!
Consumer must keep
track of all rollback
information...
Change
Passenger
| Service Actions
Orchestration service
Travel Planner
Flight
Support
Services
Passenger
Services
Flight
Services
Trade off weak/strong coupling
to avoid multiple transactions.
| Service Actions
Theory into practice
Let’s follow an example
| Service Actions
Image your
company is opening
a new store...
… and marketing department
wants to invite all local
residents to the grand-
opening!
Business
Marketing
IT
| Service Actions
Use Case
“Forget email
invitation, it’s too
impersonal!
Marketing
Let’s invite everyone using the
good old-fashion letter!”
| Service Actions
Requirements
Business
“Let’s build something awesome!
| Service Actions
Requirements
“Let’s go for MVP...”
ITBusiness
“Let’s build something awesome!
| Service Actions
Architecture
Design
Connect to external service,
that provides postal code
information.
Postal Code
Provider
REST
Postal Code IS
| Service Actions
Weak?
Architecture
Design Store Backoffice
Postal Code
Provider
Strong?
REST
Shall we use Service Actions?
Or Server Actions?
Let’s explore both scenarios...
Or
Postal Code IS
| Service Actions
Multiverse
Theory
I hope you believe in the
existence of parallel universes.
| Service Actions Multiverse 1 Multiverse 2
| Service Actions
Service Actions Server Actions
Multiverse 1 Multiverse 2
Store
Backoffice
Postal
Code IS
Postal
Code OAPI
Store
Backoffice
Postal
Code IS
| Service Actions
Service Actions Server Actions
Multiverse 1 Multiverse 2
MV2
Store
Manager
(Strong)
MV2
Postal
Services
(Strong)
Store
Backoffice
Postal
Code IS
MV1
Store
Manager
(Weak)
MV1
Postal
Services
(Weak)
Store
Backoffice
Postal
Code IS
Postal
Code OAPI
| Service Actions
Service Actions Server Actions
Application is live
| Service Actions
Service Actions Server Actions
Incorrect implementation
Results from 2 countries ?
I only have stores in Portugal!
| Service Actions
Let’s make
some magic
1. Contract Change
■ Add mandatory input
| Service Actions
Service Actions Server Actions
MV1
Store
Manager
(Weak)
MV2
Store
Manager
(Strong)
MV1
Postal
Services
(Weak)
MV2
Postal
Services
(Strong)
Store
Backoffice
Postal
Code IS
Postal
Code OAPI
Store
Backoffice
Postal
Code IS
Add filter by country code
| Service Actions
Service Actions Server Actions
Effect in Development
Publish, and do not refresh consumers
| Service Actions
Service Actions Server Actions
Platform warnings
| Service Actions
Service Actions Server Actions
Effect in Staging
| Service Actions
Service Actions Server Actions
Adapt and republishing consumers
| Service Actions
Let’s make
some magic
1. Contract Change
■ Add mandatory input
2. Code Change
| Service Actions
Service Actions Server Actions
Code Change
Business wants to
show the country name
instead of the code.
| Service Actions
Service Actions Server Actions
Update the private code
MV2
Store
Manager
(Strong)
MV2
Postal
Services
(Strong)
Store
Backoffice
Postal
Code IS
MV1
Store
Manager
(Weak)
MV1
Postal
Services
(Weak)
Store
Backoffice
Postal
Code IS
Postal
Code OAPI
| Service Actions
Service Actions Server Actions
Change is reflected
immediately on consumer.
Consumer must
be refreshed.
Effect in Development
Publish, and do not refresh consumers
| Service Actions
Service Actions Server Actions
Platform warnings
| Service Actions
Service Actions Server Actions
Effect in Staging
| Service Actions
Which one shall I pick?
Service Action or Server Action?
| Service Actions
Consultant
favorite
answer...
… it depends!
| Service Actions
Don’t go nuts on
Service Actions!
Don’t move from dll hell
into Service Actions nightmare...
| Service Actions
via Service Actions via Server Actions
85
DB
Transactions
Development
Effort
Release
Cycle
Service
Communicatio
n
Deployed togetherDeployed independently
Run in a single processRun in different processes
Producers & Consumers relation
| Service Actions
via Service Actions via Server Actions
86
DB
Transactions
Development
Effort
Release
Cycle
Service
Communicatio
n
Simpler logic and faster
development
Additional logic to handle transactionality
and error handling
Single transaction
Deployed together
Run in a single process
Multiple transactions
Deployed independently
Run in different processes
Producers & Consumers relation
| Service Actions
Usage
Scenarios
● Service oriented architecture approach
■ Self-contained, black-box service for
multiple consumers
■ Independent release cycles between
service and other applications
■ Independent development teams, with
clear ownership
Consumer
1
Calculation Engine
Consumer
2
Team A Team B
Team C
| Service Actions
Domain 2
Usage
Scenarios
● Domain oriented architecture approach
■ Communication gateway between
different domains
■ Well defined boundaries and “closed”
contract
■ Independent teams and release cycles
between domains Domain 1
Team A Team B
| Service Actions
Usage
Scenarios
● Isolate Technical components
■ Support technical decisions
■ Reusable by many applications
Feature Services
Consumer
1
Consumer 2 Consumer 4
Consumer
3
Consumer
5
| Service Actions
I want Service
Actions now!
| Service Actions
… if you are still using OutSystems 10!
Please raise your hands...
| Service Actions
Still on
OutSystems 10...
Don’t despair...
| Service Actions
...you can always upgrade to 11!
| Service Actions
In the meanwhile,
design for OS11!
Expose your internal services using REST API.
It’s straightforward to later migrate from REST to Service Actions.
| Service Actions
What is YOUR Next Step?
| Service Actions
Carve out your
architecture!
It’s time to look above and
beyond your current
architecture!
| Service Actions
Trick or treat?
Treat!
“The difference between poison
and remedy is the dosage”
| Service Actions
Thank You!
@ in
rui.coutinho@outsystems.co
m
/rucoutinho

More Related Content

What's hot

OutSystems User Groups - Introduction to OutSystems Architecture (Pune - 7 A...
 OutSystems User Groups - Introduction to OutSystems Architecture (Pune - 7 A... OutSystems User Groups - Introduction to OutSystems Architecture (Pune - 7 A...
OutSystems User Groups - Introduction to OutSystems Architecture (Pune - 7 A...
OutSystemsNeo
 
Extending OutSystems with Javascript
Extending OutSystems with JavascriptExtending OutSystems with Javascript
Extending OutSystems with Javascript
RitaDias72
 
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
 
Why OutSystems
Why OutSystemsWhy OutSystems
Why OutSystems
Mustafa Kuğu
 
Integrate OutSystems With Office 365
Integrate OutSystems With Office 365Integrate OutSystems With Office 365
Integrate OutSystems With Office 365
OutSystems
 
Testing With OutSystems
Testing With OutSystemsTesting With OutSystems
Testing With OutSystems
OutSystems
 
Application Lifetime Management
Application Lifetime ManagementApplication Lifetime Management
Application Lifetime Management
OutSystems Technical Knowledge
 
OutSystems Platform Troubleshooting
OutSystems Platform TroubleshootingOutSystems Platform Troubleshooting
OutSystems Platform Troubleshooting
OutSystems Technical Knowledge
 
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
 
CSS workshop @ OutSystems
CSS workshop @ OutSystemsCSS workshop @ OutSystems
CSS workshop @ OutSystems
Ruben Goncalves
 
Unattended OutSystems Installation
Unattended OutSystems InstallationUnattended OutSystems Installation
Unattended OutSystems Installation
OutSystems
 
OutSystems Lessons: Center of Excellence and Adoption Strategies
OutSystems Lessons: Center of Excellence and Adoption StrategiesOutSystems Lessons: Center of Excellence and Adoption Strategies
OutSystems Lessons: Center of Excellence and Adoption Strategies
OutSystems
 
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
 
The 4-Layer Architecture in Practice
The 4-Layer Architecture in PracticeThe 4-Layer Architecture in Practice
The 4-Layer Architecture in Practice
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 Front End Specialization - Study Help Deck
OutSystems Front End Specialization - Study Help DeckOutSystems Front End Specialization - Study Help Deck
OutSystems Front End Specialization - Study Help Deck
Fábio Godinho
 
Hardcore CSS Made Easy
Hardcore CSS Made EasyHardcore CSS Made Easy
Hardcore CSS Made Easy
José Rosário
 
Hands on With Advanced Data Grid
Hands on With Advanced Data GridHands on With Advanced Data Grid
Hands on With Advanced Data Grid
OutSystems
 
Accessibility with OutSystems
Accessibility with OutSystemsAccessibility with OutSystems
Accessibility with OutSystems
Bruno Marcelino
 
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
 

What's hot (20)

OutSystems User Groups - Introduction to OutSystems Architecture (Pune - 7 A...
 OutSystems User Groups - Introduction to OutSystems Architecture (Pune - 7 A... OutSystems User Groups - Introduction to OutSystems Architecture (Pune - 7 A...
OutSystems User Groups - Introduction to OutSystems Architecture (Pune - 7 A...
 
Extending OutSystems with Javascript
Extending OutSystems with JavascriptExtending OutSystems with Javascript
Extending OutSystems with Javascript
 
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
 
Why OutSystems
Why OutSystemsWhy OutSystems
Why OutSystems
 
Integrate OutSystems With Office 365
Integrate OutSystems With Office 365Integrate OutSystems With Office 365
Integrate OutSystems With Office 365
 
Testing With OutSystems
Testing With OutSystemsTesting With OutSystems
Testing With OutSystems
 
Application Lifetime Management
Application Lifetime ManagementApplication Lifetime Management
Application Lifetime Management
 
OutSystems Platform Troubleshooting
OutSystems Platform TroubleshootingOutSystems Platform Troubleshooting
OutSystems Platform Troubleshooting
 
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
 
CSS workshop @ OutSystems
CSS workshop @ OutSystemsCSS workshop @ OutSystems
CSS workshop @ OutSystems
 
Unattended OutSystems Installation
Unattended OutSystems InstallationUnattended OutSystems Installation
Unattended OutSystems Installation
 
OutSystems Lessons: Center of Excellence and Adoption Strategies
OutSystems Lessons: Center of Excellence and Adoption StrategiesOutSystems Lessons: Center of Excellence and Adoption Strategies
OutSystems Lessons: Center of Excellence and Adoption Strategies
 
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...
 
The 4-Layer Architecture in Practice
The 4-Layer Architecture in PracticeThe 4-Layer Architecture in Practice
The 4-Layer Architecture in Practice
 
Tenants: A Look Behind the Scenes
Tenants: A Look Behind the ScenesTenants: A Look Behind the Scenes
Tenants: A Look Behind the Scenes
 
OutSystems Front End Specialization - Study Help Deck
OutSystems Front End Specialization - Study Help DeckOutSystems Front End Specialization - Study Help Deck
OutSystems Front End Specialization - Study Help Deck
 
Hardcore CSS Made Easy
Hardcore CSS Made EasyHardcore CSS Made Easy
Hardcore CSS Made Easy
 
Hands on With Advanced Data Grid
Hands on With Advanced Data GridHands on With Advanced Data Grid
Hands on With Advanced Data Grid
 
Accessibility with OutSystems
Accessibility with OutSystemsAccessibility with OutSystems
Accessibility with 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...
 

Similar to Service Actions

Which Application Modernization Pattern Is Right For You?
Which Application Modernization Pattern Is Right For You?Which Application Modernization Pattern Is Right For You?
Which Application Modernization Pattern Is Right For You?
Apigee | Google Cloud
 
Enabling Enterprise Mobility with UI5 and SAP Fiori
Enabling Enterprise Mobility with UI5 and SAP FioriEnabling Enterprise Mobility with UI5 and SAP Fiori
Enabling Enterprise Mobility with UI5 and SAP Fiori
Victor Ionescu
 
The App Evolution
The App EvolutionThe App Evolution
The App Evolution
Dev_Events
 
Placement of BPM runtime components in an SOA environment
Placement of BPM runtime components in an SOA environmentPlacement of BPM runtime components in an SOA environment
Placement of BPM runtime components in an SOA environment
Kim Clark
 
Exposing Business Functionalities with SOA, Integration and API Management
Exposing Business Functionalities with SOA, Integration and API ManagementExposing Business Functionalities with SOA, Integration and API Management
Exposing Business Functionalities with SOA, Integration and API Management
WSO2
 
Online Property Management System
Online Property Management SystemOnline Property Management System
Online Property Management System
IRJET Journal
 
Service Analysis And Design
Service Analysis And DesignService Analysis And Design
Service Analysis And Design
Rody Middelkoop
 
Keynote - The Benefits of an Open Service Oriented Architecture in the Enterpr...
Keynote - The Benefits of an Open Service Oriented Architecture in the Enterpr...Keynote - The Benefits of an Open Service Oriented Architecture in the Enterpr...
Keynote - The Benefits of an Open Service Oriented Architecture in the Enterpr...
mfrancis
 
Composite Applications For Users
Composite Applications For UsersComposite Applications For Users
Composite Applications For Users
Michiel.Kemperman
 
Keynote: PeopleSoft strategy and update
Keynote: PeopleSoft strategy and updateKeynote: PeopleSoft strategy and update
Keynote: PeopleSoft strategy and update
Cedar Consulting
 
Making the Dinosaur Dance - RDz, RTC and UrbanCode Lunch and Learn slides
Making the Dinosaur Dance - RDz, RTC and UrbanCode Lunch and Learn slidesMaking the Dinosaur Dance - RDz, RTC and UrbanCode Lunch and Learn slides
Making the Dinosaur Dance - RDz, RTC and UrbanCode Lunch and Learn slides
Susan Yoskin
 
Service oriented component model
Service oriented component modelService oriented component model
Service oriented component model
ravindrareddy
 
Presentation rate&bill
Presentation rate&bill Presentation rate&bill
Presentation rate&bill
hosnihamdi2009
 
IBM APM for Hybrid Applications
IBM APM for Hybrid ApplicationsIBM APM for Hybrid Applications
IBM APM for Hybrid Applications
Matthew Cheah
 
Show me the money! - Draft
Show me the money! - DraftShow me the money! - Draft
Show me the money! - Draft
Tomas Riha
 
What’s new in Rational collaborative lifecycle management 2011?
What’s new in Rational collaborative lifecycle management 2011?What’s new in Rational collaborative lifecycle management 2011?
What’s new in Rational collaborative lifecycle management 2011?
IBM Danmark
 
Practical Tips for Ops: End User Monitoring
Practical Tips for Ops: End User MonitoringPractical Tips for Ops: End User Monitoring
Practical Tips for Ops: End User Monitoring
Dynatrace
 
Automating Applications with Habitat - Sydney Cloud Native Meetup
Automating Applications with Habitat - Sydney Cloud Native MeetupAutomating Applications with Habitat - Sydney Cloud Native Meetup
Automating Applications with Habitat - Sydney Cloud Native Meetup
Matt Ray
 
DevOps monitoring: Feedback loops in enterprise environments
DevOps monitoring: Feedback loops in enterprise environmentsDevOps monitoring: Feedback loops in enterprise environments
DevOps monitoring: Feedback loops in enterprise environments
Jonah Kowall
 
Online vehicle service center management system project report
Online vehicle service center management system project reportOnline vehicle service center management system project report
Online vehicle service center management system project report
mehulgundaliya
 

Similar to Service Actions (20)

Which Application Modernization Pattern Is Right For You?
Which Application Modernization Pattern Is Right For You?Which Application Modernization Pattern Is Right For You?
Which Application Modernization Pattern Is Right For You?
 
Enabling Enterprise Mobility with UI5 and SAP Fiori
Enabling Enterprise Mobility with UI5 and SAP FioriEnabling Enterprise Mobility with UI5 and SAP Fiori
Enabling Enterprise Mobility with UI5 and SAP Fiori
 
The App Evolution
The App EvolutionThe App Evolution
The App Evolution
 
Placement of BPM runtime components in an SOA environment
Placement of BPM runtime components in an SOA environmentPlacement of BPM runtime components in an SOA environment
Placement of BPM runtime components in an SOA environment
 
Exposing Business Functionalities with SOA, Integration and API Management
Exposing Business Functionalities with SOA, Integration and API ManagementExposing Business Functionalities with SOA, Integration and API Management
Exposing Business Functionalities with SOA, Integration and API Management
 
Online Property Management System
Online Property Management SystemOnline Property Management System
Online Property Management System
 
Service Analysis And Design
Service Analysis And DesignService Analysis And Design
Service Analysis And Design
 
Keynote - The Benefits of an Open Service Oriented Architecture in the Enterpr...
Keynote - The Benefits of an Open Service Oriented Architecture in the Enterpr...Keynote - The Benefits of an Open Service Oriented Architecture in the Enterpr...
Keynote - The Benefits of an Open Service Oriented Architecture in the Enterpr...
 
Composite Applications For Users
Composite Applications For UsersComposite Applications For Users
Composite Applications For Users
 
Keynote: PeopleSoft strategy and update
Keynote: PeopleSoft strategy and updateKeynote: PeopleSoft strategy and update
Keynote: PeopleSoft strategy and update
 
Making the Dinosaur Dance - RDz, RTC and UrbanCode Lunch and Learn slides
Making the Dinosaur Dance - RDz, RTC and UrbanCode Lunch and Learn slidesMaking the Dinosaur Dance - RDz, RTC and UrbanCode Lunch and Learn slides
Making the Dinosaur Dance - RDz, RTC and UrbanCode Lunch and Learn slides
 
Service oriented component model
Service oriented component modelService oriented component model
Service oriented component model
 
Presentation rate&bill
Presentation rate&bill Presentation rate&bill
Presentation rate&bill
 
IBM APM for Hybrid Applications
IBM APM for Hybrid ApplicationsIBM APM for Hybrid Applications
IBM APM for Hybrid Applications
 
Show me the money! - Draft
Show me the money! - DraftShow me the money! - Draft
Show me the money! - Draft
 
What’s new in Rational collaborative lifecycle management 2011?
What’s new in Rational collaborative lifecycle management 2011?What’s new in Rational collaborative lifecycle management 2011?
What’s new in Rational collaborative lifecycle management 2011?
 
Practical Tips for Ops: End User Monitoring
Practical Tips for Ops: End User MonitoringPractical Tips for Ops: End User Monitoring
Practical Tips for Ops: End User Monitoring
 
Automating Applications with Habitat - Sydney Cloud Native Meetup
Automating Applications with Habitat - Sydney Cloud Native MeetupAutomating Applications with Habitat - Sydney Cloud Native Meetup
Automating Applications with Habitat - Sydney Cloud Native Meetup
 
DevOps monitoring: Feedback loops in enterprise environments
DevOps monitoring: Feedback loops in enterprise environmentsDevOps monitoring: Feedback loops in enterprise environments
DevOps monitoring: Feedback loops in enterprise environments
 
Online vehicle service center management system project report
Online vehicle service center management system project reportOnline vehicle service center management system project report
Online vehicle service center management system project report
 

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
 
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
 
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
 
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
 
Growing and Scaling OutSystems
Growing and Scaling OutSystemsGrowing and Scaling OutSystems
Growing and Scaling OutSystems
OutSystems
 

More from OutSystems (20)

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
 
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
 
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
 
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
 
Growing and Scaling OutSystems
Growing and Scaling OutSystemsGrowing and Scaling OutSystems
Growing and Scaling OutSystems
 

Recently uploaded

Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
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
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
Srikant77
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
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
 
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
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
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
 
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
 

Recently uploaded (20)

Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
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
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
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
 
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
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
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
 
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...
 

Service Actions

Editor's Notes

  1. In the spirit of halloween, let’s find out an answer
  2. I have 2 big goals for today
  3. What they are When to use them Advantages and challenges
  4. If you don’t know this… you are in the wrong room
  5. Reinforce: Consumer MUST be republish to execute the new producer code.
  6. Reinforce: Consumer do not needs to be republished → which may result in breaking the signature.
  7. All other elements have strong dependencies.
  8. Bottom 2 depends if the service is business oriented (provide Customer info) or technical (provide reference data, such as country codes)
  9. If you need to navigate for another screen, caused the producer to be included into the consumer. This prevented application independency.
  10. EU1 unnecessarily inherits this cluster. You actually end up with the same application cluster.
  11. EU1 unnecessarily inherits this cluster. You actually end up with the same application cluster.
  12. This is a weak dependency…. applications remain independent
  13. Now, this doesn’t mean we are going to remove the orchestration immediately and rename the 4LC. You can imagine a hierarchy at end-user level (similar to the other levels) if you need a cross-application portal, This slide is my favorite slide: Some people have difficulty to understand when to use this layer. Most of the architectures have, incorrectly, an orchestration module. I found that people tend to use it just because they think they have to have all layers
  14. 10:00
  15. I have to read, it’s quite a mouth full...
  16. Why it behaves as public action? Let’s see the benefits.
  17. Why it behaves as public action? Let’s see the benefits.
  18. Strong typing You can use entities and structures in Service Action signatures. Security OutSystems passes the authentication context from the client session when making the call to a Service Action (UserId and TenantId). Exception handling User Exceptions and Communication Exceptions thrown by a Service Action can be caught in the consumer modules. Access governance Service Actions follow the same governance model as any other reusable element defined by permissions in LifeTime.
  19. If the REST API needs user Id, that user context must be provided. Service Action already has the user id.
  20. According to wikipedia...
  21. Strong connection OAPI → Producer Weak connection Consumer → OAPI
  22. What are the best practices?
  23. As you can see, the platform is guiding the developer into a correct architecture. As this module is intended to expose services, it doesn’t allow to create UI elements → reinforces the 4LC principles.
  24. Service application doesn’t allow to create UI or Library modules. Prevents developers to incorrectly define screens in a application intended to provide services.
  25. If you create a Service Action, but still allow access the Server Action, people will make mistakes.
  26. Service Actions technical wrapper to expose core services to OutSystems consumers, keeping core services system agnostic and supporting multiple API versions.
  27. If you follow this approach, it’s easier to later provide the Producer code, your core code, to external systems.
  28. Use strong or weak dependencies wisely. Control the information exposed → Design the contract to fit the use case.
  29. Contract change There is a API change, consumer are affected Code Change Business rules change, no contract change Since there is no change to the API, consumers should not be affected
  30. We are not talking about bug fix. We are talking about business rules that change, and you want to have consumers to use multiple versions. E.g.: New mandatory regulation, but companies have X months to comply.
  31. Add a new parameter, version Id. That new parameter is validated for each request, and points to the desired source code. Site property prevents the module to be republish. Can be used, for e.g., when a critical error is found in the new version and you want to quickly revert to previous version.
  32. E.g.: Consumers may have to change the UI, to display new regulations. This works because we are talking about internal services with a governance model, version changes are informed to the teams using the service actions Impact analysis helps to find all consumers Add the input upfront, if your use case need to support multiple versions
  33. This becomes unmanaged over time. If you need to support too many older version, split the API.
  34. Consumers should be republished: may be broken or not, depending on the change. E.g.: Mandatory inputs break the consumer during runtime. What should we do?
  35. Keep your house clean: clean up old versions once no longer consumed
  36. But it forces producer/consumer to share common module, outside contract definition. Common modules tend to grow and become a bag of tricks, that when changed, force the entirue factory to be republished.
  37. Big boys talk
  38. This is, in my opinion, the biggest challenge: consumer runs in a different transaction than the producer.
  39. We all have planned for a nice vacation period, and needed to book a flight, a hotel and rent a car.
  40. Other scenario: I cannot cannot take my flight, but I want to maximize my lost. So I offer my ticket to a friend Step 1: Update traveler information. Step 2: A new online ticket must be re-issue
  41. The more services you have, the more difficult it is to manage the rollback, and keep track of what changed.
  42. Balance the granularity of your services VERSUS the need for isolated services.
  43. 20:00
  44. They called in business analysts and IT for a brainstorm session
  45. “Let’s make an awesome application, with responsive design” “Store Manager inputs the postal code and it directly prints the letters, ready to stamp!” “Awesome!”
  46. “Add one page to existing backoffice…” “Store manager inserts the postal code… that returns a list of local addresses - he can print the list and do the rest manually.”
  47. IS stands for Integration Service - technical wrapper to consume and normalize an external service.
  48. What? No Core Services? Not all designs have a core service. This is a clear example of a non-business functionality.
  49. If you don’t, you will be in denial for the rest of the presentation, my apologies upfront.
  50. To simplify the exercise, let’s assume we have only two parallel universes. The first one ignored climate-changes… while the second one was overzealous and eradicated ice all together.
  51. In both cases, this architecture translates into 2 Lifetime Applications. If you have different teams working, one on the Postal Services, other on the Store Manager, you should create a 3rd LT app, to expose the OAPI o team Store Manager. This is relevant for us to understand the independent release cycles.
  52. Both universes produced the same page. It’s time for user-testing.
  53. Add Country Code, as optional parameter.
  54. Publish only the Postal Services → Reinforce the strong vs weak REST service expects a mandatory input parameter → this could be prevented by managing different API versions
  55. In both cases, there is a warning consumers should be republished
  56. What about the release cycle? In both cases, Lifetime prevents you to deploy further this version and break the consumers. Why, because both are breaking changes. And although you are using Service Actions (weak dependency), the platform still you to deploy a broken contract. This is one advantage over REST API, where only at runtime the consumer will find out it’s broken.
  57. Go and update the code to show Portugal and not PT. Do not publish the UI
  58. In both universes, Lifetime allows you to move just the service application to the next environment, since there is nothing broken. The big difference is that the platform republish the consumers, for Server Actions, to ensure they have the latest version running.
  59. 30:00
  60. The final decision depends on your use case. This is an awareness session, let me give you some guidelines.
  61. 1st guideline: Balance your options. Keep in mind each service action is an internal REST call.
  62. Release Cycle The bigger the factory, the bigger the monolith, the slower code reaches production. Service Communication
  63. DB Transactions Development effort
  64. More than a single service, you want to control an entire business domain.
  65. 35:00
  66. Tell you account manager I sent you… not sure you will get a discount, but I may get a bonus!
  67. Take into consideration authentication and userId, ...
  68. I do hope you leave this session with more questions than answers… that will take you on a journey to look for new design patterns. Explore service oriented architecture… define your service APIs when applicable… break the monolith if you have one!
  69. Be careful how you use them, but please use them! “The difference between poison and remedy is the dosage” - Paracelsus Look into your architecture and create ONE service actions and see where that will take you. As always, OutSystems will be here to provide guidance in your journey