Mobile Business Objects: MBO Concept and Creation
Sybase Unwired Platform Article Series #4
Feb. 11, 2011 03:45 AM
The design cornerstone of the Sybase's MEAP the Sybase Unwired Platform is the Mobile Business Object (MBO). The MBO encapsulates the business process logic and data into a reusable unit that can be accessed from a variety of clients.
The development can take two approaches, firstly the Top-Down approach, which creates the MBO based upon how the client wants to use it... eventually binding to the data source. Secondly, the Bottom-UP approach which uses the data source to automatically bind and create the MBO. Both use the Unwired tooling and are easy to create, with similar steps listed below
- Connect to the back-end data sources that need to be mobilized, via the Unwired tooling
- Connect the Unwired tooling to the Unwired Server
- Create a Mobile Application Project
- Create the MBO from the data source via wizards or Create the MBO attributes and Create, Update, Delete Operations seperately
- Deploy the MBO's to the Unwired Server
Diving a bit deeper the MBO is...
- A metadata definition representing a “slice” of enterprise data and operations
- A design-time element that manifests as a concrete runtime object
- The building block for synchronization and transaction of multiple elements of an application
- Personalization keys (device context) helps narrow data sets *see below
- MBOs are the basis for concrete Objective-C, C# and Java device-side object interfaces
Attributes (synchronized data)
- Define the scope of the device-side data store
- Attributes and parameters in an MBO definition form the shape of the server-side cache
- Server cache and device is populated by reading data from the enterprise, e.g., through an MBO definition operation like a SQL select statement
Operations (enterprise playback)
- Backend tasks to be carried out within the enterprise or through an external service, typically with respect to the MBO attributes
- Can be passed to one or more operations
- Linked to upstream parameters or attributes
- Defined by personalization keys for a user or group *see below
- Form the basis of transactions by identifying the dependencies and state requirements of device-side entities
Relationships are formed by mapping attributes and parameters similar to a primary-foreign keys
How does SUP perform its functions?
- Design or Modify in the Designer Mode through the GUI interface to define/Edit “Mobile Business Objects”
Use tooling set preferred (Eclipse or Visual Studio)
- In designer mode, the SUP tool generates the SQL and code operations for the devices and server side apps and any addition API, filtering and so forth occurs in this phase. Then package and deploy.
- In operation or runtime mode, SUP Runtime engine then performs the synchronization/loads and relationship management as specified by the MBO runtime parameters
Sybase Unwired Platform offers flexibility when creating mobile applications – catering to the needs/requirements of both novice and advanced mobile developers.
For iSurvey I used the Bottom-Up approach and the wizards in the Unwired Tooling to create a 1:1 representation of the tables that I wanted to synchronize onto Mobile Client.
Personalization keys helps narrow data sets... For iSurvey each user will be placing data (contacts and survey results) into their own remote database via the app and will not want to see the data from other users, likewise specific surveys may wish to be pushed out from the consolidated database to individual users. For this we use Personalization keys on the defined MBOs, for example Survey_contact
Looking to the next step... Developers have two choices when creating native applications in Sybase Unwired Platform...
- Create MBOs that connect to back-end data sources then use Sybase Unwired Platform to generate code warapper for the targeted device and code further using the native device SDK
- Create MBOs that connect to back-end data sources, use Sybase Unwired Platform to generate the default device GUI and then further customize the GUI for a device-specific user experience using the native device SDK.
For iOS #1 is the only option and we will go into that further...
Please check back weekly on a Friday for the next article and please follow me on Twitter @ithain