Ανάπτυξη εφαρμογής για κινητά τηλέφωνα Friends in Range

dargbeachΛογισμικό & κατασκευή λογ/κού

9 Ιουν 2012 (πριν από 5 χρόνια και 3 μήνες)

750 εμφανίσεις




Δ
ΘΝΗΚΟ
Μ
ΔΣ΢ΟΒΗΟ
Π
ΟΛΤΣΔΥΝΔΗΟ

΢
ΥΟΛΖ
Ζ
ΛΔΚΣΡΟΛΟΓΩΝ
Μ
ΖΥΑΝΗΚΩΝ
Κ
ΑΗ
Μ
ΖΥΑΝΗΚΩΝ
Τ
ΠΟΛΟΓΗ΢ΣΩΝ

Σ
ΟΜΔΑ΢

Σ
ΔΥΝΟΛΟΓΗΑ΢

Π
ΛΖΡΟΦΟΡΗΚΖ΢

ΚΑΗ
Τ
ΠΟΛΟΓΗ΢ΣΩΝ










Αλάπηπμε εθαξκνγήο γηα θηλεηά ηειέθσλα

Friends

in

Range





ΓΗΠΛΩΜΑΣΗΚΖ ΔΡΓΑ΢ΗΑ


ηνπ



ΛΑΜΠΡΗΑΝΗΓΖ ΓΔΩΡΓΗΟΤ











Δπηβιέπσλ :

Σηκνιέσλ

΢ειιήο

Καζεγεηήο Δ.Μ.Π.







Αζήλα,
Οθη
ψβξηνο

2008

























Ζ ζειίδα απηή είλαη ζθφπηκα ιεπθή.


ΔΘΝΗΚΟ
ΜΔΣ΢ΟΒΗΟ ΠΟΛΤΣΔΥΝΔΗΟ

΢ΥΟΛΖ ΖΛΔΚΣΡΟΛΟΓΩΝ ΜΖΥΑΝΗΚΩΝ

ΚΑΗ ΜΖΥΑΝΗΚΩΝ ΤΠΟΛΟΓΗ΢ΣΩΝ

ΣΟΜΔΑ΢ ΣΔΥΝΟΛΟΓΗΑ΢ Π
ΛΖΡΟΦΟΡΗΚΖ΢

ΚΑΗ ΤΠΟΛΟΓΗ΢ΣΩΝ



Αλάπηπμε εθαξκνγήο γηα θηλεηά ηειέθσλα

Friends

in

Range






ΓΗΠΛΩΜΑΣΗΚΖ ΔΡΓΑ΢ΗΑ


ηνπ


ΛΑΜΠΡΗΑΝΗΓΖ ΓΔΩΡΓΗΟΤ






Δπηβιέπσλ :

Σηκνιέσλ

΢ειιήο

Καζεγεηήο Δ.Μ.Π.





Δγθξίζεθε απφ ηελ ηξηκειή εμεηαζηηθή επηηξνπή ηελ
29
ε

Οθησβξίνπ

2008
.





...................................


...................................


...................................

Σηκνιέσλ
΢ειιήο

Ησάλλεο Βαζηιείνπ

Νεθηάξηνο Κνδχξεο

Καζεγεηήο Δ.Μ.Π.

Καζεγεηήο Δ.Μ.Π.

Αλ.
Καζεγεηήο Δ.Μ.Π.




Αζήλα,
΢επηέκβξηνο

2008































...................................

ΛΑΜΠΡΗΑΝΗΓΖ΢ ΓΔΩΡΓΗΟ΢

Γηπισκαηνχρνο Ζιεθηξνιφγνο Μεραληθφο θαη
Μεραληθφο Τπνινγηζηψλ Δ.Μ.Π.


©
2008



All

rights

reserved







Πεξίιεςε

Ο ζθνπφο ηεο δηπισκαηηθήο εξγαζίαο ήηαλ ε αλάπηπμε
κηαο εθαξκνγήο γηα θηλεηά
ηειέθσλα ή άιιεο θνξεηέο ειεθηξνληθέο ζπζθεπέο πνπ ππνζηεξίδνπλ ηελ πιαηθφξκα Java
,
κε ζθνπ
φ ηελ πιεξνθφξεζε ηνπ ρξήζηε γηα ηελ ηνπνζεζία άιισλ ρξεζηψλ ηεο εθαξκνγήο.

Σ
ν ζχζηεκα πνπ αλαπηχρζεθε πεξηιακβάλεη εθηφο απφ ηελ εθαξκνγή γηα ηα θηλεηά
ηειέθσλα θαη κηα εθαξκνγή εμππεξεηεηή πνπ αλαιακβάλεη λα ζπληνλίδεη θαη λα παξαδίδεη
ζηηο εθαξκν
γέο πνπ ηξέρνπλ ζηα θηλεηά ηα θαηάιιεια θαηά πεξίπησζε κελχκαηα.
Πξσηαξρηθφ κέιεκα ηνπ ζπζηήκαηνο είλαη ε

εμαζθάιηζε ηεο

ηδη
σ
ηηθφηεηα
ο

ησλ ρξεζηψλ
ηνπ, έηζη παξέρεη ηνπο θαηάιιεινπο
κεραληζκνχο πνπ ην πεηπραίλνπλ
.

Μφιηο θάζε ρξήζηεο
νξίζεη κηα ιίζηα κε έκπ
ηζηνπο ρξήζηεο, κε ηνπο νπνίνπο επηζπκεί λα κνηξάδεηαη ηελ
πιεξνθνξία ηεο ηξέρνπζαο ζέζεο ηνπ, ην ζχζηεκα ηνπ δίλεη ηε δπλαηφηεηα λα εθηειεί
δηάθνξα εξσηήκαηα. Τπάξρεη ε δπλαηφηεηα λα ελεκεξψλεηαη γηα ηελ απφζηαζή ηνπ απφ
θάπνηνλ άιιν ρξήζηε, ή λα βιέπεη κ
ηα ιίζηα κε ηνπο πην θνληηλνχο ζε απηφλ ρξήζηεο, ή
ηέινο λα βιέπεη
ζε έλα ράξηε
ηελ ηνπνζεζία
θάπνηνπ ρξήζηε
.



Λέμεηο

Κιεηδηά
:

θνληηλνί θίινη,
θηλεηά ηειέθσλα,
ππεξεζίεο βαζηζκέλεο ζε ηνπνζεζία,
κνληέιν
client
-
server,
Java

micro

edition
,
GPS
, εληνπηζκ
φο
ζηίγκαηνο


























Ζ ζειίδα απηή είλαη ζθφπηκα ιεπθή.







Abstract

The scope of this thesis was the development of
an application for mobile phones, or
other electronic portable devices
implementing

the Java platform, which can inform
the
user
of the location of
other users of the application
.

The system we developed consists of
two
components: the client application
,
and
the
server application that coordinates the client
applications by delivering
appropriate messages to them. The primary objective of the
system is to ensure the privacy of its users, so it provides suit
able controls that allow users
to achieve this. As soon as each user defines a list of trusted co
-
users


ie.

users he allows to
acc
ess his location information


the system enables him access to perform certain
questions. It is possible to inquire about another user‟s location, to see a real time list of
nearby users, or to view a user‟s location on a map.



Keywords
:

friends in range
, mobile phones, location base
d services, client
-
server model, java micro
edition, GPS, positioning


























Ζ ζειίδα απηή είλαη ζθφπηκα ιεπθή.


Πίλαθαο πεξηερνκέλσλ

1

Δηζαγσγή

................................
................................
..............................

1

1.1

Γηαρείξηζε δεδνκέλσλ ζε θηλνχκελα αληηθείκελα
-

Location

based

services

..............
1

1.2

Αληηθείκελν δηπισκαηηθήο

................................
................................
...........................
1

1.2.1

Πεπιγπαθή πποβλήμαηορ

................................
................................
.......................
2

1.2.2

΢ενάπια επίλςζηρ
................................
................................
................................
...
2

1.3

Οξγάλσζε θεηκέλνπ

................................
................................
................................
.....
2

2

Αλάιπζε Απαηηήζεσλ ΢πζηήκαηνο

................................
...................

5

2.1

Απαηηήζεηο ΢πζηήκαηνο

................................
................................
...............................
5

2.1.1

Σο ιδανικό ζύζηημα

................................
................................
...............................
5

2.1.2

Σο ζύζηημα πος ςλοποιήθηκε

................................
................................
................
6

2.2

Πεξηγξαθή ΢πζηεκάησλ

................................
................................
..............................
7

2.2.1

Δθαπμογή
client

................................
................................
................................
....
8

2.2.2

Δθαπμογή
server

................................
................................
................................
.
19

2.2.3

Γιασείπιζη μέζω
web



Λειηοςπγία ςποζηήπιξηρ σαπηών

................................
....
23

2.2.4

Γιαγπάμμαηα ποήρ δεδομένων

................................
................................
.............
25

3

΢ρεδίαζε ΢πζηήκαηνο
................................
................................
.......

27

3.1

Αξρηηεθηνληθή

................................
................................
................................
............
27

3.2

Πεξηγξαθή Κιάζεσλ

................................
................................
................................
.
27

3.2.1

Δθαπμογή
client

................................
................................
................................
..
27

3.2.2

Δθαπμογή server

................................
................................
................................
.
31

3.2.3

Βάζη Γεδομένων

................................
................................
................................
.
33

3.2.4

Web

server

................................
................................
................................
..........
34

3.3

Πξσηφθνιιν επηθνηλσλίαο

................................
................................
.........................
36

4

Τινπνίεζε

................................
................................
..........................

43

4.1

Δλδηαθέξνληα ζεκεία πινπνίεζεο

................................
................................
.............
43

4.1.1

Δπαλήθεςζη απιθμού ηηλεθώνος
................................
................................
.........
43

4.1.2

Δνημέπωζη θέζηρ / Δπωηήμαηα θέζηρ

................................
................................
44

4.1.3

Τπολογιζμόρ αποζηάζεων

................................
................................
...................
46

4.1.4

Αποζηολή μηνςμάηων

................................
................................
..........................
47


[
ii
]


4.1.5

Γιασείπιζηρ λίζηαρ θίλων

................................
................................
....................
49

4.2

Πιαηθφξκεο θαη πξνγξακκαηηζηηθά εξγαιεία

................................
...........................
49

4.2.1

Πλαηθόπμερ ανάπηςξηρ

................................
................................
.......................
50

4.2.2

Δπγαλεία ανάπηςξηρ ζςζηήμαηορ

................................
................................
.........
52

5

Έιεγρνο

................................
................................
...............................

55

5.1

Μεζνδνινγία ειέγρνπ

................................
................................
................................
55

5.1.1

΢ενάπιο ελέγσος

................................
................................
................................
..
55

5.2

Αλαιπηηθή παξνπζίαζε ειέγρνπ

................................
................................
................
56

6

΢ρεηηθέο εξγαζίεο

................................
................................
..............

63

6.1

Παξεκθεξή ζπζηήκαηα

................................
................................
..............................
63

6.1.1

Loopt

................................
................................
................................
...................
63

6.1.2

Active

campus

................................
................................
................................
.....
63

6.1.3

Γιασείπιζη ζηόλος οσημάηων
................................
................................
...............
64

6.2

΢πζηήκαηα ζηα νπνία κπνξεί λα γίλεη επέθηαζε

................................
.......................
64

6.2.1

E
-
communities

................................
................................
................................
....
65

6.3

΢πζηήκαηα εληνπηζκνχ ζέζεο θαη ελαιιαθηηθέο ιχζεηο

................................
............
65

6.3.1

Place

Lab

................................
................................
................................
............
65

7

Δπίινγνο

................................
................................
.............................

67

7.1

΢χλνςε θαη ζπκπεξάζκαηα

................................
................................
........................
67

7.2

Μειινληηθέο επεθηάζεηο

................................
................................
............................
67

7.2.1

Δναλλακηικοί ηπόποι εύπεζηρ θέζηρ

................................
................................
....
68

7.2.2

Ανάπηςξη ζε διαθοπεηικέρ πλαηθόπμερ
................................
................................
68

7.2.3

Δμπλοςηιζμόρ πεπιεσομένος

................................
................................
................
69

8

Βηβιηνγξαθία

................................
................................
.....................

71

9

ΠΑΡΑΡΣΖΜΑ

................................
................................
...................

73

9.1

Δγθαηάζηαζε ζπζηήκαηνο

................................
................................
.........................
73

9.1.1

Δγκαηάζηαζη
server

................................
................................
............................
73

9.1.2

Δγκαηάζηαζη
client

................................
................................
.............................
77

9.2

Απαηηήζεηο ζε πιηθφ θαη ινγηζκηθφ

................................
................................
...........
79

9.3

Πεξηερφκελα CD

................................
................................
................................
........
80


[
iii
]



Δπξεηήξην

εηθόλσλ

Δηθφλα 2.1. Αλάιπζε ηνπ ζπζηήκαηνο ζε ππνζπζηήκαηα θαη ε κεηαμχ ηνπο επηθνηλσλία.

................................
.............................

7

Δηθφλα 2.2. Ζ αθνινπζία επηθχξσζεο ηνπ αξηζκνχ

ηειεθψλνπ ηνπ ρξήζηε. Γίλεηαη κφλν κηα θνξά, θαηά ηελ πξψηε εθηέιεζε
ηεο εθαξκνγήο.

................................
................................
................................
................................
................................
................

9

Δηθφλα 2.3. Ζ αθνινπζία αξρηθνπνίεζεο ηεο
εθαξκνγήο. Ζ παξαπάλσ νζφλε θαη νη εξσηήζεηο εκθαλίδνληαη ζε θάζε εθθίλεζε
ηεο εθαξκνγήο.

................................
................................
................................
................................
................................
................

9

Δηθφλα 2.4. Ζ θεληξηθή νζφλε ηεο εθαξκνγ
ήο
-
πειάηε.

................................
................................
................................
.................

10

Δηθφλα 2.5. Ο

John
είλαη

accepted,
ε

Helen
είλαη

blocked,
ελψ

ν

Tim
είλαη

pending.

................................
................................
...

11

Δηθφλα 2.6. Δπεηδή ν
John

είλαη
accepted
, εκθαλίδεηαη ε πιεξνθνξία γηα ηε ζέζε ηνπ, ελψ γηα ηελ
Helen

πνπ είλαη
κπινθαξηζκέλε, ε πιεξνθνξία είλαη κε δηαζέζηκε.

................................
................................
................................
......................

12

Δηθφλα 2.7. Πξνβνιή ράξηε ζέζεο θίινπ ζην θηλεηφ.

................................
................................
................................
...................

13

Δηθφλα 2.8. ΢ηα αξηζηεξά θαίλεηαη κέξνο ηεο ιίζηαο επαθψλ ηεο ζπζθεπήο απφ φπνπ έρνπκε επηιέμεη δχν, θαη δεμηά ε ιίζηα
θίισλ φπνπ νη πξνεγνπκέλσο επηιεγκέλεο επαθέο έρνπλ πξνζηεζεί ζε θαηάζηαζε “
pending
”.

................................
....................

13

Δηθφλα 2.9. Πξνζζήθε λένπ θίινπ κε πιεθηξνιφγεζε ζηνηρείσλ.

................................
................................
................................

14

Δηθφλα 2.10. Δηζεξρφκελα αηηήκαηα γηα λένπο θίινπο θαη δηεθπεξαίσζή ηνπο.

................................
................................
............

15

Δηθφλα 2.11. Ρπζκίζεηο ζέζεο.

................................
................................
................................
................................
.......................

16

Δηθφλα 2.12. α,β: ξπζκίζεηο / γ,ε εκθάληζε θνληηλψλ θίισ
λ / δ,ζη πιεξνθνξίεο απφζηαζεο.

