Terminal mobility support mechanisms regard the terminal as the endpoint for communication and this has been the traditional view in the single-service telephony systems as well. Personal mobility shifts the focus from the terminal to the user. From this viewpoint, the terminal becomes a means for transferring the information from the network to the user and for enabling the user to interact with the network. When placing a phone call, the number is linked to the terminal and not the user. In the future, users will have identifiers that are independent of the terminal they use but can be resolved into the terminal address.
When personal mobility becomes a reality, the users' operational environment becomes dynamic and has to be taken into consideration for any communication. One example regarding the emerging mobile Internet infrastructure is the composition of vastly different network technologies with equally different characteristics. Most services on the Internet have been designed with certain assumptions about network characteristics such as a certain bandwidth, minimum delay, etc. Much of the content assumes capabilities of the end hosts such as screen size, color depth, codec availability, etc.
The mobile Internet is moving toward a situation where these assumptions often are broken due to the variations in terminals (PCs, laptops, PDAs, mobile phones, etc.) and the differentiation in access network characteristics. Today, users connect to the Internet through such different networks as Ethernet, cable modems, dial-up modems, ISDN, GSM, and satellite connections. To cope with this heterogeneity, recent proposals introduced proxy-based solutions that tailor the media to suit the overall characteristics of the environment. ,  Furthermore, TCP assumes that all lost packets are due to congestion in the network. In wireless networks, this does not hold true. Fluctuations in packet loss are, in these networks, more likely to be transient effects of the signal-to-noise ratio than dependent on congestion. Therefore, recent suggestions place performance enhancing proxies (PEPs) in the radio access networks.  These proxies implement a modified TCP solution or at least behave differently than standard end-to-end TCP.
This discussion illustrates the need for systems that can describe and categorize the user's operational environment so that applications can adapt to it. It is critical to know by what means and under which circumstances a user can be contacted before attempting it.
One interesting aspect of the personal mobility systems presented earlier in this chapter is that all the systems that support personalization use mobile agent technologies in their design. This is not a coincidence as the characteristics of mobile agents provide many benefits in supporting personal mobility.
Mobile agent technology is regarded by many as the next step from the object-oriented paradigm, and is gaining popularity among software designers. Mobile agents are software agents that are not bounded to the system where they commence their execution. Once they have been created by a host, they can suspend their execution at any time, transport from one execution environment to another, and resume their execution.  This ability, in certain realizations, allows mobile agents to overcome network latency and reduce network traffic. In addition, mobile agents are autonomous; they have the ability to decide for themselves when and where to migrate. This characteristic allows mobile agents to operate asynchronously and independently of the process that created them, which can aid in making a system robust and fault tolerant. These two characteristics - autonomy and mobility - provide a good basis for designers to design any type of personal mobility framework.
One of the many benefits with mobile agents is that they are naturally heterogeneous. Because mobile agents are generally system and transport layer independent and are dependent only on their execution environment, they provide an optimal condition for seamless system integration.
According to the mobile agent list published in [MOBI02],  currently there are more than 70 different mobile agent systems available and this number is growing steadily. The contributions on the development of these systems come from both the research and commercial communities. As each system is designed with different philosophies and built for different purposes, each one has its own characteristics, such as migration and agent communication mechanisms. Despite their differences, many mobile agent systems have one thing in common: they use Java as the development and supporting programming language. The introduction of Java has helped solve many of the issues associated with mobile agents, such as performance, security, and agent migration. , 
Although mobile agents can provide many benefits to mobility systems design, the technology has not yet gained widespread commercial use. Issues such as standardization, security, and performance still need to be addressed before mobile agents can be used in a wider context. Despite these issues, the technology has proved to be a useful tool in solving the problems associated with the area of personal mobility.
As illustrated earlier, the current personal mobility systems provide support in two very distinctive areas. They support either contactability or personalization. To the best of our knowledge, currently there are no personal mobility systems that provide complete personal mobility support. Today's devices are no longer restricted to perform just one function. A computer terminal can act as a communicating device with voice over IP and PSTN gateways, and a communicating device has sufficient processing capability to perform operations that used to be restricted to desktop PCs. Thus, having a framework that supports only one aspect of personal mobility is insufficient.
It is likely that a user would like to keep all personal settings and at the same time be reached by others when migrating from one location to another. Thus, providing true personal mobility with the systems that have been made thus far will require the integration of methods of providing personal communications such as Mobile People Architecture with a scheme to support personalization of the user's operating environment, such as NetChaser. However, as each of these schemes was designed with objectives using different philosophies, combining them is at best cumbersome, and will lead to complex compatibility problems.
The Integrated Personal Mobility Architecture (IPMoA)  is a personal mobility system that attempts to address the above-mentioned issue by introducing an overlay network that caters to various personal mobility services through the use of mobile agent technology. The services the system supports include interpersonal communication (location support), customized Internet services, remote application execution, and file synchronization (personalization support).
Ardon, S. et al., Mobile Aware Server Architecture: A DIstributed Proxy Architecture for Content Adaptation, INET2001, Stockholm, 2001.
Fox, A. et al., Adapting to network and client variation using active proxies: lessons and perspectives, IEEE Personal Communications, Aug. 1998.
"Performance Enhancing Proxies," http://search.ietf.org/internet-drafts/draft-ietf-pilc-pep-05.txt
Lange, D. and Oshima, M., Programming and Deploying Java Mobile Agents with Aglets, Addison-Wesley, Reading, MA, 1998.
The Mobile Agent List, http://mole.informatik.uni-stuttgart.de/mal/mal.html
Jung, E. et al., Mobile Agent Network for Support Personal Mobility, Proc. International Conference on Information Network (ICOIN), 1998, pp. 131–136.
Di Stefano, A. and Santoro, C., NetChaser: Agent Support for Personal Mobility, IEEE Internet Computing, Mar.–Apr. 74–79, 2000.
Thai, B. et al., Integrated personal mobility architecture: a complete personal mobility solution, MONET Journal on Personal Environment Mobility in Multi-Provider and Multi-Segment Networks, submitted, 2002.