BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Talks.cam//talks.cam.ac.uk//
X-WR-CALNAME:Talks.cam
BEGIN:VEVENT
SUMMARY:Composition and Inheritance in Declarative Configuration Languages
   - Paul Anderson\, University of Edinburgh
DTSTART:20170518T090000Z
DTEND:20170518T100000Z
UID:TALK72543@talks.cam.ac.uk
CONTACT:Microsoft Research Cambridge Talks Admins
DESCRIPTION:Configuring large computing installations is a difficult probl
 em -- there are many different subsystems involved\, all with their own la
 nguage\, and many different people with an interest in overlapping aspects
  of the overall configuration. Deploying and maintaining a configuration w
 hich reliably meets everyone's "higher-level"  requirements is hard\, and 
 configuration errors are responsible for a significant proportion of syste
 m failures.\n\nAlmost all large installations use some type of "configurat
 ion tool" in an attempt to automate and unify the process. These often inv
 olve some kind of custom specification language\, which is often claimed t
 o be "declarative". But all practical configuration languages have develop
 ed in very informal ways\, with a complex semantics which are error-prone 
 and difficult to use. Declarative configuration languages in particular\, 
 are quite different from programming languages\, and have not been widely 
 studied in any formal way\, despite their critical role in most large infr
 astructures.\n\nFor a long time\, I have been interested in understanding 
 the overall configuration process\, and particularly in designing more usa
 ble languages\, which provide specific features to support this in a clear
  in and correct way.  Although there is little directly related work\, thi
 s has led to interesting connections with a number of other areas\, two of
  which have been the subject of previous Microsoft Research Phd Scholarshi
 ps:\n\n- The use of constraint-based specifications[1] (with Andy Gordon) 
 particularly the novel use of these of these to support conflict-free comp
 osition of partial specifications from different stake-holders\n\n- The us
 e of provenance techniques (from the database field) to track the dependen
 cies between final configuration parameters and the source specifications 
 which affect them[2] (with Dimitrios Vytiniotis). This has implications fo
 r fault diagnosis\, and security (which is not addressed well\, if at all\
 , in current languages)\, and it suggests new ways of resolving potential 
 conflicts.\n\nI have also been involved in the deployment of the resulting
  configurations\, particularly distributed agent-based approaches using au
 tomated planning.\n\nRecently\, we have been trying to formalise the seman
 tics of practical declarative configuration languages[3\,4] and the diffic
 ulty of this has highlighted some of the reasons why this type of language
  has acquired an (unnecessary) reputation for complexity. This has led to 
 an interest in human-factors work on the usability of configuration langua
 ges[5]\, and it seems that these considerations should be a fundamental pa
 rt of the design process for any new language - I have a (currently unfund
 ed) proposal for a Phd in this area[6].\n\nI plan to use some recent work 
 on composition of configurations as the focus for a talk which will draw o
 n various aspects of this previous work. The short  note [7] is an accessi
 ble description of this for a non-specialist audience. However\, I would l
 ike to share my experiences with the configuration problem in general to s
 ee if there was any further possible synergy\, and I would be happy to foc
 us more on any aspects which may be of interest\, and to discuss anything 
 else which may potentially be of common interest.\n\nPaul Anderson  <dcspa
 ul@ed.ac.uk>\nhttp://homepages.inf.ed.ac.uk/dcspaul\n\n(*) SOME CONFIGURAT
 ION TOOLS\n\n- "Puppet" (https://puppetlabs.com/) is probably the most com
 mon "declarative" tool.\n\n- "Cfengine" (http://cfengine.com/) was one of 
 the first-generation tools which claimed to be "declarative".\n\n- "SmartF
 rog" (http://www.smartfrog.org/) probably has the cleanest semantics\, but
  has never been widely used outside of HP.\n\n- "LCFG" (http://www.lcfg.or
 g/) was developed here in Informatics\, and is probably the oldest "declar
 ative" tool. But the "language" is very primitive\, and the tool is not wi
 dely used outside of the University.\n\n- Chef (https://www.chef.io/) is d
 erived from Puppet\, but takes a more imperative approach\, probably due t
 o the apparent difficulty of using the Puppet language.\n\n- "Ansible" (ht
 tps://www.ansible.com/) is a more imperative approach focussing on "tasks"
  which are executed in order" - this is claimed to be more simple than a d
 eclarative approach.\n\n- Microsoft Powershell (https://msdn.microsoft.com
 /en-us/powershell/mt173057.aspx) is an an imperative language and framewor
 k for scripting configuration changes\, however DSC ("desired state config
 uration") introduces some declarative features.\n\nREFERENCES\n\nSummary: 
 The short note [7] is an informal introduction to the composition problem 
 which avoids the distracting details of ``real'' configurations\, and the 
 technicalities of ``real'' configuration languages. [4] is a good introduc
 tion to the difficulties and complexities of ``real'' languages\, and the 
 more formal work on the semantics. [2] is a short position paper which ill
 ustrates some usability problems and motivates the current work provenance
  work.\n\n[1] Constraint-based autonomic configuration\n2013 Self-adaptive
  and self-organizing systems conference (SASO)\, September 2013\nJohn A He
 wson & Paul Anderson & Andrew D Gordon\nhttp://homepages.inf.ed.ac.uk/dcsp
 aul/homepage/live/pdf/saso-2013.pdf\n\n[2] Toward provenance-based securit
 y for configuration languages\nThe 4th Usenix workshop on the theory and p
 ractice of provenance\, June 2012\nPaul Anderson & James Cheney\nhttp://ho
 mepages.inf.ed.ac.uk/dcspaul/homepage/live/pdf/tapp12-final15.pdf\n\n[3] A
  formal semantics for the SmartFrog configuration language\nJournal of Net
 work and Systems Management\nPaul Anderson & Herry Herry\nhttp://homepages
 .inf.ed.ac.uk/dcspaul/homepage/live/pdf/sfsemantics.pdf\n\n[4] μPuppet: A
  Declarative Subset of the Puppet Configuration Language\nTechnical report
 \, December 2016\nPaul Anderson\, James Cheney\, Weili Fu & Roly Perera\nh
 ttp://homepages.inf.ed.ac.uk/dcspaul/homepage/live/pdf/arxiv-puppet.pdf\n\
 n[5] Usability of System Configuration Languages: Confusion caused by Orde
 ring\nAdele Mikoliunaite\nhttp://homepages.inf.ed.ac.uk/dcspaul/homepage/l
 ive/pdf/msc_20162088.pdf\n\n[6] Usability of System Configuration Language
 s - IGS Studentship Proposal\nhttp://homepages.inf.ed.ac.uk/dcspaul/homepa
 ge/live/pdf/usability-phd.pdf\n\n[7] Composition in the L3 Configuration L
 anguage\nhttp://homepages.inf.ed.ac.uk/dcspaul/homepage/live/pdf/l3composi
 tion.pdf\n\n
LOCATION:Small Lecture Room \, Microsoft Research Ltd\, 21 Station Road\, 
 Cambridge\, CB1 2FB
END:VEVENT
END:VCALENDAR