................................
.......................

17

Δηθφλα 2.13. Γηαγξαθή απφ ηελ ππεξεζία.

................................
................................
................................
................................
....

18

Δηθφλα 2.14. Ζ θεληξηθή νζφλε ηεο εθαξκνγήο
-
εμππεξεηεηή.

................................
................................
................................
......

19

Δηθφλα 2.15. Δκθάληζε ράξηε κε ηηο ηνπνζεζίεο ηνπ ρξήζηε θαη ησλ επηιεγκέλσλ θίισλ ηνπ.

................................
....................

20

Δηθφλα 2.16. Ο πίλαθαο ζπλδξνκεηψλ ηεο ππεξεζίαο.

................................
................................
................................
..................

21

Δηθφλα 2.17. Πιεξνθνξί
α γηα λέα εηζεξρφκελε ζχλδεζε.

................................
................................
................................
.............

21

Δηθφλα 2.18. Ζ ιίζηα κε φια ηα κελχκαηα πνπ έρνπλ αληαιιαρζεί κεηαμχ
server
-
clients
.

................................
...........................

22

Δηθφλα 2.19. Σν δηάγξακκα νληνηήησλ


ζρέζεσλ ηεο βάζεο δεδνκέλσλ πνπ ρξεζηκνπνηείηαη.
................................
...................

23

Δηθφλα 3.1.
Block

δηάγξακκα θιάζεσλ ηεο εθαξκνγήο
-
πειάηε.

................................
................................
................................
...

31

Δηθφλα 3.2.
Block

δηάγξακκα θιάζεσλ ηεο εθαξκνγήο ηνπ εμππεξεηεηή.

................................
................................
....................

34

Δηθφλα 3.3. ΢ρεκαηηθή αλαπαξάζηαζε δεκηνπξγίαο ράξηε απφ δηαρεηξηζηή ηεο ππεξεζίαο.

................................
........................

35

Δηθφλα 3.4. ΢ρεκαηηθή αλαπαξάζηαζε δεκηνπξγίαο ράξηε απφ ρξήζηε ηεο ππεξεζίαο.

................................
...............................

35

Δηθφλα 4.1. Μηα γεληθή εηθφλα ησλ ζπζηαηηθψλ ζηνηρείσλ ηεο ηερλνινγίαο
Java

ME

θαη ζπζρέηηζε κε άιιεο ηερλνινγίεο
Java
.

51

Δηθφλα 4.2. ΢ρεκαηηθή αλαπαξάζηαζε ησλ βηβιηνζεθψλ
CLDC



MIDP
.

................................
................................
...................

51

Δηθφλα 4.3. Σν πξνγξακκαηηζηηθφ εξγαιείν
NetBeans
.

................................
................................
................................
.................

53

Δηθφλα 5.1. Αξρηθά ν Γηάλλεο θαη ν Γηψξγνο δελ είλαη θίινη.

................................
................................
................................
.......

56

Δηθφλα 5.2. Ο Γηψξγνο είλαη ζην ζπίηη ηνπ, ελψ ν Γηάλλεο είλαη ζηελ Πνιπηερλεηνχπνιε Εσγξάθνπ.

................................
........

56

Δηθφλα

5.
3. Ο Γηψξγνο ζηέιλεη ζηνλ Γηάλλε έλα αίηεκα θίινπ.

................................
................................
................................
....

57

Δηθφλα 5.4. Σελ πξψηε θνξά ν Γηάλλεο απνξξίπηεη ηελ πξφζθιεζε.

................................
................................
............................

57

Δηθφλα

5.
5. Ο Γηψξγνο επαλαιακβάλεη ηε
λ απνζηνιή ηνπ αηηήκαηνο. Ο Γηάλλεο ηε δεχηεξε θνξά απνδέρεηαη ηελ πξφζθιεζε.

58

Δηθφλα 5.6. Ο δηαρεηξηζηήο εκθαλίδεη ην ρξήζηε
καδί κε επηιεγκέλνπο θίινπο ηνπ ζε έλα ράξηε.

................................
................

59

Δηθφλα 5.7. Ο Γηψξγνο ξσηάεη ηελ απφζηαζε ηνπ Γηάλλε, θαη ζηε ζπλέρεηα δεηάεη λα η
νλ δεη ζην ράξηε.

................................
...

59

Δηθφλα

5.
8. Ο Γηάλλεο ελεξγνπνηεί ηελ εκθάληζε ιίζηαο θνληηλψλ θίισλ γηα κία αθηίλα 2,3 ρικ.

................................
...............

60

Δηθφλα 5.9. Ο Γηψξγνο μεθηλάεη θαη θαηεπζχλεηαη πξνο ηελ Πνιπηερλεηνχπνιε Εσγξάθνπ.

................................
........................

60

Δηθφλα

5.
10. Όηαλ ν Γηψξγνο πεξλάεη έμσ απφ ηελ είζνδν ηεο Παλεπηζηεκηνχπνιεο Εσγξάθνπ, είλαη πιένλ εληφο αθηίλαο ηνπ
Γηάλλε θαη εκθαλίδεηαη ζηελ νζφλε ηνπ.

................................
................................
................................
................................
.......

60

Δηθφλα

5.
11. Λίγν αξγφηεξα θαη πξηλ θηάζεη ζηελ Πνιπηερλεηνχπνιε Εσγξάθνπ, ν Γηψξγνο απνθιείεη ηνλ Γηάλλε απφ λα
ιακβάλεη πιεξν
θνξίεο γηα ηε ζέζε ηνπ, κεηά απφ έλα ιεπηφ άξεη ηνλ απνθιεηζκφ.
................................
................................
......

61

Δηθφλα 6.1.
Screenshot

απφ ηελ εθαξκνγή
Active

Campus
.

................................
................................
................................
..........

64

Δηθφλα 9.1. Ρχζκηζε παξακέηξσλ ηνπ
MySQL

Server
.

................................
................................
................................
.................

74

Δηθφλα 9.2. Δγθαηάζηαζε εθαξκνγήο ζην θηλεηφ ηειέθσλν
Nokia

N
80.

................................
................................
.....................

79




[
iv
]


Δπξεηήξην

θώδηθα

Κψδηθαο 4.1. Δπηθχξσζε αξηζκνχ ηειεθψλνπ ρξήζηε.

................................
................................
................................
.................

44

Κψδηθαο 4.2. Δλεξγνπνίεζε εκθάληζεο θνληηλψλ θίισλ.

................................
................................
................................
.............

45

Κψδηθαο 4.3. Αιιαγή ζέζεο ρξήζηε θαη ελεκέξσζε ρξεζηψλ.

................................
................................
................................
.....

46

Κψδηθαο 4.4. Αιγφξηζκνο ππνινγηζκνχ απφζηαζεο κεηαμχ

δχν ζεκείσλ ζηελ πδξφγεην.

................................
............................

47

Κψδηθαο 4.5. Δηζαγσγή κελχκαηνο πξνο εθηφο ζχλδεζεο ρξήζηε ζηε βάζε.

................................
................................
...............

48

Κψδηθαο 9.1. Κψδηθαο δεκηνπξγίαο βάζεο δεδνκέλσλ.

................................
................................
................................
.................

75



Δπξεηήξη
ν

πηλάθσλ

Πίλαθαο 4.1. Μεηαβάζεηο θαηάζηαζεο θίινπ.

................................
................................
................................
...............................

49

Πίλαθαο 4.2. Πιαηθφξκεο θαη ηερλνινγίεο ησλ ππνζπζηεκάησλ.

................................
................................
................................
.

50

Πίλαθαο 9.1
.
Πίλαθεο βάζεο δεδνκέλσλ.
................................
................................
................................
................................
.......

74





[
1
]


1


Διζαγυγή

1.1

Γιασείπιζη δεδομένυν ζε κινούμενα ανηικείμενα
-

Location

based

services

Μηα ηδηαίηεξα αλαπηπζζφκελε θαηεγνξία ειεθηξνληθψλ ππεξεζηψλ, είλαη απηή φπνπ ην
πεξηερφκελν πνπ παξαδίδεηαη ζηνλ ηειηθφ ρξήζηε ηξνπνπνηείηαη αλάινγα κε ηελ ηνπνζεζία
πνπ απηφο βξίζθεη
αη. Πξφθεηηαη γηα ηηο ιεγφκελεο
location

based

services

(LSB), νη νπνίεο
δέρνληαη σο παξάκεηξν θαη ηελ ηνπνζεζία ηνπ εθάζηνηε ρξήζηε θαη θηιηξάξνπλ ην
απνηέιεζκα έηζη ψζηε
απηφο
λα ιακβάλεη

κφλν ηηο πην ζρεηηθέο πιεξνθνξίεο πνπ ηνλ
αθνξν
χλ.

1.2

Ανηικείμενο διπ
λυμαηικήρ

΢ηελ παξνχζα δηπισκαηηθή αλαπηχμακε κηα εθαξκνγή
πνπ επηηξέπεη ζηνπο ρξήζηεο ηεο λα
ελεκεξψλεηαη ν έλαο γηα ηελ ηνπνζεζία ηνπ άιινπ. Οη ρξήζηεο έρνπλ ηε δπλαηφηεηα λα
εηζάγνπλ ζε

κηα ιίζηα κε ηα άηνκα ηα νπνία επηζπκνχλ λα καζαίλνπλ
ηε ζέζε ηνπο.

΢ηε
ζπλέρεηα ππάξρεη δπλαηφηεηα λα γίλνληαη εξσηήκαηα πνπ ελεκεξψλνπλ έλα ρξήζηε γηα ηελ
ηνπνζεζία θάπνηνπ άιινπ (απφζηαζε θαη θαηεχζπλζε ή εηθφλα ζην ράξηε) ή πνπ
ελεκεξψλνπλ έλαλ ρξήζηε πνηα άηνκα βξίζθνληαη ζε κηα δεδνκέλε αθηίλα γχξσ ηνπ.

΢ηε
δεχηεξε
πεξίπησζε ν ρξήζηεο δίλεη έλα ρξνληθφ δηάζηεκα φπνπ ην εξψηεκα απηφ είλαη
ελεξγφ θαη γηα ην δηάζηεκα απηφ ππάξρεη άκεζε ελεκέξσζε ηεο δπλακηθήο ιίζηαο ησλ
αηφκσλ πνπ βξίζθνληαη κέζα ζηε δνζκέλε αθηίλα. Απηφ ζεκαίλεη φηη λέεο αθίμεηο
εκθαλίδνληαη ακέζσο, αι
ιά θαη άηνκα πνπ βγήθαλ εθηφο αθηίλαο δηαγξάθνληαη απφ ηα
απνηειέζκαηα.


[
2
]


1.2.1

Πεπιγπαθή πποβλήμαηορ

Ζ γλψζε ηεο ζέζεο ελφο αηφκνπ είλαη κηα πνιχ ζεκαληηθή πιεξνθνξία ζε πνιιέο
πεξηπ
ηψζεηο ηεο θαζεκεξηλήο καο δσήο
. Αθνινπζνχλ κεξηθά παξαδείγκαηα:



Κάπνηνο θάζεηαη
ζε κηα θαθεηέξηα θαη απνιακβάλεη ηνλ θαθέ ηνπ. Σνλ ελδηαθέξεη αλ
θάπνηνο
γλσζηφο ηνπ βξεζεί θνληά ηνπ, γηα λα ηνλ πάξεη ηειέθσλν θαη λα ηνλ
ζπλαληήζεη ζηελ θαθεηέξηα.



Κάπνηνο πάεη λα δεη κηα ηαηλία ζηνλ θηλεκαηνγξάθν. Αλ θάπνηνο γλσζηφο ηνπ
ηπγράλεη λα πεξ
άζεη θνληά απφ ηνλ θηλεκαηνγξάθν, κπνξεί λα ζπλελλνεζνχλ ψζηε
λα δνπλ ηελ ηαηλία καδί.



Γχν άηνκα έρνπλ θαλνλίζεη λα ζπλαληεζνχλ. Ο πξψηνο ελδηαθέξεηαη λα κάζεη φηαλ ν
δεχηεξνο πνπ πεγαίλεη λα ην ζπλαληήζεη έρεη θηάζεη αξθεηά θνληά, ψζηε λα
θαηεπζπλζεί ζην
ζεκείν ζπλάληεζεο.



Ο νξγαλσηήο κηαο εθδξνκήο ζέιεη λα γλσξίδεη φηη φινη νη εθδξνκείο βξίζθνληαη
θνληά ηνπ θαη δελ απνκαθξχλνληαη.

Αθξηβψο επεηδή ε
ηξέρνπζα
ζέζε θάπνηνπ είλαη κηα πάξα πνιχ ζεκαληηθή πιεξνθνξία, ε
εθαξκνγή πξέπεη λα εμαζθαιίζεη φηη απηή ε π
ιεξνθνξία είλαη πξνζβάζηκε

κφλν απφ ηα
άηνκα πνπ ν θάζε ρξήζηεο εκπηζηεχεηαη θαη έρεη πξνζζέζεη ζηε ιίζηα κε ηνπο θίινπο ηνπ.

1.2.2

΢ενάπια επίλςζηρ

Ζ εθαξκνγή πνπ αλαπηχμακε κπνξεί λα βνεζήζεη ζε φιεο ηηο παξαπάλσ πεξηπηψζεηο. Ο θάζε
ρξήζηεο αθνχ θηηάμεη κηα ιίζηα
κε ηα άηνκα πνπ επηζπκεί λα ελεκεξψλνληαη γηα ηε ησξηλή
ηνπ ηνπνζεζία κπνξεί δεηήζεη απφ ηελ εθαξκνγή λα ηνλ ελεκεξψλεη φηαλ θάπνηνο εηζέιζ
εη
κέζα ζε ζπγθεθξηκέλε θαη δνζκέλε αθηίλα. Έηζη κπνξεί λα ελεκεξψλεηαη γηα ηνπο θίινπο
ηνπ πνπ βξίζθνληαη θνληά (
friends

in

range
)
, θαζψο επίζεο θαη λα καζαίλεη πφζν καθξηά απφ
απηφλ είλαη ή λα βιέπεη ην ζηίγκα ηνπο ζην ράξηε. Ζ ιίζηα πνπ δεκηνπξγείηαη αξ
ρηθά είλαη
απηή πνπ δηαζθαιίδεη φηη κφλν φζα άηνκα εκθαλίδνληαη εθεί έρνπλ δηθαίσκα λα καζαίλνπλ
ηελ ζέζε ηνπ ρξήζηε. Ζ ιίζηα είλαη δπλακηθή, δίλεηαη δειαδή δπλαηφηεηα ζην ρξήζηε λα
πξνζζέηεη θαη αθαηξεί θίιν
π
ο θαηά βνχιεζε.

1.3

Οπγάνυζη κειμένος

΢ην επφκελν
θεθάιαην αλαιχνπκε ηηο απαηηήζεηο
, ηφζν ζε ινγηζκηθφ αιιά θαη ζε πιηθφ

γηα
ηε ιεηηνπξγία ηνπ ζπζηήκαηνο.

Γίλεηαη επίζεο θαη νδεγίεο γηα ηε ρξήζε ηνπ.

΢ην
3
ν

θεθάιαην
πεξηγξάθνπκε ηε
ζρεδίαζε ηνπ ζπζηήκαηνο αθνχ δηαθξίλνπκε ηα ππνζπζηήκαηα πνπ ην
απνηεινχλ.

Σν 4
ν

θεθάιαην αζρνιείηαη κε ζέκαηα ηεο πινπνίεζεο, φπσο αιγνξηζκηθά θαη
ιεηηνπξγηθά ελδηαθέξνληα θνκκάηηα, αιιά θαη κε ηα πξνγξακκαηηζηηθά εξγαιεία πνπ

