Mobile applications built using Sybase Unwired Platform (SUP) are considered to be slow in terms of response/performance. Based on my experience with SUP, I would like to speak about few considerations in all the layers of development to improve the performance of an application built with SUP.
Backend interfaces used for data retrieval will have a considerable effect on performance. Following are some of the important considerations that need to be taken in the Backend systems
- Decision on using standard or customs interfaces should be determined based on the data returned. If the standard interface returns more fields/records then you should consider using custom interface which can provides only the required data.
- For instance, if the back-end system is an SAP system then all BAPI’s/RFC’s should use standard return structures/tables.
Sybase Unwired Platform
Following are some of the important considerations that need to be taken care in the SUP development while designing the Mobile Business Objects (MBO).
MBO Definition Considerations
MBO is a Device Data Model and not the backend replication model.
- While defining the MBO, keep only the fields that are required in the device and remove all the unwanted fields. Keeping the unwanted fields will have a huge impact in utilization of device memory and synchronization performance.
- MBO’s should have primary key defined otherwise the composition of all the fields will be considered as Primary Key.
- Avoid defining MBO’s with more attributes (more than 50 attributes). This increases the page size and will have a huge impact on performance.
- Define the size for the string attribute. Don’t use just String instead use String(n)
MBO Relationship Considerations
Relationship between various MBOs enables navigation and cascade operations.
- Relationship type, composite & bidirectional parameter should be defined based on real time data flow. This will help the client application performance while retrieving data.
Synchronization Group Considerations
Synchronization Group is a method of grouping MBO’s that need to be synchronized together to get the data from the SUP Server to the device.
- The MBO and all its dependent MBOs should be grouped in a single group. Proper definition of Synchronization Group will help the application Synchronization performance.
- Grouping all or multiple MBOs in a single Synchronization group will affect the synchronization performance. An application can have any number of Synchronization Groups.
- Define all the On-demand MBO’s in a different Sync Group to get a better performance.
Cache Group Consideration
Cache Group is a method of grouping MBOs to retrieve the data from the Backend Enterprise Information System (EIS) server to SUP CDB Server.
- Decide on the data load before defining the cache group. Avoid using On-demand for MBOs which need to download huge data.
- Don’t use a very large DCN message to send the data. This will affect the Server performance while parsing the request. DCN cache policy has no time set for refresh, so make sure the data change is sent from the backend all the time.
- Scheduled MBO should contain MBOs which doesn’t need any input from the user. Don’t use MBOs with Sync Parameter or Personalization Parameter in Scheduled cache group.
- Avoid using partitioning data by user. Use it only when private data need to be maintained.
- Use Synchronization Parameter to filter the data downloaded using any of the cache group.
Object Query Consideration
Object queries help MBO developer to query and filter data at the MBO design time to ease the development process and avoiding query issues during mobile client development phase.
- Using large number of Object Queries will have impact in performance; try using Dynamic queries in the client code
- If not used, remove auto generated Object Queries like findAll and findByPrimaryKey
- Use Indexing option only when required, Index will slow the Synchronization & update operation in the device (especially low end devices).
There are few SUP Configuration & Device programming level considerations that needs to be taken care, stay tuned for the next article…
Image credit : http://www.fotopedia.com/items/flickr-363334300