Portaali „eesti.ee” arendusraamistik Dokumendi tüüp ...

outstandingmaskData Management

Nov 29, 2012 (4 years and 8 months ago)

765 views


Dokumendi tüüp:

Dokumentatsioon

Dokumendi number:

1


Dokumendi
nimetus:

Riigiportaal
i

„eesti.ee”
arendusraamistik

Versioon:

1.0
4

Leh
ti:

104

Kinnitas:

Projekti nimetus:

Riigiportaal

Süsteemi nimetus:

Riigiportaal

„eesti.ee”

Kuupäev:

12.06.2006

Viide eelmisele
dokumendile:

Salastatus:

Avalik

Kommentaar:

Kooskõlastatud:

Tellija esindaja:



/al
lkiri ja kuupäev/



Täitja esindaja:



/allkiri ja kuupäev/


Versioonihaldus


Kuupäev

Versioon

Kirjeldus

Autor

13.12.2004

0.1

Esimene mustand

arendusosakond

16.03.2013

0.2

Muudatused

arendusosakond

22.03.
2005

0.3

Download,
htp.env


arendusosakond

15.04.2005

0.4

public.allow, jpm

AS Cybernetica ettepanekud

23.04.2005

1.0

BASE
-
64 upload

arendusosakond

19.05.2005

1.0.1

XML ja SOAP

椠ia潫猠oa橡汩歵搠
täiendused „=” tunnus jm
=
a牥湤畳潳慫潮n
=
〸⸱〮㈰〵
=
ㄮ〮N
=
_䅓A
-
㘴⁤潷湬潡搬⁰waⰠ佲ac汥ä
桴瀬⁨h昬fa彵瑩氬睡彣潯歩攠
a湡汯äg楤Ⱐi楴浥步e汳畳Ⱐ
_䅓fC彁_呈=a畴敮瑩u楮攬i
a摭d湩獴牥e物浩獬s楤敳i搬d
步獫歯湮s⁰=ra浥m瑲楤灭
=
a牥湤畳潳慫潮n
=

P
ortaal
i „eesti.ee”

arendusraamistik



Versioon
1.
0.
4

2

(
104
)

16.03.2013


Kuupäev

Versioon

Kirjeldus

Autor

23.12.2005

1.0.3

Lisatud protseduur andmetega
rakenduse paigaldamiseks

arendu
sosakond

01.06.2006

1.0.4

Jooksvad täiendused

arendusosakond










P
ortaal
i „eesti.ee”

arendusraamistik



Versioon
1.
0.
4

3

(
104
)

16.03.2013


1.

SISUKORD

1.

SISUKORD

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

3

2.

LÜHENDID JA MÕISTED

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

7

3.

SISSEJUHATUS

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

9

3.1.

H
ETKEOLUKORD

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

9

3.2.

V
AJADUS
FW

KIRJELDAVA DOKUMENDI

JÄRELE

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

9

3.3.

A
UDITOORIUM

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

9

3.4.

FW

EESMÄRGID JA ALUSPÕH
IMÕTTED

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

10

3.5.

A
RHITEKTUURSE LAHENDU
SE REFERENTSID

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

12

4.

INFRASTRUKTUURI TOIM
IMISE LOOGIKA

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

13

4
.1.

Ü
LDPÕHIMÕTTED

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

14

4.1.1.

Andmekiht

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

14

4.1.2.

Rakenduskiht

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

14

4.1.3.

Esitluskiht

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

14

4.2.

P
ROTSESSI KIRJELDUS

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

15

4.3.

K
OMPONENDID

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

16

4.3.1.

Apache veebiserver

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

16

4.3.1.1.

Konfiguratsioonifail

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

16

4.3.2.

PL/PgSQL Gateway

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

20

4.3.2.1.

Konfiguratsioon

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

20

4.3.2.2.

Pöördumine GW poole

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

22

4.3.2.3.

POST, GET ja HEAD meetod

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

24

4.3.2.4.

Transaktsioonid

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

24

4.3.2.5.

Parameetrite edastamine

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

24

4.3.2.6.

Parameetrite edastamine massiividena

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

25

4.3.2.7.

Paindlik parameetrite edastus

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

25

4.3.2.8.

XML ja SOAP parameetriedastu
s

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

26

4.3.2.9.

GW töö keskkonnamuutujatega*

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

26

4.3.2.10.

GW limiidid

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

27

4.3.2.11.

Failide üles
-

ja allalaadimine (upload/download)

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

27

4.3.3.

Pgpool
-
II

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

28

4.3.3.1.

Konfiguratsioonifail

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

28

4.3.4.

PostgreSQL server

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

28

4.3.4.1.

Installeerimine

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

28

4.3.4.2.

Andme
baasi varundamine

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

30

4.3.4.3.

Versiooniuuendus

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

32

4.3.5.

PostgreSQL välised lisakomponendid

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

32

4.3.5.1.

contrib
-
pakettide paigaldamine

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

32

4.3.5.2.

pgenv

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

32

4.3.5.3.

sharedvar

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

33

4.3.5.4.

pljava

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

33

4.3.5.5.

xml2 (contrib)

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

33

4.3.5.6.

Lisa PL
-
keeled

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

34

4.3.5.7.

fuzzystrmatch (contrib)
................................
................................
........................

34

5.

ARENDAMISEKS VAJALIK
UD KOMPETENTSID

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

3
5


P
ortaal
i „eesti.ee”

arendusraamistik



Versioon
1.
0.
4

4

(
104
)

16.03.2013


5.1.

GW

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

35

5.2.

Ü
HISKASUTATAVAD KOMPO
NENDID JA RAKENDUS
................................
...........................

35

6.

RAKENDUSE STRUKTUUR

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

36

6.1.

Ü
LDPÕHIMÕTTED

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

36

6.2.

A
RHITEKTUUR

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

36

7.

ÜHISKASUTATAVAD KOMP
ONENDID

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

37

7.1.

Ü
LDPÕHIMÕTTED

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

37

7.2.

K
ESKKONNAMUUTUJAD

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

37

7.3.

S
KEEMID

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

38

7.3.1.

pwa

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

40

7.3.2.

public

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

44

7.3.3.

htp

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

45

7.3.4.

htp1, htp2, htf

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

45

7.3.5.

sys

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

48

7.3.6.

xml

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

54

7.3.7.

xtee

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

56

7.3.8.

portaal

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

56

7.3.9.

asutused

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

58

7.4.

K
LASSIFIKAATORID

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

60

7.5.

K
ASUTAJALIIDESE TEKST
ID JA MITMEKEELSUSE
REALISATSIOON

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

61

7.6.

A
DMINISTREERIMISLIIDE
S

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

62

7.7.

B
ATCH
-
PROTSESSID

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

64

8.

ASUTUSTE, AMETIKOHTA
DE, ISIKUTE JA ÕIGUS
TE MOODUL

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

66

8.1.

Õ
IGUSTE KONTROLLIMINE

RAKENDUSTES

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

66

9.

SISUHALDUS JA

REPOSITOORIUM

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

68

10.

DOKUMENDIREPOSITOORI
UM

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

69

11.

SESSIOONIHALDUS

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

70

11.1.

S
ESSIOON

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

70

11.2.

A
UTENTIMINE

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

70

11.3.

S
ESSIOONI REALISATSIO
ON

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

70

11.4.

S
ESSIOONI OLEMASOLU K
ONTROLLIMINE JA SESS
IOONI LOOMINE

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

72

11.4.1.

Sessiooni mittenõudvad leheküljed

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

72

11.4.2.

Sessiooni loomine kasutaja tuvastamiseta

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

73

11.4.3.

Sess
iooni loomine kasutaja tuvastamisega

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

73

11.4.4.

Sessiooni loomine ja üleandmine välise süsteemi poolt

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

73

11.5.

S
ESSIOONI ÜLALHOI
DMINE

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

73

11.6.

S
ESSIOONI UUENDAMINE

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

74

11.7.

S
ESSIOONI LÕPETAMINE

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

74

11.8.

S
ESSIOONI AEGUMINE

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

74

11.9.

S
ESSIOONI ÜLEANDMINE

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

74

12.

KONVENTSIOONID

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

75

12.1.

K
OODI STIIL

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

75

12.2.

N
IMETUSED

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

75

12.3.

P
ARAMEETRITE EDASTAMI
NE
HTTP

PROTOKOLLIGA

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

76

12.4.

M
UUD NÕUDED

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

76


P
ortaal
i „eesti.ee”

arendusraamistik



Versioon
1.
0.
4

5

(
104
)

16.03.2013


13.

VERSIOONIKONTROLL

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

78

14.

MUUDES TEHNOLOOGIATE
S VALMISTA
TUD RAKENDUSTE
INTEGREERIMINE

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

79

14.1.

S
ISSEJUHATUS

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

79

14.2.

PHP

RAKENDUSTE SESSIOONI
HALDUS

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

79

14.3.

FW

RAKENDUSTE SESSIOONI
HALDUS

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

80

14.4.

T
OMCATI RAKENDUSTE SE
SSIOONIHALDUS

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

80

14.5.

P
ORTAALI

PÄISE JA JALUSE KASU
TAMINE

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

80

15.

TESTIMINE JA INSTALL
EERIMINE AVALIKKU KA
SUTUSSE

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

82

15.1.

