Click here to close now.

Welcome!

Linux Containers Authors: Pat Romanski, Liz McMillan, Elizabeth White, Adrian Bridgwater, Tom Lounibos

Related Topics: IoT User Interface, @MicroservicesE Blog, Linux Containers, Adobe Flex

IoT User Interface: Article

Book Review: Advanced AJAX by Shawn M. Lauriat

"Advanced AJAX: Architecture and Best Practices" (Prentice Hall, 2008, 360p)

Brian Dillard's "Agile AJAX" Blog

Because AJAX moves so much application logic from the server to the client, it forces many developers to master a wider range of web technologies than ever before. To work effectively on AJAX projects, front-end developers have to concern themselves with database performance, business logic and other server-side concerns. Back-end and middleware developers, meanwhile, have to make friends with XHTML, CSS, JavaScript and a wide range of browsers.

Sure, it's possible to develop AJAX apps in a siloed team environment. But it's not the easiest way, and it rarely provides the strongest results.

Shawn M. Lauriat's "Advanced Ajax: Architecture and Best Practices" (Prentice Hall, 2008, 360p) bridges the gap between developers with exclusive client- or server-side skills. By exploring tools, technologies and best practices for every layer of the AJAX programming model, this solid new programming manual promises to plug the holes in any developer's resume. Lauriat's tops-to-tails approach offers something for almost any developer, but it also guarantees most readers will find some sections remedial. As this review will demonstrate, that's not necessarily a liability.

The book's first four chapters focus almost exclusively on the client-side technologies that are my own personal speciality. Lauriat's announces his goals early, shortly after pointing out the introductory nature of many existing AJAX books and tutorials:

"This book, instead, looks at using Ajax to create rich, browser-based interfaces for enterprise-level web applications, taking into account the flexibility, reusability, scalability, and maintainability necessary for such an undertaking. Ajax does not exist in this book as the latest and greatest acronym to hit web development. It instead exists as a tool like any other - extremely useful in some instances and totally wrong in others."

This focus on AJAX as a means rather than an end continues in the author's examination of user-focused application design:

"Ajax-based functionality fits best where it makes a given task easier for the user, rather than just replicating functionality easily achieved by simpler, faster-developed means. Using half a dozen JavaScript files, numerous CSS files, and several Ajax calls just to render a company home page uses a lot of time and memory for very little benefit to the user."

Having established his mission statement, Lauriat dives right into the specific technologies and approaches that client-side Ajax demands. He makes the case for semantic markup, web standards, progressive enhancement and accessibility in a way that should compute for server-side developers who may be encountering these concepts in depth for the first time. Advanced AJAX doesn't tackle these concepts to the level that, say, Jeffrey Zeldman would, but Lauriat doesn't scrimp on the real-world details. He provides compelling examples of the way high-contrast design, resizable page layouts, easily targeted controls and even the draft ARIA spec can enhance accessibility and usability for everyone, not just disabled users.

Once he's covered the basics of how to use client-side technologies appropriately, the author examines the specifics of client-side architecture. He explains JavaScript's object model and prototype-based inheritance with the appropriate level of detail for programmers better versed in Java or other server-side languages. Extensive code examples eschew jQuery and other AJAX frameworks, allowing readers to understand the nuts and bolts of cross-browser JavaScript development. Here, again, Lauriat displays a knack for providing neither too little nor too much detail. He discusses design patterns and strategies for abstraction just like he discusses Ajax itself: as tools rather than mandates. Readers with previous exposure to MVC architecture and event-driven programming should gain a better understanding of those techniques. Novices, meanwhile, should learn enough to understand the code samples and perhaps find their curiosity piqued for further study.

Having covered client-side technologies and architecture, Lauriat finally turns to development and debugging tools. Validators, browser consoles and plug-ins, profiles and unit-testing frameworks all get their due. Here, as elsewhere, Lauriat delves into the nitty-gritty of developing applications for IE, Safari, Firefox and Opera. He suggests tools and techniques for each browser environment without getting into political asides. As with the earlier chapters, I came away with a more complete, holistic understanding of topics in which I already considered myself well-versed.

