Skip to main content

By clicking Submit, you agree to the developerWorks terms of use.

The first time you sign into developerWorks, a profile is created for you. Select information in your profile (name, country/region, and company) is displayed to the public and will accompany any content you post. You may update your IBM account at any time.

All information submitted is secure.

  • Close [x]

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerworks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

By clicking Submit, you agree to the developerWorks terms of use.

All information submitted is secure.

  • Close [x]

Solve your many-device-to-many-platform mobile application integration challenges

Using a MEAP for your mobile development environment

Olivier Picciotto is co-founder of Convertigo; he's involved in global management of the company, acts as the technical evangelist for the company's products, and possesses more than 15 years experience managing high tech IT companies. Before Convertigo, Picciotto started and managed the end-user enterprise messaging products from Marben Produits, creating a powerful X.400 messaging product. He holds an Engineering degree from E.S.M.E specializing in IT.

Summary:  Practically inseparable these days, cloud computing and mobile applications go hand-in-hand, but that first step of integrating mobile applications into your cloud can create challenges. In this article, the author explains the mobile enterprise application platform (MEAP) and why choosing it can be the best mobile development model for your environment. He also provides an example of a real-world cloud-oriented MEAP he was involved in creating - the Convertigo Mobilizer.

Date:  22 Aug 2012
Level:  Intermediate PDF:  A4 and Letter (1105 KB | 24 pages)Get Adobe® Reader®
Also available in:   Chinese  Russian  Japanese  Portuguese  Spanish

Activity:  12172 views
Comments:  

Enterprise mobility projects are proliferating and those that deliver value create the demand for even more projects; this demand is a major bottleneck. Instead of connecting one data source to one type of mobile device, IT infrastructure is faced with multiple device platforms, complex security issues, and disparate enterprise applications and data sources, many with no APIs.

The many-device-to-many-platform mobile application integration scenario creates certain mobile integration challenges.

Mobile integration challenges

The integration challenges a company faces to incorporate mobile applications in their cloud environment include:

  • Mobile enablement of existing applications.
  • Complex mobile development languages.
  • The bring-your-own-device trend (BYOD).
  • How to structure and position the business logic.
  • How not to mistake the mobile web-oriented architecture for an SOA.

Let's examine these further; later, I'll explain in more detail how my team handled the issue in developing our product.

Existing applications are not mobile enabled

Mobile enabling implies accessing the data and business logic of these applications, but unfortunately very few of them provide APIs or services you can rely on to build the new mobile user interfaces. To reduce workload altering existing applications, one solution is to support mobile capabilities on the unchanged existing apps through a connector.

Developers might not have experience using complex mobile development languages

Developing mobile applications used to require some complex Objective C and Java™ resources that basic web developers do not as a rule know much about. However, structurally, mobile applications do use user interfaces that require HTML5 and JavaScript skills, skills web developers have. A solution to this challenge is to provide a bridge over which web developers can write mobile application code using the technologies they know.

The enterprise has to support more than one specific platform, as well as the bring-your-own-device trend

The cross-platform challenge calls out for mobile development that should be done once and run on multiple platforms (iOS, Android, Blackberry, Windows Phone, etc.) and on multiple devices (smartphones, tablets, etc.) having different memory and display size parameters. As mentioned in the previous paragraph, a common, more easily used bridge environment can be the key to solving this challenge.

What's the best position for the application business logic?

Application business logic should not be coded in the mobile device: Coding application business logic in devices leads to unmanageable and duplicate code handling of the same business processes across multiple mobile applications. Having this business logic concentrated on the server side leads to a more efficient and managed architecture, reusable in multiple mobile applications. Creating a business logic layer on a server that can combine, orchestrate, and compute data from multiple enterprise sources is a smart idea.

Don't confuse SOA with WOA

Most enterprises have awareness of (if not expertise in) service-oriented architecture concepts and structures. They may have an information system based on SOAP web services, orchestrated by enterprise service buses. But the mobile world is not based on SOA. Most mobile device environments rely on WOA, a web-oriented architecture that is based on REST or JSON services and authenticated by OAuth protocols. These protocols are much more optimized for low bandwidth 3G networks. There should be a way to leverage an organization's SOA attributes in an WOA world; one solution is an interface layer between the structured and rigid SOA and the agile and flexible WOA. One that could, for example, change existing SOAP web services to a REST/JSON service in a few clicks.

Now let's take a quick look at how a mobile enterprise application platform, or MEAP, can accommodate the mobile application integration scenario I've described.


Inside a MEAP

