Powering Mobile Architecture with vFabric
About the Author: Jay Marshall is a Senior Systems Engineer within VMware’s vFabric Cloud Application Platform team. He has been involved in enterprise Java development for more than ten years and his passion for technology has helped launch multiple startups and legacy modernization projects. Jay currently supports some of VMware’s largest customers in defining their next generation platform plans.
Mobile is driving a lot of new application development. But, how can vFabric help?
We’ve all heard the incredible growth trends of mobile. As an example, “The Future of Mobile” presentation by Henry Blodget, CEO of Business Insider (2012), shows how mobile apps are now a $10B market and growing at 100% per year.
This has led a number of companies, including Google, to adopt “mobile first” development strategies: build first for smartphones, then for laptops and desktops. At other companies, such as Urbanspoon, mobile growth is outpacing their desktop web traffic. It’s said that if Facebook were built today, it would be a mobile app.
The Mobile UI Development Dilemma
The challenge facing mobile application developers is that there are three major mobile UI technology stacks – iOS, Android Java, and HTML5 (mobile web), each with their own pros and cons.
- iOS applications tend to have snappy performance, but are subject to Apple App Store approval process. Mastering this process is critical to ensuring that your application is available to customers.
- Android Java applications also tend to have good device-side performance, but the platform is fragmented, which requires developers to maintain multiple code bases.
- HTML5 applications can run on any modern mobile device, but care must be taken to ensure fast performance, as well as to accommodate minor differences between mobile browsers.
For this approach, there is a whole new set of web-based frameworks that have emerged that allow you to reuse your existing web skills to build mobile applications. jQueryMobile, Sencha, and Dojo are all good examples. Each of these frameworks would use standard client-to-app communications like standard HTTP requests, REST, and JSON to talk to the back-end. This back end is essentially web servers, application servers, messaging servers, and databases – similar to the existing application infrastructure that underpins your current web applications. In fact, native iOS and Android apps can communicate with back ends using HTTP/REST/JSON, enabling you to reuse your back end infrastructure and code should you someday decide to build native iOS or Java applications.
Let’s Get to the Back-end
- With tc Server, RabbitMQ, and Elastic Memory for Java (EM4J), we have a lightweight, robust middle-tier with a message-oriented architecture and elastic backbone.
- By mixing in Spring Data – Rest, we can give front-end developers and back-end developers a clean way to read from and write to a wide range of databases.
- With SQLFire, we have fast, in-memory speed and can scale out the data layer or interoperate with existing, legacy data stores without impacting performance.
- With vFabric Application Performance Manager, we can monitor and scale the apps.
- With vCloud and vFabric Application Director, the stack is largely automated and can run in public, private, or hybrid clouds.
- By running the stack on vSphere and vCenter, we have a very cost-effective, scalable infrastructure.
Keep in mind that native iOS or Android programming could still leverage the same calls to this back-end. In other words, the back-end provides a common set of services no matter which client is used. This approach gives you a straightforward, flexible front-end with a super-performant, best-of-breed backend. This architecture is primarily why I came to VMware.