SlideShare a Scribd company logo
NoSQL, SSJS, & Sencha
Corey Butler
   15yrs+ Web Experience
   Founder @ Ecor Systems, LLC
   Chief Consultant @ Ecor Group (we’re on senchadevs.com)
   DW/BI & Web Practices

   Ext JS Since v2.
   Started in the Adobe, Microsoft, & IBM worlds.
   Started in Fortune 500, Entrepreneur since 2000.

Available Via:
 Blog:          coreybutler.com
 Twitter:       @goldglovecb
 LinkedIn.com/in/ecorsystems
Agenda
 NoSQL Overview
 SSJS Overview
 The Sencha Stack
 Simple Examples
The Stack




 The concept isn’t much different from traditional web architecture.
What is NoSQL?
 No defined relationships.
 No schemas or fixed types.
 NoACID?
What NoSQL Is NOT
 Hard & Fast RDBMS Replacement
 All Purpose Data Storage
NoSQL vs SQL
NOSQL                                                                SQL
      Goal Specific                                                     Generic
      Non-relational                                                    RDBMS
      Map/Reduce                                                        ANSI SQL
      Known Data Structure!                                             Predefined Data Structure
      No NULLS                                                          NULLS

function(doc) {                                                      SELECT   a.pk as id, a.somefield as value
  if ( doc.date < Date() && typeof doc.somefield !== undefined ) {   FROM     TblA a INNER JOIN TblB b
      var resultObject = {                                                    ON a.pk = b.fk
                                    id: doc.pk,                      WHERE    a.somevalue IN
                                    value: doc.somefield                      (SELECT someval FROM TblC)
                             };                                               AND b.date < CURRENT_TIMESTAMP
      emit(resultObject);                                                     AND a.somefield <> null
  }
}
Popular Choices
 CouchDB    Doc Store
 MongoDB    Doc Store w/ Key/Value
 Redis      Key/Value (In Memory)
 Riak       Dynamo-like (Commercial)
 Hadoop     Big Data
 Cassandra  BigTable
 CONSTANTLY GROWING
   kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis
Storage Types
Key/Value:   Schemaless. Where is data stored?
             Disk? Memory? Distributed?

Document:    Like Key/Value, but semi-structured.

Graph:       Based on graph theory. Focuses more
             on relationships between objects than
             the objects themselves.

Column/Wide: Key pointing to multiple columns
           (like rows in an RDBMS)
SSJS: Server Side
JavaScript
 SSJS was first introduced via Netscape
  LiveWire in 1996, but really didn’t
  become practical for many until 2009.
 Gaining popularity because:
     Faster JS Engines like Google’s V8 (Chrome), Spidermonkey
      (Firefox), & Rhino (Firefox).
     Maturity of JavaScript/ECMAScript.
     Standards like CommonJS.

   Useful for event-driven apps.
CommonJS
 Aims to standardize JS outside the browser.
 Best Practices/Metadata/Specs.
 Cross-Compatibility.
 Supports concepts like modules, file system
  references, exports, and other common
  requirements for serving applications.
SSJS Platforms
   Narwhal       Most complete CommonJS
                   implementation. Based on
                   Rhino with JSGI Middleware.


   NodeJS        Non-blocking & single threaded
                   (fast). Implements some
                   CommonJS. Based on V8. Large
                   and growing community.

Others: Jaxer, Jack, 10gen App Server
NodeJS
From nodejs.org

Node.js is a server-side JavaScript
environment that uses an asynchronous
event-driven model. This allows Node.js to
get excellent performance based on the
architectures of many Internet applications.

Nutshell: Create apps, like web servers.
Example Web Server
//Require the HTTP module
var          http       = require('http'),
             colors     = require('colors'),
             port       = 80;

//Create the server
http.createServer(function (req, res) {

 res.writeHead(200, {'Content-Type': 'text/plain'});
 res.end('Hello Worldn');

}).listen(port, "127.0.0.1");



//Indicate the server is running
console.log('Server running at http://127.0.0.1:'.green+port.toString().cyan+'/'.green);
NodeJS Modules
 Modules are plugins for Node.
 Lots of work already done for you.
 No governed quality control.
 Hundreds of Modules
 NPM is your friend.
NPM: Node Package
Manager
 http://npmjs.org
 Install/Publish Modules
 Manages dependencies.
 Extremely simple:
    npm install express
Tying to Sencha
 Connect Module is part of Sencha Labs
 Express Module is built on Connect.
Examples With Sencha
   Sencha  NoSQL (CouchDB)
     REST Proxy

   Sencha  NodeJS  MongoDB
     REST Proxy, Express, Mongoose



   This Presentation
     Socket.IO
Node Hotness
   Socket.IO  Web Sockets
     Comparable to HTML5 SSE (Comet)
     Dnode, NowJS
 Highly Concurrent Apps.
 Easy REST Development.
 Server-side headless browsers.
 Community & Momentum

More Related Content

What's hot

Mongo DB
Mongo DB Mongo DB
Basics of MongoDB
Basics of MongoDB Basics of MongoDB
Basics of MongoDB
Habilelabs
 
CBDW2014 - NoSQL Development With Couchbase and ColdFusion (CFML)
CBDW2014 - NoSQL Development With Couchbase and ColdFusion (CFML)CBDW2014 - NoSQL Development With Couchbase and ColdFusion (CFML)
CBDW2014 - NoSQL Development With Couchbase and ColdFusion (CFML)
Ortus Solutions, Corp
 
Mongodb basics and architecture
Mongodb basics and architectureMongodb basics and architecture
Mongodb basics and architecture
Bishal Khanal
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
Dineesha Suraweera
 
Mongodb - NoSql Database
Mongodb - NoSql DatabaseMongodb - NoSql Database
Mongodb - NoSql Database
Prashant Gupta
 
Mongo db intro.pptx
Mongo db intro.pptxMongo db intro.pptx
Mongo db intro.pptx
JWORKS powered by Ordina
 
Mongo db
Mongo dbMongo db
Mongo db
Noman Ellahi
 
CouchDB introduction
CouchDB introductionCouchDB introduction
CouchDB introduction
Sander van de Graaf
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBJustin Smestad
 
Introduction to NoSQL Database
Introduction to NoSQL DatabaseIntroduction to NoSQL Database
Introduction to NoSQL Database
Mohammad Alghanem
 
ITB2016 - NoSQL with mongodb and ColdFusion (CFML)
ITB2016 - NoSQL with mongodb and ColdFusion (CFML)ITB2016 - NoSQL with mongodb and ColdFusion (CFML)
ITB2016 - NoSQL with mongodb and ColdFusion (CFML)
Ortus Solutions, Corp
 
Introduction to mongo db
Introduction to mongo dbIntroduction to mongo db
Introduction to mongo db
Rohit Bishnoi
 
Couch db
Couch dbCouch db
Couch db
Rashmi Agale
 
Couch db
Couch dbCouch db
Couch db
amini gazar
 
shark attack on sql-on-hadoop Talk at BerlinBuzzwords 2014
shark attack on sql-on-hadoop Talk at BerlinBuzzwords 2014shark attack on sql-on-hadoop Talk at BerlinBuzzwords 2014
shark attack on sql-on-hadoop Talk at BerlinBuzzwords 2014
Gerd König
 
MongoDB for Coder Training (Coding Serbia 2013)
MongoDB for Coder Training (Coding Serbia 2013)MongoDB for Coder Training (Coding Serbia 2013)
MongoDB for Coder Training (Coding Serbia 2013)
Uwe Printz
 
MongoDB presentation
MongoDB presentationMongoDB presentation
MongoDB presentation
Hyphen Call
 
Introduction to mongodb
Introduction to mongodbIntroduction to mongodb
Introduction to mongodb
neela madheswari
 
Webinar: What's new in the .NET Driver
Webinar: What's new in the .NET DriverWebinar: What's new in the .NET Driver
Webinar: What's new in the .NET Driver
MongoDB
 

What's hot (20)

Mongo DB
Mongo DB Mongo DB
Mongo DB
 
Basics of MongoDB
Basics of MongoDB Basics of MongoDB
Basics of MongoDB
 
CBDW2014 - NoSQL Development With Couchbase and ColdFusion (CFML)
CBDW2014 - NoSQL Development With Couchbase and ColdFusion (CFML)CBDW2014 - NoSQL Development With Couchbase and ColdFusion (CFML)
CBDW2014 - NoSQL Development With Couchbase and ColdFusion (CFML)
 
Mongodb basics and architecture
Mongodb basics and architectureMongodb basics and architecture
Mongodb basics and architecture
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
Mongodb - NoSql Database
Mongodb - NoSql DatabaseMongodb - NoSql Database
Mongodb - NoSql Database
 
Mongo db intro.pptx
Mongo db intro.pptxMongo db intro.pptx
Mongo db intro.pptx
 
Mongo db
Mongo dbMongo db
Mongo db
 
