Freelance-FastX-SQL Architektura
Copyright (c) 2002 Mirek Janata
Co
je Freelance a jak pracuje
Freelance
je třívrstvý aplikační systém. Pracuje s grafickým uživatelským rozhraním,
bežícím v internetovém prohlížeči - Freelance klient. Ten spolupracuje s
aplikačním serverem FastX a případně jeho prostřednictvím s SQL
databází. Na následujícím obrázku je základní schéma Freelance.
Vidíme, že na běhu aplikace kooperují tři komponenty:
- Freelance klient (uživatelské rozhraní)
- FastX Server (aplikační)
- SQL server (databázový)

Následující
odstavec obsahuje nástin implementace jednotlivých komponent Freelance:
- Freelance
klient je Java aplet skládající z jádra Freelance klienta,
dále rozšiřujících Java tříd specifických pro aplikaci a dalších zdrojů
(HTML stránky, multimediální objekty apod.).
Kompatibilita
s OS: Windows,
MacOS, [Linux]
Kompatibilita s Java Runtime Environment: 1.1
Kompatibilita s prohlížeči: MSIE 5.0 a vyšší, Netscape Navigator 4.x,
Netscape Communicator 4.7 a vyšší
- FastX
Server zpracovává požadavky klientů paralelně
a podporuje víceprocesorovou architekturu. Díky otevřené modulární
architektuře umožňuje současně provozovat desítky různých aplikací na
různých databázových serverech. Integruje
runtime a debugger výkonného jazyka X pro psaní SQL transakcí a
dynamického server-side HTML. Otevřené SQL rozhraní umožňuje připojit
různé typy databázových serverů. Architektura FastX serveru
je otevřená z hlediska konektivity a funkcionality. FastX server
disponuje vlastním publikovaným SQL rozhraním, tudíž jeho
konektivita není omezena pouze standardní nabídkou ( SQLBase, Sybase,
ORACLE, Microsoft SQL Server ), ale lze ji rozšířit o vlastní SQL drivery.
Z hlediska funkcionality existují dvě cesty k rozšíření sady funkcí: rozšiřující
X moduly a FastX pluginy. X moduly jsou knihovny funkcí napsané v
jazyce X, což je kompilovaný programovací jazyk, jehož runtime je
integrován FastX serverem. Tento jazyk je vhodný zejména pro prácí s
texty, soubory, dynamickými HTML stránkymi a komunikaci s SQL serverem.
Vyznačuje se jednoduchou syntaxí a rychlostí provádění, neboť se vyvolává
zkompilovaný byte-code. Taktéž umožňuje importovat a volat funkce z jiných
dynamických knihoven.
CompressLink je
komprese dat přenášených mezi Freelance klientem a FastX serverem.
Přispívá k rychlé odezvě aplikací i na rozlehlých sítích s nízkou
přenosovou kapacitou (od 28kbit/s). V reálném provozu vykazuje až 80%
účinnost.
SecureLink je šifrovaný přenos dat mezi klientem a serverem, který
brání efektivnímu odposlechu komunikace.
FastX plugin je dynamická knihovna, která definuje rozhraní
deklarované dokumentací FastX serveru. Pluginy lze registrovat ve
startovacím skriptu FastX serveru a posílat jí požadavky stejně jako
vlastnímu FastX serveru. Pluginy mají k dispozici FastX API, tj. množinu
objektů a metod ke čtení parametrů požadavku, přístupu k SQL databázi a
odesílaní dat klientovi. Dalším významným rysem FastX serveru je modularita.
Jeho zdroje a funkcionalita se člení do FastX aplikací, kterých
může paralelně spravovat několik. Každá aplikace definuje vlastní FSO
doménu, tedy adresář se zdroji, dále pojmenované texty, rozšiřující X
moduly a v neposlední řadě množinu exportovaných funkcí ( tasků ).
Kompatibilita
s OS: Windows9x,
WindowsNT, Windows2000
Kompatibilita s internetovými servery: Microsoft Internet
Information Server 3.0-5.0, Apache 1.3
- Databázový SQL server je program, který má na
starosti fyzickou správu dat. Podporované SQL databáze jsou v
současnosti: Centura SQLBase, Sybase, ORACLE, Microsoft SQL Server,
WinBase SQL, ODBC.
- Nástroje na
vývoj, údržbu a rozšiřování aplikací: Freelance Developer, Java
Development Kit ( SUN Microsystems ), nástroje jednotlivých databázových
serverů. Za zmínku stojí skutečnost, že vývojové prostředí pro
implementaci programových komponent klientů (JDK) je zdarma.
Hlavní
rysy architektury Freelance
- Kompaktnost: veškeré komponenty systému
jsou uloženy na jediném serveru a jsou přístupné nejdostupnějším způsobem
– protokolem HTTP, tedy nejen v rámci lokální sítě, ale i pevnou
linkou či modemem. Instalace nové stanice do sítě znamená jediné –
nainstalovat internetový prohlížeč.
- Výkonnost: jádro FastX je kompletně napsáno
v jazyce C++, Freelance je kompletně implementován
v jazyce Java. Jádro aplikace se natáhne při spuštění prohlížeče a
posléze se dotahují již jen zdroje ( obrázky, šablony formulářů, tabulek
atd. ) a to pouze jednou, neboť se ukládají v cache, a samozřejmě vlastní
data. Odpadá tím značná režie na prezentaci a formátování dat typická pro
dynamické HTML stránky a formuláře.
- Skromnost a odolnost: Freelance je schopen
provozu i na méně kvalitních sítích, nároky na přenosovou rychlost jsou
oproti klasickému řešení klient-server řádově nižší a neporovnatelně
nižší jsou vůči klasickému 'souborovému' modelu. Rozdíl roste spolu se
složitostí aplikace a jednotlivých transakcí. Důvodem je skutečnost, že
po síti se přenášejí pouze zdroje aplikace, které jsou navíc ukládány ve
vyrovnávací paměti klienta, dále uživatelské vstupy a výsledky.
Jednotlivé transakce běží na FastX a SQL serveru a jejich
mezivýsledky tedy nejsou přenášeny po síti. Freelance
lze provozovat na sítích od 28Kbit/s.
Naopak vyšší (nikoli však přemrštěné) nároky jsou kladeny na server, na
kterém běží jak aplikační, tak případně i SQL server.
- Modularita: Freelance je prvoplánově navržen jako
otevřený systém. Důsledně ctí strukturu jádro - doplňky. Jazyk
klienta Freelance - Java - je běžně dostupný a stává se
v současné době standardem v této oblasti. Server FastX
implementuje vlastní programovací jazyk X s velmi výkonným
runtime. Tento jazyk je narozdíl od např. VB scriptů ( např. ASP )
kompilovaný, takže efektivita jeho zpracování je řádově vyšší.
Překladač X je součástí instalace, takže vývojář i správce systému
má možnost dalších úprav a rozšíření. Pro úlohy mimořádně náročné na
výpočetní výkon se nabízí možnost rozšíření FastX pluginy, které mohou
být psány třeba v jazyce C++ a představují tedy ještě výkonnější
alternativu.
- Bezpečnost je klíčovou prioritou při tvorbě aplikací v
otevřeném prostředí internetu. Freelance implementuje dva přenosové
protokoly, FTT (FreelanceTrustedTransfer) určený pro nasazení v
důvěryhodných sítích (intranet), a přenosový protokol FST (FreelanceSecureTransfer)
založený na symetrickém osminásobně multiplexovaném LFSR šifrování,
inicializovaném 512 bitovým klíčem (Diffie-Hellmann). FST je určen
pro otevřené prostředí internetu. Ochranu databáze implementují SQL
servery na základě autorizace uživatelů. Jednotlivé aplikace lze
zpřístupňovat vybraným počítačům či sítím. Důsledkem architektury je mimo
jiné,
- žádný z uživatelů nemá
možnost neautorizovaně zapsat cokoli v databázi ( ochrana SQL
serveru )
- lze zabránit spuštění aplikace
z nedůvěryhodných sítí
- žádný z uživatelů nemá
možnost neautorizovaně modifikovat aplikaci
- přenášená data jsou
oboustranně šifrována, FST snižuje pravděpodobnost efektivního
odposlechu přenášených dat k nule.
- Dosažitelnost je silnou zbraní Freelance.
Aplikace jsou oprávněným uživatelům dostupné z kteréhokoli
(povoleného) počítače libovolného typu s jakýmkoli operačním
systémem. Podmínkou je připojení do sítě a instalace internetového
prohlížeče kompatibilního s JavaRuntimeEnvironment 1.1 a vyšším.
- Snadná údržba vyplývá z použité
architektury: veškeré komponenty jsou soustředěny na jediném počítači.
Ten lze chránit, ať již hardwarovými, či softwarovými prostředky, proti
útokům zvenčí či virům.
- Extrémně nízké nároky na počet licencí SQL
serveru dramaticky snižují pořizovací náklady na budovaný informační
systém. Na SQL serveru s licencí pro jediného uživatele ( tyto
licence jsou nezřídka zdarma anebo za cenu nepřesahující pár desítek
tisíc Kč ) lze v praxi provozovat neomezený počet uživatelů, nestanoví-li
licenční podmínky výrobce jinak. Úspora v tomto případě
představuje mnoho set tisíc Kč. Tento režim je přitom stoprocentně
srovnatelný s režimem běžných n-uživatelských licencí.