Jätkan Tech-Edi asjade kirja panekut.
Äri
Ikka ja jälle üleskerkivaiks teemadeks mitmetes ettekannetes olid SOA, Cloud, SaaS, Azure jne.
Põhiideedeks siis, et tulevikus:
- Me kirjutame rakendusi teenustest, mida me ise ei loonud
- Paigaldame neid masinatele, mis pole meie omad
- Liigutame neid “pilves” ühest datacenterist teise, kruvides lihtsalt mingit graafilist mudelit
Jutu moraal tarkvaraarendajatele:
- Muuta oma tarkvara kasutatavaks (veebi)teenuste kaudu
- Tarkvara võiks koosneda protsessikesksetest taaskasutatavatest komponentidest
- Algoritmid opereerivad järjest rohkem ärimudelitel ja DSLil
- Uurida võimalusi, kuidas klassikalised rakendused saaks ära kasutada “pilve” teenuseid
Azure
Azure’i puudutavatel teemadel oli mitu ettekannet päevas. Põhiideed siinkohal:
- Virtualiseeritus. Vastavalt oludele ja vajadusele tekitatakse Windows Serveri instantse.
- Kettaruum (storage). Vastupidav, skaleeruv, kättesaadav ja sisaldab harjumuspäraseid abstraktsioone
- Hooldus. Teenuseid tekitatakse ja nende elutsüklit majandatakse automaatselt
Iga uus arenduskontseptsioon algab Hello Worldist. Azure’i Hello Worldi saab näha siin. Põhiline müügiargument asja juures muidugi see, et asi töötab täpselt nagu tavaline ASP.Neti arendus. Azure annab aga automaatselt:
- Keskkonna, kus kood jookseb
- Riistvara (mingis anonüümses konteineris ja data centeris)
- Võrguühenduse
- Paigalduse ja konfigurerimise
- Isolatsiooni
- Koormuse balansseerimise
Ja nagu ülalolevalt diagrammilt näha, pole Azure mitte ainult inimeste enda koodi hoidmiseks, vaid seal on muuhulgas võimalik kasutada ka SQLi (sh nii andmete hoidmiseks kui ka klient<->pilv sünkimiseks, pluss tavalised andmekaevanduse, andmepuhastuse ja -transformatsiooni jm ülesanded, pluss mitmesugused “entsüklopeedilised” andmekogud ehk reference data), SharePointi, Dynamicsit jms asju.
Sharepoint veel
Commerce Serveri järgmine väljalase, koodnimega “Mojave” sisaldab muuhulgas olulist SharePointi integratsiooni. Ehk siis näiteks Commerce Serveri shopping cart, arve näitamine, kataloogiotsing jpt asjad on kasutatavad SharePointi web partidena.
Samuti on Commerce Serveri kasutajad integreeritud SharePointi User Profile’idega, saab kasutada sama autentimist (forms authentication) jne.
Mojave peaks kättesaadav olema 2009 kevadest.
SharePointi osas oli veel suur tung üritustele, kus räägiti featurede ja solutionite loomisest. Ilmselt on tegemist asjaga, mis inimestes segadust tekitab, kordan seepärast põhiideed üle:
- SharePointi customization on see, kui sa muudad mingit konkreetset saiti.
- SharePointi solution on taaskasutatav põhjade ja komponentide hulk, millega sarnast customizationit mitmes saidis luua. Solution on see, mille sa tavaliselt SP serverisse paigaldad ja solutioneid saab luua Visual Studios.
- Solution koosneb featuredest. Feature võib sisaldada menüüsid, linke, listipõhju, listiinstantse, event handlereid (ehk siis põhimõtteliselt igasugust SP peale ehitatud koodi) jmt elemente. Saidil on võimalik featuresid sisse ja välja lülitada.
Vt. lähemat infot siit: http://sharepoint.microsoft.com/blogs/mike/Lists/Posts/Post.aspx?ID=7
Ja siin on hulk väga lahedaid inimeste poolt valmis tehtud featuresid, mida oma saidile lisada: http://www.codeplex.com/features
Solutionite ja featurede loomiseks ja paigaldamiseks on mitmesuguseid lahedaid abivahendeid, mainiksin siin:
WSPBuilder (http://www.codeplex.com/wspbuilder) – vahend SharePointi solutionite automaatseks genereerimiseks. SharePointi custom koodi deploy toimub tavaliselt „solutionite“ abil, mis sisaldavad XML faile, kus paigaldatav kraam kirjeldatud on. WSPBuilder automatiseerib nende failide genereerimise.
STSDEV – (http://www.codeplex.com/stsdev) – genereerib Visual Studio solutioneid, mis omakorda sisaldavad põhjasid tüüpiliste SharePointi ülesannete lahendamiseks (nt kuidas lisada ja deployda uut lehekülge).
Andmebaasidest veel
Koolis õppisime klassikalist andmebaaside teooriat, mis on kenasti kolmandal normaalkujul, neil on konkreetne schema, transaktsioonid toimivad, kõik on mustvalge.
Uutes süsteemides on nii palju andmeid ja neid hoitakse laiali nii paljudes arvutites, et andmete kvaliteedi ja tähenduse mõisted muutuvad häguseks.
- Rangelt defineeritud välisvõtmete ja andmebaasiseoste asemel on sõnmid, documendid, lingid, vormid
- Konkreetsele schemale vastavate tabelite asemel on laiendatavad, erineva või üldse tundmatu semantikaga andmeallikad
- Piiritletud andmehoidla asemel on kusagilt streamitavad andmevood
- Range lukustamise ja transaktsioonide asemel on OK, kui mina muudan andmeid ja sina muudad andmeid ja pärast pannakse asjad korda.
- Täpsete vastuste asemel on meil pidevalt muutuvad andmed ja selleks ajaks kui arvutus tehtud saab, võib vastus juba vale olla
Ühesõnaga, me ei ela enam ilusa, puhta DDLiga kirjeldatud maailmas.
Tüüpiliseks näiteks on siin Amazoni veebipood, kus klassikalisi transaktsioone eriti ei rakendatagi. Laos võib olla viimane eksemplar mingist raamatust ja sina ja mina ostame mõlemad selle ära. Tekkinud tõrge parandatakse hiljem ja ühele meist saadetakse vabandus. Amazonil on ladusid paljudes erinevates geograafilistest paikades, seal muutuvad seisud pidevalt, samuti tellivad miljonid kasutajad kogu aeg mingeid asju. Kui me tahaks sellele süsteemile rakendada rangeid transaktsioone, siis:
- Tsentraalse andmebaasi puhul ei piisaks meile ka maailma suurimast ja kiireimast arvutist, et seda süsteemi töös hoida.
- Hajusandmebaasi puhul võtaks andmete korrektsuse kontrollimine nii palju aega, et kasutaja ei jõuaks seda ära oodata. Samuti võib juhtuda nii palju erinevat sorti tõrkeid, et ta saaks arvestatava tõenäosusega mingi vea, kuigi tegelikult on kõik korras.
Ühesõnaga, süsteemi 100% kättesaadavus on palju olulisem kui andmete 100% korrektsus ja vigu on võimalik hiljem parandada – tees, mis vana aja andmebaasiteoreetikutes ilmselt külmavärinaid tekitab.
Abivahendid
Kui keegi veel ei tea, siis Fiddler (http://www.fiddlertool.com/fiddler/) on veebiprogrammeerija ning eriti AJAXi programmeerija parim sõber. Kogu veebitrafficu jälgimine, filtreerimine, breakpointide seadmine, omatahtsi pakettide modifitseerimine… ‘nuf said.
Jätkub veel…