ODC External Logic
Building custom code logic in OutSystems
Developer Cloud.
Stefan Weber
Head of Solution and Application Engineering
ISD FENIQS GmbH
2
Topics 1. Big Picture – OutSystems 11 Custom Code
Extensions and ODC External Logic
2. Demo – OutSystems 11 Singleton Extension
Classes
3. ODC Function Invocation
4. Demo – Developing and Publishing ODC External
Logic Libraries
5. OutSystems 11 and AWS Lambda
6. At a glance
Big Picture
OutSystems 11 Custom Code Extensions
 Created and published in Integration Studio / Visual
Studio
 Custom Code assemblies are bundled with the Application
 Custom Code class is instantiated once per application
and frontend server (Singleton)
 Invoking a method consumes resources of the frontend
server.
ODC External Logic Actions
 Created in a C# IDE of choice (Raider, Visual Studio, Visual
Studio Code)
 Uploaded via ODC Portal as ZIP package* Each defined
method (action) creates an AWS Lambda function
 Invoking a method from an ODC application instantiates
an isolated execution environment with dedicated
resources. Invoking a method in parallel instantiates
multiple execution environments for a single method.
3
Demo – OutSystems 11
Singleton Extension
Classes
4
4
ODC Function Invocation
Single Execution Instance
 Application calls an ODC Function, which triggers the
initialization of a new execution instance.
 After initialization, the actual method (Lambda handler) is
invoked and upon execution a result is returned to the
calling application.
 After “some time” the execution instance is shutdown by
Lambda service.
Single Execution Instance with sequential invocation
 After App1 completed its method call and received a
result another application (App2) calls the same method.
Lambda recognized that there is already a running
instance available and reuses that instance.
Multiple Execution Instances with parallel invocation
 While the call of App1 is still processed by an execution
instance another application (App2) tries to call the same
method. This leads to provisioning another execution
instance. 5
Demo – Developing
and Publishing ODC
External Logic Libraries
6
6
Learn by example with a sample
application available on Forge
https://www.outsystems.com/forge/component-
overview/14891/lambda-invocation-sample
And my publication on medium.com
https://itnext.io/invoking-aws-lambda-functions-in-
outsystems-b398d0cdde97
OutSystems 11 and AWS Lambda
Leverage synchronous and
asynchronous data processing with AWS
Lambda in OutSystems 11 using the
AWS Lambda Function Invoke Forge
Component
https://www.outsystems.com/forge/component-
overview/14728/aws-lambda-function-invoke
7
8
OutSystems 11 Extensions
 .net Framework 4.8
 Developed and published using
Integration Studio and Visual Studio
 Single Instance per application and
frontend server
At a glance
ODC External Logic
 .net Framework 6.0
 Developed using any C# editor and
published by uploading to ODC Portal
 One Lambda Function per library method
 Multiple execution instances per Lambda
function handled by AWS Lambda Services

OutSystems UserGroup ODC External Logic.pdf

  • 1.
    ODC External Logic Buildingcustom code logic in OutSystems Developer Cloud. Stefan Weber Head of Solution and Application Engineering ISD FENIQS GmbH
  • 2.
    2 Topics 1. BigPicture – OutSystems 11 Custom Code Extensions and ODC External Logic 2. Demo – OutSystems 11 Singleton Extension Classes 3. ODC Function Invocation 4. Demo – Developing and Publishing ODC External Logic Libraries 5. OutSystems 11 and AWS Lambda 6. At a glance
  • 3.
    Big Picture OutSystems 11Custom Code Extensions  Created and published in Integration Studio / Visual Studio  Custom Code assemblies are bundled with the Application  Custom Code class is instantiated once per application and frontend server (Singleton)  Invoking a method consumes resources of the frontend server. ODC External Logic Actions  Created in a C# IDE of choice (Raider, Visual Studio, Visual Studio Code)  Uploaded via ODC Portal as ZIP package* Each defined method (action) creates an AWS Lambda function  Invoking a method from an ODC application instantiates an isolated execution environment with dedicated resources. Invoking a method in parallel instantiates multiple execution environments for a single method. 3
  • 4.
    Demo – OutSystems11 Singleton Extension Classes 4 4
  • 5.
    ODC Function Invocation SingleExecution Instance  Application calls an ODC Function, which triggers the initialization of a new execution instance.  After initialization, the actual method (Lambda handler) is invoked and upon execution a result is returned to the calling application.  After “some time” the execution instance is shutdown by Lambda service. Single Execution Instance with sequential invocation  After App1 completed its method call and received a result another application (App2) calls the same method. Lambda recognized that there is already a running instance available and reuses that instance. Multiple Execution Instances with parallel invocation  While the call of App1 is still processed by an execution instance another application (App2) tries to call the same method. This leads to provisioning another execution instance. 5
  • 6.
    Demo – Developing andPublishing ODC External Logic Libraries 6 6
  • 7.
    Learn by examplewith a sample application available on Forge https://www.outsystems.com/forge/component- overview/14891/lambda-invocation-sample And my publication on medium.com https://itnext.io/invoking-aws-lambda-functions-in- outsystems-b398d0cdde97 OutSystems 11 and AWS Lambda Leverage synchronous and asynchronous data processing with AWS Lambda in OutSystems 11 using the AWS Lambda Function Invoke Forge Component https://www.outsystems.com/forge/component- overview/14728/aws-lambda-function-invoke 7
  • 8.
    8 OutSystems 11 Extensions .net Framework 4.8  Developed and published using Integration Studio and Visual Studio  Single Instance per application and frontend server At a glance ODC External Logic  .net Framework 6.0  Developed using any C# editor and published by uploading to ODC Portal  One Lambda Function per library method  Multiple execution instances per Lambda function handled by AWS Lambda Services