SlideShare uma empresa Scribd logo
1 de 22
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

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
 

Mais procurados (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
 

Semelhante a 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
 

Semelhante a 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
 

Mais 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
 

Mais 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
 

Último

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 

Último (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 

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