[
3
]


ρξεζηκνπνηήζεθαλ. Αθνινπζεί ε κεζνδνινγία ειέγρνπ θαη αλαιπηηθά ην ζελάξην κε ην νπνίν
ειέγρζεθε ε ζσζ
ηή ιεηηνπξγία ηεο εθαξκνγήο ζην θεθάιαην 5. ΢ρεηηθέο εξγαζίεο
παξνπζηάδνληαη θαηά θαηεγνξία ζην θεθάιαην 6. Σέινο ζην θεθάιαην 7 δίλνληαη ελδεηθηηθά
θάπνηα ζπκπεξάζκαηα θαζψο θαη ηδέεο γηα
κειινληηθέο

επεθηάζεηο ηεο παξνχζαο
δηπισκαηηθήο.

΢ην ηειεπηαίν θεθ
άιαην, δίλνληαη ζπλνπηηθά θαη κε κνξθή νδεγηψλ, ε πνξεία πνπ πξέπεη λα
αθνινπζήζεη θάπνηνο γηα λα εγθαηαζηήζεη θαη λα εθηειέζεη επηηπρψο ην ζχζηεκα πνπ
αλαπηχμακε ζε θάπνην ππνινγηζηηθφ ζχζηεκα.




[
4
]





[
5
]


2


Ανάλςζη Απαιηήζευν ΢ςζηήμαηορ

Αθνινπζεί

ε πεξηγξαθή ηεο
αξρηηεθηνληθήο ηνπ ζπζηήκαηνο θαη ε αλάιπζε
ησλ
απαηηήζεσλ
γηα
ηε ιεηηνπξγία ηνπ
.

2.1

Απαιηήζειρ ΢ςζηήμαηορ

Σν ζχζηεκα πνπ ζα πινπνηήζνπκε αθνινπζεί ην κνληέιν
client



server
.

Έλαο θεληξηθφο
εμππεξεηεηήο (
server
) κε ηνλ νπνίν επηθνηλσλνχλ φια ηα ηεξκαηηθά (θ
ηλεηά ηειέθσλα),
ζηα
νπνία ηξέρεη ε εθαξκνγή
-
πειάηε (
client
)
αλαιακβάλεη λα ζπληνλίδεη αιιά θαη λα παξέρεη
φιεο ηηο πιεξνθνξίεο ζηνπο ηειηθνχο ρξήζηεο.

2.1.1

Σο ιδανικό ζύζηημα

Όπσο αλαθέξακε θαη πξνεγνπκέλσο ην ζχζηεκα πνπ πινπνηήζακε ρσξίδεηαη ζε δχν κεγάια
ππνζπζηήκαηα: ηνλ θεληξηθφ εμππεξεηεηή θαη ηελ εθαξκνγή
-
πειάηε

πνπ ηξέρεη ζηα θηλεηά
ηειέθσλα.

Ηδαληθά ν εμππεξεηεηήο είλαη πάληα ελεξγφο ψζηε λα κπνξεί αλά πάζα ζηηγκή θάπνην θηλεηφ
λα ζπλδεζεί ζην ζχζηεκα. Θα πξέπεη λα έρεη δηαζέζηκε ηελ απαηηνχκελε κλήκ
ε, αιιά θαη ην
απαηηνχκελν εχξνο δψλεο πνπ ρξεηάδεηαη γηα λα θαιχςεη πνιιέο ηαπηφρξνλεο ζπλδέζεηο απφ
ηνπο ρξήζηεο ηεο
εθαξκνγήο
-
πειάηε.

Σα δεδνκέλα πνπ αληαιιάζζνληαη κεηαμχ
server

θαη
clients

δελ είλαη νγθνβφξα, επνκέλσο ε έκθαζε πξέπεη λα δνζεί ζηελ ππν
ζηήξημε κεγάινπ
αξηζκνχ ηαπηφρξνλσλ ζπλδέζεσλ.

Αλάινγα κε ην πιήζνο ησλ ρξεζηψλ ίζσο ρξεηαζηεί
θιηκάθσζε

ηνπ ζπζηήκαηνο

ψζηε λα είλαη εχθνιε θαη εθηθηή ε εμππεξέηεζε φιν θαη
πεξηζζφηεξσλ

ρξεζηψλ
. Οη δηαρεηξηζηέο ηνπ ζπζηήκαηνο ζα πξέπεη λα είλαη ζε ζέζε λα

επηβιέπνπλ ηελ θαηάζηαζε ηνπ ζπζηήκαηνο θαη λα ελεκεξψλνληαη γηα ρξήζηκα ζηαηηζηηθά,
φπσο
γηα παξάδεηγκα

πνηεο ψξεο ζπλδένληαη νη πεξηζζφηεξνη ρξήζηεο, ή πνηνη ρξήζηεο είλαη
νη πην ελεξγνί ζην ζχζηεκα. Υξήζηκν επηπιένλ είλαη λα ππάξρεη δπλαηφηεηα

[
6
]


απνκαθξπ
ζκέλεο δηαρείξηζεο κέζσ
web
, θαζψο θαη απηνκαηνπνηεκέλε απνζηνιή θξίζηκσλ
κελπκάησλ πξνο ηνπο δηαρεηξηζηέο.

Σα θηλεηά ηειέθσλα ζηα νπνία ηξέρεη ε εθαξκνγή ζα πξέπεη αξρηθά λα έρνπλ ηελ
απαηηνχκελε κλήκε γηα λα ηξέρνπλ ηελ εθαξκνγή θαζψο θαη επαξθή ππνινγηζ
ηηθή ηζρχ γηα
νκαιή εθηέιεζε. Σα πεξηζζφηεξα κνληέια πνπ θπθινθνξνχλ ζηελ αγνξά είλαη επαξθψο
εμνπιηζκέλα γηα ηηο αλάγθεο ηηο εθαξκνγήο.

Έλα απφ ηα πην ζεκαληηθά ραξαθηεξηζηηθά γηα ηηο ζπζθεπέο πνπ κπνξνχλ λα
ρξεζηκνπνηήζνπλ ηελ ππεξεζία, είλαη ε δπλαηφηεη
α πνπ έρνπλ λα ελεκεξψλνπλ ηελ
εθαξκνγή γηα ηελ ηξέρνπζα ηνπνζεζία ηνπ ρξήζηε. ΢ε κηα ηδαληθή ζπζθεπή θαη πινπνίεζε,
ζα πξέπεη ε εθαξκνγή λα κπνξεί λα ζηέιλεη αλά ζχληνκα θαη ηαθηά ρξνληθά δηαζηήκαηα ηελ
ηνπνζεζία ηνπ ρξήζηε ζηνλ
server

ρσξίο λα ππάξρεη πα
ξέκβαζε απφ ην ρξήζηε. Αθφκε γηα
κεγαιχηεξε ζπκβαηφηεηα ε εθαξκνγή πξέπεη λα κπνξεί λα ρξεζηκνπνηεί πνιιέο δηαθνξεηηθέο
θαη αλεμάξηεηεο πεγέο γηα λα ππνινγίζεη ηε ζέζε ηεο ζην ράξηε. Γηα παξάδεηγκα, κπνξεί λα
ρξεζηκνπνηεζεί θάπνην δνξπθνξηθφ ζχζηεκα
εληνπη
ζκνχ ζέζεο
, φπσο ην
GPS
,
αιιά γηα
ζπζθεπέο πνπ
απηφ
δελ ππνζηεξίδνπλ
είλαη επηζπκεηφ λα κπνξεί λα γίλεη άληιεζε ηεο
πιεξνθνξίαο ηεο ζέζεο απφ θάπνηα άιιε πεγή, φπσο γηα παξάδεηγκα απφ ηελ ηνπνζεζία ηεο
θεξαία θηλεηήο ηειεθσλίαο ζηελ νπνία είλαη ζπλδεδεκέλν

ην θηλεηφ. Αλαιπηηθά,
ελαιιαθηηθνί ηξφπνη εληνπηζκνχ ηεο ζέζεο αλαιχνληαη ζην
θεθάιαην
6.3
. Φπζηθά,
ζπλδπαζκφο κεζφδσλ γηα κεγαιχηεξε αθξίβεηα είλαη δπλαηφο θαη κ
πνξεί λα δίλεηαη ζην
ρξήζηε ζαλ επηινγή.

Σέινο, πξέπεη λα εμεηάζνπκε ηηο απαηηήζεηο ζπλδεζηκφηεηαο ησλ θηλεηψλ κε ηνλ θεληξηθφ
εμππεξεηεηή. Ζ ζχλδεζε ηνπο γίλεηαη κέζσ ηνπ δηαδηθηχνπ, έηζη απηφ πνπ έρνπκε λα
εμαζθαιίζνπκε είλαη φηη ηα θηλεηά ηειέθσλα έρνπλ

πξφζβαζε ζην δηαδίθηπν θαη κπνξνχλ λα
ρξεζηκνπνηήζνπλ ην πξσηφθνιιν
socket
.

΢ηελ έξεπλα πνπ έγηλε ζηελ ειιεληθή αγνξά,
βξέζεθε φηη φιεο νη εηαηξίεο θηλεηήο ηειεθσλίαο κπνξνχλ λα πξνζθέξνπλ κφλν ζε πειάηεο
ζπκβνιαίνπ ην ζπγθεθξηκέλν πξφγξακκα γηα πξφζβαζε
ζην δηαδίθηπν. Δλαιιαθηηθά, θηλεηά
ηειέθσλα κε ελζσκαησκέλε θεξαία
wifi
,

κπνξνχλ λα ζπλδεζνχλ ζην ζχζηεκα κέζσ ελφο
αζχξκαηνπ ζεκείνπ πξφζβαζεο (
wifi

hotspot
)
, ην νπνίν φκσο έρεη πεξηνξηζκέλε εκβέιεηα.

2.1.2

Σο ζύζηημα πος ςλοποιήθηκε

΢ην πιαίζην ηεο
ζπγθεθξηκέλεο δηπισκαηηθήο πινπνηήζακε ην παξαθάησ ζχζηεκα:

Ζ εθαξκνγή εμππεξεηεηή είλαη έλα
Java

2
SE

πξφγξακκα. ΢ηελ εθαξκνγή ηνπ εμππεξεηεηή
γηα ηνπο ζθνπνχο ηεο δηπισκαηηθήο δελ αζρνιεζήθακε κε ην πξφβιεκα ηεο ηαπηφρξνλεο
ζχλδεζεο κεγάινπ αξηζκνχ ρξεζη
ψλ, αθνχ γηα ηνπο ζθνπνχο ειέγρνπ είρακε ην πνιχ 3
ρξήζηεο ηαπηφρξνλα ζπλδεδεκέλνπο. Αθφκε πινπνηήζεθε κηα ππνηππψδε
web

δηαρείξηζε, ε
νπνία εχθνια κπνξεί λα επεθηαζεί γηα λα θαιχςεη ηνπο ζθνπνχο πνπ αλαιχζεθαλ ζηελ

[
7
]


πξνεγνχκελε ππνελφηεηα. Σν
web

interface

είλαη ζειίδεο
jsp

πνπ ηξέρνπλ ζε έλαλ
Apache

Tomcat

web

server

container
.

Τπνζηεξηθηηθά γηα ιεηηνπξγίεο κφληκεο απνζήθεπζεο

ιεηηνπξγεί κηα βάζε δεδνκέλσλ ζε ζχζηεκα
mySQL
.

Ζ εθαξκνγή ηνπ πξνγξάκκαηνο


πειάηε
πινπνηήζεθε ζε
Java

2
ME

(
microedition
).
Ζ
ζπγ
θεθξηκέλε πιαηθφξκα πξνηηκήζεθε γηα ιφγνπο ζπκβαηφηεηαο κε αξθεηά κνληέια ηεο
αγνξάο. Απαξαίηεηε πξνυπφζεζε γηα λα ηξέρεη ε εθαξκνγή ζηα θηλεηά ηειέθσλα ινηπφλ
είλαη απηά λα ππνζηεξίδνπλ ηελ πιαηθφξκα
Java
,
θαη ζπγθεθξηκέλα ην
MIDP

2.0,
CLCD

1
.1.
Δπίζεο ζη
ν ζέκα ηεο εχξεζεο ηεο ηνπνζεζίαο, ε εθαξκνγή ρξεζηκνπνηεί ην
Java

Location

API
, ζε φζεο ζπζθεπέο είλαη απηφ δηαζέζηκν. ΢ε δηαθνξεηηθή πεξίπησζε δίλεηαη ζην ρξήζηε
ε δπλαηφηεηα λα επηιέγεη απφ κηα ιίζηα πξνθαζνξηζκέλσλ ηνπνζεζηψλ (ηελ νπνία κπνξεί λα
ηξνπ
νπνηήζεη) ηελ ηξέρνπζα θάζε θνξά ηνπνζεζία ηνπ.

΢ηελ
Δηθφλα
2
.
1

βιέπνπκε ηα ππνζπζηήκαηα θαη πσο απηά επηθνηλσλνχλ κεηαμχ ηνπο:


Δηθόλα
2
.
1
. Αλάιπζε ηνπ ζπζηήκαηνο ζε ππνζπζηήκαηα θαη ε κεηαμύ ηνπο επηθνηλσλία.

2.2

Πεπιγπαθή
΢ςζηημάηυν

Πεξηγξάθνληαη αλαιπηηθά παξαθάησ νη

ιεηηνπξγίεο πνπ εθηειεί θάζε ππνζχζηεκα.


[
8
]


2.2.1

Δθαπμογή
client

Ζ εθαξκνγή επηηξέπεη ζηνπο ρξήζηεο λα

ζπλδένληαη ζην ζχζηεκα θαη λα ρξεζηκνπνηνχλ ηελ
ππεξεζία. ΢πγθεθξηκέλα κπνξνχλ:



Να δεκηνπξγήζνπλ κηα ιίζηα θίισλ. Ζ ιίζηα απηή πεξηέρεη άηνκα ηα νπνία ν
ρξήζηεο

κπνξεί λα βιέπεη ηελ ηνπνζεζία ηνπο, αιιά θαη απηά έρνπλ δηθαίσκα θαη
δπλαηφηεηα λα βιέπνπλ ηε ζέζε ηνπ.
Σα άηνκα πνπ εκθαλίδνληαη ζε απηή ηε ιίζηα
κπνξνχλ λα βξίζθνληαη ζε κία απφ ηηο αθφινπζεο ηξεηο θαηαζηάζεηο: "
accepted
",
"
pending
", "
blocked
".
Ο ρξήζη
εο ηεο εθαξκνγήο
έρεη ηε δπλαηφηεηα λα
ηξνπνπνηεί ηε
ιίζηα
θαη λα
:

o

πξνζζέηεη λένπο θίινπο. Δίηε απφ ηνλ ηειεθσληθφ θαηάινγν ηεο ζπζθεπήο,
είηε ρεηξνθίλεηα, πιεθηξνινγψληαο ν ίδηνο φλνκα θαη ηειεθσληθφ λνχκεξν.

Αξρηθά νη θίινη πνπ πξνζηίζεληαη εηζάγνληαη σο


pending

. Όηαλ ν θίινο
απνδερζεί ηε ζρέζε ηφηε ε θαηάζηαζή ηνπο αιιάδεη ζε

accepted

.

o

δηαγξάθεη ππάξρνληεο θίινπο απφ ηε ιίζηα θαη έηζη ράλεη ην δηθαίσκα λα
ελεκεξψλεηαη γηα ηε ζέζε ηνπο αιιά θαη απηνί γηα ηε δηθή ηνπ.

o

