Welcome!

Silverlight Authors: Automic Blog, Michael Kopp, AppDynamics Blog, Kaazing Blog, Steven Mandel

Related Topics: Silverlight, Machine Learning , @CloudExpo

Silverlight: Blog Feed Post

XAJAX Perfect Choice for Cloud Computing Environments

XAJAX Great for Build Scalable Web Applications

XAJAX at Cloud Expo

An interesting thing happens when you combine toolkits like XAJAX and SAJAX and the ability to perform content-based routing: you can actually achieve function-level load balancing in both cloud-based and traditional architectures.

 As you might have discovered from previous posts mentioning it, I still do web application development to support hobby interests in my (very little) spare time. I’m currently in love with the XAJAX library, which has made development of what is supposed to be a very interactive application nearly effortless.

xajax-logoI’m also very much enamored of load balancing/application delivery and cloud computing, specifically how to get the most out of the latter using the former. XAJAX is a perfect example of how the choice of development environment can impact – positively – the ability of an intelligent intermediary to drill-down into the application workload on a functional basis and more efficiently distribute requests to get the most out of an architecture. 

Before someone argues that SAJAX is a better choice I’ll include it, as well, as a “this is a great option, too” for cloud computing environments. XAJAX is strictly for PHP (which is fine for me but not for everyone) while SAJAX supports a broader range of languages and data formats – XAJAX supports only XML, which for purposes of integrating with my BIG-IP via iControl is just fine but again, may not suit everyone’s needs. Both XAJAX and SAJAX pass as part of the data exchange the server-side function being invoked, which is really what’s necessary to accomplish load balancing at the functional layer and what makes both very well-suited to building highly scalable web applications for cloud computing deployment.


LOAD BALANCING AT THE FUNCTIONAL LAYER

One of the things we rarely talk about is that what we’re really distributing (and thus load balancing) in a cloud computing environment is complete applications. The ability to distribute individual workloads is not part and parcel of cloud computing environments today even though it is closely associated with the purist definition of cloud computing. This means if one particular function in an application is more compute intense than another we simply scale the entire application, regardless of whether scaling the individual function would be a more efficient use of resources or not. In many cases this is because we don’t have the means by which we can distribute workload across multiple instances in any environment, cloud or traditional. We simply don’t have the information necessary to accomplish it.

SOA, specifically when utilizing SOAP, affords us that level of granularity by including in the SOAP envelope the specific operation (function) being invoked. But SOA and SOAP are rarely used in Web 2.0 applications, developers for whatever reason preferring AJAX-based techniques and POX (Plain Old XML) or JSON over the more complex SOAP-encoded data.

XAJAX, and SAJAX (and I’m sure other AJAX-based libraries as well) affords us the same granularity and opportunity to scale applications at the functional layer. The same mechanisms that abstract the invocation of server-side functions that makes it so blessedly easy for developers to use and develop web applications is the same abstraction that makes it blessedly easy for a network-side scripting capable application delivery controller (load balancer) to scale a web application based on individual functions. This also, by the way, enables the ability to distribute part of the application in the local data center and another “out in the cloud” with equal alacrity.


WHY XAJAX is PERFECTLY SUITED to CLOUD COMPUTING

xajax-function

If you take a look at the screen shot you’ll see a capture of a Firebug capture of interaction between my browser and my web application. You’ll note that the request sent uses HTTP method POST, and there are three variables sent by XAJAX, one of which is xjxfun – the XAJAX function on the server that I am invoking. In this case it’s the amazingly self-explanatory “getThing” function. In SAJAX this parameter is called rs but it passes the same level of information: the function name and its parameters.

What’s important here is not what the function does but how it’s called from the client: by name, and clearly tagged with an associative descriptive, namely xjxfun.

Assuming that when I profiled my web application (you are profiling your web applications, right?) I discovered (gasp!) that the getThing function requires a disproportionate amount of resources, I might decide that I’d like to scale my application by distributing the getThing function to their own instance of the application rather than being lumped in with all the other functions that will, as utilization climbs, negatively impact the performance of the entire application.

A network-side scripting capable intermediary can easily handle this by (1) inspecting the request, (2) extracting the value of xjxfun from the POST body, and (3) routing the request to the appropriate instance(s) of the application, the ones designated specifically to handle this more compute intense function. Interestingly enough because the arguments are also passed clearly in both XAJAX and SAJAX, you could route requests based on the values of the parameters. This requires some pretty in-depth knowledge of the impact of certain queries and parameters on the execution of your application. You have to know ahead of time that a parameter of X necessarily results in a huge result set from a query and takes more time to execute and uses more memory than the same function invoked using parameter Y. Imagine Twitter compiles a list hourly of users with the most followers and most active update frequency. It could push this information to the intermediary assuming that the intermediary used that list as part of the condition for routing requests. If the parameter passed to a specific function were part of that list, the intermediary would know to route that request knowing it was going to take longer to fulfill or required more resources. Infrastructure 2.0 capable intermediaries are more than capable of incorporating application-specific data with environmental and operational status and data to determine where best to route a request. It’s kind of what they’re designed to do.