G
ATEWAY

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

82

15.2.

R
AKENDUSED JA ÜLDKASU
TATAVAD FUNKTSIOONID

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

82

16.

LOGIMINE

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

83

16.1.

K
ASUTAJA PÄRINGU
TE LOGIMINE

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

83

16.2.

T
ABELITE MUUDATUSTE L
OGIMINE

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

83

16.3.

G
ATEWAY SÜNDMUSTE LOG
IMINE

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

84

17.

MONITOORING

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

86

17.1.

K
ASUTAJATE TEGEVUSE M
ONITOORING

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

86

17.2.

S
ÜSTEEMSETE PARAMEETR
ITE MONITOORING

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

86

17.3.

V
EALOGIDE MONITOORING

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

87

18.

VEATÖÖTLUS

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

88

18.1.

P
OSTGR
E
SQL

FUNKTSIOONIDE TÄITMI
SE KÄIGUS TEKKINUD E
TTENÄGEMATUTE VIGADE

INFO

88

18.2.

V
EALEHEKÜLJED

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

88

19.

TURVALISUS JA PÄÄSUÕ
IGUSED

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

89

19.1.

O
PERATSIOONISÜSTEEMI
TASE

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

89

19.2.

P
OSTGRE
SQL

TASE

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

89

1
9.3.

FW

FUNKTSIONAALNE TURVA
SKEEM

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

89

19.4.

R
AKENDUSE TASE

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

90

19.5.

V
EEBI TASE
................................
................................
................................
...................

90

20.

STIILILEHTEDE KASUTA
MINE

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

91

21.

KESKKONNAD JA LIGIPÄ
ÄSUAADRESSID

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

92

21.1.

A
RENDUSKESKKOND

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

92

21.1.1.

Üldandmed

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

92

21.1.2.

GW arendus

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

93

21.1.3.

Skeemid

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

93

21.2.

A
VALIK KESKKOND

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

93

22.

REPLIKATSIOON, KOORM
USJAOTUS, FAILOVER (
?) JA
RIISTVARAPLATVORM

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

95

23.

ARENDUSVAHENDID

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

97

23.1.

P
G
A
DMIN
III
................................
................................
................................
.................

97

23.2.

EMS

P
OSTGRE
SQL

M
ANAGER

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

98

23.3.

EMS

P
OSTGRE
SQL

D
ATABASE
C
OMPARER

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

99

23.4.

M
UUD ABIVAHENDID

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

99


P
ortaal
i „eesti.ee”

arendusraamistik



Versioon
1.
0.
4

6

(
104
)

16.03.2013


24.

PROBLEEMIDE LAHENDAM
INE JA

KONTAKTISIKUD

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

100

25.

NÄIDISRAKENDUS

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

101


P
ortaal
i „eesti.ee”

arendusraamistik



Versioon
1.
0.
4

7

(
104
)

16.03.2013


2.

LÜHENDID JA MÕISTED

Esitatud definitsioonid ei pruugi olla täpsed
ega ammendavad
ja on kasutatavad vaid selle
dokumend
i kontekstis.

CGI



Common Gateway Interface
. Standardne liides veebiserveri ja rakendusprogrammide vahel

CMS



Content Management S
ystem
,
sisuhaldussüsteem

Connection Pool


hulk püsivaid andmebaasi ühendusi

Cookie



küpsis, kasutaja brauseri poolt arvut
isse salvestatav andmestik, mida saab edaspidi
kasutada samast serverist brauserisse laaditud veebileht

DAD



Database Access Descriptor
.
Andmebaasi poole pöördumise konfiguratsiooniandmete
komplekti identifikaator

Funktsioon


andmebaasi SP

na või välise

programmi abil realiseeritud funktsioon, mis tagastab
sisuka väärtuse või erijuhul toimib iseseisva protseduurina

FW



käesoleva dokumendi tähenduses
riigiportaal
i

arendusraamistik

(
edaspidi ka
framework
)

GET



HTTP protokolli päringumeetod, mille korral
parameetrid edastatakse päringu URL
-
ga

GW



PostgreSQL Gateway
. Veebiserverit andmebaasiserveriga liidestav rakendusprogramm.
Oracle
mod_plsql

ja OWA (Oracle Web Agent)

funktsionaalne analoog

HEAD



HTTP päringu meetod, mille puhul kasutajale saadetakse t
agasi ainult HTTP päised

KP



Key
-
Value Pair
.
Andmete edastamise meetod, mille puhul andmed edastatakse loeteluna
muutuja nimest ja sellele järgnevast muutuja väärtusest teksti kujul

LGPL


GNU Lesser General Public License.
Litsentsitingimused vastavalt
http://www.gnu.org/licenses/lgpl.html
. Vaba tarkvara litsentsitingimused, mis võimaldavad
tarkvara kasutada kommertstoodete koosseisus

LL



Login Level
.

Arv, mille väärtus iseloomustab kasutaja autentim
ise turvataset (sessiooni
parameeter). Mida suurem LL, seda kõrgemaks loetakse kasutaja autentimise usaldusväärsust

Metadata



andmed andmete kohta

PL


Procedural Language
, andmebaasi sisemine programmeerimiskeel


PL/PgSQL



Procedural Language

/ PostgreS
QL

POST



HTTP protokolli päringumeetod, mille korral parameetrid edastatakse päringu kehas

PostgreSQL, PG


RDBMS, vabavaraline relatsiooniline andmebaasihaldur

Rakendus


rakendusprogramm. Funktsionaalselt terviklik alaminfosüsteem, mis sisaldab
rakendus
espetsiifilist tegevus
-

ja andmekihti


P
ortaal
i „eesti.ee”

arendusraamistik



Versioon
1.
0.
4

8

(
104
)

16.03.2013


Rakenduse leht


rakenduse poolt genereeritav veebileht, mis sisaldab ka portaali
baasfunktsionaalsuse poolt loodud komponente (päis, jalus, menüüd jms)

RIA


Riigi Infosüsteemide Arenduskeskus

RP


riigiportaal „eesti
.ee”

Skeem (
schema
)


andmebaasi objektide loogiline jaotis, mis võib sisaldada kõiki andmebaasi
objektiliike peale teiste skeemide

SP



Stored Procedures
. Andmebaasi sisesed ja andmebaasi kontekstis käivitatavad protseduurid.

Stylesheet



stiilileht

Sysda
te



FW

süsteemi lokaalne aeg

URL


Uniform Resource Locator. Dokumendi või muu ressursi globaalne aadress veebis

VKP


Vana Kodanikuportaal

WSRP



Web Services for Remote Portlets
, OASIS standard



P
ortaal
i „eesti.ee”

arendusraamistik



Versioon
1.
0.
4

9

(
104
)

16.03.2013


3.

SISSEJUHATUS

3.1.

Hetke
olukord

RIA infosüsteemide arhitektuur o
n kujunenud projektipõhiselt


RIA pole ette andnud
tehnoloogilisi piiranguid ja tarnijatel on olnud suur vabadus valida endale meelepärane
tehnoloogia ja tehniline platvorm. Selle tagajärjel on kasutusele võetud erinevad
operatsioonisüsteemi Linux distrib
utsioonid (
Redhat, Debian
), erinevad andmebaasikeskkonnad
(DB2,
MySQL
, PostgreSQL), erinevad rakendusserverid (
Websphere, Zope
, Tomcat

erinevad
versioonid
) ja erinevates programmeerimiskeeltes kirjutatud rakendused (C, PHP,
Perl, Java
,
Python
). Mitmetel ju
htudel on komponentide versioonid vananenud, kuid uusi kasutusele pole
võetud, kuna uuele versioonile migreerimine on seotud riskidega ja vajab tarkvara
tarnija

tuge.
Osaline ja mittejärjekindel vabavara kasutamine on olnud tingitud peamiselt tarnijatepool
sest
kulude kokkuhoiust, mitte tellija huvidest.


Lahenduste suurt heterogeensust arvestades on
haldamiseks, arendamiseks ja kaasajastamiseks
vaja väga suurt hulka erinevaid kompetentse.
Lisaks
tekitab kompetentside puudumine sõltuvuse
komponente tundvates
t tarnijatest ning loob eeldused
tarnijatepoolseks
ebaõiglaseks
hinnakujunduseks.

RIA hallatavate süsteemide arendamisel on RIA eesmärgiks on olla mitte tarkvara
-
arendaja, vaid
kompetentne tellija. Kõigi eelkirjeldatud tehnoloogiate poolt eeldatud kompeten
tside kujundamine
RIA
-
sse pole otstarbekas. Lahenduseks on pakutud
vähemalt RP vajadusi, aga potentsiaalselt ka
teisi

veebipõhiste arendus
valdkondade klass
e

katva arendusraamistiku kujundamine, mille
haldamiseks ja
millel
arendamiseks
oleks
vajalike kompe
tentside hulk

minimaalne
.

Arvutisüsteemse taseme infrastruktuuri valdkonnas on
samalaadseks initsiatiiviks on RIA IT
-
profiili kehtestamine.

Arvutisüsteemse taseme infrastruktuuri arhitektuuri osas on toimunud
serverite spetsialiseerumine. Üldjuhul on kõig
i rakenduste andmekiht konsolideeritud dubleeritud
spetsialiseeritud andmebaasiserveritele, tegevuskihid rakendusserveritele ja veebikiht
veebiserveritele.

