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
PhUSE 2017: Apps for your Enterprise with SAS and HTML5
By Nikola Markovic
PhUSE 2017: Apps for your Enterprise with SAS and HTML5
- 696