Master Your Domain: Automated Software Distribution In A Client/Server Environment Jeff Lessenberry, Jeff Lessenberry Consulting Group



Similar documents
9.1 SAS/ACCESS. Interface to SAP BW. User s Guide

Using Pharmacovigilance Reporting System to Generate Ad-hoc Reports

SUGI 29 Applications Development

Using Version Control and Configuration Management in a SAS Data Warehouse Environment

Effective Use of SAS/CONNECT ~ Cheryl Garner SAS Institute Inc., Cary, NC

Moxa Device Manager 2.3 User s Manual

An Introduction to SAS/SHARE, By Example

Primavera P6 Professional Windows 8 Installation Instructions. Primavera P6. Installation Instructions. For Windows 8 Users

PharmaSUG Paper AD11

Case Closed Installation and Setup

Interfacing SAS Software, Excel, and the Intranet without SAS/Intrnet TM Software or SAS Software for the Personal Computer

Windows 7 Hula POS Server Installation Guide

Installation Guide - Client. Rev 1.5.0

HOW TO SILENTLY INSTALL CLOUD LINK REMOTELY WITHOUT SUPERVISION

User Guide Microsoft Exchange Remote Test Instructions

Server & Workstation Installation of Client Profiles for Windows

SAS, Excel, and the Intranet

Check current version of Remote Desktop Connection for Mac.. Page 2. Remove Old Version Remote Desktop Connection..Page 8

RecoveryVault Express Client User Manual

Server & Workstation Installation of Client Profiles for Windows (WAN Edition)

Online Backup Client User Manual

Online Backup Linux Client User Manual

Improving Your Relationship with SAS Enterprise Guide

Online Backup Client User Manual

Importing Excel File using Microsoft Access in SAS Ajay Gupta, PPD Inc, Morrisville, NC

Storage Sync for Hyper-V. Installation Guide for Microsoft Hyper-V

SAS University Edition: Installation Guide for Windows

SAS Client-Server Development: Through Thick and Thin and Version 8

Online Backup Client User Manual

Determine What SAS Version and Components Are Available

Backup Server DOC-OEMSPP-S/6-BUS-EN

Using the Local Document Organizer in ProjectWise

EZblue BusinessServer The All - In - One Server For Your Home And Business

How To Create An Easybelle History Database On A Microsoft Powerbook (Windows)

Communications Access Methods for SAS/CONNECT 9.3 and SAS/SHARE 9.3 Second Edition

Online Backup Client User Manual Mac OS

Online Backup Client User Manual Mac OS

Retailman POS Multi-location Setup

Lab 5 Managing Access to Shared Folders

SOA Software API Gateway Appliance 7.1.x Administration Guide

SAP Predictive Analysis Installation

Out n About! for Outlook Electronic In/Out Status Board. Administrators Guide. Version 3.x

General Guide to Installation and Migration for Client/Server BAMS/DSS. Release 6.0

MEDIA WAREHOUSE / Telenor Media

1. Product Information

Online Backup Client User Manual Linux

Bitrix Site Manager ASP.NET. Installation Guide

CompleteView Admin Console Users Guide. Version Revised: 02/15/2008

Remote Online Support

OS/2: TELNET Access Method

Universal Management Service 2015

Item Audit Log 2.0 User Guide

Option 1 Using the Undelete PushInstall Wizard.

A-AUTO 50 for Windows Setup Guide

Communications Access Methods for SAS/CONNECT 9.4 and SAS/SHARE 9.4 Second Edition

SAS 9.4 PC Files Server

Interworks. Interworks Cloud Platform Installation Guide

Test Automation Integration with Test Management QAComplete

PuTTY/Cygwin Tutorial. By Ben Meister Written for CS 23, Winter 2007

Pharos Uniprint 8.4. Maintenance Guide. Document Version: UP84-Maintenance-1.0. Distribution Date: July 2013

Frequently Asked Questions

FACULTY GETTING STARTED WITH i>clicker2

Quick Start Guide. Cerberus FTP is distributed in Canada through C&C Software. Visit us today at

Centralized Disaster Recovery using RDS

Administration & Support

CafePilot has 3 components: the Client, Server and Service Request Monitor (or SRM for short).

24x7 Scheduler Multi-platform Edition 5.2

HELP DOCUMENTATION E-SSOM DEPLOYMENT GUIDE

PaperStream Connect. Setup Guide. Version Copyright Fujitsu

Pearl Echo Installation Checklist

HP Operations Manager Software for Windows Integration Guide

SAS 9.3 Intelligence Platform

About This Guide Signature Manager Outlook Edition Overview... 5

