FREE ELECTRONIC LIBRARY - Theses, dissertations, documentation

Pages:   || 2 |

«Paper 022-2007 %STPBEGIN: How Enterprise Guide® Almost Removed the L-word from My Relationship With SAS® Rupinder Dhillon, Dhillon Consulting Inc., ...»

-- [ Page 1 ] --

SAS Global Forum 2007 Applications Development

Paper 022-2007

%STPBEGIN: How Enterprise Guide® Almost Removed the L-word

from My Relationship With SAS®

Rupinder Dhillon, Dhillon Consulting Inc., Toronto, ON

Peter Eberhardt, Fernwood Consulting Group Inc., Toronto, ON


Somewhere in the SAS Enterprise Guide documentation we read how easy it was to create a SAS stored process write and test your code, add a simple %stpbegin and %stpend and let SAS Enterprise Guide take care of the rest.

Presto, a new stored process ready to conquer the enterprise. Although that might work in the Hello World example, our first stored process project proved that applying the same guidelines to a more complex SAS program was much more challenging. In reality, creating stored processes is more involved than adding the basic syntax, input parameters and macro variables. You must also be aware of the differences that exist between SAS Enterprise Guide and PC SAS sessions, the importance of efficient coding, and the distinctions between the Workspace and Stored Process servers. This paper will step through some “gotcha’s” that may stump you when converting existing code or creating new stored processes from scratch.


There is a real siren song to the concept of unadorned access to parameterized SAS programs; the sort of access that provides an intuitive GUI dialogue box prompting the user to select from a drop down list of inputs or simply type in a few values. All that is left is to do is press ‘Run’ and watch as the results unfold in front of your eyes. In this paper we will discuss how we fell in love with the siren song, how the love turned bitter sweet, and how we kept the love alive by remembering our old flame, SAS. We will start by briefly describing the programs we were tasked with converting to Stored Processes. In order to better understand the SAS Stored Process environment, we will then provide an overview of the SAS Business Intelligence (BI) framework. With this background in place, we will describe some of the challenges we encountered and the lessons we learned along the way.


Our story starts with complex set of financial forecasting models developed by some very clever mathematicians and statisticians. Our job was to convert the SAS code in these models into more generalized programs where all the ‘hard coded’ values, and there were lots of them, were converted to macro variables so the model could be more easily and consistently run by the modelers.Centralizing the parameters as global macro variables would provide two benefits. First, it would allow the modelers to change the parameters without having to search through the thousands of lines of SAS code for each of the values they had hard coded. Secondly, it would help to formalize and document the model.

This initial conversion was successful; the model became completely data driven. Using PC SAS to access data on the network, the modelers could turn around forecast requests in well under an hour where previously it took the better part of a day. However, there were a large number of parameters and a very good understanding of the model was required to correctly assign the macro variables before running the model. Moreover, a number of these parameters were set up to control output so the modelers could validate the run, and to allow data over-rides for more complex scenarios.

With the initial conversion in place and the demand for model results increasing, the decision was made to make the model widely available; business analysts across the organization would have access to the model directly, thus freeing the modelers from the task of running models allowing them to return to the task of developing models. The strategic decision of the organization was to move to the SAS BI architecture and to have SAS Enterprise Guide be the tool of choice to access and analyze data, so the decision was made to convert the model into a SAS Stored Process. Before we describe the issues we encountered in converting the model, let’s look at the SAS BI architecture.


The SAS Intelligence Platform architecture is designed to efficiently access large amounts of data, while simultaneously providing timely intelligence to a large number of users. The platform uses an n-tier architecture that enables you to distribute functionality across computer resources, so that the resources that are best suited to the job

–  –  –

You can easily scale the architecture to meet the demands of your workload. For a large company, the tiers can be installed across a multitude of machines with different operating systems. For prototyping, demonstrations, or very small enterprises, all of the tiers can be installed on a single machine.

The architecture consists of the following four tiers:


Data sources store your enterprise data. All of your existing data assets can be used, whether your data is stored in relational database management systems, SAS tables, or ERP system tables.