Now, if this is a local data center deployed application you could do some cloudbalancing-like behavior and direct the request for that function to a cloud-deployed instance instead. This would be particularly useful in the case that the function is storage-related, and you want to take advantage of cloud storage as a means to reduce the overhead of building out a similar infrastructure locally. This works because when a Load balancer/application delivery controller is introduced into the architecture it can mediate for every request. It has to broker between the client and application because it makes the determination where to route the request – to which instance of the application, local or cloud-based, etc… Thus it sees every request and can inspect every request and can act on every request. Given that XAJAX and SAJAX so nicely presents function level information to us, we can easily use that information to base decisions on where to route a given request.


FINER CONTROL, GREATER FLEXIBILITY

That offers some extraordinary opportunities to architect innovative solutions to traditional scalability and performance issues. It gives us the ability to actually migrate individual “workloads” between clouds and local data centers. We can better leverage existing resources in the data center based on an understanding of specific compute resource needs of individual functions. We can replace, augment, or secure individual functions on an on-demand basis, in real-time, near-time, anytime.

It may be, in the long term, that one of the effects of cloud computing will be that choices made by developers will impact decisions made regarding infrastructure but the opposite is also true. It’s quite possible that the ease with which XAJAX and SAJAX can be leveraged by intelligent intermediaries because of the way it naturally communicates with the server may give it an advantage in a debate between it and another library that does not offer similar ease of intermediary integration.

Regardless, if you’re using XAJAX or SAJAX or trying to decide which AJAX library to use – or even building your own – keep in mind the ability to integrate with intermediaries and how that integration – or lack thereof - will impact your overall application performance and scalability strategy in the long run.

Follow me on Twitter    View Lori's profile on SlideShare  friendfeed icon_facebook

AddThis Feed Button Bookmark and Share

Related blogs & articles:

Read the original blog entry...

More Stories By Lori MacVittie

