Application’s Performance over Embedded Devices

 

 

 

Application’s Performance over Embedded Devices  

  Dipanshu Mansingka, TBU

Persistent Systems Limited

 

Embedded Devices:

Embedded devices are the systems having hardware as per the requirement and perform few dedicated functionalities. Smartphone’s, Pocket PC’s are the embedded devices with operating systems and microprocessors. (http://en.wikipedia.org/wiki/Embedded_system)

Different Applications on embedded devices:

Sales Force Automation Tool (SFA)

In today’s world, pocket pc, palm devices and other similar devices are extensively used by Corporate as part of their Enterprise applications like Sales Force Automation Tools. The sales person accepts the order and issues invoices using devices, this data is synchronized to the server in real time, and therefore this data transfer has to be fast and secured. It allows the manufacturing plant to know the stock required at the given ware house on a given day. The sales person should be able to view his productivity based on volumes and amount, to meet the daily, weekly and monthly targets.

Here is the link on study of SFA for Procter & Gamble (http://www.ee.usyd.edu.au/~eief/PrizesInformation-PrizesForCommunicationSkills-3ThirdYear-Paper2002KimTran.htm)

Thermal and infra red image reporting to avoid disasters

Electrophysics Corp. have systems that capture the thermal and infra red images and send them across to mobile / embedded devices, along with the defect report mentioning the problems. Infrared cameras are used to find leakages on different surfaces. Thermal cameras are used to detect the overheating of the transformers etc. The performance of the system matters, as it has to analyze the pictures with high resolutions and report in time with great accuracy; else it will cause the damage to the transformer or the metallic surface in which leakage has to be detected. This metallic surface has to be of high quality if it has to be used in rocket launchers or in space.

Car navigation device

Some companies design the hardware for an embedded system using an operating system and ensure its compatibility with other hardware device which do not have any operating system. Like the hardware device designed for car navigation device using GPS system along with radio and TV antenna; and having wince operating system, was attached with the car music system having a touch screen of about 3” * 6”. (http://www.mozen.com, http://www.carmanpark.co.kr, http://www.carmanshop.com).

Email Synchronization

Persistent works for clients like Good Technology (www.good.com) and Seven Networks (www.seven.com) who develop products to synchronize Microsoft Exchange services, Dominos services and other ISP accounts on Smartphone’s, Pocket pc’s from different companies. Both, GPRS and CDMA devices, have to synchronize these services in real time. Think of the scenario where the user has kept his handset switched off while boarding the plane and when he disembarks from the airplane, he switches on the phone, and all the mails are synchronized on the device. The place where he has landed is a different circle or place where the mobile service provider do not have their own services and hence the user has to use some other service provider services for which extra charges are charged.

Improving Performance:

Problem 1:

For a sales force application designed for different devices, the performance issue comes with the server and all the devices having different database format. The pdb database on palm devices does not support relational database.

Solution

The records are to be in xml format separating the fields of record with special characters like ‘|’.  Both, at server and client end the data has to be converted and stored in the format supported, at server end it will depend on the database used. Since the devices will not support the relational database, design should support the search sort of records from different individual tables. Developer has to write a code to find the specific details from the table and then run the loop into the other table to get the required output to be displayed.

Problem 2:

Suppose there’s a GPS device fixed in your car which has different applications to play movies, songs, games, and TV and radio channels; and view pictures. This device can be operated using a remote control.

Picture this scenario: As you get into the car and start driving, you will switch on the device using the remote. As you drive you may try to shuffle between different applications, but by mistake instead of opening the application to play songs you open the movie application. You then try to get back to the song application. As you try to exit the movie application, it will not process the input until the whole list of movies on the storage card is displayed. Frustrating, is it not?

Solution

Use of right API’s while coding plays an important role for the application and device to give good performance. If one is using Windows CE the use of PeekMessage increases power efficiency. This document, highlights how the use of PeekMessage helps in improving the performance of a battery. http://mysearch.intel.com/corporate/default.aspx?culture=en-US&q=PeekMessage&searchsubmit.x=0&searchsubmit.y=0

Now, lets consider the above example of an application listing thousands of songs and movie clips. The Developer can make use of API’s like PeekMessage and check for new messages/events at certain intervals, while the whole list of songs are displayed.  Based on these new messages /events, the current processing of listing the songs / movies or any such objects can be terminated. This will allow the user to immediately switch from the current application to the new application.

Problem 3:

The car navigation system should be able to track the current position of the moving car with the accuracy of less than a meter distance. If there is a left, right or U turn ahead it should be able to direct the user well in advance. Also on such devices the UI (user interface) should be well designed.  It should not lead the user to too many forms or clicks before giving the final result. While the user is driving the car or travelling, it is not feasible to navigate through many clicks on the device. Mozen has car navigation devices with other facilities.  However, about 15 months back when I had viewed these simulators, I personally, did not take to the product as it involved too many clicks to get the final output.

Solution

A well designed UI which has less forms and user clicks to reach the desired output.

Problem 4:

If we consider the products developed by Seven Networks or Good Technology, if the user has to continuously have the channel to send and receive mails, GPRS connection will be used. To keep the connection alive based on the heart bit set, even if there is no email traffic, flowing packets will be sent across between the device and the IP gateway of the operations center via mobile service provider using GPRS. This is an extra overhead to the system.

Solution

The other way is of SMS Push. The email can be pushed as SMS by broadcasting. The SMS is received immediately by the device once it’s switched on after disembarkation from the plane.

Performance of the application and device is of utmost important on such mobile gadgets, than the number of functionalities provided. 

The other factors which affect the performance are

1.       The time taken on the touch screen to convert the touch into a message and give the required output on the screen

2.       Battery consumption should be less, which depends on how the hardware is designed and equally on the design and coding of applications, especially games.

3.       How fast the user is able to shuffle between the applications, between the different objects within the application.

4.       How efficiently the user is able to access to different applications at the same time, like listening to music in background and viewing pictures simultaneously.

5.       Applications stored and run from the SD card or the flash memory embedded into the device, also makes a huge difference.  If one uses the Windows CE operating system than the remote tools that are part of Platform Builder or eVC 4.0, the difference can be found and measured.

6.       It is equally important to decide what kind of processing your application requires. To be able to choose & decide the right processor, refer: The paragraph “Which is better?” on http://www.cs.umass.edu/~verts/cs32/endian.html.

7.       Memory Management: The embedded devices use flash memory that is costly. Also, it depends upon the memory pages supported by the processor selected. The operating system is customized based on the functionality provided. The Windows CE is customized using Platform Builder. Now Visual Studio 7.0 has a separate version along with Platform Builder and other remote tools to check the performance of the applications on the devices. If your car navigation device does not support internet browsing, the components can be removed from the operating system. The Persistent library in Pune has the book “Building Powerful Platforms with Windows CE”. The other books in the library are

CT_No

NAME

ATHR1

W-20

Building Poweful Platforms with Windows CE

James Y. Wilson

W-21

Windows CE 3.0 Application Programming

Nick Grattan

W-25

Programming Microsoft Windows CE

Douglas Boling

 

Based on my stay in Korea, I realized that in the developed countries such gadgets are very popular.  About 80 % of cars have GPS devices with above mentioned functionalities in their vehicles. Almost every youngster in the metro trains, are busy using such devices. Individuals are seen carrying devices other than the mobile phone which may be for playing games or have an IPTV or other such functionalities.  Why can’t the user have one device that will have both the functionality of mobile devices and also have games and a facility for IPTV, and at the same time, it gives the required performance at the competitive cost.

Embedded devices take input from touch screens and buttons as well. These inputs are sent to the operating system in the form of key code. The operating system converts the key code into the message / event and passes it on to the active application. In devices that display system’s home screen having buttons for multiple applications, the user can switch between the applications, the key codes are passed on to the home application that puts the message / event in the queue of the active application. The home application runs in the background. Home application determines which of the two applications can run, which application should get killed on the activation of other application.

Hardware:

So far we have discussed about the applications written for customized embedded devices using operating systems. Other than this, if one is designing and manufacturing hardware, the device manufacturers using Windows CE operating system have to perform tests using Windows Logo Test kit, that helps them to get their devices certified from Microsoft to get the required performance bench mark.  http://www.google.co.in/search?hl=en&q=Logo+Test+Kit+(LTK)+&meta

One of the leading mobile device manufacturer‘s study showed that, although their device has great features and UI, it does not succeed in the market due to the code which has a high battery.  So also with when writing game applications, care has to be taken to avoid high battery consumption. This becomes the major hurdle when selling the device. If you take the Nokia charger, any new device from Nokia can be charged using the same charger, while that of another manufacturers’ would require different chargers for different devices.

Reference: Blogs on http://dipanshumansingka.spaces.live.com

/////////////////////

http://www.howtoselectguides.com/dotnet/obfuscators/#dp_methods

////////////////////

Parameters to analyse the test automation tool

Commercial 
                 Commercial Stability
                 Market Share
Cost Constraints
                 Onetime cost
                 Ongoing Cost
                 Additional H/W
                 Additional S/W
                 Internal Cost
Quality Constraints
                 Shared License
                 Documentation Supplier
                 Help Online
                 Tool Integration with other product
                 Additional Skill level required
Training      
                 Free Training
                 Training Offshore
Tool Test    
                 Implementation
                 Construct Product model
                 Additional Scripting Required
                 Re-run test for compatibility
                 Integration test
                 Performance Measures
                 Data Driven test
                 Synchronization
                 Object Identification
          Support
 
//////////////////////

About dipanshumansingka

find me on linkedin facebook twitter
This entry was posted in Computers and Internet. Bookmark the permalink.

Leave a comment