Mobile technologies have taken markets by storm. Every day we hear news about new smartphones and gadgets, new features, operating systems, vendor alliances, and various mega-wars. The coming generation of smartphones promises a pack of new features, which make them look more like mini-computers than smartphones. In fact, the operating systems, running on smartphones, are just abbreviated clones of desktop OSes, at a level you would expect to find only on PCs a few years back. According to Gartner, the smartphones segment is the fastest growing mobile segment.
The Future of Enterprise MobileBy Andrew Komolov, VP of Product Development, Exadel
At the same time, businesses face more and more of a need to expand to new media platforms, namely, mobile, to advance into new markets, strengthen their relations with clients, meet the expectations of customers who demand rich experiences, and to address the never-ending threats of rivals who already have "it".
The current adoption cycle of mobile platforms by enterprises resembles the Internet adoption a decade ago: at first, there is a lot of buzz, but only a few enterprises dare to invest in new technology. At best, companies are confused and unsure about the business opportunities offered by a new media channel. When the dust settles, those who didn't embrace the new technology will find themselves at a disadvantage and will need to play a catch-up game instead of leading the market.
Hard-hit by a recession, IT organizations are under pressure to keep their costs down. IT budgets are either flat or have been decreased. Adoption of any new technology or new platform would require substantial investments.
The Current Mobile Landscape
The fast-growing smartphones category has become a war zone where mega-wars have become almost a routine, and new battles unfold on a daily basis. A continuous influx of new devices will further complicate things.
The smartphone market is very fragmented. Every platform, technology, and vendor is trying to create a positive feedback loop (and a two-sided market) to attract customers with new applications and to attract application developers with a large customer base.
When taking a closer look at mobile platforms and applications, we should distinguish between browser-based and native applications. While the line between operating systems and Web browsers becomes more and more blurry (for example, HTML5 adding such features as offline storage, native video and audio support), we strongly believe that “native” (built using the native SDK) applications will prevail as they deliver a superior rich experience to end users.
However, organizations face a tough choice when deciding what “native” mobile platform to embrace. While Symbian (Nokia) and Blackberry (RIM) are leading the pack for now, Gartner predicts that Android will become the number-2 platform in 3 years.
To successfully embrace mobile platforms, organizations need to address the multi-dimensional complexity of the mobile landscape, build new competencies, and overcome a hurdle of integrating with existing applications.
In our survey of our clients, almost all brought up a business case where they'd like to build a mobile application as an extension of an existing enterprise application. They would like to reuse most of the server-side functionality in their business process, while giving it a new "mobile facelift."
On average for development projects, almost one-third of development time is spent on integration efforts. In a diverse and evolving mobile landscape, this number can easily go up to one-half of development time.
Flamingo to the Rescue
Flamingo, a development framework solution from Exadel, enables the "mobilization" of existing applications by seamlessly reusing existing server-side functionality on mobile devices. Flamingo establishes an abstract layer between the server and client to reuse existing server-side components and services.
Through Flamingo, a number of modern mobile and RIA technologies can seamlessly communicate with the enterprise Java back end. The rapidly expanding list of technologies supported by Flamingo includes JavaFX, Flex, and Android, and spans a wide range of devices, including mobile, desktop, and interactive TV.
Exadel Flamingo is more than just a simple integration framework. Flamingo allows developers to maintain the same level of code granularity while connecting mobile client and enterprise applications. A call to the same enterprise service will actually look almost identical when made from different platforms in different programming languages, thus allowing a) reuse existing code without major refactoring and b) concentrate on building new features without wasting time on routine tasks:
Flamingo provides developers with powerful tools and services to meet even most complex business usecases:
- A project and other artifacts generator
- Automatic binding of client-side components to serve-side components and services
- Support for a validation framework
- Dynamic finders
- Server push
- Client push (offline applications)
Case Study: E-Commerce to M-Commerce
One of Exadel’s large clients wanted to expand its existing e-commerce application to mobile devices. The application has a sophisticated Web 2.0 interface and some very complex back-end functionality, which includes an advanced product catalog, a shopping cart with business rules, a content management system, and an order processing and fulfillment system.
While Java EE is well suited to bring together server-side technologies, our client had difficulties in finding the right approach to building a mobile front end. Among their concerns were development and support cost, the learning curve, scalability, and security.
Then, when Exadel brought in its Exadel Flamingo technology as part of the solution, the client found that they didn’t have to modify the server-side code at all. This left the existing application intact so that Exadel and the client were able to build a mobile front end on top of the existing application infrastructure.
In the current, very fragmented, mobile environment, Flamingo can be the ultimate solution to create and develop an end-to-end mobile and RIA project complete with a data layer, services, and UI. By enforcing decoupling and modularization on the application development process, it makes the extension of existing server-side functionality to different clients much more cost-effective.