Showing posts with label NodeJS. Show all posts
Showing posts with label NodeJS. Show all posts

Saturday, May 19, 2012

NodeJS: History of a Great Technology

NodeJS: History of a Great Technology

[2010-06-09] - Why Google V8 is not suitable for Servers (Russian)
[2010-07-09] - Nodes and Jetties
[2010-07-10] - Scaling NodeJS to Multiple Cores
[2011-01-03] - Gartner: Joyent in IAAS Magic Quadrant (NodeJS mentioned)
[2011-01-23] - Quick Benchmark: Java vs NodeJS
[2011-01-30] - Java AIO (NIO.2) vs NodeJS
[2011-01-31] - Node.js Interview: 4 Questions with Creator Ryan Dahl
[2011-02-05] - NodeJS: To V8 or Not to V8
[2011-02-05] - On Bruno’s Concern About the Current Coupling of node.js and V8
[2011-02-06] - Answering Jason on V8 governance and impact to NodeJS
[2011-03-08] - Yahoo code contributed to V8Monkey
[2011-04-11] - Mozilla progresses with JavaScript server project
[2011-04-14] - About That Hybrid "V8Monkey" Engine
[2011-04-19] - NodeJS on V8Monkey with Segmentation Faults
[2011-04-23] - News roundup: ... V8Monkey and SpiderNode ...
[2011-05-05] - Mozilla's NodeConf Presentation
[2011-05-19] - SpiderNode at NodeConf 2011
[2011-06-07] - Spidernode: 'let', 'yield' and array comprehensions in Node.js
[2011-09-10] - Hacker News - NodeJS: To V8 or Not to V8
[2011-09-11] - Ahead with Node.JS and Google V8

Tuesday, December 27, 2011

JavaScript Tab Update

JavaScript Tab Update

Abstract:
JavaScript, formerly known as LiveScript, standardized as ECMAScript, is a language originally used on both client and server web platforms. Through unfortunate historical vendor interactions, server side usage of JavaScript became less common. With the advent of JavaScript engines, which can be decoupled from the client browser, JavaScript became usable on the server side for independent projects.

History:
Netscape Communications brought to the market some of the first widespread adopted web client http browsers and web servers. One of Netscape's key technologies was called LiveScript - a client and server side technology to bring automation and communication to the browser and server suite. With the advent of Sun Microsystems cross-platform Java language, Java quickly became a hit, and LiveScript was rebranded JavaScript. Microsoft soon released their own web client & server platform, but only included a somewhat compatible client side JavaScript, creating a proprietary language on the server-side, leaving JavaScript to become less common on the server. Nations quickly figured out that Microsoft's half-baked implementation was a bad for the world and standardization soon occurred through ECMAScript. Sun's Java, with it's cross-platform capability, quickly became the language of choice on the server while JavaScript became the language of choice on the client. The battle for the fastest web browsers created teams of developers building JavaScript Engines, which could be decoupled from the Web Client. With the advent of decoupled JavaScript engines, developers started the movement back to server side JavaScript. NodeJS is a recent server side JavaScript non-blocking framework. NodeJS is based upon Google V8 engine, which unfortunately only works on a subset of known servers architectures and operating systems.

Resources:
The following are recent resource changes to the JavaScript tab on the Network Management blog.

NodeJS Specific Developments
[html] Server side JavaScript Engine: Node.JS
[html] Community Support for NodeJS
[html] Internal Developers List for NodeJS
[html] X11 Client Implementation under NodeJS
[html] X11 "nwm" window manager
[html] XCB directly rendered by node-canvas
[html] Google V8 JavaScript Engine

JavaScript Engines
[html] Mozilla SpiderMonkey (Various platforms)
[html] Mozilla Tamarin (Various platforms)
[html] Mozilla Rhino (Java based JavaScript engine)
[html] Google V8 JavaScript Engine (Intel, ARM)
[html] Mozilla JaegerMonkey
[html] Apple WebKit Nitro (SquirrelFish Extreme)
[html] Opera Presto

Monday, May 2, 2011

Cloud Computing: Amazon, Joyent, etc.


Cloud Computing: Amazon, Joyent, etc.

Abstract:
Cloud computing is no panacea - it is just a single tool in the tool belt of the Infrastructure Architect. There are concerns and options for customers to be concerned about.



One Vendor Example:
For people depending upon Cloud Computing, it should be noted that one of the most famous vendors, Amazon, even experiences outages. On 2011 April 21, there was a 10 hour outage. Amazon referred to it as a "network outage", but some data was irreconcilably lost.



Another Vendor:

Other vendors are experienced in the cloud computing model. Joyent has been providing cloud computing expertise since 2004. Joyent provides superior disk, cpu, and memory performance over Amazon. Amazon is clearly not the only game in town.


Programming Models:
Joyent offers varied cloud platform models, but perhaps one of their most interesting model is based upon Node.js, where event driven server side programming can be done with Javascript in a cloud as a service.

Conclusion:
Don't use customer facing applications, which should require H-A capability, solely in the cloud. If you have a customer facing application that is mission critical, ensure your capability is replicated to another provider or keep primary or redundant resources under your own control. When choosing a vendor, keep in mind that there are many options to meet most business requirements.

Wednesday, March 2, 2011

NodeJS: Non-Blocking Server Side Javascript


NodeJS: Non-Blocking Server Side Javascript

Abstract:
Multi-process models, in software like Apache web server, helps to add concurrency, to scale up. Similarly, multiple processors and later cores, adds concurrency in a hardware medium. Multiple threads sharing a process at the software layer assists in scaling higher while reducing the penalty of context switches. Multiple threads at a hardware layer also helps mitigate the penalty of memory accesses away. To continue to scale at the application layer, the migration to asynchronous programming allows for simple scaling, but programming language infrastructure had traditionally been negligent in facilitating the scaling easily. NodeJS, modeled using JavaScript, is a new framework to facilitate event driven server side programming where massive scale is required.

A Little History: X, Netscape, Navigator, LiveScript, LiveWire, JavaScript
One of the most ubiquitous frameworks which moved from synchronous to asynchronous was the X Windows system. This windowing system, produced by x.org, is indigenous on nearly every UNIX and Linux system. The next great user interface move was the web browser, to serve (through HTTP protocol) static content (HTML) with images, which became popular from Netscape through their Navigator browser. In an attempt to convert static pages to dynamic pages of data, LiveScript was create on the Netscape Navigator client and server side (as LiveWire.) LiveScript, renamed to JavaScript, leverages an event driven architecture in an application browser and web server, like X Windows was before it.

June 2009 Demo of NodeJS
Ryan Dahl, the creator of NodeJS, works at Joyent. In this early video, he presents his creation of Server Side Java Script programming framework, which is nearly all event driven.

Slides from the 2009 JSConf
These are the PDF slides from the 2009 JavaScript Conference, 2009 November 8.

Slides from the 2010 JSConf
These are the PDF slides from the 2010 JavaScript Conference, 2010 April 14

Video from the May 2010 Yahoo Talk
An introduction video to NodeJS presented at Yahoo on 2010 May 5.

Network Management Connection
Network Management becomes difficult when scaling to manage tens of thousands of devices and millions of managed virtual objects. The necessity to move to light transports like ICMP and UDP, was well understood, and could easily be made asynchronous. NodeJS would make a fine framework to model future network management infrastructure in, once it is stable.