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
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
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.
- 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
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.
- Select Convertigo EMS image and click Next.
- 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.
- Start the instance and wait for IBM SmartCloud provisioning. When ready you see
the following panel:
Figure 3. SmartCloud console page
- 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
Developing your first mobile project
- 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.
- 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.
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
- 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
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
Figure 8 demonstrates the interactions between different Convertigo components.
Figure 8. Global Convertigo components
For more information about server-side programming, please refer to the getting started tutorials (in Resources).
The client-side programming model
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.
- To load the sample in Convertigo Studio, go to File > New > Project.
- Browse for Convertigo projects > Sample > Mobile Samples and choose the Sencha-based US Directory Sample (Figure 9).
Figure 9. US Directory sample
- 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
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.
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
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:
- Right-click on the project name in the Studio's project explorer and choose Deploy.
- The deployment window opens. Type in the first field the Convertigo Server on SmartCloud address:
<IBM SCE assigned IP address >/convertigo.
adminin the Server administrator field and
adminin the Password field. Do not use any http or https prefix. For example:
Figure 12. Deploy window
- Click Deploy.
- Wait for the project to be deployed.
Figure 13. Deployment
- When the project is deployed a confirmation window appears:
Figure 14. Deployed
- To run the project, just click on the provided link. Be sure to use a Google Chrome Browser.
Figure 15. 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:
- Open the device of your choice, for example Android:
Figure 16. Run as web app
- 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
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:
- Click Build mobile applications.
Figure 18. Build native apps
- 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
- 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.
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.
Learn more about the technologies and techniques mentioned in this article:
- Convertigo developer support.
- Convertigo technical blog and articles.
- The Convertigo administration console operating guide.
- Live demos of Convertigo.
- The Getting Started with Convertigo Mobilizer manual can help you develop your first client-side UI project.
- Other getting started resources on connectors and sequences include:
- From the Java Technical Podcast series, Jonathan Stark discusses cross-platform mobile development with Andrew Glover | Listen | Read the interview.
- In the developerWorks cloud developer resources, discover and share knowledge and experience of application and services developers building their projects for cloud deployment.
- In the developerWorks mobile developer resources, discover and share the knowledge and experience of mobile developers building their projects for deployment; that includes the mobile tool IBM Worklight Developer Edition 5.0.
- Find out how to access IBM SmartCloud Enterprise.
Get products and technologies
- See the product images available for IBM SmartCloud Enterprise; including information on the Convertigo Enterprise Mashup Server (C-EMS).
- Convertigo provides open source software that helps developers build mobile applications that tie tightly into a company's existing enterprise assets.
- Join a cloud computing group on developerWorks.
- Read all the great cloud blogs on developerWorks.
- Join the developerWorks community, a professional network and unified set of community tools for connecting, sharing, and collaborating.