ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ

bluegooseamusementInternet and Web Development

Aug 14, 2012 (6 years and 5 months ago)

775 views








ΠΑΝΔΠΙ΢ΣΗΜΙΟ

ΘΔ΢΢ΑΛΙΑ΢

ΠΟΛΤΣΔΥΝΙΚΗ ΢ΥΟΛΗ

ΣΜΗΜΑ

Μ
ΗΥΑΝΙΚΩΝ
ΗΛΔΚΣΡΟΝΙΚΩΝ

Τ
ΠΟΛΟΓΙ΢ΣΩΝ

ΣΗΛΔΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΓΙΚΣΤΩΝ










Επιζηημονικοί Τπολογιζμοί ζηον Παγκόζμιο Ιζηό





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


ηνπ


Γιώργοσ ΢αλούζηροσ




















Βόινο,
09
-
10
-

200
8

























Η ζειίδα απηή είλαη ζθόπηκα ιεπθή.


ΠΑΝΔΠΙ΢ΣΗΜΙΟ ΘΔ΢΢ΑΛΙΑ΢

ΠΟΛΤΣΔΥΝΙΚΗ ΢ΥΟΛΗ

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

ΣΗΛΔΠΙΚΟΙΝΩΝΙΩΝ

ΚΑΙ ΓΙΚΣΤΩΝ



Επιζηημονικοί Τπολογιζμοί ζηον Παγκόζμιο Ιζηό





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


ηνπ


ΓΙΩΡΓΟΤ

΢ΑΛΟΤ΢ΣΡΟΤ






Επιβλέπονηες

:


Βάβαιεο Δκκαλνπήι



Σζνκπαλνπνύινπ Γηώηα

Αλαπιεξσηήο Καζεγεηήο
Π.
Θ. Δπίθνπξνο Καζεγήηξηα Π.Θ.





Δγθξίζεθε από ηε

δηκειή

εμεηαζηηθή επηηξνπή ηελ
09
-
10
-
2008




(Υπογραφή)







(Υπογραφή)




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





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



Βάβαιεο Δκκαλνπήι Σζνκπαλνπνύινπ Γηώηα

Αλ.
Καζεγεηή
ο Παλ. Θεζζαιίαο


Δπίθνπξν
ο Καζεγήηξηα Παλ
.

Θεζζαιίαο


































(Υπογραφή)

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

ΓΙΩΡΓΟ΢ ΢ΑΛΟΤ΢ΣΡΟ΢

Γηπισκαηνύρνο Μεραληθόο Ηιεθηξνληθώλ Τπνινγηζηώλ, Σειεπηθνηλσληώλ θαη Γηθηύσλ
Παλεπηζηεκίνπ Θεζζαιίαο


© 2008


All

rights

reserve
d





























Η ζειίδα απηή είλαη ζθόπηκα ιεπθή.
Πίνακας περιετομένων


Ειζαγωγή

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

1

1.1

Αληηθείκελν

δηπισκαηηθήο

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

2

1.2

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

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

3



΢τεηικές δραζηηριόηηηες και εργαζίες

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

5

2.1

Problem

Solving

Environments

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

5

2.2

Systems for Grid Computing

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

7

2.3 Δξγαιεία γηα ηε δεκηνπξγία επηζηεκνληθώλ ξνώλ εξγαζίαο

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

13



Θεωρηηικό και ηετνολογικό σπόβαθρο

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

15

3.1

Web Services

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

15

3.1.1

SOAP

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

17

3.1.2
Web Services Description Language (WSDL)

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

18

3.1.3 Universal Description, Discovery and Integration (UDDI)
................................
...

18

3.2

Web Services Orchestration
-

BPEL

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

19

3.3

Η βηβιηνζήθε LAPACK

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

19

3.4

Web Service Technologies
................................
................................
........................

19



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

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

21

4.1

Έθζεζε κεζόδσλ ηεο LAPACK σο
Web

Services

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

21

4.2 Δλζσκάησζε ηεο
LAPACK

ζην
WSRF

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

22

4.3

Τινπνίεζε ησλ
Web

Services

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

24

4.4

Αξρηηεθηνληθή ΢πζηήκαηνο

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

24

4.5 ΢ρεδίαζε δηεξγαζηώλ κε ηε γιώζζα
WS
-
BPEL

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

26

4.
6

΢ύλνςε

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

30



Hellas Grid / EGEE

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

31

5.1

Η ππνδνκή ηνπ Η
ellas

Grid

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

31

5.2

Πξόζβαζε ζηελ ππνδνκή

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

32

5.3

Αλάπηπμε ππεξεζηώλ ζην
Hellas

Grid

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

34




5.4 ΢ρεδίαζε θ
αη πινπνίεζε ησλ ππεξεζηώλ

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

34

5.5 Πξνβιήκαηα

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

37

5.
6


΢ύλνςε

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

38

Βιβλιογραθία

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

39

ΠΑΡΑΡΣΗΜΑ Α

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

42

DDOT Java implementation

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

42

DGBSV Java implementation

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

43

ΠΑΡΑΡΣΗΜΑ Β

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

46

DDOT WSDL

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

46

DGBSV W
SDL

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

47

Parallel DDOT WSDL

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

48

Parallel DDOT flow

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

49

DGBSV flow
................................
................................
................................
........................

51









1




Δηζαγσγή


Ο ηνκέαο ηνπ
scientific

computing

αζρνιείηαη κε ηε

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

ρξήζε ηνπο ζ
ηελ α
λάπηπμε εθαξκνγώλ ινγηζκηθνύ
,

κε ζηόρν
ηελ επίιπζε απαηηεηηθώλ,
από άπνςε ππνινγηζηηθήο ηζρύνο, επηζηεκνληθώλ πξνβιεκάησλ θαη πξνβιεκά
ησλ
Μ
ερ
αληθήο. Ιζηνξηθό νξόζεκν γηα ηε

ζεκειίσζε ηνπ
ηνκέα ζεσξείηαη ην έηνο 1947 κε

η
ε
λ

επηζηεκνληθή κειέηε ησλ John von Neumann θαη Herman Goldstine κε ηίηιν "Numerical
Inverting of Matrices of High Order", ε νπνία είλα
η από ηηο πξώηεο πνπ αζρνιείηαη

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

ηνκέαο απηόο έρεη καθξά ηζηνξία

θαη είλαη πξνγελέζηεξνο
ηεο Γηθηύσζεο ησλ Ηιεθηξνληθώλ Τ
πνινγηζηώλ θαη ηνπ
World

Wide

Web

πνπ έρνπλ θέξεη
ηελ επαλάζηαζε ηεο πιεξνθνξίαο
,

ηελ νπνία βηώλνπκε

ζηηο κέξεο καο. Δθηόο από ηε

ρξήζε
ηνπ δη
θηύνπ γηα
ηελ αληαιιαγή

πιεξνθνξηώλ
, ελδηαθέξνλ παξνπζηάδεη θαη

ε κειέηε ησλ
δπλαηνηήησλ πνπ πξνζθέξεη γηα πξόζβαζε

ζε ππν
ινγηζηηθή ηζρύ
.

Η πθηζηάκελε θαηάζηαζε ζηνλ ηνκέα ηνπ
scientific

computing
, σο πξνο ηελ νπηηθή ηνπ πώ
ο
θάπνην
ο

κε έλα δεδνκέλν πξόβιεκ
α κπνξεί λα εθηειέζεη επηζηεκνληθνύο ππνινγηζκνύο
,

δε

δηαθέξεη ζεκαληηθά από ην παξειζόλ. Σα βήκαηα

πνπ

πξέπεη λα αθνινπζεζνύλ

είλαη ε
εύξεζε ηεο θαηάιιειεο

βηβιηνζήθεο γηα ην δεδνκέλν πξόβιεκα
,
ε
ιήςε θαη
ε
εγθαηάζηαζε
ηνπηθά απηήο

θαη ζηε
ζπλ
έρεηα

ε εθηέ
ιεζε ησλ ππνινγηζκώλ ζε θά
πνην κεράλεκα. Η
δηαδηθαζία,

όκσο, απηή

παξνπζηάδεη
θάπνηα πξνβιήκαηα
.

Η επίιπζε επηζηεκνληθώλ πξνβιεκάησλ κπνξεί λα γίλεη απαηηεηηθή ηόζν ζε κλήκε όζν θαη
ζε επεμεξγαζηηθή ηζρύ. Απηό ζεκαίλεη όηη
,

γηα λα εθηειέζεη θάπνηνο

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

πνιππινθόηεηα
,

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

λα δηαζέηεη

εμνπζηνδνηεκέλε πξόζβαζε

ζε εηδηθό πιηθό, ην νπνίν
κπνξεί λα είλαη είηε θάπνην
ο

supercomputer
, είηε θάπνηα
computational

clus
ters
.
Απηό
ζπλεπάγεηαη

θόζηνο

ηόζν

γηα ηελ αγνξά ηνπ

εμεηδ
ηθεπκέλνπ πιηθνύ
,

όζν θαη γηα ηε
δηαρείξηζε θαη ζπληήξεζή

ηνπ.
Δπίζεο,

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








2

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

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

θξίλεηαη

πεξηηηό.

Η ρξήζε εμεηδηθεπκέλσλ βηβιηνζεθώλ γηα
scientific

computing

εγείξεη επηπιένλ

πξνβιήκαηα

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

ζπλαληήζεη θαηά ηελ
εγθαηά
ζηαζή

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

πξέπεη
,

θαηαξ
ράο
,

λα ηελ
αλαδεηήζεη κόλνο ηνπ θαη ζηε ζπλέρεηα

λα επηιύζεη ηηο εμαξηήζεηο ινγηζκηθνύ πνπ κπ
νξεί λα
πξνθύςνπλ, αλάινγα κε ηε

ζηνρεπόκελε πιαηθόξκα (π.ρ. εύξεζε ηνπ θαηάιιεινπ
compiler
,
εύξεζε θαη εγθαηάζηαζε άιισλ ηπρόλ εμαξηήζεσλ)
,

νη νπνίεο δελ είλαη πξνθαλέο όηη
κπνξνύλ εύθνια λα ιπζνύλ.

Έηζη, δελ παξέρεηαη δπλακηθή θαη νκνηόκνξθε πξόζβαζε ζηελ
πιεζώξα βηβιηνζεθώλ γηα
scientific

computing
,

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

1.1

Αληηθείκελν

δηπισκαηηθήο

΢ηα πιαίζηα απηήο ηεο
εξγαζίαο
,

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

ε νπνία

δίλεη ιύζε ζηα παξαπάλσ πξνβιήκαηα. Σν κνληέιν
,

πνπ εηζάγνπκε γηα ηελ εθη
έιεζε επηζηεκνληθώλ ππνινγηζκώλ
,

πεξηιακβάλεη

ηελ
έθζεζε

κεζόδσλ

(
legacy

code
) γηα επηζηεκνληθνύο ππνινγηζκνύο σο
Web

Services

θαη ηελ αλάπηπμε
εθαξκνγώλ γηα ηε

δηελέξγεηα απηώλ κε ηε

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

Δπηθεληξσζήθακε
ζηελ έθζεζε βηβιηνζε
θώλ γηα
scientific

computing

γξακκέλσλ ζε
παξαδνζηαθέο γιώζζεο πξνγξακκαηηζκνύ,
ζπγθεθξηκέλα ζε
fortran
77
, σο
Web

Services
. Με
ηελ παξνρή

βηβιηνζεθώλ
,

σο ππεξεζηώλ πξνζβάζηκσλ

κέζσ ζηάληαξλη

πξσηνθόιισλ ηνπ
Γ
ηαδηθηύνπ
,

όπσο ην
HTTP

θαη
ην
SOAP
,

νη νπνίεο

απνηεινύλ
θαη
ηνλ θύξην θνξκό ηνπ
scientific

computing
,
αιιάδεη

ξηδηθά

ε πθηζηάκελε θαηάζηαζε ζηνλ ηξόπν κε ηνλ νπνίν
εθηεινύκε επηζηεκνληθνύο ππνινγηζκνύο.

Οη ππεξεζίεο απηέο κπνξνύλ λα αλαθαιπθζνύλ

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

θ
άπνην
π

UDDI

repository

(βι. 3.1.3)
.
Δπίζεο,

πηνζεηνύλ έλα κνληέιν
ραιαξά ζπλδεδεκέλσλ ζπζηεκάησλ
,

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

(αλεμαξηεζία
γιώζζαο
-
πιαηθόξκαο)

