SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
Joshua Shinavier



          Linked Process
An Internet-scale distributed computing
              framework

        Center For Nonlinear Studies
             August 5th, 2009
Overview


•   Internet-scale distributed computing

•   eXtensible Messaging and Presence Protocol
    (XMPP)

•   Linked Process specification

•   Current Linked Process implementation

•   Demos




                           2
Abstract
 The LANL-based Linked Process project takes a new approach to
  Internet-scale distributed computing. While existing large-scale
grid computing projects are typically very constrained in the kinds
    of computational tasks which can be performed, the kinds of
  devices which can participate in computation, and in the overall
     architecture of the system, the Linked Process specification
    provides the foundation for a much larger and more general-
  purpose distributed computing platform. Any device supporting
   the eXtensible Messaging and Presence Protocol (XMPP), be it a
 supercomputer or a cellular phone, is a potential node in a global
    compute cloud, communicating with other nodes in a manner
    similar to human chat. The implementation currently under
    development provides a simple API and supports a number of
 popular scripting languages, allowing software developers to write
 distributed applications with ease. This presentation will provide
an overview of the Linked Process specification and discuss a range
                  of potential uses of the technology.


                                 3
Contributors (to date)
•   Marko A. Rodriguez (LANL)

    •   http://markorodriguez.com/

•   Joshua Shinavier (RPI / LANL)

    •   http://fortytwo.net/

•   Peter Neubauer (Neo Technology)

    •   http://www.linkedin.com/neubauer/

•   Max O. Bond (Santa Fe Complex)

•   Mick Thompson (Santa Fe Complex)

    •   http://davidmichaelthompson.com



                               4
Internet-scale distributed computing
 •   distributed computing

     •   combines computational power of multiple
         machines

     •   makes effective use of local resources

 •   Berkeley Open Infrastructure for Network
     Computing (BOINC)

     •   supports SETI@home, PrimeGrid, etc.

 •   cloud computing

     •   Amazon EC2

     •   Google App Engine


                              5
•   eXtensible Messaging
    and Presence Protocol

•   deals with “presence”
    and asynchronous
    message passing
    among clients and
    servers

•   open standard

•   based on machine-
    independent Jabber
    identifiers (JIDs)

                            6
XMPP is everywhere




         7
Linked Process


•   uses XMPP messaging for inter-machine
    communication

•   any XMPP-enabled device may participate

    •   bring mobile devices into the cloud

    •   augment the compute power of a single device

    •   grid computing

•   specification is called LoP, for “Linking Open
    Processors”



                             8
LoP is like chat...




         9
... but among software agents




              10
LoP architecture




       11
Jobs: units of computation

•   a job is a task to be performed by a virtual
    machine, e.g.

    •   computationally intensive operations

    •   manipulation of local resources

•   LoP allows you to:

    •   submit a job -- <submit_job/>

    •   check on the status of a job -- <job_status/>

    •   abort a job -- <abort_job/>




                            12
Example: submitting a job
       st
   ue
        <iq from="lp1@gmail.com/LoPVillein/1234"
   q

            to="lp2@gmail.com/LoPVM/EFGH"
re


            type="get" id="xxxx">
            <submit_job xmlns="http://linkedprocess.org/2009/06/VirtualMachine#"
                vm_password="abc123pass">
                    var temp=0;
                    for(i=0; i&lt;10; i++) {
                        temp = temp + 1;
                    }
                    temp;
            </submit_job>
        </iq>
     e
   ns
 po




        <iq from="lp2@gmail.com/LoPVM/EFGH"
              to="lp1@gmail.com/LoPVillein/1234"
   s
re




              type="result" id="xxxx">
             <submit_job xmlns="http://linkedprocess.org/2009/06/VirtualMachine#">
                      10
             <submit_job/>
        </iq>




                                        13
Virtual machines: addressable
   “computers” in the cloud


 •   VM is maintained by an XMPP client

 •   manages jobs and data-typed
     “bindings” (variables) -- <manage_bindings/>

 •   provides a scripting environment using a
     particular language (e.g. JavaScript, Ruby, etc.)

 •   may be terminated at any time --
     <terminate_vm/>




                            14
Example: spawning a VM
       st
   ue

         <iq from="lp1@gmail.com/LoPVillein/1234"
    q
 re


             to="lp2@gmail.com/LoPFarm/ABCD"
             type="get" id="xxxx">
             <spawn_vm xmlns="http://linkedprocess.org/2009/06/Farm#"
                 vm_species="javascript" />
         </iq>
    se
  on




         <iq from="lp2@gmail.com/LoPFarm/ABCD"
  sp




             to="lp1@gmail.com/LoPVillein/1234"
             type="result" id="xxxx">
