This article is part of an Essential Guide, our editor-selected collection of our best articles, videos and other content on this topic. Explore more in this guide:
2. - The latest with APIs: Trends and effective use cases: Read more in this section
- Mobile APIs, BaaS present new opportunities for developers
- What you need to know about the 'API economy'
- Resource-based RESTful APIs in hot demand by software developers
- Hot debate: A look at Web APIs, mobile technology and the cloud
- API service a touchdown with NFL stats data company
- API management makes mobile, Web gift registry a reality
Explore other sections in this guide:
Service-oriented architecture (SOA) and cloud platforms have been hotly debated over the years. Add mobile applications and Web APIs into the mix and you'll get architects really talking. In our latest podcast, Rob Daigneau, practice lead for custom application development at Slalom Consulting, offers his expert insights into the world of Web APIs, the cloud and mobile technology.
Good afternoon. This is Maxine Giza, for SearchSOA. Joining me today is Rob Daigneau and he's
going to talk to us a little about convergence of Web APIs, the Cloud, and mobile. Thanks for
joining us, Rob.
Daigneau: Hi. Thanks for having me.
All right. Let's dive right into things here. SOA has been around for some time, but we still have a lot of people arguing about what it is and whether or not it helps. Some have argued that regardless of what you think about SOA, services are what we should be focusing on. What's your perspective on this suggestion?
Daigneau: SOA certainly has a number of definitions. For example, think about OASIS [Organization for the Advancement of Structured Information Standards]; they define it as a paradigm for organizing and utilizing distributive capabilities that are under ownership from different domains. Eric Newcomer, I think, has a great definition: He thinks of it more as being a methodology to manage applications over their lifetime. Others say that SOA is more about integration and middleware, and the list goes on and on.
Throughout it all, regardless of agreement on what the definitions might be, there have been a lot of big promises. We've heard people say that we should get greater agility through this coupling and reuse, and because of that reuse more cost savings. Certainly some of this has come true, but in many ways it's fallen short because we can't figure out, or come to, a common agreement, on what SOA really is. That being said, SOA can be very difficult to achieve, so it hasn't fully delivered on all the promises. Meanwhile, Web services have been used by many enterprises for so many years and have been put to some good use achieving great value out there, namely for integration.
Another thing along with SOA, Cloud platforms have also been debated hotly. Many have argued that similar to SOA, they would yield greater agility, lower cost, fault tolerance and several other things. Would you say this is true? What's the future for cloud enterprises?
Daigneau: The cloud certainly provides value, but the hype surrounding it these days has been a bit over the top. Fortunately, we seem to be coming out of that stage of peak inflated expectations, as Gartner might call it. There is evidence that the cloud can reduce Opex and to Capex, and that also facilitates agility by making it easier to provision and deploy system images. However, the cloud seems to fall short on providing unbounded scalability, and high availability is still a bit of a challenge out there.
Enterprises are also not yet comfortable with how secure their assets might be in the cloud. They realize that they'll have to give up some degree of control over their systems. Add to this the fact that enterprises need to understand things like Infrastructures as a Service [IaaS], Platform as a Service [PaaS] and Software as a Service [SaaS]. It's easy to see why many businesses are moving slowly to the cloud. However, I do think that many businesses will use the cloud in the future, and certainly many are right now.
I'm really referring to public cloud platforms here, not internal virtual machines, which many vendors are now calling the private cloud; a neat marketing trick. Anyway, to this end, I think that many enterprises will continue to leverage Infrastructure as a Service before Platform as a Service because it's simply easier to understand and doesn't lock you into a particular cloud provider. IaaS provides some portability when we need it.
We're also already seeing businesses adopt a hybrid approach, where some of their business services are pushed to the cloud while some other portion remains on-premises in their data center. For example, we might use a public cloud as an edge computing platform to process some subset of business functionality and data. This provides a really nice and practical partitioning approach that promotes overall availability, performance and security across the enterprise, because the enterprise can now manage the services independently, that is those in the cloud, separately from those that are on-premises. All in all, I think the future is bright for the cloud.
I think that we would be remiss not to delve into mobile platforms a bit. They are without a doubt an example of a disruptive innovation, and it's clear the consumer market has embraced these technologies, and quite honestly is changing the way we live. Where do you see things going in respect to mobility in the enterprise?
Daigneau: Enterprises seem to be jumping onto this movement fairly quickly. For one, they recognize that their customers are using the mobile platforms, and they also see it as an effective way to provide capabilities to field personnel and employees on the go.
Business executives also see mobile as a great way to provide business intelligence, dashboards,
things of that nature.
Enterprises are facing a number of challenges in the mobile space. Mobile apps cannot be designed like traditional applications, and software developers and architects need to become more familiar with security issues. They must also think about how cellular networks affect application performance. They must also design these apps to work even when they can't connect to some back-end Web service.
Enterprises are awful at trying to figure out which mobile platforms to target. Should they look at iOS, Android, Windows? Some are even still using Blackberry. Some of these decisions will be driven by their customer preferences, others by company policies, or in some cases by the preferences of employees, especially in environments where they adopt a bring your own device [BYOD] philosophy. In any event, it's clear that enterprises will be using mobile devices and platforms more and more as the future comes into our vision here.
Could you just delve a little into, if you could, mobile apps and how Web APIs and services work together?
Daigneau: Sure. Web APIs and Web services are used to receive data from mobile apps, and are also used to send information to these apps, such as alerts and notifications. Of course, this data might also be multimedia, as well. Mobile apps and Web services really are quite complementary.
Web services are also used to encapsulate business functionality. You can certainly distribute some of these business functions and position some of this within the mobile app themselves, but when the business capability is complex, hard to distribute, perhaps lengthy in terms of execution, things of these nature, it can really make sense to consolidate that type of logic, that type of capability in a Web service. Other functions like graphical functions and data visualization, of course, those make sense to perform down on the mobile device.
Web services are also used to update the mobile apps themselves. This is essentially what's going on, for example, when your smartphone tells you that you have a number of apps that need to be updated. The device is communicating with the Web service to find out if there are any updates, and then it uses another service to download these updates. Most mobile apps, especially for the enterprise, I think, they are going to be relying on the Web services. We've seen that Web APIs as compared to more traditional Web services that use SOAP [Simple Object Access Protocol] and WSDL [Web Services Description Language] are the most natural way to provide these capabilities to mobile apps. They're just so much easier to work with, and for some other reasons. Probably we don't have enough time to get into all those details on this podcast.
Could you just tell us a little bit about how the cloud plays into all of this?
Daigneau: I hinted at some of this a little earlier. Cloud platforms provide an excellent way to host your Web services. Some businesses will just go out and build everything on the cloud in an attempt to avoid having to maintain their own data center. Others will attempt to adopt that hybrid approach that I mentioned earlier, where some of the business services are pushed to the cloud and some remains on-premises in their data center.
We get in this scenario that the business might use the public cloud platform to handle some subset of their overall business computing needs. In these scenarios, we can see how Web services, Web APIs, mobile apps and the cloud, all of this stuff, come together; they converge and they help to create some really exciting opportunities for business.
Daigneau: First, we've got to remember there's always going to be situations where it's going to make more sense to build an application using native mobile technologies. This approach will probably always provide the richest and most responsive UX [user experience]. Also at this time, it seems that the developer tools, debugging tools and diagnostics are a little bit ahead and probably will remain so for a time. For example, we've seen companies like LinkedIn giving up on their recent HTML5 work in favor of going more towards a rich native platform environment.
This all being said, the problem is that when you have to recreate your application for multiple mobile platforms, you got a lot of development to do and, really, a lot more work. For situations like these, some businesses select mobile SDKs [software developer's kits] that enable developers to write once and deploy to multiple mobile platforms. Where have we heard that before? Sounds kind of familiar, right? Like Java, for example. The issue here is that these SDKs often choose a lowest common denominator approach, and they're not really able to harness the unique capabilities of the given mobile platform.
Wonderful. Thank you so much for sharing your insights, Rob. Thank you, again.
Daigneau: Thanks again for having me.