START YOUR INVENTORY WITH SCANFRE

WatchDox for Windows User Guide. Version 3.9.0

Scheduling in SAS 9.4 Second Edition

SAS 9.4 Installation Instructions Summary

Workflow Templates Library

FalconStor Recovery Agents User Guide

Montefiore Portal Quick Reference Guide

Millennium Drive. Installation Guide

Monitoring Oracle Enterprise Performance Management System Release Deployments from Oracle Enterprise Manager 12c

5. At the Windows Component panel, select the Internet Information Services (IIS) checkbox, and then hit Next.

Georgia State Longitudinal Data System

User Management Tool 1.6

PingFederate. Identity Menu Builder. User Guide. Version 1.0

QNAP SYSTEMS INC. QNAP Digital Signage Player Web Console Manual

EZblue BusinessServer The All - In - One Server For Your Home And Business

Scheduling in SAS 9.3

Quick Start Guide. Hosting Your Domain

Accessing a Remote SAS Data Library. Transcript

QAD Enterprise Applications. Training Guide Demand Management 6.1 Technical Training

Moxa Device Manager 2.0 User s Guide

inforouter Version 8.0 Administrator s Backup, Restore & Disaster Recovery Guide

Installation Guide: Delta Module Manager Launcher

Administration Guide for the System Center Cloud Services Process Pack

Carl R. Haske, Ph.D., STATPROBE, Inc., Ann Arbor, MI

Transcription:

Master Your Domain: Automated Software Distribution In A Client/Server Environment Jeff Lessenberry, Jeff Lessenberry Consulting Group Abstract So many application changes but so little time. This paper will address the problem of distributing software to users across the hall or across the country. As companies become more departmentalized, the red tape involved in adding or updating an application grows exponentially. Just as too many cooks can spoil the soup, dealing with multiple server administrators and installation personnel can cause major synchronization problems. By automating the software distribution process, the user can have the latest and greatest software with a transparent update process. The techniques discussed in this paper utilize current day technology rather than vaporware. Introduction Some of us old timers might remember when the worlds' biggest fear was nuclear war not Y2K and the only computers were mainframes. Distribution of software was much simpler when everyone was using a dumb terminal and all of the applications resided on one machine. The creation of the personal computer brought control back to the user and made Bill Gates millions in software license fees. Users soon realized they had lost access to their data so client/server systems were born. The development of the client/server system also created a centralized location for software distribution. This paper will show one way to exploit the client/server platform to distribute software. Preparing the Files The first step is to pick a naming convention that will allow the application files to be chosen for update. The following naming convention to worked best for my needs: Signifies zip file Date file was updated ZIP_STATMENU_02SEP1999.EXE Application name By choosing the previous naming convention, the application can determine which files are current and which files need to be updated. The upload file is in a self-extracting zip file for several reasons: 1. You can zip all files needed by an application like application catalogs, SAS/EIS files, and data templates. 2. If the application frame is filled with a tab layout object and also contains a tab layout object on one of the main tabs it can not be uploaded using the PROC UPLOAD. If this process is attempted to server connection will crash. 3. The most important reason is SPEED. The size of a zip file is much smaller than the individual files. Your network administrator will thank you for decreasing the network traffic. The self-extracting zip file must be uploaded to the client/server box using PROC UPLOAD. The format of the PROC UPLOAD process is the following: Filename lziprefs c:\apps\enus\rsas612\proj\unixzips'; Rsubmit; Filename rzipref '/grq/busdata/rgrq/mna1/enus/user/apps'; proc upload infile = lziprefs(zip_vector_09aug1999.exe) outfile = rzipref(zip_vector_09aug1999.exe) binary ; quit; End Client/Server System ZIP_STATMENU_02SEP1999.EXE Statmenu.sc2 Eisapps.sc2 Eisapps.sd2 Eisapps.si2 Eismeta.sc2 Eismeta.sd2 Eismeta.si2

Running the Process If the application runs at multiple sites, only two items must be distributed to each site for the startup process; a startup icon and a SAS initialization program. The initialization program defines the applications libraries and sets SAS environmental options. The startup command line is the following: C:\SAS\sas.exe -autoexec c:\sas\strtmenu.sas -initcmd "af c=menuproj.strtmenu.start.frame" -awscontrol notitle -awsdef 0 0 100 100 The following is an example of the initialization files to start the application: options noxwait; libname menuproj 'c:\statmath\solution\apps'; options font='sasfont' 8; A download screen is displayed to keep the user occupied while the application checks the version numbers and updates old files. STRTMENU.FRAME