απνθιείζεη πξνζσξηλά θάπνην θίιν
ή λα άξεη ηνλ απνθιεηζκφ θαηά
πεξίπησζε. Ο απνθιεηζκφο ιεηηνπξγεί φπσο θαη ε δηαγξαθή

(είλαη δειαδή
ακνηβαίνο)

απιά αθήλεη ηελ θαηαρψξεζε ζηε ιίζηα
, ζε θαηάζηαζε

blocked

,

έηζη ψζηε λα κπνξέζεη ν ρξήζηεο εχθνια λα απνθαηαζηήζεη ηε
ζρέζ
ε.
Ζ άξζε ηνπ απνθιε
ηζκνχ κπνξεί λα γίλεη κφλν απφ ηνλ
ρξήζηε πνπ
ηνλ επέβαιιε αξρηθά.



Να ελεκεξψλεηαη γηα ηελ απφζηαζε απφ θαη θαηεχζπλζε πξνο έλα θίιν ηνπ.



Να βιέπεη ηε ζέζε ελφο θίιν
π

ηνπ ζην ράξηε (
ζε

θηλεηφ κε ελζσκαησκέλν
web

browser
)
.



Να νξίζεη κηα αθηίλα θαη λα ελεκεξ
ψλεηαη γηα ην πνηα άηνκα απφ απηά πνπ
βξίζθνληαη ζηε ιίζηα θίισλ ηνπ

βξίζθνληαη ζε απφζηαζε απφ απηφλ κηθξφηεξε απφ
ηελ δνζκέλε αθηίλα.

Αο δνχκε αλαιπηηθά φιεο ηηο ιεηηνπξγίεο ηεο εθαξκνγήο.
Σα
screenshots

πνπ αθνινπζνχλ
είλαη απφ

ην

θηλεηφ ηειέθσλν
Nokia

N
80
κε

ιεηηνπξγηθφ

Symbian

OS

9
.1 3
rd

edition
.

2.2.1.1

Δκκίνηζη εθαπμογήρ.

Όηαλ αξρηθά
εθθηλήζεη

ε εθαξκνγή εκθαλίδεηαη κηα νζφλε φπνπ βιέπνπκε πιεξνθνξίεο
ζρεηηθά κε ηελ αξρηθνπνίεζή ηεο. Καηά ηελ πξψηε εθθίλεζε, ε εθαξκνγή δεηάεη απφ ην
ρξήζηε λα εηζάγεη ηνλ αξηζκφ ηνπ ηειεθψλνπ ηνπ, κηαο θαη απηφ απνηειεί ην κνλαδηθφ
ραξαθηεξηζηηθφ θάζε ρξήζηε ζην

ζχζηεκα.

Γηα λα επηβεβαηψζεη ε εθαξκνγή φηη ν ρξήζηεο

[
9
]


έδσζε ην ζσζηφ αξηζκφ, επηρεηξεί λα ζηείιεη έλα γξαπηφ κήλπκα
SMS

ζηνλ αξηζκφ απηφ θαη
λα ιάβεη ην ίδην κήλπκα σο επηβεβαίσζε φηη φλησο ν αξηζκφο πνπ εηζήρζε είλαη ν ζσζηφο.


Δηθόλα
2
.
2
. Ζ αθνινπζία επηθύξσζεο ηνπ αξηζκνύ ηε
ιεθώλνπ ηνπ ρξήζηε.

Γίλεηαη κόλν κηα θνξά, θαηά ηελ πξώηε εθηέιεζε ηεο εθαξκνγήο.

΢ηε ζπλέρεηα αθνινπζεί κηα ιίζηα απφ κελχκαηα αξρηθνπνίεζεο,
ζπλνδεπφκελα

απφ κηα
ζεηξά εξσηήζεσλ π
ξνο ην ρξήζηε, πνπ εμαξηψληαη απφ ην επίπεδν αζθαιείαο πνπ έρεη
νξηζηεί γηα ηελ πιαηθφξκα
Java

απφ ην ιεηηνπξγηθφ ηνπ θηλεηνχ ηειεθψλνπ.


Δηθόλα
2
.
3
. Ζ αθνινπζ
ία αξρηθνπνίεζεο ηεο εθαξκνγήο.

Ζ παξαπάλσ νζό
λε θαη νη εξσηήζεηο εκθαλίδνληαη ζε θάζε εθθίλεζε ηεο εθαξκνγήο.

΢ηελ
Δηθφλα
2
.
3


ε εθαξκνγή δεηάεη ηελ άδεηα ηνπ ρξήζηε γηα λα δηαβάζεη ηνλ ηειεθσληθφ
θαηάινγν ηεο ζπζθεπήο. Δάλ ν ρξήζηεο απαληήζεη θαηαθαηηθά, ηφηε γίλεηαη πξνζπάζεηα
αλάγλσζεο ηνπ ηειεθσληθνχ θαηαιφγνπ, ζπγθεθξηκέλα ησλ θαηαρσξήζεσλ κε αξηζκφ
θηλεηνχ ηειεθψλνπ. ΢ηελ ζ
πλέρεηα φηαλ ν ρξήζηεο ζειήζεη λα πξνζζέζεη θάπνην γλσζηφ ηνπ
ζηε ιίζηα θίισλ ηνπ, κπνξεί λα επηιέμεη απφ ηε ιίζηα πνπ έρεη δεκηνπξγεζεί απφ ηνλ
ηειεθσληθφ θαηάινγν. Δάλ ν ρξήζηεο απαληήζεη αξλεηηθά, ηφηε κπνξεί λα πξνζζέηεη λένπο
θίινπο κφλν ρεηξνθίλεηα,
δειαδή πιεθηξνινγψληαο ν ίδηνο ην φλνκα θαη ηνλ αξηζκφ ηνπ
θίινπ πνπ ζέιεη λα πξνζζέζεη.

΢ηελ
Δηθφλα
2
.
3
.β. ε εθαξκνγή δεηάεη ηελ άδεηα ηνπ ρξήζηε λα ρξεζηκνπνηήζεη π
πεξεζίεο
εληνπηζκνχ ζέζεηο. Ζ ζπγθεθξηκέλε εξψηεζε εκθαλίδεηαη κφλν ζε θηλεηά ηειέθσλα πνπ

[
10
]


ππνζηεξίδνπλ ην
Java

Location

API
,
θαη κφλν ζε απηά ππάξρεη δπλαηφηεηα απηφκαηεο
ελεκέξσζεο ηεο ζέζεο ηνπ θηλεηνχ.

Δδψ ν ρξήζηεο κπνξεί λα απαληήζεη ζεηηθά, νπφηε ην

πξφγξακκα ζα πξνζπαζήζεη

λα ρξεζηκνπνηήζεη θάπνηα απφ ηηο δηαζέζηκεο κεζφδνπο εχξεζεο
ζέζεο, γηα λα ιάβεη ηελ απαηηνχκελε πιεξνθνξία. ΢πλήζσο επηρεηξείηαη ε ζχλδεζε κε θάπνην
ελζσκαησκέλν ή εμσηεξηθφ δέθηε
GPS

γηα ιήςε ζπληεηαγκέλσλ. Όηαλ δελ ππάξρεη
ελζσ
καησκέλνο δέθηεο ζηε ζπζθεπή, ελδέρεηαη λα γίλεη πξνηξνπή ζην ρξήζηε γηα
ελεξγνπνίεζε ηεο θεξαίαο
Bluetooth

ψζηε λα γίλεη ζχλδεζε κε εμσηεξηθφ δέθηε.
Αλ ν
ρξήζηεο απαληήζεη αξλεηηθά ηφηε ελεξγνπνηείηαη ε ρεηξνθίλεηε ξχζκηζε ζέζεο. Τπάξρεη κηα
ιίζηα κε πξνθ
αζνξηζκέλεο ζέζεηο πνπ ν ρξήζηεο κπνξεί λα ηξνπνπνηήζεη. Δθηφο απφ ηηο
ηνπνζεζίεο πνπ κπνξεί λα πξνζζέζεη ν ρξήζηεο, ππάξρεη πάληα θαη ε ηνπνζεζία κε φλνκα

Home

, ε νπνία ελεξγνπνηείηαη απηφκαηα, φηαλ επηιέμνπκε ρεηξνθίλεηε ξχζκηζε ζέζεο.
Μεηά ηε ιήςε ησλ

ζπληεηαγκέλσλ αλεμαξηήησο ηξφπνπ, γίλεηαη απνζηνιή απηψλ ζηνλ
θεληξηθφ εμππεξεηεηή.

Ζ ηειεπηαία εξψηεζε
(
Δηθφλα
2
.
3
.γ)
νπζηαζηηθά δεηάεη απφ ην ρξήζηε λα επηηξέςεη η
ελ
ζχλδεζε ηνπ πξνγξάκκαηνο ζην δηαδίθηπν έηζη ψζηε λα κπνξέζεη λα ζπλδεζεί κε ηνλ
θεληξηθφ εμππεξεηεηή. Δδψ ρξεηάδεηαη νπσζδήπνηε ζεηηθή απάληεζε γηα λα ζπλερίζνπκε λα
εθηεινχκε ηελ εθαξκνγή, αθνχ αλ δελ επηηεπρζεί ζχλδεζε, ε εθαξκνγή δελ έρεη λφεκα λα
εθ
ηειείηαη. Σν ιεηηνπξγηθφ ηνπ ηειεθψλνπ είλαη ζηε ζπλέρεηα ππεχζπλν λα
αλαδεηήζεη
δηαζέζηκνπο ηξφπνπο ζχλδεζεο κε ην δηαδίθηπν θαη λα πξαγκαηνπνηήζεη ηε ζχλδεζε. Αλ φια
πάλε θαιά, ηφηε βιέπνπκε ηελ παξαθάησ νζφλε (
Δηθφλα
2
.
4
), πνπ είλαη θαη ε θεληξηθή νζφλε
ηεο εθαξκνγήο.


Δηθόλα
2
.
4
. Ζ θεληξηθή νζόλε ηεο εθαξκνγήο
-
πειάηε
.

2.2.1.2

Κενηπικό μενού.

Αο δνχκε ζπλνπηηθά ηηο επηινγέο
πνπ καο δίλεη ην θεληξηθφ κελνχ ηεο εθαξκνγήο θαη
παξαθάησ ζα αλαιχζνπκε κε ιεπηνκέξεηα ηελ θάζε επηινγή.




Nearby

friends
”.
O

ρξήζηεο
νξίδεη

κηα αθηίλα, θαη ζηε ζπλέρεηα λα βιέπεη πνηνη
απφ ηνπο θίινπο ηνπ βξίζθνληαη ζε απφζηαζε κηθξφηεξε απφ ηελ δνζκέλε α
θηίλα.


[
11
]





All

friends
”.
O

ρξήζηεο δηαρεηξίδεηαη ηε ιίζηα θίισλ ηνπ. Πξνζζέηεη, δηαγξάθεη ή
πξνζσξηλά απνθιείεη θάπνηνπο απφ ηνπο θίινπο, αιιά ελεκεξψλεηαη θαη γηα ηελ
θαηάζηαζε θάζε θίινπ θαζψο επίζεο θαη γηα ην πφζν καθξηά βξίζθνληαη.




My

location
”.
O

ρξήζη
εο νξίδεη ηελ ηνπνζεζία πνπ βξίζθεηαη, είηε απφ κηα ιίζηα κε
πξνεπηιεγκέλεο ηνπνζεζίεο είηε ζέηνληαο ηελ επηινγή ζηελ απηφκαηε ιεηηνπξγία
νπφηε ην πξφγξακκα ιακβάλεη ηελ ηξέρνπζα ηνπνζεζία απφ εμσηεξηθή πεγή, φπσο
γηα παξάδεηγκα έλαο δέθηεο
GPS
.




Unsubscri
be
”.
Γίλεη η
ε δπλαη
φηεηα ζην ρξήζηε λα δηαγξαθεί απφ ην ζχζηεκα.




About
”.

Πιεξνθνξίεο γηα ηελ έθδνζε θα
η άιια ζηνηρεία γηα ηελ εθαξκνγή.

2.2.1.3

Γιασείπιζη λίζηα
ρ

θίλων.

Αο μεθηλήζνπκε ηελ αλαιπηηθή πεξηγξαθή αθνινπζψληαο ηελ 2
ε

επηινγή

ηνπ θεληξηθνχ
κελνχ


All

friends

αθνχ απηή ζα καο επηηξέςεη λα δεκηνπξγήζνπκε ηε ιίζηα θίισλ πνπ
είλαη απαξαίηεηε γηα ηελ πεξαηηέξσ ιεηηνπξγηθφηεηα ηεο εθαξκνγήο, δειαδή ηε δεκηνπξγία
εξσηεκάησλ ζρεηηθά κε ηηο ζέζεηο ησλ θίισλ καο.


Δηθόλα
2
.
5
. Ο

John

είλαη

accepted
,
ε

Helen

είλαη

blocked
,
ελώ

ν

Tim

είλαη

pending
.

Αθνινπζψληαο ηελ επηινγή απηή εκθαλίδεηαη κηα ιίζηα, κε ηνπο θίινπο πνπ έρεη πξνζζέζεη
ν

ρξήζηεο.
Κάζε θίινο
απνηειείηαη

απφ
ην

φλνκα
θαη

ηνλ αξηζκφ ηνπ ηειεθψλνπ ηνπ ζε
παξελζέζεηο θαη κπνξεί λα βξίζθεηαη ζε κία απφ ηηο αθφινπζεο ηξεηο θαηαζηάζεηο:
"
accepted
", "
pending
", "
blocked
". Ζ θαηάζηαζε ελφο θίινπ γίλεηαη αληηιεπηή απφ ην
εηθνλίδην πνπ εκθαλίδεηαη δίπια ζην φλνκα ηνπ. Ζ αληηζηνηρία
θαίλεηαη ζ
ηελ

Δηθφλα
2
.
5
.

Δίλαη δπλαηφλ λα ππάξρνπλ δχν θαηαρσξήζεηο κε ην ίδην φλνκα, αιιά φρη κε ηνλ ίδην αξηζκφ
ηειεθψλνπ. ΢ην φλνκα θάζε θίινπ απαγνξεχεηαη λα ππά
ξρ
νπλ

νη ραξαθηήξεο ησλ
παξελζέζεσλ.

Οη θίινη πνπ εκθαλίδνληαη ζηε ιίζηα είλαη απηνί γηα ηνπο νπνίνπο έρνπκε εθδειψζεη
ελδηαθέξνλ λα καζαίλνπκε ηε ζέζε ηνπο. Αλ απηνί απνδερηνχλ ην αίηεκα, ηαπηφρξνλα
απνθηνχλ ηε δπλαηφηεηα λα ελεκεξψλνληαη γηα ηε δηθή καο
ζέζε.


[
12
]


Απφ ην κελνχ

Options

έρνπκε ηηο εμήο επηινγέο:



Show

distance
:
εκθαλίδεη
πφζν καθξηά απφ καο βξίζθεηαη ν επηιεγκέλνο θίινο

θαη
ζε πνηα θαηεχζπλζε
.

Φπζηθά, πιεξνθνξίεο δίλνληαη κφλν γηα ηνπο θίινπο πνπ
βξίζθνληαη ζηελ θαηάζηαζε

accepted

. Ζ

πιεξνθνξία

εκθαλίδεηαη

ζηε

κνξθή
:
“[
name
]
was

located

[
distance
]
m

to

[
direction
], [
time
]
min

ago
.”,
φπνπ

name

είλαη

ην

φλνκα ηνπ επηιεγκέλνπ θίινπ,
distance

είλαη ε απφζηαζε ζε κέηξα κεηαμχ
ηνπ
ρξήζηε θαη ηνπ θίινπ ηνπ
,
direction