re




             <spawn_vm xmlns="http://linkedprocess.org/2009/06/Farm#"
                 vm_jid="lp2@gmail.com/LoPVM/EFGH"
                 vm_password="abc123pass"
                 vm_species="javascript" />
         </iq>




                                     15
Farms: LoP service providers

•   farm is maintained by an XMPP client

•   provides access to virtual machines

•   farm allows you to:

    •   spawn a virtual machine -- <spawn_vm/>

    •   query for information about the environment
        (e.g. language support, security restrictions,
        etc.) -- disco#info

•   multiple farms may share the same “bare” JID




                             16
Example: service discovery
<iq id="zzzz" from="lp2@gmail.com/LoPFarm/ABCD" to="lop1@gmail.com/LoPVIllein/1234"
type="result">
  <query xmlns="http://jabber.org/protocol/disco#info">
    <identity category="client" name="LoPVM" type="bot" />
    <feature var="http://jabber.org/protocol/disco#info" />
    <feature var="http://linkedprocess.org/2009/06/Farm#" />
    <x xmlns="jabber:x:data" type="result">
      <field label="supported virtual machine species" var="vm_species" type="list-single">
        <option label="groovy 1.5.6 (groovy )">
          <value>groovy</value>
        </option>
        <option label="javascript 1.6 (Mozilla Rhino 1.6R7)">
          <value>javascript</value>
        </option>
        ...
      </field>
      <field label="exercise a permission" var="permission" type="boolean">
        <value>1</value>
      </field>
      <field label="exit the farm process" var="exit" type="boolean">
        <value>0</value>
      </field>
      <field label="execute a program" var="exec" type="list-multi" />
      <field label="create a file system link" var="link" type="list-multi" />
      ...
    </x>
  </query>
</iq>




                                             17
Security

•   jobs operate within a VM sandbox

•   subject to named permissions, e.g.

    •   file I/O

    •   network I/O

    •   introspection

•   password-protection of VMs

•   can specify limits on VMs per farm, number of
    jobs in a queue, VM and job timeouts, etc.

•   XMPP supports SSL (Secure Socket Layer)



                           18
Implementation (to date)
•   based on Java 1.6

    •   takes advantage of built-in Java security,
        scripting framework

•   job scheduler serves as a miniature operating
    system

•   supports a number of scripting languages

    •   JavaScript, Ruby, Python, Groovy

    •   support for additional languages is easy to add

        •   https://scripting.dev.java.net/

•   deployed farms in New Mexico, New York, Sweden


                               19
JSR 223 supports...

AWK               Jelly        Python

BeanShell         JEP          Ruby

ejs               Jexl         Scheme

FreeMarker        jst          Sleep

Groovy            JudoScript   Tcl
Jaskell           JUEL         Velocity
Java              OGNL         XPath
JavaScript        Pnuts        XSLT




                          20
Demos


•   distributed primality testing

•   Linked Data

•   for the future:

    •   LoP API for Google’s MapReduce

    •   computational support for mobile devices

    •   distributed matrix operations, image
        processing, etc.




                            21
See also

•   http://linkedprocess.org/

•   Rodriguez, M.A., “A Reflection on the Structure and Process of the
    Web of Data,” Bulletin of the American Society for Information Science
    and Technology, American Society for Information Science and
    Technology, volume 35, number 6, ISSN: 1550-8366, LA-
    UR-09-03724, pages 38-43, August 2009.

•   XMPP Core spec: http://xmpp.org/rfcs/rfc3920.html

•   XMPP Instant Messaging and Presence spec: http://xmpp.org/rfcs/
    rfc3921.html

•   XMPP Extensions: http://xmpp.org/extensions/




                                    22

Contenu connexe

Tendances

Seattle Scalability Mahout
Seattle Scalability MahoutSeattle Scalability Mahout
Seattle Scalability MahoutJake Mannix
 
The openCypher Project - An Open Graph Query Language
The openCypher Project - An Open Graph Query LanguageThe openCypher Project - An Open Graph Query Language
The openCypher Project - An Open Graph Query LanguageNeo4j
 
Getting started with Graph Databases & Neo4j
Getting started with Graph Databases & Neo4jGetting started with Graph Databases & Neo4j
Getting started with Graph Databases & Neo4jSuroor Wijdan
 
Cenitpede: Analyzing Webcrawl
Cenitpede: Analyzing WebcrawlCenitpede: Analyzing Webcrawl
Cenitpede: Analyzing WebcrawlPrimal Pappachan
 
Using Neo4j from Java
Using Neo4j from JavaUsing Neo4j from Java
Using Neo4j from JavaNeo4j
 
Cross-Platform Mobile Apps & Drupal Web Services
Cross-Platform Mobile Apps & Drupal Web ServicesCross-Platform Mobile Apps & Drupal Web Services
Cross-Platform Mobile Apps & Drupal Web ServicesBob Sims
 
