creating a profile sharing system utilizing the bluetooth...
TRANSCRIPT
Profile Sharing System Utilizing the Bluetooth Connection
1 / 54
School of Computer Science, Carleton University Honours Project:
Creating a Profile Sharing System Utilizing the Bluetooth Connection Name : William Corbett Student Number : 262329 Date : April 8th, 2004 Faculty Advisor : Dr. Tony White, Ph. D, School of
Computer Science, Carleton University
Profile Sharing System Utilizing the Bluetooth Connection
2 / 54
Abstract
This project is about Bluetooth and how it can be used to transfer information. In
this project we will be transferring a ‘Personal Profile’ of a user to other users. The idea
would be to get users to learn about others and perhaps find people who have similar
interests. A ‘Personal Profile’ is just one implementation of this idea; which could be
expanded to the commercial sector where information could be shared to customers, as
they walk into a store, to give them a complete product listing and store layout. During
this project I discovered an interesting fact about programming with the Bluetooth
protocol, which ended up changing the approach to the project. I discovered that it is not
always possible to bypass using the official Bluetooth SDK for a particular driver as I
was unable to create and use a COM port connection from my personal computer to my
IPAQ HP4350.
Profile Sharing System Utilizing the Bluetooth Connection
3 / 54
Acknowledgement
First off, I would like to thank my supervisor Dr. Tony White for the help
and backing he gave me when my project came to an almost show-stopping
moment. This project has been a learning experience for me. Managing my time
has been something that I have had to realize fully in order to allow this project to
be a success. I am glad I stayed on top of this or I may not have learned of the
Widcomm driver issue until much later in the project. I would like to say that I
am happy at what I have accomplished in this project, the work that went into it,
and the final result. Although, the final result is not what I had envisioned at the
beginning, I feel that the idea behind it could be far-reaching and beneficial.
Profile Sharing System Utilizing the Bluetooth Connection
4 / 54
Table of Contents 1.0 Introduction............................................................................................... 7
1.1 Bluetooth................................................................................................................... 8 1.1.1 Overview............................................................................................................ 8 1.1.2 Pervasive Computing ....................................................................................... 10
1.2 Bluetooth vs. IEEE 802.11x.................................................................................... 15 2.0 Project Part I ........................................................................................... 17
2.1 Requirements .......................................................................................................... 17 2.2 Handhelds that Passed the Requirements ............................................................... 22 2.3 Application.............................................................................................................. 23
2.3.1 Web Server <-> Web Page .............................................................................. 24 2.3.2 Stand Alone...................................................................................................... 27
2.4 Requirements .......................................................................................................... 30 2.4.1 Primary............................................................................................................. 30 2.4.2 Secondary......................................................................................................... 31
2.5 Use Cases ................................................................................................................ 32 2.6 Process Flow Diagram ............................................................................................ 40
3.0 Project Part I Conclusion ........................................................................ 43 3.1 Stand-Alone ............................................................................................................ 43
3.1.1 Bluetooth COM Ports ...................................................................................... 43 3.1.2 Widcomm Drivers............................................................................................ 46 3.1.3 Conclusion ....................................................................................................... 47
4.0 Project Part II .......................................................................................... 48 4.1 Web Server <-> Web Page ..................................................................................... 48
4.1.1 Design .............................................................................................................. 49 4.1.2 Layout .............................................................................................................. 50 4.1.3 Web Pages:....................................................................................................... 51 4.1.4 Include Files:.................................................................................................... 53 4.1.4 Database........................................................................................................... 54 4.1.5 Site Navigation................................................................................................. 55
5.0 Conclusion .............................................................................................. 56 References..................................................................................................... 58 Appendix A: PDA Details. ........................................................................... 59 Appendix B: Project Database Documentation ............................................ 62 List of Figures Figure 1: User opens the application ................................................................................ 32 Figure 2: User closes the application ................................................................................ 33 Figure 3: User opens the profile editor. ............................................................................ 34 Figure 4: User saves an edited profile............................................................................... 35 Figure 5: User cancels an modification to a profile. ......................................................... 36 Figure 6: User deletes a profile. ........................................................................................ 37 Figure 7: Transferring a profile......................................................................................... 38 Figure 8: Display saved profiles. ...................................................................................... 39
Profile Sharing System Utilizing the Bluetooth Connection
5 / 54
Figure 9: The process flow of the application. ................................................................. 42 Figure 10: Layout diagram for each webpage on the website. ......................................... 51 Figure 11: Site Navigation ................................................................................................ 55 List of Tables Table A-1: PDA Details.................................................................................................... 60
Profile Sharing System Utilizing the Bluetooth Connection
6 / 54
1.0 Introduction
Profile sharing is about getting to know one another and to learn about strangers to
possible meet and begin a new relationship. The application would be used to transfer
personal profiles onto a handheld Personal Digital Assistant (PDA) to anyone within the
Bluetooth range. The application would be able to transfer the user’s profile, receive
other profiles, store received profiles, display the stored profiles, and allow modification
of the user’s profile. Bluetooth was the best choice for this due to its availability as a
standard feature on a majority of handheld devices.
Profile Sharing System Utilizing the Bluetooth Connection
7 / 54
1.1 Bluetooth
1.1.1 Overview
The Bluetooth specification was designed to meet certain areas of the wireless
market:
1. Provide a low power solutions to wireless connectivity
2. Allow the secure communication between any type devices and their peripherals
with a Bluetooth chip
3. Allow for ad hoc networking between devices.
Bluetooth is able to operate using as little as 1 milliwatt (mw) of power to transmit up
to 10m. Greater range can be achieved by pumping the power up to 100 milliwatt (mw)
to allow for up to 100m transmission. This makes Bluetooth an ideal protocol to use to
replace cables that connect devices together. Handhelds can sync to the PC without the
need to be connected allowing synchronization to be completed without the need to sit
down at your desk or even pull the handheld out of your bag. Contact lists between your
handheld and your phone can stay synchronized without the need to connect them
together by cable or connect through a 3rd party device such as a PC. Data transfer
between devices can reach up to 1 Megabit per second (Mb/s) allowing transfer of even
voice to run smoothly.
Profile Sharing System Utilizing the Bluetooth Connection
8 / 54
Secure communication between devices is a must in today’s world. Bluetooth’s
application layer allows the use of authorization and encryption. Built in security allows
the use of Bluetooth in various environments that require the transmission of classified or
protected information like hospitals, where the convenience of wireless needs to be
utilized.
Bluetooth’s natural ability to create ad hoc network connections expands its
possible implementations to beyond simply replacing cables. This will be discussed in
more detail in the next section.
1.1.2 Pervasive Computing
Pervasive computing is the creation and sharing of information among informal
networks by devices that are not necessarily apparent to a user. Bluetooth’s ability to
create ad hoc networks, between devices within range of each other, allows Bluetooth to
participate, if not help drive, the pervasive computing world. The application of
pervasive computing utilizing the Bluetooth protocol could be used in:
1. Hospitals
a. Beds can be used to transmit a patient’s vital signs to monitors in
proximity to the bed for monitoring.
Profile Sharing System Utilizing the Bluetooth Connection
9 / 54
b. Patients can wear a device (Similar to or perhaps replacing a medicare
bracelet) that will inform a doctor of allergies to medicine.
c. Rooms can be setup to allow doctors entering the room to be sent the
patients record for diagnosis and allow the doctor to send back the
results and recommendation to nurses.
d. Patient prescriptions can be ordered and signed for by doctors on the
go between rooms and have the medicine ordered and shipped to the
correct patient.
e. Templates can be setup to automatically keep documents inline with
policies, keep an audit trail for administration, and minimize errors
related to ineligible writing or improper procedure.
2. Retails Stores
a. Store maps can be read by shoppers including the location of items in
a searchable format, allowing for quicker shopping and more satisfied
customers.
b. Shoppers can be notified of sales immediately upon entering the store.
i. Shoppers can have filters on their device looking for certain
items, minimizing searching time.
c. Receipts can be received to eliminate the need for a paper version.
3. Restaurants
a. Patrons can browse the menu while they wait to be seated.
Profile Sharing System Utilizing the Bluetooth Connection
10 / 54
b. Specials can be broadcast to prospective patrons as they pass by the
restaurant
i. Patron’s device can be configured to seek out certain types of
foods as well.
4. Travel
a. Tourists can browse a cities sites, attractions, museums, restaurants,
hotels, etc upon entering the city limits.
i. Providing a map and directions if needed.
b. Drivers can be informed of construction, traffic congestion up ahead,
or any number of useful information about the area the driver is
currently in.
5. Shipping and Transportation
a. Packages/Containers can tell the system what they are to reduce time
at customs.
b. Packages/Containers can tell the system where they are going to
minimize shipping errors.
c. Tractor Trailer Drivers can be told the height of upcoming bridges and
notified if a detour will be required.
d. Items in a warehouse can notify the system where they are located,
what they contain, who they belong to, when they got there, and when
Profile Sharing System Utilizing the Bluetooth Connection
11 / 54
they are to leave and where. This would help to eliminate the error of
items that are physically in one place but electronically in another.
The above mentioned implementation of the Bluetooth protocol in the
pervasive computing world is but a fraction of the possibilities. Connections can
be made securely when needed for implementation in areas like a Hospital or
plainly for the transmission of a store inventory.
Profile Sharing System Utilizing the Bluetooth Connection
12 / 54
1.2 Bluetooth vs. IEEE 802.11x
Bluetooth and IEEE 802.11x both provide connectivity between devices but they
differ in their areas of usefulness. IEEE 802.11x was designed to work as a regular LAN,
but without the cables whereas Bluetooth is to connect any type of device to one another.
Two of the glaring differences are speed and distance. IEEE 802.11x is able to transfer
up to 11 Megabit per second (Mb/s) whereas Bluetooth can only currently manage up to
1 Megabit per second (Mb/s). Also, Bluetooth has a range of about one-third that of IEE
802.11x; 30 feet to 100 feet respectively. On the other hand, Bluetooth requires only
1mw of power instead of the 1 W used by IEEE 802.11x. Bluetooth was not designed to
be in complete competition for IEEE 802.11x but was to be used as a connection means
between devices in order to avoid the use of cables. Bluetooth can be used to connect
your computer to your PDA, Web Cam, Keyboard, Mouse, Microphone, Headphones,
and even storage media; replacing the use of cables or infrared technology.
Profile Sharing System Utilizing the Bluetooth Connection
13 / 54
2.0 Project Part I
2.1 Requirements
Handheld units are quickly becoming integrated with our society. Handheld
devices are used as day timers, music players, portable application platforms, and almost
anything else that you could think of. In order to be able to perform some or all of these
functions the hardware involved is becoming more and more powerful. In my search for
a Handheld that would allow me to do my project as well as anything else that I would
use it for, I wasn’t just going to buy it for my project, I had to create some requirements
that would help me narrow down my choices. The following is a list of requirements; I
believe are necessary, that I created after much thought and research:
1. Minimum 64mb built on RAM.
a. Ideally, I wanted to have as much memory available to me as possible,
but with the use of a memory card I could expand it an additional 2
gigabytes at 200US (Largest at the time), which would be more than
enough for me. 64mb would leave me with enough to test and
complete my project without requiring any additional expenditure.
Profile Sharing System Utilizing the Bluetooth Connection
14 / 54
2. Built on Bluetooth
a. Simply enough, having built on Bluetooth connectivity would save me
the cost, as well as the use of an expansion slot, that would be required
from the purchase of a 3rd party card. Also, I would be sure to avoid
any possible hardware or software issues that may arise from using a
3rd party expansion card.
3. Compact Flash expansion slot; or, (Low Priority)
a. Compact Flash expansion slot is purely for the low cost memory cards
that are available as well as the ability to use this format for expansion
card such as GPS module, Wi-Fi module, or anything else.
4. MMC and/or SD expansion slot
a. MMC and Secure Digital would allow me to have another memory
expansion card or perhaps both a memory card and a device card.
SDIO (a newer form of SD) allows for the use of camera’s and other
devices on the handheld
5. USB power and connection cable.
a. A USB capable handheld allows for greater transfer rates between the
PC and the handheld than is possible over serial. Also, this port could
be used to recharge the battery.
Profile Sharing System Utilizing the Bluetooth Connection
15 / 54
Additionally, I had some requirements that were not necessary to the project, but
would help to discern a clear winner for purchase, as I would like to be able to use this in
my daily life long after the project was finished.
6. Well lit viewing screen.
a. Simply allows the use of the device at any light level.
7. Long battery life
a. Allows the user to go longer between recharging and helps to combat
the drain that wireless connections can have on the handheld.
8. Easy integration with Outlook
a. I use Outlook as my main email client. Having a PDA that integrates
with Outlook makes life simpler.
9. Touch screen
a. Allows the device to use a pointer and simulate the use of a mouse.
This would make life easier when writing for both PC and PDA the
same interface style.
Profile Sharing System Utilizing the Bluetooth Connection
16 / 54
2.2 Handhelds that Passed the Requirements
After going through the various models available my number of choices fell
drastically. Here are the models that I passed or came close to meeting all my
requirements (Specifications are available in Appendix A):
1. Sony PEGUX50
2. HP IPAQ H4150
3. HP IPAQ H4350
4. HP IPAQ H1940
5. HP IPAQ H2210
6. HP IPAQ H5550
7. Palm Tungsten T3
After looking at the project requirements, my own requirements, and the cost of
each of the units, I decided on purchasing the HP IPAQ H4350. The HP IPAQ
H4350 comes equipped with both 802.11b and Bluetooth for wireless connections, a
Secure Digital (SD) slot for expansion (Memory, Digital Camera, etc.), has a touch
screen, good brightness levels, an internal memory of 64MB, uses the Intel 400MHz
processor, and comes with the Microsoft Pocket PC 2003 Operating System
(PPC2003).
Profile Sharing System Utilizing the Bluetooth Connection
17 / 54
2.3 Application
There were two ways that I had looked at implementing this project; first was a
web page interface connecting to a web server; secondly was a stand alone application
written in a high level programming language. To really discern as to what type of
architecture I would be looking at working with I would have to decide on the platform I
would be working on. It would be pointless to decide on using a web server design if the
OS did not have a web browser installed.
2.3.1 Web Server <-> Web Page
In this design we would create a web page that would handle all the interface and
functionality of the program. The web server would process the page’s requests and
return the resulting data to be parsed and displayed by the web page. Conceptually this
design would work well, but by itself it lacks the ease of implementing the actual
Bluetooth connections. Also, it would be difficult to implement the ‘client’ searching that
would need to be done in order scan for connections to share with. The bonus of this
method is the simplicity of creating the user interface for display and input into the
database housing the information. This design would also allow it to be run from any
handheld capable of running a browser and connecting to the Internet.
Profile Sharing System Utilizing the Bluetooth Connection
18 / 54
2.3.1.1 Programming Languages
I will only address the programming languages that I know and would be able to
implement in this project.
1. HTML
a. All servers and browsers will support this language.
b. Limited in its inability to be dynamic.
i. JavaScript allows HTML to be more dynamic and access a
database.
2. Java
a. Can be run on any platform containing a java compiler.
b. Dynamic display
c. Interact with database
3. ASP
a. Some web servers support this language.
b. Dynamic display
c. Interact with database
d. Bluetooth support.
Profile Sharing System Utilizing the Bluetooth Connection
19 / 54
e. Make function calls to other applications
4. PHP
a. Some web servers support
b. Dynamic display
c. Interact with database
d. Make function calls to other applications
2.3.2 Stand Alone
The application would be self contained and able to perform all the necessary
functions as well as presenting the user with a good interface. The process in creating this
application in some language for a particular Operating System could take some time and
possibly be very difficult. Also, this does present me with the problem that the
application may be limited in its ability to run on any other OS than the one it was
designed for. With the release of .Net which has built in libraries for handling Bluetooth
connections and supporting PocketPC 2003 development, I believe that this would be the
best way to go should I choose the Stand Alone approach.
Profile Sharing System Utilizing the Bluetooth Connection
20 / 54
2.3.2.1 Programming Languages
I’ve only address the languages that I know and would be able to implement in
this project.
1. Visual Basic
a. Rapid Application development
b. Bluetooth libraries
c. Can call external executables.
2. Java
a. See Java in previous section.
3. Visual C++
a. Vast examples and libraries (including Bluetooth)
b. Can call other executables.
c. More portable to various platforms
Microsoft’s .Net Studio features the ability to create applications for handheld
devices quickly and efficiently. Unfortunately, .Net applications will only run on Pocket
PC 2003 OS equipped devices. This would remove all but the IPAQ devices from my list.
Profile Sharing System Utilizing the Bluetooth Connection
21 / 54
2.4 Requirements
2.4.1 Primary
1. Establish connection between Bluetooth Devices.
2. Transfer profile file between Bluetooth Devices.
3. Parse profile file (File will be in XML Format)
4. Store profile information into database
5. Display profiles
6. Delete profiles
7. Create Personal Profile
8. Modify Personal Profile
2.4.2 Secondary
1. “Users” filtering options (Allow/Disallow transfer to unwanted people)
2. Create own XML schema for profiles
3. Transfer created XML schemas to other devices.
Profile Sharing System Utilizing the Bluetooth Connection
22 / 54
2.5 Use Cases
Figure 1: User opens the application
Profile Sharing System Utilizing the Bluetooth Connection
23 / 54
Figure 2: User closes the application
Profile Sharing System Utilizing the Bluetooth Connection
24 / 54
Figure 3: User opens the profile editor.
Profile Sharing System Utilizing the Bluetooth Connection
25 / 54
User
User Clicks “Save Profile”
User Saves Edited Profile
Fields are Validated
Updated Profile saved to Database
Profile Edit Screen Main Screen
Error Message Displayed All Fields Valid?No Yes
Figure 4: User saves an edited profile.
Profile Sharing System Utilizing the Bluetooth Connection
26 / 54
Figure 5: User cancels an modification to a profile.
Profile Sharing System Utilizing the Bluetooth Connection
27 / 54
Figure 6: User deletes a profile.
Profile Sharing System Utilizing the Bluetooth Connection
28 / 54
User
Connection Detected
Profile Transfer
Connection Established
Transfer Profile
Store profile in Database
Error Message
Main Screen
Successful?
Successful?
Successful?
Yes
No
Yes
Yes
No
No
Display New Profile? Profile Display Screen
No
Yes
Figure 7: Transferring a profile.
Profile Sharing System Utilizing the Bluetooth Connection
29 / 54
Figure 8: Display saved profiles.
Profile Sharing System Utilizing the Bluetooth Connection
30 / 54
2.6 Process Flow Diagram
Figure 9: The process flow of the application.
Profile Sharing System Utilizing the Bluetooth Connection
31 / 54
3.0 Project Part I Conclusion
3.1 Stand-Alone
I began this project by choosing the ‘Stand Along” application design as specified
above in the documentation. In order to create the application that would connect to
another Bluetooth device I wanted to test out the sending and receiving information
before doing anything else. I would send the information over a COM port. This is where
I discovered my problem.
3.1.1 Bluetooth COM Ports
Bluetooth is capable of connecting to another Bluetooth device via a COM Port
where as the Bluetooth drivers would handle the actual connections and to the
programmer it would seem like a simple serial connection was made. It is a fairly simple
procedure to connect to another device via the COM ports.
Here we import the function from coredll.dll with the function similarly defined at
msdn.microsoft.com [http://msdn.microsoft.com/library/default.asp?url=/library/en-
us/wceobjst/html/cerefCreateFile.asp]
<DllImport("coredll.dll")> _
Profile Sharing System Utilizing the Bluetooth Connection
32 / 54
Private Shared Function CreateFile(ByVal lpFileName As String, _
ByVal dwDesiredAccess As Integer, _
ByVal dwShareMode As Integer, _
ByVal lpSecurityAttributes As Integer, _
ByVal dwCreationDisposition As Integer, _
ByVal dwFlagsAndAttributes As Integer, _
ByVal hTemplateFile As Integer) As Integer
Using the above imported function we can open a ‘file’ by specifying the
outgoing COM port as the file name.
inFile = CreateFile("COM" & inPort & ":", _
&HC0000000, 0, 0, 3, 0, 0)
The COM port that would be used is the COM port defined in your Bluetooth
settings. It should be noted that you need both an in and out port for communication on
the handhelds. Once the creation is successful sending and receiving information would
be as simple as writing and reading from the respective in or out file.
3.1.2 Widcomm Drivers
Drivers are more or less unique to an individual device. It is here where the first
part of the project came to a halt. Although I am unable to prove beyond a doubt that the
Widcomm drivers are specifically designed to fail when not being called by the
Widcomm drivers, it is the only conclusion that I have been able to come to. I came to
Profile Sharing System Utilizing the Bluetooth Connection
33 / 54
this conclusion after my own extensive testing, research into and testing of others code
dealing with serial communication. Testing this problem including copying and
compiling code that was tested as working by others on devices using different drivers..
Widcomm sells an SDK that would most likely have made this entire application work as
it was designed, but I do not have the financial support to spend in excess of two-
thousand dollars US to purchase the SDK.
3.1.3 Conclusion
As a result of my theory as to the problem in working with the Widcomm drivers,
I have come to the conclusion that it is no longer possible for me to create a stand-alone
application that will utilize the Bluetooth connection to other Bluetooth devices. I took
this matter to my supervisor, Professor White, to discuss what had transpired and the
possible routes that would be available to me in order to avoid dropping the project
altogether. It was decided and approved that instead of directly utilizing the Bluetooth
connection I would create server-client architecture, using a web server and Internet
client that would use the built in Bluetooth to establish the connection. This would be as
defined in the “Web Server <-> Web Page” section in my proposal and listed in a
pervious section of this document.
Profile Sharing System Utilizing the Bluetooth Connection
34 / 54
4.0 Project Part II
4.1 Web Server <-> Web Page
It was roughly nearing the middle of February when I found myself back into the
design stage of the project. Due to the time constraints I will have to work fairly often to
ensure that the project is completed on time in order for me to receive a grade and
graduate. With this in mind I wasted no time in designing the layout and beginning the
development stage. To avoid a lengthy development process I was forced to only offer
simple functionality, but allow the possibility of added features should time permit.
Keeping in mind that the main viewers of this website would be people who were
viewing it on a handheld, I designed the site with minimum graphics in mind as well as
minimum text input.
4.1.1 Design
4.1.1.1 Language
This project will be written in HTML and ASP. The database will be a Microsoft
Access database and will be connected to via SQL and using the OLE libraries.
Profile Sharing System Utilizing the Bluetooth Connection
35 / 54
1. HTML will be responsible for the layout and visual look of the site.
2. ASP will provide the behind the scenes functionality to bring it all together.
3. SQL will allow for the collection of data from the database.
4. Access will be used to create the database file that will be used in the project.
4.1.1.2 Requirements
1. Creation of Site Account
2. Creation of Account Profile
3. Modification of Site Profile
4. View other Profiles
5. Accounts are password protected.
4.1.2 Layout
With above requirements in mind I decided to utilize ‘frame’ style layout. I
would create a ‘Title Bar’ that would remain static at the top of each page. Also, on each
page would be a ‘Menu Bar’ that would allow the user to move from page to page. It
would change only marginally to allow the use to login and logout of their account.
Profile Sharing System Utilizing the Bluetooth Connection
36 / 54
The site will consist of seven pages, two includes and a database file that will be
created in Microsoft Access 2002 (MS Access 2002).
Title Bar
Menu Bar
Page Information
Figure 10: Layout diagram for each webpage on the website.
4.1.3 Web Pages:
The web pages use a mix of HTML and ASP to provide the user with the interface
and functionality for each pages purpose.
1. DEFAULT.ASPX
a. Will check for site compatibility (Cookie support) and redirect to the
main.aspx page if user meets requirements.
2. MAIN.ASPX
Profile Sharing System Utilizing the Bluetooth Connection
37 / 54
a. Page will welcome the user to the site and present them with the options to
login or create an account.
3. LOGIN.ASPX
a. Allows a user to log into their account
b. Create a cookie with the login information upon a successful login.
c. Redirects to the users profile.aspx page upon successful login
4. PROFILE.ASPX
a. Displays the users profile.
b. Allows for modification to the users information
c. Allows for modification to the users interests list.
5. LOGOUT.ASPX
a. Logs the user out of the system.
6. VIEW.ASPX
a. Allows users to browse other user’s profiles.
7. NEWACCOUNT.ASPX
a. Allows the users to setup a account with login user and password.
Profile Sharing System Utilizing the Bluetooth Connection
38 / 54
4.1.4 Include Files:
These files are included into each page as an ASP Webcontrol.
1. TOOLBAR.ASCX
a. Simply displays the title of the page and a some blurb of the sites
intentions.
2. MENUBAR.ASCX
a. Displays the menu bar to the user allowing them to move around the site.
4.1.4 Database
Microsoft Access 2002 was used to create the database file for this project. I used
Access because it allows quick and easy creation of tables, links, and keys. It also can be
“Up Sized” to a Microsoft SQL Server database through a built in Wizard should the
need arise. A complete description of the tables and their fields can be found in Appendix
B.
4.1.5 Site Navigation Navigation of the site will be possible through the ‘Menu Bar’ that is present on
every single page. Additional links are on the initial page for users to either create an
account or login to the website.
Profile Sharing System Utilizing the Bluetooth Connection
39 / 54
Figure 11: Site Navigation
Profile Sharing System Utilizing the Bluetooth Connection
40 / 54
5.0 Conclusion
The implementation of Bluetooth in this project brought to light, for me, a variety
of future applications that are viable business applications. Applications in the business
world for exchange of information, advertising, tracking, and feedback can be enhanced
and made more efficient through the use of Bluetooth strengths of low power use and
secure, device discovery application layer. These applications of Bluetooth can be made
into business models that could go on to be a very profitable service to the economy. At
the same time of being profitable, the use of technology in this way could help to increase
its technology use and acceptance at all levels of society.
For my project, I created a space where people would be able to share interests
and meet others who have similar interests. For me this was an academic exercise in both
the use of technology in social groups and the application of my education in systems
design and implementation. Although, the change of direction midway through my
project cause me to change the complexity of the final implementation, I feel that the end
result still captures the essence of what I had set out to accomplish. Advancing the use of
technology as a means to create new social groups is something I feel is a worthy cause.
For future study, it would be interesting to see some of the ideas put for the
Pervasive Computing section into implementation with the use of Bluetooth as its means
of communication. In order to program one of those ideas it should be noted from my
experience that a Bluetooth SDK will be needed and most likely have to be purchased.
This project has been a learning experience for me. Before this, I was mostly used
to working on projects with a known outcome and the challenge was getting there. Now,
I have learned that with good support and staying on schedule even if a project changes
mid stride you will be in a position to handle the shift.
Profile Sharing System Utilizing the Bluetooth Connection
41 / 54
References
1. Bluetooth Specifications, Bluetooth SIG (http://www.bluetooth.com)
2. Widcomm (http://www.widcomm.com)
3. Oraskari , Jyrki, Helsinki University of Technology, “Bluetooth versus WLAN
IEEE 802.11x”
Profile Sharing System Utilizing the Bluetooth Connection
42 / 54
Appendix A: PDA Details.
Information was collected from the manufacturer’s website. Additional
information can be gathered by visiting the products webpage listed below.
1. Sony PEGUX50
a. http://www.sonystyle.ca/commerce/servlet/ProductDetailDisplay?storeId=
10001&catalogId=10001&langId=-1&productId=170682
2. HP IPAQ H4150
a. http://www.hp.ca/products/static/IPAQ/fa174a/features.php
3. HP IPAQ H4350
a. http://www.hp.ca/products/static/IPAQ/fa172a/features.php
4. HP IPAQ H1940
a. http://www.hp.ca/products/static/IPAQ/fa105a/features.php
5. HP IPAQ H2210
a. http://www.hp.ca/products/static/IPAQ/fa103a/features.php
6. HP IPAQ H5550
a. http://www.hp.ca/products/static/IPAQ/fa107a/features.php
7. Palm Tungsten T3
a. http://www.palmone.com/us/products/handhelds/tungsten-t3/
Profile Sharing System Utilizing the Bluetooth Connection
43 / 54
Table A-1: PDA Details
Specification Sony PEGUX50
HP IPAQH4150
HP IPAQH4350
HP IPAQH1940
HP IPAQ H2210
HP IPAQH5550
Palm Tungston
T3 Price($) 999 599 699 399 549 899 399 Memory (MB) 104 64 64 64 64 128 64
Processor 400MHz Intel
400MHz Intel
266MHz Intel
400MHz Intel
400MHz Intel
400MHz Intel
Wireless (Wi-Fi) Yes Yes Yes No No Yes No
Bluetooth Yes Yes Yes Yes Yes Yes Yes SD Slot Yes Yes Yes Yes Yes Yes Yes CF Slot No No No No Yes No No OS Palm OS 5.2 PocketPC
2003 PocketPC
2003 PocketPC
2003 PocketPC
2003 PocketPC
2003 Palm OS
5.2.1
Profile Sharing System Utilizing the Bluetooth Connection
44 / 54
Appendix B: Project Database Documentation (Information was created using the Microsoft Access 2002 built in database documenter)
Table: tbl_InterestList
Properties
DateCreated: 2/21/2004 12:38:05 PM DefaultView: Datasheet
GUID: {guid {0B0D33EF-83CA-4508- LastUpdated: 2/21/2004 12:38:05 PM
B0F2-208CCCD0FA5E}}
NameMap: Long binary data OrderByOn: False
Orientation: Left-to-Right RecordCount: 7
Updatable: True
Columns
Name Type Size
ID Long Integer 4
AllowZeroLength: False
Attributes: Fixed Size, Auto-Increment
CollatingOrder: General
ColumnHidden: False
ColumnOrder: Default
ColumnWidth: Default
DataUpdatable: False
OrdinalPosition: 0
Required: False
SourceField: ID
SourceTable: tbl_InterestList
Profile Sharing System Utilizing the Bluetooth Connection
45 / 54
Name Text 50
AllowZeroLength: True
Attributes: Variable Length
CollatingOrder: General
ColumnHidden: False
ColumnOrder: Default
ColumnWidth: Default
DataUpdatable: False
DisplayControl: Text Box
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 1
Required: False
SourceField: Name
SourceTable: tbl_InterestList
UnicodeCompression: True
Table Indexes
Name Number of Fields
ID 1
Clustered: False
DistinctCount: 7
Foreign: False
IgnoreNulls: False
Name: ID
Primary: False
Required: False
Unique: False
Fields:
ID Ascending
PrimaryKey 1
Clustered: False
DistinctCount: 7
Profile Sharing System Utilizing the Bluetooth Connection
46 / 54
Foreign: False
IgnoreNulls: False
Name: PrimaryKey
Primary: True
Required: True
Unique: True
Fields:
ID Ascending
User Permissions
admin Delete, Read Permissions, Set Permissions, Change Owner, Read Definition,
Write Definition, Read Data, Insert Data, Update Data, Delete Data
Group Permissions
Admins Delete, Read Permissions, Set Permissions, Change Owner, Read Definition,
Write Definition, Read Data, Insert Data, Update Data, Delete Data
Users Delete, Read Permissions, Set Permissions, Change Owner, Read Definition,
Write Definition, Read Data, Insert Data, Update Data, Delete Data
Table: tbl_Profile_Interests
Properties
DateCreated: 2/18/2004 3:05:07 PM DefaultView: Datasheet
GUID: {guid {4A0F5BB5-881C-4A85- LastUpdated: 2/21/2004 4:51:12 PM
A1F2-E600FCC9EA69}}
NameMap: Long binary data OrderByOn: False
Orientation: Left-to-Right RecordCount: 6
Updatable: True
Profile Sharing System Utilizing the Bluetooth Connection
47 / 54
Columns
Name Type Size
ID Long Integer 4
AllowZeroLength: False
Attributes: Fixed Size, Auto-Increment
CollatingOrder: General
ColumnHidden: False
ColumnOrder: Default
ColumnWidth: Default
DataUpdatable: False
Description: Tables Primary key
OrdinalPosition: 0
Required: False
SourceField: ID
SourceTable: tbl_Profile_Interests
ProfileID Long Integer 4
AllowZeroLength: False
Attributes: Fixed Size
CollatingOrder: General
ColumnHidden: False
ColumnOrder: Default
ColumnWidth: Default
DataUpdatable: False
DecimalPlaces: Auto
Description: Key from profile table
DisplayControl: Text Box
OrdinalPosition: 1
Required: False
SourceField: ProfileID
SourceTable: tbl_Profile_Interests
InterestID Long Integer 4
AllowZeroLength: False
Profile Sharing System Utilizing the Bluetooth Connection
48 / 54
Attributes: Fixed Size
CollatingOrder: General
ColumnHidden: False
ColumnOrder: Default
ColumnWidth: Default
DataUpdatable: False
DecimalPlaces: Auto
Description: Persons Interest
DisplayControl: Text Box
OrdinalPosition: 2
Required: False
SourceField: InterestID
SourceTable: tbl_Profile_Interests
Table Indexes
Name Number of Fields
ID 1
Clustered: False
DistinctCount: 7
Foreign: False
IgnoreNulls: False
Name: ID
Primary: False
Required: False
Unique: False
Fields:
ProfileID Ascending
ID1 1
Clustered: False
DistinctCount: 19
Foreign: False
IgnoreNulls: False
Name: ID1
Profile Sharing System Utilizing the Bluetooth Connection
49 / 54
Primary: False
Required: False
Unique: False
Fields:
ID Ascending
User Permissions
admin Delete, Read Permissions, Set Permissions, Change Owner, Read Definition,
Write Definition, Read Data, Insert Data, Update Data, Delete Data
Group Permissions
Admins Delete, Read Permissions, Set Permissions, Change Owner, Read Definition,
Write Definition, Read Data, Insert Data, Update Data, Delete Data
Users Delete, Read Permissions, Set Permissions, Change Owner, Read Definition,
Write Definition, Read Data, Insert Data, Update Data, Delete Data
Table: tbl_Profiles
Properties
DateCreated: 2/18/2004 3:03:42 PM DefaultView: Datasheet
GUID: {guid {97404C14-7A34-427A- LastUpdated: 2/21/2004 5:14:09 PM
9BF5-A60C88375AE7}}
NameMap: Long binary data OrderByOn: False
Orientation: Left-to-Right RecordCount: 3
Updatable: True
Columns
Name Type Size
Profile Sharing System Utilizing the Bluetooth Connection
50 / 54
ID Long Integer 4
AllowZeroLength: False
Attributes: Fixed Size, Auto-Increment
CollatingOrder: General
ColumnHidden: False
ColumnOrder: Default
ColumnWidth: Default
DataUpdatable: False
Description: Primary Key
GUID: {guid {E7AC0149-CF91-401A-9644-2BECC432BC64}}
OrdinalPosition: 0
Required: False
SourceField: ID
SourceTable: tbl_Profiles
Nick Text 50
AllowZeroLength: True
Attributes: Variable Length
CollatingOrder: General
ColumnHidden: False
ColumnOrder: Default
ColumnWidth: Default
DataUpdatable: False
Description: Nick Name
DisplayControl: Text Box
GUID: {guid {85D7545A-E095-49E8-BCEB-604757D08409}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 1
Required: False
SourceField: Nick
SourceTable: tbl_Profiles
UnicodeCompression: True
Profile Sharing System Utilizing the Bluetooth Connection
51 / 54
FName Text 50
AllowZeroLength: True
Attributes: Variable Length
CollatingOrder: General
ColumnHidden: False
ColumnOrder: Default
ColumnWidth: Default
DataUpdatable: False
Description: First Name
DisplayControl: Text Box
GUID: {guid {5BF0039E-1649-4B31-84AD-F68121759E21}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 2
Required: False
SourceField: FName
SourceTable: tbl_Profiles
UnicodeCompression: True
LName Text 50
AllowZeroLength: True
Attributes: Variable Length
CollatingOrder: General
ColumnHidden: False
ColumnOrder: Default
ColumnWidth: Default
DataUpdatable: False
Description: Last Name
DisplayControl: Text Box
GUID: {guid {85FE325B-C034-4362-92B8-89D82936ACC3}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 3
Required: False
Profile Sharing System Utilizing the Bluetooth Connection
52 / 54
SourceField: LName
SourceTable: tbl_Profiles
UnicodeCompression: True
Email Text 50
AllowZeroLength: True
Attributes: Variable Length
CollatingOrder: General
ColumnHidden: False
ColumnOrder: Default
ColumnWidth: Default
DataUpdatable: False
Description: Email Address
DisplayControl: Text Box
GUID: {guid {91A612E2-F9A7-49C3-819C-03B72A78796E}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 4
Required: False
SourceField: Email
SourceTable: tbl_Profiles
UnicodeCompression: True
Password Text 50
AllowZeroLength: True
Attributes: Variable Length
CollatingOrder: General
ColumnHidden: False
ColumnOrder: Default
ColumnWidth: Default
DataUpdatable: False
Description: Password Field
DisplayControl: Text Box
GUID: {guid {9FC2CD03-1DAE-4EDE-BBA1-73136EF8C9D1}}
Profile Sharing System Utilizing the Bluetooth Connection
53 / 54
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 5
Required: False
SourceField: Password
SourceTable: tbl_Profiles
UnicodeCompression: True
Table Indexes
Name Number of Fields
ID 1
Clustered: False
DistinctCount: 4
Foreign: False
IgnoreNulls: False
Name: ID
Primary: False
Required: False
Unique: False
Fields:
ID Ascending
PrimaryKey 1
Clustered: False
DistinctCount: 4
Foreign: False
IgnoreNulls: False
Name: PrimaryKey
Primary: True
Required: True
Unique: True
Fields:
ID Ascending
Profile Sharing System Utilizing the Bluetooth Connection
54 / 54
User Permissions
admin Delete, Read Permissions, Set Permissions, Change Owner, Read Definition,
Write Definition, Read Data, Insert Data, Update Data, Delete Data
Group Permissions
Admins Delete, Read Permissions, Set Permissions, Change Owner, Read Definition,
Write Definition, Read Data, Insert Data, Update Data, Delete Data
Users Delete, Read Permissions, Set Permissions, Change Owner, Read Definition,
Write Definition, Read Data, Insert Data, Update Data, Delete Data