Home

About Me

Documents and Papers

Architectures

Design Patterns
Creational
Behavioral
Structural

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 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.   

 

This site is W3C CSS Validated copyright Paul Austrem (c) 2007This site is W3C XHTML 1.0 Transitional Validated