December 6, 2000www.eecs.tufts.edu/~couch/babble An Expectant Chat about Script Maturity Dr. Alva L. Couch Electrical Engineering and Computer Science.

Slides:



Advertisements
Similar presentations
An Internet Banking Framework with Perl Javier Rodríguez, Carlos de la Guardia. Aldea Internet, México.
Advertisements

OS Components and Structure
Coding and Debugging. Requirements and Specification Recall the four steps of problem solving: Orient, Plan, Execute, Test Before you start the implementation.
Security Issues and Challenges in Cloud Computing
Software Engineering and Design Principles Chapter 1.
Nooks: an architecture for safe device drivers Mike Swift, The Wild and Crazy Guy, Hank Levy and Susan Eggers.
PowerPoint Presentation for Dennis, Wixom & Tegarden Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Slide 1.
Karlstad University Computer Science Design Contracts and Error Management Design Contracts and Errors A Software Development Strategy (anpassad för PUMA)
1 CMSC 132: Object-Oriented Programming II Software Development III Department of Computer Science University of Maryland, College Park.
Introduction to Software Engineering CS-300 Fall 2005 Supreeth Venkataraman.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
Executive Overview. PLEASE READ (hidden slide) To deliver this presentation effectively, you need to be familiar with Windows Server 2008 R2 management.
H-1 Network Management Network management is the process of controlling a complex data network to maximize its efficiency and productivity The overall.
#RefreshCache CI - Daily Builds w/Jenkins – an Open Source Continuous Integration Server Nick Airdo Community Developer Advocate Central Christian Church.
Copyright © 2011 Pearson Education, Inc. Publishing as Prentice Hall 1 Building Applications.
Struts 2.0 an Overview ( )
Introduction to High-Level Language Programming
Chapter 7 Designing Classes. Class Design When we are developing a piece of software, we want to design the software We don’t want to just sit down and.
Languages and Environments Higher Computing Unit 2 – Software Development.
WorkPlace Pro Utilities.
Managing Research Group Web Sites with a Database and Perl Geoffrey Hing Stephen Conley
TESTING.
GENERAL CONCEPTS OF OOPS INTRODUCTION With rapidly changing world and highly competitive and versatile nature of industry, the operations are becoming.
Open Source Software An Introduction. The Creation of Software l As you know, programmers create the software that we use l What you may not understand.
Seth Gibson Rapid Experience Development Build It On Stone.
FIRST day of… …WORK Page>>
Challenges of Self-Managing Systems: a System Administrator’s Perspective Dr. Alva L. Couch, Associate Professor of Computer Science, Tufts University,
Development Strategies for Web Applications Jonathan Babbage National Superconducting Cyclotron Laboratory.
Milestone III BRIAN WYKA.  Web-based project manager  Ideal for small company  Portal for employees to interact with each other  A way for administrators.
General Programming Introduction to Computing Science and Programming I.
Section 1: Introducing Group Policy What Is Group Policy? Group Policy Scenarios New Group Policy Features Introduced with Windows Server 2008 and Windows.
Errors And How to Handle Them. GIGO There is a saying in computer science: “Garbage in, garbage out.” Is this true, or is it just an excuse for bad programming?
Slide 1 Construction (Testing) Chapter 15 Alan Dennis, Barbara Wixom, and David Tegarden John Wiley & Sons, Inc. Slides by Fred Niederman Edited by Solomon.
Top Five Web Application Vulnerabilities Vebjørn Moen Selmersenteret/NoWires.org Norsk Kryptoseminar Trondheim
Vocabulary Software Terms Computer Science – Spring /20/2015Terms from
1 Vulnerability Assessment of Grid Software James A. Kupsch Computer Sciences Department University of Wisconsin Condor Week 2007 May 2, 2007.
Section 9: Configuring Roaming Profiles and Folder Redirection Managing User Profiles Configuring Folder Redirection Using Folder Redirection and Roaming.
Security - Why Bother? Your projects in this class are not likely to be used for some critical infrastructure or real-world sensitive data. Why should.
DEBUGGING. BUG A software bug is an error, flaw, failure, or fault in a computer program or system that causes it to produce an incorrect or unexpected.
Making Good Code AKA: So, You Wrote Some Code. Now What? Ray Haggerty July 23, 2015.
© SKY Computers, Inc. All Rights Reserved 9/25/02 Slide 1 VSIPL, from API to Product Sharon M. Sacco.
IP-Over-USB Gateway Ben Greenberg Bartosz Mach Adviser: Prof. Vincenzo Liberatore Case Western Reserve University Dept. of Electrical Engineering and Computer.
Chapter 8 Configuring and Managing Shared Folder Security.
Module 1 – Lesson 6 Ms. Tracy. Bell Ringer What is the typical useful life for a personal computer?
Software Engineering 2004 Jyrki Nummenmaa 1 BACKGROUND There is no way to generally test programs exhaustively (that is, going through all execution.
Security Vulnerabilities in A Virtual Environment
MySQL and GRID status Gabriele Carcassi 9 September 2002.
Privilege Escalation Two case studies. Privilege Escalation To better understand how privilege escalation can work, we will look at two relatively recent.
SQL SERVER 2008 Installation Guide A Step by Step Guide Prepared by Hassan Tariq.
Do This file can be found at
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Version Control and SVN ECE 297. Why Do We Need Version Control?
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
The single most important skill for a computer programmer is problem solving Problem solving means the ability to formulate problems, think creatively.
30 Copyright © 2009, Oracle. All rights reserved. Using Oracle Business Intelligence Delivers.
Lab 9 Department of Computer Science and Information Engineering National Taiwan University Lab9 - Debugging I 2014/11/4/ 28 1.
 Introduction  Tripwire For Servers  Tripwire Manager  Tripwire For Network Devices  Working Of Tripwire  Advantages  Conclusion.
Olivier Callot 5 June 2007 Electronic Logbooks Why moving away from Atlog ? Proposed improved configuration Release schedule.
Text2PTO: Modernizing Patent Application Filing A Proposal for Submitting Text Applications to the USPTO.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
Chapter 29: Program Security Dr. Wayne Summers Department of Computer Science Columbus State University
Apache Web Server v. 2.2 Reference Manual Chapter 2 Starting Apache.
Advanced Computer Systems
Unit Testing.
Chapter 14: System Protection
Operating System Interface between a user and the computer hardware
Chapter 14: Protection.
Chapter 29: Program Security
OS Components and Structure
CMSC 345 Programming.
Presentation transcript:

December 6, 2000www.eecs.tufts.edu/~couch/babble An Expectant Chat about Script Maturity Dr. Alva L. Couch Electrical Engineering and Computer Science Tufts University ~couch/babble

December 6, ~couch/babble My original goals manage user privileges on a LightWave 3200 Console Switch using convergent administration scripts that make minimal changes create a more powerful ‘expect’ with modal awareness/exception handling

December 6, ~couch/babble Convergence “If it ain’t broke, don’t fix it.” If it is “broke”, disrupt service as little as possible in fixing it.

December 6, ~couch/babble Convergent account administration Not what but how Non-convergent: erase and start over –erase all users –build new user table Convergent: make minimal changes –leave appropriately configured users alone –add, remove, modify others

December 6, ~couch/babble Epiphany! Expressive power is not empowerment. Making ‘expect’ more powerful won’t help. Convergence is complex –high environmental coupling –high branch complexity Must attack the root of the problem...

December 6, ~couch/babble Get your pies ready to throw! I challenge the most basic of tenets that we must make life easier for us. I’ll make your lives more difficult. Make the pies Chocolate Cream.

December 6, ~couch/babble Let’s get this over with...

December 6, ~couch/babble Scripting is double-edged short term win: – easy tasks become easier long term loss: –poorly documented –difficult for others to use –difficult to validate

December 6, ~couch/babble Why scripting is a weak practice scripts execute in a highly modal environment but are typically not modally aware. If they break we “page the author” instead of questioning why they break.

December 6, ~couch/babble Scripts as documentation Shift responsibility for modal awareness away from the script, into the script interpreter. Instead of telling ‘what to do’, tell ‘how to do it’. Allow the interpreter to decide ‘when to do what’. Declarative programming.

December 6, ~couch/babble Babble Instead of writing scripts, document device interactions in XML. To make documentation reusable, bind things that vary to values listed in a configuration file. To handle modal interactions, allow documentation to branch when device responses differ from the norm.

December 6, ~couch/babble Configuration JOHN foo 4 1,4, Y

December 6, ~couch/babble Adding a user adduser\s foo \r \n Enter\scase\ssensitive\spassword\s |\sPASSWORD\s>\s *** \r \n Re-enter\scase\ssensitive\spassword\s |\sPASSWORD\s>\s *** \r \n...

December 6, ~couch/babble Configuration discovery listusers\r\n User\sId\s>\s<var name="username" pattern="[A-Z0-9]+">FOO \s More \s

December 6, ~couch/babble Convergence

December 6, ~couch/babble This is not a script... This may look like a script but this is documentation, not a program. Not what but how. The interpreter exploits rather than simply interpreting –‘Paranoic’ validation –Built-in convergence and error handling

December 6, ~couch/babble Experience In production use for account management. Easy ‘rote’ script development process. ‘Paranoic’ error checking speeds development.

December 6, ~couch/babble Big ideas Babble scripts : –‘are closer to real practice than scripts’ –‘document best practices’ –‘describe debugging processes’ The Babble interpreter –detects many common scripting errors –encapsulates complex convergent processes

December 6, ~couch/babble Future Uses Planned future use: automating service monitoring and validation. Unlike a traditional script, Babble can easily cross server boundaries. To validate a service, ssh or telnet to another machine and try the service from there!

December 6, ~couch/babble Waxing philosophical... We need to allow our interpreters to become more aware and responsible. They can only transcend us if we give them choices to make. They can only make correct choices if they are educated on our best practices.

December 6, ~couch/babble Conclusions Babble is one small step on the path to total automation of administration. Takes away responsibility for execution. Grants much more important responsibility of `education’. Not scripting, but `teaching’.

December 6, ~couch/babble Availability Freely available from ~couch/babble Revision 0.1-Alpha. ~ 4000 lines of Perl “more bugs than features” but already solves some difficult problems.

December 6, ~couch/babble An Expectant Chat URL: ~couch/babble (We have an opening for a junior sysadmin!)