FW
ülesandepüstitusel ja
loomisel on lähtutud peamiselt varasemate
edukate

projektide
negatiivsetest

ilmingutest
.

3.2.

Vajadus FW kirjeldava dokumendi järele

FW kirjeld
us on vaja
lik

RP
(ja kohaldatavusel ka muude RIA hallatavate veebirakenduste)
aren
gu
järjepidevuse tagamiseks RIA siseselt, ühtsete nõuete kehtestamiseks ja

kommunikeerimiseks
välistele koostöö
partneritele
.

Edaspidises tekstis on halli värvi tekstiga esitatud need funktsioonid, mis pole veel realiseeritud.

3.3.

Auditoorium

Dokumentatsioon on mõeldud
rakenduste tööks vajaliku
infrastruktuuri ammendavaks kirjelduseks
rakenduste arendajatele ning
infras
truktuuri
haldajatele. Seetõttu eeldab dokument keskmisel
tasemel tehniliste teadmiste olemasolu järgmistes valdkondades:


P
ortaal
i „eesti.ee”

arendusraamistik



Versioon
1.
0.
4

10

(
104
)

16.03.2013




veebirakenduste üldine arhitektuur;



Apache veebiserver
, HTTP
(S)

protokoll ja CGI liides
;



Linux OS;



HTML
(
rakenduste tasemel

ka
XML, XS
L, XSLT
)
;



SQL ja
PL/SQL
(Oracle)
või PL/PgSQL

(PostgreSQL)
.

3.4.

FW eesmärgid ja aluspõhimõtted

FW loomisel on eeskujuks võetud Oracle pikaajaline ja jätkuv tooteliin WebView


WebDB


Oracle Portal


HTML DB



Application Express
ja selle aluseks olev arhitek
tuurne lahendus
.
Oracle
-
põhise
WebView

arhitektuur
on üle kantud vabavara keskkonda
,

kasuta
des
põhikomponendina
PostgreSQL

-
i
.


Eesmärgid ja aluspõhimõtted:

1)

minimiseerida arendamiseks
ja haldamiseks
vajalik kompetentside arv eesmärgiga tagada
FW rakenduste

jätkusuutlikkus
veaparandusteks, väiksemahulisteks arendusteks ja välistelt
koostööpartneritelt arendustööde tellimiseks
vajalike kompetentside RIA
-
sisese säilitamise
teel
;

2)

kasutada vabavaralisi lahendusi,
vältimaks
FW
kasutus
piirangu
id
;

3)

tagada arendustöö

tellijale võimalikult hea kontroll arendustöö
eesmärgipärase
edenemise

ja kvaliteedi
üle;

4)

vähendada rakenduste keerukust ja tõsta töökindlust, minimiseerides tehnoloogiliselt
eraldiseisvate komponentide, arhitektuursete kihtide ja nendevaheliste liideste
hulka;

5)

edasiarendamine ei tohiks segada rakenduste tavakasutust (muudatuste installeerimine ei
tohi eeldada süsteemi seiskamist);

6)

luua tingimused hea ülevaate säilitamiseks lähtetekstidest ja võimalikult suure hulga
korduvkasutatava programmikoodi tekkimis
eks;

7)

ei tohi sisaldada komponente, mis pole tellija omanduses,
pole
asendatavad või millel turul
puudub pakkujate paljusus;

8)

tagada korduvkasutatavate komponentide toel kasutajaliideste ühtne disain ja
käitumismudel;

9)

tagada
s
kaleeruvus skaleerimist vajavate

komponentide vähendamise teel;

10)

pakkuda välja haldamiseks ja arendamiseks piisavalt lihtne ja töökindel keskkond;

11)

valida lahendus, mille korral oleks tagatud sobiva kvalifikatsiooniga tööjõu kättesa
adavus
Eesti tööjõuturul.

Tehnilised valikud ja järeldused
:


P
ortaal
i „eesti.ee”

arendusraamistik



Versioon
1.
0.
4

11

(
104
)

16.03.2013


1)

vajalike kompetentside piiramiseks
kaob
OS

failisüsteemist käivitatav PHP, C,
Perl

vms
keel
es kirjutatud rakenduste kiht;

2)

tegevus
-

ja esitluskiht
on
realiseeri
tud
andmebaasi sisemiste protseduurkeelte vahenditega;
toetatud on PL/PgSQL, osaliselt
(kasutam
iseks erijuhtudel)
C,
PL/Perl;

3)

U
TF
-
8

toetus
on tagatud FW poolt
;

4)

rakendused
integreeritakse
üldkasutatava funktsionaalsuse abil (
ühine visuaal,
logimine,
klassifikaatorid,
sisuhaldusfunktsionaalsus,

menüüstruktuur
,

navigeerimisloogika
jms)
kaudu;

5)

FW
peab p
akkuma rakendustele
keskselt ja ühetaoliselt infot
rakenduse töö
keskkonna ja
rakenduse konteksti kohta;

6)

rakenda
takse
keskset kasutajaõiguste,

profiilide ja eelistuste haldust;

7)

autentimi
ne
, autoriseerimi
ne
ja
sessioonihaldus peab olema k
õ
igi rakenduste ja
oks ühine
;

8)

FW peab pakkuma

arendajatele tööviljakust tõstvaid keskseid komponente (näiteks
isikukoodi õigsuse kontroll
, sisestusväljade valideerimine
, XSL transformatsioonid jms);

9)

tagada rakenduste realisatsiooni vastavus parimatele praktikatele kesksete
veatöötluskomponentide, kirjete ajatembeldamise, muudatuste logimise jms vahendite abil;

10)

liidesed suhtlemiseks väliste süsteemide ja keskkonnaga peavad olema ühetaolised
;

11)

ühtsed standardid
lähteteksti

struktuurile, nimetamise konventsioonidele ja
lähteteks
ti
sisestele kommentaaridele

lähtetekstis kiire orienteerumise eesmärgil;

12)

kehtestada

läbimõeldud prots
eduurid

arendamisel, paigaldamisel ja muudatuste haldusel;

13)

administratiivsete reeglitega eraldada üksteisest rakenduste esitluskiht, äriloogika kiht ja
and
mekiht;

14)

realiseerida tehniliselt keerukas ja turvalisuse või jõudluse poolest nõudlik
tarkvara

kesksete komponentidena;

15)

lihtsustada rakenduste suhtlemist süsteemsete vahendite ja kesksete komponentidega;

16)

võimaldada väliste rakenduste liidestamist ühekordse
lt realiseer
itud standardsete liideste
abil;

17)

pakkuda arendajatele kesksed funktsioonid sisu ja metaandmete hoidmiseks, haldamiseks,
kasutamiseks ja versioonimiseks;

18)

moodustada veebirakenduste esitluskiht kesksete komponentide abil,
et tagada
:

a.

HTML
teksti
k
orrektsus

ja vastavus samale standardi versioonile
;

b.

üht
n
e stiil;

c.

kasutatavus
enimlevinud

brauserit
üüpide poolt
;


P
ortaal
i „eesti.ee”

arendusraamistik



Versioon
1.
0.
4

12

(
104
)

16.03.2013


d.

kasutajaliidese mitmekeelsus;

e.

eraldatus tegevuskihi loogikast ja väliskujunduse keskse muutmise võimalus.

19)

võimaldada arendustöö tellimist väljas
tpoolt olemasolevale platvormile rakenduste ja
komponentide lisamiseks, tagades sealjuures:

a.

arendajate töö sõltumatuse ja erinevate arendajate arenduskeskkondade eraldatuse;

b.

rakenduste töö sõltumatuse üksteisest (sh teiste arendajate rakenduste
potentsiaal
setest vigadest

ja turvaprobleemidest
);

c.

erinevate arendajate poolt loodud rakenduse omavahelise ühilduvuse ja kooskõla
portaali kontseptsiooniga;

20)

tagada ühetaoliselt võimalus funktsionaalsuse testimiseks
arenduskeskkonnas arendajate ja
avalikus keskkonnas
testkasutajate poolt;

21)

moodustada
lähtetekstide

repositoorium rakendust
arkvara

näidete hoidmiseks ja
taaskasutamiseks;

22)

tehnoloogili
s
e platvorm
i dokumenteerimine muul otstarbel (juurutamine mujal)
.

3.5.

Arhitektuurse lahenduse r
eferentsid

Kirjeldatud arhitektuur
on Oracle platvormil kasutusel järgmistes infosüsteemides:

1)

Eesti Liikluskindlustuse Fond, l
iikluskindlustuse infosüsteem


ametialaselt kasutavate
personaalsete kasutajatunnustega ja

õigustega kasutajate arv ca 10000 (2002. a seisuga),
kõik liikluskindlus
tusega tegelevad kindlustusseltsid ja nende edasimüüjad. 100 %
väljastatavatest liikluskindlustuspoliisidest (ca 1

miljon

liikluskindlustuspoliisi aastas),
liikluskindlustuse kahjude käsitlus

(ca 20,000 kahjujuhtumit aastas)
, poliiside selvemüük
Internetis

tasumisega pangalingi kaudu
, liikluskindlustuse statistika ja aruandlus
;

2)

Päästeamet, Päästeameti
infosüsteem