Intro to-technologies-Green-City-Hackathon-Athens
Intro to-technologies-Green-City-Hackathon-AthensIntro to-technologies-Green-City-Hackathon-Athens
Intro to-technologies-Green-City-Hackathon-AthensStoitsis Giannis
 
Solr Distributed Indexing in WalmartLabs: Presented by Shengua Wan, WalmartLabs
Solr Distributed Indexing in WalmartLabs: Presented by Shengua Wan, WalmartLabsSolr Distributed Indexing in WalmartLabs: Presented by Shengua Wan, WalmartLabs
Solr Distributed Indexing in WalmartLabs: Presented by Shengua Wan, WalmartLabsLucidworks
 
Text Analytics Summit 2009 - Roddy Lindsay - "Social Media, Happiness, Petaby...
Text Analytics Summit 2009 - Roddy Lindsay - "Social Media, Happiness, Petaby...Text Analytics Summit 2009 - Roddy Lindsay - "Social Media, Happiness, Petaby...
Text Analytics Summit 2009 - Roddy Lindsay - "Social Media, Happiness, Petaby...guest5b1607
 
An excursion into Graph Analytics with Apache Spark GraphX
An excursion into Graph Analytics with Apache Spark GraphXAn excursion into Graph Analytics with Apache Spark GraphX
An excursion into Graph Analytics with Apache Spark GraphXKrishna Sankar
 
The Lonesome LOD Cloud
The Lonesome LOD CloudThe Lonesome LOD Cloud
The Lonesome LOD CloudRuben Verborgh
 
Mining a Large Web Corpus
Mining a Large Web CorpusMining a Large Web Corpus
Mining a Large Web CorpusRobert Meusel
 
OrientDB: Unlock the Value of Document Data Relationships
OrientDB: Unlock the Value of Document Data RelationshipsOrientDB: Unlock the Value of Document Data Relationships
OrientDB: Unlock the Value of Document Data RelationshipsFabrizio Fortino
 
Family tree of data – provenance and neo4j
Family tree of data – provenance and neo4jFamily tree of data – provenance and neo4j
Family tree of data – provenance and neo4jM. David Allen
 
The nature.com ontologies portal: nature.com/ontologies
The nature.com ontologies portal: nature.com/ontologiesThe nature.com ontologies portal: nature.com/ontologies
The nature.com ontologies portal: nature.com/ontologiesTony Hammond
 
Big Data Analytics 2: Leveraging Customer Behavior to Enhance Relevancy in Pe...
Big Data Analytics 2: Leveraging Customer Behavior to Enhance Relevancy in Pe...Big Data Analytics 2: Leveraging Customer Behavior to Enhance Relevancy in Pe...
Big Data Analytics 2: Leveraging Customer Behavior to Enhance Relevancy in Pe...MongoDB
 
Microservices, containers, and machine learning
Microservices, containers, and machine learningMicroservices, containers, and machine learning
Microservices, containers, and machine learningPaco Nathan
 
OrientDB & Node.js Overview - JS.Everywhere() KW
OrientDB & Node.js Overview - JS.Everywhere() KWOrientDB & Node.js Overview - JS.Everywhere() KW
OrientDB & Node.js Overview - JS.Everywhere() KWgmccarvell
 
An Introduction to NOSQL, Graph Databases and Neo4j
An Introduction to NOSQL, Graph Databases and Neo4jAn Introduction to NOSQL, Graph Databases and Neo4j
An Introduction to NOSQL, Graph Databases and Neo4jDebanjan Mahata
 

Tendances (20)

Seattle Scalability Mahout
Seattle Scalability MahoutSeattle Scalability Mahout
Seattle Scalability Mahout
 
The openCypher Project - An Open Graph Query Language
The openCypher Project - An Open Graph Query LanguageThe openCypher Project - An Open Graph Query Language
The openCypher Project - An Open Graph Query Language
 
Getting started with Graph Databases & Neo4j
Getting started with Graph Databases & Neo4jGetting started with Graph Databases & Neo4j
Getting started with Graph Databases & Neo4j
 
Cenitpede: Analyzing Webcrawl
Cenitpede: Analyzing WebcrawlCenitpede: Analyzing Webcrawl
Cenitpede: Analyzing Webcrawl
 
Using Neo4j from Java
Using Neo4j from JavaUsing Neo4j from Java
Using Neo4j from Java
 
Cross-Platform Mobile Apps & Drupal Web Services
Cross-Platform Mobile Apps & Drupal Web ServicesCross-Platform Mobile Apps & Drupal Web Services
Cross-Platform Mobile Apps & Drupal Web Services
 