είλαη ε πνξεία πνπ πξέπεη λ
α αθνινπζήζνπκε γηα
λα ην
λ

ζπλαληήζνπκε θαη
time

είλαη ν ρξφλνο πνπ έρεη πεξάζεη απφ ηε ζηηγκή πνπ ν
θίινο ελεκέξσζε ην
λ

θεληξηθφ
server

γηα ηε ζέζε ηνπ.


Δηθόλα
2
.
6
. Δπεηδή ν
John

είλαη
accepted
,
εκθαλίδεηα
η ε πιεξνθνξία γηα ηε ζέζε ηνπ,

ελώ γηα ηελ
Helen

πνπ είλαη κπινθαξηζκέλε, ε πιεξνθνξία είλαη κε δηαζέζηκε.



Show

on

map
:
(ιεηηνπξγεί ζε θηλεηά ηειέθσλα κε ελζσκαησκέλν
browser
)
. Ζ
ιεηηνπξγία απηή νπζηαζηηθά αλνίγεη έλα ζπγθεθξηκέλν
URL

ζηνλ
brows
er

ηεο
ζπζθεπήο θαη εκθαλίδεη ζην ράξηε ηε ζέζε ηνπ θίινπ (ρξεζηκνπνηεί ηε δσξεάλ
ππεξεζία Υάξηεο
Google
,
θαη ην
Google

Maps

Static

API
)
. Αλάινγα κε ηε ζπζθεπή
ε δπλαηφηεηα απηή εκθαλίδεηαη κε δχν ηξφπνπο: ην ιεηηνπξγηθφ εθθηλεί ηνλ
browser

θαη εκθαλίδεη η
ε ζπγθεθξηκέλε ζειίδα είηε ακέζσο ελψ ε εθαξκνγή εθηειείηαη ζην
παξαζθήλην, είηε κφιηο θιείζνπκε ηελ εθαξκνγή. ΢ηελ πξψηε πεξίπησζε φηαλ
θιείζνπκε ηνλ
browser

ε εθαξκνγή επαλέξρεηαη ζην πξνζθήλην.

Ζ ππεξεζία
Google

Maps

γηα λα εκθαλίζεη έλα ζπγθεθξηκέλν ζε
κείν ζην ράξηε ρξεηάδεηαη ηηο
ζπληεηαγκέλεο ηνπ.
Α
λαιπηηθφηεξα γηα ην πψο ιεηηνπξγεί ε ζπγθεθξηκέλε ιεηηνπξγία
ζηελ ελφηεηα πνπ πεξηγξάθεη ηνλ
server

θαη ηνλ
web

server
.


[
13
]



Δηθόλα
2
.
7
.

Πξνβνιή ράξηε ζέζεο θίινπ

ζην θηλεηό
.



Add

from

contacts
:
Δάλ

θαηά

ηελ

αξρηθνπνίεζε ηεο εθαξκνγήο, έρνπκε επηηξέςεη
ηελ αλάγλσζε ηνπ θαηαιφγνπ ησλ επαθψλ ηεο ζπζθεπήο, ηφηε απηή ε επηινγή
εκθαλίδεη κηα ιίζηα κε φιεο ηηο επαθέο πνπ έρνπλ θαηαρσξεκέλν αξηζκν
χ θηλεηνχ
ηειεθψλνπ (πξέπεη λα ππάξρεη ηνπιάρηζηνλ κία θαηαρψξεζε ηχπνπ
mobile

phone
).

Γηαθνξεηηθά ε νζφλε απηή είλαη κηα θελή ιίζηα. Όπσο θαίλεηαη θαη ζηελ
Δηθφλα
2
.
8
,
ππάξρεη δπλαηφηεηα πνιιαπιήο επηινγήο θαη
ζηε ζπλέρεηα

επηιέγνληαο

ΟΚ, νη
επηιεγκέλεο επαθέο
εηζάγνληαη

σο θίινη

pending
”.


Δηθόλα
2
.
8
.

΢ηα αξηζηεξά θαίλεηαη κέξνο ηεο ιίζηαο επαθώλ ηεο ζπζθεπήο από όπνπ έρνπκε
επηιέμεη δύν, θαη δεμηά ε ιίζηα θίισλ όπνπ νη πξνεγνπκέλσο επηιεγκέλεο επαθέο έρνπλ πξνζηεζεί

ζε θαηάζηαζε

pending

.



Add
:
Δάλ

θαηά

ηελ

αξρηθνπνίεζε ηεο εθαξκνγήο δελ έρνπκε επηηξέ
ςεη ηελ
αλάγλσζε ηνπ θαηαιφγνπ ησλ επαθψλ ηεο ζπζθεπήο, ή αλ απηή δελ ππνζηεξίδεηαη
ηφηε απηή ε επηινγή καο επηηξέπεη λα πξνζζέζνπκε θίινπο ζηε ιίζηα,
πιεθηξνινγψληαο ην φλνκα θαη ην ηειέθσλφ ηνπο

(
Δηθφλα
2
.
9
.α)
.

Καηά ηελ
εηζαγσγή ηνπ αξηζκνχ ηειεθψλνπ, ε πινπνίεζε δίλεη αθφκε κηα θνξά ηε δπλαηφηεηα
ζην ρξήζηε λα αληηγξάςεη ηνλ αξηζκφ απφ θάπνηα επαθή απνζεθεπκέλε ζηνλ
θαηάινγν ηεο ζπζθεπήο

(
Δηθφλα
2
.
9
.β)
. Αλ ν ρξήζηεο πιεθηξνινγήζεη αξηζκφ
ηειεθψλνπ πνπ ππάξρεη ήδε ζηε ιίζηα θίισλ, ηφηε εκθαλίδεηαη πξνεηδνπνηεηηθφ
κήλπκα θαη ε εηζαγσγή
αθπξψλεηαη (
Δηθφλα
2
.
9
.γ)
.


[
14
]



Δηθόλα
2
.
9
.

Πξνζζήθε λένπ θίινπ κε πιεθηξνιόγεζε ζηνηρείσλ.



Remove
:
Δπηηξέπεη ηελ θαηά
ξγεζε ελφο θίινπ απφ ηε ιίζηα.
Αλ ν ρξήζη
εο Α
θαηαξγ
ήζεη

ηνλ ρξήζηε Β απφ ηε ιίζηα θίισλ ηνπ, ηφηε ν Β ζηε δηθηά ηνπ ιίζηα
θίισλ βιέπεη ηνλ Α ζε θαηάζηαζε

pending

.



Block
:
Ο ρξήζηεο απνηξέπεη πξνζσξηλά θάπνηνλ απφ ηνπο θίινπο ηνπ λα
ελεκεξψλεηαη γηα ηε ζέζε ηνπ, ζέηνληαο ηελ θαηάζηαζε ηνπ θίινπ ηνπ ζε

blocked

.
Ο απνθιεηζκφο είλαη ακνηβαίνο, δειαδή φηαλ ν ρξήζηεο Α κπινθάξεη ηνλ Β, ηφηε
θαλέλαο απφ ηνπο δπν δε κπνξεί λα ιακ
βάλεη πιεξνθνξίεο γηα ηε ζέζε ηνπ άιινπ.
Καη ζηνπο δχν ρξήζηεο ην εηθνλίδην ηνπ αληίζηνηρνπ θίινπ αιιάδεη γηα λα
ππνδεηθλχεη ηε λέα θαηάζηαζε.



Unblock
:
Με απηή ηελ επηινγή γίλεηαη άξζε ηνπ απνθιεηζκνχ ελφο θίινπ θαη
επαλαθνξά ηνπ ζηελ θαηάζηαζε

accepted

.

Μφλν ν ρξήζηεο πνπ είρε νξίζεη αξρηθά
ηνλ απνθιεηζκφ έρεη ηε δπλαηφηεηα λα ηνλ άξεη. Γηα παξάδεηγκα, αλ ν Α κπινθάξεη
ηνλ Β, ηφηε κφλν ν Α κπνξεί αξγφηεξα λα άξεη ηνλ απνθιεηζκφ.



Edit
:
Γίλεη ηελ δπλαηφηεηα ζην ρξήζηε λα αιιάδεη ην εκθαληδφκελν φλνκα ηνπ θ
ίινπ
ηνπ. Σν φλνκα ελφο θίινπ δελ κπνξεί λα πεξηέρεη ηνπο ραξαθηήξεο ησλ παξελζέζεσλ.

Τπελζπκίδεηαη φηη είλαη δπλαηφλ δχν θίινη λα έρνπλ ην ίδην φλνκα, αθνχ απηφ πνπ
ηνπο μερσξίδεη κνλαδηθά είλαη ν αξηζκφο ηνπ ηειεθψλνπ ηνπο.



Resend

request
:
Ζ ιεηηνπξγία α
πηή ρξεζηκνπνηείηαη κφλν ζε θίινπο πνπ βξίζθνληαη
ζηελ θαηάζηαζε

pending
”.
Ζ ιεηηνπξγία ηνπ είλαη λα μαλαζηείιεη ην αίηεκα
πξφζθιεζε ζηνλ παξαιήπηε. Γηα παξάδεηγκα αλ θάπνηνο ζηε ιίζηα θίισλ είλαη ζε
θαηάζηαζε

pending

γηα κεγάιν ρξνληθφ δηάζηεκα, ε επηι
νγή απηή μαλαζηέιλεη ηελ
πξφζθιεζε ζηνλ παξαιήπηε γηα λα ηνπ ζπκίζεη φηη επηζπκνχκε λα ηνλ πξνζζέζνπκε
ζηε ιίζηα θίισλ θαη δελ καο έρεη δερηεί αθφκα.

2.2.1.4

Διζεπσόμενα αιηήμαηα.

Ζ
δηαδηθαζία ηεο δεκηνπξγίαο ηεο ιίζηαο θίισλ νινθιεξψλεηαη κε αλαθνξά ζηηο
εηζεξρφκ
ελεο αηηήζεηο γηα λένπο θίινπο. Απηφ είλαη επαθφινπζν ηεο απνζηνιήο πξφζθιεζεο

[
15
]


γηα πξνζζήθε ελφο λένπ θίινπ. ΢ε έλα ηππηθφ ζελάξην
ρξήζεο
ν ρξήζηεο Α επηζπκεί λα
πξνζζέζεη ηνλ ρξήζηε Β ζηε ιίζηα θίισλ ηνπ. Απηφ ην επηηπγράλεη ζχκθσλα κε ηελ
παξαπάλσ δηαδηθ
αζία επηιέγνληαο

Add


ή

Add

from

Contacts


απφ ην κελνχ. Ο ρξήζηεο Β
άκεζα (ή αλ δελ είλαη ζπλδεδεκέλνο κφιηο εηζέιζεη) ιακβάλεη εηδνπνίεζε γηα ηελ λέα
εηζεξρφκελε πξφζθιεζε θαη έρεη ηε δπλαηφηεηα λα ηελ απνδερηεί ή λα ηελ αξλεζεί.

Μφιηο
ιεθζεί έλα λέν α
ίηεκα εκθαλίδεηαη κήλπκα ζην ρψξν εηδνπνηήζεσλ ηεο εθαξκνγήο θαη ζην
θεληξηθφ κελνχ πξνζηίζεηαη κηα θαηλνχξηα επηινγή

Incoming

requests


(
Δηθφλα
2
.
10
.α)
.
Απφ εθεί ν ρξήζηεο κπνξεί λα δηαρεηξηζηεί ηηο λέεο πξνζθιήζεηο πνπ ηνπ ζηέιλνληαη.
΢ηε

ιίζηα κε ηηο εηζεξρφκελεο αηηήζεηο

ν ρξήζηεο επηιέγεη απηέο πνπ ζέιεη λα απνδερηεί ή λα
απνξξίςεη θα
η ελεξγνπνηεί ηελ αληίζηνηρε εληνιή απφ ην κελνχ (
Δηθφλα
2
.
10
.γ).


Δηθόλα
2
.
10
.

Δ
ηζεξρόκελ
α

αηηήκαηα

γηα λέν
πο

θίιν
πο

θαη δηεθπεξαίσζή ηνπ
ο
.

Δάλ ν ρξήζηεο πνπ απνζηέιιεη ηελ αίηεζε ππάξρεη ζηνλ θαηάινγν επαθψλ ηεο ζπζθεπήο (ν
αξηζκφο ηειεθψλνπ ηνπ) ηφηε ζηε ιίζηα εκθαλίδεηαη ην θαηαρσξεκέλν φλνκα δίπια ζηνλ
αξηζκφ. ΢ε δηαθνξεηηθή πεξίπησζε εκθαλίδεηαη ην λνχκεξν ηνπ απ
νζηνιέα κε ην φλνκα

Unnamed

friend


(
Δηθφλα
2
.
10
.β)
.
Σν ίδην ζπκβαίλεη θαη φηαλ θαηά ηελ εθθίλεζε ηεο
εθαξκνγήο δελ επηηξέςνπκε ηελ αλάγλσζε ηνπ θαηαιφγνπ ηεο ζπζθεπήο. Σφηε φιεο νη
εηζεξρφκελεο αηηήζεηο ζα ζπλνδεχνληαη απφ ην φλνκα

Unname
d

friend
”.

Όηαλ κηα αίηεζε γίλεηαη απνδεθηή, ν αληίζηνηρνο θίινο απνκαθξχλεηαη απφ ηε ιίζηα
εηζεξρφκελσλ αηηήζεσλ θαη εηζάγεηαη ζηελ ιίζηα θίισλ ζε θαηάζηαζε

accepted

. Οη
αηηήζεηο πνπ απνξξίπηνληαη απιά δηαγξάθνληαη απφ ηε ιίζηα εηζεξρνκέλσλ ρσξίο θάπνηα

άιιε επεμεξγαζία. Μφιηο φιεο νη εηζεξρφκελεο αηηήζεηο έρνπλ δηεθπεξαησζεί ην κελνχ

Incoming

requests

εμαθαλίδεηαη απφ ην θεληξηθφ κελνχ.

2.2.1.5

Ρύθμιζη θέζηρ.

Απφ ηελ ηξίηε επηινγή ηνπ θεληξηθνχ κελνχ (
Δηθφλα
2
.
4
)

My

location

γίλεηαη ε ξχζκηζε
ηεο ζέζεο ηνπ θηλεηνχ.

Όπσο έρνπκε αλαθέξεη πξσηχηεξα ζηελ ηξέρνπζα πινπνίεζε
ππάξρνπλ δχν δηαθνξεηηθή ηξφπνη ελεκέξσζε ηεο ζέζεο ηνπ θηλεηνχ: είηε απηφκαηα

[
16
]


θάλνληαο ρξήζε ηνπ
Java

Location

API

γηα φζα θηλεηά ην ππνζηεξίδνπλ είηε κε απηφκαηα
επηιέγνληαο θάζε θνξά απφ κηα ιίζηα κε πξνθαζνξηζκέλεο ηνπνζεζίεο. ΢ηελ πξψηε
πεξίπησζε απαηηείηαη επηπιένλ εμνπιηζκφο, φπσο γηα παξάδεηγκα έλαο εζσηεξηθφο ή
εμσηεξηθφο δέθηεο
GPS
.

΢ηελ

νζφλε


My

location

απφ

ην

drop
-
down

κελνχ


My

current

location

(
Δηθφλα
2
.
11
.β)
κπνξνχκε

λα

επηιέγνπκε κεηαμχ ησλ δχν πξναλαθεξζέλησλ ιεηηνπξγηψλ. Ζ επηινγή

Auto

ελεξγνπν
ηεί ηελ απηφκαηε ιεηηνπξγία θαη ην θηλεηφ επηρεηξεί λα εληνπίζεη ηε ζέζε ηνπ κέζσ
ηνπ
Location

