Welcome!

Java Authors: Pat Romanski, Elizabeth White, Roger Strukhoff, Liz McMillan, Jim Kaskade

Related Topics: Wireless, PowerBuilder, iPhone

Wireless: Article

Mobile Business Objects: MBO Concept and Creation

Sybase Unwired Platform Article Series #4

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

  1. Connect to the back-end data sources that need to be mobilized, via the Unwired tooling
  2. Connect the Unwired tooling to the Unwired Server
  3. Create a Mobile Application Project
  4. Create the MBO from the data source via wizards or Create the MBO attributes and Create, Update, Delete Operations seperately
  5. 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

Mobile Business Objects

Development Paradigm

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


Parameters

  • 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


Relationships

  • 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

Design Deploy Test

How does SUP perform its functions?

  1. 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)‏
  2. 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.
  3. 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.

iSurevey MBOs


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

Personalization Key Definition

Personalization Key Usage

Looking to the next step... Developers have two choices when creating native applications in Sybase Unwired Platform...

  1. 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
  2. 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

More Stories By Ian Thain

As one of the Sybase Technical Evangelists, Ian regularly addresses technical audiences all over the world and his sessions are always very well attended. He also writes education classes, whitepapers, demos and articles for various Sybase products and publishes regularly in Journals such as SYS-CON's PBDJ and International Developer Magazine. He is also the Sybase Unwired Platform & PocketBuilder Evangelist and works closely with the team in Dublin, CA and Concord, MA on new features and demonstrations for the products. In his customer-facing Evangelist role, Ian is very involved with the design, production and testing of Enterprise class Unwired Solutions, that have been implemented using Sybase's Unwired tools for Sybase customers around the globe. In addition, Ian is a dedicated technical expert continually working with Sybase's key partners and clients to enhance the capabilities of the Unwired solutions that Sybase can offer to its customers. Ian can also be found on Twitter @ithain

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.