väljakutsete registreerimine, päästeoperatsioonide
koordineerimine jm (allikas:
www.iesoft.ee
)

3)

AS Elion


kõnelaotused Internetis, kolmepoolsed lepingud, arvelduse süsteem, müügijuhi
töökoht, toote
-

ja kliendilepingud (allikas:
www.iesoft.ee
)

4)

AS If Kindlustus


(lisaks liikluskindlustusele) kodukindlustuse infosüsteem, jur
iidiliste
isikute varakindlustus, sõidukikindlustus, reisikindlustus, avalik kodukindlustuse
internetimüük, avalik õnnetusjuhtumikindlustuse internetimüük.

5)

Mõned eestis kaitstud
samal arhitektuuril kaitstud
diplomi
-

ja magistritööd:
(
http://www.itcollege.e
e/~fdorbek/Fredi_Dorbek_Diplomitoo.pdf

(ITC)
,

Indrek Sooneste
magistritöö (TTÜ)

). Lisaks käsitletakse HTMLDB

-
d

ka TTÜ loengukursustes.

Samas on
Oracle lahenduse puudus
t
eks

(
ehk
miks mitte
kasutada
Oracle

tarkvara
)
:



kõrge
CPU
-
põhised litsentsi
soetusmaksu
mus ja iga
-
aasta
ne

(litsentsi)
hooldustasu
.
Valitud
a
rhitektuur paneb põhikoormuse andmebaasiserverile. Suure jõudluse tagamiseks

P
ortaal
i „eesti.ee”

arendusraamistik



Versioon
1.
0.
4

13

(
104
)

16.03.2013


skaleeritakse süsteeme protsessorite (või paralleelserverite) lisamise teel. Koos süsteemi
sellise laiendamisega skaleeruvad
Or
acle puhul
proportsionaalselt
ka litsentsitasud;



uute versioonide suletud lähtekood ja litsentsitingimused, mis piiravad
Oracle raamistiku
põhikomponentide muutmist;



piirangud integreerimisel Oracle poolt toetamata tehnoloogiatega (välised C programmid,
Pe
rl)
.

3.6.

Litsentsitingimused

PostgreSQL Gateway tarkvara on kaetud LGPL litsentsiga.

RIA poolt, RIA tellimusel
,

koostöös RIA

ga

või riigi või Euroopa Liidu struktuuritoetuse
finantseerimisel

valmistatud raamistiku üldkasutatavad komponendid on kaetud LGPL lit
sentsiga.

RIA poolt, RIA tellimusel, koostöös RIA

ga või riigi või Euroopa Liidu struktuuritoetuse
finantseerimisel valmistatud raamistikul töötav rakendustarkvara
on kaetud LGPL litsentsiga.

Loetlemata komponentide suhtes kehtivad nende autorite poolt mä
äratud litsentsitingimused või
on kõik õigused nende komponentide suhtes reserveeritud.


P
ortaal
i „eesti.ee”

arendusraamistik



Versioon
1.
0.
4

14

(
104
)

16.03.2013


4.

KUI ANDMED SISALDAVA
D VÄGA DELIKAATSET T
EAVET JA NÕUAVAD
SEETÕTTU DETAILSEMAL

TASEMEL
INFRASTRUKTUURI TOIM
IMISE
LOOGIKA

4.1.

Üldpõhimõtted

4.1.1.

Andmekiht

Andmekiht on realiseerit
ud PostgreSQL andmebaasis. Pöördumised andmekihi poole võivad olla
vahendatud eraldi funktsioonide
või view

de
poolt
:



kui andmed sisaldavad väga delikaatset teavet

ja nõuavad seetõttu detailsemal tasemel
õiguste kontrolli
;



kui andmemahud on suured ja vahe
protseduuride abil on vaja vältida ülekoormuse
tekitamist päringu parameetrite analüüsi abil.

4.1.2.

Rakenduskiht

Rakenduskiht on realiseeritud PL/PgSQL funktsioonidena

(PostgreSQL

s puudub vastust
mittetagastava protseduuri mõiste
, kuid funktsioon võimaldab ena
mikku protseduuridele omaseid
tegevusi, sh andmete muutmine andmebaasis
)
. Erandina kasutatakse ka muudes keeltes
realiseeritud funktsioone, mis on ühiskasutatavate funktsioonidena kättesaadavaks tehtud
andmebaasi keskkonnas. Seda juhul
:



kui funktsioon on j
õudluse suhtes kriitiline;



kui PL/PgSQL kasutamine ei võimalda tagada turvalisust;



kui funktsiooni kood on üldotstarbeline

või standardne
, tehniliselt keerukas, hästi
kirjeldatud sisendi
-
väljundiga
, sobivate litsentsitingimustega

ja eksisteerib varasemast
ajast
(varasema koodi korduvkasutus)
. Nt Perli CPAN moodulid
;



funktsioon täidab ülesannet, mida ei toeta PL/PgSQL sisesed võimalused

(nt fn
x =
sleep(y)
)
.

Rakenduskihti kuuluvad funktsioonid ei
peaks sisaldama

otseselt HTML tagide ja skriptide
väljastamist
. HTML tagide väljastamiseks kutsutakse välja
htp
, htp1, htp2 ja htf

skeemi
abiprogrammid.

4.1.3.

Esitluskiht

Esitluskiht on realiseeritud PL/PgSQL funktsioonidena, mis väljakutsutuna rakenduskihi
funktsioonide poolt väljastavad kasutaja brauserile HTML teksti, f
aili või skripti. Esitluskihi
funktsioonid on koondatud
ht
*
skeemidesse
.


P
ortaal
i „eesti.ee”

arendusraamistik



Versioon
1.
0.
4

15

(
104
)

16.03.2013


4.2.

Protsessi kirjeldus

Järgnevad tegevused leiavad aset, kui klient esitab päringu serverile:

Joonis 1

Tegevusjärjekorra kirjeldus


1)

veebiserver
(Apache)
saab kliendi brauserist päringu
, mis sisaldab pöördumist PL/PgSQL
funktsiooni poole;

2)

Apache suunab päringu edasi CGI programmina realiseeritud
GW
-
le
;

3)

G
W

ühendub andmebaasiga (lähtudes päringu URL

s sisalduvast DAD
-
st)

või
andmebaasina käituva
connection pool
'ga
;

4)

G
W

edastab PostgreSQL

-
le keskkonnamuutujad ja kontrollib, kas väljakutsutavat
funktsiooni tohib veebist käivitada ja kas kasutajal on funktsiooni kasutamist võimaldav
LL, käivitamine on lubatud kasutaja IP aadressilt või arendus/toodangukeskkonnas
;

5)

G
W

teisendab CGI parameetri
d PostgreSQL SQL funktsiooni väljakutseks;


P
ortaal
i „eesti.ee”

arendusraamistik



Versioon
1.
0.
4

16

(
104
)

16.03.2013


6)

PL/PgSQL funktsioonid genereerivad täitmise käigus HTML lehe kasutades andmebaasi
andmeid ja FW üldkasutatavaid komponente;

7)

HTML lehe sisu eda
s
tatakse ositi
(reaalajas)
või korraga
otse või
connection pool
'i kaudu

GW
-
le;

8)

veebiserver
saadab vastuse edasi kliendi brauserile.

4.3.

Komponendid

4.3.1.

Apache veebiserver

Installeeritud on versioon
1.3
.
33 (Debian Sarge)

Dokumentatsioon:
http://httpd.apache.org/docs/
.

4.3.1.1.

Konfiguratsioo
nifail

Apache veebiserveri konfiguratsioon on alljärgnev:

ServerType standalone

ServerRoot /etc/apache

LockFile /var/lock/apache.lock

PidFile /var/run/apache.pid

ScoreBoardFile /var/run/apache.scoreboard

Timeout 300

KeepAlive On

MaxKeepAliveRequests 100

Ke
epAliveTimeout 15

MinSpareServers 5

MaxSpareServers 10

StartServers 5

MaxClients 240

MaxRequestsPerChild 100

LoadModule proxy_module /usr/lib/apache/1.3/libproxy.so

LoadModule ssl_module /usr/lib/apache/1.3/mod_ssl.so

LoadModule config_log_module /usr/lib/
apache/1.3/mod_log_config.so

LoadModule mime_magic_module /usr/lib/apache/1.3/mod_mime_magic.so

LoadModule mime_module /usr/lib/apache/1.3/mod_mime.so

LoadModule negotiation_module /usr/lib/apache/1.3/mod_negotiation.so

LoadModule status_module /usr/lib/ap
ache/1.3/mod_status.so

LoadModule autoindex_module /usr/lib/apache/1.3/mod_autoindex.so

LoadModule dir_module /usr/lib/apache/1.3/mod_dir.so

LoadModule cgi_module /usr/lib/apache/1.3/mod_cgi.so

LoadModule userdir_module /usr/lib/apache/1.3/mod_userdir.so

L
oadModule alias_module /usr/lib/apache/1.3/mod_alias.so

LoadModule rewrite_module /usr/lib/apache/1.3/mod_rewrite.so

LoadModule access_module /usr/lib/apache/1.3/mod_access.so

LoadModule auth_module /usr/lib/apache/1.3/mod_auth.so

LoadModule expires_module

/usr/lib/apache/1.3/mod_expires.so

LoadModule unique_id_module /usr/lib/apache/1.3/mod_unique_id.so

LoadModule setenvif_module /usr/lib/apache/1.3/mod_setenvif.so

LoadModule python_module /usr/lib/apache/1.3/mod_python.so

LoadModule php4_module /usr/lib/a
pache/1.3/libphp4.so

LoadModule jk_module /usr/lib/apache/1.3/mod_jk.so


Include /etc/apache/000
-
cconf.conf


JkWorkersFile /etc/libapache
-
mod
-
jk/workers.properties

JkLogFile /var/log/apache/mod_jk.log

JkLogLevel debug

JkLogStampFormat "[%a %b %d %H:%M:%S %
Y] "

JkRequestLogFormat "%w %V %T"


AddType application/x
-
httpd
-
php .php .php4 .php3



P
ortaal
i „eesti.ee”

arendusraamistik



Versioon
1.
0.
4

17

(
104
)

16.03.2013


ExtendedStatus On

Port 444

Listen 213.184.32.66:443

Listen 10.0.0.11:81


User www
-
data

Group www
-
data

ServerAdmin webmaster@cache1.eesti.ee

DocumentRoot /var/www/tyhi


<D
irectory />


Options None


AllowOverride None


Order Deny,Allow


Deny from All

</Directory>


UseCanonicalName On

TypesConfig /etc/mime.types

DefaultType text/plain


HostnameLookups Off

ErrorLog /var/log/apache/error.log

LogLevel warn


LogForm
at "%h %l %u %t
\
"%r
\
" %>s %b
\
"%{Referer}i
\
"
\
"%{User
-
Agent}i
\
" %T %v" full

LogFormat "%h %l %u %t
\
"%r
\
" %>s %b
\
"%{Referer}i
\
"
\
"%{User
-
Agent}i
\
" %P %T" debug

LogFormat "%h %l %u %t
\
"%r
\
" %>s %b
\
"%{Referer}i
\
"
\
"%{User
-
Agent}i
\
"" combined

LogFormat "%
h %l %u %t
\
"%r
\
" %>s %b" common

LogFormat "%{Referer}i
-
> %U" referer

LogFormat "%{User
-
agent}i" agent


# CustomLog /var/log/apache/access.log combined


ServerSignature On


SSLPassPhraseDialog builtin

SSLSessionCache dbm:/var/run/ssl_scache

SSLSe
ssionCacheTimeout 900

SSLMutex file:/var/run/ssl_mutex

SSLRandomSeed startup builtin

SSLRandomSeed connect builtin


NameVirtualHost 10.0.0.11:81


<VirtualHost 213.184.32.66:443>


ServerName www.eesti.ee


ServerAdmin admin@eesti.ee


DocumentRoot /var/
www/kp/html


ErrorLog /var/log/apache/www.eesti.ee
-
ssl
-
error.log


TransferLog /var/log/apache/www.eesti.ee
-
ssl
-
access.log


LogFormat "%h %l %u %t
\
"%r
\
" %>s %b
\
"%{Referer}i
\
"
\
"%{User
-
Agent}i
\
"" combined


CustomLog /var/log/apache/www.eesti.ee
-
ss
l
-
custom.log combined


setenvif request_uri /arr arr


setenvif request_uri /tet tet


CustomLog /var/log/apache/www.eesti.ee
-
arr.access.log common env=arr


CustomLog /var/log/apache/www.eesti.ee
-
tet.access.log common env=tet


ErrorDocument 403 /index.p
hp


ErrorDocument 404 /index.php


ProxyPass /arr http://misp.eesti.ee:8080/arr

ProxyPassReverse /arr http://misp.eesti.ee:8080/arr


RewriteEngine On

RewriteRule ^/eit https://misp.riik.ee/x/eit [R]


# estonia.info umbersuunamiseks


RewriteCond %{HT
TP_HOST} estonia.info

RewriteRule ^/.* https://www.eesti.ee/ [R]


RewriteCond %{HTTP_HOST} www.estonia.info

RewriteRule ^/.* https://www.eesti.ee/ [R]

RewriteRule ^/ssl https://www.eesti.ee/ [R]

RewriteRule ^/link https://www.eesti.ee/ [R]

RewriteRule ^/
logon https://www.eesti.ee/ [R]

RewriteRule ^/eCommunity https://www.eesti.ee/ [R]


P
ortaal
i „eesti.ee”

arendusraamistik



Versioon
1.
0.
4

18

(
104
)

16.03.2013


RewriteRule ^/formsign https://www.eesti.ee/ [R]


SSLEngine On

SSLCertificateFile /etc/apache/serdid/www.eesti.ee.crt

SSLCertificateKeyFile /etc/apache/serdid/www.eesti.ee.k
ey

# SSLCARevocationFile /etc/apache/ssl.crl/current_crl.crl


# Sertifitseerimiskeskuse serdid

SSLCACertificatePath /etc/apache/ssl.cacrt

SSLOptions +StdEnvVars



<Directory /var/www/webalizer>


Options None


AllowOverRide None


Order Allow,Deny


Allow fr
om All


</Directory>


<Directory /var/www/kp/html>


DirectoryIndex index.php


Options None


AllowOverRide None


Order Allow,Deny


Allow from All

</Directory>


Alias /libapache
-
mod
-
jk /usr/share/doc/libapache
-
mod
-
jk



RewriteEngine On


RewriteRule ^/
ecommunity/ecommunity
\
.server /sedaeioleolemas [F]


RewriteRule ^/portaal(.*) /var/www/kp/html/ecommunity/portaal/gw$1 [T=application/x
-
httpd
-
cgi]


RewriteRule ^/testportaal(.*) /var/www/kp/html/ecommunity/testportaal/testgw$1 [T=application/x
-
httpd
-
cgi]



RewriteCond %{REQUEST_METHOD} GET


RewriteCond %{REMOTE_ADDR} ^195.80.103.200$


RewriteRule ^/SDRServer/Server$ /var/www/kp/html/SDR
-
cgi/get.cgi
[e=HTTP_CGI_AUTHORIZATION:%1,T=application/x
-
httpd
-
cgi]


RewriteCond %{REQUEST_METHOD} GET


RewriteCond %{RE
MOTE_ADDR} ^195.212.29.*


RewriteRule ^/SDRServer/Server$ /var/www/kp/html/SDR
-
cgi/get.cgi
[e=HTTP_CGI_AUTHORIZATION:%1,T=application/x
-
httpd
-
cgi]


RewriteCond %{REQUEST_METHOD} GET


RewriteCond %{REMOTE_ADDR} ^194.126.106.110$


RewriteRule ^/SDRServer/Ser
ver$ /var/www/kp/html/SDR
-
cgi/get.cgi
[e=HTTP_CGI_AUTHORIZATION:%1,T=application/x
-
httpd
-
cgi]


RewriteCond %{REQUEST_METHOD} POST


RewriteCond %{REMOTE_ADDR} ^195.212.29.*


RewriteRule ^/SDRServer/Server$ /var/www/kp/html/SDR
-
cgi/post.cgi
[e=HTTP_CGI_AUTHO
RIZATION:%1,T=application/x
-
httpd
-
cgi]


RewriteCond %{REQUEST_METHOD} POST


RewriteCond %{REMOTE_ADDR} ^194.126.106.110$


RewriteRule ^/SDRServer/Server$ /var/www/kp/html/SDR
-
cgi/post.cgi
[e=HTTP_CGI_AUTHORIZATION:%1,T=application/x
-
httpd
-
cgi]


RewriteCond

%{REQUEST_METHOD} POST


RewriteCond %{REMOTE_ADDR} ^195.80.103.200$


RewriteRule ^/SDRServer/Server$ /var/www/kp/html/SDR
-
cgi/post.cgi
[e=HTTP_CGI_AUTHORIZATION:%1,T=application/x
-
httpd
-
cgi]


RewriteCond %{REMOTE_ADDR} ^213.184.32.66$


RewriteRule ^/SDRSe
rver(.*) /var/www/kp/html/ecommunity/SDRServer/gw/ecommunity.server$1
[e=HTTP_CGI_AUTHORIZATION:%1,T=application/x
-
httpd
-
cgi]


# ecommunity


<Location /SDRServer>


AuthUserFile /var/www/kp/private/SDRServer.passwd


AuthType Basic


AuthName SDRServer


require valid
-
user


Order Allow,Deny


Allow from 195.80.103.240 195.80.103.200 213.184.32.66 194.126.106.110 195.80.105.30 195.212.29

</Location>


<Directory /var/www/kp/html/ecommunity/portaal>


DirectoryIndex portaal


Options All


AllowO
verRide All


P
ortaal
i „eesti.ee”

arendusraamistik



Versioon
1.
0.
4

19

(
104
)

16.03.2013



Order Allow,Deny


Allow from All


SetHandler cgi
-
script

</Directory>


<Directory /var/www/kp/html/ecommunity/SDRServer>


DirectoryIndex portaal


Options All


AllowOverRide All


Order Allow,Deny


Allow from All


S
etHandler cgi
-
script

</Directory>


<Directory /var/www/kp/html/ecommunity/testportaal>


DirectoryIndex portaal


Options All


AllowOverRide All


Order Allow,Deny


Allow from All


SetHandler cgi
-
script

</Directory>


<Directory /var/www/kp
/html/SDRServer>


Order Allow,Deny


Allow from All


SetHandler python
-
program


PythonHandler sdrserver


PythonAuthenHandler sdrserver


PythonDebug On

</Directory>


<Directory /var/www/kp/html/SDR
-
cgi>


Options All


AllowOverRide All


Order Allow,Deny


Allow from All


SetHandler cgi
-
script

</Directory>


# ecommunity lopp


<Directory /var/www/kp/html/SDR>


Order Allow,Deny


Allow from All


SetHandler python
-
program


PythonHandler sdrserver


PythonAuthenHandler

sdrserver


PythonDebug On

</Directory>


<Directory /var/www/kp/html/login>


<Files "index.php">


SSLOptions +StdEnvVars +ExportCertData


SSLVerifyClient require


SSLVerifyDepth 2


</Files>

</Directory>


<Location /port
aal/gw/login>


Options All


AllowOverRide All


Order Allow,Deny


Allow from All


SSLOptions +StdEnvVars +ExportCertData


SSLVerifyClient require


SSLVerifyDepth 2

# SetHandler cgi
-
script

</Location>


SetEnvIf User
-
Agent ".*MS
IE.*" nokeepalive ssl
-
unclean
-
shutdown


</VirtualHost>


P
ortaal
i „eesti.ee”

arendusraamistik



Versioon
1.
0.
4

20

(
104
)

16.03.2013


4.3.2.

PL/PgSQL Gateway

Analoogse Oracle
dokumentatsioon

on enamjaolt asjakohane
:
http://157.26.164.60/ias_doc/apps.102/a90099/feature.
htm

Samuti on Oracle jaoks saadavad mitmed mitte

Oracle
poolt loodud
analoogid
, mille
litsentsitingimused võimaldavad portimist PL/PgSQL
-
i
:

1.

http://www.total
-
knowledge.com/progs/mod_plsql/

2.

http://www.skywayradio.com/tech/mod_plsql/

3.

http://www.sharemation.com/~dmcmahon/modowa.htm


PL/PgSQL Gateway (GW) on C
++


s
kirjutatu
d

PostgreSQL
libpq

teeki kasutav
CGI programm,
mille olemasolev funktsionaalsus on ühilduv Oracle
mod_plsql

funktsionaalsuse
ga

(kuid sisaldab
täiendusi)
. Tegevuste järjekord:

1.

Apache serveri
aliase

(alias, mis on suunatud GW programmile)
poole pöördumisel
laetakse GW mällu;

2.

GW loob
võrgu kaudu
ühenduse andmebaasi

või
connection pool
-
iga
, mis

võib olla teises
arvutis
, kasutades C

teegi libpq funktsioonide vahendusel PostgreSQL frontend
-
backend
protokolli
;

3.

GW initsialiseerib PostgreSQL baasi NoticeProcessor’i andmebaasi poolt tekitatud
väljundi edastamiseks
GW
-
le ja sealt edasi
Apache serverile;

4.

GW konstrueerib andmebaasile edasta
tavate (peamiselt CGI) keskkonnamuutujate
väärtused;

5.

GW Loeb CGI muutujatest (POST päringu korral
standard inputist
) päringu parameetrid,
konstrueerib neist väljakutsutava protseduuri parameetrid;

6.

GW konstrueerib SELECT laused keskkonnamuutujate edastamise
ks andmebaasile ja
protseduuri käivitamiseks, kontrollib, kas protseduuri käivitamiseks on õigus antud ja kas
sessioon (LOGINLEVEL) on piisav ning esitab selle funktsiooni väljakutsena
andmebaasile;

7.

andmebaas genereerib RAISE NOTICE direktiive kasutades HT
ML väljundi, mis
saadetakse frontend
-
backend protokolli vahendusel GW
-
le);

8.

samal ajal
GW ootab käivitatud funktsiooni töö lõppemist ja seejärel suleb andmebaasi
ühenduse.

4.3.2.1.

Konfiguratsioon


GW

le päringu esitamisel loetakse CGI muutujast keskkonnamuutuja
S
CRIPT_NAME

seda

(edaspidi
DAD) kasutatakse identifikaatorina andmebaasi konfiguratsioonifaili leidmiseks. Kui
sobivat
konfiguratsioonifaili ei leita GW programmi kataloogist

või
keskkonnamuutuja
SCRIPT_NAME

on
määramata

(näiteks GW käivitamisel silumise ee
smärgil otse
shell

’st)
,
ühendutakse baasiga
,

lähtudes programmi koodi

sissekirjutatud

vaikimisväärtustest
.

Sama toimub, kui mõni parameeter
on konfiguratsioonifailis määramata.


P
ortaal
i „eesti.ee”

arendusraamistik



Versioon
1.
0.
4

21

(
104
)

16.03.2013


Kui SCRIPT_NAME

le vastavat konfiguratsioonifaili ei leita, siis ühendutakse
konfiguratsioonifailis default.cfg

s määratud baasiga, kasutades protseduuri nimena
SCRIPT_NAME nimelist protseduuri.
Parameetrid edastatakse nii, et POST
-
parameetrid on
tervikuna esimeses parameetris ja URL

l olevad parameetrid teises.

Tabel 1

Konfigura
tsioonifaili kirjeldus:

Parameeter

Kirjeldus

pghost=192.168.2.10

p
rimaarse a
ndmebaasiserveri nimi või IP aadress

pghost
2
=192.168.2.10

s
ekundaarse* andmebaasiserveri nimi või IP aadress, millele
ühendutakse, kui ühendumine primaarsele serverile ebaõnnestu
b

pgport=
9999

p
rimaarse andmebaasiserveri
PostgreSQL port

pgport
2
=5433

s
ekundaarse andmebaasiserveri PostgreSQL port

pgoptions=

o
ptsioonid (vt PostgreSQL dokumentatsioon)

pgtty=

väljundterminal

db
n
ame=portaal

a
ndmebaasi nimi

login=gateway

k
asutajanim
i, millega gateway pöördub baasi poole

pwd=
*******

p
arool

defproc

p
rotseduur, mis käivitatakse siis, kui URL

氠灲潴獥摵畲椠湩浩⁰畵摵=
=
defdad

DAD, mida kasutatakse siis, kui URL

汩⁄=䐠歯浰潮敮摩汥⁶m獴慶s琠
歯湦楧畲a瑳t潯湩晡楬椠敩敩瑡
=
devserver


y
” või „
n
”: näitab
=
灲潧ra浭楬e
Ⱐ歡猠瑥se浩獴渠a牥湤畳
-
=
盵椠慶a汩歵k
獥牶r物ga⸠䕲楮敶
=
潮o
湴⁆t
=
毤楴畭u湥⁶=a⁶⁴畲癡灲潢汥e浩⁴敫歩浩獥=
歯牲a氮
=
噡獴慶a⁡湤浥naa獩敳歫潮湡浵畴番愠ub楬⁳=a戠灲bg牡m
獥汴
=
瑥t摡Ⱐ歡猠瓶s
=
瑯t浵m
=
are湤畳
-
=
盵椠慶v汩歵猠步獫s潮o
a猠橡s
獥汬e獴s
瑵te湥癡汴=
癡汩摡⁳潢=瘠歯湦楧畲a瑳t潯渠
盵椠灲潧va浭楨慲u
=
errorlog

n
äitab faili asukohta, kuhu logitakse gateway töö käigus tekkinud
veateated ja teated turvaprobleemide kohta

filepath

PATH, mis viitab upload’iga salvestatud failide kataloo
g楬e
=
gwschema

skeemi nimi, milles asuvad GW tööks vajalikud objektid. Vaikimisi (ka
edaspidi eeldatud):
pwa

sessionkey

sessioonivõtme nimi, millele vastavat väärtust kasutatakse kasutaja
sessiooni identifitseerimiseks
kasutajate veebipäringute URL

猠盵s
=
c潯歩敳⁳楳a汤當愠畮楫äaä獥畭扲椠=ärg椠⡶i楫i浩獩s
PHPSESSID
)

#.....

tähistab väljakommenteeritud rida




* Primaarne server võiks olla ühendus andmebaasiga
pgpool


i kaudu. Sekundaarne ühendus võiks
olla otseühendus.

Tabelis esitamata configuratsioon
ifaili parameetreid ignoreeritakse.

Igale
DAD
-
identifikaatorile on vastavusse seatud komplekt andmebaasiga ühendumiseks vajalikke
parameetreid (
andmebaasi server, port, optsioonid, terminal,
andmebaasi nimi, kasutajanimi

ja
parool).


P
ortaal
i „eesti.ee”

arendusraamistik



Versioon
1.
0.
4

22

(
104
)

16.03.2013


Kui
DAD


le vastav konf
iguratsioonifail
ei sisalda infot kasutajanime ja parooli kohta

ja protokolliks
on
HTTPS
, toimub kasutaja identifitseerimine
BASIC_AUTH

meetodil.

Realm

on
DAD

nimi.
BASIC_AUTH

kasutajanime ja parooli kasutatakse edaspidi andmebaasi ühenduse loomisel.

BASIC
_AUTH


i teeb
GW ise ja Apache konfiguratsioonis seda kirjeldama ei pea.


Kasutusel on „
stateless
“ režiim, st iga
GW

pöördumine (iga lehekülje külastus) toimub uuesti
initsialiseeritud
keskkonna
muutujatega
GW (ja
andmebaasi
)