API
.
Κάησ απφ ην κελνχ

My

current

location

ππάξρεη κηα κπάξα ηελ νπνία
κπνξεί λα κεηαθηλεί ν ρξήζηεο γηα ξπζκίζεη θάζε πφηε ην θηλεηφ ζα πξνζπαζεί λα εληνπίζεη

ηε ζέζε ηνπ θαη λα ηε ζηείιεη ζηνλ θεληξηθφ
server
.

Οη
επηηξεπηέο ηηκέο

θπκαίλνληαη απφ
5
κέρξη 60 δεπηεξφιεπηα, ελψ ε πξνεπηιεγκέλε ηηκή είλαη 45 δεπηεξφιεπηα. Αθξηβψο απφ θάησ
γηα πιεξνθνξηαθνχο ιφγνπο εκθαλίδνληαη νη ηξέρνπζεο ζπληεηαγκέλεο ηνπ θηλεηνχ

(
Δηθφλα
2
.
11

).



Δηθόλα
2
.
11
. Ρπζκίζεηο ζέζεο.

Δπηιέγνληαο νπνηαδήπνηε άιιε ηνπνζεζία απφ ην κελνχ

My

current

location

εθηφο απφ ην

Auto

απελεξγνπνηεί ηελ απηφκαηε ξχζκηζε (εμαθαλίδεη θαη ηε κπάξα ειέγρνπ πνπ ξπζκίδεη
ηε ρξνληθή πεξίνδν αλαδήηεζεο ζέζεο) θαη ζέηεη ηελ ηξέρνπζα ζέζε ζηελ επηιεγκέλε
(
Δηθφλα
2
.
11
.γ) ζηέιλνληαο ηαπηφρξνλα ηηο λέεο ζπληεηαγκέλεο ζηνλ θεληξηθφ εμππεξεηεηή.
΢ηηο

ζπζθεπέο

φπνπ ην
Location

API

δελ ππνζηεξίδεηαη ε επηινγή

Auto

δελ εκθαλίδεηαη.


[
17
]


Γίλεηαη βέβαηα ε δπλαηφηεηα ζην ρξήζηε
κέζα απφ ην κελν
χ
Options

λα
ηξνπνπνηήζεη φπσο
επηζπκεί ηε ιίζηα κε ηηο δηαζέζηκεο ηνπνζεζίεο, πξνζζέηνληαο απηέο πνπ εθείλνο ζπρλάδεη
(
Δηθφλα
2
.
11

-
ζη). Ζ δηαθνξά κεηαμχ ησλ επηινγψλ

Add

θαη

Add

from

GPS

είλαη φηη
ζηε κελ πξψηε πιεθηξνινγνχκε φια ηα ζηνηρεία ηεο λέαο ηνπνζεζίαο, δειαδή πεξηγξαθή θαη
ζπληεηαγκέλεο, ελψ ζηε δεχηεξε νη ζπληεηαγκέλεο αληηγξάθνληαη απηφκαηα απφ
ηελ έλδεημε
ηνπ

GPS
.
Ο κφλνο πεξηνξηζκφο είλαη φηη πάληα πξέπεη λα ππάξρεη κία ηνπνζεζία κε ην φλνκα
Home
.

2.2.1.6

Δπωηήμαηα θέζηρ.

Ζ θχξηα ιεηηνπξγία ηεο εθαξκνγήο είλαη λα απαληά ζε εξσηήκαηα ζρεηηθά κε ηε ζέζε ησλ
αηφκσλ πνπ βξίζθνληαη ζηε ιίζηα θίισλ

(κφλν φζσλ είλαη
accepted
)
.

Απ
φ ηελ επηινγή

Nearby

friends

ηνπ θεληξηθνχ κελνχ κπνξνχκε λα νξίζνπκε κηα αθηίλα

(
Δηθφλα
2
.
12
.α)

θαη
ε εθαξκνγή λα καο εηδνπνηεί φηαλ θάπνηνο απφ ηε
accepted

θίινο

ε
ηζέξρεηαη ζε λνεηφ θχθιν
κε θέληξν εκάο θαη ηε

δνζκέλε

αθηίλα
. Δθηφο απφ ηελ αθηίλα κπνξνχκε λα επηιέμνπκε θαη
έλα ρξνληθφ δηάζηεκα γηα ην νπνίν ζα είλαη ελεξγή ε νζφλε απνηειεζκάησλ ησλ θνληηλψλ
θίισλ

(
Δηθφλα
2
.
12
.β)
.

Αλ επηιέμνπκε

never

ηφηε ε εθαξκνγή ζα καο ελεκεξψλεη γηα
θνληηλνχο θίινπο κέρξη λα επηιέμνπκε

Stop
”.
΢ε δηαθνξεηηθή πεξίπησζε κεηά ηε ιήμε ηνπ
επηιεγκέλνπ ρξφλνπ ε νζφλε ησλ απνηειεζκ
άησλ παχεη λα είλαη δηαζέζηκε.



Δηθόλα
2
.
12
.

α,β: ξπζκίζεηο / γ,ε

ε
κθάληζε θνληηλώλ θίισλ

/ δ,ζη πιεξνθνξίεο απόζηαζεο
.


[
18
]


΢ηελ
Δηθφλα
2
.
12
.γ βιέπνπκε κηα ηππηθή νζφλε απνηειεζκάησλ. Ζ αθηίλα έρεη νξηζηεί ζηα
500 κέηξα (
Δηθφλα
2
.
12
.α). Παηψληαο πάλσ ζε θάπνηνλ θίιν ε εθαξκνγή καο
ελε
κεξψλεη γηα
ηελ απφζηαζε ηνπ (
Δηθφλα
2
.
12
.δ), εκθαλίδνληαο αθξηβψο ηηο ίδηεο πιεξνθνξίεο φπσο ε
επηινγή

Show

distance

απφ ηελ νζφλε

All

friends
”.

Όπσο βιέπνπκε
ε
Helen

απέρεη
ιηγφηεξν απφ 500 κέξα. Αξγφηεξα απφ ηελ νζφλε απνηειεζκάησλ εμαθαλίδεηαη ν
Tim

(
Δηθφλα
2
.
12
.ε)
.
Πεγαίλνληαο

Back

θαη κεηά ζην κελνχ

All

friends

, θά
λνπκε εξψηεζε
γηα ηε ζέζε ηνπ θαη βιέπνπκε φηη φλησο είλαη εθηφο αθηίλαο (
Δηθφλα
2
.
12
.ζη).

2.2.1.7

Γιαγπαθή από
ηην ςπηπεζία
.

Ζ εγγξαθή ηνπ ρξήζηε γίλεηαη απηφκαηα απιά κε ηελ εηζαγσγή ηνπ αξηζκνχ ηειεθψλνπ ηνπ
θαηά ηελ πξψηε εθθίλεζε ηεο εθαξκνγήο. Αλ έλαο ρξήζηεο επηζπκεί λα δηαγξαθεί απφ ηελ
ππεξεζία
ψζηε

λα κελ ππάξρεη θακία θαηαρψξεζε ζην θεληξηθφ εμππεξεηεηή γηα ηνλ αξηζκφ
ηνπ, εθηειεί ηελ εληνιή

Unsubscribe

απφ ην θεληξηθφ κελνχ.


Δηθόλα
2
.
13
. Γηαγξαθή από ηελ ππεξεζία.

Ζ εληνιή απηή δηαγξάθεη



φιεο ηηο θαηαρσξήζεηο ζηε ιίζηα θίισλ ηεο εθαξκνγήο,



ηνλ απνζεθεπκέλν αξηζκφ
ηειεθψλνπ πνπ απνηειεί ην κνλαδηθφ ραξαθηεξηζηηθφ
θάζε ρξήζηε ζην ζχζηεκα
(ζε επφκελε εθθίλεζε δεηείηαη πάιη εηζαγσγή
θαη
επηβεβαίσζε νξζφηεηαο
ηνπ αξηζκνχ)
,



θάζε θαηαρψξεζε ηνπ αξηζκνχ ηνπ ρξήζηε απφ ηνλ θεληξηθφ εμππεξεηεηή
,

θαη ηέινο θιείλεη ηελ εθαξκνγ
ή. Όινη νη θίινη ηνπ ρξήζηε πνπ δηαγξάθεηαη ηνλ βιέπνπλ
πιένλ ζηηο ιίζηεο ηνπο σο

pending

.

2.2.1.8

Πληποθοπίερ.

Απφ ηελ ηειεπηαία επηινγή

About

κπνξνχκε λα δνχκε δηάθνξεο πιεξνθνξίεο φπσο
ηνπο
δεκηνπξγνχο ηεο εθαξκνγήο
.


[
19
]


2.2.2

Δθαπμογή
server

Ζ εθαξκνγή ηνπ θεληξηθνχ

εμππεξεηεηή, νπζηαζηηθά ζπληνλίδεη θαη επηηξέπεη ηελ
επηθνηλσλία ησλ εθαξκνγψλ ζηα θηλεηά ηειέθσλα, παξαδίδνληαο θαηά πεξίπησζε ηα
θαηάιιεια κελχκαηα. ΢ηελ
Δηθφλα
2
.
14

θαίλεηαη ε θεληξηθή νζφλε.


Δηθόλα
2
.
14
.
Ζ θεληξηθή νζόλε ηεο εθαξκνγήο
-
εμππεξεηεηή
.

΢ηελ ιίζηα ζηα αξηζηεξά ηνπ παξαζχξνπ εκθαλίδνληαη νη αξη
ζκνί ησλ ζπλδεδεκέλσλ
ρξεζηψλ. Δπηιέγνληαο έλαλ απφ απηνχο έρεη σο απνηέιεζκα λα ζπκπιεξσζνχλ νη αληίζηνηρεο
πιεξνθνξίεο ζηα δεμηά
ηνπ παξαζχξνπ
:



Κάησ απφ ηελ εηηθέηα

Position

εκθαλίδεηαη ε

ηξέρνπζα ζέζε ηνπ (
ζπληεηαγκέλεο
).



Γίπια ζηελ επηινγή

Query

ran
ge


αλαγξάθεηαη ε αθηίλα πνπ έρεη ζέζεη ν ρξήζηεο
φηη ζέιεη λα ελεκεξψλεηαη αλ θάπνηνο ηνλ πιεζηάζεη. Αλ έρεη ηηκή 0 ηφηε ν ρξήζηεο
δελ έρεη δεηήζεη λα ελεκεξψλεηαη γηα θνληηλνχο θίινπο.



΢ηε

ιίζηα


Active

friends

αλαγξάθνληαη φινη νη θίινη ηνπ επηιεγκέλνπ

ρξήζηε (φρη
κφλν νη ζπλδεδεκέλνη) πνπ βξίζθνληαη ζε θαηάζηαζε
accepted
.



΢ηε

ιίζηα


Query

owners

αλαγξάθνληαη νη θίινη ηνπ επηιεγκέλνπ ρξήζηε πνπ έρνπλ
δεηήζεη ελεκέξσζε γηα θνληηλνχο θίινπο.



Σέινο δίπια ζηελ εηηθέηα

Distance

αλα
γξάθεηαη ε απφζηαζε κεηαμχ ηνπ
επηιεγκέλνπ ρξήζηε θαη ηνπ επηιεγκέλνπ θίινπ ηνπ απφ ηε ιίζηα

Active

friends
”.

Οη παξαπάλσ πιεξνθνξίεο ελεκεξψλνληαη άκεζα θαη πάληα ζην ρξήζηε εκθαλίδεηαη
έγθπξα

δεδνκέλα.


[
20
]


Κάησ απφ ηε ιίζηα ζπλδεδεκέλσλ ρξεζηψλ ππάξρεη έλα
drop
-
down

κελνχ
πνπ ρξεζηκεχεη γηα
δνθηκέο

θαη παξέρεη έλαλ εχθνιν ηξφπν γηα λα ζηείινπκε θάπνην κήλπκα ζηελ επηιεγκέλε
(ζηε ιίζηα ζπλδεδεκέλσλ ρξεζηψλ) εθαξκνγή
-
πειάηε. Δπηιέγνληαο θάπνην απφ ηα δηαζέζηκα
κελχκαηα, ζπκπιεξψλνληαο ηηο παξακέηξνπο ηνπ (αλ α
πηφ αθνινπζείηαη απφ παξελζέζεηο)
θαη παηψληαο ην θνπκπί

Send

ην αληίζηνηρν κήλπκα απνζηέιιεηαη ζηνλ επηιεγκέλν ρξήζηε.
Αλαιπηηθ
ά

γηα ηα κελχκαηα πνπ αληαιιάζζνληαη κεηαμχ
clients
-
server

ζην θεθάιαην
3.2.4.1
.

Σέινο ην θνπκπί

Show

on

map

αλνίγεη έλα
web

browser

θαη ρξεζηκνπνηψληαο ην
Google

Static

Maps

API

εκθαλίδεη ζε έλα ράξηε ηελ ηνπνζεζία ηνπ επηιεγκέλνπ ρξήζηε κε κηα κπιε
θαξθίηζα. Αλ ππάξρνπλ επηιεγκέλνη θαη θίινη ηνπ ζπγθεθξηκέλνπ ρξήζηε απφ ηε ιίζηα

Active

friends

ηφηε ζην ράξηε εκθαλίδνληαη φινη νη επηιεγκέλνη ρξήζηεο (νη θίινη
εκθαλίδνληαη κε θφθ
θηλεο θαξθίηζεο).

Γηα παξάδεηγκα κε επηιεγκέλνπο ηνλ ρξήζηε πνπ
θαίλνληαη ζηελ
Δηθφλα
2
.
14

θαη ηνπο δχν θίινπο ηνπ ην ζχζηεκα εκθαλίδεη ηνλ παξαθάησ
ράξηε (
Δηθφλα
2
.
15
).

Ζ εηθφλα απηή είλαη ζηαηηθή θαη αληηπξνζσπεχεη ηε ρξνληθή ζηηγκή πνπ
παηήζεθε ην θνπκπί

Show

on

map
”.

Γηα ελεκέξσζε ηεο εηθφλαο απαηηείηαη εθ λένπ πάηεκα
ηνπ

Sho
w

on

map


(φρη

refresh


ζηνλ
browser
).


Δηθόλα
2
.
15
. Δκθάληζε ράξηε κε ηηο ηνπνζεζίεο ηνπ ρξήζηε θαη ησλ επηιεγκέλσλ θίισλ ηνπ.


[
21
]


΢ηε δεχηεξε θαξηέια

(
Δηθφλα
2
.
16
) βιέπνπκε έλαλ πίλαθα κε φινπο ηνπο ζπλδξνκεηέο ηεο
ππεξεζίαο, θαη πιεξνθνξίεο γηα απηνχο φπσο ε ηειεπηαία θνξά πνπ ζπλδέζεθαλ ζην
ζχζηεκα θαζψο θαη αλ είλαη ζπλδεδεκέλνη ηε ζπγθεθξηκέλε ζηηγ
κή πνπ θνηηάκε ηελ νζφλε.
Παηψληαο

Refresh


γίλεηαη αλαλέσζε ησλ δεδνκέλσλ.


Δηθόλα
2
.
16
. Ο πίλαθαο ζπλδξνκεηώλ ηεο ππεξεζίαο.

Σέινο ζηελ ηξίηε θαη ηειεπηαία θαξηέια

αλαγξάθνληαη φια ηα κελχκαηα πνπ έρεη αλ
ηαιιάμεη
ε εθαξκνγή ηνπ εμππεξεηεηή κε ηηο εθαξκνγέο ζηα θηλεηά ηειέθσλα

