Core TIP: A new generation of information services treats browsers and devices as the same client. The challenge now is to establish such services.
Can I use native code to develop mobile applications or use Web technologies such as HTML and JavaScript for deployment? Developers have been divided on this issue.
Steve Jobs initially suggested that iphone developers be able to deploy any application as needed through a built-in browser. But that was before Apple launched its industry-leading itunes App store.
Since then, even web sites have often opted to use native apps to publish and deliver their content to mobile devices, rather than simply trying to cram them into their mobile browsers. Despite improvements in HTML5, many developers still feel that the unique demand for smart-phone and netbook-specific web technologies is inadequate.
If this is true, then it is time for us to reflect on how online information services are being developed and deployed. In the past, developers often built websites first and then adapted the same content for mobile applications. But in today's market, more and more mobile devices become users of the main means of access to the Internet, the previous practice can be said to be quite backward.
What we need is a change in the development of mobile devices, similar to what we found earlier in Web applications. The first batch of enterprise-class Web applications simply output code from a traditional mainframe to the browser, making it look beautiful. However, as browser-based computing becomes increasingly standardized, the application logic moves out of host and HTML output as the primary goal. Mobile device applications are undergoing the same transformation. The next generation of information services treats desktop browsers and mobile applications as the same client, and the same logical application provides content for both.
Equally important, at the same time, this shift is also taking a huge change in another important area of the IT industry, which is moving in the direction of cloud computing. As platform-Service (PaaS) offerings become more sophisticated, fewer information service providers are providing host applications on their private infrastructure.
Connecting devices to the cloud
For application developers, the migration of managing so many applications at the same time can be a pretty daunting task. Thankfully, platform vendors have provided relevant tools to make the transition to a mixed network/mobile application as easy as possible.
Recently, at a meeting of Google I/O developers in San Francisco, the search giant unveiled its new beta version of the Google plug-in Eclipse platform (GPE). The tool allows developers to create, test, and upload applications to Google's application engine cloud Platform (googleappengine), all using the Java language Eclipse integrated development environment.
Earlier versions of GPE enabled developers to build application engines for Google Web Toolkit (GWT) using integrated support, a framework for creating complex web-based UIs. New 2.4 Beta GPE adds support for Android apps. In fact, developers can build application logic for the engine and then generate I/O code for both the Web and mobile clients.
Similarly, Microsoft has positioned its windowsazure as a back-end cloud platform for mobile applications. Contrary to expectations, it is not limited to serving WindowsPhone7 operating systems. The new Windowsazure Toolkit will be available for Apple iOS devices and Android devices.
It's easy to see Microsoft's ambitions. Although iOS is currently one of the top mobile platforms, far more than WindowsPhone7, Apple has so far not launched a Microsoft Windowsazure, Google's googleappengine, And Amazon's flexible Computing cloud service Elasticcomputecloud a rival cloud computing platform. The rumor is that Apple may be developing the product, but unless the iphone's manufacturers move faster, Microsoft will have a good chance of winning iOS as a mobile backend application service provider.
Challenges ahead
Can I use native code to develop mobile applications or use Web technologies such as HTML and JavaScript for deployment? Seems to be both. You can dive into a hybrid cloud platform. While this is a good idea, developers must be aware that the current mobile application cloud architecture is an important pitfall.
First, there are risks to any application currently hosted on the cloud infrastructure. There is at least a risk of disruption, which may weaken the cloud backup application. So far, no cloud computing platform has been proven to be absolutely reliable, with users from Amazon, Google and Microsoft breaking down.
It is also important that more and more developers complain about the "walled gardens" of mobile platform vendors, and that users of cloud computing platforms may also be locked in by suppliers. The movement between large data storage services can be said to be challenging, and in many cases the application logic needs to be adjusted when migrating between providers. A considerable number of enterprises are actively working to purchase the deployment of interoperability cloud computing services, including the Apache Software Foundation and the American Institute of Electrical and Electronics Engineers (IEEE), but these efforts are immature and have little incentive for cloud providers to collaborate on their own.
But the biggest challenge may be to simply look for vendors who can successfully develop cloud and mobile development programs. Both of these methods are relatively new. In particular, the needs of mobile developers will continue to improve, and many companies are using outsourced or expensive retraining to get the skills they need to create mobile applications. It seems that mobile developers who want to find a cloud platform that makes it easy for their business to be proficient in applications seem to be demanding much more.
Of course, for current project managers, the prospect of recruiting new talent looks bleak, and smart developers should be open to the door. Application development is also changing. Again, time will prove everything.
(Responsible editor: Liu Fen)