CouchDB introduction
CouchDB introductionCouchDB introduction
CouchDB introduction
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
Introduction to NoSQL Database
Introduction to NoSQL DatabaseIntroduction to NoSQL Database
Introduction to NoSQL Database
 
ITB2016 - NoSQL with mongodb and ColdFusion (CFML)
ITB2016 - NoSQL with mongodb and ColdFusion (CFML)ITB2016 - NoSQL with mongodb and ColdFusion (CFML)
ITB2016 - NoSQL with mongodb and ColdFusion (CFML)
 
Introduction to mongo db
Introduction to mongo dbIntroduction to mongo db
Introduction to mongo db
 
Couch db
Couch dbCouch db
Couch db
 
Couch db
Couch dbCouch db
Couch db
 
shark attack on sql-on-hadoop Talk at BerlinBuzzwords 2014
shark attack on sql-on-hadoop Talk at BerlinBuzzwords 2014shark attack on sql-on-hadoop Talk at BerlinBuzzwords 2014
shark attack on sql-on-hadoop Talk at BerlinBuzzwords 2014
 
MongoDB for Coder Training (Coding Serbia 2013)
MongoDB for Coder Training (Coding Serbia 2013)MongoDB for Coder Training (Coding Serbia 2013)
MongoDB for Coder Training (Coding Serbia 2013)
 
MongoDB presentation
MongoDB presentationMongoDB presentation
MongoDB presentation
 
Introduction to mongodb
Introduction to mongodbIntroduction to mongodb
Introduction to mongodb
 
Webinar: What's new in the .NET Driver
Webinar: What's new in the .NET DriverWebinar: What's new in the .NET Driver
Webinar: What's new in the .NET Driver
 

Viewers also liked

Oocss & progressive css3 selectors
Oocss & progressive css3 selectorsOocss & progressive css3 selectors
Oocss & progressive css3 selectors
daniel_sternlicht
 
Html basics
Html basicsHtml basics
Html basics
php Roots
 
Basics of html for web development by software outsourcing company india
Basics of html for web development   by software outsourcing company indiaBasics of html for web development   by software outsourcing company india
Basics of html for web development by software outsourcing company india
Jignesh Aakoliya
 
HTML and CSS Basics
HTML and CSS BasicsHTML and CSS Basics
HTML and CSS Basics
Lindsey Meadows
 
CSS3: Ripe and Ready to Respond
CSS3: Ripe and Ready to RespondCSS3: Ripe and Ready to Respond
CSS3: Ripe and Ready to Respond
Denise Jacobs
 

Viewers also liked (7)

Oocss & progressive css3 selectors
Oocss & progressive css3 selectorsOocss & progressive css3 selectors
Oocss & progressive css3 selectors
 
Html basics
Html basicsHtml basics
Html basics
 
Basics of html for web development by software outsourcing company india
Basics of html for web development   by software outsourcing company indiaBasics of html for web development   by software outsourcing company india
Basics of html for web development by software outsourcing company india
 
Css3
Css3Css3
Css3
 
HTML and CSS Basics
HTML and CSS BasicsHTML and CSS Basics
HTML and CSS Basics
 
CSS3: Ripe and Ready to Respond
CSS3: Ripe and Ready to RespondCSS3: Ripe and Ready to Respond
CSS3: Ripe and Ready to Respond
 
CSS3
CSS3CSS3
CSS3
 

Similar to JS App Architecture

Gluecon 2012 - DynamoDB
Gluecon 2012 - DynamoDBGluecon 2012 - DynamoDB
Gluecon 2012 - DynamoDB
Jeff Douglas
 
DynamoDB Gluecon 2012
DynamoDB Gluecon 2012DynamoDB Gluecon 2012
DynamoDB Gluecon 2012Appirio
 
Mongo Bb - NoSQL tutorial
Mongo Bb - NoSQL tutorialMongo Bb - NoSQL tutorial
Mongo Bb - NoSQL tutorial
Mohan Rathour
 
NoSQL: Why, When, and How
NoSQL: Why, When, and HowNoSQL: Why, When, and How
NoSQL: Why, When, and HowBigBlueHat
 
Big data technology unit 3
Big data technology unit 3Big data technology unit 3
Big data technology unit 3
RojaT4
 
Big data vahidamiri-tabriz-13960226-datastack.ir
Big data vahidamiri-tabriz-13960226-datastack.irBig data vahidamiri-tabriz-13960226-datastack.ir
Big data vahidamiri-tabriz-13960226-datastack.ir
datastack
 
Einführung in MongoDB
Einführung in MongoDBEinführung in MongoDB
Einführung in MongoDB
NETUserGroupBern
 
