Genetic_Programming_Theory_and_Practice_XIII

(C. Jardin) #1

The Evolution of Everything (EvE) and Genetic Programming 141


To accomplish this, Fog Lifter has the following design components:


  1. Functional Relational Programming using combinators as functional
    “microcode”;

  2. A data registry;

  3. Conceptual data flow design;

  4. Security and Privacy protections.


Each of these will be described briefly.

2.2.1 Functional Relational Programming (FRP)


Moseley and Marks ( 2006 ) stated that with the growing complexity of software, it
was necessary to produce more robust software. Toward this end they suggested
an approach they called functional relational programming that used functional
programming techniques to avoid unintentional side effects, particularly when code
is expected to be distributed between processors. Relational programming structures
are combined with functional programming to embody the idea of immutable data
to avoid unintentional side effects being embedded in the data that is stored from
one result and passed to another program later. They also use logic programming
techniques to constrain possible values of data (e.g., specifying that a value can
never be allowed to reach 0).
This idea is already in use for large scale analytics in data centers and has
been shown to produce fewer errors. This is a large part of why languages such
as Scala as described in Wampler ( 2014 ) and Clojure, described in Rochester
( 2013 ) and libraries such as Cascading, described in Nathan ( 2013 )aregrowing
in popularity. The adoption of this approach to Fog Computing is therefore natural
as it is imperative that programming distributed across hundreds or even thousands
of devices minimize the chance for failure.
To implement FRP, Fog Lifter uses combinators as a way to abstract local
variables based on Turner ( 1979 ). This allows any pure functional code to be
compiled into code that can be run on any device and components of the code
can be distributed safely among processors. By applying combinator expressions
to relational data structures, and enforcing strict, temporally limited storage of data
during computation, Fog Lifter adheres to the most important aspects of FRP.


2.2.2 Data Registry


The function of the data registry is to provide both a semantic description of data
that is published on the Internet as well as publishing a data dictionary of the format
of the data. This dictionary takes the form of a relational data dictionary to facilitate
the use of FRP in Fog Lifter.

Free download pdf