A mobile enterprise application platform is a comprehensive suite of products and services that enable development and deployment of mobile applications by handling some of the details of the process. MEAPs help developers address the difficulties of developing mobile software by adding a management layer to handle the range of devices, networks, and user groups, both during the deployment phase and throughout the entire life cycle of the application.

Some of the more common attributes of a MEAP include:

  • Cross-platform, write-once-deploy-everywhere capabilities they can provide.
  • Interfaces that keep you from tinkering with the underlying business logic.
  • Suited for:
    • Multiple apps that companies want to deploy on a single infrastructure.
    • Apps that are scaled to the current size of the company's mobile user base.
    • Apps available in on- and offline mode.
  • Easy development templates that let programmers tap into more complex languages without being an expert in those languages.

Common MEAP structure

A MEAP is usually composed of 3 components:

  • Mobile middleware server: Handles all system integration, security, communications, scalability, cross-platform support, that sort of thing. Data isn't stored on the server; it manages data between the back-end system and the device.

  • Mobile client application: Connects to the middleware server and drives the user interface and the business logic on the device. They come in "thick" versions (native apps installed on the device) or "thin" incarnations (rendered in the device browser with something like HTML5).

  • Mobile configuration/development toolset: Creates and adjusts the mobile components.

When should I consider a MEAP?

The IT analyst firm Gartner suggests an organization consider a MEAP when they want their mobile capabilities to support three or more mobile apps or mobile operating systems or to integrate with at least three back-end data sources. (Gartner RAS Core Research Note G00211688, 20 April 2011; registration required.)


Real-world example: Convertigo Mobilizer

My team and I created the Convertigo Mobilizer, a MEAP that provides an organization with a single, adaptable point of mobile integration that lets you develop enterprise-class mobile applications and reuse valuable existing IT assets. Mobilizer offers a core technology platform that can instantly extract and process data from any enterprise data source or application; it can also perform dynamic and transactional integration from any existing website or application. Convertigo integrates with mainframe and legacy applications running on such systems as IBM® iSeries or zSeries. Figure 1 shows where the Convertigo Mobilizer resides in the overall environment.


Figure 1. The Mobilizer MEAP's place in the environment
The Mobilizer MEAP's place in the environment

Remember the mobile integration challenges mentioned previously? Mobilizer addresses those challenges:

  • Mobile enablement of existing applications. It solves this challenge by providing a set of powerful connectors able to connect and interact seamlessly to any web-based or mainframe-based applications without requiring any changes on the target applications.

  • Complex mobile development languages. It solves this challenge by using popular web-based frameworks such as JQuery Mobile and Sencha Touch (associated with the Apache Cordova/PhoneGap technology). These components make it possible for web developers to write mobile applications running natively on multiple platforms with their favorite languages.

  • The bring-your-own-device trend (BYOD). It solves this challenge by integrating the frameworks just mentioned (JQuery Mobile, Sencha Touch, and PhoneGap).

  • How to structure and position the business logic. It solves this challenge by providing a powerful business logic layer able to combine, orchestrate, and compute data from multiple enterprise sources. The Convertigo Sequencer can handle complex business logic and execute business logic flows programmed without requiring the operator to have strong technical knowledge. Also, as the Sequencer executes metadata described flows, this avoids code generation or compilation. That means this fosters a highly agile development process, saving time and development costs.

  • How not to mistake the mobile web-oriented architecture for an SOA. It solves this challenge by supporting the mechanism suggested earlier — it provides the needed middleware to interface the very structured and rigid SOA world to a more agile and flexible WOA world.

Now let's look at using Convertigo Mobilizer on IBM SmartCloud Enterprise.


Convertigo Mobilizer on IBM SmartCloud Enterprise

The Convertigo Mobilizer MEAP is available on IBM SmartCloud Enterprise, enabling enterprises to leverage powerful IBM's SmartCloud features for enterprise mobility.

Getting started

  1. Login to IBM SmartCloud, start an instance, select your data center, and look for the Convertigo Enterprise Mashup Server image. Figure 2 is an example of a Convertigo image in Raleigh's data center.

    Figure 2. Add instance
    Add instance

    The Convertigo image is available as BYOL (bring your own license), meaning that you need to get a valid license from Convertigo for production. Without the license, Convertigo Enterprise Mashup Server (EMS) provides a full service for 30 days.

  2. Select Convertigo EMS image and click Next.
  3. Fill in the required fields to start the instance. We recommend running Convertigo on "Copper" or "Silver" models. Running it on higher class server configurations will not improve performance as this Convertigo image has been tailored to use from two to four virtual core CPUs.
  4. Start the instance and wait for IBM SmartCloud provisioning. When ready you see the following panel:

    Figure 3. SmartCloud console page
    SmartCloud console page

  5. Look for the IBM SmartCloud-assigned IP address (highlighted in red in Figure 3). Launch a Google Chrome browser and access the running Convertigo EMS instance on: http://<IPaddr>. You should get the Convertigo EMS on the IBM SmartCloud welcome page.

