Top Banner
Using OpenEdge, Corticon, Rollbase and Node.js to create a dynamic, rule- and model-driven Web-UIMike Liewehr AKIOMA Software
27

“Using OpenEdge, Corticon, Rollbase and Node.js to create a dynamic, rule- and model- driven Web-UI” Mike Liewehr AKIOMA Software.

Dec 17, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: “Using OpenEdge, Corticon, Rollbase and Node.js to create a dynamic, rule- and model- driven Web-UI” Mike Liewehr AKIOMA Software.

“Using OpenEdge, Corticon, Rollbase and Node.js to create a dynamic, rule- and model-driven Web-UI”

Mike LiewehrAKIOMA Software

Page 2: “Using OpenEdge, Corticon, Rollbase and Node.js to create a dynamic, rule- and model- driven Web-UI” Mike Liewehr AKIOMA Software.

2

Agenda

The Idea

The Solution

Technical overview

Architecture explained on a live sample

Detailed technical explanation

Q&A

Page 3: “Using OpenEdge, Corticon, Rollbase and Node.js to create a dynamic, rule- and model- driven Web-UI” Mike Liewehr AKIOMA Software.

3

The Idea

“Building web based configuration forms for self service sales of complex productswithout coding”

Page 4: “Using OpenEdge, Corticon, Rollbase and Node.js to create a dynamic, rule- and model- driven Web-UI” Mike Liewehr AKIOMA Software.

The Idea

4

Build complex, web based configuration forms without codingExamples:

…Car configurator

…custom-built machines

…Online Insurance Enrollment

Technically these are all similar

Page 5: “Using OpenEdge, Corticon, Rollbase and Node.js to create a dynamic, rule- and model- driven Web-UI” Mike Liewehr AKIOMA Software.

The previous Solution

Creating Data Structure(Database, etc.)

Design and coding of the web-based configuration forms

Definition and coding of the configuration rules (logic)

Time-to-Market of 6-12 months

Enormous costs for development

Page 6: “Using OpenEdge, Corticon, Rollbase and Node.js to create a dynamic, rule- and model- driven Web-UI” Mike Liewehr AKIOMA Software.

Example

Short Term Plans Health

Applicant

Spouse

Children

Gender?Male Female

Tobacco use?Yes No

Pregnant?Yes No

Dental

Page 7: “Using OpenEdge, Corticon, Rollbase and Node.js to create a dynamic, rule- and model- driven Web-UI” Mike Liewehr AKIOMA Software.

?

If „male“ dont ask for pregnancy

Page 8: “Using OpenEdge, Corticon, Rollbase and Node.js to create a dynamic, rule- and model- driven Web-UI” Mike Liewehr AKIOMA Software.

Rules

AKIOMA.Config!

Data Structure

Short Term Plans

HealthDental

Applicant

SpouseChildren

Gender?MaleFemale

Tobacco use?YesNo

Pregnant?YesNo

ConfigurationForm

Page 9: “Using OpenEdge, Corticon, Rollbase and Node.js to create a dynamic, rule- and model- driven Web-UI” Mike Liewehr AKIOMA Software.

Rules

AKIOMA.Config!

Short Term Plans Health

Applicant

Spouse

Children

Gender?Male Female

Tobacco use?Yes No

Pregnant?Yes No

Dental

Page 10: “Using OpenEdge, Corticon, Rollbase and Node.js to create a dynamic, rule- and model- driven Web-UI” Mike Liewehr AKIOMA Software.

10

Live Demo

Page 11: “Using OpenEdge, Corticon, Rollbase and Node.js to create a dynamic, rule- and model- driven Web-UI” Mike Liewehr AKIOMA Software.

11

Requirements and challenges

Data definitions vary greatly (cars, machines, people, policies…)• Need a way to define data definition by end-user

Rich Browser-based UI• UI has to be very flexible and dynamic, support for rich components

Complex rules, that are fully customer driven• Allow to define complex rules without coding

Performance! • UI has to adapt in real-time

Challenges that came up when building the solution…

Page 12: “Using OpenEdge, Corticon, Rollbase and Node.js to create a dynamic, rule- and model- driven Web-UI” Mike Liewehr AKIOMA Software.

12

Technology stack used

Challenges that came up when building the solution… …and the Products to solve them:

Data definitions vary greatly (cars, machines, people, insurance…)• Progress Rollbase

Rich UI which has to be very flexible and dynamic• AKIOMA HTML5-Client

Complex rules, that are fully customer driven• Progress Corticon

Performance! -> UI has to adapt in realtime• Node.JS / Socket.IO / node4Progress / ABL

Page 13: “Using OpenEdge, Corticon, Rollbase and Node.js to create a dynamic, rule- and model- driven Web-UI” Mike Liewehr AKIOMA Software.

13

Technical details

Server

• Rulesheet• Vocabulary

Corticon Rulesengine• Socket.IO• Node4Progress

Node.js

Client

• HTML5• JavaScript• SWAT UI• Socket.IO

Webbrowser

• screenDS• AKIOMA

UIConnector

OpenEdge Appserver

Page 14: “Using OpenEdge, Corticon, Rollbase and Node.js to create a dynamic, rule- and model- driven Web-UI” Mike Liewehr AKIOMA Software.