keskkonnas. Erandiks on jagatud
muutujad

(vt edaspidi
sharedvar
)
, mis on samade väärtustega kättesaadavad kõigile andmebaasi
ses
sioonidele.

Iga GW pöördumine andmebaasi poole on eraldiseisev transaktsioon, mida pole võimalik jagada
alamtransaktsioonideks. Iga pöördumise järel tehakse
COMMIT
. Seega
COMMIT
,
SAVEPOINT

ja
ROLLBACK

käske funktsioonides kasutada ei saa
.

4.3.2.2.

Pöördumine GW poo
le

Selleks, et käivitada GW, tuleb esitada päring järgmises formaadis:

protocol
://hostname[:port]/
DAD
/[[!

või =
][schema.]proc_name[?query_string]]

[;SESSION_ID=[SESSIOONIVÕTI] või ;[SESSIONKEY]=[SESSIOONIVÕTI]]


Erinevalt Oracle
mod_plsql


st pole toetatud

paketid (sest neid ei toeta PostgreSQL
, nende asemel
kasutakse skeeme
)
.

Tabel
2

GW parameetrite (URL komponentide) kirjeldus

Parameeter

Kirjeldus

P
rotocol

http või https. SSL jaoks https

H
ostname

Veebiserveri nimi

p
ort

(fakultatiivne)

Port, mida Apache

kuulab, http korral vaikimisi 80, https korral
vaikimisi
port
443

DAD

Keskkonnamuutuja
SCRIPT_NAME

komponent kuni esimese selles
sisalduva kaldkriipsuni.

SCRIPT

Apache konfiguratsioonifailis defineeritud alias
t
keskkonnamuutujas
SCRIPT_NAME

sisaldavad p
öördumised suunatakse
edasi GW programmi poole
. Selle komponent esimesest
kaldkriipsust kuni lõpuni.

!

märk (fakultatiivne)

Näitab, et parameetrid edastatakse „paindlikult“ (vt allpool)

=

märk (fakultatiivne)

Näitab, et POST päringu keha edastatakse tööt
lemata (ilma URL
-
dekodeerimata) kujul ühe (esimese) parameetri väärtusena
väljakutsutavale funktsioonile. Sama päringu
query_string

sees
esitatud parameetrid esitatakse tavapäraselt eraldi parameetritena.

s
chema

(fakultatiivne)

Andmebaasi skeem, milles as
ub väljakutsutav funktsioon, vaikimisi
skeem „
public

. Skeemi nime näitamata jätmisel leitakse
funktsioon PostgreSQL search_path nimelises keskkonnamuutujas
määratud skeemide läbivaatusel

p
roc_name

PL/PgSQL või mõnes muus keeles andmebaasi sisemise
protse
duurina vormistatud funktsioon

?query_string

(fakultatiivne)

Eelpoolnimetatud funktsiooni parameetrid. Soovitav (mitte

P
ortaal
i „eesti.ee”

arendusraamistik



Versioon
1.
0.
4

23

(
104
)

16.03.2013


kohustuslik) on CGI GET meetodi parameetrite edastamise nõuete
järgimine (URL
-
encoding). Kui parameetrid edastatakse brauseri
poolt, sii
s on need nõuded täidetud. Näiteks:



erinevad parameetrid on eraldatud „
&
“ märgiga;
=


tühikud esitatakse „
+
“ märgiga;
=


HTTP päring võib olla esitatud ka POST meetodiga. Vt
POST ja GET meetodit allpool

;[SESSIONKEY]=[SESSIOONIVÕTI]
või
;SESSION_ID=[SESSIOONIVÕ
TI]

DAD poolt kasutatava sessioonivõtme nimi ja väärtus
(mittekohustuslik). Üldiselt esitatakse
cookie

väärtusena
(turvalisem), aga võib ka URL

氮⁋畩⁶橡歵瑳畴a癡氠ä䜠
晵湫瑳楯潮f氠灯äe⁰=牡浥e瑲t楤Ⱐ敳楴a瑡歳t⁳e獳s潯湩盵o椠啒i=


歵橵k=
proc_name?;[SES
SIONKEY]=[SESSIOONIVÕTI]



NB! Turvakaalutlustel lubab GW pöörduda vaid nende protseduuride poole, mille kohta on tehtud
kirje tabelisse
pwa
.allowed
.

Selles tabelis on
iga protseduuri kohta
kirjas sessiooni tase
(LOGINLEVEL), mis peab kasutajal olemas pro
tseduuri kasutamiseks
, päringu esitajalt nõutav IP
aadress või mask või IP aadresside/maskide loetelu ning see, kas funktsiooni lubatakse käivitada
arendus
-

ja/või avalikul serveril
. Protseduuri käivitamise lubatavust ja LOGINLEVEL

t
kontrollitakse GW poo
lt väljakutsutavas funktsioonis check
_
session(LOGINLEVEL). Kui
LOGINLEVEL pole piisav, suunatakse kasutaja lehele, kus tal on võimalik
ennast
täiendavalt
autentida

ja väljakutsutavat protseduuri
selle päringuga

ei käivitata.

Pärast täiendavat autentimist
s
uunatakse kasutaja algselt valitud protseduuri
le
.

Tabeli haldamine toimub veebiliidese kaudu.

Näide 1. Apache veebiserveris on defineeritud alias „portaal“, brauser saadab järgmise päringu
(URL):

https://www.teine.eesti.ee/portaal/ecommunity.
show_doc?dokid
=100057


Päringut töötleb veebiserver, mis töötab arvutis nimega
www.teine.eesti.ee

ja kuulab ühendusi
pordil 443. Kui veebiserver saab kätte pöördumise, suunab ta selle GW ’le. GW
loeb programmiga
samas kataloogi
s asuvast konfiguratsioonifailist nimega portaal.cfg sisse andmebaasiühenduse
parameetrid, loob ühenduse andmebaasiga ja
käivitab andmebaasi skeemis „
ecommunity

funktsiooni „
show_doc
“ parameetriga „
100057
“.

Erinevalt Oracle realisatsioonist on oluline par
ameetrite järjekord


kuna PostgreSQL ei toeta
parameetrite edastamist nime alusel, on kasutatud parameetrite edastamist järjekorra alusel. Samal
põhjusel ei oma tähendust parameetri nimi URL

s

(v.a paindliku parameetriedastuse korral)
.

Vajaduse tekkimise
l lisatakse Oracle
-
ühilduv režiim, kus parameetrinimed küsitakse eelnevalt
andmebaasist. Sellega
l
isandu
b

võimalus edastada parameetreid vähem ja teises järjekorras (nime
alusel), kui väljakutsutav funktsioon eeldab. Sellised pöördumised saavad olema olema
solevatest
aeglasemad.

Näide 2:

https://www.teine.eesti.ee/portaal/projektid?koik&mitte_midagi


GW käivitab andmebaasi skeemis „
public
“ funktsiooni „
projektid
“ kahe parameetriga
:


koik
“ ja

mitte_midagi
“. St parameetreid saab edastada ka ilma parameetrite

nimesid näitamata.

Kui kasutaja jätab URL

l näitamata protseduurinime, suunatakse ta konfiguratsioonifailis
näidatud

vaikimisi
-
leheküljele.

Samale lehele suunatakse kasutaja pärast hoiatavat veateadet, kui

P
ortaal
i „eesti.ee”

arendusraamistik



Versioon
1.
0.
4

24

(
104
)

16.03.2013


protseduuri täitmine lõppes
tarkvara
veaga või ga
teway tuvastab sissetungikatse

(nt vahetu SQL
-
injectioni korral)
. Vea tekitan
ud päring logitakse faili error.
log.

4.3.2.3.

POST, GET ja HEAD meetod

POST, GET ja HEAD meetodid HTTP protokollis annavad kasutaja brauserile juhised selle kohta,
kuidas peaks edastama pa
rameetrite andmed serverile (tavaliselt K
V
P vormis). Parameetrite
andmed genereeritakse HTML vormi poolt.

GW rakendused saavad neist meetoditest kasutada POST ja GET meetodit
(
HEAD meetodi toetus
lisatakse konkreetse
vajaduse tekkimisel
)
. Kummagi meetodi t
urvalisus sõltub madalama taseme
protokolli turvalisusest (HTTP või HTTPS).



POST päringu korral edastatakse parameetrid päringu kehas. See meetod sobib
kasutamiseks suurte andmehulkade puhul;

URL

l olevad parameetrid lisatakse
parameetrite loetelus POST p
arameetrite järele;



GET meetodi puhul edastatakse parameetrite väärtused päringustringis. Piiranguks on
serveri keskkonnamuutujate pikkuse (ja arvu) piirang;



HEAD meetodi puhul on kõik samuti, nagu GET puhul, aga tagastatakse ainult HTTP
staatuse rida ja H
TTP päised. Saab kasutada monitooringuks. Toetamata.

Andmete salvestamine peab toimuma alati ja ainult POST päringutega. Kasutajaliideses
navigeerimine peab toimuma alati ja ainult GET päringutega.

4.3.2.4.

Transaktsioonid

Kui funktsiooni käivitamine GW poolt lõppe
s
kriitilise
veaga, sooritatakse ROLLBACK, muidu
sooritatakse COMMIT.

4.3.2.5.

