Welcome!

Microservices Expo Authors: Pat Romanski, Elizabeth White, Gregor Petri, AppDynamics Blog, APM Blog

Related Topics: Agile Computing

Agile Computing: Article

Is Web 2.0 Possible with Existing Open Source Technologies?

AJAX Pushed

If you Google "AJAX Web 2.0" you'll get over eight million hits, but what technologies will you find in that mix that can truly deliver on the promises of Web 2.0 today? While there's no single definition of Web 2.0, at its heart lays the Internet acting as a platform for social networks, where information can be created and shared in a community of interest. Rich Internet Applications (RIAs) relate to Web 2.0 concepts only in that they enhance the platform by providing a more effective user interface. AJAX relates to Web 2.0 only in that it provides a lightweight approach for developing RIAs that execute through a single ubiquitous interface, the Web browser.

An examination of the interaction models for existing social networking platforms like wikis and blogs reveals that they lack the instantaneous nature of true human interaction. This is an artifact of the synchronous Web model that must be overcome when we consider next-generation platforms envisioned in the Web 2.0 spectrum. Internet-based chat is the most basic example of the near-instantaneous interaction that Web 2.0 demands, but even delivering these basic capabilities in a scalable, lightweight, browser-based mechanism is beyond the scope of most AJAX technologies. In fact, if you sift through those eight million Google hits, you'll find only a handful of open source technologies that address the problems associated with pushing content asynchronously to the user through standard browser mechanisms. We'll provide an overview of those technologies later, but first some basics.

The Basics of Web-based Push
Industry has not standardized on a mechanism or a name for asynchronous data push to the browser. In the AJAX realm the technique goes by a variety of names including AJAX Push, Comet, and Reverse AJAX, but regardless of what you call it, the various approaches share a common characteristic. The only lightweight communication mechanism available to the browser is the HTTP protocol, but HTTP only facilitates standard request/response communication initiated from the browser to the server. To deliver responses asynchronously, it's necessary to invert the HTTP protocol by holding an open request at the server, and fulfilling that request when an update is available. The differences between standard AJAX request processing and the inverted mechanism required for push are illustrated in Figure 1.

To support asynchronous push we need to hold a browser connection open in anticipation of a server-based event that will result in presentation changes in the browser. Intuition suggests that there are issues with this approach and in this case intuition serves us well, since we face connection-related problems at both the browser and the server.

Browser Connection Limit
One of the main difficulties faced by asynchronous Web techniques is caused by the typical browser "two-connection limit." To reduce server load, the HTTP specification recommends that user agents establish at most two connections per server, but asynchronous techniques consume one of these connections as a notification channel. Considering the case where multiple browser windows are open to the same Web page, if each window attempts to establish its own connection, we quickly saturate the available connections. To work within these limitations, a single connection must be shared, but the scripting environments of distinct browser windows are isolated for security reasons, making it difficult to coordinate a shared connection. One technique that can be applied is to make use of a shared HTTP cookie, which is associated with all HTTP interaction with a given server. The cookie is shared across windows and, by manipulation through JavaScript, can be used for cross-window communication.

The problem is amplified in portal environments because legacy portal engines don't support the necessary asynchronous communication path. For push to work in multiple portlets it's not only necessary to share the browser connection, but a single shared server connection is required to marshal asynchronous responses. If portlets are deployed from multiple WARs, there's an additional complication in that the sharing mechanism must coordinate between multiple Web applications and will require some IPC mechanism to do so.

More Stories By Ted Goddard

Ted Goddard is the senior architect of the ICEfaces AJAX framework. Following a Ph.D. in mathematics, he proceeded with postdoctoral research in component and Web-based collaborative technologies. He currently participates in the JavaServer Faces and Servlet expert groups.

More Stories By Steve Maryka

Stephen Maryka is CTO at ICEsoft Technologies Inc., and leads the ICEfaces open source project. He has been involved in Java-based AJAX techniques since 2003 - a time before the term "AJAX" was even coined. Prior to joining ICEsoft, Steve was co-founder of AudeSi Technologies where he served as VP of Technology and led Java product development for Internet appliances. After AudeSi was acquired by Wind River Systems in 2000, he served as a principle technologist there until joining ICEsoft.

Comments (2) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
radixweb 08/13/08 09:21:00 AM EDT

Hey, Great Post.. Thanks for this..

MiamiWebDesigner 08/02/08 09:34:25 AM EDT

Web 2.0 Is Like Pornography

Like so many tech articles posted since Tim O'Reilly coined the term in 2004, this one references "Web 2.0" as if it were something tangible--or at least a concept with clear, concise definition. It is not. In 2006, Web founder Sir Tim Berners-Lee sagely observed that "nobody knows what it means":