(
Δηθφλα
2
.
18
)
.

Κάζε εγγξαθή μεθηλάεη κε:



to

αλ ην κήλπκα απνζηέιιεηαη ζε θάπνην θηλεηφ



from

αλ

ην κήλπκα απνζηέιιεηαη απφ θάπνην θηλεηφ

Αθνινπζεί ν αξηζκφο ηνπ θηλεηνχ κε ην νπνίν έγηλε ε επηθνηλσλία θαη κεηά ην ζψκα ηνπ
κελχκαηνο, γηα ηα νπνία φπσο είπακε ζα αλαθεξζνχκε αλαιπηηθά ζην θεθάιαην
3.2.4.1
.

Δμαίξεζε απνηεινχλ ηα κελχκαηα λέαο ζχλδεζεο ελφο θηλεηνχ ζην ζχζηεκα ηα νπνία
εκθαλίδνληαη σο εμήο:
new user : #
[αξηζκφο ηειεθψλνπ]
#
.

΢ην θάησ κέξνο ηνπ παξαζχξνπ εκθαλίδεηαη ην κήλπκα

Listening

for

incoming

connections

πνπ ζεκαίλεη φηη ε εθαξκνγή αθνχεη γηα εηζεξρφκελεο ζπλδέζεηο ζε πξνθαζνξηζκέλε
δηεχζπλζε θαη πφξηα. ΢ε απηφ ην ρψξν εηδνπνηήζεσλ βιέπνπκε πιεξνθνξίεο γηα λέεο
εηζεξρφκελεο ζπλδέζεηο (
Δηθφλα
2
.
17
)
, φηαλ θάπνην θηλεηφ ζπλδέεηαη ζηνλ
server
.


Δηθόλα
2
.
17
. Πιεξνθνξία γηα λέα εηζεξρόκελε ζύλδεζε.


[
22
]



Δηθόλα
2
.
18
. Ζ ιίζηα κε όια ηα κελύκαηα πνπ έρνπλ αληαιιαρζεί κεηαμύ
server
-
clients
.

2.2.2.1

Μονηέλο Ονηοηήηων
-
΢σέζεων

Βάζηρ Γεδομένων

Ζ
εθαξκνγή
ηνπ εμππεξεηεηή

ρξεζηκνπνηεί κηα
βάζε δεδνκέλσλ ηε κφληκε απνζ
ήθεπζε
θξίζηκσλ δεδνκέλσλ. ΢πγθεθξηκέλα απνζεθεχνληαη:



Οη
ζπλδξνκεηέο ηεο ππεξεζίαο.



Οη ζπζρεηίζεηο κεηαμχ θίισλ
.



Σα κελχκαηα πνπ
δελ παξαδφζεθαλ άκεζα γηαηί ηε ζηηγκή ηεο δεκηνπξγία ηνπο ν
παξαιήπηεο δελ ήηαλ ζπλδεδεκέλνο.

΢χκθσλα κε ην κνληέιν νληνηήησλ
-
ζρέζεσλ έρνπκε ηηο
αθφινπζεο νληφηεηεο

θαη ζρέζεηο
:



Ζ νληφ
ηεηα
ρξήζηεο

πνπ αληηπξνζσπεχεη έλα ρξήζηε ηεο ππεξεζίαο θαη έρεη ηηο
αθφινπζεο ηδηφηεηεο: αλαγλσξηζηηθφ ρξήζηε (είλαη ν αξηζκφο ηνπ θηλεηνχ ηειεθψλνπ
ηνπ), εκεξνκελία ηειεπηαίαο ζχλδεζεο, ζπληεηαγκέλεο ηειεπηαίαο γλσζηήο ζέζεο.



Ζ νληφηεηα
κήλπκα

κε ηηο εμ
ήο ηδηφηεηεο: ην θείκελν ηνπ κελχκαηνο, θαη ηελ
εκεξνκελία πνπ απηφ δεκηνπξγήζεθε
.



Ζ ζρέζε
θίινο

πνπ ζπλδέεη ρξήζηεο κεηαμχ ηνπο. Ζ ζρέζε είλαη έλα πξνο πνιιά.



Ζ ζρέζε
απνζηέιι
εηαη ζε

πνπ ζπλδέεη έλα κήλπκα κε ηνλ παξαιήπηε ηνπ.

Ζ ζρέζε
είλαη πνιιά πξνο πν
ιιά.

Αθνινπζεί ην δηάγξακκα νληνηήησλ
-
ζρέζεσλ (
Δηθφλα
2
.
19
).


[
23
]



Δηθόλα
2
.
19
. Σν δηάγξακκα νληνηήησλ


ζρέζεσλ ηεο βάζεο δεδνκέλσλ πνπ
ρξεζηκνπνηείηαη
.

2.2.3

Γιασείπιζη μέζυ
web



Λειηοςπγία ςποζηήπιξηρ σαπηών

Έλαο
web

server

ιεηηνπξγεί παξάιι
εια θαη
επηηξέπεη ζε δηαρεηξηζηέο ηελ αλάθηεζε
δηαθ
φξσλ πιεξνθνξηψλ γηα ην ζχζηεκα θαζψο επίζεο ζηεξίδεη θαη ην θνκκάηη ηεο εκθάληζεο
ραξηψλ κε ηηο ηνπνζεζίεο ησλ ρξεζηψλ.

Ζ ιεηηνπξγία ησλ ραξηψλ βαζίδεηαη ζην
Google

Static

Maps

API

ζην νπνίν δίλνπκε ζαλ
π
αξάκεηξν ηεο ζπληεηαγκέλεο ησλ ρξεζηψλ θαη καο εκθαλίδεη ηνπο αλάινγνπο ράξηεο.

Γηα λα ιεηηνπξγήζεη ην
Google

Static

Maps

API

ρξεηάδεηαη λα θάλνπκε εγγξαθή

γηα λα
απνθηήζνπκε έλα δσξεάλ θιεηδί
, ην νπνίν αληηζηνηρεί ζε έλα ζπγθεθξηκέλν
domain
.

Ζ

ππεξεζία

απηή

επηηξέπεη

ηελ

ελζσκάησζε

κηαο εηθφλαο ράξηε ζε κηα ηζηνζειίδα ρσξίο ηε
ρξήζε
JavaScript

ή νπνηαζδήπνηε ηερλνινγίαο δπλακηθψλ ζειίδσλ. Ζ εηθφλα δεκηνπξγείηαη
κε βάζε παξακέηξνπο πνπ απνζηέιινληαη κε έλα απιφ
HTTP

αίηεκα, θαη κπνξεί

λα
εκθαληζηεί ζε νπν
ηαδήπνηε ηζηνζειίδα βξίζθεηαη θάησ απφ ην
domain

κε ην νπνίν έρεη γίλεη
ε απφθηεζε ηνπ θιεηδηνχ πνπ ρξεζηκνπνηείηαη (πεξληέηαη θαη απηφ ζαλ παξάκεηξνο ζην
HTTP

αίηεκα).

Γηα ηνπο ζθνπνχο ηεο δηπισκαηηθήο, δεκηνπξγήζεθε ην
domain

friends
-
in
-
range.getmyip.com

γηα ην νπνίν θαηνρπξψζεθε θαη ην αληίζηνηρν ππνρξεσηηθφ θιεηδί.

Κάζε

URL

ράξηε γηα λα ζεσξείηαη έγθπξν θαη λα επηζηξέθεη ζσζηέο εηθφλεο πξέπεη λα έρεη
ηελ αθφινπζε κνξθή:
http
://
maps
.
google
.
com
/
staticmap
?
parameters

Υξήζηεο

Αλαγλσξηζηηθφ

Σειεπηαία ζχλδεζε

Σειεπηαία γλσζηή ζέζε

Δίλαη θίινο κε

Μήλπκα

΢ψκα κελχκαηνο

Ζκεξνκελία δεκηνπξγίαο

Απνζηέιιεηαη ζε

Καηάζηαζε: (
pending,
accepted, blocked)


[
24
]


Οξηζκέλεο

παξάκεηξνη

είλαη

ππνρξεσηηθέο

ελψ άιιεο είλαη πξναηξεηηθέο. Όπσο

ζε

φια

ηα

HTTP

αηηήκαηα

νη

παξάκεηξνη

δηαρσξίδνληαη κε ηνλ ραξαθηήξα &. Αθνινπζεί

ε

ιίζηα

ησλ

παξακέηξσλ

θαη

εμεγείηαη ε ρξήζε ηνπο.

Σν

Static

Maps

API
1

δεκηνπξγεί ηνπο ράξηεο κε βάζε ηηο εμήο παξακέηξνπο:



center

(ρξεηάδεηαη αλ δελ ππάξρεη ε παξάκεηξνο
markers
)
. Οξίδεη ην θέληξν ηεο
εηθφλαο ηνπ ράξηε. Ζ ηηκή ηεο παξακέηξνπ δίδεηαη σο

έλα ρσξηζκέλν κε θφκκα
δεχγνο {γεσγξαθηθφ πιάηνο, γεσγξαθηθφ κήθνο} πνπ πξνζδηνξίδεη κνλνζήκαληα έλα
ζεκείν ζηελ πδξφγεην.



z
oom

(ρξεη
άδεηαη αλ δελ ππάξρεη ε παξάκεηξνο
markers
)
.

Οξίδεη ην επίπεδν εζηίαζεο
ηνπ ράξηε. Ζ ηηκή ηεο παξακέηξνπ είλαη έλαο αθέξαηνο κε επηηξεπηέο ηηκέο απφ 0
(νιφθιεξε ε γε ζε έλα ράξηε) κέρξη θαη 19 (ε κεγαιχηεξε δπλαηή ιεπηνκέξεηα).
΢εκεηψλεηαη φηη δελ είλαη δη
αζέζηκα φια ηα επίπεδα εζηίαζεο ζε φια ηα ζεκεία ηεο
πδξφγεηνπ.



size

(ππνρξεσηηθφ). Οξίδεη ην κέγεζνο ηεο εηθφλαο. Ζ ηηκή ηεο παξακέηξνπ είλαη κηα
ζπκβνινζεηξά κε ην εμήο
format
:
νξηδφληηαΓηάζηαζε
x
θαηαθφξπθεΓηάζηαζε.

Μέγηζην επηηξεπηφ κέγεζνο είλαη 640
x640
.



format

(
πξναηξεηηθφ
)
. Οξίδεη ηνλ ηχπν αξρείνπ ηεο εηθφλαο (
gif
,
jpeg
,
png
).



maptype

(πξναηξεηηθφ). Οξίδεη ηνλ ηχπν ηνπ ράξηε. Γηαζέζηκε ηχπνη είλαη
δνξπθνξηθφο, εδαθηθφο, πβξηδηθφο θαη γηα θηλεηφ.



markers

(πξναηξεηηθφ). Οξίδεη ζεκεία ζην ράξηε φπνπ εκθαλ
ίδεηαη έλα γξαθηθφ ζαλ
θαξθίηζα γηα λα ππνδειψζεη θάπνην ζεκείν ελδηαθέξνληνο. Γίλεηαη ζαλ δεχγε
{γεσγξαθηθνχ πιάηνπο, γεσγξαθηθνχ κήθνο} ζπλνδεπφκελα απφ ην επηζπκεηφ
ρξψκα
θαη πξναηξεηηθά έλαλ ραξαθηήξα ηνπ αγγιηθνχ αιθάβεηνπ.



path

(πξναηξεηηθφ). Γίλεη
ηε δπλαηφηεηα λα δσγξαθηζηνχλ πνιπγσληθέο γξακκέο
(κνλνπάηηα) ζην ράξηε.



span

(πξναηξεηηθφ). Οξίδεη έλα ειάρηζηνλ παξάζπξν πξνβνιή γηα ην ράξηε ζε ζρέζε
κε ην δνζέλ θέληξν.



frame

(
πξναηξεηηθφ). Πεξηβάιιεη ηελ εηθφλα ηνπ ράξηε κε έλα κπιε πεξίγξακκα.



hl

(πξ
ναηξεηηθφ). Οξίδεη ηε γιψζζα εκθάληζεο ησλ νλνκαζηψλ ησλ ηνπνζεζηψλ ζην
ράξηε. Αλ ε ζπγθεθξηκέλε γιψζζα δελ είλαη δηαζέζηκε, ρξεζηκνπνηείηαη ε
πξνεπηιεγκέλε.



key

(
ππνρξεσηηθφ). Σν θιεηδί πνπ έρεη απνδνζεί γηα ην ζπγθεθξηκέλν
domain

απφ ην
νπνίν ζα είλαη δη
αζέζηκεο νη ηζηνζειίδεο.




1

Γηα αλαλεσκέλεο πιεξνθνξίεο ζρεηηθά κε ην
API

http://code.google.com/apis/maps/documentation/staticmaps


[
25
]


2.2.4

Γιαγπάμμαηα ποήρ δεδομένυν

Αθνινπζνχλ δηαγξάκκαηα ξνήο δεδνκέλσλ γηα ηηο αθφινπζεο πεξηπηψζεηο:

2.2.4.1

Πποζθήκη
-
διαγπαθή
-
αποκλειζμόρ
-
άπζη αποκλειζμού

θίλος.

Phonenumber
of recipient
Create
friend
request
Send
message to
server
Receive
message
from client
Perform
action
Database
(
friendlist
)
Create
friend
response
Send
response to
client
Database
(
requests
)
Request of
originator
Response for
originator
Response for
recipient
Receive
response
from server
Client
Server

2.2.4.2

Δπώηημα θέζηρ θίλος.

Phonenumber of
user in question
Create
location
request
Send
message to
server
Receive
message
from client
Find
location
Database
(
users
)
Create
response
Send
response to
client
Request of
originator
Response for
originator
Receive
response
from server
Client
Server
Online
User Info


[
26
]


2.2.4.3

Ππ
οβολή θίλος ζηο σάπηη.

Phonenumber of
user in question
Create map
request
Fetch URL
of request
Receive
message
from web
server
Find
coordinates
Database
(
users
)
Create
response
Send
response to
web server
Map URL
Coordinates of
user in question
Receive
image from
web server
Client
Server
Online
User Info
Process
GET
request
Send
coordinates
request
Receive
coordinates
Phonenumber of
user in question
Fetch map
from Google
Maps
Map image
Web Server
Coordinates of
user in question

2.2.4.4

Δνεπγοποίηζη ενημέπωζη κονηινών θίλων.

Start neaby
friends
display
Send
message to
server
Receive
message
from client
Get nearby
friends
Create
response
Send
response to
client
Request of
nearby friends
List of all
active friends
,
indicating
inside or
outside range
Receive
response
from server
Client
Server
Online
User Info
List of nearby
friends




[
27
]


3


΢σεδίαζη ΢ςζηήμαηορ

Αθνινπζεί κηα ζπλνπηηθή πεξηγξαθή ηεο αξρηηεθηνληθήο ηνπ ζπζηήκαηνο θαη ζηε ζπλέρεηα
αλαιπηηθή πεξηγξαθή ησλ
θιάζεσλ θάζε ππνζπζηήκαηνο. Ζ πεξηγξαθή ζπκπιεξψλεηαη απφ
έλα γεληθφ ζρήκα πνπ δείρλεη ηηο θιάζεηο θαη πψο απηέο επηθνηλσλνχλ κεηαμχ ηνπο.

3.1

Απσιηεκηονική

Σν ζχζηεκα αθνινπζεί ηελ αξρηηεθηνληθή 3
-
tier, φπνπ ηα πξνγξάκκαηα
-
πειάηε επηθνηλσλνχλ
κε έλα
λ

θεληξηθφ εμππεξεηεηή, ν νπνίνο γηα
ιεηηνπξγίεο κφληκεο απνζήθεπζεο αιιά θαη
αλάθηεζεο δεδνκέλσλ