ζε έλα αλνκνηνγελέο πεξηβάιινλ
,

όπσο
είλαη η
o

Γηαδίθηπν
.

H

έθζεζε ηεο πξνγξακκαηηζηηθ
ήο ινγηθήο ηέηνησλ βηβιηνζεθώλ σο
Web

Services

επηηπγράλεη
κεγάιε δηαθάλεηα γηα ηνλ ηειηθό ρξήζηε
,

θαζώο κπνξεί λα έρεη
πξόζ
βαζε ζε απηέο κέζσ
ζηάληαξλη
πξσηνθόιισλ ηνπ Γηαδηθηύνπ. Η ίδηα

ππεξεζία κπνξεί
,

γηα παξάδεηγκα
,

λα ηξέρεη
ηνπηθά ζε θάπνην
server
,
ζε θάπνην
computational

cluster

ή ζε
grid

πεξηβάιινλ, ιεπηνκέξεηεο
πνπ δελ απαζρνινύλ ηνλ ηειηθό ρξήζηε
,

θαζώο ν ηξόπνο πξόζβαζεο παξακέλεη ίδηνο.

Με ηε ρξήζε απηνύζησλ βηβιηνζεθώλ επηζηεκνληθνύ ππνινγηζκνύ

απνθεύγνπκε ηνλ
επαλαζρεδηαζκό
ηνπο, ν
νπνίνο έρε
η κεγάιν θόζηνο, θαη
εθκεηαιιεπόκαζηε ηελ








3

α
πνδεδεηγκέλε πςειή απνδνηηθόηεηα
. Δπηπιένλ
, κε ηε

ρξήζε ελόο ηέηνηνπ κνληέινπ
,

ν
ηειηθόο ρξήζηεο απνθηά
πξόζβαζε ζε ππνινγηζηηθή ηζρύ (
cluster

ή
grid

πεξηβάιινλ) κε
δηαθαλή ηξόπν.

΢πλνςίδνληαο
,

ζηελ παξνύζα εξγαζί
α αζρνιεζήθακε κε ηα παξαθάησ δεηήκαηα:

1.

Δθζέζακε κεζόδνπο ηεο
LAPACK
,
γξακκέλσλ ζε
fortran
77,
σο
Web

Services
.

2.

΢ρεδηάζακε ξνέο εξγαζίαο κε ηε

ρξήζε ηεο γιώζζαο
BPEL
.

3.

M
ειεηήζακε ηηο δπλαηόηεηεο γηα αλάπηπμε
Web

Services

ζηελ ππνδνκή ηνπ
Hellas

Grid

-

EGEE
.


1.2

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

΢ην
2
ν

θεθάιαην

γίλεηαη αλαθνξά ζε

ζρεηηθέο πξνζπάζεηεο πνπ έρνπλ γίλεη ζηελ αλάπηπμε
ζπζηεκάησλ γηα
scientific

computing
.

΢
ην 3
ν

θεθάιαην

πεξηγξάθνπκε

ηηο ηερλνινγίεο πνπ
ρξεζηκνπνηήζακε
,

ελώ

ζην 4
ν

ηε δνκή θαη ηελ πινπνίεζε ηνπ ζπζηήκα
ηνο. Σέινο,

ζην 5
ν

θεθάιαην παξνπζηάδεηαη

ε κειέηε γύξσ από ηελ αλάπηπμε
Web

Services

γηα ηελ εθηέιεζε
ππνινγηζκώλ ζην
EGEE
.









4










5



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

Σελ ηειεπηαία δεθαεηία
,

ε κεγάιε πξόνδνο
ζηε

δηθηύσζε

ησλ
ε
ιεθηξνληθώλ ππνινγηζηώλ
θαη ε αλ
άπηπμε ηνπ
World

Wide

Web

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

ζηηο κέξεο καο
. Πέξαλ όκσο
ηεο

ρξήζε
ο

ηνπ δηθηύνπ γηα ηελ αληαιιαγή
πιεξνθνξηώλ
,

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

δηαθαλή

πξόζβαζε ζε
ππνινγηζηηθή ηζρύ
.

΢ηόρνο ησλ παξαπάλσ

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

ρξήζηε έλα πνιύηηκν
εξγαιείν γηα ηελ επίιπζε πξνβιεκάησλ

επηζηεκνληθνύ ππνινγηζκνύ θαη Μ
εραληθήο
.

΢ηελ
ελόηεηα 2.1
παξνπζηάδνληαη

εξεπ
λεηηθέο
πξν
ζπάζεηεο ζε ό, ηη αθνξά
ηελ θαηα
ζθεπή
πεξηβαιιόλησλ

γηα επηζηεκνληθνύο ππνινγηζκνύο (
Problem

Solving

Environments
)

πξνζβ
άζη
κσλ

κέζσ ηνπ δηθηύνπ
,
ζηελ ελόηεηα 2.2

εξγαζίεο ζρεηηθά κε ηελ αλάπηπμε
ζπζηεκάησλ

γηα
grid

computing

[
32
] θαη ηέινο ζ
ηελ
ελόηεηα 2.3 εξγαιεία γηα ηε

ζύλζεζε
επηζηεκνληθώλ ξνώλ εξγαζίαο (
scientific

flows
).

2.1

Problem

Solving

Environments

Σα πεξηβάιινληα
γηα επηζηεκνληθνύο ππνινγηζκνύο

(
PSE

s
)

ζρεδηάζηεθαλ

ζην παξειζόλ

θαη
ζπλερίδ
νπλ λα
αλαπηύζζνληαη
,

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

δηαθνξεηηθώλ βηβιηνζεθώλ

γηα
scientific

computing
,

παξέρνληαο ζην

κε έκπεηξν
ρξήζηε
δηεπαθέο

πςεινύ επηπέδν
π θαη

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

κία γιώζζα πςεινύ επηπέδνπ γηα ην
λ νξηζκό λέσλ
δηαδηθαζηώλ

επίιπζεο πξνβιεκάησλ
,
θαζώο θαη γξαθηθέο δηεπαθέο ηόζν γηα ηελ
αλαπαξάζηαζε πξνβιεκάησλ
,

όζν θαη γηα ηελ νπηηθνπνίεζε ησλ ιύζεσλ.

Από ηηο αξρηθέο εξεπλεηηθέο πξνζπάζεηεο

(1995)

γηα ηελ αλάπηπμε
PSE

s

πξνζβάζηκσλ κέζσ
ηνπ δηθηύνπ ε
ίλαη ην

WEB
//
ELLPACK

[9]
,

όπσο θαη ν απόγνλό
ο ηνπ

PELLPACK

[24]

απ
ό
ην Π
αλεπηζηήκην ηνπ
Purdue
.









6

T
α παξαπάλσ ζπζηήκαηα ιεηηνπξγνύλ σο
PSE

s

γηα ηελ επίιπζε Μεξηθώλ Γηαθνξηθώλ
Δμηζώζεσλ (ΜΓΔ). Σα πεξηβάιινληα απηά
,

σο
PSE

s
,

ελζσκαηώλνπλ κία πιεζώξα
βηβιηνζε
θώλ γηα επίιπζε ΜΓΔ
,

παξέρνληαο κηα δηεπαθή
,

πνπ ηεξεί ηα παξαπάλσ
ραξαθηεξηζηηθά
,

δειαδή κηα γιώζζα πςεινύ επηπέδνπ γηα ηελ επίιπζε

θαη

ηνλ
νξηζκό
πξνβιεκάησλ ΜΓΔ
,

θαζώο
θαη ησλ ζρεκάησλ επίιπζή
ο
ηνπο.
Δπίζεο,

πεξηιακβάλνπλ κηα
γξαθηθή δηεπαθή
,

ε νπνία βν
εζάεη ηνπο ρξήζηεο
ηόζν
ζηνλ νξηζκό πξνβιεκάησλ ΜΓΔ
,

όζν
θαη ζ
ηελ νπηηθνπνίεζε ησλ ιύζεώ
λ

ηνπο
.

Η εθηέιεζε

είλαη δπλαηή ζε κηα πνηθηιία
πιαηθόξκσλ
,

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


H

δπλαηόηεηα π
ξόζβαζεο
θαη ζηα δύν
ζ
πζηή
κα
ηα

γηα ηηο εθαξκνγέο πειάηε δε

ζηεξίδεηαη
ζε
ζηάληαξλη

ηερλνινγίεο

ηνπ Γ
ηαδηθηύνπ
,

αιιά ζ
ηελ θαηάιιειε ξύζκηζε ηνπ
X

Window

System

[33]
,

γεγνλόο
πνπ νθείιεηαη ζην
όηη αλαπηύρζεθε

ζε κία πεξίνδν
,

όπνπ νη ηερλνινγίεο
web

ήηαλ ζηα
αξρηθά ζηάδηα αλάπηπμή
ο ηνπο ζε ζρέζε κε λεόηεξεο πξνζεγγίζεηο.

΢ην ζρήκα
2.1 παξνπζηάδεηαη κία παλνξακηθή άπνςε ηεο αξρηηεθηνληθήο ηνπ
Web
//
ELLPACK
.


΢ρήκα 2.1:
Web
//
ELLPACK

Μία

λεόηεξε

πξνζέγγηζε
,

ζε

ζρέζε

κε

ηα

παξαπάλσ

ζπζηήκαηα
,

είλαη

ην


Α

Web
-
Based

Problem Solving Environment for Solution of Option Pricing Problems and Comparison of
Methods


[4]
,

ην

νπνίν

πξνέξρεηαη

από

ην

Παλεπηζηήκην

Παηξώλ

(2002).

Σν παξαπάλσ ζύζηεκα
είλαη κία δηαδηθηπαθή πιαηθόξκα
,

ε νπνία ελζσκαηώλεη πνηθίιεο
βηβιηνζήθεο γηα
op
tion

pricing

problems

[34]. Η ζρεδίαζή

ηεο έρεη
γίλεη βάζεη

κίαο αλνηρηήο
αξρηηεθηνληθήο βαζηζκέλεο ζε
WWW

ηερλνινγίεο
(
html
,
php
,
http
)
.

Η εθαξκνγή πειάηεο
έρεη πξόζβαζε ζην ζύζηεκα κέζσ ελόο
web

browser
. Μέζα από ην γξαθηθό πεξηβάιινλ ηεο
web

δηεπαθήο δί
λεηαη ν νξηζκόο ηνπ πξνβιήκαηνο
,

ελώ παξέρεηαη θαη
ε δπλαηόηεηα
νπηηθή
ο

αλαπαξάζηαζε
ο

ηεο εμόδνπ.

΢ην ζρήκα 2.2
παξνπζηάδεηαη

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










7


΢ρήκα

2.2
:
Web
-
Based Problem Solving Environment






2.2

Systems for Grid Computing

O

όξνο

Grid

Co
mputing

ρξεζηκνπνηήζεθε

γηα

πξώηε

θόξα

ζηηο

αξρέο

ηεο

δεθαεηίαο

ηνπ

1990
ζηελ

εξγαζία

ησλ

Ian

Foster

θαη

Carl

Kesselmans

"
The

Grid
:
Blueprint

for

a

new

computing

infrastructure
", πξνθεηκέλνπ

λα

δειώζεη

όηη

ζην

κέιινλ

ε

πξόζβαζε

ζε

ππνινγηζηηθή

ηζρύ
ζα γίλε
η ηόζν απιή
,

όζν
θαη
ε πξόζβαζε ζη
ν δίθηπν

ειεθηξηθή
ο

ελέξγεηα
ο

(ν μέλνο όξνο είλαη
electrical

power

grid
)
.

T
α ζπζηήκαηα γηα
grid

computing

έρνπλ σο ζηόρν
ην

δηακνηξαζκό

ππνινγηζηηθώλ
πεγ
ώλ
,

πξνθεηκέλνπ

λα παξέρνπλ δηαθαλή

πξόζβαζε ζε ππνινγηζηηθή ηζρύ
,

θξ
ύβνληαο από ην

ρξήζηε ηελ αλνκνηνγέλεηα θαη
κεηαβιεηόηεηα

ελόο
grid

πεξηβάιινληνο
. ΢ε αληίζεζε κε ηα
παξαδνζηαθά παξάιιεια ζπζηήκαηα (
computer

clusters
)
θαη ηνπο ππεξππνινγηζηέο (
super

computers
),
ηα ζπζηήκαηα γηα
grid

computing

πηνζεηνύλ έλα κνληέιν ραιαξ
ά ζπλδεδεκέλσλ
ζπζηεκάησλ
, όπνπ