http://tinyurl.com/y6ewzy

In 2007, Michael Wesch put together this video that supposedly "explains what Web 2.0 really is about":

http://tinyurl.com/6pdz2q

It is a cool video. But the message is all about XML and how it can be used to separate form and content. There was no mention of CSS and XHTML, but no matter. I was writing XML parsers in the '90s, and XHTML/CSS web design pre-dates "Web 2.0" as well. No cigar, Professor Wesch.

And now in 2008, the most honest thing we can say is that "Web 2.0" means whatever the techno-marketeer (ab)using it wants it to mean. Otherwise, why would intelligent people like Isaac O'Bannon still be writing articles asking "What is Web 2.0?":

http://tinyurl.com/5solok

And, why would McKinsey's just-released best-of-breed report entitled "Building the Web 2.0 Enterprise" ...

http://tinyurl.com/6sxls7

... include no attempt at defining the term other than to list the "Web 2.0 Tools" that comprise or enable it? And even there, the chief ingredient is identified only as "Web Services", adding more mystery to the mix as one ethereal term is offered up to explain another.

As originated in an Onstartups.com website design posting...

http://tinyurl.com/576sgs

... "Web 2.0" is like pornography: Nobody has defined it, but you know it when you see it.

Bruce Arnold, Web Designer, Miami Florida
http://www.PervasivePersuasion.com

