SlideShare ist ein Scribd-Unternehmen logo
1 von 111
Building a Programming
Layer for the Internet
Phillip J. Windley, Ph.D
Founder and CTO
Kynetx
www.kynetx.com
Your book’s available here!!!
scenarios
  can be described as
expressions over events
when new book on wishlist
before visiting borders...
traditionally this has been hard
People want to
achieve a purpose,
not go somewhere
The location metaphor
       has led us to
focus attention on servers
There’s more
to the Internet
 than servers
Amazon and Your Local Library
Amazon and Your Local Library
An intelligent, adaptable browser
helps you achieve your purpose
Web Programming
Calculating Exchange Rates
READ $amount;
READ $rate;
PRINT $amount * $rate
What does the same Web
  program look like?
Amount



  Continue
Amount



  Continue




             Rate



               Continue
Amount



  Continue




             Rate



               Continue




                          Amount: X.XX
Amount



  Continue

                                amount?

             Rate



               Continue




                          Amount: X.XX
Amount



     Continue

                                   amount?

                Rate



                  Continue




sequence?
                             Amount: X.XX
Amount



           Continue

                                         amount?

                      Rate



                        Continue




  sequence?
                                   Amount: X.XX



• data
Amount



        Continue

                                      amount?

                   Rate



                     Continue




  sequence?
                                Amount: X.XX



• data
• control flow
Amount



        Continue

                                        amount?

                     Rate



                       Continue




  sequence?
                                  Amount: X.XX



• data
• control flow
                   ...and this is just one server
A New Programming Model
Reactive Systems
reacting to events
  from the user
Rule Languages
Rule Languages
Rule Languages
Constraint
Rule Languages
Constraint
Deductive
Rule Languages
Constraint
Deductive
Responsive
when
event
if


condition
then
action
ECAE Rules
ECAE Rules
ECAE Rules
Event
ECAE Rules
Event
Condition
ECAE Rules
Event
Condition
Action
ECAE Rules
Event
Condition
Action
Effect
Kynetx Architecture
Kynetx Architecture
Kynetx Architecture
BX




     Kynetx Architecture
KNS




BX




      Kynetx Architecture
KNS




BX




      Kynetx Architecture
KNS




BX




      Kynetx Architecture
Web
KNS       • pageview
          • submit
          • click
          • etc

BX




      Kynetx Architecture
Events
          Web
KNS       • pageview
          • submit
          • click
          • etc

BX




      Kynetx Architecture
Events
           Web
 KNS       • pageview
           • submit
           • click
           • etc

Endpoint
  BX




       Kynetx Architecture
Events
           Web
 KNS       • pageview
           • submit
           • click
           • etc

Endpoint
  BX




       Kynetx Architecture
Events
           Web        Mail
 KNS       • pageview • received
           • submit   • sent
           • click    • refiled
           • etc      • etc

Endpoint
  BX




       Kynetx Architecture
Events
           Web        Mail         Other
 KNS       • pageview • received   • RSS
           • submit   • sent       • Facebook
           • click    • refiled    • Mobile
           • etc      • etc        • etc

Endpoint
  BX




       Kynetx Architecture
Kynetx Rule Language (KRL)
Sometimes a layer of indirection helps...
Kynetx Rule Language (KRL)
Sometimes a layer of indirection helps...

   Domain specific language
Kynetx Rule Language (KRL)
Sometimes a layer of indirection helps...

   Domain specific language
   Mental leverage via abstractions
Kynetx Rule Language (KRL)
Sometimes a layer of indirection helps...

   Domain specific language
   Mental leverage via abstractions
   Designed for programming the Internet
Kynetx Rule Language (KRL)
Sometimes a layer of indirection helps...

   Domain specific language
   Mental leverage via abstractions
   Designed for programming the Internet
   Browser and platform independent
KRL Rulesets
KRL Rulesets

  Events
KRL Rulesets

  Events
   Pageview via URL class
KRL Rulesets

  Events
   Pageview via URL class
   Submit form
KRL Rulesets

  Events
   Pageview via URL class
   Submit form
   Click element
KRL Rulesets

  Events
   Pageview via URL class
   Submit form
   Click element
   Change element
KRL Rulesets

  Events
   Pageview via URL class
   Submit form
   Click element
   Change element
  Declare and access data sources
KRL Rulesets

  Events
   Pageview via URL class
   Submit form
   Click element
   Change element
  Declare and access data sources
  Conditionally fire action
KRL Rulesets

  Events
   Pageview via URL class
   Submit form
   Click element
   Change element
  Declare and access data sources
  Conditionally fire action
  Effects
Event Expressions
select when pageview “/archives/(d+)”
              setting(year)
select when pageview “/archives/(d+)”
               setting(year)
       before click “#button”
select when pageview “/archives/(d+)”
               setting(year)
       then click “#button”
select when pageview “/archives/(d+)”
               setting(year)
       and click “#button”
select when pageview “/archives/(d+)”
               setting(year)
       or click “#button”
select when click “#button”
   between(pageview “/archives/d+”,
           pageview “google.com”)
select when click “#button”
   not between(
         pageview “/archives/d+”,
         pageview “google.com”)
select when (click “#button”
   not between(
          pageview “/archives/d+”,
          pageview “google.com”))
   before click “#link_1”
What about
conditions, actions,
   and effects?
Little Languages
Little Languages
   Regular expressions
Little Languages
   Regular expressions
   JSONPath
Little Languages
   Regular expressions
   JSONPath
   jQuery HTML Selectors
Data
Data

   Geo-location
   Weather
   General (JSON/XML)
   Twitter
   Acxiom (pilot)
   GData (Google)
   Amazon
   OData (Microsoft)
ruleset library {
      global {
          datasource library_search
                 <- "http://www.example.com/bookdata/?wt=json" cachable;
      }
      rule book_notfication is active {
          select when pageview "www.amazon.com/gp/product/(d+)/" setting(isbn)
          pre {
        	          book_data = datasource:library_search("q="+isbn);
    	              url = book_data.pick("$..docs[0].url");
  	                title = book_data.pick("$..docs[0].title");
	                  msg = <<
This book's available the library. <a id="MLN_link" href="#{url}">#{title}</a>
>>;
        }
        if(book_data.pick("$..numFound") > 0) then {
            notify("Local Library", msg)
        }
        callbacks {
            success { click id="MLN_link" }
     }}}

                 KRL for Library Lookup