νη πόξνη κπνξεί λα ζπλδένληαη
θαη κέζσ
ελόο
δηθηύνπ
, ην νπνίν
όκσο
δε
δίλεη εγγπήζεηο

όπσο ην δεκόζην δίθηπν
(
internet
)
, ην πιηθό (
hardware
)
κπνξεί λα
είλαη
αλνκνηνγελέο
,

ελώ ππάξρεη θαη ε δπλαηόηεηα
δπλακηθήο πξνζζήθεο λέσλ

πόξσλ

θαη
ρξεζηώλ
.

Παξαθάησ παξνπζηάδνληαη νξηζκέλα ζπζηήκαηα γηα
Grid

Computing
.

To
Νetsolve

[12] είλαη

middleware πινπνηεκέλν ζε C, ην νπνίν γεθπξώλεη standard
πξνγξακκαηηζηηθέο δηεπαθέο κε πεξηβάιινληα επηζηεκνληθνύ ππνινγηζκνύ
,

όπσο ην Matlab,
Mathema
tica, Octave θ
.
ιπ.
,
ηα νπνία θπξηαξρνύλ ζηελ επηζηεκνληθή θνηλό
ηεηα. Δίλαη
ζρεδηαζκέλν από ην Παλεπηζηήκην ηνπ
Tenes
ee
,

ελώ ε πξώηε έθδνζε
παξνπζηάζηεθε

ην
2002.










8

Σν Netsolve/Gridsolve απνηειείηαη από 3 νληόηεηεο
, όπσο παξνπζηάδεηαη ζην ζρήκα 2.4
,

ηνλ
C
lie
nt, ηνλ Agent θαη ηνλ Server:

O
Client

πξαγκαηνπνηεί κηα απνκαθξπζκέλε θιήζε θαη θαιείηαη είηε από έλα πεξηβάιινλ
επηζηεκνληθνύ ππνινγηζκνύ
,

όπσο γηα παξάδεηγκα ην MATLAB
,

είηε από έλα πξόγξακκα
γξακκέλν ζε θάπνηα
παξαδνζηαθή

γιώζζα
πξνγξακκαηηζκνύ
.

Ο
Serv
er

εθηειεί κεζόδνπο γηα ινγαξηαζκό ησλ clients. Σν πιηθό ηνπ Server κπνξεί λα
πνηθίιεη από έλα ζύζηεκα ελόο επεμεξγαζηή έσο έλα ζύζηεκα πνιιώλ επεμεξγαζηώλ
, ελώ

θαη νη
κέζνδνη

πνπ εθηεινύληαη ζε απηόλ δηαθέξνπλ ζε πνιππινθόηεηα.

Ο
Agent

είλαη ην θεληξηθό ζ
εκείν ηνπ Netsolve. Γηαζέηεη κία ιίζηα κε όινπο ηνπο
δηαζέζηκνπο servers, εθηειεί δέζκεπζε πόξσλ ζηηο αηηήζεηο ησλ πε
ιαηώλ, ελώ
,

παξάιιεια,
εμαζθαιίδεη ην δηακνηξαζκό εξγαζίαο

αλάκεζα ζηνπο servers.


Έλα ηππηθό ζελάξην ρξήζεο ηνπ Νetsolve είλαη ην εμήο
:

-

Ο Client ζηέιλεη κία αίηεζε ζηνλ Agent γηα ηελ αλαδήηεζε ηνπ θαηάιιεινπ Server
,

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

-

Ο Agent επηζηξέθεη

κία ιίζηα κε ηνπο δηαζέζηκνπο
S
ervers ηαμηλνκεκέλνπο ζε ζεηξά
θαηαιιειόηεηαο.

-

O Client επηρεηξεί λα επηθνηλ
σλή
ζεη

κε θάπνηνλ
S
erver από ηε

ιίζηα, μεθηλώληαο από ηνλ
πξώην

ζε θαηαιιειόηεηα. ΢ηε ζπλέρεηα
,

ζη
έιλεη ηα δεδνκέλα εηζόδνπ ζηνλ
S
erver.

-

Σειηθά
,

ν Server εθηειεί ηε

ιεηηνπξγία γηα ινγαξηαζκό ηνπ πειάηε θαη ηνπ επηζηξέθεη ηα
απνηειέζκαηα.



΢ρήκα 2.3: Η αξρ
ηηεθηνληθή ηνπ
Netsolve
/
Gridsolve









9

To
Ninf
-
G

[13],
ην

νπνίν

πξνέξρεηαη

από

ην

National I
nstitute of Advanced Industrial

Science and
Technology

ηεο

Ιαπσλίαο
,
είλαη

middleware
γηα

GridRPC

[6]
.

Οη κέζνδνη ηνπ
client API
,

πνπ παξέρεη ην Ninf
-
G
,

κπνξνύλ λα θαηεγ
νξηνπνηεζνύλ
σο

εμήο:



Μέζνδνη αξρηθνπνίεζεο θαη ηεξκαηηζκνύ: νη κέζνδνη αξρηθνπνίεζεο θαη ηεξκαηηζκνύ
είλαη παξόκνηεο κε απηέο ηνπ MPI

(Message Passing Interface).



Μέζνδνη

ρεηξηζκνύ function handles
, νη νπνίεο επηηξέπνπλ ηε

δεκηνπξγία θαη ηελ
θαηαζηξνθή fu
nction handles.



Mέζνδνη θιήζεσλ RPC.

Οη θιήζεηο ηνπ GridRPC κπνξνύλ λα θαηεγνξηνπνηεζνύλ κε
ην

ζπλδπαζκό δύν ηδηνηήησλ:
απηήο ηεο
ζύγρξνλεο ζπκπεξηθνξάο
, θαζώο

θαη
ηεο
ζεηξά
ο

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

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



Αζύγρξνλνη κέζνδνη ειέγρνπ γηα
GridRPC
,

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



Αζύγρξνλνη κέζ
o
δνη αλακνλήο γηα
GridRPC
,

νη νπνίεο επηηξέπνπλ ζηελ εθαξκνγή λα
πξνζαξκόζεη
,

αλάινγα κε ηηο απαηηήζ
εηο
ηεο,

ηελ επηζπκεηή ζπκπεξηθνξά ηεο ζε
πξνεγνύκελεο θιήζεηο πνπ έρεη θάλεη γηα αζύγρξνλν
GridRPC
.



Μέζνδνη γηα αλαθ
νξά
ζθαικάησλ
,

νη νπνίεο επηζηξέθνπλ θσδηθνύο θαη πεξηγξαθέο
ιαζώλ.



Μέζνδνη γηα ηελ θαηαζθεπή
κηαο
ζηνίβαο νξηζκάησλ
,

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

θαηά η
ελ εθηέιεζή

ηεο,

λα θαηαζ
θεπά
ζε
η ηε

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

Σν
Ninf
-
G

παξέρεη έλα
Java

client

API

θαη ε πινπνίεζή

ηνπ έρεη γίλεη κε ηε ρξήζε ηνπ
Java

Commodity

Grid

Toolkit
(
JavaCoG

kit
)

[31]
.

΢ην ζρήκα 2.4 παξν
πζηάδεηαη ε αξρηηεθηνληθή
ινγηζκηθνύ
.


΢ρήκα 2.4:
Η αξρηηεθηνληθή ηνπ
Ninf
-
G









10


To

DIET

project

[5
]

ε
ίλαη κ
ία
πξνζπάζεηα από ηα εξεπλεηηθά θέληξα
INRIA

θαη
INSA

(
2001
)
.

΢ηόρνο ηνπ είλαη ε
δεκηνπξγία ελόο
middleware
,

ην νπνίν ζα κπνξεί λα
θιηκαθώλεηαη,

θαηα
λέκνληαο

ην

πξόβιεκα ηεο δξνκνιόγεζεο
ησλ αηηήζεσλ

γηα ηελ εύξεζε
ηνπ θαηάιιεινπ
server

αλάκεζα

ζε πνιιαπινύο
agents
.
Σν ζύζηεκα πξαγκαηνπνηεί ηε

δξνκνιόγεζε
,

ιακβάλνληαο
ππόςε ηνπ ηελ πιεξνθνξία, πνπ

π
εξηέρεηαη
ζηελ αίηεζε ηνπ
πειάηε (κέγεζνο

πξνβιήκαηνο
πξνο επίιπζε, κέγεζνο εκπιεθνκέλσλ δεδνκέλσλ), ηελ
απόδνζε ηεο
ζηνρεπόκελεο

πιαηθόξκαο
(θόξηνο

server
, δηαζέζηκε
κλήκε, απόδνζε

επηθνηλσλίαο) θαη ηελ ηνπηθή δηαζεζηκόηεηα ησλ δεδνκέλσλ από πξνεγνύκελνπο
ππνινγηζκνύο. Η δξνκνιόγεζε απηή
θαηαλέκεηα
η
,

ρξεζηκν
πνηώληαο αξθεηέο ζπλεξγαδόκελεο
ηεξαξρίεο ζπλδεδεκέλ
εο είηε ζηαηηθά είηε δπλακηθά (
ζε
peer
-
to
-
peer

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

Η ζρεδίαζε ηνπ
DIET

έρεη γίλεη κε βάζε ηηο εμήο

αξρέο:

1)

Κιηκάθσζε
: Καζώο ν αξηζκόο ησλ αηηήζεσλ απμάλεη
,

ν
agent

γίλεηαη ην ζεκείν
ζπκθόξεζεο γηα νιόθιεξν ην ζύζηεκα. Γηα ηελ επίιπζε απηνύ ηνπ πξνβιήκαηνο
,

είηε ην κεράλεκα πνπ θηινμελεί ηνλ
agent

πξέπεη λα είλαη αξθεηά ηζρπξό
,

είηε λα
θαηαλεκεζεί ε δξνκ
νιόγεζε ζε δηάθνξα κέξε.

2)

Δπθνιία βειηίσζεο
:
O

ζηόρνο ηνπ
DIET

είλαη λα παξέρεη έλα πεξηβάιινλ
ινγηζκηθνύ
,

ην νπνίν ζα κπνξεί εύθν
ια λα πξνζαξκνζηεί ζηηο αλάγθεο

ηνπ ρξήζηε.
Σα
API

ζε επίπεδν
client
,

server

θαη
agent

έρνπλ ζρεδηαζηεί κε πξνζνρή
,

ώζηε λα
ρξε
ζηκνπνηεζνύ
λ είηε γηα ηελ ελζσκάησζε κηαο
εθαξκνγήο ζην
grid

είηε γηα ηελ
πεξαηηέξσ βειηίσζε ηνπ εξγαιείνπ.

3)

Δπθνιία αλάπηπμεο:
H

αλάπηπμε ελόο ηέηνηνπ
εξγαιείνπ πξέπεη λα γίλεη κε ηε

ρξήζε
ππαξρόλησλ
middleware
,

ηα νπνία ζα παξέρνπλ θαιύηεξε απόδνζε ζε κεγ
άιε
θιίκαθα (π
.
ρ
.

CORBA
,
LDAP

θ.η.ι.)
.

Η αξρηηεθηνληθή ηνπ
DIET

(
΢ρήκα 2.5)

έρεη βαζηζηεί

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

λα παξέρεη θαιύηεξε θιηκάθσζε. Η αξρηηεθηνληθή απηή είλαη πην επέιηθηε θαη
κπνξεί

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

επηηπγράλνληαο θαη
δηαιεηηνπξγηθόηεηα. Σν
DIET

είλαη πινπνηεκέλν ζε
CORBA

[35]

θαη θιεξνλνκεί από απηήλ
ηηο πξνηππνπνηεκέλεο ζηαζεξέο ππεξεζίεο
,

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

Σν
DIET

απνηειείηαη από πνιιά κέξε. Ο
client

είλ
αη κηα εθαξκνγή
,

ε νπνία ρξεζηκνπνηεί ην
ζύζηεκα

γηα λα ιύζεη πξνβιήκαηα
,

ρξεζηκνπνηώληαο κία
RPC

πξνζέγγηζε. Οη ρξήζηεο
κπνξνύλ λα έρνπλ πξόζβαζε ζην
DIET
, είηε

κέζσ πνιιώλ
δηεπαθώλ
,

όπσο
web

portals
,
PSE

s
,

π.ρ.
ην
matlab
,

είηε από πξνγξάκκαηα γξακκέλα ζ
ε
C

ή
C
++.
O

SeD

(
Server









11

Daemon
)

