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:TALK72542@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
  involve some kind of custom specification language\, which is often claim
 ed to be "declarative". But all practical configuration languages have dev
 eloped in very informal ways\, with a complex semantics which are error-pr
 one and difficult to use. Declarative configuration languages in particula
 r\, are quite different from programming languages\, and have not been wid
 ely studied in any formal way\, despite their critical role in most large 
 infrastructures.\n\nFor a long time\, I have been interested in understand
 ing the overall configuration process\, and particularly in designing more
  usable languages\, which provide specific features to support this in a c
 lear in and correct way.  Although there is little directly related work\,
  this has led to interesting connections with a number of other areas\, tw
 o of which have been the subject of previous Microsoft Research Phd Schola
 rships:\n\n- The use of constraint-based specifications[1] (with Andy Gord
 on) particularly the novel use of these of these to support conflict-free 
 composition of partial specifications from different stake-holders\n\n- Th
 e use of provenance techniques (from the database field) to track the depe
 ndencies between final configuration parameters and the source specificati
 ons which affect them[2] (with Dimitrios Vytiniotis). This has implication
 s for fault diagnosis\, and security (which is not addressed well\, if at 
 all\, in current languages)\, and it suggests new ways of resolving potent
 ial conflicts.\n\nI have also been involved in the deployment of the resul
 ting configurations\, particularly distributed agent-based approaches usin
 g automated planning.\n\nRecently\, we have been trying to formalise the s
 emantics of practical declarative configuration languages[3\,4] and the di
 fficulty of this has highlighted some of the reasons why this type of lang
 uage has acquired an (unnecessary) reputation for complexity. This has led
  to an interest in human-factors work on the usability of configuration la
 nguages[5]\, and it seems that these considerations should be a fundamenta
 l part of the design process for any new language - I have a (currently un
 funded) proposal for a Phd in this area[6].\n\nI plan to use some recent w
 ork on composition of configurations as the focus for a talk which will dr
 aw on various aspects of this previous work. The short  note [7] is an acc
 essible description of this for a non-specialist audience. However\, I wou
 ld like to share my experiences with the configuration problem in general 
 to see if there was any further possible synergy\, and I would be happy to
  focus more on any aspects which may be of interest\, and to discuss anyth
 ing else which may potentially be of common interest.\n\nPaul Anderson  <d
 cspaul@ed.ac.uk>\nhttp://homepages.inf.ed.ac.uk/dcspaul\n\n(*) SOME CONFIG
 URATION TOOLS\n\n- "Puppet" (https://puppetlabs.com/) is probably the most
  common "declarative" tool.\n\n- "Cfengine" (http://cfengine.com/) was one
  of the first-generation tools which claimed to be "declarative".\n\n- "Sm
 artFrog" (http://www.smartfrog.org/) probably has the cleanest semantics\,
  but has never been widely used outside of HP.\n\n- "LCFG" (http://www.lcf
 g.org/) was developed here in Informatics\, and is probably the oldest "de
 clarative" tool. But the "language" is very primitive\, and the tool is no
 t widely used outside of the University.\n\n- Chef (https://www.chef.io/) 
 is derived from Puppet\, but takes a more imperative approach\, probably d
 ue to the apparent difficulty of using the Puppet language.\n\n- "Ansible"
  (https://www.ansible.com/) is a more imperative approach focussing on "ta
 sks" which are executed in order" - this is claimed to be more simple than
  a declarative approach.\n\n- Microsoft Powershell (https://msdn.microsoft
 .com/en-us/powershell/mt173057.aspx) is an an imperative language and fram
 ework for scripting configuration changes\, however DSC ("desired state co
 nfiguration") introduces some declarative features.\n\nREFERENCES\n\nSumma
 ry: The short note [7] is an informal introduction to the composition prob
 lem which avoids the distracting details of ``real'' configurations\, and 
 the technicalities of ``real'' configuration languages. [4] is a good intr
 oduction to the difficulties and complexities of ``real'' languages\, and 
 the more formal work on the semantics. [2] is a short position paper which
  illustrates some usability problems and motivates the current work proven
 ance work.\n\n[1] Constraint-based autonomic configuration\n2013 Self-adap
 tive and self-organizing systems conference (SASO)\, September 2013\nJohn 
 A Hewson & Paul Anderson & Andrew D Gordon\nhttp://homepages.inf.ed.ac.uk/
 dcspaul/homepage/live/pdf/saso-2013.pdf\n\n[2] Toward provenance-based sec
 urity for configuration languages\nThe 4th Usenix workshop on the theory a
 nd practice of provenance\, June 2012\nPaul Anderson & James Cheney\nhttp:
 //homepages.inf.ed.ac.uk/dcspaul/homepage/live/pdf/tapp12-final15.pdf\n\n[
 3] A formal semantics for the SmartFrog configuration language\nJournal of
  Network and Systems Management\nPaul Anderson & Herry Herry\nhttp://homep
 ages.inf.ed.ac.uk/dcspaul/homepage/live/pdf/sfsemantics.pdf\n\n[4] μPuppe
 t: A Declarative Subset of the Puppet Configuration Language\nTechnical re
 port\, December 2016\nPaul Anderson\, James Cheney\, Weili Fu & Roly Perer
 a\nhttp://homepages.inf.ed.ac.uk/dcspaul/homepage/live/pdf/arxiv-puppet.pd
 f\n\n[5] Usability of System Configuration Languages: Confusion caused by 
 Ordering\nAdele Mikoliunaite\nhttp://homepages.inf.ed.ac.uk/dcspaul/homepa
 ge/live/pdf/msc_20162088.pdf\n\n[6] Usability of System Configuration Lang
 uages - IGS Studentship Proposal\nhttp://homepages.inf.ed.ac.uk/dcspaul/ho
 mepage/live/pdf/usability-phd.pdf\n\n[7] Composition in the L3 Configurati
 on Language\nhttp://homepages.inf.ed.ac.uk/dcspaul/homepage/live/pdf/l3com
 position.pdf\n\n
LOCATION:Small Lecture Room \, Microsoft Research Ltd\, 21 Station Road\, 
 Cambridge\, CB1 2FB
END:VEVENT
END:VCALENDAR