Mongo db
Mongo dbMongo db
Minnebar 2013 - Scaling with Cassandra
Minnebar 2013 - Scaling with CassandraMinnebar 2013 - Scaling with Cassandra
Minnebar 2013 - Scaling with Cassandra
Jeff Bollinger
 
Azure Databricks is Easier Than You Think
Azure Databricks is Easier Than You ThinkAzure Databricks is Easier Than You Think
Azure Databricks is Easier Than You Think
Ike Ellis
 
MongoDB - A next-generation database that lets you create applications never ...
MongoDB - A next-generation database that lets you create applications never ...MongoDB - A next-generation database that lets you create applications never ...
MongoDB - A next-generation database that lets you create applications never ...
Ram Murat Sharma
 
MongoDB is the MashupDB
MongoDB is the MashupDBMongoDB is the MashupDB
MongoDB is the MashupDB
Wynn Netherland
 
Moving from SQL Server to MongoDB
Moving from SQL Server to MongoDBMoving from SQL Server to MongoDB
Moving from SQL Server to MongoDB
Nick Court
 
Scalany mongodb aug10
Scalany mongodb aug10Scalany mongodb aug10
Scalany mongodb aug10bwmcadams
 
Couchbase - Yet Another Introduction
Couchbase - Yet Another IntroductionCouchbase - Yet Another Introduction
Couchbase - Yet Another Introduction
Kelum Senanayake
 
Rails meets no sql
Rails meets no sqlRails meets no sql
Rails meets no sql
Simon Escobar Benitez
 
Couch db
Couch dbCouch db
Couch db
arunamore
 

Similar to JS App Architecture (20)

Gluecon 2012 - DynamoDB
Gluecon 2012 - DynamoDBGluecon 2012 - DynamoDB
Gluecon 2012 - DynamoDB
 
DynamoDB Gluecon 2012
DynamoDB Gluecon 2012DynamoDB Gluecon 2012
DynamoDB Gluecon 2012
 
Mongo Bb - NoSQL tutorial
Mongo Bb - NoSQL tutorialMongo Bb - NoSQL tutorial
Mongo Bb - NoSQL tutorial
 
Nosql seminar
Nosql seminarNosql seminar
Nosql seminar
 
NoSQL: Why, When, and How
NoSQL: Why, When, and HowNoSQL: Why, When, and How
NoSQL: Why, When, and How
 
Big data technology unit 3
Big data technology unit 3Big data technology unit 3
Big data technology unit 3
 
NoSQL
NoSQLNoSQL
NoSQL
 
Big data vahidamiri-tabriz-13960226-datastack.ir
Big data vahidamiri-tabriz-13960226-datastack.irBig data vahidamiri-tabriz-13960226-datastack.ir
Big data vahidamiri-tabriz-13960226-datastack.ir
 
Einführung in MongoDB
Einführung in MongoDBEinführung in MongoDB
Einführung in MongoDB
 
Mongo db
Mongo dbMongo db
Mongo db
 
Minnebar 2013 - Scaling with Cassandra
Minnebar 2013 - Scaling with CassandraMinnebar 2013 - Scaling with Cassandra
Minnebar 2013 - Scaling with Cassandra
 
Azure Databricks is Easier Than You Think
Azure Databricks is Easier Than You ThinkAzure Databricks is Easier Than You Think
Azure Databricks is Easier Than You Think
 
MongoDB - A next-generation database that lets you create applications never ...
MongoDB - A next-generation database that lets you create applications never ...MongoDB - A next-generation database that lets you create applications never ...
MongoDB - A next-generation database that lets you create applications never ...
 
MongoDB is the MashupDB
MongoDB is the MashupDBMongoDB is the MashupDB
MongoDB is the MashupDB
 
Moving from SQL Server to MongoDB
Moving from SQL Server to MongoDBMoving from SQL Server to MongoDB
Moving from SQL Server to MongoDB
 
NoSql Databases
NoSql DatabasesNoSql Databases
NoSql Databases
 
Scalany mongodb aug10
Scalany mongodb aug10Scalany mongodb aug10
Scalany mongodb aug10
 
Couchbase - Yet Another Introduction
Couchbase - Yet Another IntroductionCouchbase - Yet Another Introduction
Couchbase - Yet Another Introduction
 
Rails meets no sql
Rails meets no sqlRails meets no sql
Rails meets no sql
 
Couch db
Couch dbCouch db
Couch db
 

Recently uploaded

The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Abida Shariff
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
Fwdays
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 

