SDMS WebServer

Iz SDMS
Skoči na: navigacija, iskanje

Kategorije:WebServer

Namestitev

SDMS WebServer se namesti tako:

  • pripravi se novo mapo, kjer bo instaliran strežnik SDMS Webserver, recimo C:\SDMS\WEBSERVER
  • preko ftp protokola se iz naslova www.sdms.si/update/sdms41/sdmswsp/en (uporabnik anonymous) se nanjo prenese vse datoteke
  • datoteko sdmswsp.txt se kopira v sdmswsp.ini
  • pravilno se nastavi parametre, predvsem parameter path
  • za uporabo varnih povezav (https) se namesti certifikat strežnika, za navodila glej spodaj
  • servis se instalira iz konzolne vrstice z ukazom sdmswsp -install
  • ob uspešni instalaciji servisa se to izpiše v okencu, sicer pa je prišlo do problema, ki je razviden v log datoteki
  • servis se zažene z ukazom sdmswsp -start
  • ob uspešnem zagonu se to izpiše v konzolnem oknu
  • nikakor ne smete pozabiti omogočiti uporabo želenih vrat (80, 443, ...) v požarnem zidu.

Strežnik je sedaj nameščen in zagnan.

Namestitev certifikata

Če se bo uporabljala varna povezava (https), je potrebno pridobiti in namestiti tudi certifikat strežnika. Pripravi se mapo, na katero se bo kopiral certifikat, lahko pa se ga kopira tudi kar na mapo programa. Pripravi se naslednje ASCII datoteke:

  • root.pem - certifikat verifikacijskega strežnika
  • cert.pem - certifikat strežnika
  • key.pem - zakodiran privatni ključ strežnika
  • password.txt - geslo za dekodiranje privatnega ključa
openssl pkcs12 -in xxx.pfx -out root.pem -cacerts        // brez izhodnega gesla
openssl pkcs12 -in xxx.pfx -out certandkey.pem -clcerts  // vnesi geslo za key, razbij na dve datoteki: cert.pem in key.pem
Geslo kodiraj z EncryptPassord in shrani v password.txt takole: ENCRYPTED:geslo

Kasneje se v modulu določi tudi pot do datotek certifikata.

Aktivacija

SDMS WebServer se aktivira tako, da se v SDMS raziskovalcu doda nov modul z imenom SdmsWSP in naslednjo vsebino:

Sub OnCreate
  WebServer.Clear
  WebServer.AddHost(80, '', '', '', '')
  WebServer.Start
  ...
EndSub


Če želimo dodati tudi dostop preko varne povezave (https), to storimo takole:

Sub OnCreate
  WebServer.Clear
  WebServer.AddHost(80, '', '', '', 'http')
  WebServer.AddHost(443, '', '', '', 'https').SetSecure(ProgramPath)
  WebServer.Start
  ...
EndSub


Če želimo zagotoviti uporabo varne povezave (https) in izvesti samodejno preusmeritev nanjo:

Sub OnCreate
  WebServer.Clear
  WebServer.AddHost(80, '', '', '', 'http').SetRedirect('https://www.test.si/')
  WebServer.AddHost(443, '', '', '', 'https').SetSecure(ProgramPath + 'Certifikat\')
  WebServer.Start
  ...
EndSub

Pri uporabi varne povezave (https) je seveda nujno predhodno namestiti veljaven certifikat strežnika.

Osnovne nastavitve

Strežniku moramo podati ime, ki se prikaže kot naslov strani. Uporablja se tudi kot identifikacija strežnika, če je ta potrebna.

WebServer.Name = 'TEST'

Ob prijavi se uporabniku prikaže logotip velikosti 480x120 pik. Datoteko se shrani na mapo WebServer in takole poda njeno ime.

WebServer.Logo = 'logo.png'


Privzeto dopušča SDMS WebServer dostop samo SDMS uporabnikom. Če želimo dodati tudi možnost anonimnega dostopa, to storimo tako:

WebServer.User = [Gost]

Pri tem je Gost (oz. poljubno drugo ime) SDMS uporabnik, ki se bo uporabljal za anonimne dostope. Tega uporabnika moramo seveda dodati in mu prirediti pravice.


Določiti je treba osnovno okno, ki se prikaže uporabniku ob prvem zagonu.

WebServer.Window = '370000,25000,630000,200000'


Določiti je treba tematiko, ki se bo uporabljala za izris.

WebServer.DrawList = [Web Tematika]


Dodati je treba plasti, po katerih za izvaja iskanje in izpis podatkov.

WebServer.AddSearch([Plast A].Search('Default'))
WebServer.AddSearch([Plast B].Search('Default'))


Dobro je dodati tudi seznam priljubljenih lokacij, ki so dostopne iz menija.

WebServer.AddLocation('Slovenija', '370000,25000,630000,200000', '')
WebServer.AddLocation('Ljubljana', '370000,25000,630000,200000', '')
WebServer.AddLocation('Maribor', '370000,25000,630000,200000', '')


Možno je dodati tudi seznam dodatnih povezav, ki so ravno tako dostopne iz menija.

WebServer.AddLink('Softdata Home Page', 'http://www.softdata.si', '')


Dodamo tudi seznam dodatnih izrisov za tiskanje.

WebServer.AddLayout([A4 Pokončno], '')
WebServer.AddLayout([A4 Ležeče], '')

Napredne nastavitve

Ob prijavi lahko določene nastavitve spremenimo glede na prijavljenega uporabnika. To storimo tako, da dodamo novo proceduro:

Sub OnWebLogin
 
  If User.MatchSecurityTags('noweb', False) Then
    WebServer.User = Nil // določenim uporabnikom preprečimo dostop
  EndIf
 
  If User.MatchSecurityTags('ljubljana', False) Then
    WebServer.Logo = 'logo-lj.png' // določenim uporabnikom pokažemo drug logotip
    WebServer.Window = '510000,120000,630000,200000' // in drugo osnovno okno
    WebServer.DrawList = [Web Tematika LJ] // ter drugo tematiko
  EndIf
 
EndSub

Priprava tematike

Tematiko se pripravi kot sicer. Izjemnega pomena pa je, da se tematika v vseh merilih in z vsemi vključenimi temami vedno izriše hitro, torej v rangu recimo 3 sekund (kar je že precej). Optimalno bi bilo pod 1 sekundo.

Dodati je potrebno še določene informacije za spletno aplikacijo. Te se dodajo v atrubutih posameznih tem.

Atribut: Alias - Dodatno ime

Teme se v spletni aplikaciji ne prižigajo/ugašajo posamezno, temveč skupinsko (in to niso iste skupine kot v client aplikaciji). Skupine določimo poljubno z neko kratko oznako, recimo karte, vod, tocke,... Vsem temam določimo v atributu Dodatno ime eno oznako, na katero se ta tema vklopi/izklopi. Če tema nima oznake, se nikoli ne prikaže. Če želimo temo prikazati vedno, vnesemo za znak *.

Atribut: View tags

Namen tega atributa je omejevanje vpogleda v podatke glede na uporabnika.

Atribut: Web info

V tem atributu določimo prej omenjene skupine. To storimo večvrstično v naslednji obliki:

item=karte
name=Pregledne karte
sort=1
show=1
hint=...
icon=a.gif

Vsaka oznaka se mora pojaviti natanko v eni temi, ni pomembno kateri. Iz teh informacij se potem generira menu za vklop/izklop v spletni aplikaciji. Prve štiri vrstice so obvezne.

Priprava iskanj in izpisov

Iskanje po poljubnih podatkih se pripravi v urejevalniku podatkovne plasti (Searches). V modulu SdmsWSP pa z ukazom AddSearch dodajamo le tiste, ki jih želimo uporabljati v spletni aplikaciji. ...

Nastavljanje pravic

Pri spletni aplikaciji je možno nastaviti različne nivoje dostopa (izris na karti, iskanje, izpis podatkov) glede na prijavljenega uporabnika.

V ta namen se uporablja kratke oznake, ki jih umenujemo Security tags.

Dodeljevanje pravic

Te oznake se za uporabnika določa v urejevalniku uporabnika oz. v urejevalniku skupine uporabnikov (možno je tudi v varnostnem središču).

Vsak uporabnik/skupina ima lahko določenih več oznak, ki so ločene z vejico.

Uporabnik poleg svojih oznak dobi tudi vse oznake vseh skupin, v katerih je član.

Omejevanje pravic

Na splošno velja naslednje:

  • za vpoglede (tematika, vpogled preko iskanja/klika) velja, da če oznaka ni določena, imajo vpogled vsi, sicer pa samo tisti z oznako,
  • za urejanja (dodajanje, popravljanje, brisanje) velja, da če oznaka ni določena, ne more urejati nihče, sicer pa samo tisti z oznako.

Pravice se omejuje:

  • v tematiki:
    • v atributu teme View tags
    • v atrubutu teme Web info, v vrstici view=
  • pri definiciji iskanja v podatkovni plasti:
    • View access
    • Append access
    • Update access
    • Delete access
    • View in Update access pri posameznih poljih
  • v SDMS Basicu, ukaz je MatchSecurityTags.

Vedno lahko določimo tudi več oznak, ločenih z vejico.

TODO

  • SQL pogoj filtra, uporabljenega v searchu se ne upošteva pri kliku
  • dvonivojski sistem pri vsebinah za izris
  • multiple datasete pri maski (vsaj view)
  • images naj dela tudi za spisek datotek (RO)

Statične strani

  • .htm, *.js, *.css

Dinamične strani

  • .ssp

Dinamične direktne povezave

MAP.GIF, MAP.JPG, MAP.PNG

To je najbolj uporabljan URL, ki nam vrne izdelano sliko (karto). Potrebni so naslednji parametri (ali piškotki):

position=W,H,Y1,X1,Y2,X2
širina in višina slike v pikslih ter okno karte v koordinatah. Razmerje slike in okna naj bo pravilno. To je nujen parameter, alternativa pa so lahko parametri y, x, scale, width, height (vsi).
drawlist=A,B,C,...
tematika oz. seznam tematik, ki se naložijo. To je nujen parameter, alternativno pa se to lahko izvede tudi v proceduri command.
drawshow=A,B,C,...
če je ta parameter podan, se v tematiki vklopijo za izris samo tiste teme, ki imajo kot dodatno ime kakšno vrednost iz seznama.
command=C
če je ta parameter podan, se naveden ukaz izvede pred samim izrisom karte. Ukaz je lahko samo uporabniško definirana procedura (SUB) brez parametrov.
y=N
ta parameter je lahko alternativa parametru position, pomeni pa y koordinato centra karte.
x=N
ta parameter je lahko alternativa parametru position, pomeni pa x koordinato centra karte.
scale=N
ta parameter je lahko alternativa parametru position, pomeni pa merilo izrisa karte.
width=N
ta parameter je lahko alternativa parametru position, pomeni pa širino slike v pikslih.
height=N
ta parameter je lahko alternativa parametru position, pomeni pa višino slike v pikslih.
dpi=N
ta parameter je lahko podan, kadar bi želeli sliko v drugi resoluciji od privzete 96 DPI.

FUNCTION.*

To je tudi zelo pogosto uporabljen URL, ki vrne tekst, ki ga je izdelala uporabniško definirana funkcija tipa TStringList.

function=F
ta parameter je nujen, pomeni pa ime funkcije, ki se kliče.

SEARCH.DLL

Izvede splošno iskanje po (full text search) in vrne zadetke.

query=KLJUČNE BESEDE
seznam ključnih besed za iskanje, ločenih s presledki
category=KAT1,KAT2,KAT3
seznam kategorij, po katerih se vrši iskanje (če je prazen, se vrši po vseh)
hits=10
maksimalno število zadetkov
template=JSON
ime templata, ki opredeljuje obliko zadetkov

AddSearch ... Pred iskanjem se zažene še OnWebSearch...

Osebna orodja