SlideShare ist ein Scribd-Unternehmen logo
1 von 19
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

Weitere ähnliche Inhalte

Was ist angesagt?

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 architectureBishal Khanal
 
Mongodb - NoSql Database
Mongodb - NoSql DatabaseMongodb - NoSql Database
Mongodb - NoSql DatabasePrashant Gupta
 
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 DatabaseMohammad 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 dbRohit Bishnoi
 
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 2014Gerd 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 presentationHyphen Call
 
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 DriverMongoDB
 

Was ist angesagt? (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
 

Andere mochten auch

Oocss & progressive css3 selectors
Oocss & progressive css3 selectorsOocss & progressive css3 selectors
Oocss & progressive css3 selectorsdaniel_sternlicht
 
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 indiaJignesh Aakoliya
 
CSS3: Ripe and Ready to Respond
CSS3: Ripe and Ready to RespondCSS3: Ripe and Ready to Respond
CSS3: Ripe and Ready to RespondDenise Jacobs
 

Andere mochten auch (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
 

Ähnlich wie JS App Architecture

DynamoDB Gluecon 2012
DynamoDB Gluecon 2012DynamoDB Gluecon 2012
DynamoDB Gluecon 2012Appirio
 
Gluecon 2012 - DynamoDB
Gluecon 2012 - DynamoDBGluecon 2012 - DynamoDB
Gluecon 2012 - DynamoDBJeff Douglas
 
Mongo Bb - NoSQL tutorial
Mongo Bb - NoSQL tutorialMongo Bb - NoSQL tutorial
Mongo Bb - NoSQL tutorialMohan 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 3RojaT4
 
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.irdatastack
 
Minnebar 2013 - Scaling with Cassandra
Minnebar 2013 - Scaling with CassandraMinnebar 2013 - Scaling with Cassandra
Minnebar 2013 - Scaling with CassandraJeff 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 ThinkIke 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
 
Moving from SQL Server to MongoDB
Moving from SQL Server to MongoDBMoving from SQL Server to MongoDB
Moving from SQL Server to MongoDBNick 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 IntroductionKelum Senanayake
 

Ähnlich wie JS App Architecture (20)

DynamoDB Gluecon 2012
DynamoDB Gluecon 2012DynamoDB Gluecon 2012
DynamoDB Gluecon 2012
 
Gluecon 2012 - DynamoDB
Gluecon 2012 - DynamoDBGluecon 2012 - DynamoDB
Gluecon 2012 - DynamoDB
 
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
 

Kürzlich hochgeladen

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
 
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
 
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
 
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
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
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
 
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
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 

Kürzlich hochgeladen (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
 
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
 
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?
 
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
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
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
 
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)
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 

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