14

Detailed explanation

Build some stuff to see how everything works together

Page 15: “Using OpenEdge, Corticon, Rollbase and Node.js to create a dynamic, rule- and model- driven Web-UI” Mike Liewehr AKIOMA Software.

Technical details

15

Server

Client

ABCD

1234

ABCD

1

3

- HTML 5- JavaScript- SWAT UI- Socket.IO

OE Appserver- ScreenDS- AKIOMA

UI Connector

Node.js- Socket.IO- Node4Progress

Corticon Rules Engine- Rule Sheet- Vocabular

8

24

4

4

8

Page 16: “Using OpenEdge, Corticon, Rollbase and Node.js to create a dynamic, rule- and model- driven Web-UI” Mike Liewehr AKIOMA Software.

Introduction to Node & Node4Progress

16

About Node Server side javascript engine Lightweight, scalable and fast Implements non-blocking programming model

using callback procedures Allows you to build web applications with features

that cannot be accomplsihed any other way Hot technology

Microsoft is going Node, Progress is going Node, everybody is going Node

Page 17: “Using OpenEdge, Corticon, Rollbase and Node.js to create a dynamic, rule- and model- driven Web-UI” Mike Liewehr AKIOMA Software.

Introduction to Node & Node4Progress

17

About node4progress Bridge for accessing business logic on appserver directly from

Node Developed by Frank Hilhorst from Progressive Consulting Open Source Small foot print (4MB) Fast Easy to install

Npm install node4progress Communicates with appserver through Java

OpenClient

Page 18: “Using OpenEdge, Corticon, Rollbase and Node.js to create a dynamic, rule- and model- driven Web-UI” Mike Liewehr AKIOMA Software.

Node4Progress Features and characteristics

18

Supports 2 methods for calling an appserver procedure Calling a handler Dynamic appserver call

Employs dataset object modelled after Progress ProDataset

Page 19: “Using OpenEdge, Corticon, Rollbase and Node.js to create a dynamic, rule- and model- driven Web-UI” Mike Liewehr AKIOMA Software.

Converting output parameters of an Appserver procedure into a JSON structure

19

{"output":{ "OutputParametes-1" : ".....", "OutputParametes-2" : ".....", "dsCustomer" : {...}, “ErrMsg" : "" }, "error": "“}

Root level output tag contains output parameters from appserver procedure

Root level error tag contains error message if execution of appserver procedure failed

Page 20: “Using OpenEdge, Corticon, Rollbase and Node.js to create a dynamic, rule- and model- driven Web-UI” Mike Liewehr AKIOMA Software.

Calling a handler

20

var node4progress = require("node4progress")(null);var handler = "handlers/CustomerHandler.p";var inputPars = "NumCustomersToPull=2";

node4progress.callHandler(handler, inputPars, function(err,result){

console.log(result);});

Page 21: “Using OpenEdge, Corticon, Rollbase and Node.js to create a dynamic, rule- and model- driven Web-UI” Mike Liewehr AKIOMA Software.

Approach to calling any appserver procedure dynamically

21

Define appserver procedure to call Node4progress.setAppSvrProc(....);

Define each parameter Node4progress.setParameter(......);

Define callback procedure Invoke appserver procedure

Node4progress.invoke(callback);

Page 22: “Using OpenEdge, Corticon, Rollbase and Node.js to create a dynamic, rule- and model- driven Web-UI” Mike Liewehr AKIOMA Software.

22

Node.js / Socket.IO

Node.js required for Socket.IO

Why we used Node.js

Easy to use messaging from server to client (browser)

Shields us from browser incompatabilities

Fast

Page 23: “Using OpenEdge, Corticon, Rollbase and Node.js to create a dynamic, rule- and model- driven Web-UI” Mike Liewehr AKIOMA Software.

23

Corticon

Complex rules without any coding

Why we used Corticon

Easy integration with OpenEdge

Very good API

Fast

Page 24: “Using OpenEdge, Corticon, Rollbase and Node.js to create a dynamic, rule- and model- driven Web-UI” Mike Liewehr AKIOMA Software.

24

Rollbase

Can create apps very rapidly

Why we used Rollbase

Integration with OpenEdge

API available

Easily create / change data structure (no coding, no DBA)

Page 25: “Using OpenEdge, Corticon, Rollbase and Node.js to create a dynamic, rule- and model- driven Web-UI” Mike Liewehr AKIOMA Software.

25

wishlist

Access to all functionality through APIs

1 common Repository for all Progress Products

1 Visual Design Tool

Native node.js integration (like Edge.js)

Further integration of Progress Products

Web-ui and Multitenancy for all products

Page 26: “Using OpenEdge, Corticon, Rollbase and Node.js to create a dynamic, rule- and model- driven Web-UI” Mike Liewehr AKIOMA Software.

26

Summary

Progress offers great products

Combined they provide even more value

The whole is more than the sum of its parts

Node.JS is here to stay and provides great value for Progress partners

Page 27: “Using OpenEdge, Corticon, Rollbase and Node.js to create a dynamic, rule- and model- driven Web-UI” Mike Liewehr AKIOMA Software.

27

Questions?

Questions?