I had some down time which allowed me to explore an alternative mobile development strategy which is to use a Mobile Enterprise Application Platform (or MEAP, a technical term coined by Gartner) to build cross-mobile device applications. Back in 2009, Gartner made one of their famous quotes that seem to get a lot of airplay on the ‘Net’ and it was: “We believe that more than 95% of organizations will be choosing MEAP or packaged mobile application vendors as their primary mobile development platforms through 2012”. Obviously, coming into the 4th quarter of 2011, most organizations that are looking at mobile are not targeting the use of MEAPs in the construction of a mobile solution. To be fair to Gartner, they have come out with a revised report this year that did not reiterate that statement.
I took two MEAP vendors (Sybase and Pyxis) for a spin, trying out both their canned samples and one I came up with on my own. Obviously, the samples played to the platforms strengths and if you followed the script and stayed on the path, a very nice app came out on the other end (usually deployable to multiple device types). The samples show the strength of a MEAP around capabilities such as:
- Data caching and data synchronization (offline support)
- Connections with enterprise systems such as CRM
- Multiple platform support (Android, iOS, BlackBerry, Windows Mobile)
But what if you wandered off the path, the areas on the map marked “There be dragons here”?
Then you started bumping up against some of the limitations of the tool. For instance:
- Support for web services is pretty standard and maybe even REST-capable but what if the response is not XML but JSON?
- Support for tablets (more than just running in landscape mode or just a larger screen). For instance, can the platform support Android’s fragments (ie. now have multiple panes)?
- Integrate third-party frameworks such as zxing (Android/Barcode) or json-framework (JSON parser for Objective-C/iOS).
In order to support capabilities such as data caching, data synchronization, and higher-end security such as encryption the MEAP vendors require the installation of an application server through which the smartphone applications talk to your backend enterprise systems.
What happens if you have already invested heavily in a particular vendor’s application server software such as IBM WebSphere or Oracle WebLogic and are loath to invest in additional application servers? In the case of IBM, they have added a mobile experience to their Portal product which Jonathon Distad and Mark Polly have already covered. IBM does not offer a MEAP package built on top of their Rational Application Developer development tools but just recently unveiled IBM Mobile Technology Preview (http://ibm.co/ibmmobile) built around HTML, CSS, and JavaScript using Dojo Mobile and PhoneGap) and the WebSphere Application Server Feature Pack for Web 2.0 and Mobile does ease some of the pain of supporting multiple platforms but if you need to synchronize data (offline caching), the developer does not have a lot of assistance in the way of integrated tools. At this point, Oracle’s mobile story is centered on ADF Mobile and the Oracle Lite Mobile Server but is strictly a browser-based, mobile-optimized solution with no native application capabilities.
Having worked in Pyxis (ver. 7.1) a bit (but not enough to be anything but a newbie), it offers an intriguing option to jump start a firm’s mobile initiative who need to support multiple platforms (iOS, Android, and Blackberry). If you can get over the sticker shock of the initial deployment costs, it would be well worth the effort to conduct a proof-of-concept around your proposed application and some of the more time-intensive capabilities such as data synchronization or integration with third-party apps such as Facebook. How much time would it take for your developers to build a solution from the ground up, across three platforms versus using Pyxis? The downsides I saw from a developer’s perspective are that:
- Pyxis uses their own IDE (not built on Eclipse so I didn’t get to leverage my experience with Eclipse)
- A relatively unknown programming language called Lua, so no leveraging any programming language I have used in the past or frameworks such as unit testing (no LuaUnit).
- The application server is built on .NET and IIS. That might give some companies pause who are Linux/Unix-based and don’t want to have to support a new platform. In addition, it uses SQL Server for configuration, etc. which firms may not want to bring in if they don’t already support it.
- I could not find application artifacts (all stored in SQL Server?) which leads me to believe that version control is not an option.
- If you need to connect to a service not supported by Pyxis, you would need to write your own plugin (they have a plugin API) using IronPython. No robust community of developers to share plugins with.