| Organizacija znanja | letnik 9, zvezek 2, 2004 |
Kazalo
Že deveto leto zapored se je v Portorožu, točneje v prenovljenih in predvsem večjih kongresnih prostorih Grand hotela Emona od 10. do 13. maja odvijala Microsoftova NT konferenca.
Otvoritev konference je bila za razliko od prejšnjih let manj uradna in bolj zabavna, pravzaprav majhen šov, ki ga je vodil igralec Gašper Tič. Poleg že znanih govorcev, veljakov slovenskega Microsofta in partnerja HP-ja, je bil častni gost še vodja delegacije Evropske komisije v Sloveniji Irec Erwan Fouere. Svojo misel na moto konference “Uresničite svoj potencial” pa so predstavili tudi nekateri uspešni Slovenci, med njimi tudi Slovenka leta Benka Pulko. Otvoritev je glasbeno zaključila Helena Blagne ob spremljavi ekstravagantne skupine The Stroj z “evropsko” Odo radosti.
Po otvoritvi je svetovno znani virtuoz Miha Pogačnik predstavil proces kreativnosti skozi prizmo umetnosti. Ta se začne z uglaševanjem ljudi v tem procesu in se nadaljuje z identiteto mojstrovine. Pomembno je, da se izkoristi celoten potencial ideje v praksi. Pogačnik je posamezne stopnje tega procesa ponazoril z Bachovo fugo v g-molu, ki jo je zaigral na violino.
Tako kot vsako leto je tudi letošnja konferenca poleg obsežnega urnika predavanj in delavnic ponudila prijetno tako prijateljsko kot poslovno druženje udeležencev konference ob večerih: piknik v ponedeljek, dobrodelni pohod okoli Pirana v torek, zabaven kavbojski večer v sredo. Zaključek konference je bil v četrtek.
Stari znanec NT konference, Rafal Lukawiecki, se je posvetil nekaterim najbolj vročim vprašanjem, s katerimi se soočajo strokovnjaki za informacijsko tehnologijo. Začel je z navidezno nerešljivim nasprotjem med svetovoma Microsofta in Linuxa ter poskušal odkriti, kakšne koristi bi bilo mogoče imeti od njunega sožitja. Poudaril je pomen standardizacije v luči integracije sistemov. Pri tem je pomembna povezljivost na nivoju transakcij, podprta z varnostjo.
Kot najpomembnejšo tehnologijo zadnjih let je označil spletne storitve, ki naj bi bile osnova za višjo abstrakcijo pri razvoju informacijskih sistemov. Spletne storitve naj bi zagotovile integracijo med različnimi sistemi. Same storitve bodo napisane v “nizkonivojskih” programskih jezikih (C#, Java ...).
Končne rešitve naj bi se oblikovale s procesnim ali konfiguracijskim programiranjem. Takšno programiranje naj bi zahtevalo čedalje več ljudi, ki poznajo poslovne procese, ne poznajo pa toliko osnovnih tehnik programiranja. Microsoft in številna druga podjetja so razvoju na tem področju posvetila veliko časa in sredstev, zato bo imel Microsoft po predavateljevih predvidevanjih v bodoče na tem področju vodilno vlogo. Linux v povezavi z javo pa bo po njegovem mnenju dolgoročno obstal na sistemih, ki zahtevajo nizke stroške.
Varnost je proces in ne stanje. Če si danes varen, še ne pomeni, da boš varen tudi jutri. Danes se v informacijskem svetu pojavljajo vprašanja, kaj varovati in kako. V začetku pomislimo na fizično varovanje, kar pomeni npr. zaklepanje prostorov z informacijsko opremo. Skratka, onemogočen ali otežen neavtoriziran dostop do strežnikov, notesnikov in delovnih postaj, torej do tiste opreme, ki predstavlja na eni strani trenutno pošteno tržno vrednost strojne opreme in po drugi strani tudi informacijsko vrednost. Prav ta pa je resnici na ljubo lahko zelo visoka. Zamislimo si, da izgubimo podatke in informacije, za katere smo porabili eno leto dela, ali da se npr. konkurenčno podjetje dokoplje do ključnih informacij svojega tekmeca (npr. pridobi trdi disk iz notesnika direktorja konkurenčnega podjetja). V smislu fizičnega varovanja je torej pomembno centralizirano skladišče podatkov in upoštevanje ukrepov pred naravnimi katastrofami (npr. razpršenost nosilcev za obnovitev podatkov na več lokacij).
Vsa nadaljnja razmišljanja o varnosti nas privedejo do spoznanja, da je potrebno od primera do primera oceniti tveganje za izgubo ali zlorabo podatkov. Najpogostejši primeri so:
napad računalniškega virusa ohromi delo ali povzroči izgubo podatkov (zloraba zaradi nenameščene antivirusne programske opreme),
razni smetni programi (spyware, adaware) povzročajo slabo delovanje sistema (zloraba zaradi nenameščene protismetne zaščite),
računalniški črv ohromi internet (zloraba ranljivosti zaradi nezakrpanih varnostnih lukenj v sistemski programski opremi),
zaposleni v podjetju se dokoplje do njemu nedostopnih zaupnih informacij (interna zloraba informacij),
računalniški heker vdre v informacijski sistem (zloraba informacij z vdorom od zunaj).
Danes Microsoft priznava, da pred nekaj leti varnosti ni posvečal toliko pozornosti, kot ji posveča danes. Razlogi za to so preprosti. Leta 1998 na primer ni bilo nobene potrebe po varnosti, ker sta bila ekspanzija povezovanja računalnikov v lokalno omrežje in internet šele na začetku. Filozofija takrat je bila: ponuditi čimveč in čim bolj funkcionalno. Z leti so se razmere bistveno spremenile in varnost postaja prva skrb tudi pri Microsoftu. To dokazujejo tudi s pristopom pri načrtovanju strežnika Windows 2003. Ta ima pri namestitvi onemogočene skoraj vse storitve. Logika je torej obrnjena na glavo: privzeto ne omogoči ničesar, dodajaj tisto, kar potrebuješ. Pri tem pa velikokrat naletimo na paradoks, da je z večjo varnostjo manj funkcionalnosti in obratno.
Dejstvo je, da tehnologija sama po sebi ne more zadovoljivo varovati informacijskega premoženja. Za to so potrebni ljudje, procesi in postopki, osnova pa je sprejeta varnostna politika, ki določa, kaj in kako varovati, predvideva tudi vse posledice zlorab in določi ukrepe za sankcioniranje. Tehnologija sicer ponudi posamezne rešitve, ki pa jih tudi Microsoftovi strokovnjaki in partnerji omenjajo kot danes nepogrešljive:
nameščena in posodobljena antivirusna programska oprema na delovnih postajah, notesnikih, strežnikih,
filtriranje virusov na poštnih strežnikih (Exchange), saj prihaja največ virusov preko elektronske pošte,
na strežniku za e-pošto (Exchange) ali na odjemalcu (Outlook) onemogočene nekatere priponke datotek (.exe, .vbs ...), ki lahko ob zagonu povzročijo neželene operacije,
nastavljena varnost makrov v pisarniški programski opremi (Office),
posodobljena sistemska programska oprema, odpravljene znane varnostne luknje – npr. samodejno posodabljanje preko strežnika Windows Update ali Software Update Services,
uporaba kompleksnih gesel in njihova redna zamenjava, prepovedano posredovanje gesel drugim uporabnikom,
samodejno zaklepanje delovnega namizja, ponovna prijava samo z geslom,
spremljanje varnostnih dogodkov, npr. dnevnik neuspelih poskusov prijave ali dostopa do sredstev,
skrbno načrtovana možnost dostopa do sredstev v omrežju,
uporaba šifriranih datotek in map,
uvedba požarnega zidu in spremljanje prometa v smeri internet – lokalno omrežje (npr. strežnik ISA).
Vabljeni gost Steve Riley, direktor produkcije v Microsoftu, je predstavil svoje poglede na uvedbo varnosti v obstoječe in nove proizvode Microsofta. Zadal si je cilj, da odgovori na bistveno vprašanje: V kolikšni meri si želite biti varni? Poudaril je predvsem to, da je središče dogajanja vedno človek, bodisi navadni uporabnik, naprednejši uporabnik, IT-administrator, sistemski inženir ali razvijalec programske opreme, ki se mora zavedati, da je varnost informacijskega premoženja danes pomembna. Razložil je globlji pomen konceptov, kot so npr. preverjanje istovetnosti (avtentikacija), avtorizacija, integriteta in kako so vpeljani v okolje Windows. Kot primer površne predstave o varnosti je navedel uporabo gesla (password), ki za večino ljudi še vedno pomeni krajšo besedo (word). Po njegovem mnenju je rešitev v frazi (passfraze), stavku, ki samo uporabniku nekaj pove. Razbijanje tako dolgega gesla bi trajalo milijone let, težko pa je tudi uporabiti slovarje.
Riley je tudi povedal, da je velika večina ljudi vizualcev. Ugotovili so namreč, da obveščanje o možnih nevarnostih v okolju Windows v obliki besednega opisa ne ustreza. Zato se bodo trudili, da bi še bolj grafično ponazarjali na možne nevarnosti po vzgledu opozorilnih znakov na kopališčih (npr. Pozor! Plitko dno, ob skoku v vodo možnost poškodbe!) in ponudili več možnosti, kaj narediti v takih primerih (dodali bodo možnost blokiranja za primer vsiljivih strani na internetu). Za zaključek je Riley povedal, da zadnje čase Microsoft veliko vlaga in raziskuje področje varnosti na vseh ravneh uporabe svojih proizvodov, predvsem pa ima cilj svoje uporabnike navaditi, da se zavedajo (ne)varnih situacij. Na koncu je seveda izzval poslušatelje, da odgovorijo, v kolikšni meri si želijo biti varni.
E-podpis je temelj varnega elektronskega poslovanja, pa vendar sam zase še zdaleč ni dovolj za vzpostavitev zadostnega nivoja računalniške varnosti. Tako za načrtovalce kot razvijalce programske opreme je še kako pomembno, da razumejo, zakaj so lahko e-obrazci in dokumenti, čeprav podpisani, izpostavljeni številnim oblikam napadov in zlorab. V predavanju so bili prikazani vsi bistveni mehanizmi varnega elektronskega poslovanja v okolju Microsoft .NET. Na primeru delovanja realne spletne rešitve so bili prikazani izseki “dobre” in “slabe” izvorne kode v okolju ASP.NET. V praksi so bili predstavljeni osnovni varnostni elementi zaščite e-dokumentov. Povedano je bilo, kdaj uporabiti e-podpis, poudarjen pa je bil pomen načela WYSIWYS (ang. What You See Is What You SIGN). Nato je bilo prikazana vloga avtentikacije in avtorizacije ter kako zanikati e-podpis in kdaj je časovno žigosanje neizogibno. Na koncu so bili predstavljeni primeri napadov “digital-signature injection” in vsiljivega trojanskega konja, nakazan pa je bil tudi pomen e-arhiva.
Danes je povezovanje domačih računalnikov in notesnikov v omrežje podjetja že vsakdanjost, pri tem pa se lahko zgodi tudi to, da lahko zaradi neustrezne zaščite odjemalcev nastopijo težave, ki lahko v najhujšem primeru privedejo do izpada dela omrežja in tako ohromijo poslovanje. Primer je širjenje virusa ali črva po datotečnem sistemu ali e-pošti, ki povzroči veliko dela antivirusnemu programu v sicer zaščitenemu okolju in s tem porablja vire (ljudi in čas) za normalno delo; ali pa prekomerno obremenjevanje omrežnega prometa, ki ohromi omrežne povezave. Microsoftov Windows Server 2003 Network Access Quarantine Control omogoča omejevanje prijave oddaljenih računalnikov v notranje omrežje, če nastavitve računalnika niso v skladu z varnostno politiko podjetja. Možna je tudi povezava z namensko strojno opremo, vendar mora ta podpirati možnost karantene.
Tadej Vidrih, samostojni svetovalec in zunanji sodelavec podjetja SRC.SI, je povedal, da je tako omejevanje namenjeno večjim podjetjem, ki imajo enega ali več strežnikov RRAS/RADUIS in prijavo v aktivni imenik, pri tem pa morajo biti zaščiteni pred možnimi problemi zaradi prijave nezaščitenih oddaljenih računalnikov. V osnovi gre za to, da se pri prijavi VPN ali klicni prijavi (dial-up) odjemalca na prijavni strežnik preko aktivnega imenika določi skupinska politika (Group Policy), v kateri je določeno, kaj vse se na odjemalcu preveri. Navadno je stvar rešljiva preko prijavnih skriptov (VBS), ki npr.:
namestijo varnostni certifikat,
preverjajo, ali je zagnan in posodobljen antivirusni program,
ali so nameščeni zadnji popravki (ali pa vsaj tisti kritični),
ali je vključeno samodejno zaklepanje namizja.
Prav zaradi tega je potrebno veliko administrativnega dela, saj se morajo prijavni skripti nenehno ažurirati glede na varnostne razmere. Prav iz tega razloga je izvedba take rešitve namenjena podjetjem, ki imajo veliko oddaljenih odjemalcev in zanje druge, elegantnejše rešitve (npr. terminalski dostop) niso ustrezne.
Če zaščita oddaljenega računalnika ni zadovoljiva, se uporabnika obvesti, kaj vse je treba postoriti, da bo dostop do omrežja podjetja možen (navadno je to spletna stran). Uporabniku se v tem primeru dovoli dostop samo do omrežja, ki je v karanteni in je torej ločeno od “pravega” omrežja, do katerega želi. V tem omrežju je navadno tudi strežnik, ki služi za distribucijo antivirusne zaščite, varnostnih popravkov, certifikatov itd.
Ker pa imajo oddaljeni odjemalci navadno lokalne administratorske pravice na svojem računalniku, imajo možnost zagnati program (seveda če znajo), ki omogoči dostop do omrežja izven karantene. Vidrih poudarja, da namen te rešitve ni, da bi onemogočili dostop odjemalcev, ker je interes ravno nasproten, čeprav v principu lahko tudi to storimo (prekinemo povezavo). Ta problem se rešuje z dodelano varnostno politiko podjetja, s katero morajo biti odjemalci seznanjeni in ki natančno opredeljuje ravnanje v takih primerih. Namreč uporabnik mora prevzeti odgovornost, saj neznanje ne opravičuje krivde.
Na predavanju je bila prikazana VPN-prijava odjemalca, prijavni skript pa je preverjal, ali je zagnan antivirusni program. Skript VBS je namreč izkoriščal WMI, da je ugotovil, ali je zagnan servis na postaji Windows XP. Pri prvi prijavi antivirusni program ni bil zagnan in uporabniku se je prikazalo naročilo, naj si aktivira antivirusni program. Dostop je bil omejen samo v karanteni, predavatelj pa je pokazal, kako lahko to zaobidemo. Pri ponovni prijavi je bil antivirusni program zagnan in prijava v omrežje je bila takojšnja.
Aleš Kodrič, sistemski inženir v podjetju LANCom, in Smiljan Švarc, vodja IT-službe na Pošti Slovenije, sta predstavila rešitev Disaster tolerant v Pošti Slovenije. Smiljan Švarc je poudaril, da so tako rešitev potrebovali zaradi izpolnjevanja zakonskih določil in predvsem zaradi zagotavljanja visoke razpoložljivosti sistemov kot temelja novih e-storitev, s katerimi Pošta Slovenije postaja zanesljiv partner tudi na tem področju.
Z novim strežnikom Windows 2003 so bile gruče še izboljšane in posodobljene, kljub temu pa takšne gruče zagotavljajo visoko razpoložljivost v primeru izpada strojne ali programske opreme enega od strežnikov v gruči, ne zagotavljajo pa visoke razpoložljivosti v primeru naravne ali druge katastrofe (potres, požar ...). Strežniške aplikacije, kot so Microsoft SQL ali Microsoft Exchange, potrebujejo za delovanje v gruči dostop do skupnega diskovnega polja, kar pomeni, da morajo biti tudi fizično skupaj in je zato zelo verjetno, da omenjenih nesreč ne bodo preživele. Pred takšnim tipom nesreč se lahko zavarujemo tako, da strežnike iz gruče postavimo na različne geografske lokacije (Stretch Cluster). Za ta scenarij pa potrebujemo strojno opremo, ki to omogoča.
Predavatelja sta predstavila rešitev Microsoftove gruče na platformi diskovnega sistema HP StorageWorks EVA 5000 in storitve Continuous Access, ki skrbi za podvajanje podatkov med geografsko ločenimi diskovnimi sistemi. Podatki na diskovju se nenehno prenašajo iz enega polja v drugo na drugi lokaciji. V njihovem primeru je to dvogigabitna povezava. Taka rešitev sicer zahteva ob naravnih nesrečah administratorjev poseg, vendar po besedah Smiljana Švarca ta poseg ne traja več kot 3 minute. V principu je potrebno na delujočem polju nastaviti, da prevzame master vlogo, in na pripadajočem strežniku izvesti ponoven pregled strojne opreme. Vsi servisi se nato samodejno priklopijo na nove razmere.
Da je sistem res uporaben, je pokazala demonstracija, ki je potekala v živo na produkcijskih sistemih (moja.posta.si). Po prijavi v omrežje Pošte Slovenije preko GPRS-ja sta predavatelja vzpostavila terminalsko sejo na obeh lokacijsko ločenih strežnikih. Na enem sta nato ustavila servis Cluster, na drugem pa preko internetnega vmesnika StorageWorksa izvedla Fail Over in nato izvršila še pregled strojne opreme. Sistem je medtem seveda deloval nemoteno.
Zelo zanimivo je bilo tudi to, po katerih kriterijih so odredili drugo lokacijo za namestitev strežnika. Namreč najmanj potresno območje je ravno Štajerska s Prekmurjem, kar je bilo v barvah prikazano na potresnem zemljevidu. Smiljan Švarc se je pošalil s pripombo, da bo pa morda to dejstvo pripomoglo k hitrejšemu razvoju IT na tem območju. Skratka izbira nove lokacije ni bila prehuda, saj so jo izbrali kar na Štajerskem koncu, kljub temu pa je dovolj oddaljena, da je zadoščeno kriteriju primerne in varne oddaljenosti.
Novi strežnik SQL se bo pojavil na tržišču pod imenom Yukon, in sicer v prvi polovici leta 2005. V njem naj bi bile zajete nekatere novosti, ki jih MS SQL 2000 ni imel, oziroma popravki, ki so bili potrebni zaradi novih tehnologij (podpora XML). Novosti so na področju skrbništva, pomoč pri analitiki ter poročilih in podatkovnem rudarjenju. V predstavitveni verziji še vse stvari ne delujejo tako, kot so si jih zamislili, obljubljajo pa, da do izdaje bodo.
Znotraj strežnika nastopa T-SQL Transact SQL oziroma najbolj razširjen povpraševalni jezik za delo s podatkovnimi bazami in podatki. Novosti so nekatere funkcije, ki jih do sedaj MS SQL 2000 ni imel (NUMROW, PIVOT, DEPIVOT …). CTE – Common Table Expressions je funkcionalnost, ko se ohranjajo nekatere vrednosti za delo s podizbirami. Podprta je tudi teorija grafov in drevesnih struktur, kjer lahko relativno enostavno dobimo odvisnosti in različne podgrafe oziroma poddrevesa iz danih podatkov. Vprašanje je le, kje se lahko vse to uporabi v praksi in ali ni smisel podatkovne baze učinkovito in varno skladiščenje podatkov namesto zapletenih redko uporabnih matematičnih funkcij.
Gre za Microsoftovo rešitev integracijskega strežnika in se uporablja za integracijo B2B, B2A. Primer so izvedli v podjetju S&T Skupina Atlantis, kjer so povezali 55 izpostav DURS s centralnim podatkovnim skladiščem podatkov, ki so bili rezultat e-dohodnine. Te podatke je bilo potrebno varno prenesti na točno določeno izpostavo (kjer ima občan bivališče) brez podvajanja. Primer so začeli reševati 15. 1. 2004, podatke so začeli prenašati 1. 4. 2004 in do konca aprila jim je to uspelo brez ene same napake in brez programiranja (razen malenkosti). Pri tem pa jim je strežnik BizTalk ponudil kar nekaj vizualnih pripomočkov v pomoč pri izvajanju in nadzoru prenosa.
Informacijski portali postajajo vse bolj poslovno zanimivi. SPS 2003 omogoča preprosto izdelavo informacijsko bogatih in posameznim uporabnikom prilagojenih portalov.
Prikazani so bili postopki izdelave in lokalizacije spletnih gradnikov ter njihove uporabe v portalu. Povezovanje z drugimi sistemi omogoča portalom prikaz in dostop do podatkov, ki so zunaj informacijskega skladišča SPS 2003. Razložena sta bila modela varnosti dostopa in uporaba Microsoftovih strežnikov BizTalk in Navision. Iskanje po podatkih in dostop do njih sta dva od pomembnejših tehnoloških gradnikov tehnologij Microsoft SharePoint, saj rešujeta problematiko iskanja informacij v zapletenem razpršenem okolju. Prikazana je bila arhitektura iskalnega mehanizma ter možnosti prilagajanja in uporabe v praksi.
Na delavnici je bila udeležencem prikazana možnost celovite izdelave in spremljanja plana projekta, pri katerem lahko dejavno sodelujejo vsi člani projektnega tima in pri tem uporabljajo najnaprednejše tehnologije, ki so enostavne za uporabo. Poleg obvladovanja samega plana projekta smo na delavnici preizkusili tudi obvladovanje vseh drugih vidikov projekta, od informacijsko podprtega delegiranja nalog preko upravljanja z viri projekta na ravni podjetja do upravljanja s projektno dokumentacijo.
Nove tehnologije, ki jih izkoriščata Microsoftov strežnik Project Server 2003 ter SharePointServices, omogočajo dobro upravljanje baze projektne dokumentacije in komunikacijsko bazo članov projektnega tima, ki imajo do vsega dostop preko intraneta. Omogočen je pregled lastnih nalog in poročanje o izvedbi v Microsoftovem Outlooku s povezavo do projektnih podatkov.
Na delavnici so bile prikazane tudi koristi za podjetje na ravni članov projektnih timov, vodij projektov in vodstva podjetja. Prikazana je bila podpora poslovnih procesov z Microsoftovim orodjem za upravljanje projektov Project 2003 in Microsoftovim sistemom za vodenje projektne dokumentacije Windows SharePoint Services.
Če hoče podjetje uspešno uporabiti tehnologijo, ki jo ponuja MS Project 2003, mora najprej imeti vnaprej definirane poslovne procese (po ISO9001:2000 itd.), za katere se v Microsoftovem programu Project 2003 definirajo vnaprej pripravljene predloge. Prav tako mora delovanje in kultura podjetja temeljiti na projektih ter timskem delu, zaradi česar mora imeti ustrezno projektno organizacijo, ki se spreminja od projekta do projekta. To so dejstva in organizacijski pogoji, če želi podjetje uspešno uporabiti informacijsko tehnologijo v tako zapletenem sistemu, kot je podjetje.
Izdelavo projekta začne glede na projektno organizacijo posameznega projekta projektni vodja, ki je v praksi vodja organizacijske enote in ki uporablja te predloge. On ima namreč edini (z)možnost delegiranja nalog pri svojih podrejenih, saj je on tudi edini, ki “mora” do podrobnosti poznati zmožnosti in sposobnosti svojih podrejenih. Na osnovi tega lahko pri izdelavi Gantovega diagrama ali časovnice nalog ter del projekta ustrezno in najbolj optimalno uporabi ustrezne vire, ki bodo potrebni za uspešno opravljen projekt. Ta dokument, ki ga ustvari projektni vodja, se shrani na MS Project Server 2003, hkrati s tem pa dobijo vsi viri (tj. ljudje, ki sodelujejo pri projektu) preko Outlooka ali preko svojih odjemalcev MS Projekt 2003 sporočilo, da sodelujejo pri projektu, s tem pa imajo tudi dostop do ustrezne projektne dokumentacije, ki se nahaja na strežniku oziroma na portalu SharePoint. V ozadju strežnika teče SQL s kocko OLAP za procesiranje in analiziranje podatkov projekta.
Projektni vodja lahko obremenjuje vire v skladu z njihovo trenutno obremenljivostjo in razpoložljivostjo. Prav tako je možen dostop do projekta in projektne dokumentacije preko Internet Explorerja, kar še dodatno poenostavi in olajša vodenje ter upravljanje projektov. Projektna dokumentacija vseh projektov ostane strukturirana in standardizirana na enem mestu ter je lahko in hitro dostopna pri kasnejši uporabi.
V zadnjem letu smo bili priča izidu glavnega stebra specifikacij, ki bodo oblikovale razvoj porazdeljene programske opreme in omogočile koncept storitveno usmerjenih arhitektur (SOA). Pri storitveni arhitekturi je pomembno: meje morajo biti jasno določene (komunikacija preko sporočil), storitve so avtonomne (storitev je samostojen program, ki se avtonomno obnaša), delimo shemo in ne razred, polica komuniciranja (WDSL je premalo, potrebujemo metapodatke o sposobnostih in zahtevah WS-policy).
SOAP 1.2, novi protokol za spletne storitve, je procesni model, ki ima novi razširitveni mehanizem v glavi sporočila. Specifikacije WS-X določajo varnost, zanesljivost in transakcije: WS-Addressing ponuja mehanizem za naslavljanje virov, WS-Policy ogrodje za opisovanje virov, WS-Security varnost (šifriranje, digitalni podpis, prečkanje varnostnih domen) in WS-AtomicTransaction klasični dvofazni commit ACID protokol.
Microsoft ponuja naslednja orodja za spletne storitve: ASMX (spletne storitve ASP.NET), WSE1 (Web Services Enhancements), kmalu pride WSE2 in še kasneje Indigo.
Predavanje je bilo namenjeno pregledu novosti v programskem modelu, podpori protokolov ter primerjavi s tehnologijo Indigo.
WSE 1.0 (Web Services Enhancements 1.0) je proizvod, ki se integrira v ogrodje .NET in izvede specifikacije GXA (Global XML Web Services Architecture). Web Services Enhancements 2.0 je naslednji korak v podpori zadnjih specifikacij spletnih storitev. Trenutno podprte z WSE: WS-Security (varnost), WS-Routing (usmerjanje), WS-Referral (usmerjanje) in WS-Attachments (priponke). WS-Security podaja način vključevanja šifriranja, digitalnega podpisa in prečkanja varnostnih domen v sporočilo SOAP. Odjemalec in strežnik sta prisiljena uporabljati isto tehnologijo.
Varnost moramo upoštevati že v fazi načrtovanja. Razdeljena je v naslednje sklope:
avtentikacija – prijava,
avtorizacija – do česa lahko uporabnik dostopa,
zaupnost, zasebnost – kdo vse lahko za postorjeno delo izve,
integriteta – kdo lahko še spreminja,
revizijska sled – možnost spremljanja zgodovine,
dostopnost – katere akcije lahko uporabnik izvaja.
Največ vdorov je preko vnosnih obrazcev. Zato je osnovno načelo varnosti “ne zaupaj vhodnim podatkom”. V nadaljevanju je podanih nekaj primerov vdorov.
Če vnosni obrazci dovolijo vpisovanje sintakse HTML, se lahko vpisujejo izrazi HTML in tudi kode javascript (cross site scripting). Ob validaciji se obvezno uporablja pretvorba vseh nizov pred nadaljnjo uporabo. Pri tem uporabljamo metodi: HttpUtility.HTMLEnode (zamenjava znakov, npr. znak ">" z >") HttpUtility.URLEncode.
Če uporabniške nastavitve shranjujemo v piškotke (cookie), ga lahko koda javascript naloži v spletno povezavo in jo tudi izvede. Iz spletnega naslova se nato včita trenutno aktualna seja, s katero se vdre v spletno aplikacijo. Zelo preprosto preverjanje bi lahko opozorilo na napako v primeru najdenega niza “javascript”. Vendar to ni dovolj. Primeri nevarnih spletnih naslovov:
<img src=javascript:code>
<link rel=stylesheet href=“javascript:code”>
<input type=image src=javascript:code>
<a href=“javascrip#:code>
<p style=left:expression(code)>
&{code};
<style type=“text/javascript”>code</style>
V primeru tvorjenja stavkov SQL je potrebno uporabljati parametrizirane poizvedbe. V nasprotnem primeru lahko poljubno razširimo del poizvedbe z "where" in npr. dodamo “OR 1=1” in s tem izpolnimo pogoj.
Pri gradnji spletnih servisov je potrebno pozornost nameniti spletnim metodam, ki vračajo neki rezultat. Priporočljivo je, da se uporabi vhodni parameter “out” in da metoda ne vrača ničesar. Na ta način se prepreči, da bi spletno metodo klicali v zanki. Primer metode in njenega klica:
void DOarraything(out Mdevice[] devarray)
{
devarray=new Mdevice[2];
devarray[0]=new Mdevice();
devarray[1]=new Mdevice();
devarray[0].devno=1;
devarray[1].devNo=2;
}
Mdevice[] devarray; // uninitialised
DOarraything(out devarray);
Na predavanju nam je bilo predstavljeno, kako so v preteklosti povezovali različne aplikacije. Ob upoštevanju specifikacij TCP-IP so morali sami narediti povezavo na nivoju transportnega sloja in tako povezati obstoječe sisteme.
Sedanja tehnologija omogoča povezovanje na višjem nivoju (nivoju aplikacije namesto transportnega sloja). Odločili so se za tehnologijo WebServices, ki jim je omogočila izdelavo aplikacije, v skladu z uporabniškimi zahtevami in uporabo standardiziranih rešitev.
Znano je, da so razvijalci, ki poznajo okolje java, zaradi podobnosti tehnologij najbolj usposobljeni za prehod na ogrodje .NET. Alternativa javi v ogrodju .NET je J#, čeprav je v tem ogrodju prvi razvojni jezik C#.
Na Microsoftovih spletnih straneh lahko najdemo brezplačno orodje za pretvorbo jave v C#, JLCA (Java Language Conversion Assistant), ki deluje za javo, verzija 1.1.4. Na praktičnih primerih je bila prikazana uporabnost tega orodja. Orodje je bilo učinkovito le v najenostavnejših primerih, sicer pa so potrebni ročni popravki. Za večje projekte pa je praktično neuporabno.
Java programerji zaenkrat nimajo tehtnih razlogov za prehod na .NET. Če pa je to nujno potrebno, je najbolje preiti na C#, ker se bo J# v ogrodju .NET dolgoročno verjetno počasneje razvijal. Orodja za prenos projektov java na .NET so zaenkrat neučinkovita. Najboljša rešitev je integracija aplikacij java J2EE in .NET preko spletnih storitev.
Izboljšave so bile predstavljene v več sklopih. Nobena od izboljšav ne pomeni sprememb predhodnih razvojnih stopenj.
Generiki
Kolekcijski objekt vsebuje enumerator, preko katerega se dostopa do posameznih objektov, ki so v kolekciji. Generiki omogočajo izgradnjo tipiziranih zbirk. V tem primeru odpade tipsko preverjanje, ni uokvirjanja, ni pretvorb tipov. Delovanje je hitrejše.
Generik v predstavljenem primeru označuje tipski parameter “T”.
public class List<T>
{ private T[] elements;
private int count;
public void Add(T element) {
if (count == elements.Length) Resize(count * 2);
elements[count++] = element;
}
public T this[int index] {
get { return elements[index]; }
set { elements[index] = value; }
}
public int Count {
get { return count; }
}
}
Uporaba generika:
List<int> intList = new List<int>();
intList.Add(1); // Ni okvirjanja
intList.Add(2); // Ni okvirjanja
Tipski parametri se lahko pripišejo razredom, strukturam, vmesnikom, delegatom in metodam.
Anonimne metode
Anonimne metode skrivajo kompleksnost delegatov. Anonimne metode omogočajo blok kode na mestu delegata. Tip delegata se ugotovi samodejno. Primer:
button.Click += delegate { MessageBox.Show("Hello"); };
Iteratorji
Preko metode GetEnumerator() imamo dostop do iteratorja določene kolekcije. Primer:
Enumerator e = list.GetEnumerator();
while (e.MoveNext()) {
object obj = e.Current;
DoSomething(obj);
}
Get/Set imata lahko različne vidnostne omejitve. Primer, ko je set bolj omejen kot get:
public class Customer
{
private string id;
public string CustomerId {
get { return id; }
internal set { id = value; }
}
}