ruleset library {
      global {
          datasource library_search
                 <- "http://www.example.com/bookdata/?wt=json" cachable;
      }
      rule book_notfication is active {
          select when pageview "www.amazon.com/gp/product/(d+)/" setting(isbn)
          pre {
        	          book_data = datasource:library_search("q="+isbn);
    	              url = book_data.pick("$..docs[0].url");
  	                title = book_data.pick("$..docs[0].title");
	                  msg = <<
This book's available the library. <a id="MLN_link" href="#{url}">#{title}</a>
>>;
        }
        if(book_data.pick("$..numFound") > 0) then {
            notify("Local Library", msg)
        }
        callbacks {
            success { click id="MLN_link" }
     }}}

                 KRL for Library Lookup
ruleset library {
      global {
          datasource library_search
                 <- "http://www.example.com/bookdata/?wt=json" cachable;
      }
      rule book_notfication is active {
          select when pageview "www.amazon.com/gp/product/(d+)/" setting(isbn)
          pre {
        	          book_data = datasource:library_search("q="+isbn);
    	              url = book_data.pick("$..docs[0].url");
  	                title = book_data.pick("$..docs[0].title");
	                  msg = <<
This book's available the library. <a id="MLN_link" href="#{url}">#{title}</a>
>>;
        }
        if(book_data.pick("$..numFound") > 0) then {
            notify("Local Library", msg)
        }
        callbacks {
            success { click id="MLN_link" }
     }}}

                 KRL for Library Lookup
ruleset library {
      global {
          datasource library_search
                 <- "http://www.example.com/bookdata/?wt=json" cachable;
      }
      rule book_notfication is active {
          select when pageview "www.amazon.com/gp/product/(d+)/" setting(isbn)
          pre {
        	          book_data = datasource:library_search("q="+isbn);
    	              url = book_data.pick("$..docs[0].url");
  	                title = book_data.pick("$..docs[0].title");
	                  msg = <<
This book's available the library. <a id="MLN_link" href="#{url}">#{title}</a>
>>;
        }
        if(book_data.pick("$..numFound") > 0) then {
            notify("Local Library", msg)
        }
        callbacks {
            success { click id="MLN_link" }
     }}}

                 KRL for Library Lookup
ruleset library {
      global {
          datasource library_search
                 <- "http://www.example.com/bookdata/?wt=json" cachable;
      }
      rule book_notfication is active {
          select when pageview "www.amazon.com/gp/product/(d+)/" setting(isbn)
          pre {
        	          book_data = datasource:library_search("q="+isbn);
    	              url = book_data.pick("$..docs[0].url");
  	                title = book_data.pick("$..docs[0].title");
	                  msg = <<
This book's available the library. <a id="MLN_link" href="#{url}">#{title}</a>
>>;
        }
        if(book_data.pick("$..numFound") > 0) then {
            notify("Local Library", msg)
        }
        callbacks {
            success { click id="MLN_link" }
     }}}

                 KRL for Library Lookup
ruleset library {
      global {
          datasource library_search
                 <- "http://www.example.com/bookdata/?wt=json" cachable;
      }
      rule book_notfication is active {
          select when pageview "www.amazon.com/gp/product/(d+)/" setting(isbn)
          pre {
        	          book_data = datasource:library_search("q="+isbn);
    	              url = book_data.pick("$..docs[0].url");
  	                title = book_data.pick("$..docs[0].title");
	                  msg = <<
This book's available the library. <a id="MLN_link" href="#{url}">#{title}</a>
>>;
        }
        if(book_data.pick("$..numFound") > 0) then {
            notify("Local Library", msg)
        }
        callbacks {
            success { click id="MLN_link" }
     }}}

                 KRL for Library Lookup
ruleset library {
      global {
          datasource library_search
                 <- "http://www.example.com/bookdata/?wt=json" cachable;
      }
      rule book_notfication is active {
          select when pageview "www.amazon.com/gp/product/(d+)/" setting(isbn)
          pre {
        	          book_data = datasource:library_search("q="+isbn);
    	              url = book_data.pick("$..docs[0].url");
  	                title = book_data.pick("$..docs[0].title");
	                  msg = <<
This book's available the library. <a id="MLN_link" href="#{url}">#{title}</a>
>>;
        }
        if(book_data.pick("$..numFound") > 0) then {
            notify("Local Library", msg)
        }
        callbacks {
            success { click id="MLN_link" }
     }}}

                 KRL for Library Lookup
ruleset library {
      global {
          datasource library_search
                 <- "http://www.example.com/bookdata/?wt=json" cachable;
      }
      rule book_notfication is active {
          select when pageview "www.amazon.com/gp/product/(d+)/" setting(isbn)
          pre {
        	          book_data = datasource:library_search("q="+isbn);
    	              url = book_data.pick("$..docs[0].url");
  	                title = book_data.pick("$..docs[0].title");
	                  msg = <<
This book's available the library. <a id="MLN_link" href="#{url}">#{title}</a>
>>;
        }
        if(book_data.pick("$..numFound") > 0) then {
            notify("Local Library", msg)
        }
        callbacks {
            success { click id="MLN_link" }
     }}}

                 KRL for Library Lookup
ruleset library {
      global {
          datasource library_search
                 <- "http://www.example.com/bookdata/?wt=json" cachable;
      }
      rule book_notfication is active {
          select when pageview "www.amazon.com/gp/product/(d+)/" setting(isbn)
          pre {
        	          book_data = datasource:library_search("q="+isbn);
    	              url = book_data.pick("$..docs[0].url");
  	                title = book_data.pick("$..docs[0].title");
	                  msg = <<
This book's available the library. <a id="MLN_link" href="#{url}">#{title}</a>
>>;
        }
        if(book_data.pick("$..numFound") > 0) then {
            notify("Local Library", msg)
        }
        callbacks {
            success { click id="MLN_link" }
     }}}

                 KRL for Library Lookup
Demo
early binding
      vs
late binding
Sign up for a
free developer account
at http://www.kynetx.com
Building a Programing
Layer for the Internet
     Contact info:
    pjw@kynetx.com
    www.windley.com
       @windley

Weitere ähnliche Inhalte

Was ist angesagt?

MongoDB .local Chicago 2019: Practical Data Modeling for MongoDB: Tutorial
MongoDB .local Chicago 2019: Practical Data Modeling for MongoDB: TutorialMongoDB .local Chicago 2019: Practical Data Modeling for MongoDB: Tutorial
MongoDB .local Chicago 2019: Practical Data Modeling for MongoDB: TutorialMongoDB
 
