creating a profile sharing system utilizing the bluetooth...

54
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 8 th , 2004 Faculty Advisor : Dr. Tony White, Ph. D, School of Computer Science, Carleton University

Upload: others

Post on 14-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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

Page 2: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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.

Page 3: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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.

Page 4: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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

Page 5: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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

Page 6: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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.

Page 7: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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.

Page 8: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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.

Page 9: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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.

Page 10: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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

Page 11: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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.

Page 12: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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.

Page 13: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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.

Page 14: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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.

Page 15: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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.

Page 16: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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

Page 17: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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.

Page 18: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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.

Page 19: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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.

Page 20: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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.

Page 21: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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.

Page 22: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

Profile Sharing System Utilizing the Bluetooth Connection

22 / 54

2.5 Use Cases

Figure 1: User opens the application

Page 23: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

Profile Sharing System Utilizing the Bluetooth Connection

23 / 54

Figure 2: User closes the application

Page 24: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

Profile Sharing System Utilizing the Bluetooth Connection

24 / 54

Figure 3: User opens the profile editor.

Page 25: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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.

Page 26: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

Profile Sharing System Utilizing the Bluetooth Connection

26 / 54

Figure 5: User cancels an modification to a profile.

Page 27: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

Profile Sharing System Utilizing the Bluetooth Connection

27 / 54

Figure 6: User deletes a profile.

Page 28: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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.

Page 29: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

Profile Sharing System Utilizing the Bluetooth Connection

29 / 54

Figure 8: Display saved profiles.

Page 30: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

Profile Sharing System Utilizing the Bluetooth Connection

30 / 54

2.6 Process Flow Diagram

Figure 9: The process flow of the application.

Page 31: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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")> _

Page 32: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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

Page 33: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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.

Page 34: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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.

Page 35: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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.

Page 36: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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

Page 37: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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.

Page 38: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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.

Page 39: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

Profile Sharing System Utilizing the Bluetooth Connection

39 / 54

Figure 11: Site Navigation

Page 40: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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.

Page 41: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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”

Page 42: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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/

Page 43: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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

Page 44: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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

Page 45: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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

Page 46: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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

Page 47: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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

Page 48: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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

Page 49: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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

Page 50: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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

Page 51: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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

Page 52: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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

Page 53: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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

Page 54: Creating a Profile Sharing System Utilizing the Bluetooth ...people.scs.carleton.ca/~arpwhite/documents/honours... · Profile Sharing System Utilizing the Bluetooth Connection 2

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