@MicroservicesExpo Stories
DevOps at Cloud Expo – being held November 1-3, 2016, at the Santa Clara Convention Center in Santa Clara, CA – announces that its Call for Papers is open. Born out of proven success in agile development, cloud computing, and process automation, DevOps is a macro trend you cannot afford to miss. From showcase success stories from early adopters and web-scale businesses, DevOps is expanding to organizations of all sizes, including the world's largest enterprises – and delivering real results. Am...
If you’re responsible for an application that depends on the data or functionality of various IoT endpoints – either sensors or devices – your brand reputation depends on the security, reliability, and compliance of its many integrated parts. If your application fails to deliver the expected business results, your customers and partners won't care if that failure stems from the code you developed or from a component that you integrated. What can you do to ensure that the endpoints work as expect...
About a year ago we tuned into “the need for speed” and how a concept like "serverless computing” was increasingly catering to this. We are now a year further and the term “serverless” is taking on unexpected proportions. With some even seeing it as the successor to cloud in general or at least as a successor to the clouds’ poorer cousin in terms of revenue, hype and adoption: PaaS. The question we need to ask is whether this constitutes an example of Hype Hopping: to effortlessly pivot to the ...
SYS-CON Events announced today the Enterprise IoT Bootcamp, being held November 1-2, 2016, in conjunction with 19th Cloud Expo | @ThingsExpo at the Santa Clara Convention Center in Santa Clara, CA. Combined with real-world scenarios and use cases, the Enterprise IoT Bootcamp is not just based on presentations but with hands-on demos and detailed walkthroughs. We will introduce you to a variety of real world use cases prototyped using Arduino, Raspberry Pi, BeagleBone, Spark, and Intel Edison. Y...
With the rise of Docker, Kubernetes, and other container technologies, the growth of microservices has skyrocketed among dev teams looking to innovate on a faster release cycle. This has enabled teams to finally realize their DevOps goals to ship and iterate quickly in a continuous delivery model. Why containers are growing in popularity is no surprise — they’re extremely easy to spin up or down, but come with an unforeseen issue. However, without the right foresight, DevOps and IT teams may lo...
As applications are promoted from the development environment to the CI or the QA environment and then into the production environment, it is very common for the configuration settings to be changed as the code is promoted. For example, the settings for the database connection pools are typically lower in development environment than the QA/Load Testing environment. The primary reason for the existence of the configuration setting differences is to enhance application performance. However, occas...
DevOps at Cloud Expo, taking place Nov 1-3, 2016, at the Santa Clara Convention Center in Santa Clara, CA, is co-located with 19th Cloud Expo and will feature technical sessions from a rock star conference faculty and the leading industry players in the world. The widespread success of cloud computing is driving the DevOps revolution in enterprise IT. Now as never before, development teams must communicate and collaborate in a dynamic, 24/7/365 environment. There is no time to wait for long dev...
When scaling agile / Scrum, we invariable run into the alignment vs autonomy problem. In short: you cannot have autonomous self directing teams if they have no clue in what direction they should go, or even shorter: Alignment breeds autonomy. But how do we create alignment? and what tools can we use to quickly evaluate if what we want to do is part of the mission or better left out? Niel Nickolaisen created the Purpose Alignment model and I use it with innovation labs in large enterprises to de...
SYS-CON Events announced today that Numerex Corp, a leading provider of managed enterprise solutions enabling the Internet of Things (IoT), will exhibit at the 19th International Cloud Expo | @ThingsExpo, which will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA. Numerex Corp. (NASDAQ:NMRX) is a leading provider of managed enterprise solutions enabling the Internet of Things (IoT). The Company's solutions produce new revenue streams or create operating...
Information technology is an industry that has always experienced change, and the dramatic change sweeping across the industry today could not be truthfully described as the first time we've seen such widespread change impacting customer investments. However, the rate of the change, and the potential outcomes from today's digital transformation has the distinct potential to separate the industry into two camps: Organizations that see the change coming, embrace it, and successful leverage it; and...
While DevOps promises a better and tighter integration among an organization’s development and operation teams and transforms an application life cycle into a continual deployment, Chef and Azure together provides a speedy, cost-effective and highly scalable vehicle for realizing the business values of this transformation. In his session at @DevOpsSummit at 19th Cloud Expo, Yung Chou, a Technology Evangelist at Microsoft, will present a unique opportunity to witness how Chef and Azure work tog...
Throughout history, various leaders have risen up and tried to unify the world by conquest. Fortunately, none of their plans have succeeded. The world goes on just fine with each country ruling itself; no single ruler is necessary. That’s how it is with the container platform ecosystem, as well. There’s no need for one all-powerful, all-encompassing container platform. Think about any other technology sector out there – there are always multiple solutions in every space. The same goes for conta...
Let's recap what we learned from the previous chapters in the series: episode 1 and episode 2. We learned that a good rollback mechanism cannot be designed without having an intimate knowledge of the application architecture, the nature of your components and their dependencies. Now that we know what we have to restore and in which order, the question is how?
Enterprise IT has been in the era of Hybrid Cloud for some time now. But it seems most conversations about Hybrid are focused on integrating AWS, Microsoft Azure, or Google ECM into existing on-premises systems. Where is all the Private Cloud? What do technology providers need to do to make their offerings more compelling? How should enterprise IT executives and buyers define their focus, needs, and roadmap, and communicate that clearly to the providers?
SYS-CON Events announced today the Kubernetes and Google Container Engine Workshop, being held November 3, 2016, in conjunction with @DevOpsSummit at 19th Cloud Expo at the Santa Clara Convention Center in Santa Clara, CA. This workshop led by Sebastian Scheele introduces participants to Kubernetes and Google Container Engine (GKE). Through a combination of instructor-led presentations, demonstrations, and hands-on labs, students learn the key concepts and practices for deploying and maintainin...
Analysis of 25,000 applications reveals 6.8% of packages/components used included known defects. Organizations standardizing on components between 2 - 3 years of age can decrease defect rates substantially. Open source and third-party packages/components live at the heart of high velocity software development organizations. Today, an average of 106 packages/components comprise 80 - 90% of a modern application, yet few organizations have visibility into what components are used where.
The many IoT deployments around the world are busy integrating smart devices and sensors into their enterprise IT infrastructures. Yet all of this technology – and there are an amazing number of choices – is of no use without the software to gather, communicate, and analyze the new data flows. Without software, there is no IT. In this power panel at @ThingsExpo, moderated by Conference Chair Roger Strukhoff, panelists will look at the protocols that communicate data and the emerging data analy...
Video experiences should be unique and exciting! But that doesn’t mean you need to patch all the pieces yourself. Users demand rich and engaging experiences and new ways to connect with you. But creating robust video applications at scale can be complicated, time-consuming and expensive. In his session at @ThingsExpo, Zohar Babin, Vice President of Platform, Ecosystem and Community at Kaltura, will discuss how VPaaS enables you to move fast, creating scalable video experiences that reach your...
All clouds are not equal. To succeed in a DevOps context, organizations should plan to develop/deploy apps across a choice of on-premise and public clouds simultaneously depending on the business needs. This is where the concept of the Lean Cloud comes in - resting on the idea that you often need to relocate your app modules over their life cycles for both innovation and operational efficiency in the cloud. In his session at @DevOpsSummit at19th Cloud Expo, Valentin (Val) Bercovici, CTO of So...
Keeping pace with advancements in software delivery processes and tooling is taxing even for the most proficient organizations. Point tools, platforms, open source and the increasing adoption of private and public cloud services requires strong engineering rigor - all in the face of developer demands to use the tools of choice. As Agile has settled in as a mainstream practice, now DevOps has emerged as the next wave to improve software delivery speed and output. To make DevOps work, organization...