Taken as a whole, the client-focused chapters of Advanced AJAX are worth skimming even for senior client-side developers. For programmers just getting acquainted with the UI layer, these chapters provide an extremely concise, yet thorough treatment of a huge number of important topics. I'm extremely impressed with Lauriat's book, and I haven't even gotten to the sections that will cover the most new ground for me personally.

The book's remaining chapters deal with everything from security and database optimization to server-side architecture and game development.

The server-side portion of Advanced AJAX uses PHP code to illustrate its many and varied lessons about AJAX architecture. It's not that I have anything against the popular web-development framework and scripting language. It's just that, after spending my career in the ASP Classic and JSP trenches and slowly ramping up on Rails in the last year, I'm not the ideal target audience for these code samples. Adding "PHP" to the title of the book might have limited its potential audience, but it also would have been more accurate.

That said, there's a lot of value here for adherents of any server-side framework. Lauriat discusses each topic from a general perspective before diving into the code. The technical approach to a given problem would obviously differ by framework, but the high-level approach wouldn't. If you don't mind skimming past the content that doesn't apply to you, Lauriat's advice about developing stable, scalable, accessible and secure AJAX applications transcends framework allegiance.

Chapter 5, "Performance Optimization," delves into database performance, caching, profiling and debugging. Chapter 6, "Scalable, Maintainable Ajax," covers everything from modular architecture to the concatenation of CSS and JavaScript files for faster deployment to the client. Lauriat covers the basics of MVC development in Chapter 7, "Server-Side Application Architecture." Security gets its due in Chapter 8, "Keeping a Web Application Secure." These chapters will make quick reading for anyone not interested in the lengthy PHP code samples, but the general principles are solid and worth taking to heart.

The book's final few chapters prove the most compelling for a general web-development audience. Lauriat devotes an entire chapter to documentation, coding standards, programming guides and style guides - including a look at JSDoc, the open-source, automated JavaScript documentation tool. But it's Chapter 10, "Game Development," that brings everything together. Lauriat uses PHP and cutting-edge client-side code (via the HTML 5 canvas element) to build Universe Conflict, an AJAX implementation of the venerable Space War! shooter game. Given that most example applications tend toward e-commerce or CRUD admin interfaces, it's refreshing to see Ajax employed for something frivolous and fun. That said, Lauriat convincingly demonstrates that games require the same architectural and security principles as any other application. The author closes with some final, high-level conclusions in Chapter 11.

Overall, Advanced AJAX proved to be a worthwhile read despite my lack of PHP mojo. Of its 11 chapters, 5 1/2 are full of examples that could be applied to any development framework, while the other 5 1/2 are full of sage advice that requires translation for non-PHP platforms.

The publisher has made a sample chapter of the book available on its website.


Full disclosure: The author received a free promotional copy of this book for review.

More Stories By Brian J. Dillard

Brian J. Dillard joined Pathfinder Development in August 2007 as RIA Evangelist. After 12 years of focusing on the view layer of large consumer web apps, his role at Pathfinder Associates is one of research, development and ongoing commentary. He prototypes new rich UI features; contributes to open-source and client projects; and otherwise helps build Pathfinder's competency in the AJAX world. Along with Pathfinder CTO Dietrich Kappe, Dillard contributes to the 'Agile Ajax' blog (http://blogs.pathf.com/agileajax). He is also the project lead on Really Simple History, a JavaScript library for AJAX bookmark and back-button management.

Comments (0)

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.