παξέρεη

ηε

δηεπαθή γηα ηνπο
servers

ππνινγηζκνύ θαη κπνξεί λα πξνζθέξεη
νπνην
δήπνηε αξηζκό ππεξεζηώλ ππνινγηζκνύ αλάινγα κε ηελ εθαξκνγή. Ο
SeD

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

δηεπαθή θαη σο κεραληζκόο εθηέιεζεο
,

είηε γηα έλα
sta
ndalone

κεράλεκα
,

είηε γηα έλα
cluster
,

παξέρνληαο ππεξεζίεο παξάδνζεο εξγαζηώλ.

Οη
agents

παξέρνπλ
πςειόηεξνπ επηπέδνπ ππεξεζίεο
,

όπσο γηα παξάδεηγκα

δξνκνιόγεζεο θαη δηαρείξηζεο
δεδνκέλσλ. Απηέο
νη ππεξεζίεο θιηκαθώλνπλ γηα ην

ιόγν ηνπ όηη θαηαλέκνληαη α
λάκεζα ζε
κηα ηεξαξρία από
agents
,

νη νπνίνη απνηεινύληαη από έλαλ
master

agent

(
MA
), αξθεηνύο
agents

(
A
) θαη
local

agents
(
LA
).


To

DIET

παξέρεη κία
Peer
-
to
-
Peer

επέθηαζε
,

ζηελ
νπνία:

O client

είλαη

έλαο

JXTA

[36]
peer.
Όηαλ ςάρλεη γηα κία δεδνκέλε ππεξεζ
ία αλαθαιύπηεη
έλαλ από ηνπο ΜΑ(
Master

Agents
) από ηε

JXTA

δηαθήκηζή

ηνπ, επηιέγεη έλαλ από
απηνύο,
ζηέιλεη κία αίηεζε (ελζπιαθσκέλε ζε έλα
JXTA

κήλπκα) γη


απηήλ ηελ ππεξεζία θαη
πεξηκέλεη γηα ηελ απάληεζε. Όηαλ έξζεη ε απάληεζε
, εμάγεη ηε

ιίζηα κε ηνπο δ
ηαζέζηκνπο
SeD
'
s

θαη ζηέιλεη ζηνλ θαηάιιειν
SeD

ηνλ απνκαθξπζκέλν ππνινγηζκό.

Ο
SeD

είλαη θη απηόο κε ηε

ζεηξά ηνπ έλαο
JXTA

peer
, πνπ επηηξέπεη ζηνλ

client

λα ζηείιεη
αηηήζεηο ππνινγηζκνύ
,

εθηειεί

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

JXTA

κελύκαηα).

Ο
multi
-
MA

απνηειείηαη από πνιινύο ΜΑ

(
Master

Agent
)
,

νη νπνίνη ηξέρνπλ ζε κία
δεδνκέλε ζηηγκή

ζην δίθηπν θαη είλαη πξνζβάζηκνη

από ηνλ αξρηθό ΜΑ. Οη ΜΑ ζπλδένληαη
δπλακηθά κεηαμύ
ηνπο,

αθνύ απνηεινύλ
JXTA

peers
.


΢ρήκα 2.5
:
Η αξρηηεθηνληθή ηνπ
DIET










12

To

Gradsolve

[37]
,

από ην Παλεπηζηήκην ηνπ
Tennessee

(2003)
, ε
ίλαη έλα ζύζηεκα
,

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

MPI

εθαξκνγώλ πάλσ από κία δπλακηθά
κεηαβαιιόκελε
Grid

ππνδνκή.

Αλαιπηηθόηεξα
,

ζηνλ ππξήλα ηνπ
GradSolve

(΢ρήκα 2.6)
βξίζθεηαη κία
XML

βάζε
δεδνκέλσλ
,

ε νπνία απνηειείηαη από 4
tables

γηα ηελ απνζήθεπζε πιεξνθνξηώλ
:
users
,
resources
,
applications

θαη

problems
.
H

επηθνηλσλία κε ηε βάζε δεδνκέλσλ γίλεηαη κε ηε

ρξήζε ηνπ ΥΜ
L
-
RPC

[38]

πξσηνθόιινπ
.


΢ρήκα 2.6:
H

αξρηηεθηνληθή ηνπ
Gradsolve

To

Gradsol
ve

πεξηιακβάλεη 3 αλζξώπηλεο νληόηεηεο
:



Ο
A
dministrator

είλαη ππεύζπλνο γηα ηε

δηαρείξηζε ησλ ρξεζηώλ θαη ησλ πόξσλ ηνπ
ζπζηήκαηνο. Αξρηθνπνηεί ηελ
XML

βάζε δεδνκέλσλ
,

δεκηνπξγώληαο εγγξαθέο γηα
ηνπο δηαθνξεηηθνύο ρξήζ
ηεο (
users
)
,

θαζώο θαη ην
resource

table
,

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



O

Library

W
riter

θάλεη

upload

ζην

GradSolve

ηελ

εθαξκνγή ηνπ. Δθηόο από ηελ
εθαξκνγή πεξηιακβάλεηαη θαη έλα IDL (Interface Description Language) αξρείν ην
νπνί
ν πεξη
έρεη
ιεπηνκέξεηεο γηα ηελ θιήζε ηεο εθαξκνγήο. Η
IDL

γιώζζα είλαη
εηδηθά ζρεδηαζκέλε γηα ην
Gradsolve
.

To

ζύζηεκα αξρηθά κεηαηξέπεη ην Ι
DL

αξρείν
ζε
XML

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

πξαγκαηνπνηείηαη ε κεηαγιώηηηζε ηνπ θώδηθα ηεο
εθαξκνγή
ο
,

θάλνληαο ηηο απαηηνύκελεο ζπλδέζεηο κε βηβιηνζήθεο
,

όπσο απηέο
πεξηγξάθνληαη ζην
IDL

αξρε
ίν
,
κεηαθέξεη

ηα εθηειέζηκα ζε δηαθνξεηηθά
resources

ζην
Grid

θαη απνζεθεύνληαη ζηελ
XML

βάζε δεδνκέλσλ νη ζέζεηο ησλ εθηειέζηκσλ.
Γίλεηαη ε δπλαηόηεηα ζηνλ
library

writer

λα δώζεη πιεξνθνξίεο ζρεηηθά κε ηελ








13

ειάρηζηε απαίηεζε πόξσλ,

ηνλ

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

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



Οη
End

U
sers

κπνξνύλ λα ιύζνπλ πξνβιήκαηα, ρξεζηκνπνηώληαο ην
Gradsolve
,

γξάθνληαο είηε έλα
C

είηε έλα

Fortran

πξόγξακκα. Η δηαδηθαζία απηή πεξηιακβάλεη
ηελ θιήζε ηεο ξνπηίλαο
gradsolve
()
,

ζηελ νπνία πεξληνύληαη σο νξίζκαηα ην όλνκα
ηεο εθαξκνγήο
,

θαζώο θαη νη παξάκεηξνη πνπ ρξεηάδνληαη από απηήλ.


Η

θιήζε

ηεο

gradsolve
()
θηλε
ηνπνηεί

ηνλ

Gradsolve Application Manager

(GAM).

O

GAM

αξρηθά ειέγρεη αλ ν ρξήζηεο θαηέρεη πξόζβαζε

γηα ηελ εθηέιεζε εξγαζηώλ. ΢ηε

ζπλέρεηα
,
πξνρσξά ζηε

δέζκεπζε πόξσλ γηα ηελ εξγαζία
,

ρξεζηκνπνηώληαο ην
table

resources

από ηελ
XML

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

δξνκνιόγεζε.

To

GridPsi

[2]

είλαη κία
πιαη
θόξκα

γηα επίιπζε πξνβιεκάησλ ΜΓΔ
.
To GridPsi παξάγεη
απηόκαηα θώδηθα γηα matlab γηα ηελ εύθνιε ελζσκ
άησζή

ηνπ γηα
G
rid computing.

Αλαιπηηθόηεξα
,

ζηελ πξώ
ηε θάζε ε πιαηθόξκα παξέρεη ζην

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

δεύηεξε θάζε
,

παξάγεη απηόκαηα θώδηθα matlab γηα ηελ επίιπζε ησλ 3D κνληέισλ
δηαθνξηθώλ εμηζώζεσλ γηα ην πξόβιεκα πνπ έρεη πεξηγξάςεη ν ρξήζηεο. Σέινο
,

ζηελ
ηξίηε
θάζε παξέρεη ελζσκάησζε ηνπ matlab θώδηθα κε grid middleware (ζπγθεθξηκέλα ηνπ
UNICORE

[39]
)
,

ην νπνίν επηηξέπεη ηελ εθηέιεζε ζηελ grid ππνδνκή.




2.3

Δξγαιεία γηα ηε

δεκηνπξγία επηζηεκνληθώλ ξνώλ εξγαζίαο

Ο
όξνο ξνή εξγαζίαο (
workflow
)

είλαη κία α
θεξεκέλε έλλνηα
,

ε νπνία ρξεζηκνπνηείηαη

ζε
δηά
θνξ
α

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

λα πεξηγξάςεη ηελ απεηθόληζε κία ζεηξάο
αηνκηθώλ ελεξγεηώλ γηα ηελ
πεξηγξαθή

κίαο ζύλζεηεο εξγαζίαο. ΢ηνλ ηνκέα ησλ
ειεθηξνληθώλ ππνινγηζηώλ
,

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

γηα

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

Με ηελ αλάπηπμε ησλ
Web

Services

θαη ησλ
G
rid

S
ervices

[7]
,

πξόεθπςε ε αλάγθε
αλάπηπμεο γισζζώλ
,

νη νπνίεο ζα δίλνπλ ηε δπλαηόηεηα
ειέγρνπ πάλσ από ην επίπεδν ησλ
ππεξεζη
ώλ. Οη γιώζζεο γηα η
ε

ζύλζεζε ξνώλ εξγαζίαο δ
ίλνπλ ηε

δπλαηόηεηα


ελνξρήζηξσζεο


ππεξεζηώλ
, πξνζθέξνληαο ηε

δπλαηόηεηα

πεξηγξαθήο δηαθξηηώλ
δηεξγαζηώλ
,

θαζώο θαη ηεο αλαπαξάζηαζεο ησλ
αιιειεπηδξάζεσλ

κεηαμύ ηνπο. Δξγαιεία
,

πνπ έρνπλ αλαπηπρζεί γηα ηε ζύλζεζε ξνώλ εξγαζίαο
,

εί
λαη ην Σ
riana

θαη ην
Taverna
.









14

To
Triana

[14]

είλαη έλα γξαθηθό PSE (Problem Solving Environment)
, ην νπνίν επηηξέπεη
ζην ρξήζηε ηε

ζύλζεζε επηζηεκνληθώλ ξνώλ. Σν Triana
,

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

ιόγσ ηεο πιεζώξαο εξγαιείσλ πνπ πξνζθ
έξεη κπνξεί λα
ρξεζηκνπνηεζεί γηα πνιινύο ζθνπνύο.
Δπίζεο,

κπνξεί λα ρξεζηκνπνηεζεί σο πεξηβάιινλ γηα
grid computing θαη δπλακηθά λα αλαθαιύςεη θαη λα
«
ελνξρεζηξώζεη
»

θαηαλεκεκέ
λεο πεγέο,
όπσο γηα παξάδεηγκα
Web

Services
. Υξεζηκνπνηεί
κηα XML
-
based

γιώζζα

γηα ηελ
αλαπαξάζηαζε ηόζν ηνλ νξηζκώλ όζν θαη ησλ workflows.

Σν Triana
,

γηα ηε

δηαθήκηζε,

αλαθάιπςε

θαη επηθνηλσλία ησλ ππεξεζηώλ
,

ρξεζηκνπνηεί ην
GAP, κία πξνγξακκαηηζ
ηηθή δηεπαθή πςεινύ επηπέδνπ. Οη ξνέο εξγαζίαο
ζην Triana
απνηεινύληαη από δίθηπα Trian
a
-
GAP ππεξεζηώλ, νη νπνίεο κπνξνύλ λα δηαθεκηζηνύλ, λα
αλαθαιπθζνύλ θαη λα επηθνηλσλήζνπλ
,

ρξεζηκνπνηώληαο αθεξεκέλεο
,

πςεινύ επηπέδνπ
,

θιήζεηο
,

νη νπνίεο είλαη αλεμάξηεηεο από ηνπο ρακ
ειόηεξνπο κεραληζκνύο
,