Parameetrite edastamine

Parameetrid edastatakse selles järjekorras, nagu need on kirjeldatud funktsiooni definitsioonis.

POST päringu korral esitatakse esmalt POST parameeter/parameetrid
, seejärel
query_string


s
sisalduvad parameetrid nende esinemise järjekorras.

PostgreSQL võimaldab parameetrite
ülelaadimist (ülekoormamist?
parameter overloading
). St sama nimega võib olla mitu erinevat
funktsiooni, mille seast kutsutakse käivitamisel vä
lja see, mille parameetrite kirjeldus langeb
kokku esitatud parameetrite loeteluga.

Parameetrid edastatakse määramata pikkusega „varchar”
või „text” andmetüübina.

Näide 3. Alljärgnevate URL

de edastamise tulemusena käivitatakse andmebaasis erinevad
funkts
ioonid (eeldame, et kõik funktsioonid on olemas).

https://www.teine.eesti.ee/portaal/projektid


(käivitakse
public.projektid()
)


https://www.teine.eesti.ee/portaal/projektid?koik



P
ortaal
i „eesti.ee”

arendusraamistik



Versioon
1.
0.
4

25

(
104
)

16.03.2013


(käivitakse
public.projektid(„varchar“)
)


https://www.teine.eesti.ee/portaal/projektid?koik&mitte_midagi


(käivitakse
publi
c.projektid(„varchar“,“varchar“)
)

4.3.2.6.

Parameetrite edastamine massiivide
na

Realiseeritakse vajaduse tekkimisel. Põhimõte:

https://www.teine.eesti.ee/portaal/p
rojektid?param1=yks&param1=kaks&param1=kolm


Kui sama nimega parameeter esineb korduvalt, siis edastatakse vastavad väärtused andmebaasile
massiivina

(eeltoodud näites 3
-
elemendiline massiiv väärtustega „yks“, „kaks“ ja „kolm“)
.

4.3.2.7.

Paindlik parameetrite edas
tus

Paindlikult edastatakse parameetrid siis, kui URL

s on protseduuri nime ees (skeemi märkimisel
skeemi ees) „
!
“ märk. Paindlikku parameetriedastust kasutatakse siis, kui edastatavate
parameetrite arv pole ette teada (nt HTML vormid, kus kasutaja saab v
alida suvalise arvu
elemente). Toetatud on Oracle 2
-
parameetriline liides.

Oracle
4
-
parameetriline liides realiseeritakse sellise vajaduse tekkimisel, kuid se
llise
vajadus
e

tekkimine
on vähetõenäoline.

Näide: Paindliku parameetriedastusega PL/PgSQL funkts
iooni definitsioon:

CREATE OR REPLACE FUNCTION
schema
.
function_name
(_varchar, _varchar)

RETURNS "varchar" AS

'


DECLARE name_array ALIAS FOR $1;

DECLARE value_array ALIAS FOR $2;


DECLARE
i

integer
;


BEGIN

[…]

for i in
1
..
sys.nvl(
array_upper(name_array,1)
,
0)

loop


exit when name_array[i] is null;


[…]

end loop;

[…]

END;


LANGUAGE ''plpgsql'';'

Tabel 3

Parameeter

Kirjeldus

name_array

Päringu stringi parameetrite nimede loetelu (
1..n
)

value_array

Päringu stringi parameetrite väärtuste loetelu (
1..n
)


Näide

3. Alljärgneva URL edastamise tulemusena esi
tatakse parameetrid paindlikult:

https://www.teine.eesti.ee/portaal/!schema.function_name?a=1&b=2&c=3


Päringu tulemusel oman
davad massiivide
name_array

ja
value_array

elemendid järgmised väärtused:


P
ortaal
i „eesti.ee”

arendusraamistik



Versioon
1.
0.
4

26

(
104
)

16.03.2013


name_array[1]=
'
a
'

name_array[2]=
'
b
'

name_array[3]=
'
c
'


value_array[1]=
'
1
'

value_array[2]=
'
2
'

value_array[3]=
'
3
'


POST päringu korral toimub kõik analoogselt.

4.3.2.8.

XML ja SOAP parameetried
astus

Kui URL

s on protseduuri nime ees (skeemi märkimisel skeemi ees) „
=
“ märk või päringu
CONTENT_TYPE=text/xml

v
õi
CONTENT_TYPE=application/
soap
+xml
, esitatakse
POST päringu keha
töötlemata (ilma URL
-
dekodeerimata) kujul ühe (esimese) parameetri väärtu
sena väljakutsutavale
funktsioonile. Sama päringu
query_string

sees esitatud parameetrid esitatakse tavapäraselt eraldi
parameetritena.

4.3.2.9.

GW töö keskkonnamuutujatega*

GW loeb CGI keskkonnamuutujaid C funktsiooniga
*char getenv(*char)
, töötleb neid rakenduste

poolt kasutamiseks sobivamale kujule ja annab need andmebaasi käsuga
SELECT
set_session_variable(variable_name,variable_value)

üle andmebaasile. Andmebaasi keskkonnas on
muutujad ligipääsetavad käsuga
get_session_variable(variable_name)
. Kirjeldamisel on
lähtutud
URL mudelist:

protocol
://hostname[:port]/
DAD[/SCRIPT]
/[[!][schema.]proc_name[?query_string]]


Kui kirjelduses pole nimetatud vastava CGI muutuja nimetust, siis loetakse andmebaasi muutuja
sisu muutmata kujul samanimelisest CGI muutujast.

Tabel 4

N
imetus andmebaasis
(variable_name)

Kirjeldus

START_TIME*

GW poolt päringu alustamisel fikseeritud aeg formaadis
DD.MM.YYYY
HH24:MI:SS.MS
, mida saab kasutada päringu töötlemiseks kulunud aja
arvutamiseks ja logimisel

SSL_SESSION_ID

Kasutatakse alternatiiv
se võimalusena sessiooni hoidmiseks.

HTTP_PROCESS

Selle parameetriga annab eCommunity klient (IS) edasi toimingu nime

REMOTE_ADDR

Päringu esitanud serveri IP aadress

HTTP_REFERER

Lehekülg, millelt pöörduti

HTTP_USER_AGENT

Andmed kasutaja brauseri ja op
eratsioonisüsteemi kohta

SURNAME

Kasutaja perekonnanimi, kui pöördutakse ID kaardiga tuvastamist
nõudva lehekülje poole. Loetakse muutujast
SSL_CLIENT_S_DN
. Vajadusel
teisendatakse composed UNICODE

獴⁕sc=


=
GIVENNAME

Kasutaja eesnimi, kui pöördutakse
ID kaardiga tuvastamist nõudva
lehekülje poole. Loetakse muutujast
SSL_CLIENT_S_DN
. Vajadusel
teisendatakse composed UNICODE

獴⁕sc=


=
CODE

Kasutaja isikukood, kui pöördutakse ID kaardiga tuvastamist nõudva
lehekülje poole. Loetakse muutujast
SSL_CLIENT
_S_DN

SERVER_NAME

h
ostname

(vt URL mudelit eespool).


P
ortaal
i „eesti.ee”

arendusraamistik



Versioon
1.
0.
4

27

(
104
)

16.03.2013


DAD

Prefix (vt URL mudelit eespool). Loetakse CGI muutujast
SCRIPT_NAME
.

REQUEST

Loetakse muutujast
REQUEST_URI
. URL komponent:
[[!][schema.]proc_name[?query_string]]

HTTPS


on
“ või „
off
“, CGI muutuj
a
=
REMOTE_USER

BASIC_AUTH

meetodil
autenditud kasutaja nimi

REQUEST_METHOD

CGI muutuja

QUERY_STRING

URL komponent
query_string
.
CGI muutuja

SESSION_ID

Kui URL

椠煵iry彳牴楮朠_楳慬摡戠泵灵b⁰=牡浥e瑲楴番畬=

;SESSION_ID=xx[..]x
“, siis parameetri väärtu
猠歡湴慫獥⁳=汬e獳攠
步獫歯湮s浵畴番慳獥K
=
h畩⁴e楳敤⁰i牡浥e瑲楤⁰畵摵癡搬⁰dab
=
a湴畤n
獴物湧汥浡⁶潲浩獴a瑵t⁰=牡浥e瑲楮tK
=
噡獴慳s氠ä畨畬Ⱐ歵u⁃df=浵畴番愠
HTTP_COOKIE

sisaldab küpsist
nimega
[SESSIONKEY]
, siis loetakse selle küpsise

väärtus

muutujasse
SES
SION_ID
.

Vastasel juhul loetakse CGI muutujast
HTTP_COOKIE

küpsise
SESSION_ID

sisu.

PROCEDURE

Väljakutsutava funktsiooni nimi koos skeemiga. Loetakse
keskkonnamuutujast PATH_INFO

ENVIRONMENT

Kõik keskkonnamuutujad 2 ühedimensionaalse massiivina
keskkonna
muutujate nimedest ja väärtustest

SESSIONKEY*

Sessioonivõtme nimi


* Parameetr
id

START_TIME

ja
SESSIONKEY

ei pärine kes
k
konnamuutuja
te
st.

4.3.2.10.

GW
limiidid

GW mälueraldus parameetrite jaoks on dünaamiline. Seetõttu pole limiitidel muud tähtsust, kui