JS App Architecture
Upcoming SlideShare
Loading in...5
×
 

JS App Architecture

on

  • 2,572 views

These are the slides from the presentation I gave to the Sencha meetup group in Austin, TX. It covers the NoSQL-NodeJS-ExtJS development stack at a high level.

These are the slides from the presentation I gave to the Sencha meetup group in Austin, TX. It covers the NoSQL-NodeJS-ExtJS development stack at a high level.

Statistics

Views

Total Views
2,572
Views on SlideShare
2,328
Embed Views
244

Actions

Likes
1
Downloads
21
Comments
0

7 Embeds 244

http://artofidea.com 146
http://localhost 75
http://albertvp.tumblr.com 12
http://feeds.feedburner.com 4
http://www.linkedin.com 4
http://artofidea.herokuapp.com 2
https://www.linkedin.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

JS App Architecture JS App Architecture Presentation Transcript

  • 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 SQLNOSQL SQL Goal Specific  Generic Non-relational  RDBMS Map/Reduce  ANSI SQL Known Data Structure!  Predefined Data Structure No NULLS  NULLSfunction(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 TypesKey/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 SideJavaScript 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
  • NodeJSFrom nodejs.orgNode.js is a server-side JavaScriptenvironment that uses an asynchronousevent-driven model. This allows Node.js toget excellent performance based on thearchitectures of many Internet applications.Nutshell: Create apps, like web servers.
  • Example Web Server//Require the HTTP modulevar http = require(http), colors = require(colors), port = 80;//Create the serverhttp.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 runningconsole.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 PackageManager 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