Welcome!

Linux Containers Authors: Jyoti Bansal, Mehdi Daoudi, Pat Romanski, Elizabeth White, Carmen Gonzalez

Related Topics: Machine Learning , Microservices Expo, Linux Containers, Adobe Flex

Machine Learning : 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
With major technology companies and startups seriously embracing IoT strategies, now is the perfect time to attend @ThingsExpo 2016 in New York. Learn what is going on, contribute to the discussions, and ensure that your enterprise is as "IoT-Ready" as it can be! Internet of @ThingsExpo, taking place June 6-8, 2017, at the Javits Center in New York City, New York, is co-located with 20th Cloud Expo and will feature technical sessions from a rock star conference faculty and the leading industry p...
The security needs of IoT environments require a strong, proven approach to maintain security, trust and privacy in their ecosystem. Assurance and protection of device identity, secure data encryption and authentication are the key security challenges organizations are trying to address when integrating IoT devices. This holds true for IoT applications in a wide range of industries, for example, healthcare, consumer devices, and manufacturing. In his session at @ThingsExpo, Lancen LaChance, vic...
Who are you? How do you introduce yourself? Do you use a name, or do you greet a friend by the last four digits of his social security number? Assuming you don’t, why are we content to associate our identity with 10 random digits assigned by our phone company? Identity is an issue that affects everyone, but as individuals we don’t spend a lot of time thinking about it. In his session at @ThingsExpo, Ben Klang, Founder & President of Mojo Lingo, discussed the impact of technology on identity. Sho...
Manufacturers are embracing the Industrial Internet the same way consumers are leveraging Fitbits – to improve overall health and wellness. Both can provide consistent measurement, visibility, and suggest performance improvements customized to help reach goals. Fitbit users can view real-time data and make adjustments to increase their activity. In his session at @ThingsExpo, Mark Bernardo Professional Services Leader, Americas, at GE Digital, discussed how leveraging the Industrial Internet and...
IoT generates lots of temporal data. But how do you unlock its value? You need to discover patterns that are repeatable in vast quantities of data, understand their meaning, and implement scalable monitoring across multiple data streams in order to monetize the discoveries and insights. Motif discovery and deep learning platforms are emerging to visualize sensor data, to search for patterns and to build application that can monitor real time streams efficiently. In his session at @ThingsExpo, ...
What are the new priorities for the connected business? First: businesses need to think differently about the types of connections they will need to make – these span well beyond the traditional app to app into more modern forms of integration including SaaS integrations, mobile integrations, APIs, device integration and Big Data integration. It’s important these are unified together vs. doing them all piecemeal. Second, these types of connections need to be simple to design, adapt and configure...
"ReadyTalk is an audio and web video conferencing provider. We've really come to embrace WebRTC as the platform for our future of technology," explained Dan Cunningham, CTO of ReadyTalk, in this SYS-CON.tv interview at WebRTC Summit at 19th Cloud Expo, held November 1-3, 2016, at the Santa Clara Convention Center in Santa Clara, CA.
A critical component of any IoT project is what to do with all the data being generated. This data needs to be captured, processed, structured, and stored in a way to facilitate different kinds of queries. Traditional data warehouse and analytical systems are mature technologies that can be used to handle certain kinds of queries, but they are not always well suited to many problems, particularly when there is a need for real-time insights.
WebRTC is about the data channel as much as about video and audio conferencing. However, basically all commercial WebRTC applications have been built with a focus on audio and video. The handling of “data” has been limited to text chat and file download – all other data sharing seems to end with screensharing. What is holding back a more intensive use of peer-to-peer data? In her session at @ThingsExpo, Dr Silvia Pfeiffer, WebRTC Applications Team Lead at National ICT Australia, looked at differ...
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.
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 Day 2 Keynote at 17th Cloud Expo, Sandy Ca...
You have great SaaS business app ideas. You want to turn your idea quickly into a functional and engaging proof of concept. You need to be able to modify it to meet customers' needs, and you need to deliver a complete and secure SaaS application. How could you achieve all the above and yet avoid unforeseen IT requirements that add unnecessary cost and complexity? You also want your app to be responsive in any device at any time. In his session at 19th Cloud Expo, Mark Allen, General Manager of...
Web Real-Time Communication APIs have quickly revolutionized what browsers are capable of. In addition to video and audio streams, we can now bi-directionally send arbitrary data over WebRTC's PeerConnection Data Channels. With the advent of Progressive Web Apps and new hardware APIs such as WebBluetooh and WebUSB, we can finally enable users to stitch together the Internet of Things directly from their browsers while communicating privately and securely in a decentralized way.
Providing secure, mobile access to sensitive data sets is a critical element in realizing the full potential of cloud computing. However, large data caches remain inaccessible to edge devices for reasons of security, size, format or limited viewing capabilities. Medical imaging, computer aided design and seismic interpretation are just a few examples of industries facing this challenge. Rather than fighting for incremental gains by pulling these datasets to edge devices, we need to embrace the i...
Internet of @ThingsExpo, taking place June 6-8, 2017 at the Javits Center in New York City, New York, is co-located with the 20th International Cloud Expo and will feature technical sessions from a rock star conference faculty and the leading industry players in the world. @ThingsExpo New York Call for Papers is now open.
For basic one-to-one voice or video calling solutions, WebRTC has proven to be a very powerful technology. Although WebRTC’s core functionality is to provide secure, real-time p2p media streaming, leveraging native platform features and server-side components brings up new communication capabilities for web and native mobile applications, allowing for advanced multi-user use cases such as video broadcasting, conferencing, and media recording.
Things are changing so quickly in IoT that it would take a wizard to predict which ecosystem will gain the most traction. In order for IoT to reach its potential, smart devices must be able to work together. Today, there are a slew of interoperability standards being promoted by big names to make this happen: HomeKit, Brillo and Alljoyn. In his session at @ThingsExpo, Adam Justice, vice president and general manager of Grid Connect, will review what happens when smart devices don’t work togethe...
"There's a growing demand from users for things to be faster. When you think about all the transactions or interactions users will have with your product and everything that is between those transactions and interactions - what drives us at Catchpoint Systems is the idea to measure that and to analyze it," explained Leo Vasiliou, Director of Web Performance Engineering at Catchpoint Systems, in this SYS-CON.tv interview at 18th Cloud Expo, held June 7-9, 2016, at the Javits Center in New York Ci...
The 20th International Cloud Expo has announced that its Call for Papers is open. Cloud Expo, to be held June 6-8, 2017, at the Javits Center in New York City, brings together Cloud Computing, Big Data, Internet of Things, DevOps, Containers, Microservices and WebRTC to one location. With cloud computing driving a higher percentage of enterprise IT budgets every year, it becomes increasingly important to plant your flag in this fast-expanding business opportunity. Submit your speaking proposal ...
In the next five to ten years, millions, if not billions of things will become smarter. This smartness goes beyond connected things in our homes like the fridge, thermostat and fancy lighting, and into heavily regulated industries including aerospace, pharmaceutical/medical devices and energy. “Smartness” will embed itself within individual products that are part of our daily lives. We will engage with smart products - learning from them, informing them, and communicating with them. Smart produc...