Recently uploaded (20)

The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 

JS App Architecture

  • 1. NoSQL, SSJS, & Sencha
  • 2. Corey Butler  15yrs+ Web Experience  Founder @ Ecor Systems, LLC  Chief Consultant @ Ecor Group (we’re on senchadevs.com)  DW/BI & Web Practices  Ext JS Since v2.  Started in the Adobe, Microsoft, & IBM worlds.  Started in Fortune 500, Entrepreneur since 2000. Available Via:  Blog: coreybutler.com  Twitter: @goldglovecb  LinkedIn.com/in/ecorsystems
  • 3. Agenda  NoSQL Overview  SSJS Overview  The Sencha Stack  Simple Examples
  • 4. The Stack The concept isn’t much different from traditional web architecture.
  • 5. What is NoSQL?  No defined relationships.  No schemas or fixed types.  NoACID?
  • 6. What NoSQL Is NOT  Hard & Fast RDBMS Replacement  All Purpose Data Storage
  • 7. NoSQL vs SQL NOSQL SQL  Goal Specific  Generic  Non-relational  RDBMS  Map/Reduce  ANSI SQL  Known Data Structure!  Predefined Data Structure  No NULLS  NULLS function(doc) { SELECT a.pk as id, a.somefield as value if ( doc.date < Date() && typeof doc.somefield !== undefined ) { FROM TblA a INNER JOIN TblB b var resultObject = { ON a.pk = b.fk id: doc.pk, WHERE a.somevalue IN value: doc.somefield (SELECT someval FROM TblC) }; AND b.date < CURRENT_TIMESTAMP emit(resultObject); AND a.somefield <> null } }
  • 8. Popular Choices  CouchDB  Doc Store  MongoDB  Doc Store w/ Key/Value  Redis  Key/Value (In Memory)  Riak  Dynamo-like (Commercial)  Hadoop  Big Data  Cassandra  BigTable  CONSTANTLY GROWING  kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis
  • 9. Storage Types Key/Value: Schemaless. Where is data stored? Disk? Memory? Distributed? Document: Like Key/Value, but semi-structured. Graph: Based on graph theory. Focuses more on relationships between objects than the objects themselves. Column/Wide: Key pointing to multiple columns (like rows in an RDBMS)
  • 10. SSJS: Server Side JavaScript  SSJS was first introduced via Netscape LiveWire in 1996, but really didn’t become practical for many until 2009.  Gaining popularity because:  Faster JS Engines like Google’s V8 (Chrome), Spidermonkey (Firefox), & Rhino (Firefox).  Maturity of JavaScript/ECMAScript.  Standards like CommonJS.  Useful for event-driven apps.
  • 11. CommonJS  Aims to standardize JS outside the browser.  Best Practices/Metadata/Specs.  Cross-Compatibility.  Supports concepts like modules, file system references, exports, and other common requirements for serving applications.
  • 12. SSJS Platforms  Narwhal Most complete CommonJS implementation. Based on Rhino with JSGI Middleware.  NodeJS  Non-blocking & single threaded (fast). Implements some CommonJS. Based on V8. Large and growing community. Others: Jaxer, Jack, 10gen App Server
  • 13. NodeJS From nodejs.org Node.js is a server-side JavaScript environment that uses an asynchronous event-driven model. This allows Node.js to get excellent performance based on the architectures of many Internet applications. Nutshell: Create apps, like web servers.
  • 14. Example Web Server //Require the HTTP module var http = require('http'), colors = require('colors'), port = 80; //Create the server http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello Worldn'); }).listen(port, "127.0.0.1"); //Indicate the server is running console.log('Server running at http://127.0.0.1:'.green+port.toString().cyan+'/'.green);
  • 15. NodeJS Modules  Modules are plugins for Node.  Lots of work already done for you.  No governed quality control.  Hundreds of Modules  NPM is your friend.
  • 16. NPM: Node Package Manager  http://npmjs.org  Install/Publish Modules  Manages dependencies.  Extremely simple: npm install express
  • 17. Tying to Sencha  Connect Module is part of Sencha Labs  Express Module is built on Connect.
  • 18. Examples With Sencha  Sencha  NoSQL (CouchDB)  REST Proxy  Sencha  NodeJS  MongoDB  REST Proxy, Express, Mongoose  This Presentation  Socket.IO
  • 19. Node Hotness  Socket.IO  Web Sockets  Comparable to HTML5 SSE (Comet)  Dnode, NowJS  Highly Concurrent Apps.  Easy REST Development.  Server-side headless browsers.  Community & Momentum