πνπ

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

η
όζν ζε grid όζν θαη ζε P2P δίθηπα.

To
Taverna

[19]

είλαη έλα εξγαιείν

πινπνηεκέλν ζε Java, ην νπνίν πεξηιακβάλεη έλα
γξαθηθό
πεξηβάιινλ
,

πνπ

παξέρεη ζην

ρξ
ήζηε κία γξαθηθή δηεπαθή γηα ηε

ζύλζεζε θαη ηελ
εθηέ
ιεζε ξνώλ εξγαζίαο (workflows) Β
ηνπιεξνθνξηθήο. ΢
ην Taverna
,

θάζε ξνή εξγαζίαο
απνηειείηαη από έλα γξάθν από processors
,

όπνπ ν θαζέλαο από απηνύο κεηαηξέπεη έλα ζεη
δεδνκέλσλ εηζόδνπ ζε έλα ζεη δεδνκέλσλ εμόδνπ. Απηέο νη ξνέο εξγαζίαο είλαη γξακκέλεο ζε
κία γιώζζα
,

ε νπνία νλνκάδεηαη Sculf. Η Sculf είλα
η κία γιώζζα πςεινύ επηπέδνπ
βαζηζκέλε ζηελ XML
,

ζηελ νπνία θάζε βήκα επεμεξγαζίαο ηεο ξνήο εξγαζίαο απνηειείηαη
από κία αηνκηθ
ή εξγαζία. Μία ξνή εξγαζίαο ζηε

γιώζζα Sculf
απνηειείηαη
από
:

Processors
: O processor είλαη κία νληόηεηα
,

ε νπνία κεηαηξέπεη έλα

ζεη δεδνκέλσλ εηζόδνπ
ζε έλα ζεη δεδνκέλσλ εμόδνπ. Έλαο από ηνπο θύξηνπο

δηαζέζηκνπο processors είλαη ν

Arbitrary WSDL type
, ν νπνίνο επηηξέπεη ηε ιεηηνπξγία θιήζεο κίαο
Web

Service
.

Data links
: Σα da
ta links κεζνιαβνύλ αλάκεζα ζηε

ξνή ησλ δεδνκέλσλ ζε κ
ία πεγή θαη ζε
κία θαηαβόζξα. Η πεγή δεδ
νκέλσλ
,

όπσο θαη ε θαηαβόζξα
,

κπνξεί λα είλαη ε έμνδνο
από
θάπνην processor ή ε είζνδνο

ζε κία ξνή

εξγαζίαο.

Coordination Constraints
: H δνκή απηή ελώλε
η δύν processors θαη ειέγρεη ηε ξνή
εθηέιεζήο ηνπο. Απηό ην επί
πεδν

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

ηεο είλαη αλαγθαίν λα εθηειεζηνύλ κε ζπγθεθξηκέλε ζεηξά
,

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












15




Θεσξεηηθό θαη
ηερλνινγηθό ππόβαζξν

΢ην αθόινπζν

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

ηηο

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

3.1

Web Services

Ωο
Web

Service

κπνξνύκε λα νξίζνπκε ηελ εμαγσγή ηεο πξνγξακκαηηζηηθήο ινγηθήο

κίαο
εθαξκνγήο

σο κηα
ο

ππεξεζ
ία
ο

πξνζβάζηκε
ο

κέζσ ζηάληαξλη πξσηνθόιισλ ηνπ δηαδηθηύνπ
.
΢
ηόρνο ησλ
Web

S
ervices

είλαη λα δώζνπλ ηε

δπλαηόηεηα δεκηνπξγίαο ελόο θαηαλεκεκέλνπ
πεξηβάιινληνο
, όπνπ

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

πιαηθόξκαο θαη γιώζζαο.

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

από ηηο νπνίεο απνηεινύληαη ηα
Web

Services
, θαζώο θαη ν ηξόπνο αιιειεπίδξαζή
ο ηνπο.

Έλα
Web

Service

είλαη έλα
θνκκάηη επηρεηξεκαηηθήο ινγηθήο (
business

logic
)
,
ην νπνίν
εληνπίδεηαη θάπνπ ζην Γηαδίθηπν

θαη είλαη πξνζβάζ
ηκν κέζσ
ζηάληαξλη

πξσηνθόιι
σλ ηνπ
Γ
ηαδηθηύνπ
,

όπσο ην

HTTP

ή ην SMTP.
Πνιιέο

web

ηερλνινγίεο

(
J
2
EE
,
CORBA
)
ζα
κπνξνύζαλ λα θαηεγνξηνπνηεζνύλ σο
Web

Service

ηερλνινγίεο
,

αιιά δελ είλαη.

H

κεγάιε
δηαθνξά απηώλ ησλ ηερλνινγηώλ κε ηα
Web

Services

είλαη όηη

βα
ζίδνληαη ζε
XML

standards


λ

αληηζέζεη κε έλα αληίζηνηρν δπαδηθό πξσηόθνιιν επηθνηλσλίαο)
,

ην νπνίν

ππνζηεξίδεηαη
παγθνζκίσο
. Η
XML

παξέρεη έλαλ
,

αλεμάξηεην πιαηθόξκαο
,

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

ηεο δηαζθαιίδεη όηη ζην κ
έιινλ θάζε λέα κεγάιε
ηερλνινγία ινγηζκηθνύ ζα αθνινπζεί κία
Web

Service

πξνζέγγηζε.

Η ηερλνινγία ησλ
Web

Services

έρεη ηα εμήο ραξαθηεξηζηηθά
:

1)

XML

based
: Με ηε

ρξήζε ηεο
XML

γηα ηελ αλαπαξάζηαζε ησλ δεδνκέλσλ
,

νη
ηερλνινγίεο απηέο κπνξνύλ λα ππνζηεξίμνπλ
ηε δηαιεηηνπξγηθόηεηα ζηνλ ππξήλα ηνπο.









16

2)

Loosely

coupled
: Ο θαηαλαισηήο ελόο
Web

Service

δελ είλαη “δεκέλνο” κε απηό ην
service

απεπζείαο. Η δηεπαθή ηνπ
service

κπνξεί λα αιιάμεη κε ην ρξόλν
,

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

Έλα ηζρπξά ζπλδεδεκέλν ζύζηεκα
,

δνκεκέλν ζην κνληέιν
client
-
server
, ζπλεπάγεηαη όηη
νη ιεηηνπξγίεο ηνπ
client

θαη ηνπ
server

εί
λαη ηζρπξά δεκέλεο κεηαμύ ηνπο
,

ππνλνώληαο
όηη ηπρόλ αιιαγέο ζε θάπνηα από ηηο δηεπαθέο ζπλεπάγε
ηαη αιιαγέο θαη ζηελ άιιε.
H

πηνζέηεζε ελόο κνληέινπ ραιαξήο

δηαζύλδεζεο ηείλεη λα κεηαηξέςεη ηε

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

ηελ

απινύζηεξε ελζσκάησζε

δηαθνξεηηθώλ ζπζηεκάησλ.

3)

Coarse
-
grained

: Οη αληηθεηκελνζηξαθείο ηερλνινγίε
ο
,

όπσο ε
Java
,

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

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

ην ρηίζηκν ελόο
Java

πξνγξάκκαηνο από ηε
λ αξρή απαηη
εί ηε

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

ζπληίζε
ληαη ζε κηα ζύλζεηε
ππεξεζία, πξνθεηκέλνπ

λα θαηαλαισζε
ί ηειηθώο είηε από κηα εθαξκνγή
-
πειάηε είηε από
κία άιιε ππεξεζία. Η ηερλνινγία ησλ
Web

Services

παξέρεη έλα θπζηθό ηξόπν νξηζκ
νύ
coarse
-
gained

ππεξεζηώλ
.

4)

Γπλαηόηεηα γηα ζύγ
ρξνλεο θαη αζύγρξνλεο ππεξεζίεο
: ΢ηηο ζύγρξνλεο θιήζεηο
,

ν
client

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

έσο όηνπ νινθιεξσζεί ε
θιήζε ηεο ππεξεζίαο. Οη αζύγρξνλεο θιήζεηο επηηξέπνπλ ζηνλ
cli
ent
,

κεηά ηελ θιήζε
κίαο ππεξεζίαο
,

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

ηεο
. ΢ηηο

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

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

ελώ ζηηο α
ζύγρξνλεο

θάπνηα ρξνληθή ζηηγκή αξ
γόηεξα
.
Η ππνζηήξημε γηα αζύγρξνλεο θιήζεηο είλαη θ
νκβηθόο παξάγνληαο ζηε

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

5)

Τπνζηήξημε γηα RPC
: H ηερλνινγία ησλ
Web Services

επηηξέπεη ζε εθαξκνγέο
-
πειάηεο
λα πξαγκαηνπνηήζνπλ θιήζεηο ζε δηαδηθαζίεο, κεζόδνπο ή ιεη
ηνπξγίεο ζε
απνκαθξπζκέλα αληηθείκελα
,

ρξεζηκνπνηώληαο έλα πξσηόθνιιν βαζηζκέλν ζηελ XML.

6)

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

αιιά θαη γηα
πνιπζύλ
ζεηα έγγξαθα. Απηά ηα έγγξαθα κπνξεί λα είλαη ηόζν απιά
,

όζν ε
αλαπαξάζηαζε κηαο δηεύζπλζεο ή ηόζν πνιπζύλζεηα
,

όζν έλα νιόθιεξν βηβιίν.









17


΢ρήκα 3.1: Η αξρηηεθηνληθή ηξηώλ επηπέδσλ ησλ
Web

Services

3.1.1
SOAP

To

SOAP

(Simple

Object

Access

Protocol
)

είλ
αη έλα πξσηόθνιιν επηθνηλσλίαο
, ην νπνίo
θαζνξίδεη ηε

κνξθή ησλ κελπκάησλ γηα ηελ
αληαιιαγή XML

εγγξάθσλ πάλσ από κία
πνηθηιία
πξσηνθόιισλ

κεηαθνξάο
,

όπσο ην

HTTP
,
SMTP

θαη
FTP
.
To

SOAP

παξέρεη έλα
λ

πνιύ απιό ηξόπν γηα ηελ πξαγκαηνπνίεζε ηνπ
RPC
:

αληαιιαγή

XML

εγγξάθσλ.

Α
πνηειεί ηνλ αθξνγσληαίν ιίζν κίαο
Service

Oriented

Architecture
.
O

ζρεδηαζκόο ηνπ έγηλε
κε βαζηθό
ζηόρν λα παξέρεη ζηηο εθαξκνγέο
-
πειάηεο ηε

δπλαηόηεηα λα ζπλδένληαη θαη λα
θαινύλ
εύθνια
απνκαθξπζκέλεο κεζόδνπο
, κε βαζηθό πξσηόθνιιν κεηαθν
ξάο ην
HTTP
,
παξόηη όπσο αλαθέξακε θαη παξαπάλσ κπνξνύλ λα ρξεζηκνπνηε
ζνύλ θαη άιια πξσηόθνιια
γηα ηε

κεηαθνξά

SOAP

κελπκάησλ. Πξνγελέζηεξεο ηερλνινγίεο ηνπ
SOAP
,
όπσο γηα
παξάδεηγκα ην
DCOM

[40]
,
ε
CORBA

[35]

θαη ην
Java

RMI

[41]
, ζρεδηάζηεθαλ κε ηνπο
ίδη
νπο ζηόρνπο, δειαδή ηελ εύθνιε θιήζε απνκαθξπζκέλσλ κε
ζόδσλ θαη θαηά

ζπλέπεηα ηελ
απινύζηεξε θαηαζθεπή
θαηαλεκεκέλσλ ζπζηεκάησλ. Η

θύξηα δηαθνξά ηνπ
SOAP

είλαη όηη
,

ιόγσ ηεο
XML

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

επηηπγράλεη
δηαιεηηνπξγηθόηεηα
π
ιαηθόξκαο θαη γιώζζαο
. Έηζη
,

γηα παξάδεηγκα
, κία εθαξκνγή
-
πειάηεο
γξακκέλε ζε
Perl
,

ε νπνία
«
ηξέρεη
»

ζε έλα
Mac

PC
,

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

ε νπνία
«
ηξέρεη
» ζην

Microsoft

SOAP

server

ζε έλα κεράλεκα αξρηηεθηνληθήο
IX
86
.

Έλα αθόκα βαζηθό

πιενλέθηεκα ηνπ
SOAP

είλαη ε επεθηαζηκόηεηά

ηνπ. Η πεξηγξαθή ηεο
δνκήο ελόο
SOAP

κελύκαηνο γίλεηαη κε ηε

ρξήζε ελόο
XML

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

΢ηελ ηερληθή θξηηηθή ηνπ
SOAP
,

θύξην κεηνλ
έθηεκά ηνπ, ζε ζρέζε κε

παξεκθεξεί
ο
ηερλνινγίεο
,

είλαη όηη
,

ιόγσ ηεο ρξήζεο ηεο
XML
,

ην κέγεζνο
ησλ κελπκάησλ είλαη
κεγαιύηεξν. Α
πηό είλαη ην
trade
-
off

ηνπ
SOAP
, πξνθεηκέλνπ

λα επηηπγράλεη
δηαιεηηνπξγηθόηεηα.
Παξόια απηά
,

γηα πεξηβάιινληα πνπ αιιάδνπλ ζπρλά θαη δπλακηθά
,

ην
SOAP

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

ηνπο.









18

3.1.2
Web Services

Description Language (WSDL)

H

WSDL

είλαη κία ηερλνινγία βαζηζκέλε ζηελ
XML
,
ε νπνία καδί κε ην
SOAP

απνηεινύλ
ηα θύξηα ζπζηαηηθά

κίαο
Service

Oriented

Architecture
.
΢πλνπηηθ
ά
,

ε
WSDL

είλαη ε
ζπκθσλία

αλάκεζα ζηνλ
service

requestor

θαη ζηνλ
service

provider

γηα ηνλ ηξόπν θιήζεο
ηεο ππεξεζίαο
,

όπσο γηα παξάδεηγκα κία δηεπαθή ζε
Java
.
Κύξην ραξαθηεξηζηηθό

ηεο
WSDL

είλαη όηη παξέρεη αλεμαξηεζία γιώζζαο θαη πιαηθόξκαο θαη επίζεο ρ
ξεζηκνπνηείηαη θπξίσο
γηα λα πεξηγξάθεη
SOAP

ππεξεζίεο.

Με ηελ
WSDL

κία εθαξκνγή
-
πειάηεο κπνξεί λα
αλ
αθαιύςεη κία ππεξεζία θαη κε ηε

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

Σα βαζηθά ζηνηρεία πνπ πεξηέρνληαη ζε έλα
WSDL

έγγξαθν είλαη
:



Πεξηγξαθή ηεο δηεπαθήο κε όιεο ηηο δηαζέζηκεο ππεξεζίεο
.



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



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



Γηεύζπλζε γηα ηνλ εληνπηζκό ηεο ππεξεζίαο


3.1.3 Universal Description, Discovery and Integration (UDDI)

Tν UDDI είλαη έλα επξεηήξην αλεμάξηεην πιαηθόξ
καο, βαζηζκέλν ζηελ XML, γηα ηε

δηαθήκηζε
θαη
εύξεζε ππεξεζηώλ.
Απνηειεί

κία αλνηρηή πξό
ηαζε ηεο βηνκεραλίαο
,

ε ν
πνία
επηηξέπεη ζηηο εηαηξίεο η
ε

δεκνζίεπζε ησλ ππεξεζηώλ ηνπο, η
ελ αλαθάιπςε λέσλ ππεξεζηώλ,
ελώ

νξίδεη
θαη ηνλ ηξόπν κε ηνλ νπνίν

νη
εθαξκνγέο ινγηζκ
ηθνύ αιιειεπηδξνύλ πάλσ από ην
Γ
ηα
δίθηπν. Η θαηαρώξεζε κηαο εηαηξ
ίαο ζην UDDI απν
ηειείηαη από ηα εμήο ηξία κέξε
:



White Pages
: Πεξηέρνπλ πιεξνθνξίεο επηθνηλσλίαο κε ηελ εηαηξία, όπσο δηεπζύλζεηο
θ.η.ι.



Yellow Pages
: Καηεγνξηνπνίεζε ηεο εηαηξ
ίαο κε βάζε ζηάληαξλη ηαμνλνκίεο
.



Green Pages
: Tερληθέο πιεξνθνξίεο
ζρεηηθά

κε ηηο παξαρσ
ξνύκελεο

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

Σν UDDI έρεη ζρεδηαζηεί έηζη ώζηε λα αθνινπζεί ηηο ηερλνινγίεο ησλ
Web Services
. H
αιιειεπίδξαζε εθαξκνγώλ κε απηό γίλεηαη κέζσ SOAP κελπκάησλ γηα ηελ πξόζβαζε ζε
WSDL έγγξαθα
,

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

ηνπ.









19

3.2

Web Services

Orchestration
-

BPEL

H

BPEL

(
Business

Process

Execution

Language
)

είλαη

κία

XML

-

based

γιώζζα

γηα

ηελ

«
ελνξρήζηξσζε
»

Web Services
.

Ο ζρεδηαζκόο ηεο
BPEL

έγηλε κε γλώκνλα ηελ αλάγθε
νξη
ζκνύ κίαο δηαθνξεηηθήο γιώζζαο γηα ηελ πεξηγξαθή ξνώλ εξγαζίαο.

Οη ξνέο εξγαζίαο ζηελ
BPEL

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

ε
νπνία
απνηειείηαη από επηκέξνπο
modules

γηα ηηο βξαρππξόζεζκεο εξγαζίεο
.

Η δηεπαθή γηα
ηελ θιήζε ησλ επηκέξ
νπο
modules

είλαη

απηή ησλ
Web

Services
, δειαδή γηα ηελ επηθνηλσλία
ηεο δηαδηθαζίαο κε έλα
module

ρξεζηκνπνηείηαη ε αληαιιαγή
SOAP

κελπκάησλ
.
H

Β
PEL

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

όπσο επίζεο

θαη

ηε

δπλαηόηεηα νξηζκνύ

data

types
.
Γη


απηό αλαθ
έξεηαη

σο
«
γιώζζα ελνξρήζηξσζεο
»,

ιόγσ

ηεο δπλαηόηεηαο

ηνπ θεληξηθνπνηεκέλνπ ει
έγρνπ πνπ πξνζθέξεη
θαηά ηνλ νξηζκό

θαη

ηελ
εθηέιεζε

ηεο δηαδηθαζίαο.


Σν
XML

αξρείν κε ηελ πεξηγξαθή ηεο ξνήο ηεο εξγαζίαο δίλεηαη σο είζνδνο ζηελ
BPE
L

engine
,

ε νπνία

είλαη ππεύζπλε γηα ηελ εθηέιεζή

ηνπ.

3.3

Η βηβιηνζήθε LAPACK

H

LAPACK

(
Linear

Algebra

Package
)
,

γηα αξηζκεηηθή

αλάιπζε γξακκέλε ζε
fortran
77
,
π
αξέρεη ξνπηίλεο γηα
ηελ επίιπζε γξακκηθώλ εμηζώζεσλ
, πξνβιεκάησλ ειαρίζησλ
ηεηξαγώλσλ, πξνβιεκάησλ
ηδηνηηκώλ θ.η.ι.

Η
LAPACK

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

βαζίδεηαη ζηε

βηβιηνζήθε
BLAS

(
Basic

Linear

Algebra

Subprograms
).
H

Β
LAS

πεξηέρεη, κε ηε

ζεηξά

ηεο,

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

αξηζκνύ κε δηάλπζκα θ
.
η
.
ι
.

θαη δηαηξείηαη ζε 3 επίπεδα
:

ηελ
BLAS

επηπέδνπ
1
,

επηπέδνπ 2 θαη επηπέδνπ 3. Η θαηάιιειε ξύζκηζε ηεο βηβιηνζήθεο
BLAS

είλαη θύ
ξηνο
παξάγνληαο γηα ηελ απνδνηηθή ιεηηνπξγία ηεο
LAPACK
.

3.4

Web Service

Technologies

΢ηνλ ηνκέα ησλ
Web

Services

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

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

Ωο
Web

Services

Resource

Framework

(
WSRF
)

ν
ξίδνπκε ην ζύζηεκα
, ην νπνίν είλαη
ππεύζπλν γηα ηε

θηινμελία θαη ηνλ θύθιν δσήο κίαο
Web

Service
.

Τπάξρνπλ δηαζέζηκα
αξθεηά
WSRF
,

πνπ

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









20

ηα νπνία όκσο δελ είλαη δσξεάλ. Μία άδεηά

ηνπο απαηηεί

πνιιέο ρηιηάδεο επξώ
,

ελώ ην
setup

θαη ην
administration

πξέπεη λα γίλνπλ

από εμεηδηθεπκέλν πξνζσπηθό
. Δξγαιεία πνπ αλήθνπλ
ζε απηήλ ηελ θαηεγνξία
,

θαη ηα

νπνία

κειεηήζακε
,

είλαη ν
Websphere

application

server

από
ηελ
IBM
, ν
Weblogic

application

server

απ
ό ηελ
BEA
,

θαζώο θαη θάπνηεο
άιιεο πιαηθόξκεο
από ηελ
Sun
.
T
α παξαπάλσ πξντόληα παξέρνπλ νινθιεξσκέλεο ιύζεηο γηα κία
Service

Oriented

Architecture
,

θαζώο παξέρνπλ
w
eb

s
erver
,
WSRF
,
UDDI

registries

θ
.
ιπ.

Από ηα
frame
works
,

πνπ είλαη δηαζέζηκα δσξεάλ

θαη
η
α νπνία
κειεηήζακε
,

έλα
είλαη
η
ν
application

server

Jboss
,

ην νπνίν

παξέρεη ππνζηήξημε γηα
Web

Services

θαη παξέρεηαη θάησ
από ηελ
GNU

license
, θαζώο

θαη
η
ν
Glassfish

application

server
,

η
o

νπνία

παξέρεηαη θάησ
από ηελ
CDDL

(
Common

Distribution

and

Develop
ment

License
)
θαη ηελ
GPL

(
General

Public

License
).
A
πό

ηα παξαπάλσ εξγαιεία επηιέμακε ηνλ
glassfish

application

server
.
O
η
ιόγνη πνπ καο νδήγεζαλ ζε απηήλ ηελ επηινγή είλαη όηη ν
glassfish

παξέρεη πνιύ θαιή
ππνζηήξη
με κέζα από ηελ ελεξγή θνηλόηεηά

ηνπ
. Η
εγθαηάζηαζή

ηνπ
είλαη απιή
, ελώ ε
θόξησζε εθαξκνγώλ

θαη ε δηαρείξηζε ηνπ
application

server

γίλνληαη

κέζα από
web

based

γξαθηθά πεξηβάιινληα (δίλεηαη αθόκα
θαη
ε δπλαηόηεηα δηαρείξηζεο κηαο
cluster

δηάηαμεο).
Η
metro

stack
,

πνπ πεξηέρεη
,

παξέρεη
ηα ηειεπηα
ία
API

s

γηα
Web

Services
,

ελώ παξέρεη
plug
-
ins

γηα πεξηβάιινληα αλάπηπμεο
,

όπσο ην
eclipse

θαη ην
netbeans
.

Δθηόο από ηα
WSRF
,

κειεηήζακε θαη ηα δσξεάλ
UDDI

registries

θαη πην ζπγθεθξηκέλα ην
jUDDI
,

ην νπνίν είλαη
open
-
source

πινπνηεκέλν ζε
Java
,

θαζώο

θα
η ην
freeEbxml

registry
.









21



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

΢ην θεθάιαην
πεξηγξάθεηαη

αλαιπηηθά
ε

αξρηηεθηνληθή ηνπ ζπζηήκαηνο θαη ηα βήκαηα πνπ
αθνινπζή
ζεθαλ

γηα ηελ έθζεζε κεζόδσλ ηεο
LAPACK

(βηβιηνζήθε αξηζκεηηθήο αλάιπζεο
,

ε νπνία είλαη πινπνηεκέλε ζε
fortran

77) σο

Web

Services

θαη
ε ζύλζεζε
scientific

flows

κε
ηε

ρξήζε ηεο

γιώζζα
ο

BPEL
.

4.1


Έθζεζε
κεζόδσλ
ηεο LAPACK σο
Web

Services


H

LAPACK

είλαη βηβιηνζήθε αξηζκεηηθήο αλάιπζεο,
πινπνηεκέλε

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

εμηζώζεσλ, πξνβιεκάησλ
ειαρίζησλ ηεηξαγ
ώλσλ, πξνβιεκάησλ ηδηνηηκώλ θ
.
ιπ.

Η
LAPACK

