Welcome!

Microservices Expo Authors: Liz McMillan, Elizabeth White, Charles Araujo, Ed Witkovic, Pat Romanski

Related Topics: Machine Learning , Microservices Expo

Machine Learning : Article

AJAX + SOA: The Next Killer App

SOA lacks a face; that's where AJAX comes in - it puts a face on SOA

Enterprises trying to improve business unit productivity and the reuse of IT assets continue to struggle. IT organizations have achieved some success by attacking these challenges with Service Oriented Architecture (SOA), but in most cases have still only exposed small portions of the overall IT service portfolio. Much of this struggle has been to deliver a "just enough" SOA to the business unit to improve its ability to build applications and features to get to market faster, better, and cheaper. And as we've learned, accomplishing this is easier said than done.

The fact is that SOA is middleware - and middleware traditionally relies on more middleware to translate data into a consumer-friendly state. It's certainly a major disappointment when you finally get your SOA right only to find that building a composite application requires using a portal (middleware) and/or orchestrating it with a BPEL engine (even more middleware). Worse yet, you may be in an organization that deploys a UDDI registry and registers a bunch of Web services. Unfortunately, in most cases there are very few applications built to actually consume these services. How can this be?

Should we conclude that something is wrong if applications aren't being built to consume these SOA services? Is it too difficult for business unit developers to build applications that directly consume SOA services, forcing us to rely on IT to create these applications? Is the absence of a SOA governance architecture holding us back? I think the answer is "yes" to all of these questions. And there is one standout reason: it has simply been much too difficult for the business unit developer to consume and leverage the SOA services exposed by IT. What's been missing is an easy way to put a "face" on SOA - and that's precisely the benefit of using AJAX in combination with SOA.

SOA services are typically implemented as loosely coupled Web services that encapsulate and expose business functionality. This sounds relatively straightforward, but is quite complex and difficult to achieve in practice. Developers frequently argue about the granularity of SOA services, but most now agree that "business-grained" granularity is the most appropriate. However, it still takes a great deal of domain expertise and collaboration with the business unit to size services properly.

Fortunately, there's been a recent surge in SOA interest. Perhaps enterprises are finally coming to recognize that SOA can really help the bottom line. Maybe it's being driven by better tooling and Web services evangelizing by Amazon, Yahoo, and eBay. Or could it be AJAX? Of course, it's AJAX - why else would I be writing this article? Seriously, I do think that AJAX is driving a renewed interest in SOA, especially in the mashup space. But how can two very different technologies combine and connect to provide something far greater than the parts? Take a look at Wikipedia's current definition of AJAX. It talks about Web pages, but there's no mention of SOA. It says:

"AJAX, shorthand for Asynchronous JavaScript and XML, is a Web development technique for creating interactive Web applications. The intent is to make Web pages feel more responsive by exchang-ing small amounts of data with the server behind the scenes, so that the entire Web page does not have to be reloaded each time the user makes a change. This is meant to increase the Web page's interactivity, speed, and usability."

The absence of SOA in this definition comes as no big surprise since the early buzz around AJAX has centered on enhancing Web page functionality and usability. This has been showcased in many applications such as Google Maps, Flickr, and Yahoo Mail. It's not these consumer-facing applications that personally get me excited about the potential of AJAX though. Instead, it's the business applications that run behind the corporate firewalls that can really exploit and benefit from AJAX, because it gives us two key features: a client-side programming model and the ease of making asynchronous calls to the server. These two key capabilities - the ability to apply logic in the client (browser) and to access server data without disrupting the Web page - are what al-low the new Web 2.0 paradigm to open up so many enticing possibilities for rich enterprise applications.

Earlier I said that SOA was lacking a face. That's where AJAX comes in - it puts a face on SOA. Let me explain this a bit further. Think about what happens when SOA services come online. They usually get registered in a registry/repository (if we're lucky) and become available for consumption. For instance, take a look at what StrikeIron (www.StrikeIron.com) provides. StrikeIron has created a "Web services marketplace" for the general population. At first glance, StrikeIron's catalog looks like a list of mini-business applications. But then you realize that these aren't applications - they're actually Web services. The concept of a company providing WSDL/REST Web services for general consumption makes a lot of sense. But before we get too excited, let's take a look at what's selling. According to StrikeIron, which licenses access to these services, its most popular Web services include:

  • U.S. Address Verification
  • Global SMS Pro
  • Sales and Use Tax
  • E-mail Verification
  • Reverse Phone Lookup