STRTMENU.SCL INIT: control asis; /* Define Server Name */ server='oncpltp1'; /* Check for application path */ ex = fileexist('c:\statmath\solution'); if ex = 0 then do; rc= system('md c:\statmath'); rc= system('md c:\statmath\solution'); rc= system('md c:\statmath\zipfiles'); rc= system('md c:\statmath\sasfiles'); CALL send(_self_,'_refresh_'); /* Create login script at runtime (Security) */ link SCRPTSET; /* Login to server using anonymous login */ filename rlinklog 'THELOGFILE.scr'; proc printto log=rlinklog new; filename rlink 'THESCRIPT.scr'; options comamid = TCP remote = &server; signon rlink; libname remapps slibref=appslib server=&server;; rapps = pathname('remapps'); libname remapps ; /* Download comparison application to PC */ proc download incat=appslib.download outcat=work.download status=n; /* Run comparison remotely */ proc display c=appslib.download.remchk.scl;quit; proc display c=work.download.localchk.scl;quit; /* Sort and Merge result files - keep new only */ proc sort data=loczips; proc sort data=rwork.remzips; data allzips; merge work.loczips rwork.remzips; if remdate = locdate then delete; filename lzipref 'c:\statmath\zipfiles'; filename rzipref '&rapps'; /* Load file names into SCL lists */ zipfile = open('allzips'); if attrn(zipfile,'nlobs') ne 0 then do; call notify('chkver','_set_text_', 'Downloading New Versions...'); CALL send(_self_,'_refresh_'); lziplist=makelist(); rziplist=makelist(); lev=0; rc=lvarlevel(zipfile,'lzipname',lev,lziplist); rc=lvarlevel(zipfile,'rzipname',lev,rziplist); /* Delete old zip files */ do it = 1 to listlen(lziplist); delfile = getitemc(lziplist,it); if delfile ne '' then do; rc=filename ('delref',"c:\statmath\zipfiles\"!!delfile); rc=fdelete('delref'); rc=filename('delref',''); /* Setup zip file list */ zipsrun = makelist(); do it = 1 to listlen(rziplist); copyfile = getitemc(rziplist,it); cpyfile = "c:\statmath\zipfiles\"!!trim(left(copyfile))!!" -d -o c:\"; rc=insertc(zipsrun,cpyfile,-1); libname rwork slibref=work server=&server; /* Run comparison locally */

/* Download zip files */ proc download infile=rzipref(&copyfile) outfile=lzipref(&copyfile) binary status=n; quit; Start Process Initial Setup No Yes Create Directories /* Create and run batch file for zip extraction */ rc=savelist('file','runzipsbatfile.bat',zipsrun); x 'runzipsbatfile.bat'; rc=filename('delref',"runzipsbatfile.bat"); rc=fdelete('delref'); rc=filename('delref',''); Log into Server box Anonymously Download & Run the comparison application /* Define library and clean up (Security) */ libname proj 'c:\statmath\solution\apps'; signoff; proc printto; dm 'clear recall'; drc=fdelete('rlink'); drc=fdelete('rlinklog'); rc=filename('rlink',''); rc=filename('rlinklog',''); Are there new files? No Download & Unzip files. Yes /* Run Menu Screen */ call display('proj.statmenu.menu.frame'); _status_='h'; return; Clean up & run menu. End Process

Benefits Automated software distribution makes updates painless for the developer and transparent for the users. The above menu screen is an example of how applications can be added or removed from the selections by updating one centrally located frame. The user will automatically receive the updated menu the next time the application is activated. Synchronization is not an issue since all users will get the updated files. This is an important benefit, if the application runs at several sites in multiple countries. This returns application control to the developer and decreases the amount of bureaucracy that is involved in updating an application. User tracking is another benefit of using this process. Tracking which applications the users are running has many benefits. Future application update decisions can be made using this feature. If an application is only used three times in six months, should money be allocated toward enhancing it? Knowing the volume of users can be useful in determining the effect on network throughput. If the usage numbers increase, this can show cause for allocating a better network line or even the purchase of a new server box. Conclusion The faster changes can be fixed or new applications installed, the happier the client will be. This process uses current SAS processes to accomplish these tasks. I am the first person to ooh and ah over the new shinny toy but I will settle for an older one that works well now. Only the time can reveal what products will be introduced in the future but I have found nothing beats a little thing called - creativity. Acknowledgements SAS, SAS/EIS, SAS/AF, SAS/CONNECT and all other SAS references are registered trademarks or trademarks of SAS Institute Inc. in the USA and other countries. â indicates USA registration. Jeff Lessenberry Jeff Lessenberry Consulting Group Telephone: (864) 243-9761 Email: JLCG@Mindspring.com