  Context: Mobile devices have become an essential element in our daily lives,
even for connecting to the Internet. Consequently, Web services have become
extremely important when offering services through the Internet. However,
current Web services are very inflexible as regards their invocation from
different types of device, especially if we consider the need for them to be
adaptable when being invoked from mobile devices. Objective: In this paper, we
provide an approach for the creation of flexible Web services which can be
invoked transparently from different device types and which return subsequent
responses, as well as providing the client's adaptation as a result of the
particular device characteristics and end-user preferences in a completely
decoupled way. Method: Aspect-Oriented Programming and model-driven development
have been used to reduce both the impact of service and client code adaptation
for multiple devices as well as to facilitate the developer's task. Results: A
model-driven methodology can be followed from system models to code, providing
the Web service developer with the option of marking which services should be
adapted to mobile devices in the UML models, and obtaining the decoupled
adaptation code automatically from the models. Conclusion: We can conclude that
the approach presented in this paper provides us with the possibility of
following the development of mobile-aware Web services in an integrated
platform, benefiting from the use of aspect-oriented techniques not only for
maintaining device-related code completely decoupled from the main
functionality one, but also allowing a modularized non-intrusive adaptation of
mobile clients to the specific device characteristics as well as to final user
preferences.