Making your Convertigo server workspace persistent

By default, when you start a Convertigo image on IBM SmartCloud, no persistent storage is attached to the running image. Convertigo server needs a persistent storage where the following crucial data is held:

  • Deployed Convertigo projects
  • Execution logs
  • License information

This data is simply stored on a file system called the workspace. To set up a persistent workspace, use the IBM SmartCloud console to add a persistent file system and mount it in /mnt/extra. This file system will hold your license information, so you should only enter a valid Convertigo license key in the Convertigo administration console after having set up the persistent storage (Figure 4).


Figure 4. Convertigo server start up screen
Convertigo server start up screen

Developing your first mobile project

  1. Convertigo Studio helps you develop your mobile applications. Download it by clicking the Download Convertigo Studio button in the Convertigo server startup page (Figure 4.) Convertigo Studio is an Eclipse-based development tool providing the Convertigo server programming environment. Once your project is developed, you can deploy it on Convertigo EMS running in the IBM SmartCloud.
  2. Wait for Convertigo Studio download (about 250MB) and launch the convertigo-studio-6.x.x-vXXXX-win32-install.exe. During the installation process you are asked for proxy settings. Be sure to set them correctly or you will not be able to deploy projects to Convertigo EMS running on IBM SmartCloud.

    For now, Convertigo Studio only runs on Windows; Mac versions can be made available on special requests.

  3. Launch Convertigo Studio. On the first run Convertigo Studio asks for a registration Certificate. This certificate is not required for IBM SmartCloud, click the Ignore button (Figure 5).

    Figure 5. Registration window
    Registration windo

  4. Confirm yes on the following message box.

Your Convertigo Studio is now up and running.

Developing your first project

First, you must understand the Convertigo programming model. This model is based on a server-side programming and a client-side (mobile) programming. The server and client sides interact through JSON/REST/XML protocols over http or https. Convertigo Studio makes possible to program the both sides in one unique integrated environment, the Eclipse-based Convertigo Studio.


Figure 6. Mobile and server interactions
Mobile and server interactions

The server-side programming model
Server side programming is based on assembling and configuring Convertigo objects called connectors, transactions, and sequences:

  • Connectors handle connections to back end applications. There are several types of connectors:
    • The SQL connector connects to any JDBC-compliant database.
    • The HTTP connector consumes any existing SOAP/REST/JSON web service.
    • The Legacy Screen connectors connect to any iSeries, zSeries, or UNIX® screen-based applications.
    • The HTML connectors connect to any existing web-based application.

  • Transactions handle a base interaction with a remote system. All transactions are based on one of the existing Convertigo Connectors. For example:
    • SQL transactions execute a specific SQL request on the SQL connector for reading from or writing to a database.
    • HTTP transactions invoke any HTTP-based web service based on SOAP/REST or JSON.
    • HTML transactions can connect to any existing web-based application, interact with them, fill forms, and click on any web UI element to end up with a result page that will be read and structured as an XML response.
    • Legacy Screen transactions can connect to any screen-based TN5250, TN3270, Telnet applications, to interact with them in reading and writing and returning data as structured XML responses.

  • Sequences are responsible for orchestrating transactions on different connectors. Sequences implement the business logic flow, can take decisions, can handle loops, and can execute several threads in parallel.

Although the SQL and web services connectors available in Convertigo are quite common in other MEAPs, the HTML and Legacy Screen connectors are unique to the Convertigo MEAP. These connectors provide a powerful mobile enablement technology by enabling a non-intrusive connection to any existing business application.

With its set of connectors, Convertigo Mobilizer can connect to any layer of the target applications, making it possible to inherit all existing business logic for a mobile application as shown in Figure 7.


Figure 7. Connecting to any layer of the target application
Connecting to any layer of the target application

Figure 8 demonstrates the interactions between different Convertigo components.


Figure 8. Global Convertigo components
Global Convertigo components

For more information about server-side programming, please refer to the getting started tutorials (in Resources).

The client-side programming model
With Convertigo MEAP, client-side programming is done using HTML5 and JavaScript frameworks. Convertigo integrates support for JQuery Mobile and Sencha Touch frameworks for the user interface and uses PhoneGap/Apache Cordova for cross-platform native application support.

