18.04.2013 Views

Dissertaç ˜ao de Mestrado Mestrado em Engenharia Informática Jo ...

Dissertaç ˜ao de Mestrado Mestrado em Engenharia Informática Jo ...

Dissertaç ˜ao de Mestrado Mestrado em Engenharia Informática Jo ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

2. STATE OF THE ART AND RELATED WORK 2.3. Automatic Recognition of Configuration Files<br />

2.2.1 Thin Crust<br />

Thin Crust is an open-source set of tools and meta-data for the creation of VAs. It features<br />

three key components: Appliance Operating Syst<strong>em</strong> (AOS), Appliance Creation Tool (ACT)<br />

and Appliance Configuration Engine (ACE). The AOS is a minimal OS built from a Fedora<br />

Kickstart file 1 , which can be cut down to just the required packages to run an appliance. The<br />

user may download a ready-to-run AOS image or may create his own through the ACT. The<br />

ACE is ran at VA boot time and loads the appliance recipe. The appliance recipe contains VA<br />

metadata and the modules used by the VA. If it does not match the appliance configuration,<br />

the latter is changed to reflect the changes. Finally, Thin Crust supports VMware, KVM and<br />

EC2 (see Section 2.1.4) by providing conversion tools from and to the mentioned formats.<br />

2.2.2 SmartFrog<br />

SmartFrog (Smart Framework for Object Groups) is a framework for the creation of<br />

configuration-based syst<strong>em</strong>s. Its objective is to make the <strong>de</strong>sign, <strong>de</strong>ployment and manag<strong>em</strong>ent<br />

of distributed component-based syst<strong>em</strong>s simpler and more robust. It <strong>de</strong>fines a language to<br />

<strong>de</strong>scribe component configurations and a runtime environment to activate and manage those<br />

components.<br />

One of the major causes for the probl<strong>em</strong>s in large distributed syst<strong>em</strong>s <strong>de</strong>sign is i<strong>de</strong>ntified<br />

by SmartFrog as the ad-hoc way in which such syst<strong>em</strong>s are <strong>de</strong>signed. This results in application<br />

configuration data scattered by the syst<strong>em</strong>, often causing its repetition.<br />

In SmartFrog, there is the notion of a SmartFrog component and a SmartFrog syst<strong>em</strong>, which is<br />

composed by various such components. A SmartFrog component is constituted by three parts:<br />

the lifecycle manager, which applies a configuration on a component; configuration data, which<br />

<strong>de</strong>fines the behaviour of a component; and the managed component, which may be a piece of<br />

software impl<strong>em</strong>enting any functionality-specific interface. Each component is monitorized by<br />

its lifecycle manager and must report any failure to the other components of the syst<strong>em</strong>. The<br />

components can also be distributed on a network.<br />

2.3 Automatic Recognition of Configuration Files<br />

The lexical analysis of the file with the objective of producing that same file in a different struc-<br />

ture provi<strong>de</strong>s a way for the tool to abstract itself from each configuration file language specifics,<br />

refining the configuration file down to just the essential for configuration (i.e., the el<strong>em</strong>ents<br />

nee<strong>de</strong>d to modify the application settings, such as parameter keys and attributes). The lexi-<br />

cal analysis of a file is accomplished by a parser, which recognizes the file original syntax and<br />

produces a version of the same file in a different structure.<br />

Configuration file parsers are produced by grammar compilers (or parser generators). A<br />

grammar compiler reads a grammar that recognizes a certain configuration file language and<br />

1<br />

16

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!