Intro to-technologies-Green-City-Hackathon-Athens
Intro to-technologies-Green-City-Hackathon-AthensIntro to-technologies-Green-City-Hackathon-Athens
Intro to-technologies-Green-City-Hackathon-Athens
 
Solr Distributed Indexing in WalmartLabs: Presented by Shengua Wan, WalmartLabs
Solr Distributed Indexing in WalmartLabs: Presented by Shengua Wan, WalmartLabsSolr Distributed Indexing in WalmartLabs: Presented by Shengua Wan, WalmartLabs
Solr Distributed Indexing in WalmartLabs: Presented by Shengua Wan, WalmartLabs
 
Text Analytics Summit 2009 - Roddy Lindsay - "Social Media, Happiness, Petaby...
Text Analytics Summit 2009 - Roddy Lindsay - "Social Media, Happiness, Petaby...Text Analytics Summit 2009 - Roddy Lindsay - "Social Media, Happiness, Petaby...
Text Analytics Summit 2009 - Roddy Lindsay - "Social Media, Happiness, Petaby...
 
An excursion into Graph Analytics with Apache Spark GraphX
An excursion into Graph Analytics with Apache Spark GraphXAn excursion into Graph Analytics with Apache Spark GraphX
An excursion into Graph Analytics with Apache Spark GraphX
 
The Lonesome LOD Cloud
The Lonesome LOD CloudThe Lonesome LOD Cloud
The Lonesome LOD Cloud
 
Treasure Data Cloud Strategy
Treasure Data Cloud StrategyTreasure Data Cloud Strategy
Treasure Data Cloud Strategy
 
Mining a Large Web Corpus
Mining a Large Web CorpusMining a Large Web Corpus
Mining a Large Web Corpus
 
OrientDB: Unlock the Value of Document Data Relationships
OrientDB: Unlock the Value of Document Data RelationshipsOrientDB: Unlock the Value of Document Data Relationships
OrientDB: Unlock the Value of Document Data Relationships
 
Family tree of data – provenance and neo4j
Family tree of data – provenance and neo4jFamily tree of data – provenance and neo4j
Family tree of data – provenance and neo4j
 
The nature.com ontologies portal: nature.com/ontologies
The nature.com ontologies portal: nature.com/ontologiesThe nature.com ontologies portal: nature.com/ontologies
The nature.com ontologies portal: nature.com/ontologies
 
Big Data Analytics 2: Leveraging Customer Behavior to Enhance Relevancy in Pe...
Big Data Analytics 2: Leveraging Customer Behavior to Enhance Relevancy in Pe...Big Data Analytics 2: Leveraging Customer Behavior to Enhance Relevancy in Pe...
Big Data Analytics 2: Leveraging Customer Behavior to Enhance Relevancy in Pe...
 
Microservices, containers, and machine learning
Microservices, containers, and machine learningMicroservices, containers, and machine learning
Microservices, containers, and machine learning
 
OrientDB & Node.js Overview - JS.Everywhere() KW
OrientDB & Node.js Overview - JS.Everywhere() KWOrientDB & Node.js Overview - JS.Everywhere() KW
OrientDB & Node.js Overview - JS.Everywhere() KW
 
An Introduction to NOSQL, Graph Databases and Neo4j
An Introduction to NOSQL, Graph Databases and Neo4jAn Introduction to NOSQL, Graph Databases and Neo4j
An Introduction to NOSQL, Graph Databases and Neo4j
 

Similaire à Linked Process

Apache Kafka
Apache KafkaApache Kafka
Apache KafkaJoe Stein
 
2012-03-15 What's New at Red Hat
2012-03-15 What's New at Red Hat2012-03-15 What's New at Red Hat
2012-03-15 What's New at Red HatShawn Wells
 
FITC - Node.js 101
FITC - Node.js 101FITC - Node.js 101
FITC - Node.js 101Rami Sayar
 
Being HAPI! Reverse Proxying on Purpose
Being HAPI! Reverse Proxying on PurposeBeing HAPI! Reverse Proxying on Purpose
Being HAPI! Reverse Proxying on PurposeAman Kohli
 
Node.js 101 with Rami Sayar
Node.js 101 with Rami SayarNode.js 101 with Rami Sayar
Node.js 101 with Rami SayarFITC
 
XML Amsterdam 2012 Keynote
XML Amsterdam 2012 KeynoteXML Amsterdam 2012 Keynote
XML Amsterdam 2012 Keynotejimfuller2009
 
introduction to node.js
introduction to node.jsintroduction to node.js
introduction to node.jsorkaplan
 
Python And The MySQL X DevAPI - PyCaribbean 2019
Python And The MySQL X DevAPI - PyCaribbean 2019Python And The MySQL X DevAPI - PyCaribbean 2019
Python And The MySQL X DevAPI - PyCaribbean 2019Dave Stokes
 
