DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
  1. DZone
  2. Data Engineering
  3. Databases
  4. Powering Mobile Architecture with vFabric

Powering Mobile Architecture with vFabric

Stacey Schneider user avatar by
Stacey Schneider
·
Sep. 20, 12 · Interview
Like (0)
Save
Tweet
Share
5.65K Views

Join the DZone community and get the full member experience.

Join For Free

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.

Register for VMworld!
Click Here

Register for Session APP-CAP2682 – Build Your First Mobile Application…in the Cloud…in 60 Minutes:
Click Here

Follow all vFabric updates at VMworld on Twitter:
Click Here

  • 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 many development teams, it makes sense to start with HTML5 for building mobile applications. One UI will work across all modern devices, only one codebase is needed, and existing skills in HTML, CSS, and JavaScript can be reused, and there is no need to learn new programming languages, new operating systems, or have separate development teams. With this approach, you can support the significant majority of phones and tablets, in the shortest time, with the lowest amount of ramp up and effort.

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.

Each of these JavaScript Frameworks was written in conjunction with the WebKit browser engine, making it compatible with most all mobile devices.   And, these frameworks are delivering a true mobile experience to the end user. No matter what device your application is being displayed on, you can maintain a native look-and-feel. There is no need to learn the native application languages and platforms to do development.  You can even access cameras and accelerometers with HTML/JavaScript knowledge and tools like appMobi, Appcelerator, or PhoneGap.

Let’s Get to the Back-end

The mobile back-end is where VMware solutions like vFabric and Cloud Foundry come into play. The architecture outline and diagram below roughly mirror the vFabric reference architecture, Nanotrader:

  • Application built in JavaScript, sending JSON payloads over HTTP(s) to RESTful endpoints of an application. These payloads are very small, much smaller than sending an entire page over the network, and thus consume much less bandwidth on mobile networks.
  • 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.

Hopefully, you get to attend my session at VMworld “Build Your First Mobile Application… in the Cloud… in 60 Minutes.” (CAP-2682) where we will create an HTML5/JavaScript/Sencha application from scratch and deploy it live.

  
mobile app Architecture Database

Published at DZone with permission of Stacey Schneider. See the original article here.

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Simulate Network Latency and Packet Drop In Linux
  • Real-Time Stream Processing With Hazelcast and StreamNative
  • Cloud-Based Transportation Management System
  • Unlocking the Power of Polymorphism in JavaScript: A Deep Dive

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: