This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
The master thesis describes the prototype of an application for home shopping by means of a Smartphone. The application takes the needs of elderly and handicapped people into account by putting special emphasis on the design of the user interface. Products are ordered by scanning the barcode on their package, the orders are sent to a web server either via direct data connections or in case no data connection is available by SMS and an SMS gateway.
Modern mobile phones possess three powerful capabilities: computing, communication, and sensing. The solution is based on the combination of these capabilities to read and decode the barcodes of products and interact with an external web application to create and process an order for a direct home delivery system.
Rapid ageing of Europe's population is posing challenges to the society and economy. The region's old-age dependency ratio (the number of people aged 65 and over relative to those between 15 and 64) is projected  to double to 54 percent by 2050, meaning that the EU will move from having four persons of working age for every elderly citizen to only two. Affordability, access, accessibility, skills, motivation and unwillingness to embrace new technologies are the main obstacles preventing most Europeans from benefiting from the information society in the area of ICT especially among elderly people. The main cause of this is the lack of awareness of the opportunities, user needs and insufficient sharing of information and experiences. 
AAL online shopping can improve the quality of life of elderly people at home and reduce the need of caretakers, personal nursing services or the transfer to nursing homes. This project will therefore have a clear impact in increasing older persons' autonomy by ensuring that they do not need to leave their preferred environment in order to get their basic needs especially those with mobility health issues, the online ordered products can be delivered directly to their homes by the online stores.
The architecture of the system described in this paper is summarized in Fig.1 and building blocks of the system are explained in detail in the following sections.
Figure 1: System architecture
One of the most critical factors in the design of the Smartphone application is the decision on the correct level of interactivity between the user and the application. For the elderly and ageing people limited screen size, navigation restrictions and broad audience experience levels should be considered carefully.  The use of simple and fairly large menus has been adopted in this application.
The camera device and application processor in the mobile phone are necessary hardware components for this system while Java and PHP, Hypertext Preprocessor, will be used to realise client application.
Barcode reader and image processing
A barcode  is a way to display information in a way that machines, rather than humans, can easily read. The simplest barcodes are made up of a series of parallel vertical bars and spaces, see figure 2 below. These are called linear bar codes. The entire barcode is arranged in a line, this is a representation of a number- which is sometimes written underneath below it.
Every barcode starts with a special character  , called a Start Code indicating the beginning of the code and ends with a Stop Code indicating that it has reached the end of the barcode.
EAN 13 (European Article Numbering) is the most commonly used code for numbering retail products in Europe. 
Figure 2: Anatomy of a barcode 
It is officially administered by the International Article Numbering Association. The association issues 13 digit numbers, each comprising a 2 or 3 digit country code (known as flag), a 4 or 5 digit manufacturer number, a 5 digit product number and a check digit. The 13 digit symbol can take on a 2 or 5 digit add on. The Article Numbering Associations has published a full specification which defines the bar-code structures, allowed sizes and permissible tolerances of EAN bar codes. There is a check digit at the end of a code, used to determine whether it has been properly decoded .
Processing of EAN code reorganization consists of three procedures ,
(1) Defining of threshold as pre-processing,
(2) Detecting a black bar using spiral search method, and
(3) Finding the sampled scanning line perpendicular to the detected bar in phase 2
These parallel black bars are used to recognize the area of the barcode; it is assumed that the center of the picture includes part of the code area, because the computation cost of searching the barcode area is reduced by this assumption.
Current mobile phones implement various new kinds of applications such as taking photos, and shooting movies by using embedded camera devices. However, the system architecture of mobile phones has been changed by the semiconductor vendors. Very recent generations of phone devices possess only one main processing unit which is called a baseband processor, but the computation power is not enough for the newer applications which combine audio and visual data. The application revolution has added an extra processor called an application processor into the newer mobile phones. From this background, the current high-end mobile phones contain two processors a baseband processor, which works for voice digital signal processing, protocol control, power management, and fundamental functions, and an application processor, which works for extra application such as movie codec, still photo codec and resizing, and other extra applications. The application processor defines the characteristics of mobile phones at present. 
The J2ME will be used for the client while PHP will be used for web application. Android platform has been chosen because it is open source. The Android is a software stack for mobile devices that includes an operating system, middleware and key applications. The Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.
The application architecture is designed in a such a way so as to simplify the reusing of components; any application can publish its capabilities and any other application may then make use of those capabilities (subject to security constraints enforced by the framework). This same mechanism allows components to be replaced by the user. It includes a set of core libraries that provides most of the functionality available in the core libraries of the Java programming language .
Zxing (pronounced "zebra crossing"), also an open-source, multi-format 1D/2D barcode image processing library implemented in Java will be used.
The camera device and application processor are necessary hardware components for this system. The application processor is needed to implement the camera interface, LCD controller, DSP for image processing, and application host CPU for real-time computations (Figure 1). The application processor works for displaying of the menu and preview in the display and computing of code recognition and decoding in real-time. With these systems, the user can control the position of the camera and decide the capture timing .
Android is a software stack for mobile devices that includes an operating system, middle-ware and key applications. The Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language . All developers have full access to the same framework APIs used by the core applications.
Figure 1 Android Architecture 
By providing an open development platform, Android offers developers the ability to build extremely rich and innovative applications. Developers are free to take advantage of the device hardware, access location information, run background services, set alarms, add notifications to the status bar, and much, much more.
Developers have full access to the same framework APIs used by the core applications. The application architecture is designed to simplify the reuse of components; any application can publish its capabilities and any other application may then make use of those capabilities (subject to security constraints enforced by the framework). This same mechanism allows components to be replaced by the user.
Underlying all applications is a set of services and systems, including:
A rich and extensible set of Views that can be used to build an application, including lists, grids, text boxes, buttons, and even an embeddable web browser.
Content Providers that enable applications to access data from other applications (such as Contacts), or to share their own data .
A Resource Manager, providing access to non-code resources such as localized strings, graphics, and layout files.
A Notification Manager that enables all applications to display custom alerts in the status bar.
An Activity Manager that manages the lifecycle of applications and provides a common navigation back stack.
Android includes a set of C/C++ libraries used by various components of the Android system. These capabilities are exposed to developers through the Android application framework. Some of the core libraries are listed below:
System C library - a BSD-derived implementation of the standard C system library (libc), tuned for embedded Linux-based devices
Media Libraries - based on Packet Video's OpenCORE; the libraries support playback and recording of many popular audio and video formats, as well as static image files, including MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG
Surface Manager - manages access to the display subsystem and seamlessly composites 2D and 3D graphic layers from multiple applications
LibWebCore - a modern web browser engine which powers both the Android browser and an embeddable web view
SGL - the underlying 2D graphics engine
3D libraries - an implementation based on OpenGL ES 1.0 APIs; the libraries use either hardware 3D acceleration (where available) or the included, highly optimized 3D software rasterizer
FreeType - bitmap and vector font rendering
SQLite - a powerful and lightweight relational database engine available to all applications
Android includes a set of core libraries that provides most of the functionality available in the core libraries of the Java programming language.
Every Android application runs in its own process, with its own instance of the Dalvik virtual machine. Dalvik has been written so that a device can run multiple VMs efficiently. The Dalvik VM executes files in the Dalvik Executable (.dex) format which is optimized for minimal memory footprint. The VM is register-based, and runs classes compiled by a Java language compiler that have been transformed into the .dex format by the included "dx" tool. The Dalvik VM relies on the Linux kernel for underlying functionality such as threading and low-level memory management.
Android relies on Linux version 2.6 for core system services such as security, memory management, process management, network stack, and driver model. The kernel also acts as an abstraction layer between the hardware and the rest of the software stack.
ZXing (pronounced "zebra crossing") is an open-source, multi-format 1D/2D barcode image processing library implemented in Java. This library enables the usage of the built-in camera on mobile phones to photograph and decode barcodes on the device supporting the following code types among others; 
UPC-A and UPC-E
EAN-8 and EAN-13
This library is divided into several components;
core: The core image decoding library, and test code
javase: J2SE-specific client code
android: Android client, called Barcode Scanner
androidtest: Android test app
android-integration: Supports integration with our Barcode Scanner app via Intent
zxingorg: The source behind zxing.org/w
zxing.appspot.com: The source behind our web-based barcode generator
 Multi-format 1D/2D barcode image processing library with clients for Android, Java.
SMS messages are small number of packed bytes sent over the operator networks. They have a limit in the body of 160 characters. Apart from the body, there is also the User Data Header that can be modified in an SMS; A UDH is very useful because you can send "invisible text messages to mobile application. An online gateway will be used to send the coded message. Many companies provide SMS gateway services, and most of them have an interface to send raw binary SMS messages. Kannel  which works as a free SMS gateway for GSM networks will be used. The only requirement with Kannel is the need to have the User Data Header and the body to be separated.
3 Related work
ShopSavvy  is a Smartphone application that allows you to use your phone's camera to scan barcodes to find the best prices for online and local items.
SnapTell  application on Android supports image recognition as well as barcode scanning. The user can take a picture the cover of a supported product or scan the barcode of a product to instantly view information on the product.
The above current available systems use application features of barcode scanner; this is really interesting concept which leads to a less application-centric view of mobile phones operation towards a more feature-centric view. Instead of developing an entire application, developers can develop specific features that perform a very specific task. These features can be used by other applications to create new and interesting functionalities.
The innovation in this project comes from the usage of the encoding and decoding functionality of the barcode scanner and being able to electronically transport the output code to an online store web server securely for further processing.