SAS servers perform SAS processing on your enterprise data. Several types of SAS servers are available to handle different workload types and processing intensities. The software distributes processing loads among server resources so that multiple client requests for information can be met without delay.


The middle tier enables intelligence data and functionality to be surfaced to users via a Web browser. This tier provides Web-based interfaces for report creation and information distribution, while passing analysis and processing requests to the SAS servers.


The client tier provides users with desktop access to intelligence data and functionality through easy-to-use interfaces. For most information consumers, reporting and analysis tasks can be performed with just a Web browser.

For more advanced design and analysis tasks, SAS client software is installed on users’ desktops.

Now that we’ve set the stage, we’re ready to take a closer look at what’s involved in creating your first Stored Process.


One of the first things that you should decide before you get started is whether your Stored Process will run on Workspace server or a Stored Process Server. In our case, we knew that stored processes could be run on either, but without understanding the more intricate differences between the two, we really didn’t foresee how running on one versus the other would affect the way in which the Stored Process should be coded and developed. It is therefore important to understand the differences between the two before deciding on one over the other and especially before you start your coding.

Before we jump into some of the differences between the Workspace and Stored Process servers, it is worthwhile to note the mechanics of these two servers in the context of SAS’ Integrated Technologies. Both servers are execution servers and allow for distributed processing through various clients – in plain English, both servers allow you to run your SAS programs from different clients (ie.SAS Enterprise Guide, Excel, a web interface) without actually needing SAS on your local computer. You may also hear them commonly referred to as IOM (Integrated Object Model) Servers. Your program of choice, in our case SAS Enterprise Guide, communicates with an IOM Spawner, which in turn connects to either server and allows you to run your SAS code.


The object spawner controls your link to either of the SAS servers. When you run a stored process or any SAS code, the client submits a request to the Spawner which will then either start up a Workspace server session or connect you to an existing Stored Process server session. The Object Spawner is an important component of this scalable architecture since it essentially acts as a gatekeeper, controlling how many sessions are started or how many processes are running on a single server session. The Object Spawner can also be configured to know when to start up a new Stored Process Server versus directing client requests to an existing one. All server connections, and subsequent disconnects are therefore controlled through the Object Spawner which will close and essentially clean up each session once your Stored Process has completed. Here is where the first main difference between the two servers comes in: in the case of the Workspace server, each time the spawner connects, it launches a new server process or SAS session which is dedicated to the SAS process that you are running. In contrast, when running on a Stored Process server you are connecting to a single, continuous SAS session, which you are sharing with other Stored Processes.

SAS Global Forum 2007 Applications Development


The idea of permissions and authentication presents the next major difference between these two servers. We know that one of the basic advantages of the SAS 9 Metadata architecture is the ability to enforce centralized control of data by setting user permissions around data libraries and data access points. Stored Processes also have similar permission settings, which allow you to control who is able to run them. When running Stored Processes on the workspace server, the user’s credentials are passed through to the server and are then used to authenticate access permissions. Since credentials are passed at a user level, you are able to put more flexible controls around the data that a person can access, and the stored processes that the person can run. Under the Stored Process server, the user is connecting to a session that is available to numerous clients and users, and is therefore connecting using a general umbrella SAS user account, usually SASSRV. Consequently, this general SASSRV user id must have fairly wide access privileges. This can cause obvious security concerns when it comes to surfacing sensitive data since you lose the ability to restrict access to different groups or users.


You are able to control the access that different users have by setting the appropriate permissions. Defining permissions allows you to put various restrictions around all of your data and processes such as who can read the data, write to the data source locations, as well as see and change the underlying metadata about your source or process. Furthermore, you are able to put different restrictions on the various data elements. For example, some sensitive data (ie. Employee salaries) should not be readily available to everyone in an organization. You would more than likely want to restrict salary data access to Senior Management while HR should still be able to access other common elements of that data such as the number of active employees. The Metadata architecture allows you to drill down on the levels of the data and set the appropriate permissions on anything that has been defined as a Metadata Object.

