We rely on global networks everyday (and now real-time networks), but do we even know what they are and how they came to be? Maybe you don't!
I recently stumbled upon a RadioShack advertisement from the 1990s that advertised a number of different products including a desktop computer, a music system, a camcorder, a phone, a CD player, and a calculator. What makes this ad significant today is 20 years later, these different pieces of technology now exist entirely in a single smartphone.
As technology advances, its getting smaller, faster, and more efficient. It's easy to see technological innovation when it comes to hardware, and this Radio Shack ad is a perfect example of that. But when we look at networking, and global networks in particular, sometimes it's not so clear. For most of us, we simply connect to the Internet, and that's it. But how we're actually connected, and how our connection is getting faster, more efficient, and more reliable is a whole other story.
PubNub is a globally redundant, real-time data stream network. We exist to allow app developers to build and scale real-time applications, all built on our real-time data stream network. To put it simply, we get data from point A to point B really, really fast, and have developed a number of other real-time features around data streams.
To better understand what a real-time network is, we have to go back in time to the early 90s once again, a year after the aforementioned Radio Shack ad was printed. We'll progress through time and the history of global networks, starting with backbone networks, then CDNs, and finally real-time data stream networks.
The Architecture of Global Networks and Birth of Real-time Networks
The Internet has evolved significantly over the last 21 years. To understand the evolution of global networks, and how they led to the birth of the real-time network, we need to go back in time to take a look at the major players in the game, the services they offer, and the protocols and languages they speak.
Layers have continuously been added as the web gets more complex and distributed. Below we'll walk you through the last 21 years, beginning with internet backbone networks, moving to CDNs, and finishing with Real-time Data Stream Networks, and how Real-time Data Stream Networks have taken global networks to a whole new level.
Internet Backbone Networks
If we go back 21 years, we saw the birth of global Internet networks, starting with companies like Cogent and Level 3 Communications, and now Comcast, Verizon, and AT&T, connecting people and businesses to the internet. These network providers speak the core protocols of the Internet: TCP, UDP, and IP, and offer services like peering, routing, and POPs. These networks laid the foundation for the Internet.
When you say “I need to get Comcast Internet,” you're actually saying “I need to get connected to a POP to speak TCP/IP.” The fact that nobody speaks that way illustrates the ubiquitous nature of these protocols and their use.
Fast forward about 10 years…
HTTP/Content Delivery Networks
As the Internet became more popular and accessible, we started seeing “spikes” in internet traffic. The popularity and broad usage of the Internet drove its use for “events”; whether news related, ecommerce (i.e. a big sale or product launch), sports, etc. These traffic surges exposed a core weakness with websites: they weren’t very good at handling large audiences simultaneously.
Thus, content delivery networks (CDNs), like Akamai and EdgeCast began to emerge. Most consumers have no clue what a CDN is, yet Akamai claims to serve about 25% of all Internet traffic.
CDNs solved the “spike” problem by establishing data centers around the world, replicating content, and pointing site visitors to their geographically closest data center. Today, small scale companies through Apple and Google all use CDNs to server local and global audiences.
CDNs speak protocols like HTTP, HTTPS and SPDY, and offer services like caching, security and redundancy. If say a website is running too slow in a certain geographical location, or continuously crashing, CDNs will make sure that users can have a consistent experience no matter where they are in the world.
Fast forward 12 years to 2014.
Real-time Data Stream Networks
Today, users expect to interact in real time, and real-time has become a standard for web and mobile app development. As a result, protocols, frameworks, and networks have all been created and improved to make real-time functionality a possibility. This has added another layer on top of the internet the same way CDNs did 12 years prior: real-time networks (RTN).
To put it simply, real-time is just establishing a grammar between two systems, and creating an open and persistent connection between a server and a client. There are numerous ways to add real-time functionality to a web application, including WebSockets, push/pull and long polling. These open source and commercial packages, frameworks, and libraries make an app real-time, but only solve a piece of developing a real-time application.
As a result, real-time network service providers were born. These real-time networks provide building blocks for real-time applications, taking advantage of the persistent connection made possible by the real-time protocols (WebSockets, BOSH). Real-time networks take this persistent, open socket connection to the next level, offering a number of different services to help a real-time application scale, including data replication, storage/playback, and security.
So as a result of the growth of real-time networks, scaling and deploying real-time apps has never been easier. Specifically with PubNub, we offer a wide variety of features and services that make up the core building blocks for developing, scaling, and deploying your real-time app globally. These include: redundancy, geographic server distribution, geo-routing, latency monitoring, and high reliability.
Real-time networks continue to push the web forward. Information and data can reach millions of users, simultaneously, in a under a second. And that's powerful for any real-time application.