απνηειεί έλα επξέσο
ρξεζηκνπνηνύκελν εξγαιείν
,

όπνπ έρεη ζπγθεληξσζεί ε

γλώζε θ
αη ε

εκπεηξία ηεο
επηζηεκνληθήο θνηλόηεηαο από ηα πνιιά έη
ε παξνπζίαο

ηεο (
ε πξώηε έθδνζή

ηεο
παξνπζηάζηεθε

ην 1995)
. Δθη
όο από ηελ θια
ζηθή (
Fortran
)

έθδνζε
,

ππάξρνπλ εθδόζεηο ηεο
LAPACK

ζε νξηζκέλεο άιιεο γιώζζεο

πξνγξακκαηηζκνύ
,

όπσο
ε
C

θαη

ε

Java
, νη νπνίεο
όκσο δελ έρνπλ

πξνθύςεη από επαλαζρεδηαζκό ηεο βηβιηνζήθεο γη


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

θώδηθα
fortran
77 ζε απηέο
.

Βαζηθόο ζηόρνο ήηαλ ε ρξήζε ηεο
fortran
77 έ
θδνζεο ηεο
LAPACK
,

ώζηε λα απνδεηρζεί

όηη
είλαη εθηθηή ε εμαγσγή ηεο πξνγξακκαηηζηηθήο ινγηθήο
legacy

code

σο
Web

Services

κε ηε

ρξήζε ησλ ππαξρό
λησλ εξγαιείσλ. Δθηόο απηνύ
,

ε ζπγθεθξηκέλε έθδνζε ηεο
LAPACK

είλαη
πην απνδνηηθή θαη αθξηβήο από ηελ
Java

(γιώζζα ζηελ νπνία είλαη πινπνηεκέλν ην
WSRF

[21]
) έθδνζή

ηεο.

Σ
ν ζύζηεκά

καο

(
΢ρήκα 4.1)

απνηειείηαη από ηα εμήο

δύν

βαζηθά κέξε
:


Web Service

Clien
t:

Οπνηαδήπνηε νληόηεηα
,

ε νπνία αηηείηαη ηε

ρξήζε κίαο

ππεξεζίαο,
κέζα από ηε

ρξήζε
standard

πξσηνθόιισλ ηνπ Γ
ηαδηθηύνπ
,

όπσο ην
http

θαη ην
SOAP
.

Ο
Web

Service

Client
,

εθηόο ησλ κεκνλσκέλσλ θιήζεσλ ζε κία ππεξεζία, κπνξεί λα είλαη έλα
scientific

flow
,

ην

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








22

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

Web Services

Resource Framework (WSRF)
:
O glassfish application server
απνηειεί

ην

WSR
F

(
Web Services

Resource

Framework)

ηνπ

ζπζηήκαηό
ο

καο
.
Δίλαη ην θύξην θνκκάηη
,
αθνύ είλαη ππεύζπλν γηα ηε

θηινμελία θαη ηνλ θύθιν δσήο ησλ ππεξεζηώλ καο θαη θαζνξίδεη

ηε δηαζεζηκόηεηά

ηνπο, θαζώο θαη ην

ρξόλν απόθξηζεο ηνπ ζπζηήκαηνο πέξαλ
απηνύ

πνπ
απαηη
είηαη γηα ηελ πξαγκαηνπνίεζε ησλ ππνινγηζκώλ.


4.2

Δλζσκάησζε ηεο
LAPACK

ζην
WSRF

To

WSRF
,

ην νπνίν ρξεζηκνπνηήζακε (
glassfish

application

server
)
,

είλαη πινπνηεκέλν ζε
Java
, νπόηε ην αξρηθό πξόβιεκα
ήηαλ ε ελζσκάησζε ξνπηηλώλ

ηεο
LAPACK

γξακκέλσλ ζε
fortran
77 ζε απηό. Γηα ην ιόγν απηό
έγηλε ρξήζε ηεο ηερλνινγίαο
ηνπ
Java

Native

Interface

(
JNI
) θαη ηνπ εξγαιείνπ
Swig
.


To

JNI

είλαη ε ηερλνινγία πνπ επηηξέπεη ζη
o

Java

Virtual

Machine

(
JVM
) λα θαιέζεη
ξνπηίλεο/βηβιηνζήθεο πινπνηε
κέλεο ζε δηαθνξεηηθέο γιώζζεο πξνγξακκαηηζκνύ, όπσο γηα
παξάδεηγκα ζε
C

ή
C
++. ΢ηελ πεξίπησζή

καο,

γηα λα κπνξέζνπκε κέζα από ηνλ
glassfish

application

server

λα θαιέζνπκε θώδηθα ζε
fortran
77, πξόβιεκα ην νπνίν αλάγεηαη

ζηελ
θιήζε
fortran

θώδηθα από πεξηβά
ιινλ
Java
, αθνινπζήζακε ηε

δηαδξνκή
Java


C


fortran
.
Αλαιπηηθόηεξα
:

Αξρηθά
,

πινπνηήζακε
wrapper

ζπλαξηήζεηο ζε
C

γηα

ηηο αληίζηνηρεο ξνπηίλεο ηεο
LAPACK

ζε
fortran
77, θαη έπεηηα
,

κε ηε ρξήζε ηνπ
JNI
,

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

απηέο
. Γηα ηε

δηαδηθαζία απηή

ρξεζηκνπνηήζακε ην εξγαιείν
Swig
, ην νπνίν κέζα από ηε

ρξήζε ελόο
interface

file

(*.
i
)
,

ζην νπνίν πεξηγξάθνληαη νη ζπλαξηήζεηο ηεο
C

δηεπαθήο, παξάγεη ηηο
απαξαίηεηεο
Java

θιάζεηο, νη νπνίεο είλαη αλαγθαίεο γηα ηελ θιήζε ησλ κεζόδσλ
πινπνηεκέλσλ ζε
C
.

Web Service

Client

Web Services

Resource
Framework

LAPA
CK

legacy code
(fortran 77)

JNI

HTTP/S
OAP

΢ρήκα 4.1: Πεξηγξαθή ηνπ ζπζηήκαηνο γηα ηελ εμαγσγή
legacy

code

σο
Web

Services










23


΢η
ν παξαθάησ ζρήκα παξαζέηνπκε αξηζκεηηθά ηα
βήκαηα πνπ αθνινπζήζακε θαηά ηε

δηαδηθαζία απηή
:


1. Δγθαηάζηαζε ηεο βηβιηνζήθεο
LAPACK

ζε
fortran
77
ηνπηθά.

3. Γεκηνπξγία ελ
όο
interface

file
,

ην νπνίν ρξεζηκνπνηείηαη σο
είζνδνο από ην εξγαιείν
Swig

γηα ηελ παξαγσγή ησλ
θαηάιιεισλ
Java

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

headers
,

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

θώδηθα
από ηελ
Java
.

4. Μεηαγιώηηηζε ηνπ αξρείνπ .
c

πνπ έγη λε ζην βήκα 1 θαη
l i nki ng

κε η ε

βη βιη νζήθε η εο
LAPACK



δεκη νπξγ ί α ηεο
δπλακη θήο βη βιη νζήθεο .
so

πνπ ζα θνξησζεί από ην
JVM

γηα
ηελ θιήζε ηεο κεζόδνπ ηεο
LAPACK
.

5. Φόξησζε ηεο δπλακηθήο βηβιηνζήθεο .
so

πνπ δεκηνπξγήζεθε
ζην βήκα 4 θαη θιήζε ηεο
κεζόδνπ από ην πεξηβάιινλ ηεο
java
.

΢ρήκα 4.2: Βήκαηα γηα ηελ θιήζε κεζόδσλ ηεο
LAPACK

από ην
JVM
.


2. Γεκηνπξγία ελόο .
c

αξρεί
νπ
,

ην νπνίν πεξηέρεη ηνλ
αληίζηνηρν νξηζκό ηεο ζπλάξηεζεο ζπκβαηό κε ηελ
C
, γηα ηελ
θιήζε ηεο αληίζηνηρεο
LAPACK

κεζόδνπ από θώδηθα
C

π.ρ.

double ddot_(int *N,double* DX,int*
INCX,double* DY,int* INCY);










24


4.3

Τινπνίεζε ησλ

Web Services

Έπεηηα από ηε

δηαδηθαζία πνπ πεξηγξά
θεθε

αλαιπηηθά ζηελ παξάγξαθν 4.1
,

πινπνηήζακε ηηο
αληίζηνηρεο
We
b

Services

κεζόδσλ ηεο
LAPACK
. Γηα ηελ απόδεημε ηνπ ζελαξίνπ
,

πινπνηήζακε δύν ππεξεζίεο ηελ
DDOT
,

ε νπνία ππνινγίδεη ην εζσηεξηθό γηλόκελν δύν
δηαλπζκάησλ δηάζηαζεο
n
, θαη ηελ
DGBSV
, ε νπνία ππνινγίδεη ηε

ιύζε ηνπ ζπζηήκαηνο
γξακκηθώλ εμηζώζεσλ
Ax
=
b
, όπνπ
ν Α είλαη πίλαθαο δώλεο. Κάπνηνο κπνξεί θάιιηζηα
,

αθνινπζώληαο αθξηβώο ηελ ίδηα δηαδηθαζία
,

λα εθζέζεη νπνηαδήπνηε κέζνδν ηεο
LAPACK
,
ό
πσο θαη νιόθιεξε ηε

βηβιηνζήθε,

σο
Web

Services
.

H

πξνζέγγηζε
,

πνπ αθνινπζήζακε γηα ηελ αλάπηπμε ησλ ππεξεζηώλ
,

ήηαλ
bott
om
-
up
,
δειαδή μεθηλήζακε από ηελ πινπνίεζε ηεο ππεξεζίαο ζε
Java

θαη έπεηηα κε ηε ρξήζε
εξγαιείσλ δεκηνπξγήζακε ηα
stubs

πνπ απαηηνύληαη γηα ηελ θιήζε
ηεο,

όπσο θαη ηα
WSDL

κε ηηο πεξηγξαθέο ησλ ππεξεζηώλ.

Ο
glassfish

application

server

θαηά ηελ εθθίλεζή

η
νπ θνξηώλεη ηηο αληίζηνηρεο δπλακηθέο
βηβιηνζήθεο (.
so
)
,

νη νπνίεο πεξηέρνπλ ηνλ θώδηθα ησλ κεζόδσλ ηεο
LAPACK

θαη αλακέλεη
εηζεξρόκελεο ζπλδέζεηο. Καηά ηελ άθημε ελόο
SOAP

request

γηα θάπνηα από ηηο ππεξεζίεο
καο, γίλεη
αη

επεμεξγαζία ηνπ κελύκαηνο θαη πξα
γκαηνπνηείηαη θιήζε ηεο αληίζηνηρεο
κεζόδνπ.

΢ην παξάξηεκα

Α

π
εξηέρεηαη

ν

θώδηθα
ο

ζε
Java

ησλ
services
,

ελώ ζην παξάξηεκα Β
ηα
WSDL

s
,

ηα νπνία πεξηέρνπλ πιεξνθνξίεο γηα ηνλ ηξόπν θιήζεο ηνπο.


4.4

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

΢πζηήκαηνο

Γηα

πςειόηεξε δηαζεζηκόηεηα
,

ζε

πεξίπησζε βιάβεο
,

θαη γξεγνξόηεξε απόθξηζε ηνπ
ζπζηήκαηνο
,

ζε πεξίπησζε κεγάινπ θόξηνπ εξγαζίαο, πινπνηή
ζεθε

κία
cluster

δηάηαμε γηα
ην
WSRF
,

ην νπνίν θηινμελεί ηηο ππεξεζίεο.

Αλαιπηηθόηεξα
, ην ζύζηεκά

καο (΢ρήκα 4.3)

απνηειείηαη από έλαλ web server θαη δ
ύν

WSRF

instances
.

Ο web server
,

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

ήηαλ ν Sun Java
System W
eb Server 6.1. Σα SOAP requests
, κε ηε

ρξεζηκνπνίεζε σο πξσηνθόιινπ
κεηαθνξάο ηνπ
HTTP
, αξρηθά θζάλνπλ ζηνλ web server. Ο web serv
er κε ηε ζεηξά ηνπ
θαηαλέκεη

ην θόξην εξγαζίαο

αλάκεζα ζηα δύν instances
,

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








25

ησλ services, πξνσζώληαο ην