Without a doubt, all of these Web services are useful and can be applied to many different domains. But at the same time, they're also pretty commoditized. In other words, I may not care about who provides these services, only that I get the desired information. On the other hand, would I use just any Web service to transfer money from my checking account to my savings account? I don't think so. I need to trust the service, so I'd have to have some sort of relationship with the vendor providing that service. This "circle of trust" between me, the consumer, and the service provider is exactly the kind of relationship enterprises have internally and with partners.

The same approach could be taken by enterprises to begin offering their Web services to a wider audience. Through a Web services marketplace, enterprises could register various Web services that would normally only be available internally and/or to their partners. The marketplace vendors would obviously love to see this happen, but more importantly, I see this as an opportunity to begin to apply AJAX + SOA to drive a whole new class of Web 2.0 business applications.

For the first time, it's starting to feel like our application develop-ment and SOA efforts are coming together. We have business functionality represented in a reusable form - SOA services. We have ubiquitous connectivity - the Web. We have what's turning out to be the new application container - the browser. We have a programming model in the application container/browser - JavaScript. And they are all using open standards! What more could we ask for? Actually, quite a bit more.

In particular, I'd like to see a more rapid solution for developing applications based on all of this - a way to build applications without having to rely on more middleware to integrate with the SOA services. This is what I'll call the ability for Web applications to perform "direct connect SOA." Direct connect SOA conveys the ability to punch through the traditional curtain of portals and heavyweight process engines and directly (at least conceptually; more about this later) access SOA services. I don't just mean Web services either. It could be BPEL orchestration services, coarse-grained POJO services, RSS feeds, or anything else that can be exposed as a "service," albeit at the right level of business granularity. And of course the interfaces should be exposed using open standards.

This novel development and runtime model creates a new way to build application-driven composite applications. It has the appeal of client/server, without all the traditional heavyweight client/server baggage. It runs in the browser and is delivered on-demand.

We've all heard a lot about "composite applications" over the past few years. But most vendors have been talking about composing services as a way to re-factor their hosted services into more palatable services or portal applications. Let me clarify by using an analogy.

AcmeGrid, a fictitious grid vendor, provides a service grid that lets you run your applications as services. Its customers tell it they want a way to "compose" a combination of services into coarser-grained services. So, naturally, AcmeGrid announces an Eclipse-based AcmeGrid Composite Application Builder (CAB). Interestingly, CAB looks a lot like a BPEL designer, but has tighter integration with the AcmeGrid deployed services. Pretty slick, but it's not really an application as much as it is a service. In essence, CAB is more like a service builder. But who wants a service builder when we're trying to build applications? Soon, another fictitious vendor, we'll call them AcmePortal, announces its Por-tal Composite Application Builder (PCAB). It too releases an Eclipse-based designer that looks and feels like a BPEL designer, but this one knows how to build portals. In many cases, a portal is fine as an application. But if you're forcing a portal to be an application, it's just adding unnecessary weight.

What I really want is a user-based composite application, not a middleware-based composite application. To make this happen, I need a development and runtime platform that not only speaks AJAX and SOA, but governs the two as well. Some vendors promote the concept of AJAX applications calling WSDL-based Web services directly from the browser, essentially making SOAP calls. This approach even has a name - "client/SOA." This may be fine for simple non-enterprise or pure consumer applications, but it's a no-go for the enterprise. Why? Because when you call Web services directly from the browser, governance is left to the browser - which is another way of saying, there's no governance. Figure 1 shows ungoverned Web service consumption. I've never run into an enterprise that doesn't govern its services and strongly doubt that enterprises would allow this to happen merely because we have the technology to do so efficiently. If you doubt me, just remember that enterprises never opened up the firewall (for applications) to anything but HTTP and SSL. No matter what we told system administrators, no other ports were being opened.

So what we're talking about isn't just AJAX + SOA. It's really a platform that provides the governance necessary for AJAX and SOA to co-exist in the enterprise. This is a platform that provides the ability to consume SOA services on behalf of the client, but also governs the service consumption. Figure 2 shows how Web services can be governed by a service gateway. A service gateway is a server-side abstraction that governs and mediates service access on behalf of the client, which in this case is the AJAX application in the browser. The beauty of using a serv-ice gateway is that you're not restricted to accessing only services run-ning in the enterprise. The service gateway governs any service that's registered in the enterprise. In WSDL-based Web services, an enterprise would register the WSDL, and WSDL provides the bind to the service at runtime. This might be a service running in the enterprise's data center, but it could just as easily be a service running in a partner's data center. If the enterprise allows (governs) applications to access services, it doesn't matter where they're running.