ρξεηάδεηαη λα επηθνηλ
σλήζεη κε θάπνηα βάζε δεδνκέλσλ.

Όπσο είλαη αλακελφκελν, κεηαθέξνπκε φιν ηνλ ππνινγηζηηθφ θφξην ζηελ πιεπξά ηνπ
server

θαη ζρεδηάδνπκε
ηελ

εθαξκνγή πειάηε απιή θαη εχθνιε
ζηε ρξήζε. Δπεηδή η
ν

πξφγξακκα

πειάηε πξννξίδ
ε
ηαη γηα θηλεηά ηειέθσλα πξέπεη λα έρ
εη

έλα απιφ γξαθηθφ πεξηβάιινλ ην
νπνίν ν ρξήζηεο λα κπνξεί λα νηθεηνπνηεζεί εχθνια θαη γξήγνξα, ρσξίο λα είλαη απαξαίηεηε
ε αλάγλσζε θάπνηνπ

εγρεηξηδίνπ ρξήζεο.

3.2

Πεπιγπαθή Κλάζευν

Παξνπζηάδνληαη παξαθάησ

ζπλνπηηθά
νη

ιεηηνπξγίεο/
κέζνδνη
/ζπλαξηήζεηο ησλ θιάζεσλ

θάζε ππνζπζηήκαηνο.

3.2.1

Δθαπμογή
client

Ζ εθαξκνγή
-
πειάηε απνηειείηαη απφ 16 θιάζεηο
Java
.
Απηέο είλαη ρσξηζκέλεο ζε 3 παθέηα:



παθέην
visua
l
:
αθνξά ην γξαθηθφ πεξηβάιινλ ηεο εθαξκνγήο.



παθέην
storage
:
αζρνιείηαη κε ζέκαηα
κφληκεο
απνζήθεπζεο
θαη αλάθηεζεο
πιεξνθνξηψλ ζηε ζπζθεπή


[
28
]




παθέην
comm
:
πεξηέρεη θιάζεηο ζρεηηθέο κε ηελ δηθηπαθή επηθνηλσλία ηνπ
πξνγξάκκαηνο κε ηνλ θεληξηθφ εμππεξεηεηή ή κ
ε ην δίθηπν θηλεηήο ηειεθσλίαο

Αθνινπζνχλ αλαιπηηθά φιεο νη θιάζεηο ηεο εθαξκνγήο:

3.2.1.1

visual.
UI

Ζ θεληξηθή θιάζε ηεο εθαξκνγήο.

Ζ θιάζε απηή είλαη ππνθιάζε ηεο θιάζεο
MIDlet

πνπ αληηπξνζσπεχεη κηα απηφλνκε
εθαξκνγή ηεο πιαηθφξκαο
Java

ME
.
Πεξηέρεη θψδηθα γηα
ηε δεκηνπξγία φισλ ησλ νζνλψλ
πνπ εκθαλίδνληαη θαηά ηε δηάξθεηα εθηέιεζεο ηεο εθαξκνγήο θαζψο θαη ησλ θψδηθα γηα
φινπο ηνπο αθξναηέο ζπκβάλησλ εηζφδνπ απφ ην ρξήζηε.

3.2.1.2

visual.Update

Αλαιακβάλεη ηελ ελεκέξσζε ηνπ γξαθηθνχ πεξηβάιινληνο
.

Ζ θιάζε απηή πεξηιακβά
λεη
κεζφδνπο

πνπ αλαλεψλνπλ ηηο δηάθνξεο νζφλεο ηεο εθαξκνγήο θαη νη νπνίεο κπνξνχλ λα
ρσξηζηνχλ ζε δχν νκάδεο: ζε απηέο πνπ αλαλεψλνπλ ηελ νζφλε κεηά απφ θάπνηα ελέξγεηα
ηνπ ρξήζηε (πρ. ε πξνζζήθε ελφο λένπ θίινπ θαιεί ηε κέζνδν πνπ
εηζάγεη ηε λέα
θαηαρψξ
εζε ζηε ιίζηα θίισλ) θαη ζε απηέο πνπ
θαινχληαη σο απφθξηζε ηεο εθαξκνγήο ζε
θάπνην εηζεξρφκελν κήλπκα

(πρ. έλα εηζεξρφκελν κήλπκα αιιαγήο ζέζεο ελφο θίινπ θαιεί
ηε κέζνδν πνπ ελεκεξψλεη ηε ιίζηα θνληηλψλ θίισλ)
.

3.2.1.3

visual.List

Δπεθηείλεη ηελ νζφλε
List.

Ζ

θιάζε

javax
.
microedition
.
lcdui
.
List

είλαη

ππεχζπλε

γηα

ηε δεκηνπξγία νζνλψλ πνπ έρνπλ
ιεηηνπξγηθφηεηα ιίζηαο, δειαδή κηα ζεηξά απφ επηινγέο πνπ ν ρξήζηεο κπνξεί λα
πξνζπειάζεη θαη λα επηιέμεη απηή ή απηέο πνπ ηνλ ελδηαθέξνπλ. Ζ θιάζε
visual
.
List

επεθηείλεη

ηελ πξναλαθεξζείζα θιάζε κε ιεηηνπξγίεο αλαδήηεζεο, πξνζζήθεο θαη δηαγξαθήο
θαηαρσξήζεσλ.

3.2.1.4

visual.Ticker

Δπεθηείλεη ηελ νζφλε
Ticker.

Ζ

θιάζε

javax
.
microedition
.
lcdui
.
Ticker

είλαη

ππεχζπλε

γηα

ηε δεκηνπξγία ελφο ρψξνπ
πξνβνιήο κελπκάησλ ηεο εθαξκνγήο
πάλσ
ζη
ε
λ

ηξέρνπζα νζφλε. ΢πλήζσο απηά
εκθαλίδνληαη σο θπιηφκελα κελχκαηα ζε έλα ρψξν θάησ απφ ηνλ ηίηιν ηεο εθαξκνγήο. Ζ
θιάζε
visual
.
Ticker

επεθηείλεη ηε ιεηηνπξγηθφηεηα ηεο πξναλαθεξζείζαο θιάζεο θάλνληαο
ηα εκθαληδφκελα κελχκαηα λα ζπκπεξηθέξνληαη ζαλ ζηνίβ
α. Γειαδή λέα κελχκαηα

[
29
]


εκθαλίδνληαη, δηαγξάθνληαο ηα παιηά, ελψ φηαλ ε εηδνπνίεζε δελ ρξεηάδεηαη πιένλ,
επηζηξέθεη ην πξνεγνχκελα εκθαληδφκελν κήλπκα.

3.2.1.5

storage.Initialization

Αλαιακβάλεη ηελ α
ξρηθνπνίεζε ηεο εθαξκνγήο
.

Καηά ηελ πξψηε εθηέιεζε ηεο εθαξκνγήο

δεηάεη απφ ην ρξήζηε λα εηζάγεη ηνλ αξηζκφ ηνπ ηειεθψλνπ ηνπ, ελψ ζε επφκελεο εθηειέζεηο
δηαβάδεη ηνλ ηειεθσληθφ θαηάινγν ηεο ζπζθεπήο, αλαζχξεη ηε ιίζηα θίισλ ηνπ ρξήζηε θαη
ηηο απνζεθεπκέλεο ηνπνζεζίεο απφ ην κφληκν απνζεθεπηηθφ ρψξν ηεο εθαξκνγήο, ειέγ
ρεη γηα
ηελ ππνζηήξημε απηφκαηνπ εληνπηζκνχ ζέζεο θαη εθθηλεί ηελ ζχλδεζε κε ηνλ θεληξηθφ
εμππεξεηεηή.

3.2.1.6

storage.Load

Πεξηέρεη κεζφδνπο πνπ εθηεινχλ ι
εηηνπξγίεο
αλάθηεζεο δεδνκέλσλ απφ ην ρψξν κφληκεο
απνζήθεπζεο ηεο εθαξκνγήο. ΢πγθεθξηκέλα επηηξέπεη ηελ αλά
θηεζε ηνπ θαηαιφγνπ ησλ
επαθψλ ηεο ζπζθεπήο, ηνπ αλαγλσξηζηηθνχ ρξήζηε, ηεο ιίζηαο θίισλ, θαζψο θαη ηεο ιίζηαο
απνζεθεπκέλσλ ηνπνζεζηψλ. Οη κέζνδνη απηνί θαινχληαη θαηά ηελ αξρηθνπνίεζε ηεο
εθαξκνγήο απφ ηελ θιάζε
Initialization
.

3.2.1.7

storage.
Friend

Ζ νληφηεηα
θίινο φπσο απηή δηαρεηξίδεηαη απφ ηελ εθαξκνγή
.

Πεξηέρεη πεδία φπσο ην φλνκα,
ν αξηζκφο ηειεθψλνπ (κνλαδηθφ αλαγλσξηζηηθφ) θαη ηελ θαηάζηαζε ηνπ θίινπ ζηε ιίζηα ηνπ
ρξήζηε

θαη θαηάιιειεο κεζφδνπο γηα ηελ επεμεξγαζία απηψλ.

3.2.1.8

storage.
KnownLocation

Ζ νληφηεηα
ηνπνζεζία φπσο απηή δηαρεηξίδεηαη απφ ηελ εθαξκνγή
.

Πεξηέρεη πεδία φπσο ην
φλνκα θαη ηηο ζπληεηαγκέλεο ηεο ηνπνζεζίαο θαζψο θαη θαηάιιειεο κεζφδνπο γηα ηελ
επεμεξγαζία απηψλ.

3.2.1.9

storage.StringTokenizer

Βνεζεηηθή θιάζε
πνπ ρξεζηκνπνηείηαη γηα ην δηαρσξηζκφ κηα

ζπκβνινζεηξάο ζε επηκέξνπο
ζπκβνινζεηξέο νξηνζεηνχκελεο απφ θάπνηνλ ραξαθηήξα ή αθνινπζία ραξαθηήξσλ.

3.2.1.10

comm.ServerConnection

Αλαιακβάλεη ηε ζ
χ
λδεζε ζηνλ θεληξηθφ εμππεξεηεηή θαη ηε δηαηήξεζή ηεο. Αθνχ ε ζχλδεζε
επηηεπρζεί δηαηεξεί αλνηρηφ ην θαλάιη επηθνηλ
σλίαο θαη παξαθνινπζεί γηα εηζεξρφκελα
κελχκαηα.


[
30
]


3.2.1.11

comm.Protocol

Τινπνίεζε πξσηνθφιινπ επηθνηλσλίαο.

Παξέρεη κεζφδνπ
ο

δεκηνπξγίαο φισλ ησλ κελπκάησλ
πνπ απνζηέιινληαη θαηά ηε δηάξθεηα ηεο

εθαξκνγήο θαζψο θαη αλαγλψξηζεο φισλ ησλ
εηζεξρφκελσλ κελπκάησλ θαη εθ
ηέιεζε ηεο θαηάιιειεο ελέξγεηαο.

3.2.1.12

comm.Outgoing

Γηαρείξηζε εμεξρφκελσλ κελπκάησλ.

Οη κέζνδνη απηήο ηεο θιάζεο ρξεζηκνπνηνχληαη γηα ηελ
απνζηνιή κελπκάησλ απφ ην θηλεηφ ηειέθσλν ζηνλ θεληξηθφ εμππεξεηεηή. Αθνχ γίλεη ε
απαξαίηεηε ζπιινγή πιεξνθνξηψλ ρξεζηκνπν
ηνχληαη νη κέζνδνη ηεο θιάζεο
Protocol

γηα ηε
δεκηνπξγία ησλ κελπκάησλ θαη θαηφπηλ γίλεηαη ε απνζηνιή.

3.2.1.13

comm.Validation

Αλαιακβάλεη ηελ επηθχξσζε ηνπ αξηζκνχ ηειεθψλνπ πνπ εηζήγαγε ν ρξήζηεο.

Όπσο έρεη
ήδε αλαθεξζεί ηελ πξψηε θνξά πνπ εθηειείηαη ε εθαξκνγή ζε κηα ζπζθεπή δεηείηαη απφ ην
ρξήζηε λα εηζάγεη ηνλ αξηζκφ ηειεθψλνπ ηνπ. Ζ θιάζε απηή
εθηειεί ηελ επαιήζεπζε ηνπ
αξηζκνχ πνπ εηζάγεη ν ρξήζηεο κε ην λα ζηέιλεη έλα
SMS

ζην λνχκεξν απηφ θαη
πεξηκέλεη ηε
ιήςε απφ ηε ζπζθεπή.

3.2.1.14

comm.BreakConnection

Βνεζεηηθή θιάζε γηα ηε δηαθνπή κηαο ζχλδεζεο. Δπεηδή νη πεξηζζφηεξεο ζπλδέζεηο πνπ
πξαγκαηνπνηνχληαη είλαη
blocking

I
/
O
,
δειαδή ην λήκα πνπ ηηο θαιεί ζηακαηάεη ηελ
εθηέιεζε ηνπ ζε εληνιέο αλάγλσζεο, κέ
ρξηο φηνπ ιεθζνχλ θάπνηα δεδνκέλα, ρξεζηκνπνηνχκε
απηή ηελ θιάζε γηα λα δηαθφπηνπκε απηέο ηηο ζπλδέζεηο κεηά απφ έλα νξηζκέλν ρξφλν
αλακνλήο.
΢ηελ ηξέρνπζα πινπνίεζε απηφ γίλεηαη κφλν ζηελ αλακνλή γηα εηζεξρφκελν
SMS

θαηά ηελ αξρηθή δηαδηθαζία ηαπηνπνίεζεο

θαη επηθχξσζεο ηνπ αξηζκνχ ηειεθψλνπ πνπ
εηζάγεη ν ρξήζηεο.

3.2.1.15

comm.ManualPositioning

Λεηηνπξγία κε απηφκαηεο ξχζκηζεο ζέζεο.

Δθηειεί αιιαγέο ζηελ ηξέρνπζα ζέζε κεηά απφ
είζνδν απφ ην ρξήζηε θαη ελεκεξψλεη θαηάιιεια ην γξαθηθφ πεξηβάιινλ αιιά θαη ηνλ
θεληξηθ
φ εμππεξεηεηή.

3.2.1.16

comm.AutoPositioning

Λεηηνπξγία απηφκαηεο ξχζκηζεο ζέζεο.

Υξεζηκνπνηεί ην
Location

API

ζε φζεο ζπζθεπέο
απηφ ππνζηεξίδεηαη γηα ηελ αλάθηεζε ηεο ηξέρνπζαο ζέζεο ηνπ θηλεηνχ. Πξνζθέξεη ηε

[
31
]


δπλαηφηεηα πξνγξακκαηηζκνχ εξψηεζεο γηα ηελ ζέζε ηνπ θη
λεηνχ αλά κεηαβιεηά ρξνληθά
δηαζηήκαηα, ή απελεξγνπνίεζεο απηήο.

visual
.
UI
visual
.
List
visual
.
Update
visual
.
Ticker
storage
.
Initialization
storage
.
Friend
storage
.
Load
storage
.
KnownLocation
storage
.
StringTokenizer
comm
.
ServerConnection
comm
.
Outgoing
comm
.
Protocol
comm
.
Validation
comm
.
BreakConnection
comm
.
AutoPositioning
comm
.
ManualPositioning

Δηθόλα
3
.
1
.
Block

δηάγξακκα θιάζεσλ ηεο εθαξκνγήο
-
πειάηε.

3.2.2

Δθαπμογή server

Ζ εθαξκνγή
-
πειάηε απνηειείηαη απφ 1
0

θιάζεηο