In order to facilitate this level of control, your Administrator must define each of your end-user IDs in the Metadata as a ‘User’. In addition to defining these individual Users, you can also define common users as a ‘Group’. This group will share similar permissions and access and are most likely part of the same division or team within an organization.

Once the user IDS are defined in the metadata, you can grant access to these folks so that they may run your Stored Process. As we mentioned earlier, at the moment granting access to your Stored Process to Users and Groups is only possible through the Workspace Server. Future releases may allow the Stored Process Server to authenticate using the User credentials but for now it uses the SASSRV ID.

The following figures depict the process flow involved in running a stored process: (1) The Client Tools will connect to the Metadata Server to authenticate the Users’ permissions; (2) Once authenticated, the client will communicate with the Object Spawner; (3) The Object Spawner will then launch the appropriate server session or connect to an existing one.


Both the Workspace and Stored Process Servers leverage Load Balancing capabilities to improve the performance of the servers. Load Balancing allows you to share or distribute your SAS processes across all available server machines or server processes and is controlled by the Object Spawner. When configured to run as part of a cluster, the Object Spawner is able to communicate with the other Spawners defined in the cluster to determine which server machine has the most resources available to run your process and then passes along your process to be run. The SAS Global Forum 2007 Applications Development difference between the two servers in this context is that the Stored Process Server supports Load Balancing across Server processes rather than across server machines. Since these Server Processes can be running on a single machine or across multiple hosts, the Stored Process server can take advantage of Load Balancing even when running on a single machine. Load Balancing on the Workspace Server however, requires that the Servers in the cluster be running on separate machines so load balancing is not available in a single machine environment.


Pages:   || 2 |

Similar works:

«N Guía del usuario Ordenador Serie VPCEE / Serie VPCEF n2N Contenido Antes del uso Más información sobre el ordenador VAIO Consideraciones ergonómicas Uso de la función Bluetooth Introducción Ubicación de los controles y los puertos Sobre los indicadores luminosos Conexión de una fuente de alimentación Utilización del paquete de batería Apagado seguro del ordenador Uso de los modos de ahorro de energía Mantenimiento del ordenador en condiciones Personalización del ordenador VAIO...»

«VOT 72352 NEW DESIGN OF HIGH VOLTAGE SURGE ARRESTERS (REKABENTUK BARU PENANGKAP PUSUAN VOLTAN TINGGI) AHMAD B. DARUS ZULKURNAIN ABDUL MALEK MOHAMED AFENDI MOHAMED PIAH RESEARCH VOTE NO: Institut Voltan & Arus Tinggi Fakulti Kejuruteraan Elektrik Universiti Teknologi Malaysia ii Acknowledgement The author would like to acknowledge and thank Ministry of Science,Technology and Inovation for providing the grant for this research. iii Abstract Zinc-oxide material is an important and widely used...»

«Environmental Protection Agency Establishment environment; The Environmental Protection Agency Act, 1992, was enacted on 23 April, 1992, and preparation and implementation of a under this legislation the Agency was fornational hydrometric programme for the mally established on 26 July, 1993. collection, analysis and publication of information on the levels, volumes and Responsibilities flows of water in rivers, lakes and The Agency has a wide range of statutory groundwaters; and duties and...»

«RACIST VIOLENCE RECORDING NETWORK FINDINGS 1.1.2012 30.9.2012 It is now commonly accepted that the previous months saw an immense increase in racially motivated violent attacks in Greece. Relevant reports in printed and electronic media reveal that racist attacks have become an almost daily occurrence. According to reports by migrant and refugee organizations, the number of known racist violence incidents does not represent the real extent of this phenomenon in the country. The Racist Violence...»

«University of Limerick Sociology on the web: www.ul.ie/sociology Follow Us On Facebook: http://www.facebook.com/pages/SociologyLimerick Follow us on Twitter @ www.twitter.com/ulsociology Contents Welcome Studying Sociology at UL Undergraduate Modules at a Glance Brief Module Descriptions (Undergraduate) Postgraduate Modules at a Glance Brief Module Descriptions (Postgraduate) What is Sociology? Frequently Asked Questions Department of Sociology Faculty Profiles Socheolas: The Limerick Student...»

