As companies look to reap the benefits of providing mobile enterprise applications, they are sure to come across some of the many challenges that are commonplace in the current state of mobile computing. These challenges do not reflect any particular vendor solution, but rather are inherent in mobile computing today. By understanding these challenges, companies will be able to make better decisions as to which devices, networks, and mobile architectures are best suited for their particular solution.

Oddly enough, many of the challenges are raised by the very technologies that enable mobile solutions: mobile devices, wireless networks, and software infrastructure. In a way this does make sense, since these technologies represent new methods of computing, introducing complexities that development teams may not have experience with. Actually, as the challenges are investigated in more depth, it is clear that many of them represent the relative immaturity of the wireless industry, and will be minimized as the market continues to evolve.

Wireless Network Issues

Even though wireless access is not a requirement for a mobile solution, it is often considered one of the primary challenges of implementing mobile applications. This is because it affects all aspects of the solution, including design, development, and deployment. Even when companies are building an application that will not initially take advantage of wireless connectivity, they usually want to plan for its introduction in a later phase of the application's life cycle. Wireless network issues have to be incorporated into the preliminary planning stages so future adoption is possible. The following are some of the issues with wireless networks that have to be considered when a solution is being developed:

  • Coverage and penetration. Wireless coverage is not pervasive. Wireless operators typically provide coverage in areas of higher population density, surrounding a particular geography. Even when the physical geography has network coverage, there is no guarantee that the signal can penetrate physical barriers such as buildings or tunnels. These interruptions can wreak havoc on applications that are not designed to handle such circumstances.

  • Bandwidth. The speed of wireless connections can differ dramatically depending on the wireless protocol being used. Some of the early wireless networks have very slow data transfer rates, around 9.6 kilobits per second (Kbps), while more modern networks may surpass 56 Kbps.

  • Latency. Sometimes even more important than bandwidth is network latency. Latency is defined as the time it takes for a request to reach the target server. Many users blame poor performance on bandwidth, when it is really the latency in the network that is taking the majority of the connection time. For every round-trip to the enterprise server, network latency can add between 1 and 30 seconds to the overall connection time. The amount of traffic affects latency, so during peak periods of usage, latency will be the highest.

  • Reliability. Dropped connections are common among wireless networks. This can lead to usability issues for certain types of applications. Many of the reliability issues are related to coverage and penetration of the network.

  • Cost. The cost of wireless connectivity can sometimes be prohibitive. Some networks charge by connection times, while others charge based on the amount of data transferred.

  • Lack of standards. Each network provider maintains different network protocols for connecting to wireless devices. Some of these are IP-based, while others are not. This issue is more profound in North America and Asia-Pacific where the leading network providers are implementing several competing protocols. In Europe, there is more of a consensus on network protocols, leading to less complexity.

These wireless network issues have to be addressed on all levels of application design. The mobile device will work only with specific wireless networks, so you have to consider the wireless network during device selection phase. Network issues also affect the type of application that should be deployed. It is important to design the mobile application with wireless challenges in mind. Some mobile architectures are better suited for today's networks than others. (Thorough information on wireless networks is provided in Chapter 3, "Wireless Networks," and a summary of the mobile application architectures is provided in Chapter 4, "Mobile Application Architectures.")

Mobile Device Diversity

The type of device selected is paramount to the success of the mobile application. It is critical that the devices match the types of application being developed. So before selecting which device is most appropriate, you have to ask yourself the following questions:

  • What type of data access is required? Is wireless required? If so, is an integrated modem required, or is an add-on component suitable?

  • What type of application is going to be developed? Is it a smart client business application, email and messaging, or a wireless Internet application?

  • How does the device connect to the enterprise? Does it use wireless connections or is it cradle-based?

  • Which mobile operating systems do we want to use? On which operating systems do we have experience developing?

  • Who is going to use this device? Does it have to be ruggedized to withstand a little punishment or is regular protection adequate?

  • How long does the device have to last without recharging? Does the user have the ability to charge it periodically during the day, once daily, or only every few days?

  • What form factor does this device need to have? What type of data input is required? Is a mobile phone suitable or is a PDA or laptop required?

  • What cost is acceptable?

These are just a few of the questions that need to be addressed before being able to choose the correct device(s). Once a device (or set of devices) has been selected, the development team will have to address some challenges. These include selecting the type of application that works with the mobile operating system employed by the devices, being able to integrate with wireless gateways, learning the APIs for the messaging technology being used, and designing the application to take advantage of the limited screen size and input mechanisms on the device. Very often this requires some degree of knowledge beyond what many developers currently possess.

Sometimes, however, it may not seem like you are choosing a device as much as it is chosen for you. If your company already has equipped your sales force with a certain device, or if the geographic area you are targeting has an extremely limited wireless characteristic, you may feel as if you have no choice. With m-commerce solutions, when a company identifies and targets an end-user group, it often will not have the ability to choose which device that group will use. For instance, if a bank wants to target a certain clientele to provide special mobile services to that group, it will have to determine an application that best fits within the broad range of devices that its customer base is already using.

One final challenge with the device diversity is the management of all of these devices and the applications on the devices. Organizations need to define a device management strategy early in the deployment of mobile solutions before the mobile environment gets too chaotic. If multiple mobile operating systems are supported, a solution needs to be found that provides a single environment for managing all platforms you are deploying.

Software Infrastructure Choices

With the vast number of mobile devices and network connectivity options, it is important to select a software platform that will work effectively with other parts of your solution. This may involve having the ability to create wireless Internet applications using a variety of markup languages, having a persistent datastore with synchronization capabilities, or having mobile messaging services.

Based on the application being developed and which devices it is going to be deployed to, there may be a preference for the server platform that is being used. Is a Java 2 Enterprise Edition (J2EE) platform best suited for your environment? Or is a .NET solution from Microsoft a better choice? For the application on the device, does it have to have offline capabilities or is a WAP online solution acceptable? Each platform has its strengths and weaknesses. You need to find one whose strengths meet your core requirements. This task can prove to be difficult, as mobile and wireless software is constantly changing to meet the growing demands for mobile solutions and to adhere to emerging mobile standards.

Some other concerns that have to be addressed include the following:

  • Mobile and wireless security

  • Introduction of new services, such as location-based services

  • Support of the communication protocols being used

  • Integration with existing enterprise applications and data

  • Support for current, and possibly future, device selections that may be made

  • Development team expertise

All of these aspects of a mobile platform have to be considered when implementing a mobile solution. Additionally, it is a recommended that you anticipate future enhancements you may want in your solutions and adopt a platform that is moving in a similar direction. This may initially seem to be a daunting task, but it is not as difficult as it appears. Mobile and wireless technologies are currently converging on a defined set of standards that are being adopted by network operators, device manufacturers, and software infrastructure vendors alike. This will not happen overnight, but as the mobile and wireless market matures, it will continue to move in the right direction.