MongoDB and Hadoop: Driving Business Insights
MongoDB and Hadoop: Driving Business InsightsMongoDB and Hadoop: Driving Business Insights
MongoDB and Hadoop: Driving Business InsightsMongoDB
 
MongoDB and Schema Design
MongoDB and Schema DesignMongoDB and Schema Design
MongoDB and Schema DesignMatias Cascallares
 
MongoDB .local Munich 2019: Still Haven't Found What You Are Looking For? Use...
MongoDB .local Munich 2019: Still Haven't Found What You Are Looking For? Use...MongoDB .local Munich 2019: Still Haven't Found What You Are Looking For? Use...
MongoDB .local Munich 2019: Still Haven't Found What You Are Looking For? Use...MongoDB
 
Introducing Azure DocumentDB - NoSQL, No Problem
Introducing Azure DocumentDB - NoSQL, No ProblemIntroducing Azure DocumentDB - NoSQL, No Problem
Introducing Azure DocumentDB - NoSQL, No ProblemAndrew Liu
 
Conceptos bĂĄsicos. Seminario web 4: IndexaciĂłn avanzada, Ă­ndices de texto y g...
Conceptos bĂĄsicos. Seminario web 4: IndexaciĂłn avanzada, Ă­ndices de texto y g...Conceptos bĂĄsicos. Seminario web 4: IndexaciĂłn avanzada, Ă­ndices de texto y g...
Conceptos bĂĄsicos. Seminario web 4: IndexaciĂłn avanzada, Ă­ndices de texto y g...MongoDB
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBMongoDB
 
Azure DocumentDB: Advanced Features for Large Scale-Apps
Azure DocumentDB: Advanced Features for Large Scale-AppsAzure DocumentDB: Advanced Features for Large Scale-Apps
Azure DocumentDB: Advanced Features for Large Scale-AppsAndrew Liu
 
Using MongoDB As a Tick Database
Using MongoDB As a Tick DatabaseUsing MongoDB As a Tick Database
Using MongoDB As a Tick DatabaseMongoDB
 
How to leverage MongoDB for Big Data Analysis and Operations with MongoDB's A...
How to leverage MongoDB for Big Data Analysis and Operations with MongoDB's A...How to leverage MongoDB for Big Data Analysis and Operations with MongoDB's A...
How to leverage MongoDB for Big Data Analysis and Operations with MongoDB's A...Gianfranco Palumbo
 
TechEd AU 2014: Microsoft Azure DocumentDB Deep Dive
TechEd AU 2014: Microsoft Azure DocumentDB Deep DiveTechEd AU 2014: Microsoft Azure DocumentDB Deep Dive
TechEd AU 2014: Microsoft Azure DocumentDB Deep DiveIntergen
 
MongoDB .local Toronto 2019: MongoDB Atlas Search Deep Dive
MongoDB .local Toronto 2019: MongoDB Atlas Search Deep DiveMongoDB .local Toronto 2019: MongoDB Atlas Search Deep Dive
MongoDB .local Toronto 2019: MongoDB Atlas Search Deep DiveMongoDB
 
Where Is My Data - ILTAM Session
Where Is My Data - ILTAM SessionWhere Is My Data - ILTAM Session
Where Is My Data - ILTAM SessionTamir Dresher
 
Android writing and reading from firebase
Android writing and reading from firebaseAndroid writing and reading from firebase
Android writing and reading from firebaseOsahon Gino Ediagbonya
 