«USSOCCER.COM 2013-14 ADVICE TO REFEREES U.S. SOCCER REFEREE PRODUCTS Sold Exclusively by OFFICIAL SPORTS Starter Kits Pro Uniforms Books & Video Accessories & Gear Bags Footwear Off-the-Field Apparel Performance Apparel OFFICIALSPORTS.COM 800-782-2614 Advice to Referees 2013-14 United States Soccer Federation, Inc. 1801 S. Prairie Avenue Chicago, IL 60616 Telephone: 312/808-1300 Fax: 312/808-1301 http: ussoccer.com © 2014 United States Soccer Federation, Inc. All rights reserved. i Contents...»

«BRIO 500CC MULTI-PURPOSE STEAM CLEANER INSTRUCTION MANUAL GUIDE D’UTILISATION NETTOYEUR À VAPEUR À USAGES MULTIPLES MANUAL DE INSTRUCCIONES LIMPIADORA A VAPOR MULTIPROPÓSITO ENGLISH 01 FRANÇAIS 13 ESPAÑOL 23 BRIO 500CC INSTRUCTION MANUAL ENGLISH RELIABLE. RIGHT THERE WITH YOU. At Reliable, we do what we love, and take pride in doing it right. You want what’s best for the people, places and things that matter in your life – from where you live to what you wear. So do we. From the...»

«A Brief Introduction to Scholastic Ontology (excerpt from “Suarez on Metaphysical Inquiry, Efficient Causality, and Divine Action”) Alfred J. Freddoso University of Notre Dame The big picture We are now ready to delve into the ontological presuppositions of Suarez’s treatment of divine causality in Disputations 20-22. My presentation of scholastic ontology will focus on the notions of substance and accident and on the types of ontological composition commonly invoked by scholastic...»

«Available online at www.sciencedirect.com Procedia Engineering 00 (2015) 000–000 www.elsevier.com/locate/procedia 24th International Meshing Roundtable (IMR24) Thin-Plate-Spline Curvilinear Meshing on a Calculus-of-Variations Framework Shankar P. Sastry*a, Vidhi Zalaa, Robert M. Kirbya a Scientific Computing and Imaging Institute, University of Utah, Salt Lake City, UT 84112, U.S.A. Abstract High-order, curvilinear meshes have recently become popular due to their ability to conform to the...»

«The Advisors’ Inner Circle Fund Westwood Strategic Global Convertibles Fund Summary Prospectus | March 1, 2016 Ticker: Institutional Shares — WSGCX Before you invest, you may want to review the Fund’s complete prospectus, which contains more information about the Fund and its risks. You can find the Fund’s prospectus and other information about the Fund online at http://www.westwoodfunds.com/literature/RegulatoryDocuments.aspx. You can also get this information at no cost by calling...»

«Do Elephants Have Souls? Caitrin Nicol There is mystery behind that masked gray visage, an ancient life force, delicate and mighty, awesome and enchanted, commanding the silence ordinarily reserved for mountain peaks, great fires, and the sea.     eter Matthiessen, The Tree Where Man Was Born –P The birth of an elephant is a spectacular occasion. Grandmothers, aunts,  sisters, and cousins crowd around the new arrival and its dazed mother, ...»

«ISIL: Nationals of ICC states parties committing genocide and other crimes against the Yazidis Requesting the commencement of a preliminary examination in the situation involving genocide and other crimes committed against the Yazidis in Sinjar and Nineveh Plains since August 2014 Submitted by Yazda and the Free Yezidi Foundation Supported by the Kurdistan Regional Government of Iraq September 2015 REDACTED About the Authors Yazda is a global Yazidi organization. It is registered as a nonprofit...»

<<  HOME   |    CONTACTS
2016 www.theses.xlibx.info - Theses, dissertations, documentation

Materials of this site are available for review, all rights belong to their respective owners.
If you do not agree with the fact that your material is placed on this site, please, email us, we will within 1-2 business days delete him.