I hope you're starting to appreciate the power of combining AJAX and SOA - specifically, how the two can co-exist and deliver new Web services-based applications with the governance that enterprises require. I truly believe we're entering a new era with amazing opportunity. Web 2.0 social networks, photo-sharing and tagging are great, but the real corporate impact comes in a form of Web 2.0 for the enterprise.

More Stories By John Crupi

John Crupi is Vice President and Engineering System Architect at Greenwave Systems, where he guides development on the edge-based visual analytics and real-time pattern discovery environment AXON Predict. He has over 25 years of experience executing enterprise systems and advanced visual analytics solutions. He was Chief Technology Officer at Predixion Software prior to its acquisition by Greenwave, and led development of the Predixion RIOT IoT analytics platform. He also served as CTO at real-time operational intelligence startup JackBe (acquired by German software behemoth Software AG) and as CTO of the Sun Microsystems SOA Practice, where he was recognized as a Sun Distinguished Engineer.

Mr. Crupi is co-author of the highly regarded Java reference Core J2EE Patterns: Best Practices and Design Strategies (Prentice Hall) and co-author of 13 patents on advanced analytics and pattern-based system design. He’s contributed to numerous industry journals and publications, served on the international advisory board for Sys-Con’s ‘AJAX & RIA Journal,’ and has specialized in advanced real-time patterns and analytics for IoT for the past 10 years. He earned his BS in Mechanical Engineering at University of Maryland College Park, and his MS in Engineering Administration with a sub-focus in Artificial Intelligence from The George Washington University in Washington, D.C.

John is a three-time "Washingtonian TECH TITAN” award recipient from Washingtonian Magazine for leadership recognition within the Washington Technology Community.

Comments (3) 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
Nedda Kaltcheva 09/14/07 05:32:49 PM EDT

Great article - I would like to see some code snippets accompanying Figure 2. or some links to code examples of this scenario.

wow 02/12/07 06:01:39 PM EST

AJAX and SOA, the next killer app.? And it's not even an app. ! Why not Coke and a tennis ball instead? I don't know about you guys, but I think this hype thing is getting out of hand ...

S&S Media 02/01/07 10:47:57 PM EST

Webinale 07 - A Conference For the Next Generation Web
The Web is in motion! It's about conversations, interpersonal networking, personalization, and individualism. The need for immediacy, interactivity, and community, combined with new and light-weight technologies are changing the social structure of the Web. The Next Generation Web is about getting associated with openness, trust, authenticity and collaboration. Interactivity, new possibilities to connect, social software, usability, and community networking are fast catching up with users. This new buzz is generating fresh and exciting projects. The latest buzzword is Web 2.0, and the event for anyone seeking to stay on top of this buzz is Webinale 2.0!
More info on www.webinale.com