OpenSouthCode 2018 - Integrating your applications easily with Apache Camel
OpenSouthCode 2018 - Integrating your applications easily with Apache CamelOpenSouthCode 2018 - Integrating your applications easily with Apache Camel
OpenSouthCode 2018 - Integrating your applications easily with Apache CamelJosé Román Martín Gil
 
Nodejs a-practical-introduction-oredev
Nodejs a-practical-introduction-oredevNodejs a-practical-introduction-oredev
Nodejs a-practical-introduction-oredevFelix Geisendörfer
 
Metarhia: Node.js Macht Frei
Metarhia: Node.js Macht FreiMetarhia: Node.js Macht Frei
Metarhia: Node.js Macht FreiTimur Shemsedinov
 
Machine Learning With H2O vs SparkML
Machine Learning With H2O vs SparkMLMachine Learning With H2O vs SparkML
Machine Learning With H2O vs SparkMLArnab Biswas
 
The Next Leap in JavaScript Performance
The Next Leap in JavaScript PerformanceThe Next Leap in JavaScript Performance
The Next Leap in JavaScript PerformanceIntel® Software
 
Network Stack in Userspace (NUSE)
Network Stack in Userspace (NUSE)Network Stack in Userspace (NUSE)
Network Stack in Userspace (NUSE)Hajime Tazaki
 
Schema registries and Snowplow
Schema registries and SnowplowSchema registries and Snowplow
Schema registries and Snowplowmiiker
 
Experiences with Evangelizing Java Within the Database
Experiences with Evangelizing Java Within the DatabaseExperiences with Evangelizing Java Within the Database
Experiences with Evangelizing Java Within the DatabaseMarcelo Ochoa
 
Server Side Javascript
Server Side JavascriptServer Side Javascript
Server Side Javascriptrajivmordani
 
Original slides from Ryan Dahl's NodeJs intro talk
Original slides from Ryan Dahl's NodeJs intro talkOriginal slides from Ryan Dahl's NodeJs intro talk
Original slides from Ryan Dahl's NodeJs intro talkAarti Parikh
 

Similaire à Linked Process (20)

Apache Kafka
Apache KafkaApache Kafka
Apache Kafka
 
Splunking the JVM
Splunking the JVMSplunking the JVM
Splunking the JVM
 
2012-03-15 What's New at Red Hat
2012-03-15 What's New at Red Hat2012-03-15 What's New at Red Hat
2012-03-15 What's New at Red Hat
 
FITC - Node.js 101
FITC - Node.js 101FITC - Node.js 101
FITC - Node.js 101
 
Being HAPI! Reverse Proxying on Purpose
Being HAPI! Reverse Proxying on PurposeBeing HAPI! Reverse Proxying on Purpose
Being HAPI! Reverse Proxying on Purpose
 
Node.js 101 with Rami Sayar
Node.js 101 with Rami SayarNode.js 101 with Rami Sayar
Node.js 101 with Rami Sayar
 
XML Amsterdam 2012 Keynote
XML Amsterdam 2012 KeynoteXML Amsterdam 2012 Keynote
XML Amsterdam 2012 Keynote
 
introduction to node.js
introduction to node.jsintroduction to node.js
introduction to node.js
 
Node.js
Node.jsNode.js
Node.js
 
Python And The MySQL X DevAPI - PyCaribbean 2019
Python And The MySQL X DevAPI - PyCaribbean 2019Python And The MySQL X DevAPI - PyCaribbean 2019
Python And The MySQL X DevAPI - PyCaribbean 2019
 
OpenSouthCode 2018 - Integrating your applications easily with Apache Camel
OpenSouthCode 2018 - Integrating your applications easily with Apache CamelOpenSouthCode 2018 - Integrating your applications easily with Apache Camel
OpenSouthCode 2018 - Integrating your applications easily with Apache Camel
 
Nodejs a-practical-introduction-oredev
Nodejs a-practical-introduction-oredevNodejs a-practical-introduction-oredev
Nodejs a-practical-introduction-oredev
 
Metarhia: Node.js Macht Frei
Metarhia: Node.js Macht FreiMetarhia: Node.js Macht Frei
Metarhia: Node.js Macht Frei
 
Machine Learning With H2O vs SparkML
Machine Learning With H2O vs SparkMLMachine Learning With H2O vs SparkML
Machine Learning With H2O vs SparkML
 
The Next Leap in JavaScript Performance
The Next Leap in JavaScript PerformanceThe Next Leap in JavaScript Performance
The Next Leap in JavaScript Performance
 
Network Stack in Userspace (NUSE)
Network Stack in Userspace (NUSE)Network Stack in Userspace (NUSE)
Network Stack in Userspace (NUSE)
 
