Easy AF SCL Modernisation with HTML5 and SAS
A long time ago in a galaxy far, far away - the only SAS available was Base SAS. Options to surface SAS in an interactive way to business users were limited - and so the "Application Facility" (AF) was introduced which enabled 'drag and drop' development of business applications using a selection of Frames and point & click interfaces.
SAS Component Language (SCL), was implemented as an extension to the regular SAS Language in order to support the complex requirements of these new applications. Powerful constructs such as methods, classes and slists (analogous to JSON), along with compilation, enabled operational applications that were fast and flexible and robust.
The fact that thousands of SCL applications are still in operation today, is testament to the strength of /AF. However.. There are some drawbacks.
SECURITY. It is tricky to lock down an SCL application. Configuration (.cfg) files can be overridden, and database access requires custom password handling, or worse - embedded system passwords. A user can easily CTRL+TAB to break out of a frame, and gain access to catalogs / data.
SCALABILITY. Each /AF app requires desktop deployment and configuration. This is generally a non-trivial exercise, both to deploy and un-deploy.
SUPPORT. Not only is the number of new SCL developers dwindling, the evolving nature of Enterprise IT infrastructure can also be an issue. AF apps cannot be migrated "as is" to a SAS EBI environment.
COST. The Application Facility runs in Base SAS, which means individual SAS licences are required for every user.
Despite the above, many organisations choose to keep running their legacy AF due to the costs and risks of performing a complete rebuild. Which is understandable (if it ain't broke..)
But.. what if a complete rebuild was unnecessary? What if you could transcode your existing SCL files into a format that can be executed directly in Base SAS? What if your Frames could be wireFramed - and knocked up by a dedicated Front End web developer in next to no time?
The possibility to turn your legacy AF into a lightning fast web application becomes apparent. Your app is now secured on the Mid-Tier behind SASLogon authentication, with every request authorised by the Metadata server. Scaling is a piece of cake. Your web app is built using standard development frameworks, and your SAS code is accessible via regular .sas files (no catalogs / class files / compilation issues).
领英推荐
Of course, your SAS Services will need to be documented. Developers who are proficient in both SAS and modern HTML5 frameworks are like unicorns! Thankfully the use of a standardised connector such as the SASjs adapter, along with a simple explanation of the inputs / outputs for each Service (Stored Process), means your web developer needs zero knowledge of SAS.
Your project can now be broken into a number of streams:
1) Backend SAS. The transcoding of source entries, slists and other catalog content into Stored Processes, datasets and macros.
2) Frontend Web. Use screenshots, recordings and optionally, wireframes so that your frontend web developer knows what to build.
3) Service Definitions. Each Stored Process should have clearly documented inputs, outputs, and permissions. To speed front end development, consider 'placeholder' SAS services, with dummy data. This enables the end result to be quickly demonstrated to users, minimising the impact of missed expectations.
4) Continuous Deployment. Deliver working software with new features in every sprint, and iterate until complete.
What's that? I hear you say.. My business critical AF desktop application can be migrated to a secure, scalable, supportable and future-proof HTML5 web app without installing or compiling any software or even leaving the SAS environment?
Yes - it's true. If you are curious to know more it would be great to see you at the UK Forum next week. I'll be presenting along with Nik Markovic and Michael Saunders on Tuesday at 4pm in Vox 3.
Edit: the slides from that UK forum presentation are available here. Further resources:
Low-code practitioner | IT Lead of OTP Group Retail Loan Origination Program
3 年I recall I was a rookie at SAS 20 years ago and I had to learn AF and SCL and pass an exam (I admire Bernadett Szabo for her support that time). I was seriously considering quitting during my probation period then :) but #nevergiveup I learnt it and developed quite a few applications since then. but it is realy a right time to move to a nicer and more efficient #frontend framework, right Helga Kozma? :)
sounds cool.
Director of Sales (North America) at IVIX
7 年Clever title! Caught MY attention :-)
Nice high level summary of the challenges and value prop for a modern SAS AF replacement strategy. I work in the government space where there are many legacy AF applications still operating today.
ICT professional (SAS BI EM DA)
7 年some elaboration on high level concepts.. https://www.slideshare.net/rdamhof/sas-insight-sessie-data-management-data-quadrant-model slide 32. Most of with SAS have landed in III "shadow IT, Ad-hoc, Once off" but want to go to II "Context". That is factory delivered way of delivering wiht well defined IT support. The way of going III into II directly is almost impossible. So what is going on in more details.... Just connect those quadrants organisationsl wiht this big data concept. https://www.dhirubhai.net/pulse/big-data-reference-architecture-martijn-imrich/ The post of Allan is a good one for replacing old fashioned AF, but I would like to add those high level concepts.