@MicroservicesExpo Stories
In his keynote at 19th Cloud Expo, Sheng Liang, co-founder and CEO of Rancher Labs, discussed the technological advances and new business opportunities created by the rapid adoption of containers. With the success of Amazon Web Services (AWS) and various open source technologies used to build private clouds, cloud computing has become an essential component of IT strategy. However, users continue to face challenges in implementing clouds, as older technologies evolve and newer ones like Docker c...
The next XaaS is CICDaaS. Why? Because CICD saves developers a huge amount of time. CD is an especially great option for projects that require multiple and frequent contributions to be integrated. But… securing CICD best practices is an emerging, essential, yet little understood practice for DevOps teams and their Cloud Service Providers. The only way to get CICD to work in a highly secure environment takes collaboration, patience and persistence. Building CICD in the cloud requires rigorous ar...
"This all sounds great. But it's just not realistic." This is what a group of five senior IT executives told me during a workshop I held not long ago. We were working through an exercise on the organizational characteristics necessary to successfully execute a digital transformation, and the group was doing their ‘readout.' The executives loved everything we discussed and agreed that if such an environment existed, it would make transformation much easier. They just didn't believe it was reali...
All organizations that did not originate this moment have a pre-existing culture as well as legacy technology and processes that can be more or less amenable to DevOps implementation. That organizational culture is influenced by the personalities and management styles of Executive Management, the wider culture in which the organization is situated, and the personalities of key team members at all levels of the organization. This culture and entrenched interests usually throw a wrench in the work...
"Opsani helps the enterprise adopt containers, help them move their infrastructure into this modern world of DevOps, accelerate the delivery of new features into production, and really get them going on the container path," explained Ross Schibler, CEO of Opsani, and Peter Nickolov, CTO of Opsani, in this SYS-CON.tv interview at DevOps Summit at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
The purpose of this article is draw attention to key SaaS services that are commonly overlooked during contact signing that are essential to ensuring they meet the expectations and requirements of the organization and provide guidance and recommendations for process and controls necessary for achieving quality SaaS contractual agreements.
What's the role of an IT self-service portal when you get to continuous delivery and Infrastructure as Code? This general session showed how to create the continuous delivery culture and eight accelerators for leading the change. Don Demcsak is a DevOps and Cloud Native Modernization Principal for Dell EMC based out of New Jersey. He is a former, long time, Microsoft Most Valuable Professional, specializing in building and architecting Application Delivery Pipelines for hybrid legacy, and cloud ...
The “Digital Era” is forcing us to engage with new methods to build, operate and maintain applications. This transformation also implies an evolution to more and more intelligent applications to better engage with the customers, while creating significant market differentiators. In both cases, the cloud has become a key enabler to embrace this digital revolution. So, moving to the cloud is no longer the question; the new questions are HOW and WHEN. To make this equation even more complex, most ...
CloudEXPO New York 2018, colocated with DXWorldEXPO New York 2018 will be held November 11-13, 2018, in New York City and will bring together Cloud Computing, FinTech and Blockchain, Digital Transformation, Big Data, Internet of Things, DevOps, AI, Machine Learning and WebRTC to one location.
Docker is sweeping across startups and enterprises alike, changing the way we build and ship applications. It's the most prominent and widely known software container platform, and it's particularly useful for eliminating common challenges when collaborating on code (like the "it works on my machine" phenomenon that most devs know all too well). With Docker, you can run and manage apps side-by-side - in isolated containers - resulting in better compute density. It's something that many developer...
In his keynote at 19th Cloud Expo, Sheng Liang, co-founder and CEO of Rancher Labs, discussed the technological advances and new business opportunities created by the rapid adoption of containers. With the success of Amazon Web Services (AWS) and various open source technologies used to build private clouds, cloud computing has become an essential component of IT strategy. However, users continue to face challenges in implementing clouds, as older technologies evolve and newer ones like Docker c...
"We're developing a software that is based on the cloud environment and we are providing those services to corporations and the general public," explained Seungmin Kim, CEO/CTO of SM Systems Inc., in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
We all know that end users experience the internet primarily with mobile devices. From an app development perspective, we know that successfully responding to the needs of mobile customers depends on rapid DevOps – failing fast, in short, until the right solution evolves in your customers' relationship to your business. Whether you’re decomposing an SOA monolith, or developing a new application cloud natively, it’s not a question of using microservices - not doing so will be a path to eventual ...
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 Archi...
Containers and Kubernetes allow for code portability across on-premise VMs, bare metal, or multiple cloud provider environments. Yet, despite this portability promise, developers may include configuration and application definitions that constrain or even eliminate application portability. In this session we'll describe best practices for "configuration as code" in a Kubernetes environment. We will demonstrate how a properly constructed containerized app can be deployed to both Amazon and Azure ...
We all know that end users experience the internet primarily with mobile devices. From an app development perspective, we know that successfully responding to the needs of mobile customers depends on rapid DevOps – failing fast, in short, until the right solution evolves in your customers' relationship to your business. Whether you’re decomposing an SOA monolith, or developing a new application cloud natively, it’s not a question of using microservices - not doing so will be a path to eventual ...
We all know that end users experience the Internet primarily with mobile devices. From an app development perspective, we know that successfully responding to the needs of mobile customers depends on rapid DevOps – failing fast, in short, until the right solution evolves in your customers' relationship to your business. Whether you’re decomposing an SOA monolith, or developing a new application cloud natively, it’s not a question of using microservices – not doing so will be a path to eventual b...
Agile has finally jumped the technology shark, expanding outside the software world. Enterprises are now increasingly adopting Agile practices across their organizations in order to successfully navigate the disruptive waters that threaten to drown them. In our quest for establishing change as a core competency in our organizations, this business-centric notion of Agile is an essential component of Agile Digital Transformation. In the years since the publication of the Agile Manifesto, the conn...
The past few years have brought a sea change in the way applications are architected, developed, and consumed—increasing both the complexity of testing and the business impact of software failures. How can software testing professionals keep pace with modern application delivery, given the trends that impact both architectures (cloud, microservices, and APIs) and processes (DevOps, agile, and continuous delivery)? This is where continuous testing comes in. D
JetBlue Airways uses virtual environments to reduce software development costs, centralize performance testing, and create a climate for continuous integration and real-time monitoring of mobile applications. The next BriefingsDirect Voice of the Customer performance engineering case study discussion examines how JetBlue Airways in New York uses virtual environments to reduce software development costs, centralize performance testing, and create a climate for continuous integration and real-tim...