CURRENT CHALLENGES
J2ME developers face several challenges. J2MEenabled smart phones generally have some software quality issues, and developers are likely to spend time solving problems resulting from the varying quality of J2ME implementations. Specific phone models can have their own bugs, forcing developers to maintain several parallel versions of their source code to support as many devices as possible.
This situation is inconsistent with the Java philosophy of “write once, run anywhere,” and it severely increases the complexity of mobile software development and maintenance. In our experience, MIDP 2.0 implementations have fewer bugs than MIDP 1.0 implementations. However, to cover as much of the market as possible, developers must consider all existing MIDP 1.0 devices. MIDP 2.0 devices still constitute a minority of all J2ME devices sold in recent years.
Insufficient testing
Many developers fail to recognize that J2ME devices can behave inconsistently. Testing J2ME applications on many different devices is critical to ensuring that security-related functionality meets expectations. Businesses that base their testing on only four or five devices are often surprised when their application does not run correctly on other devices. In our opinion, too many businesses neglect the testing phase and let their customers do the beta testing. For such a strategy to succeed, the application must be unique and customers must be both enthusiastic and understanding.
To truly appreciate how J2ME phones operate, developers should test several devices from each major vendor, with each version of a vendor’s development platform represented in the set of test devices. Of course, testing 40 to 50 or more devices is expensive. Businesses thus must carefully balance the cost of testing with the risk of releasing an application that might not function properly on some devices.
Permanent bugs
Desktop users commonly download patches from Microsoft Windows Update or similar Web sites to solve security issues and fix bugs in software. Mobile phone vendors also release new software versions, but these generally do not reach consumers who have already bought the device. In most cases, users must take their mobile phone to a repair shop to have a software upgrade performed. Since few people actually do this, the bugs on a new mobile phone usually stay there for the device’s lifetime. However, a user who buys the same phone a year later will probably get a newer software version.
With mobile phone viruses starting to appear, there is a growing need for a patching solution that lets consumers upgrade the phone software themselves, similar to what they hopefully do with their desktop systems.
Resource management
Although smart phones have more memory, processing power, network bandwidth, and disk space than standard mobile phones, they are still a resource-constrained platform compared to the desktop. In addition to traditional functionality, developers must thus consider effective resource utilization to make user-friendly mobile applications.
Defensive programming is the key to creating a well-functioning application. For example, a program can query available runtime memory and storage memory while executing to ensure that the device has enough memory to carry out the program’s oper原文请找腾讯752018766辣,文-论'文.网
http://www.751com.cn ations. Otherwise, if the device runs out of memory, it will show an error message and terminate the application, giving the user the impression that an error occurred when in fact the application did not adapt to the available resources.
Scarce resources limit developers’ options, as functionality-rich security libraries can be too complex to bundle with an application. After all, if a J2ME implementation had the capacity to store and run such a library, it could have included one in the first place. The use of these libraries is not impossible, but older devices might not have the capacity to install and run the application.
Responsive applications
Applications must be responsive to provide a positive user experience. To achieve this goal, intimate knowledge of J2ME devices’ inner workings is helpful, since mobile phones behave differently. One example is actively triggering garbage collection to reclaim memory from unused objects. In most cases, running a garbage collector in the background will minimally impact the application, but some devices will freeze for a few seconds while collecting memory, which is probably not what the developer wants or expects.
Multithreading is also important when developing applications for mobile phones. A program’s execution flow is event-driven, so the main thread must be idle and ready to handle events. Time-consuming operations such as lengthy calculations or network communication should thus occur in a separate thread to retain a responsive user interface. This should be familiar to those developing graphical user interface applications on the desktop, as the same UI versus non-UI thread considerations apply.
上一页 [1] [2] [3] [4] [5] [6]
J2ME网络安全挑战英文文献及翻译 第6页下载如图片无法显示或论文不完整,请联系qq752018766