Introduction
The Design Patterns section has now been substantially
expanded - although not with actual code examples it does offer some insights into
the theory and motivation of Design Patterns - briefly tracing its history from
Alexander to GoF.
This is the personal website of Paul Austrem, I am currently
working on my PhD at the University of Bergen. Besides being my personal webpage,
this website aims to provide practical and usable information on the topic of software
architecture and design for mobile information systems. Mobile information systems
are becoming more and more widespread and commonplace as the technological infrastructure
for their use is gradually materializing. E.g. through the deployment of HSDPA, Wi-Max, city covering
Wi-Fi connectivity, etc.
My PhD research work is part of the M3W project and
is focused on enabling end-user development and end-user tailoring through tailored requirements engineering techniques and the use of a design pattern space.
Motivation
The paradigm of
SOA (service-oriented architecture) has spawned many new and novel
challenges for software developers, at the same time it provides the oppurtunity
to build software
solutions that are far more adaptable, flexible and interoperable.
The following image outlines teh conceptual (very high level) structure and collaboration
architecture of a SOA:
SOA conceptual architecture - reproduced from
http://lists.w3.org/Archives/Public/www-ws-arch/2002Sep/0180.html
Mobile information systems will in the same manner give way to new challenges since it introduces an environment and manner of use that is vastly dissimilar to the
use known from traditional informtion systems. Some of the main challenges wil relate
to the very nature of the mobile information system, as users move around they may
during different times have access to different connectivity and thus varying signal
quality. Furthermore the environment in which the user will be conducting his or
her work may change, for instance in a noisy environment it would be more pertinent
to have information presented in a visual way as opposed to audio. However, these
are challenges that reside at the actual presentation level, and are not given greater
attention on this website. The information on this website is concerned with presenting
the ongoing research work of Paul G. Austrem, wherein the main focus is on software architecture, modelling,
business processes and requirements engineering that enables collaborative and mobile
work for knowledge workers.
Mobile workers, or more specifically mobile knowledge workers have a need for timely
access to information
in order to conduct their work tasks correctly. Examples of
users working in such environments are doctors, real-estate brokers, oil rig workers,
etc. The needs of the workers may evolve over time as work processes may be altered or depending on the actions of other knowledge workers the needs of any given knowledge worker may change.
Thus any mobile information system will have to be highly adaptable, as the information
needs of workers change. When end-users have procured a mobile information system
it will be in their best interest to be able to themselves make modificaitons to
accomodate these new information needs. Hence, the mobile information system
should leverage an architecture that supports this; this is where the design pattern space can be utilized at the middleware level to ensure that the
architecture is flexible and adaptable.
It is intended that the pattern space can be used by both the original mobile information
system developers and by the end-user developers after deployment. Whereas end-user
tailoring is a lighter form of adaptation, it could be as easy as the end-user just
specifying a new query through a GUI tool, end-user development is a more substantial
and complex undertaking. Essentially it could involve the end-user developing new,
or extending existing functionality, not only at an information level, but also
by adding new functionality. For isntance if a company utliizes GPS as part of their
mobile information system, they may over time maybe wish to add functionality that
allows users to retrieve maps, or AR i(augmented-reality) nformation based on their
geographic location. Adding such functionality would require the end-user to develop
new functionality. If the original middleware is developed with flexibility and
extension in mind, then the architectural fundaments for "hooking in" new services
should be easily available. However, developing such functionality would in addition
require the end-user to write the necessary implementation, either through using
an MDA tool and generating customizable code, or coding from scratch. Regardless
of which way the developer implements it, (s)he will still have to make decisions
as to whether the application should run on the server, or on the mobile device
as an applicaiton? should it be available on the mobile-device in offline mode?
These are but a few of the questions the developer will have to resolve, and depending
on their answer certain design solutions may turn out to be inappropriate. In such
case, the developer could resort to the design pattern space to aid in selecting
a suitable design solution. The design pattern space can in this respect be thought
of as a "bag of tools" that the developer can select from. In this case the tools
come in the form of design knowledge, and creates an abstraction that the novice/end-user
developer can more easily grasp.
The industry standard today is to utilize web-services as the point to point connection
between providers and consumers in a SOA. In this work I propose to follow this
paradigm, wherein web-services form the technical resolution of SOA communications.
The design patterns space will also provide patterns that are well suited to a SOA
in terms of point to point communications. Furthermore, much exciting research has,
and is currently being undertaken studying service orchestration, service composition
and how autonomos services can exchange and leverage QoS information and internal
QoS requirements when brokering and negogiating with service providers. These will
be important factors for a mobile information system, wherein the nature of the
business process will dictate the level of QoS. This work will take this under consideration
when developing the design pattern space.
Requirements engineering techniques will also play an important role. Firstly, research
indicates that requirements engineering is a very important process in terms of
enabling end-user development and end-user tailoring. It enables the end-user to
see the whole picture and also aids in exploring and establishing boundaries and
limitations related to the end-users specific domain. I propose that a novel challenge
in terms of mobile information systems is in using business process modelling at
early stages of the requirements engineering, in order to help end-users see how
the prospect of mobility may affect their work processes. Some work processes may
become more "fluid" as the mobile worker can now perform work tasks anywhere and
anytime. This also introduces a whole set of challenges at the business process
level since some business processes may not be suited for mobility due to a variety
of reasons (company policy, local laws and regulations, user needs, competing companies,
etc.). I have written a paper concerning this aspect, you can find it in the
documents and papers section of this website.
|