@ThingsExpo Stories
Explosive growth in connected devices. Enormous amounts of data for collection and analysis. Critical use of data for split-second decision making and actionable information. All three are factors in making the Internet of Things a reality. Yet, any one factor would have an IT organization pondering its infrastructure strategy. How should your organization enhance its IT framework to enable an Internet of Things implementation? In his session at @ThingsExpo, James Kirkland, Red Hat's Chief Architect for the Internet of Things and Intelligent Systems, described how to revolutionize your archit...
WebRTC converts the entire network into a ubiquitous communications cloud thereby connecting anytime, anywhere through any point. In his session at WebRTC Summit,, Mark Castleman, EIR at Bell Labs and Head of Future X Labs, will discuss how the transformational nature of communications is achieved through the democratizing force of WebRTC. WebRTC is doing for voice what HTML did for web content.
The Internet of Things is not only adding billions of sensors and billions of terabytes to the Internet. It is also forcing a fundamental change in the way we envision Information Technology. For the first time, more data is being created by devices at the edge of the Internet rather than from centralized systems. What does this mean for today's IT professional? In this Power Panel at @ThingsExpo, moderated by Conference Chair Roger Strukhoff, panelists addressed this very serious issue of profound change in the industry.
Internet of Things (IoT) will be a hybrid ecosystem of diverse devices and sensors collaborating with operational and enterprise systems to create the next big application. In their session at @ThingsExpo, Bramh Gupta, founder and CEO of robomq.io, and Fred Yatzeck, principal architect leading product development at robomq.io, discussed how choosing the right middleware and integration strategy from the get-go will enable IoT solution developers to adapt and grow with the industry, while at the same time reduce Time to Market (TTM) by using plug and play capabilities offered by a robust IoT ...
"We have a tagline - "Power in the API Economy." What that means is everything that is built in applications and connected applications is done through APIs," explained Roberto Medrano, Executive Vice President at Akana, in this SYS-CON.tv interview at 16th Cloud Expo, held June 9-11, 2015, at the Javits Center in New York City.
Internet of Things is moving from being a hype to a reality. Experts estimate that internet connected cars will grow to 152 million, while over 100 million internet connected wireless light bulbs and lamps will be operational by 2020. These and many other intriguing statistics highlight the importance of Internet powered devices and how market penetration is going to multiply many times over in the next few years.
To many people, IoT is a buzzword whose value is not understood. Many people think IoT is all about wearables and home automation. In his session at @ThingsExpo, Mike Kavis, Vice President & Principal Cloud Architect at Cloud Technology Partners, discussed some incredible game-changing use cases and how they are transforming industries like agriculture, manufacturing, health care, and smart cities. He will discuss cool technologies like smart dust, robotics, smart labels, and much more. Prepare to be blown away with a glimpse of the future.
The basic integration architecture, as defined by ESBs, hasn’t changed for more than a decade. Most cloud integration providers still rely on an ESB architecture and their proprietary connectors. As a result, enterprise integration projects suffer from constraints of availability and reliability of these connectors that are not re-usable across other integration vendors. However, the rapid adoption of APIs and almost ubiquitous availability of APIs amongst most SaaS and Cloud applications are rapidly redefining traditional integration approaches and their reliance on proprietary connectors. ...
Today air travel is a minefield of delays, hassles and customer disappointment. Airlines struggle to revitalize the experience. GE and M2Mi will demonstrate practical examples of how IoT solutions are helping airlines bring back personalization, reduce trip time and improve reliability. In their session at @ThingsExpo, Shyam Varan Nath, Principal Architect with GE, and Dr. Sarah Cooper, M2Mi’s VP Business Development and Engineering, will explore the IoT cloud-based platform technologies driving this change including privacy controls, data transparency and integration of real time context wi...
It is one thing to build single industrial IoT applications, but what will it take to build the Smart Cities and truly society-changing applications of the future? The technology won’t be the problem, it will be the number of parties that need to work together and be aligned in their motivation to succeed. In his session at @ThingsExpo, Jason Mondanaro, Director, Product Management at Metanga, discussed how you can plan to cooperate, partner, and form lasting all-star teams to change the world and it starts with business models and monetization strategies.
SYS-CON Events announced today that BMC will exhibit at SYS-CON's 16th International Cloud Expo®, which will take place on June 9-11, 2015, at the Javits Center in New York City, NY. BMC delivers software solutions that help IT transform digital enterprises for the ultimate competitive business advantage. BMC has worked with thousands of leading companies to create and deliver powerful IT management services. From mainframe to cloud to mobile, BMC pairs high-speed digital innovation with robust IT industrialization – allowing customers to provide amazing user experiences with optimized IT per...
There will be 150 billion connected devices by 2020. New digital businesses have already disrupted value chains across every industry. APIs are at the center of the digital business. You need to understand what assets you have that can be exposed digitally, what their digital value chain is, and how to create an effective business model around that value chain to compete in this economy. No enterprise can be complacent and not engage in the digital economy. Learn how to be the disruptor and not the disruptee.
The Internet of Things is not only adding billions of sensors and billions of terabytes to the Internet. It is also forcing a fundamental change in the way we envision Information Technology. For the first time, more data is being created by devices at the edge of the Internet rather than from centralized systems. What does this mean for today's IT professional? In this Power Panel at @ThingsExpo, moderated by Conference Chair Roger Strukhoff, panelists will addresses this very serious issue of profound change in the industry.
Business as usual for IT is evolving into a "Make or Buy" decision on a service-by-service conversation with input from the LOBs. How does your organization move forward with cloud? In his general session at 16th Cloud Expo, Paul Maravei, Regional Sales Manager, Hybrid Cloud and Managed Services at Cisco, discusses how Cisco and its partners offer a market-leading portfolio and ecosystem of cloud infrastructure and application services that allow you to uniquely and securely combine cloud business applications and services across multiple cloud delivery models.
In his General Session at 16th Cloud Expo, David Shacochis, host of The Hybrid IT Files podcast and Vice President at CenturyLink, investigated three key trends of the “gigabit economy" though the story of a Fortune 500 communications company in transformation. Narrating how multi-modal hybrid IT, service automation, and agile delivery all intersect, he will cover the role of storytelling and empathy in achieving strategic alignment between the enterprise and its information technology.
Buzzword alert: Microservices and IoT at a DevOps conference? What could possibly go wrong? In this Power Panel at DevOps Summit, moderated by Jason Bloomberg, the leading expert on architecting agility for the enterprise and president of Intellyx, panelists peeled away the buzz and discuss the important architectural principles behind implementing IoT solutions for the enterprise. As remote IoT devices and sensors become increasingly intelligent, they become part of our distributed cloud environment, and we must architect and code accordingly. At the very least, you'll have no problem fillin...
Growth hacking is common for startups to make unheard-of progress in building their business. Career Hacks can help Geek Girls and those who support them (yes, that's you too, Dad!) to excel in this typically male-dominated world. Get ready to learn the facts: Is there a bias against women in the tech / developer communities? Why are women 50% of the workforce, but hold only 24% of the STEM or IT positions? Some beginnings of what to do about it! In her Opening Keynote at 16th Cloud Expo, Sandy Carter, IBM General Manager Cloud Ecosystem and Developers, and a Social Business Evangelist, d...
Converging digital disruptions is creating a major sea change - Cisco calls this the Internet of Everything (IoE). IoE is the network connection of People, Process, Data and Things, fueled by Cloud, Mobile, Social, Analytics and Security, and it represents a $19Trillion value-at-stake over the next 10 years. In her keynote at @ThingsExpo, Manjula Talreja, VP of Cisco Consulting Services, discussed IoE and the enormous opportunities it provides to public and private firms alike. She will share what businesses must do to thrive in the IoE economy, citing examples from several industry sectors.
In his keynote at 16th Cloud Expo, Rodney Rogers, CEO of Virtustream, discussed the evolution of the company from inception to its recent acquisition by EMC – including personal insights, lessons learned (and some WTF moments) along the way. Learn how Virtustream’s unique approach of combining the economics and elasticity of the consumer cloud model with proper performance, application automation and security into a platform became a breakout success with enterprise customers and a natural fit for the EMC Federation.
SYS-CON Events announced today that the "Second Containers & Microservices Conference" will take place November 3-5, 2015, at the Santa Clara Convention Center, Santa Clara, CA, and the “Third Containers & Microservices Conference” will take place June 7-9, 2016, at Javits Center in New York City. Containers and microservices have become topics of intense interest throughout the cloud developer and enterprise IT communities.