Schema registries and Snowplow
Schema registries and SnowplowSchema registries and Snowplow
Schema registries and Snowplow
 
Experiences with Evangelizing Java Within the Database
Experiences with Evangelizing Java Within the DatabaseExperiences with Evangelizing Java Within the Database
Experiences with Evangelizing Java Within the Database
 
Server Side Javascript
Server Side JavascriptServer Side Javascript
Server Side Javascript
 
Original slides from Ryan Dahl's NodeJs intro talk
Original slides from Ryan Dahl's NodeJs intro talkOriginal slides from Ryan Dahl's NodeJs intro talk
Original slides from Ryan Dahl's NodeJs intro talk
 

Plus de Joshua Shinavier

Transpilers Gone Wild: Introducing Hydra
Transpilers Gone Wild: Introducing HydraTranspilers Gone Wild: Introducing Hydra
Transpilers Gone Wild: Introducing HydraJoshua Shinavier
 
An Algebraic Data Model for Graphs and Hypergraphs (Category Theory meetup, N...
An Algebraic Data Model for Graphs and Hypergraphs (Category Theory meetup, N...An Algebraic Data Model for Graphs and Hypergraphs (Category Theory meetup, N...
An Algebraic Data Model for Graphs and Hypergraphs (Category Theory meetup, N...Joshua Shinavier
 
In Search of the Universal Data Model (ISWC 2019 Minute Madness)
In Search of the Universal Data Model (ISWC 2019 Minute Madness)In Search of the Universal Data Model (ISWC 2019 Minute Madness)
In Search of the Universal Data Model (ISWC 2019 Minute Madness)Joshua Shinavier
 
In Search of the Universal Data Model (Connected Data London 2019)
In Search of the Universal Data Model (Connected Data London 2019)In Search of the Universal Data Model (Connected Data London 2019)
In Search of the Universal Data Model (Connected Data London 2019)Joshua Shinavier
 
Algebraic Property Graphs (GQL Community Update, oct. 9, 2019)
Algebraic Property Graphs (GQL Community Update, oct. 9, 2019)Algebraic Property Graphs (GQL Community Update, oct. 9, 2019)
Algebraic Property Graphs (GQL Community Update, oct. 9, 2019)Joshua Shinavier
 
Building an Enterprise Knowledge Graph @Uber: Lessons from Reality
Building an Enterprise Knowledge Graph @Uber: Lessons from RealityBuilding an Enterprise Knowledge Graph @Uber: Lessons from Reality
Building an Enterprise Knowledge Graph @Uber: Lessons from RealityJoshua Shinavier
 
A Graph is a Graph is a Graph: Equivalence, Transformation, and Composition o...
A Graph is a Graph is a Graph: Equivalence, Transformation, and Composition o...A Graph is a Graph is a Graph: Equivalence, Transformation, and Composition o...
A Graph is a Graph is a Graph: Equivalence, Transformation, and Composition o...Joshua Shinavier
 
Evolution of the Graph Schema
Evolution of the Graph SchemaEvolution of the Graph Schema
Evolution of the Graph SchemaJoshua Shinavier
 
semantic markup using schema.org
semantic markup using schema.orgsemantic markup using schema.org
semantic markup using schema.orgJoshua Shinavier
 
Real-time Semantic Web with Twitter Annotations
Real-time Semantic Web with Twitter AnnotationsReal-time Semantic Web with Twitter Annotations
Real-time Semantic Web with Twitter AnnotationsJoshua Shinavier
 
Real-time #SemanticWeb in 140 chars
Real-time #SemanticWeb in 140 charsReal-time #SemanticWeb in 140 chars
Real-time #SemanticWeb in 140 charsJoshua Shinavier
 

Plus de Joshua Shinavier (14)

Anything-to-Graph
Anything-to-GraphAnything-to-Graph
Anything-to-Graph
 
Transpilers Gone Wild: Introducing Hydra
Transpilers Gone Wild: Introducing HydraTranspilers Gone Wild: Introducing Hydra
Transpilers Gone Wild: Introducing Hydra
 
TinkerPop 2020
TinkerPop 2020TinkerPop 2020
TinkerPop 2020
 
An Algebraic Data Model for Graphs and Hypergraphs (Category Theory meetup, N...
An Algebraic Data Model for Graphs and Hypergraphs (Category Theory meetup, N...An Algebraic Data Model for Graphs and Hypergraphs (Category Theory meetup, N...
An Algebraic Data Model for Graphs and Hypergraphs (Category Theory meetup, N...
 
In Search of the Universal Data Model (ISWC 2019 Minute Madness)
In Search of the Universal Data Model (ISWC 2019 Minute Madness)In Search of the Universal Data Model (ISWC 2019 Minute Madness)
In Search of the Universal Data Model (ISWC 2019 Minute Madness)
 
In Search of the Universal Data Model (Connected Data London 2019)
In Search of the Universal Data Model (Connected Data London 2019)In Search of the Universal Data Model (Connected Data London 2019)
In Search of the Universal Data Model (Connected Data London 2019)
 
Algebraic Property Graphs (GQL Community Update, oct. 9, 2019)
Algebraic Property Graphs (GQL Community Update, oct. 9, 2019)Algebraic Property Graphs (GQL Community Update, oct. 9, 2019)
Algebraic Property Graphs (GQL Community Update, oct. 9, 2019)
 
Building an Enterprise Knowledge Graph @Uber: Lessons from Reality
Building an Enterprise Knowledge Graph @Uber: Lessons from RealityBuilding an Enterprise Knowledge Graph @Uber: Lessons from Reality
Building an Enterprise Knowledge Graph @Uber: Lessons from Reality
 
A Graph is a Graph is a Graph: Equivalence, Transformation, and Composition o...
A Graph is a Graph is a Graph: Equivalence, Transformation, and Composition o...A Graph is a Graph is a Graph: Equivalence, Transformation, and Composition o...
A Graph is a Graph is a Graph: Equivalence, Transformation, and Composition o...
 
Evolution of the Graph Schema
Evolution of the Graph SchemaEvolution of the Graph Schema
Evolution of the Graph Schema
 
Semantics and Sensors
Semantics and SensorsSemantics and Sensors
Semantics and Sensors
 
semantic markup using schema.org
semantic markup using schema.orgsemantic markup using schema.org
semantic markup using schema.org
 
Real-time Semantic Web with Twitter Annotations
Real-time Semantic Web with Twitter AnnotationsReal-time Semantic Web with Twitter Annotations
Real-time Semantic Web with Twitter Annotations
 
Real-time #SemanticWeb in 140 chars
Real-time #SemanticWeb in 140 charsReal-time #SemanticWeb in 140 chars
Real-time #SemanticWeb in 140 chars
 

Dernier

Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 

Dernier (20)

Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 

Linked Process

  • 1. Joshua Shinavier Linked Process An Internet-scale distributed computing framework Center For Nonlinear Studies August 5th, 2009
  • 2. Overview • Internet-scale distributed computing • eXtensible Messaging and Presence Protocol (XMPP) • Linked Process specification • Current Linked Process implementation • Demos 2
  • 3. Abstract The LANL-based Linked Process project takes a new approach to Internet-scale distributed computing. While existing large-scale grid computing projects are typically very constrained in the kinds of computational tasks which can be performed, the kinds of devices which can participate in computation, and in the overall architecture of the system, the Linked Process specification provides the foundation for a much larger and more general- purpose distributed computing platform. Any device supporting the eXtensible Messaging and Presence Protocol (XMPP), be it a supercomputer or a cellular phone, is a potential node in a global compute cloud, communicating with other nodes in a manner similar to human chat. The implementation currently under development provides a simple API and supports a number of popular scripting languages, allowing software developers to write distributed applications with ease. This presentation will provide an overview of the Linked Process specification and discuss a range of potential uses of the technology. 3
  • 4. Contributors (to date) • Marko A. Rodriguez (LANL) • http://markorodriguez.com/ • Joshua Shinavier (RPI / LANL) • http://fortytwo.net/ • Peter Neubauer (Neo Technology) • http://www.linkedin.com/neubauer/ • Max O. Bond (Santa Fe Complex) • Mick Thompson (Santa Fe Complex) • http://davidmichaelthompson.com 4
  • 5. Internet-scale distributed computing • distributed computing • combines computational power of multiple machines • makes effective use of local resources • Berkeley Open Infrastructure for Network Computing (BOINC) • supports SETI@home, PrimeGrid, etc. • cloud computing • Amazon EC2 • Google App Engine 5
  • 6. eXtensible Messaging and Presence Protocol • deals with “presence” and asynchronous message passing among clients and servers • open standard • based on machine- independent Jabber identifiers (JIDs) 6
  • 8. Linked Process • uses XMPP messaging for inter-machine communication • any XMPP-enabled device may participate • bring mobile devices into the cloud • augment the compute power of a single device • grid computing • specification is called LoP, for “Linking Open Processors” 8
  • 9. LoP is like chat... 9
  • 10. ... but among software agents 10
  • 12. Jobs: units of computation • a job is a task to be performed by a virtual machine, e.g. • computationally intensive operations • manipulation of local resources • LoP allows you to: • submit a job -- <submit_job/> • check on the status of a job -- <job_status/> • abort a job -- <abort_job/> 12
  • 13. Example: submitting a job st ue <iq from="lp1@gmail.com/LoPVillein/1234" q to="lp2@gmail.com/LoPVM/EFGH" re type="get" id="xxxx"> <submit_job xmlns="http://linkedprocess.org/2009/06/VirtualMachine#" vm_password="abc123pass"> var temp=0; for(i=0; i&lt;10; i++) { temp = temp + 1; } temp; </submit_job> </iq> e ns po <iq from="lp2@gmail.com/LoPVM/EFGH" to="lp1@gmail.com/LoPVillein/1234" s re type="result" id="xxxx"> <submit_job xmlns="http://linkedprocess.org/2009/06/VirtualMachine#"> 10 <submit_job/> </iq> 13
  • 14. Virtual machines: addressable “computers” in the cloud • VM is maintained by an XMPP client • manages jobs and data-typed “bindings” (variables) -- <manage_bindings/> • provides a scripting environment using a particular language (e.g. JavaScript, Ruby, etc.) • may be terminated at any time -- <terminate_vm/> 14
  • 15. Example: spawning a VM st ue <iq from="lp1@gmail.com/LoPVillein/1234" q re to="lp2@gmail.com/LoPFarm/ABCD" type="get" id="xxxx"> <spawn_vm xmlns="http://linkedprocess.org/2009/06/Farm#" vm_species="javascript" /> </iq> se on <iq from="lp2@gmail.com/LoPFarm/ABCD" sp to="lp1@gmail.com/LoPVillein/1234" type="result" id="xxxx"> re <spawn_vm xmlns="http://linkedprocess.org/2009/06/Farm#" vm_jid="lp2@gmail.com/LoPVM/EFGH" vm_password="abc123pass" vm_species="javascript" /> </iq> 15
  • 16. Farms: LoP service providers • farm is maintained by an XMPP client • provides access to virtual machines • farm allows you to: • spawn a virtual machine -- <spawn_vm/> • query for information about the environment (e.g. language support, security restrictions, etc.) -- disco#info • multiple farms may share the same “bare” JID 16
  • 17. Example: service discovery <iq id="zzzz" from="lp2@gmail.com/LoPFarm/ABCD" to="lop1@gmail.com/LoPVIllein/1234" type="result"> <query xmlns="http://jabber.org/protocol/disco#info"> <identity category="client" name="LoPVM" type="bot" /> <feature var="http://jabber.org/protocol/disco#info" /> <feature var="http://linkedprocess.org/2009/06/Farm#" /> <x xmlns="jabber:x:data" type="result"> <field label="supported virtual machine species" var="vm_species" type="list-single"> <option label="groovy 1.5.6 (groovy )"> <value>groovy</value> </option> <option label="javascript 1.6 (Mozilla Rhino 1.6R7)"> <value>javascript</value> </option> ... </field> <field label="exercise a permission" var="permission" type="boolean"> <value>1</value> </field> <field label="exit the farm process" var="exit" type="boolean"> <value>0</value> </field> <field label="execute a program" var="exec" type="list-multi" /> <field label="create a file system link" var="link" type="list-multi" /> ... </x> </query> </iq> 17
  • 18. Security • jobs operate within a VM sandbox • subject to named permissions, e.g. • file I/O • network I/O • introspection • password-protection of VMs • can specify limits on VMs per farm, number of jobs in a queue, VM and job timeouts, etc. • XMPP supports SSL (Secure Socket Layer) 18
  • 19. Implementation (to date) • based on Java 1.6 • takes advantage of built-in Java security, scripting framework • job scheduler serves as a miniature operating system • supports a number of scripting languages • JavaScript, Ruby, Python, Groovy • support for additional languages is easy to add • https://scripting.dev.java.net/ • deployed farms in New Mexico, New York, Sweden 19
  • 20. JSR 223 supports... AWK Jelly Python BeanShell JEP Ruby ejs Jexl Scheme FreeMarker jst Sleep Groovy JudoScript Tcl Jaskell JUEL Velocity Java OGNL XPath JavaScript Pnuts XSLT 20
  • 21. Demos • distributed primality testing • Linked Data • for the future: • LoP API for Google’s MapReduce • computational support for mobile devices • distributed matrix operations, image processing, etc. 21
  • 22. See also • http://linkedprocess.org/ • Rodriguez, M.A., “A Reflection on the Structure and Process of the Web of Data,” Bulletin of the American Society for Information Science and Technology, American Society for Information Science and Technology, volume 35, number 6, ISSN: 1550-8366, LA- UR-09-03724, pages 38-43, August 2009. • XMPP Core spec: http://xmpp.org/rfcs/rfc3920.html • XMPP Instant Messaging and Presence spec: http://xmpp.org/rfcs/ rfc3921.html • XMPP Extensions: http://xmpp.org/extensions/ 22