MongoDB Schema Design (Richard Kreuter's Mongo Berlin preso)
MongoDB Schema Design (Richard Kreuter's Mongo Berlin preso)MongoDB Schema Design (Richard Kreuter's Mongo Berlin preso)
MongoDB Schema Design (Richard Kreuter's Mongo Berlin preso)MongoDB
 
N1QL workshop: Indexing & Query turning.
N1QL workshop: Indexing & Query turning.N1QL workshop: Indexing & Query turning.
N1QL workshop: Indexing & Query turning.Keshav Murthy
 
Visualizing Mobile Broadband with MongoDB
Visualizing Mobile Broadband with MongoDBVisualizing Mobile Broadband with MongoDB
Visualizing Mobile Broadband with MongoDBMongoDB
 
The Fine Art of Schema Design in MongoDB: Dos and Don'ts
The Fine Art of Schema Design in MongoDB: Dos and Don'tsThe Fine Art of Schema Design in MongoDB: Dos and Don'ts
The Fine Art of Schema Design in MongoDB: Dos and Don'tsMatias Cascallares
 
Entity Relationships in a Document Database at CouchConf Boston
Entity Relationships in a Document Database at CouchConf BostonEntity Relationships in a Document Database at CouchConf Boston
Entity Relationships in a Document Database at CouchConf BostonBradley Holt
 

Was ist angesagt? (20)

MongoDB .local Chicago 2019: Practical Data Modeling for MongoDB: Tutorial
MongoDB .local Chicago 2019: Practical Data Modeling for MongoDB: TutorialMongoDB .local Chicago 2019: Practical Data Modeling for MongoDB: Tutorial
MongoDB .local Chicago 2019: Practical Data Modeling for MongoDB: Tutorial
 
MongoDB and Hadoop: Driving Business Insights
MongoDB and Hadoop: Driving Business InsightsMongoDB and Hadoop: Driving Business Insights
MongoDB and Hadoop: Driving Business Insights
 
MongoDB and Schema Design
MongoDB and Schema DesignMongoDB and Schema Design
MongoDB and Schema Design
 
MongoDB .local Munich 2019: Still Haven't Found What You Are Looking For? Use...
MongoDB .local Munich 2019: Still Haven't Found What You Are Looking For? Use...MongoDB .local Munich 2019: Still Haven't Found What You Are Looking For? Use...
MongoDB .local Munich 2019: Still Haven't Found What You Are Looking For? Use...
 
Introducing Azure DocumentDB - NoSQL, No Problem
Introducing Azure DocumentDB - NoSQL, No ProblemIntroducing Azure DocumentDB - NoSQL, No Problem
Introducing Azure DocumentDB - NoSQL, No Problem
 
Conceptos bĂĄsicos. Seminario web 4: IndexaciĂłn avanzada, Ă­ndices de texto y g...
Conceptos bĂĄsicos. Seminario web 4: IndexaciĂłn avanzada, Ă­ndices de texto y g...Conceptos bĂĄsicos. Seminario web 4: IndexaciĂłn avanzada, Ă­ndices de texto y g...
Conceptos bĂĄsicos. Seminario web 4: IndexaciĂłn avanzada, Ă­ndices de texto y g...
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
Azure DocumentDB: Advanced Features for Large Scale-Apps
Azure DocumentDB: Advanced Features for Large Scale-AppsAzure DocumentDB: Advanced Features for Large Scale-Apps
Azure DocumentDB: Advanced Features for Large Scale-Apps
 
Using MongoDB As a Tick Database
Using MongoDB As a Tick DatabaseUsing MongoDB As a Tick Database
Using MongoDB As a Tick Database
 
Introduction to JSON & AJAX
Introduction to JSON & AJAXIntroduction to JSON & AJAX
Introduction to JSON & AJAX
 
How to leverage MongoDB for Big Data Analysis and Operations with MongoDB's A...
How to leverage MongoDB for Big Data Analysis and Operations with MongoDB's A...How to leverage MongoDB for Big Data Analysis and Operations with MongoDB's A...
How to leverage MongoDB for Big Data Analysis and Operations with MongoDB's A...
 
TechEd AU 2014: Microsoft Azure DocumentDB Deep Dive
TechEd AU 2014: Microsoft Azure DocumentDB Deep DiveTechEd AU 2014: Microsoft Azure DocumentDB Deep Dive
TechEd AU 2014: Microsoft Azure DocumentDB Deep Dive
 
MongoDB .local Toronto 2019: MongoDB Atlas Search Deep Dive
MongoDB .local Toronto 2019: MongoDB Atlas Search Deep DiveMongoDB .local Toronto 2019: MongoDB Atlas Search Deep Dive
MongoDB .local Toronto 2019: MongoDB Atlas Search Deep Dive
 
Where Is My Data - ILTAM Session
Where Is My Data - ILTAM SessionWhere Is My Data - ILTAM Session
Where Is My Data - ILTAM Session
 
Android writing and reading from firebase
Android writing and reading from firebaseAndroid writing and reading from firebase
Android writing and reading from firebase
 
MongoDB Schema Design (Richard Kreuter's Mongo Berlin preso)
MongoDB Schema Design (Richard Kreuter's Mongo Berlin preso)MongoDB Schema Design (Richard Kreuter's Mongo Berlin preso)
MongoDB Schema Design (Richard Kreuter's Mongo Berlin preso)
 
N1QL workshop: Indexing & Query turning.
N1QL workshop: Indexing & Query turning.N1QL workshop: Indexing & Query turning.
N1QL workshop: Indexing & Query turning.
 
Visualizing Mobile Broadband with MongoDB
Visualizing Mobile Broadband with MongoDBVisualizing Mobile Broadband with MongoDB
Visualizing Mobile Broadband with MongoDB
 
The Fine Art of Schema Design in MongoDB: Dos and Don'ts
The Fine Art of Schema Design in MongoDB: Dos and Don'tsThe Fine Art of Schema Design in MongoDB: Dos and Don'ts
The Fine Art of Schema Design in MongoDB: Dos and Don'ts
 
Entity Relationships in a Document Database at CouchConf Boston
Entity Relationships in a Document Database at CouchConf BostonEntity Relationships in a Document Database at CouchConf Boston
Entity Relationships in a Document Database at CouchConf Boston
 

Ähnlich wie A Programming Layer for the Internet from Kynetx Impact 2010

AppBuilder Tour
AppBuilder TourAppBuilder Tour
AppBuilder Tourknightfour
 
Embrace NoSQL and Eventual Consistency with Ripple
Embrace NoSQL and Eventual Consistency with RippleEmbrace NoSQL and Eventual Consistency with Ripple
Embrace NoSQL and Eventual Consistency with RippleSean Cribbs
 
A Swarm of Ads
A Swarm of AdsA Swarm of Ads
A Swarm of Adsdalewong108
 
MeteorJS Introduction
MeteorJS IntroductionMeteorJS Introduction
MeteorJS IntroductionNitya Narasimhan
 
Sharing a Startup’s Big Data Lessons
Sharing a Startup’s Big Data LessonsSharing a Startup’s Big Data Lessons
Sharing a Startup’s Big Data LessonsGeorge Stathis
 
Datomic – A Modern Database - StampedeCon 2014
Datomic – A Modern Database - StampedeCon 2014Datomic – A Modern Database - StampedeCon 2014
Datomic – A Modern Database - StampedeCon 2014StampedeCon
 
DITA's New Thang: Going Mapless!
DITA's New Thang: Going Mapless!DITA's New Thang: Going Mapless!
DITA's New Thang: Going Mapless!dclsocialmedia
 
Java/Scala Lab: Борис Трофимов - Обжигающая Big Data.
Java/Scala Lab: Борис Трофимов - Обжигающая Big Data.Java/Scala Lab: Борис Трофимов - Обжигающая Big Data.
Java/Scala Lab: Борис Трофимов - Обжигающая Big Data.GeeksLab Odessa
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBJustin Smestad
 
AWS CloudFormation Best Practices
AWS CloudFormation Best PracticesAWS CloudFormation Best Practices
AWS CloudFormation Best PracticesAmazon Web Services
 
Introduction to Riak and Ripple (KC.rb)
Introduction to Riak and Ripple (KC.rb)Introduction to Riak and Ripple (KC.rb)
Introduction to Riak and Ripple (KC.rb)Sean Cribbs
 
EinfĂźhrung in MongoDB
EinfĂźhrung in MongoDBEinfĂźhrung in MongoDB
EinfĂźhrung in MongoDBNETUserGroupBern
 
MyHeritage Cassandra meetup 2016
MyHeritage Cassandra meetup 2016MyHeritage Cassandra meetup 2016
MyHeritage Cassandra meetup 2016Ran Peled
 
(BDT209) Launch: Amazon Elasticsearch For Real-Time Data Analytics
(BDT209) Launch: Amazon Elasticsearch For Real-Time Data Analytics(BDT209) Launch: Amazon Elasticsearch For Real-Time Data Analytics
(BDT209) Launch: Amazon Elasticsearch For Real-Time Data AnalyticsAmazon Web Services
 
Data encoding and Metadata for Streams
Data encoding and Metadata for StreamsData encoding and Metadata for Streams
Data encoding and Metadata for Streamsunivalence
 
Apache kafka meet_up_zurich_at_swissre_from_zero_to_hero_with_kafka_connect_2...
Apache kafka meet_up_zurich_at_swissre_from_zero_to_hero_with_kafka_connect_2...Apache kafka meet_up_zurich_at_swissre_from_zero_to_hero_with_kafka_connect_2...
Apache kafka meet_up_zurich_at_swissre_from_zero_to_hero_with_kafka_connect_2...confluent
 
Introducing DataWave
Introducing DataWaveIntroducing DataWave
Introducing DataWaveData Works MD
 
MongoDB at ZPUGDC
MongoDB at ZPUGDCMongoDB at ZPUGDC
MongoDB at ZPUGDCMike Dirolf
 
CouchDB at JAOO Århus 2009
CouchDB at JAOO Århus 2009CouchDB at JAOO Århus 2009
CouchDB at JAOO Århus 2009Jason Davies
 
Web Browser Controls in Adlib: The Hidden Diamond in the Adlib Treasure Chest
Web Browser Controls in Adlib: The Hidden Diamond in the Adlib Treasure ChestWeb Browser Controls in Adlib: The Hidden Diamond in the Adlib Treasure Chest
Web Browser Controls in Adlib: The Hidden Diamond in the Adlib Treasure ChestAxiell ALM
 

Ähnlich wie A Programming Layer for the Internet from Kynetx Impact 2010 (20)

AppBuilder Tour
AppBuilder TourAppBuilder Tour
AppBuilder Tour
 
Embrace NoSQL and Eventual Consistency with Ripple
Embrace NoSQL and Eventual Consistency with RippleEmbrace NoSQL and Eventual Consistency with Ripple
Embrace NoSQL and Eventual Consistency with Ripple
 
A Swarm of Ads
A Swarm of AdsA Swarm of Ads
A Swarm of Ads
 
MeteorJS Introduction
MeteorJS IntroductionMeteorJS Introduction
MeteorJS Introduction
 
Sharing a Startup’s Big Data Lessons
Sharing a Startup’s Big Data LessonsSharing a Startup’s Big Data Lessons
Sharing a Startup’s Big Data Lessons
 
Datomic – A Modern Database - StampedeCon 2014
Datomic – A Modern Database - StampedeCon 2014Datomic – A Modern Database - StampedeCon 2014
Datomic – A Modern Database - StampedeCon 2014
 
DITA's New Thang: Going Mapless!
DITA's New Thang: Going Mapless!DITA's New Thang: Going Mapless!
DITA's New Thang: Going Mapless!
 
Java/Scala Lab: Борис Трофимов - Обжигающая Big Data.
Java/Scala Lab: Борис Трофимов - Обжигающая Big Data.Java/Scala Lab: Борис Трофимов - Обжигающая Big Data.
Java/Scala Lab: Борис Трофимов - Обжигающая Big Data.
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
AWS CloudFormation Best Practices
AWS CloudFormation Best PracticesAWS CloudFormation Best Practices
AWS CloudFormation Best Practices
 
Introduction to Riak and Ripple (KC.rb)
Introduction to Riak and Ripple (KC.rb)Introduction to Riak and Ripple (KC.rb)
Introduction to Riak and Ripple (KC.rb)
 
EinfĂźhrung in MongoDB
EinfĂźhrung in MongoDBEinfĂźhrung in MongoDB
EinfĂźhrung in MongoDB
 
MyHeritage Cassandra meetup 2016
MyHeritage Cassandra meetup 2016MyHeritage Cassandra meetup 2016
MyHeritage Cassandra meetup 2016
 
(BDT209) Launch: Amazon Elasticsearch For Real-Time Data Analytics
(BDT209) Launch: Amazon Elasticsearch For Real-Time Data Analytics(BDT209) Launch: Amazon Elasticsearch For Real-Time Data Analytics
(BDT209) Launch: Amazon Elasticsearch For Real-Time Data Analytics
 
Data encoding and Metadata for Streams
Data encoding and Metadata for StreamsData encoding and Metadata for Streams
Data encoding and Metadata for Streams
 
Apache kafka meet_up_zurich_at_swissre_from_zero_to_hero_with_kafka_connect_2...
Apache kafka meet_up_zurich_at_swissre_from_zero_to_hero_with_kafka_connect_2...Apache kafka meet_up_zurich_at_swissre_from_zero_to_hero_with_kafka_connect_2...
Apache kafka meet_up_zurich_at_swissre_from_zero_to_hero_with_kafka_connect_2...
 
Introducing DataWave
Introducing DataWaveIntroducing DataWave
Introducing DataWave
 
MongoDB at ZPUGDC
MongoDB at ZPUGDCMongoDB at ZPUGDC
MongoDB at ZPUGDC
 
CouchDB at JAOO Århus 2009
CouchDB at JAOO Århus 2009CouchDB at JAOO Århus 2009
CouchDB at JAOO Århus 2009
 
Web Browser Controls in Adlib: The Hidden Diamond in the Adlib Treasure Chest
Web Browser Controls in Adlib: The Hidden Diamond in the Adlib Treasure ChestWeb Browser Controls in Adlib: The Hidden Diamond in the Adlib Treasure Chest
Web Browser Controls in Adlib: The Hidden Diamond in the Adlib Treasure Chest
 

Mehr von Phil Windley

Trust, Blockchains, and Self-Soveriegn Identity
Trust, Blockchains, and Self-Soveriegn IdentityTrust, Blockchains, and Self-Soveriegn Identity
Trust, Blockchains, and Self-Soveriegn IdentityPhil Windley
 
A University API
A University APIA University API
A University APIPhil Windley
 
Rule Language for IoT
Rule Language for IoTRule Language for IoT
Rule Language for IoTPhil Windley
 
Events, Picos, and Microservices
Events, Picos, and MicroservicesEvents, Picos, and Microservices
Events, Picos, and MicroservicesPhil Windley
 
Picos, CloudOS, and Connecting Things
Picos, CloudOS, and Connecting ThingsPicos, CloudOS, and Connecting Things
Picos, CloudOS, and Connecting ThingsPhil Windley
 
Events, Picos, and Microservices
Events, Picos, and MicroservicesEvents, Picos, and Microservices
Events, Picos, and MicroservicesPhil Windley
 
Relationships: Modeling the Vehicle Ecosystem with Fuse
Relationships: Modeling the Vehicle Ecosystem with FuseRelationships: Modeling the Vehicle Ecosystem with Fuse
Relationships: Modeling the Vehicle Ecosystem with FusePhil Windley
 
Connecting Things
Connecting ThingsConnecting Things
Connecting ThingsPhil Windley
 
Persistent Compute Objects and the Fabric of Cyberspace
Persistent Compute Objects and the Fabric of CyberspacePersistent Compute Objects and the Fabric of Cyberspace
Persistent Compute Objects and the Fabric of CyberspacePhil Windley
 
Persistent Compute Objects - Picos
Persistent Compute Objects - PicosPersistent Compute Objects - Picos
Persistent Compute Objects - PicosPhil Windley
 
Fuse Technical Presentation
Fuse Technical PresentationFuse Technical Presentation
Fuse Technical PresentationPhil Windley
 
Personal Cloud Application Architectures
Personal Cloud Application ArchitecturesPersonal Cloud Application Architectures
Personal Cloud Application ArchitecturesPhil Windley
 
Why Personal Clouds
Why Personal CloudsWhy Personal Clouds
Why Personal CloudsPhil Windley
 
Personal Cloud Operating Systems
Personal Cloud Operating SystemsPersonal Cloud Operating Systems
Personal Cloud Operating SystemsPhil Windley
 
Introducing Personal Event Networks
Introducing Personal Event NetworksIntroducing Personal Event Networks
Introducing Personal Event NetworksPhil Windley
 
The Live Web #SCITDA11 Keynote
The Live Web #SCITDA11 KeynoteThe Live Web #SCITDA11 Keynote
The Live Web #SCITDA11 KeynotePhil Windley
 
Shaping strategies and Startups
Shaping strategies and StartupsShaping strategies and Startups
Shaping strategies and StartupsPhil Windley
 
Shaping Strategies and the Live Web - Kynetx Impact 2011
Shaping Strategies and the Live Web - Kynetx Impact 2011Shaping Strategies and the Live Web - Kynetx Impact 2011
Shaping Strategies and the Live Web - Kynetx Impact 2011Phil Windley
 
The Evented Web Makes Users Happy
The Evented Web Makes Users HappyThe Evented Web Makes Users Happy
The Evented Web Makes Users HappyPhil Windley
 

Mehr von Phil Windley (20)

Trust, Blockchains, and Self-Soveriegn Identity
Trust, Blockchains, and Self-Soveriegn IdentityTrust, Blockchains, and Self-Soveriegn Identity
Trust, Blockchains, and Self-Soveriegn Identity
 
A University API
A University APIA University API
A University API
 
Rule Language for IoT
Rule Language for IoTRule Language for IoT
Rule Language for IoT
 
Events, Picos, and Microservices
Events, Picos, and MicroservicesEvents, Picos, and Microservices
Events, Picos, and Microservices
 
Picos, CloudOS, and Connecting Things
Picos, CloudOS, and Connecting ThingsPicos, CloudOS, and Connecting Things
Picos, CloudOS, and Connecting Things
 
Events, Picos, and Microservices
Events, Picos, and MicroservicesEvents, Picos, and Microservices
Events, Picos, and Microservices
 
Relationships: Modeling the Vehicle Ecosystem with Fuse
Relationships: Modeling the Vehicle Ecosystem with FuseRelationships: Modeling the Vehicle Ecosystem with Fuse
Relationships: Modeling the Vehicle Ecosystem with Fuse
 
Fuse 2
Fuse 2Fuse 2
Fuse 2
 
Connecting Things
Connecting ThingsConnecting Things
Connecting Things
 
Persistent Compute Objects and the Fabric of Cyberspace
Persistent Compute Objects and the Fabric of CyberspacePersistent Compute Objects and the Fabric of Cyberspace
Persistent Compute Objects and the Fabric of Cyberspace
 
Persistent Compute Objects - Picos
Persistent Compute Objects - PicosPersistent Compute Objects - Picos
Persistent Compute Objects - Picos
 
Fuse Technical Presentation
Fuse Technical PresentationFuse Technical Presentation
Fuse Technical Presentation
 
Personal Cloud Application Architectures
Personal Cloud Application ArchitecturesPersonal Cloud Application Architectures
Personal Cloud Application Architectures
 
Why Personal Clouds
Why Personal CloudsWhy Personal Clouds
Why Personal Clouds
 
Personal Cloud Operating Systems
Personal Cloud Operating SystemsPersonal Cloud Operating Systems
Personal Cloud Operating Systems
 
Introducing Personal Event Networks
Introducing Personal Event NetworksIntroducing Personal Event Networks
Introducing Personal Event Networks
 
The Live Web #SCITDA11 Keynote
The Live Web #SCITDA11 KeynoteThe Live Web #SCITDA11 Keynote
The Live Web #SCITDA11 Keynote
 
Shaping strategies and Startups
Shaping strategies and StartupsShaping strategies and Startups
Shaping strategies and Startups
 
Shaping Strategies and the Live Web - Kynetx Impact 2011
Shaping Strategies and the Live Web - Kynetx Impact 2011Shaping Strategies and the Live Web - Kynetx Impact 2011
Shaping Strategies and the Live Web - Kynetx Impact 2011
 
The Evented Web Makes Users Happy
The Evented Web Makes Users HappyThe Evented Web Makes Users Happy
The Evented Web Makes Users Happy
 

KĂźrzlich hochgeladen

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
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
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
 
🐬 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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
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
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel AraĂşjo
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
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
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
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
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
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
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 

KĂźrzlich hochgeladen (20)

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...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
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
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
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
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
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
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
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
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 

A Programming Layer for the Internet from Kynetx Impact 2010

  • 1. Building a Programming Layer for the Internet Phillip J. Windley, Ph.D Founder and CTO Kynetx www.kynetx.com
  • 2.
  • 3.
  • 5. scenarios can be described as expressions over events
  • 6. when new book on wishlist before visiting borders...
  • 8.
  • 9.
  • 10.
  • 11. People want to achieve a purpose, not go somewhere
  • 12. The location metaphor has led us to focus attention on servers
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20. There’s more to the Internet than servers
  • 21.
  • 22.
  • 23.
  • 24.
  • 25. Amazon and Your Local Library
  • 26. Amazon and Your Local Library
  • 27. An intelligent, adaptable browser helps you achieve your purpose
  • 31. What does the same Web program look like?
  • 33. Amount Continue Rate Continue
  • 34. Amount Continue Rate Continue Amount: X.XX
  • 35. Amount Continue amount? Rate Continue Amount: X.XX
  • 36. Amount Continue amount? Rate Continue sequence? Amount: X.XX
  • 37. Amount Continue amount? Rate Continue sequence? Amount: X.XX • data
  • 38. Amount Continue amount? Rate Continue sequence? Amount: X.XX • data • control flow
  • 39. Amount Continue amount? Rate Continue sequence? Amount: X.XX • data • control flow ...and this is just one server
  • 40.
  • 43. reacting to events from the user
  • 59. BX Kynetx Architecture
  • 60. KNS BX Kynetx Architecture
  • 61. KNS BX Kynetx Architecture
  • 62. KNS BX Kynetx Architecture
  • 63. Web KNS • pageview • submit • click • etc BX Kynetx Architecture
  • 64. Events Web KNS • pageview • submit • click • etc BX Kynetx Architecture
  • 65. Events Web KNS • pageview • submit • click • etc Endpoint BX Kynetx Architecture
  • 66. Events Web KNS • pageview • submit • click • etc Endpoint BX Kynetx Architecture
  • 67. Events Web Mail KNS • pageview • received • submit • sent • click • refiled • etc • etc Endpoint BX Kynetx Architecture
  • 68. Events Web Mail Other KNS • pageview • received • RSS • submit • sent • Facebook • click • refiled • Mobile • etc • etc • etc Endpoint BX Kynetx Architecture
  • 69. Kynetx Rule Language (KRL) Sometimes a layer of indirection helps...
  • 70. Kynetx Rule Language (KRL) Sometimes a layer of indirection helps... Domain specific language
  • 71. Kynetx Rule Language (KRL) Sometimes a layer of indirection helps... Domain specific language Mental leverage via abstractions
  • 72. Kynetx Rule Language (KRL) Sometimes a layer of indirection helps... Domain specific language Mental leverage via abstractions Designed for programming the Internet
  • 73. Kynetx Rule Language (KRL) Sometimes a layer of indirection helps... Domain specific language Mental leverage via abstractions Designed for programming the Internet Browser and platform independent
  • 75. KRL Rulesets Events
  • 76. KRL Rulesets Events Pageview via URL class
  • 77. KRL Rulesets Events Pageview via URL class Submit form
  • 78. KRL Rulesets Events Pageview via URL class Submit form Click element
  • 79. KRL Rulesets Events Pageview via URL class Submit form Click element Change element
  • 80. KRL Rulesets Events Pageview via URL class Submit form Click element Change element Declare and access data sources
  • 81. KRL Rulesets Events Pageview via URL class Submit form Click element Change element Declare and access data sources Conditionally fire action
  • 82. KRL Rulesets Events Pageview via URL class Submit form Click element Change element Declare and access data sources Conditionally fire action Effects
  • 84. select when pageview “/archives/(d+)” setting(year)
  • 85. select when pageview “/archives/(d+)” setting(year) before click “#button”
  • 86. select when pageview “/archives/(d+)” setting(year) then click “#button”
  • 87. select when pageview “/archives/(d+)” setting(year) and click “#button”
  • 88. select when pageview “/archives/(d+)” setting(year) or click “#button”
  • 89. select when click “#button” between(pageview “/archives/d+”, pageview “google.com”)
  • 90. select when click “#button” not between( pageview “/archives/d+”, pageview “google.com”)
  • 91. select when (click “#button” not between( pageview “/archives/d+”, pageview “google.com”)) before click “#link_1”
  • 94. Little Languages Regular expressions
  • 95. Little Languages Regular expressions JSONPath
  • 96. Little Languages Regular expressions JSONPath jQuery HTML Selectors
  • 97. Data
  • 98. Data Geo-location Weather General (JSON/XML) Twitter Acxiom (pilot) GData (Google) Amazon OData (Microsoft)
  • 99. ruleset library { global { datasource library_search <- "http://www.example.com/bookdata/?wt=json" cachable; } rule book_notfication is active { select when pageview "www.amazon.com/gp/product/(d+)/" setting(isbn) pre { book_data = datasource:library_search("q="+isbn); url = book_data.pick("$..docs[0].url"); title = book_data.pick("$..docs[0].title"); msg = << This book's available the library. <a id="MLN_link" href="#{url}">#{title}</a> >>; } if(book_data.pick("$..numFound") > 0) then { notify("Local Library", msg) } callbacks { success { click id="MLN_link" } }}} KRL for Library Lookup
  • 100. ruleset library { global { datasource library_search <- "http://www.example.com/bookdata/?wt=json" cachable; } rule book_notfication is active { select when pageview "www.amazon.com/gp/product/(d+)/" setting(isbn) pre { book_data = datasource:library_search("q="+isbn); url = book_data.pick("$..docs[0].url"); title = book_data.pick("$..docs[0].title"); msg = << This book's available the library. <a id="MLN_link" href="#{url}">#{title}</a> >>; } if(book_data.pick("$..numFound") > 0) then { notify("Local Library", msg) } callbacks { success { click id="MLN_link" } }}} KRL for Library Lookup
  • 101. ruleset library { global { datasource library_search <- "http://www.example.com/bookdata/?wt=json" cachable; } rule book_notfication is active { select when pageview "www.amazon.com/gp/product/(d+)/" setting(isbn) pre { book_data = datasource:library_search("q="+isbn); url = book_data.pick("$..docs[0].url"); title = book_data.pick("$..docs[0].title"); msg = << This book's available the library. <a id="MLN_link" href="#{url}">#{title}</a> >>; } if(book_data.pick("$..numFound") > 0) then { notify("Local Library", msg) } callbacks { success { click id="MLN_link" } }}} KRL for Library Lookup
  • 102. ruleset library { global { datasource library_search <- "http://www.example.com/bookdata/?wt=json" cachable; } rule book_notfication is active { select when pageview "www.amazon.com/gp/product/(d+)/" setting(isbn) pre { book_data = datasource:library_search("q="+isbn); url = book_data.pick("$..docs[0].url"); title = book_data.pick("$..docs[0].title"); msg = << This book's available the library. <a id="MLN_link" href="#{url}">#{title}</a> >>; } if(book_data.pick("$..numFound") > 0) then { notify("Local Library", msg) } callbacks { success { click id="MLN_link" } }}} KRL for Library Lookup
  • 103. ruleset library { global { datasource library_search <- "http://www.example.com/bookdata/?wt=json" cachable; } rule book_notfication is active { select when pageview "www.amazon.com/gp/product/(d+)/" setting(isbn) pre { book_data = datasource:library_search("q="+isbn); url = book_data.pick("$..docs[0].url"); title = book_data.pick("$..docs[0].title"); msg = << This book's available the library. <a id="MLN_link" href="#{url}">#{title}</a> >>; } if(book_data.pick("$..numFound") > 0) then { notify("Local Library", msg) } callbacks { success { click id="MLN_link" } }}} KRL for Library Lookup
  • 104. ruleset library { global { datasource library_search <- "http://www.example.com/bookdata/?wt=json" cachable; } rule book_notfication is active { select when pageview "www.amazon.com/gp/product/(d+)/" setting(isbn) pre { book_data = datasource:library_search("q="+isbn); url = book_data.pick("$..docs[0].url"); title = book_data.pick("$..docs[0].title"); msg = << This book's available the library. <a id="MLN_link" href="#{url}">#{title}</a> >>; } if(book_data.pick("$..numFound") > 0) then { notify("Local Library", msg) } callbacks { success { click id="MLN_link" } }}} KRL for Library Lookup
  • 105. ruleset library { global { datasource library_search <- "http://www.example.com/bookdata/?wt=json" cachable; } rule book_notfication is active { select when pageview "www.amazon.com/gp/product/(d+)/" setting(isbn) pre { book_data = datasource:library_search("q="+isbn); url = book_data.pick("$..docs[0].url"); title = book_data.pick("$..docs[0].title"); msg = << This book's available the library. <a id="MLN_link" href="#{url}">#{title}</a> >>; } if(book_data.pick("$..numFound") > 0) then { notify("Local Library", msg) } callbacks { success { click id="MLN_link" } }}} KRL for Library Lookup
  • 106. ruleset library { global { datasource library_search <- "http://www.example.com/bookdata/?wt=json" cachable; } rule book_notfication is active { select when pageview "www.amazon.com/gp/product/(d+)/" setting(isbn) pre { book_data = datasource:library_search("q="+isbn); url = book_data.pick("$..docs[0].url"); title = book_data.pick("$..docs[0].title"); msg = << This book's available the library. <a id="MLN_link" href="#{url}">#{title}</a> >>; } if(book_data.pick("$..numFound") > 0) then { notify("Local Library", msg) } callbacks { success { click id="MLN_link" } }}} KRL for Library Lookup
  • 107. ruleset library { global { datasource library_search <- "http://www.example.com/bookdata/?wt=json" cachable; } rule book_notfication is active { select when pageview "www.amazon.com/gp/product/(d+)/" setting(isbn) pre { book_data = datasource:library_search("q="+isbn); url = book_data.pick("$..docs[0].url"); title = book_data.pick("$..docs[0].title"); msg = << This book's available the library. <a id="MLN_link" href="#{url}">#{title}</a> >>; } if(book_data.pick("$..numFound") > 0) then { notify("Local Library", msg) } callbacks { success { click id="MLN_link" } }}} KRL for Library Lookup
  • 108. Demo
  • 109. early binding vs late binding
  • 110. Sign up for a free developer account at http://www.kynetx.com
  • 111. Building a Programing Layer for the Internet Contact info: pjw@kynetx.com www.windley.com @windley

Hinweis der Redaktion

  1. book on wishlist or maybe you just looked at it.
  2. book on wishlist or maybe you just looked at it.
  3. Indeed location has been one of the primary metaphors we&amp;#x2019;ve used to describe the web. After all, a URL is a Uniform Resource LOCATOR. We use verbs like &amp;#x201C;browse,&amp;#x201D; &amp;#x201C;go,&amp;#x201D; &amp;#x201C;locate,&amp;#x201D; &amp;#x201C;property,&amp;#x201D; and even &amp;#x201C;history&amp;#x201D; that all have a property theme.
  4. In a &amp;#x201C;world of ends&amp;#x201D; everything is a peer, but architecturally, the Web is composed of different kinds of ends.
  5. The most important feature for this discussion is that each Web site is a silo. The location metaphor works fine when what you want to do is confined to that silo. But what happens when you need information from multiple places to accomplish your task?
  6. Sure clients have gotten flashier and faster over the years, but they&amp;#x2019;ve largely stayed the same: their job is to (a) go to a Web site, (b) retrieve content from a server and (c) properly render the content.
  7. The browser can see all of the silos that a person interacts with.
  8. With the right framework, the browser can bridge those individual contexts and provide a richer, cross-site context to develop.
  9. We&amp;#x2019;re going to talk about how to do this, but we&amp;#x2019;ll make a little detour into a discussion about Web programming first.
  10. Typically these are done in an ad hoc fashion. Some programming libraries and frameworks provide more help for this than others. In particular, managing data has gotten much easier due to standard library implementations for session data, but that&amp;#x2019;s the easy part.
  11. Complex event expressions allow reaction to event patterns over time
  12. Complex event expressions allow reaction to event patterns over time
  13. Complex event expressions allow reaction to event patterns over time
  14. Complex event expressions allow reaction to event patterns over time
  15. Complex event expressions allow reaction to event patterns over time
  16. Endpoints raise events KNS responds to events by running rules
  17. Endpoints raise events KNS responds to events by running rules
  18. Endpoints raise events KNS responds to events by running rules
  19. Endpoints raise events KNS responds to events by running rules
  20. Endpoints raise events KNS responds to events by running rules
  21. Endpoints raise events KNS responds to events by running rules
  22. Endpoints raise events KNS responds to events by running rules
  23. Endpoints raise events KNS responds to events by running rules
  24. Endpoints raise events KNS responds to events by running rules
  25. Endpoints raise events KNS responds to events by running rules
  26. Endpoints raise events KNS responds to events by running rules
  27. Endpoints raise events KNS responds to events by running rules
  28. Endpoints raise events KNS responds to events by running rules
  29. Endpoints raise events KNS responds to events by running rules
  30. Endpoints raise events KNS responds to events by running rules
  31. Endpoints raise events KNS responds to events by running rules
  32. Endpoints raise events KNS responds to events by running rules
  33. Endpoints raise events KNS responds to events by running rules
  34. Endpoints raise events KNS responds to events by running rules
  35. Endpoints raise events KNS responds to events by running rules
  36. Endpoints raise events KNS responds to events by running rules
  37. Endpoints raise events KNS responds to events by running rules
  38. Endpoints raise events KNS responds to events by running rules
  39. Endpoints raise events KNS responds to events by running rules
  40. Endpoints raise events KNS responds to events by running rules
  41. Endpoints raise events KNS responds to events by running rules
  42. No one&amp;#x2019;s ever surprised me with a GUI
  43. No one&amp;#x2019;s ever surprised me with a GUI
  44. No one&amp;#x2019;s ever surprised me with a GUI
  45. No one&amp;#x2019;s ever surprised me with a GUI
  46. Pause here to talk about the expansiveness of each in KRL