Na globálnom internetovom trhu nejestvovala komunitná sociálna sieť, špecializovaná na hráčov golfu, ktorá by tejto náročnej klientele ponúkala zmysluplný globálny informačný servis.
Spoločnosť Greenieplanet.com mala jedinečnú víziu vytvoriť komunitný portál – sociálnu sieť, ktorá by spájala hráčov golfu z celého sveta, poskytovala by im informačný servis a služby. Ambíciou spoločnosti je stať sa svetovou jednotkou v golfovom biznise.
V strednodobom horizonte bude portál www.greenieplanet.com poznať každý aktívny golfista, ktorý používa internet. Mať konto na portáli bude prestížnou záležitosťou.
Na začiatku prác bola vízia, ktorá zďaleka prekračovala územie Slovenska – postaviť komunitnú sieť, ktoré zvládne náročnosť globálneho trhu. Pri analýze požiadaviek a návrhu riešenia bolo potrebné zvažovať faktory, ktoré sú obyčajne v slovenskom prostredí irelevantné. Jedna z najvýznamnejších otázok ohľadne architektúry znela, ako naprojektovať aplikáciu tak, aby sa dala ľahko rozširovať, bola dostupná pri extrémnej záťaži, pričom komfort pre používateľa by zostal nezmenený. Výsledkom bol globálny komunitný portál www.greenieplanet.com.
|
Vzhľadom na fakt, že riešenie bolo realizované „na zelenej lúke“, mohol realizačný tím využiť absolútne technologické novinky spoločnosti Microsoft, ktoré poskytujú potrebné množstvo benefitov.
Samotná komunitná sieť je webová aplikácia, implementovaná v ASP.NET MVC 2. Toto rozhodnutie bolo primárne motivované možnosťou využitia a prispôsobenia technológie routingu, uvedenej v NET 4, vďaka ktorej bolo mimoriadne ľahké dosiahnuť URL adresy, vyhovujúce vyhľadávačom a zároveň zachovať používateľskú prívetivosť. Uvedená technológia umožní vývojárskemu tímu v budúcnosti jednoducho implementovať ďalšie používateľské rozhrania (napr. mobilné), pričom aplikačná logika a doménový model zostanú úplne zachované. Prínosom tejto voľby je v neposlednom rade aj čistý výsledný HTML kód, ktorý s pomocou knižníc jQuery umožňuje na klientskej strane jednoducho implementovať významné funkcionality.
Databázovú vrstvu, vzhľadom na predpokladanú budúcu extrémnu záťaž aplikácie, bolo potrebné navrhnúť mimoriadne flexibilne. Prirodzeným riešením bol návrh architektúry podľa vzoru repository, čo umožnilo optimálne vyváženie požadovanej flexibility a rýchlosti vývoja. Súčasti, vyhodnotené ako menej náročné na výkon, boli plne implementované pomocou Entity Framework 4 (s využitím vlastných šablón pre tzv. POCO databázové entity) a naopak, súčasti z hľadiska výkonu kritické, bolo možné implementovať na nižšej úrovni pomocou ADO.NET, prípadne mapovaním uložených procedúr databázového servera. Vďaka otvorenosti Entity Frameworku a využitiu LINQ to Entities, riešenie teoreticky umožňuje v budúcnosti využiť aj viac nezávislých dátových úložísk, bez nutnosti zmeny perzistenčnej, či dokonca aplikačnej logiky.
Predpokladaná vysoká záťaž aplikácie si vyžiadala aj zahrnutie robustného systému cachovania dát. Preto riešenie vo veľkej miere využíva technologickú novinku spoločnosti Microsoft – distribuovanú cache Microsoft Server AppFabric Cache (Velocity). Vývojový tím pomocou vlastných generických providerov nad týmto systémom dosiahol úplne permanentné a vysokovýkonné cachovanie dát, ktoré boli z hľadiska výkonu vyhodnotené ako kritické. Na plecia distribuovanej cache boli presunuté aj používateľské session objekty, čo umožnilo jednoducho nasadiť load-balancig na úroveň webových serverov IIS.
Ako úplne samostatný subsystém bolo implementované úložisko používateľských súborov (dimenzované na rádovo stovky miliónov súborov). Jeho prepojenie na aplikáciu zabezpečuje webová služba Windows Communication Foundation, s pomocou vysoko priepustného net-tcp endpointu.
| • | Najmodernejšie technológie spoločnosti Microsoft umožňujú napĺňať víziu spoločnosti Greenieplanet.com – vytvoriť globálny komunitný portál pre hráčov golfu. |
| • | Použité technológie sú pripravené na extrémnu záťaž. |
| • | Golfová komunita je spojená pomocou špecializovanej sociálnej siete. |