Skip to content

Introduction to OEAM

drenwick edited this page Sep 5, 2013 · 1 revision

Open Enterprise App Management (OEAM)

OEAM is an open source enterprise app configurations standard and leverages the new iOS 7 App Management features to bring a new level of control to iOS apps. OEAM can work with any MDM vendor and any app with minimal code changes. App developers can use one OS provided mechanism to understand if an app is 'managed' by a MDM service and then can make use of standard keys delivered directly to the app.

OEAM was released in September 2013 at the AirWatch Connect mobility conference.

Why do I need OEAM?

Why is this important for your app and to the users of your app? Well, up until now if you needed to configure an app on an iOS device you pretty much only had a few clunky options. • Have the user do it first time they use it • Have the app make some call out to some global service to work out how the app should be configured • Use some URL scheme and send some link to the device that will launch your app and attempt to complete the configuration process ALl these techniques introduce a whole range of potential problems and they all fall short of the idea that an app 'should just work'. Assuming that we have the app now configured and running. How can an enterprise switch a setting for all their users in one go or enable additional functions to the executive team? Again, up until now you've had to stand up some configuration framework for your app and present the admins a new tool to do this. All of this is extra development effort (and cost) and complication for your users.

Enter iOS 7. Many enterprise customers have already implemented an MDM solution to help them manage their devices. iOS MDM is extremely effective and comprehensive and can install and remove apps from a users device. However, due to the strict sandboxing in iOS, it's never been able to send settings to the app directly. Again in the past MDM provides and MAM providers have used various techniques to try and do this but they've been far from ideal. iOS 7 now allows an enterprise or institution that has their devices under MDM control to now easily and safely deliver settings directly to a 'managed' app. That's a huge step forward for all and OEAM leverages this great mechanism. But there is still a kink in the process. This is where OEAM steps in. An MDM server can deliver pretty much any plist/XML data to a known 'managed' app. But what does that plist/XML data look like in order that the app can parse and work with the data? App A might need keys for a user and server configuration and they may be expecting these keys to be 'user' and 'appServerURL'. App B might need basically the same data but is expecting the keys to be 'userName' and 'server'.

So now App developer A has to tell the MDM admin his key requirement and developer B does the same. The MDM admin has to device that if the required key is 'user' - does this really mean the user shortname or full name or what?

OEAM simplifies this for all by defining a standard set of keys that both the developers and the MDM vendors can code to..

No XML 'key mapping' or 'key confusion'.

App developers can know that if you want the user short name - you go check for a key called userShortname. They don't have to work with the MDM vendor to make that happen and the App can be managed by any vendor without modification. The MDM vendors knows what data is required for they key and ensures this is delivered.

What about my app specific settings?

You are right, you still need to worry about the keys and settings that are unique to your app. OEAM delivers these so you can remotely change the app specific settings. The developer need only publish the key names to the MDM vendor and these settings are delivered along side the standard OEAM keys.

Learn more about OEAM and how to quickly modify mobile applications to make them enterprise ready.

The developer guide contains information for OEAM integration into your application. If you want to contribute to the project, or even just tinker on your own, this guide explains how to get the source and work with it.

Clone this wiki locally