SOAP request ζην αληίζηνηρν instance. Μόιηο θζάζεη ην SOAP
request ζην θαηάιιειν ins
tance εθηειείηαη ε ππεξεζία
, ην SOAP response ζηέιλεηαη ζηνλ
web
server θαη ηειηθά

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

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


H πνιηηηθή

πν
π αθνινπζεί ν web server γηα ηε δξνκνιόγεζε απηή

είλαη πνιηηηθή round
robbin κε βάξε. Οη ξπζκίζεηο ηνπ load balancer έρνπλ γίλεη κε ίζα π
νζνζηά θαηαλνκήο
θνξηίνπ

θαη ζηα δύν instances (
δίλεηαη ε δπλαηόηεηα ξύζκηζεο ηνπ πνζνζηνύ από ηνλ
administator). Γηα ην ζύζηεκα πνπ θαηαζθεπάζακ
ε ρξεζηκνπνηήζακε δύν instances
,

αιιά
θάπνηνο ζα κπνξνύζε λα ρξεζηκνπνηήζεη θαη πεξηζζόηεξα
,

αλαιόγσο ηνπ θόξηνπ εξγαζίαο

θαη ηεο δηαζεζηκόηεηαο πνπ ζέιεη λα επηηύρεη.



Glassfish
Instance 1

Glassfish
Instance 2


Clien
t requests

HTTP/SOAP

requests

΢ρήκα 4.3: Πεξηγξαθή ηνπ ζπζηήκαηνο


HTTP/SOAP

Web
Server

Load Balancer


plug
-
in









26


4.5 ΢ρεδίαζε δηεξγαζηώλ κε ηε

γιώζζα
WS
-
BPEL

Η Β
PEL

είλαη κία
XML
-
based

γιώζζα γηα ηε

δεκηνπξγία
flows
. ΢ε
XML

πεξηγξάθ
εηαη κία
ξνή εξγαζίαο
,

ε νπνία απνηειείηαη από κία ζεηξά ζεηξηαθώλ ή/θαη παξάιιεισλ θιήζεσλ ζε
Web

Services

ή

ζε ηνπηθά
java

components
, ησλ νπνίσλ
ηα ελδηάκεζα απνηειέζκαηα
κπνξνύλ

λα
ζπλδπαζηνύλ
, πξνθεηκέλνπ

λα
απνηειέζνπλ είζνδν

ζε

επόκελεο θιήζεηο.
Η
X
ML

πεξηγξαθή ηεο ξνήο δίλ
εηαη σο είζνδν ζηελ
BPEL

engine
,

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


Με ηε

ρξήζε ηεο γιώζζαο BPEL θαη ησλ services DDOT θαη DGBSV πινπνηήζακε δύν
ξνέο εξγαζίαο:
κία

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

ρξήζε ηεο DGBSV
.

Η ξνή εξγαζίαο γηα ην παξάιιειν ππνινγηζκό ηνπ
DDOT

παίξλεη σο

είζνδν δύν
δηαλύζκαηα, έζησ Α
θαη Β. ΢ηε

ζπλέρεηα
,

κνηξάδεη ηα δηαλύζκαηα ζε δύν ίζα κέξε ην θαζέλα
θαη έπεηηα εθηειεί παξάιιειε θιήζε ηεο ππεξεζίαο
DDOT

γηα ην θαζέλα από απηά. Γειαδή
Glassfish Instance 1

Glassfish Instance 2

Web Se
rver

Web Service

Client

DDOT Request

Fwd DDOT Request

DDOT Response

Fwd DDOT Response

DGBSV request

Fwd DGBSV request

DGBSV response

Fwd DGBSV response

Load .so libraries
with LAPACK
routines


Load .so
libraries
with LAPACK
routines


time

΢ρήκα 4.3 : Παξάδεηγκα εθηέιεζεο










27

εθηειεί ηελ θιήζε
DDOT

(Α[0,

n
/2]
,

B
[0,
n
/2]
) θαη παξάιιεια ηελ
DDOT

(
A
[
n
/2,
n
],
B
[
n
/2,
n
]
). ΢ηε

ζπλέρεηα
,

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

επίζεο,

έλα
Web

Service
,

ην νπνίν ην θάλακε
deploy

ζηνλ
application

servers

καο.









28


Process Start


Start

Assign 2

Assign 1

+

for each

scope 1

Assign 3

for each

scope 2

Assign 4

Invoke

Web Service

DDOT

Invoke

Web Service

DDOT

+

Assign 5

End

Process End

΢ρήκα 4.4
: Parallel DDOT flow









29

Η επόκελε ξνή εξγαζίαο πνπ ζρεδηάζακε είλαη γηα ηελ επίιπζε ελό
ο γξακκηθνύ ζπζηήκαηνο
εμηζώζεσλ Α
x
=
b
, όπνπ ν Α είλαη πίλαθαο δώλεο. Η ξνή εξγαζίαο ζηέιλεη κόλν ηα κε
κεδεληθά ζηνηρεία ηνπ πίλαθα. Η ππεξεζία
DGBSV

κεηαηξέπεη ηνλ πίλαθα ζε κνξθή
ζπκβαηή κε ηελ
fortran
77 (δειαδή αιιάδεη ηνλ ηξόπν απνζήθεπζεο από γξακκέο
ζε ζηήιεο)
θαη πξαγκαηνπνηεί ηελ θιήζε ζηε

κέζνδν
DGBSV

ηεο
LAPACK
. ΢ηε

ζπλέρεηα
,

επηζηξέθεη
ην δηάλπζκα
b

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



Process
Start

Start

Assign Values

Invoke
Web Service

DGBSV

Assign Results

End

Process End

΢ρήκα 4.
5: DGBSV flow









30

4.
6

΢ύλνςε

Η ρξήζε ησλ
Web

Services

αιιάδεη ηνλ ηξόπν κε ηνλ νπνίν θάλνπκε επηζηεκνληθνύο
ππνιν
γηζκνύο θαη πξνζθέξεη πνιιέο λέεο δπλαηόηεηεο.

Οπνηαδήπνηε νληόηεηα κέζα ζην
Γ
ηαδίθηπν κπνξε
ί λα έρεη νκνηόκνξθε πξόζβαζε

ηόζν ζε πιηθό γηα ηελ εθηέιεζε
ππνινγηζκώλ, όζν θαη ζε βηβιηνζήθεο.

Η ηερλνινγία ησλ
Web

Services

παξέρεη κεγά
ιε δηαθάλεηα ζηνλ ηειη
θό ρξήζηε
. Έηζη
,

κία
ππεξεζία πνπ εθηειεί επηζηεκνληθνύο ππνινγηζκνύο κπνξεί λα ηξέρεη είηε ηνπηθά ζε έλα
απνκαθξπζκέλν
server
, είηε ζε θάπνην
computational

cluster

ή αθόκα
θαη
ζε έλα
grid

πεξηβάιινλ. ΢ε θαζεκία από ηηο
παξαπάλσ πεξηπηώζεηο εμάγνπλ ηε

ινγη
θή ησλ ππεξεζηώλ
,

θξύβνληαο ηηο ππόινηπεο ιεπηνκέξεηεο.

΢ην επόκελν θεθάιαην παξαζέηνπκε κία πεξηγξαθή ηεο πθηζηάκελεο θαηάζηαζεο ηνπ
H
ellas

G
rid
,

θαζώο θαη ηε
λ έξεπλα πνπ θάλακε γύξσ από ηε

δπλαηόηεηα αλάπηπμεο
Web

Services
,

νη νπνίεο

γηα ηελ εθηέιεζε ησλ

ππνινγηζκώλ ζα ρξεζηκνπνηνύλ ηελ ππνδνκή ηνπ
Hellas

Grid
.















31



Hellas Grid / EGEE

΢ην αθόινπζν
θεθάιαην

γίλεηαη

κία
ζύληνκε
πεξηγξαθή ηεο ππνδνκήο ηνπ
Hellas

Grid
,

ην
νπνίν απνηει
εί
ππνζύλνιν

ηνπ
EGEE
. ΢ηε

ζπλέρεηα
,

αλαθέξνπκε ηα πξνβιήκαηα πνπ
ππάξρνπλ
ζηελ αλάπηπμε εθαξκνγώλ ζην Η
ellas

Grid

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

δηαδηθαζία αλάπηπμεο
Web

Services
,

νη νπνίεο δξνπλ σο
ελδηάκεζνο

αλάκεζα ζην

ρξήζη
ε θαη
ζηελ ππ
νδνκή γηα ηελ απνζηνιή εξγαζηώλ
.

5.1


Η ππνδνκή ηνπ
Η
ellas

G
rid

To

EGEE

(
Enabling

Grids

for

E
-
sciencE
) είλαη έλα εξεπλεηηθό πξόγξακκα
,

ην νπνίν
ρξεκαηνδνηείηαη από ηελ Δπξσπατθή
Έλσζε θαη
ελώλεη 70 ηδξύκαηα ζε 27 ρώξεο. ΢ηόρνο
ηνπ είλαη ε θαηαζθεπή κηαο
Grid

ππνδνκήο γηα ηνλ επξσπατθό ηνκέα έξεπλαο
. Απηή ηε

ζηηγκή απνηειείηαη από 41.000
CPU

s

θαηαλεκεκέλεο ζε 250
sites
,

ηα νπνία απνηεινύληαη
από εξεπλεηηθά θέληξα, παλεπηζηήκηα, εηαηξίεο θαη ηξίηνπο θνξείο. Αλ θαη ην πιηθό πνηθίιεη
,

ζηελ ππνδνκή ηνπ
EGEE

ρξεζηκνπνηείηαη ε δηαλνκή ηνπ
Scientific

Linux
,

ελώ ην
middleware

ηνπ
EGEE

είλαη ην
glite
.
To
H
ellas
G
rid απνηειεί ππνζύλνιν ηνπ ΔGEE.

Η ππνδνκή ηνπ
H
ellas

G
rid
απνηειείη
αη

από 6 ππνινγηζηηθέο
ζπζηνηρίεο

(clusters) κε
ζπλνιηθή ηζρύ 768 CPUs (384
-
dual)
,

θαζώο θαη 90 ΣΒ απνζεθεπηηθνύ ρώξνπ, 30 κε ηε
κνξθή δίζθσλ θαη 60 κε ηε κνξθή βηβιηνζεθώλ ηαηλ
ηώλ (tape libraries). Οη ζπζηνηρίεο
,

πνπ
απνηεινύλ ηνπο θόκβνπο ηνπ Grid
,

θηινμελνύληαη

ζε ηδξύκαηα ζηελ Αζήλα (3),
ηε
Θεζζαινλίθε(1),
ηελ
Πάηξα (1) θαη
ην
Ηξάθιεην Κξήηεο (1).










32


΢ρήκα 5.1:
H

ππνδνκή ηνπ
Hellas

Grid
.




5.2


Πξόζβαζε ζηελ ππνδνκή

Γηα
ηελ απόθ
ηεζε

πξ
όζβαζε
ο

ζηελ ππνδνκή
απαηηείηαη
,

αξρηθά
,

ε έθδνζε ελόο ςεθηαθνύ
πηζηνπνηεηηθνύ

Υ.509. Η απόθηεζε ηνπ παξαπάλσ γίλεηαη
αξρηθά

κε

ηε

ζπκπιήξσζε κίαο
on
-
line αίηεζεο θαη έπεηηα ηελ πηζηνπνίεζε ηεο ηαπηόηεηαο ηνπ ρξήζηε από ηελ αξκόδηα
αξρή πηζηνπνίεζεο

αλά πεξηνρή. Με ηελ απόθηεζε ηνπ πηζηνπνηεηηθνύ απηνύ
,

ν ρξήζηεο
εη
ζέξρεηαη

ζην Virtual Organization ηνπ Southern Eastern Europe. Με ην πηζηνπνηεηηθό απηό
έρεη πξόζ
βαζε ζηελ ππνδνκή όρη κόλν ηνπ Ηellas
G
rid
,

αιιά θαη ηνπ EGEE (πεξίπνπ 4
.
10
0
CPU's θαηαλεκε
κέλεο
ζε όιε ηελ Δπξώπε)
.

Μεηά ηελ
νινθιήξσζε
ηεο παξαπάλσ

δηαδηθαζίαο
,

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

κε ηελ ππνδνκή
ππάξρνπλ δύν ηξόπνη. Ο πξώηνο είλαη
ε απόθηεζε
απνκαθξπζκέλε
ο

πξόζβαζε
ο

(γηα
παξάδεηγκα ssh) ζε θάπνην ππνινγηζηηθό ζύζηε