Leveraging these frameworks, you write the client application only once but can run it on four different mobile platforms (iOS, Android, Blackberry 6, and Windows Phone 7.5). You can also run it as a mobile web application, thus avoiding the application store deployment procedures. Refer to the getting started manual (Resources) for help with developing your first client-side UI project.

Develop your project with the mobile US Directory sample
You can also use a working sample such as the US Directory sample with the Studio. This project demonstrates how the usdirectory website can be mobile enabled.

  1. To load the sample in Convertigo Studio, go to File > New > Project.
  2. Browse for Convertigo projects > Sample > Mobile Samples and choose the Sencha-based US Directory Sample (Figure 9).

    Figure 9. US Directory sample
    US Directory sample

  3. Complete the wizard; this project uses the Sencha Framework, so the wizard asks you to download it to your workstation.

    Figure 10. Sencha download wizard
    Sencha download wizard

    Be sure to download the Sencha Touch 1.x framework. The link provided in the wizard might send you to a Sencha 2.0 download page, so be sure to look for the Sencha 1.X download link.

  4. Once the Sencha Framework download has finished, copy the ZIP file to the wizard's highlighted directory and click Finish. The US Directory sample is loaded in Convertigo Studio.

    Figure 11. The sample is loaded
    The sample is loaded

Deploy the project on Convertigo EMS running on SmartCloud
This project is now opened in your local studio. To deploy it in your IBM SmartCloud account's Convertigo server:

  1. Right-click on the project name in the Studio's project explorer and choose Deploy.
  2. The deployment window opens. Type in the first field the Convertigo Server on SmartCloud address: <IBM SCE assigned IP address >/convertigo.
  3. Type admin in the Server administrator field and admin in the Password field. Do not use any http or https prefix. For example:

    Figure 12. Deploy window
    Deploy window

  4. Click Deploy.
  5. Wait for the project to be deployed.

    Figure 13. Deployment
    Deployment

  6. When the project is deployed a confirmation window appears:

    Figure 14. Deployed
    Deployed

  7. To run the project, just click on the provided link. Be sure to use a Google Chrome Browser.

    Figure 15. Project's test platform
    Project's test platform

Your project is now successfully deployed on Convertigo running on IBM SmartCloud.

To run your application as a mobile web app:

  1. Open the device of your choice, for example Android:

    Figure 16. Run as web app
    Run as web app

  2. You can click Execute or scan the WebApplication QR code with your Android device. Clicking the Execute button runs the mobile application in Convertigo's test platform.

    Figure 17. Running project
    Running project

    (See a larger version of Figure 17.)

You can also get the full URL to this WebApplication by copying the highlighted URL in the page.

Building native cross-platform applications
Now that you have a working mobile web application you can build the native packages for each of the supported platforms. This process generates .IPA files for the iOS platforms (iPhones and iPad) and the .APK packages for the Android platforms (phones and tablets).

To build the native packages:

  1. Click Build mobile applications.

    Figure 18. Build native apps
    Build native apps

    (See a larger version of Figure 18.)

  2. Click Build the mobile devices. Convertigo starts to build the application for each platform and displays a wait sign. When the applications are built, the wait sign is replaced by a QR code.

    Figure 19. Native apps building
    Native apps building

    (See a larger version of Figure 19.)

  3. You can scan or click the QR code to download the native application file to your workstation. You can then submit these applications to the public Apple or Android stores, or to publish the applications in your private enterprise store.

In conclusion

A MEAP can be a power tool to bring mobile enablement to your cloud environment quickly and without a steep learning curve. By understanding what a MEAP is, what it does, when you should consider one, you can more easily solve the challenges of many-device-to-many-platform mobile application integration.


Resources

Learn

Get products and technologies

Discuss

About the author

Olivier Picciotto is co-founder of Convertigo; he's involved in global management of the company, acts as the technical evangelist for the company's products, and possesses more than 15 years experience managing high tech IT companies. Before Convertigo, Picciotto started and managed the end-user enterprise messaging products from Marben Produits, creating a powerful X.400 messaging product. He holds an Engineering degree from E.S.M.E specializing in IT.

Report abuse help

Report abuse

Thank you. This entry has been flagged for moderator attention.


Report abuse help

Report abuse

Report abuse submission failed. Please try again later.


developerWorks: Sign in


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Select information in your profile (name, country/region, and company) is displayed to the public and will accompany any content you post. You may update your IBM account at any time.

Choose your display name

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


Rate this article

Comments

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Cloud computing, Mobile development
ArticleID=830550
ArticleTitle=Solve your many-device-to-many-platform mobile application integration challenges
publish-date=08222012