Dev Depot: Moving Beyond Php With Node.js

According to software engineer Constantine Aaron Cois, the web is changing. “The web used to be about consumption: Viewing web pages, watching videos, looking at pictures of cats. Of course, its still about pictures of cats, but the web has become more about interaction,” Cois stated. “Users around the world want to interact with each other, and they want to do it in real time. Chat, gaming, constant social media updates, collaboration — each of these features requires real time communication between users, clients, and servers across the web.”

“What’s more,” says Cois, “this real-time communication needs to happen at massive scale, supporting hundreds, thousands, even millions of users.”

Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient and perfectly suited for building data-intensive real-time applications running across distributed devices.

Enter Node.js (www.nodejs.org), a platform built on Chrome’s JavaScript runtime for easily building fast, scalable network applications to serve the needs of today’s web user.

Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient and perfectly suited for building data-intensive real-time applications running across distributed devices. The Node development team offers a simple “hello world” web server example to show that many client connections can be handled concurrently, since each connection is only a small heap allocation.

“Node tells the operating system (through epoll, kqueue, /dev/poll, or select) that it should be notified when a new connection is made, and then it goes to sleep,” a Node rep explains. “If someone new connects, then it executes the callback.”

Contrast this to the more common concurrency model that employs OS thread-based networking, which is often relatively inefficient and very difficult to use, being plagued by process blocks. With Node, nothing blocks, so less-than-expert programmers are able to develop fast and reliable systems.

“Node will show much better memory efficiency under high-loads than systems which allocate 2mb thread stacks for each connection,” the rep clarified. “Furthermore, users of Node are free from worries of dead-locking the process — there are no locks. Almost no function in Node directly performs I/O, so the process never blocks.”

According to its developers, Node is influenced by and similar in design to systems such as Ruby’s Event Machine or Python’s Twisted, but takes the event model further by presenting the event loop as a language construct instead of as a library.

For example, while other systems may issue a blocking call to start the eventloop, defining behavior through callbacks at the beginning of a script and at the end to start a server through a blocking call such as EventMachine::run(), there is no such start-the-event-loop call in Node.

“Node simply enters the event loop after executing the input script [and] exits the event loop when there are no more callbacks to perform,” the rep reveals. “This behavior is like browser JavaScript [where] the event loop is hidden from the user.”

Other nods to the web can also be found in Node, which treats HTTP as a first class protocol, with a library that has grown out of experiences in developing and working with web servers. For example, while streaming data through web frameworks is often impossible, Node’s HTTP parser and API attempt to correct these problems, and when coupled with Node’s event driven infrastructure, it makes a solid foundation for libraries and web frameworks.

For developers concerned about multiple-processor concurrency and using threads to scale programs to multi-core computers, with Node, new processes can be started via the child_process.fork(), with these processes being scheduled in parallel. For load balancing incoming connections across multiple processes, the cluster module provides a solution.

As for why anyone would want to use JavaScript on a server-side application, Cois notes that although JavaScript has traditionally been relegated to menial tasks in the web browser, it’s actually a fully-functional, highly capable programming language.

Related:  

Copyright © 2024 Adnet Media. All Rights Reserved. XBIZ is a trademark of Adnet Media.
Reproduction in whole or in part in any form or medium without express written permission is prohibited.

More Articles

profile

VerifyMy Seeks to Provide Frictionless Online Safety, Compliance Solutions

Before founding VerifyMy, Ryan Shaw was simply looking for an age verification solution for his previous business. The ones he found, however, were too expensive, too difficult to integrate with, or failed to take into account the needs of either the businesses implementing them or the end users who would be required to interact with them.

Alejandro Freixes ·
opinion

How Adult Website Operators Can Cash in on the 'Interchange' Class Action

The Payment Card Interchange Fee Settlement resulted from a landmark antitrust lawsuit involving Visa, Mastercard and several major banks. The case centered around the interchange fees charged to merchants for processing credit and debit card transactions. These fees are set by card networks and are paid by merchants to the banks that issue the cards.

Jonathan Corona ·
opinion

It's Time to Rock the Vote and Make Your Voice Heard

When I worked to defeat California’s Proposition 60 in 2016, our opposition campaign was outspent nearly 10 to 1. Nevertheless, our community came together and garnered enough support and awareness to defeat that harmful, misguided piece of proposed legislation — by more than a million votes.

Siouxsie Q ·
opinion

Staying Compliant to Avoid the Takedown Shakedown

Dealing with complaints is an everyday part of doing business — and a crucial one, since not dealing with them properly can haunt your business in multiple ways. Card brand regulations require every merchant doing business online to have in place a complaint process for reporting content that may be illegal or that violates the card brand rules.

Cathy Beardsley ·
profile

WIA Profile: Patricia Ucros

Born in Bogota, Colombia, Ucros graduated from college with a degree in education. She spent three years teaching third grade, which she enjoyed a lot, before heeding her father’s advice and moving to South Florida.

Women In Adult ·
opinion

Creating Payment Redundancies to Maximize Payout Uptime

During the global CrowdStrike outage that took place toward the end of July, a flawed software update brought air travel and electronic commerce to a grinding halt worldwide. This dramatically underscores the importance of having a backup plan in place for critical infrastructure.

Jonathan Corona ·
opinion

The Need for Minimal Friction in Age Verification Technology

In the adult sector, robust age assurance, comprised of age verification and age estimation methods, is critical to ensuring legal compliance with ever-evolving regulations, safeguarding minors from inappropriate content and protecting the privacy of adults wishing to view adult content.

Gavin Worrall ·
opinion

Account-to-Account Payments: The New Banking Disruptor?

So much of our industry relies upon Visa and Mastercard to support consumer payments — and with that reliance comes increased scrutiny by both brands. From a compliance perspective, the bar keeps getting raised until it feels like we end up spending half our time making sure we are compliant rather than growing our business.

Cathy Beardsley ·
profile

WIA Profile: Samantha Beatrice

Beatrice credits the sex positivity of Montreal for ultimately inspiring her to pursue work in adult entertainment. She had many friends working in the industry, from sex workers to production teams, so it felt like a natural fit and offered an opportunity to apply her marketing and social media savvy to support people she truly believes in and wants to see succeed.

Women In Adult ·
opinion

Understanding the Latest Server Processors

Over the last decade, we mostly stopped talking about CPU performance. Recently, however, there has been a seismic and exciting change in the CPU landscape, due to innovation by a chip company called Advanced Micro Devices (AMD).

Brad Mitchell ·
Show More