Build Apps for your Enterprise

with SAS and HTML5

Nikola Markovic

Boemska

10th October 2017

Who I am

I am Nik. I run Boemska. We are a SAS Partner consultancy. We don't work much with Pharma but we know SAS and build a lot of Apps for our clients. Anything from legacy SAS/AF application modernisations, to Mobile apps, to some pretty big bespoke systems. All on SAS.

 

I'm a nerd and I get carried away quite easily. I'm trying to keep this as brief as I can on purpose.

What I will do

First I'll show you some apps
 

Then I'll go through how they work
 

Then I'll briefly touch on architecture (sizing, scaling, impact)
 

Then I'll talk about why
I think this is really important
 

...then questions

What I will talk about

What HTML5 Apps are

How we build them using SAS

Why we build them using SAS

Questions

What is a HTML5 App

An App that loads and runs in the browser

 

and

 

Any 'native-ish' App that uses those same browser technologies
(most apps today)

How a HTML5 App works

How a SAS-powered HTML5 App works

What is H54S

A terribly named open-source library that 

lets HTML5 developers & SAS developers

easily work together to develop

HTML5-based Enterprise Apps

Boemska HTML5 Data Adapter for SAS

How a HTML5 SAS App works

How a HTML5 SAS App works

%include '/pub/sasautos/h54s.sas';

%hfsGetDataset(datain,work.additions);

data back;
  set sashelp.class 
    (obs=3 keep=name sex weight) 
    work.additions;
run;

proc sort data=mydata; by name; run;

%hfsHeader;
  %hfsOutDataset(rtrnd, work, back);
%hfsFooter;
var adapter = new h54s({hostUrl: 'myServer:8080/'});

var myFirstTable = [
  { name: 'Allan', sex: 'M', weight: 101.1 },
  { name: 'Abdul', sex: 'M', weight: 133.7 }
];

var tables = new h54s.Tables(myFirstTable, 'datain');


adapter.call('/Apps/myFirstService', 
        tables, function(err, res) {
  if(err) {
    console.log(err);               
  } else {
    console.log(res.rtrnd);
  }
});

H54S Features & Examples

  • Bidirectional Data Transport

uses datasets as primary atomic format
​(superseding parameters)

  • Clientside logging & system messaging facility

​(making apps far easier to support)

H54S Features & Examples

  • SAS Log handling

H54S Features & Examples

  • Handling of clientside sessions & SASLogon Redirects
     
  • Beautiful integration with APIs & Open Source
    (AngularJS, PostgreSQL, PostGIS, Google Maps)

H54S Features & Examples

  • Role Based Access dictated by Metadata Permissions

Architecture Benefits

(Enterprise Integration)

  • Out-Of-Box Single Sign-On
     
  • Pre-configured Transport Level Security
     
  • Per-request Authorisation
     
  • Granular, role based Metadata security

(happy to talk about this for hours)

Deployment & BAU Benefits

 

  • Easy deployment into SAS 9.4:
    Web/WebServer/htdocs & a SAS .spk
     
  • All user & role management is controlled by Metadata & governed by existing SAS Management Console admins
     
  • Completely independent of IT or infrastructure
     
  • Easily maintaned by hugely available commodity skillsets

Alternatives

  • IT owned & not Business User Friendly
    (.NET, Java & co)

    or
     
  • Lacking a competent Integration Layer
    (Mendix, Appian & the new breed)

    or
     
  • Proprietary (some outright Bad)
    (yes I mean UI5)

The Bigger Picture

in your current Enterprise

RAPID development, because of

literally zero up front startup cost.
 

Fully HTML5 Standard compliant.
No compromises made, no proprietary components.

 

Apps are just another form of Data Management,
developed and owned by the Business.

The Future Picture

is far closer than you think

Apps that feature:
 

  • Image Recognition
  • Machine Learning
  • Elastic Scaling

...
(!!!)



 

What I talked about

What HTML5 Apps are

How we build them using SAS

Why we build them using SAS

Questions

What we're doing to help

AngularJS Seed App

OpenUI5 Seed App if you like pain

SASHOT Table Editor

HTML5 Data Adapter