Lori MacVittie is responsible for education and evangelism of application services available across F5’s entire product suite. Her role includes authorship of technical materials and participation in a number of community-based forums and industry standards organizations, among other efforts. MacVittie has extensive programming experience as an application architect, as well as network and systems development and administration expertise. Prior to joining F5, MacVittie was an award-winning Senior Technology Editor at Network Computing Magazine, where she conducted product research and evaluation focused on integration with application and network architectures, and authored articles on a variety of topics aimed at IT professionals. Her most recent area of focus included SOA-related products and architectures. She holds a B.S. in Information and Computing Science from the University of Wisconsin at Green Bay, and an M.S. in Computer Science from Nova Southeastern University.

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
In his keynote at 18th Cloud Expo, Andrew Keys, Co-Founder of ConsenSys Enterprise, provided an overview of the evolution of the Internet and the Database and the future of their combination – the Blockchain. Andrew Keys is Co-Founder of ConsenSys Enterprise. He comes to ConsenSys Enterprise with capital markets, technology and entrepreneurial experience. Previously, he worked for UBS investment bank in equities analysis. Later, he was responsible for the creation and distribution of life settle...
BnkToTheFuture.com is the largest online investment platform for investing in FinTech, Bitcoin and Blockchain companies. We believe the future of finance looks very different from the past and we aim to invest and provide trading opportunities for qualifying investors that want to build a portfolio in the sector in compliance with international financial regulations.
Leading companies, from the Global Fortune 500 to the smallest companies, are adopting hybrid cloud as the path to business advantage. Hybrid cloud depends on cloud services and on-premises infrastructure working in unison. Successful implementations require new levels of data mobility, enabled by an automated and seamless flow across on-premises and cloud resources. In his general session at 21st Cloud Expo, Greg Tevis, an IBM Storage Software Technical Strategist and Customer Solution Architec...
Nordstrom is transforming the way that they do business and the cloud is the key to enabling speed and hyper personalized customer experiences. In his session at 21st Cloud Expo, Ken Schow, VP of Engineering at Nordstrom, discussed some of the key learnings and common pitfalls of large enterprises moving to the cloud. This includes strategies around choosing a cloud provider(s), architecture, and lessons learned. In addition, he covered some of the best practices for structured team migration an...
Product connectivity goes hand and hand these days with increased use of personal data. New IoT devices are becoming more personalized than ever before. In his session at 22nd Cloud Expo | DXWorld Expo, Nicolas Fierro, CEO of MIMIR Blockchain Solutions, will discuss how in order to protect your data and privacy, IoT applications need to embrace Blockchain technology for a new level of product security never before seen - or needed.
Imagine if you will, a retail floor so densely packed with sensors that they can pick up the movements of insects scurrying across a store aisle. Or a component of a piece of factory equipment so well-instrumented that its digital twin provides resolution down to the micrometer.
No hype cycles or predictions of a gazillion things here. IoT is here. You get it. You know your business and have great ideas for a business transformation strategy. What comes next? Time to make it happen. In his session at @ThingsExpo, Jay Mason, an Associate Partner of Analytics, IoT & Cybersecurity at M&S Consulting, presented a step-by-step plan to develop your technology implementation strategy. He also discussed the evaluation of communication standards and IoT messaging protocols, data...
Coca-Cola’s Google powered digital signage system lays the groundwork for a more valuable connection between Coke and its customers. Digital signs pair software with high-resolution displays so that a message can be changed instantly based on what the operator wants to communicate or sell. In their Day 3 Keynote at 21st Cloud Expo, Greg Chambers, Global Group Director, Digital Innovation, Coca-Cola, and Vidya Nagarajan, a Senior Product Manager at Google, discussed how from store operations and ...
In his session at 21st Cloud Expo, Raju Shreewastava, founder of Big Data Trunk, provided a fun and simple way to introduce Machine Leaning to anyone and everyone. He solved a machine learning problem and demonstrated an easy way to be able to do machine learning without even coding. Raju Shreewastava is the founder of Big Data Trunk (www.BigDataTrunk.com), a Big Data Training and consulting firm with offices in the United States. He previously led the data warehouse/business intelligence and B...
"IBM is really all in on blockchain. We take a look at sort of the history of blockchain ledger technologies. It started out with bitcoin, Ethereum, and IBM evaluated these particular blockchain technologies and found they were anonymous and permissionless and that many companies were looking for permissioned blockchain," stated René Bostic, Technical VP of the IBM Cloud Unit in North America, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Conventi...
A strange thing is happening along the way to the Internet of Things, namely far too many devices to work with and manage. It has become clear that we'll need much higher efficiency user experiences that can allow us to more easily and scalably work with the thousands of devices that will soon be in each of our lives. Enter the conversational interface revolution, combining bots we can literally talk with, gesture to, and even direct with our thoughts, with embedded artificial intelligence, whic...
When shopping for a new data processing platform for IoT solutions, many development teams want to be able to test-drive options before making a choice. Yet when evaluating an IoT solution, it’s simply not feasible to do so at scale with physical devices. Building a sensor simulator is the next best choice; however, generating a realistic simulation at very high TPS with ease of configurability is a formidable challenge. When dealing with multiple application or transport protocols, you would be...
Smart cities have the potential to change our lives at so many levels for citizens: less pollution, reduced parking obstacles, better health, education and more energy savings. Real-time data streaming and the Internet of Things (IoT) possess the power to turn this vision into a reality. However, most organizations today are building their data infrastructure to focus solely on addressing immediate business needs vs. a platform capable of quickly adapting emerging technologies to address future ...
We are given a desktop platform with Java 8 or Java 9 installed and seek to find a way to deploy high-performance Java applications that use Java 3D and/or Jogl without having to run an installer. We are subject to the constraint that the applications be signed and deployed so that they can be run in a trusted environment (i.e., outside of the sandbox). Further, we seek to do this in a way that does not depend on bundling a JRE with our applications, as this makes downloads and installations rat...
Widespread fragmentation is stalling the growth of the IIoT and making it difficult for partners to work together. The number of software platforms, apps, hardware and connectivity standards is creating paralysis among businesses that are afraid of being locked into a solution. EdgeX Foundry is unifying the community around a common IoT edge framework and an ecosystem of interoperable components.
DX World EXPO, LLC, a Lighthouse Point, Florida-based startup trade show producer and the creator of "DXWorldEXPO® - Digital Transformation Conference & Expo" has announced its executive management team. The team is headed by Levent Selamoglu, who has been named CEO. "Now is the time for a truly global DX event, to bring together the leading minds from the technology world in a conversation about Digital Transformation," he said in making the announcement.
In this strange new world where more and more power is drawn from business technology, companies are effectively straddling two paths on the road to innovation and transformation into digital enterprises. The first path is the heritage trail – with “legacy” technology forming the background. Here, extant technologies are transformed by core IT teams to provide more API-driven approaches. Legacy systems can restrict companies that are transitioning into digital enterprises. To truly become a lead...
Digital Transformation (DX) is not a "one-size-fits all" strategy. Each organization needs to develop its own unique, long-term DX plan. It must do so by realizing that we now live in a data-driven age, and that technologies such as Cloud Computing, Big Data, the IoT, Cognitive Computing, and Blockchain are only tools. In her general session at 21st Cloud Expo, Rebecca Wanta explained how the strategy must focus on DX and include a commitment from top management to create great IT jobs, monitor ...
"Cloud Academy is an enterprise training platform for the cloud, specifically public clouds. We offer guided learning experiences on AWS, Azure, Google Cloud and all the surrounding methodologies and technologies that you need to know and your teams need to know in order to leverage the full benefits of the cloud," explained Alex Brower, VP of Marketing at Cloud Academy, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clar...
The IoT Will Grow: In what might be the most obvious prediction of the decade, the IoT will continue to expand next year, with more and more devices coming online every single day. What isn’t so obvious about this prediction: where that growth will occur. The retail, healthcare, and industrial/supply chain industries will likely see the greatest growth. Forrester Research has predicted the IoT will become “the backbone” of customer value as it continues to grow. It is no surprise that retail is ...