www.romver.ru
/ Полный список статей / GUI

Как заказать сайт


АБРАКАДАБРА (Тоже самое но в читаемом виде)

Perexod ot razrabotki lokal'nix prilojeniy c "vindouznim" interfeysom k razrabotke WEB-prilojeniy trebuet dostato4no radikal'noy smeni paradigmi ot razrabot4ika. I v etoy stat'e a popitalsa videlit' i opisat' otli4ia v podxodax k razrabotke etix dvux klassov sistem i voob6e - moe vpe4atlenie ot WEB-a, kak "vis6ey i posledney stadii" razvitia pol'zovatel'skix interfeysov.

Vozmojno, eta stat'a neskol'ko zapozdala - osnovnie idei, izlojennie v ney, bili osmisleni i sformulirovani mnoy goda 4etire nazad, kogda a vmesto razrabotki korporativnix GUI-prilojeniy zanalsa publi4nimi web-servisami.

No sey4as nametilas' tendencia k tak nazivaemoy "globalizacii" informacionnix sistem, t.e. peredelki "lokal'nix" sistem v intraneti. Upomanutoy globalizaciy sey4as zanimautsa mnogie zapadnie korporacii. Sootvetstvenno, rastet 4islo razrabot4ikov veb-sistem. Tak 4to eta tema mne snova pokazalas' aktual'noy.

Ti pomni6', kak vse na4inalos', ili xoro6o zabitoe staroe
Na moey pamati WWW - eto patoe pokolenie interaktivnix interfeysov.

1. Pervimi bili terminali dla ES-ovskix ma6in. No sut' ix bila ne v tom, 4to oni bili bol'6ie, jeleznie i alfavitno-cifrovie, a v tom, 4to oni obmenivalis' s takoy je bol'6oy i jeleznoy ES-koy bol'6imi (pravda, ne jeleznimi) blokami informacii - na terminal prisilalsa celikom obraz ekrana (ili daje 4ut' bol'6e), a obratno, po najatiu special'noy knopo4ki "Pereda4a" nazad otpravlalsa tot je obraz, tol'ko otredaktirovanniy.

Potomu kak otvlekat' judko proizvoditel'niy (celix 50 tisa4 operaciy v sekundu) superkomp'uter na obrabotku kakix otdel'no vzatix knopo4ek togda i v golovu nikomu ne prixodilo.

A v promejutke mejdu priemom i posilkoy bufera eti terminali rabotali sami po sebe - kak budto nikakoy ES-ki net. Inogda pri najatii knopki "Pereda4a" okazivalos', 4to ee (ES-ki) i vpravdu net - to4eee, fizi4eski est', a logi4eski net - povisla.

A poskol'ku ispol'zovalis' terminali ne tol'ko (i ne stol'ko) dla vvoda tekstov, skol'ko dla strukturirovnnoy informacii (form), to eti terminali umeli podderjivat' formi apparatno - vo vxodnom bufere im opredelennim obrazom peredavalos' opisanie formi na "pti4'em azike", a pri pereda4e s terminala v ES-ku peredavalsa ne ves' ekran, a tol'ko soderjimoe poley formi.

2. Zatem poavilis' displei s posledovatel'nim vvodom-vivodom, dla kotorix umen'6iv6iesa v razmere, no usiliv6iesa nutrom (i ulu46iv6iesa arxitekturoy) minikomp'uteri (SM-ki i ije s nimi) taki obrabativali najatia otdel'nix knopo4ek i vivodili na ekran otdel'nie bukvo4ki v ukazannix poziciax.

Tut uje svoi interfeysi vvoda na4ali programmirovat' vse komu ne len' (a v svoe vrema toje otdal etomu dan').

3. Sleduu6im pokoleniem avilis' personal'nie komp'uteri s po-prejnemu alfavitno-cifrovimi (v osnovnom rejime raboti), no uje cvetnimi monitorami, i s samim "pramim" sposobom raboti s ekranom - vivodom v videopamat'. Obrabotka vxoda6ix knopo4ek o prejnemu lejala na central'nom processore, no k knopo4kam dobavilsa e6e manipulator tipa "mi6'", pereme6enia i najatia kotorogo toje mojno bilo obrabativat'.

V svazi s uslojneniem zada4i, na4ali 6iroko ispol'zovat'sa vsakie polustandartnie biblioteki dla sozdania interfeysov (tipa Borland TurboVision), xota lubiteley popisat' v videopamat' i poobrabativat' prerivania ot klaviaturi i mi6i ostavalos' e6e dostato4no.

Poetomu interfeysi DOS-ovskix sistem bili e6e dostato4no raznoobrazni po naboru ispol'zovav6ixsa metafor.

4.Predoslednim i nine zdravstvuu6im pokoleniem avlautsa okonno-formovie interfeysi tipa Windows. Mo6nost' processorov okon4atel'no pobedila zdraviy smisl, vse stalo risovat'sa isklu4itel'no v grafike, pri4em mas6tabiruemimi TrueType-6riftami. Mazoxisti, luba6ie pisat' v videopamat' ili daje ispol'zovat' bazovie primitivi vvoda/vivoda, dostupnie v Windows, ostalis' tol'ko sredi razrabot4ikov igr, pri4em daje ne samix igr, a dvijkov k nim.

Vse ostal'nie pereseli na standartnie biblioteki, pokrivau6ie jelezo takim tolstim sloem, 4to pro nego okazalos' pro6e zabit'. I s etim v v mire lokal'nix (GUI) prilojeniy okon4atel'no vocarilas' nine6naa interfeysnaa metafora, osnovannaa na ponatiax

- okna - samostoatel'noy pramougol'noy oblasti ekrana, razmerom kotoroy upravlaet pol'zovatel'

- upravlau6ego elementa (kontrola) - kvazisamostoatel'nogo pramougol'nogo elementa v okne s fiksirovannim razmerom i koordinatami.

Pri4em ne potomu, 4to ona avlaetsa edinstvenno vozmojnoy i samoy udobnoy, a potomu, 4to ee (kak samuu prostuu) podderjali proizvoditeli bazovogo PO.

Nekotorie prostey6ie sposobi opisania dinamiki (pereme6enia i izmenenia razmerov) upravlau6ix elementov v pri izmenenii razmerov okna poavilis' v naibolee prodvinutix sistemax razrabotki, no opisat' s ix pomo6'u razumnoe povedenie okon so slojnimi strukturami vse ravno ne polu4alos'.

I kazalos', 4to tak budet vsegda, poka ne poavilsa WEB. To4nee, poka protokol HTTP ne na4ali ispol'zovat' dla postroenia interfeysa k udalennim sistemam, a ne prosto kak sposob posmotret' doma6nuu strani4ku Vasi Pupkina.

5. Vrema zamknulos', Velikiy zmey uxvatil seba za xvost i viasnilos', 4to po logike raboti "sverxtonkiy brauzer-orientirovanniy klient" ni4em ne otli4aetsa ot bol'6ogo jeleznogo terminala 20-letney davnosti.

To4no takje server doljen sformirovat' v tekstovom (HTML) vide blok peredavaemoy pol'zovatelu informacii, avtonomnoe ustroystvo (pravda, sey4as eto komp'uter, a ne terminal) doljno obespe4it' vozmojnost' vvoda/korrektirovki informacii, i otpravit' vvedennuu informaciu na server po najatiu o4en' special'noy knopki.

Kone4no, nine6nie personal'nie komp'uteri po mo6nosti na mnogo poradkov prevosxodat starie terminali (da i meynfreymi), i HTML gorazdo virazitel'nee, 4em azik kodovix posledovatel'nostey terminala 7920, no princip ostalsa tot je.

Otli4ia i problemi
Razniy princip raboti udalennogo (brauzernogo) i lokal'nogo (GUI) interfeysov (da i voob6e - prilojeniy) obuslavlivaut sover6enno razniy podxod k ix proektirovaniu i razniy "look and feel" dla pol'zovatela.

Itak, v 4em je fundamental'nie otli4ia HTML-interfeysov ot interfeysov lokal'nix sistem?

1. U brauzernogo prilojenia server naxoditsa daleko, i po melo4am ego dergat' nel'za.

T.e. tipi4nie dla lokal'nogo prilojenia priemi, kogda pri perexode kursora v kakoe-to pole idet zapros k baze dla viborki dannix, sover6enno neprimenimi v slu4ae brauzernix prilojeniy. T.e. interfeys doljen bit' po vozmojnosti, avtonomen, i o zagruzke neobxodimix dannix na klienta nujno zabotit'sa zaranee. Pri4em zabotit'sa nujno takje o tom, 4tobi ix koli4estvo bilo po vozmojnosti minimal'no...

2. Gorazdo bolee slojnoe i ograni4ennoe po vozmojnostam programmirovanie "tonkoy reakcii" na najatia knopok.

Pri4em koe-gde vozmojnosti veb-form daje slabee, 4em u starix dobrix meynfremovskix terminalov (tipa, skajem 7920) - net vozmojnosti, naprimer, po-prostomu zadavat' poradok obxoda poley tabulaciey, ograni4ivat' nabor simvolov, vvodimix v pole i obespe4ivat' avtotabulaciu pri perexode v drugoe pole.

Moemu znakomomu, kotoriy zanimaetsa preslovutoy "globalizaciey" sistem dla meynfremov v odnoy iz na6ix off6orno-programmistskix kontor, dla re6enia etix zada4 pri6los' "s nula" napisat' sistemu obrabotki klaviaturnogo vvoda na JavaScripte, perexvativau6uu i interpretiruu6uu najatia otdel'nix knopo4ek (mi takim razvlekalis' na SM-kax v 1983-84 godu:)

3. V otli4ii ot lokal'nix sistem, koli4estvo pol'zovateley kotorix vsegda ograni4eno, i eti pol'zovateli mogut bit' "postroeni" v silu svoey territorial'noy lokalizacii, brauzernimi interfeysami obi4no snabjautsa sistemi udalennogo obslujivania, rass4itannie na potencial'noe ispol'zovanie neograni4ennim krugom, voob6e govora, nedisciplinirovannix lic.

Eto zadaet sover6enno inie trebovania k principam proektirovania sistem (pravda, bol'6e ne k interfeysnoy, a k servernoy ix 4asti), svazannie s avnim videleniem i upravleniem pol'zovatel'skimi kontekstami, i razre6eniem mnogopol'zovatel'skix kolliziy v BD.

Potomu 4to sida6emu neizvestno gde pol'zovatelu ti ne moje6' zapretit' otkrit' formu vvoda i uyti obedat'.

3. V otli4ii ot lokal'nix prilojeniy, brauzernie interfeysi vsegda i principial'no mnogookonni (mnogosessionni), pri4em ideologia etoy mnogookonnosti sover6enno drugaa, nejeli u tipi4nix GUI-prilojeniy - net ponatia modal'nix okon, okna real'no nezavisimi (net vozmojnosti sinxronizirovat' ix soderjimoe), otkrivautsa i zakrivautsa bez kakogo-libo kontrola so storoni servera, i dr. Mnogo problem dobavlaet razrabot4ikam i knopka "Nazad", kotoruu 4asto xo4etsa, no ne vsegda mojno zablokirovat'.

Poetomu u web-prilojenia, kak pravilo, net 4etko virajennogo ponatia "sostoania ispolnenia" programmi i mojno jdat' ot pol'zovatela luboy pakosti.

Etu mnogosessionnost' mojno ograni4ivat' sredstvami servera, iskusstvenno obespe4ivaa ediniy potok upravlenia, no eto privodit k krayne ne intuitivno vedu6im seba prilojeniam.

Rabota s bazami dannix.
Otdel'no nujno skazat' o razli4ii interfeysnix metafor pri rabote s bazami dannix v slu4ae GUI- i WEB-interfeysov.

Kak a uje pisal kogda-to v "Blekse i ni6ite klient-servernix texnologiy", osnovnaa zada4a instrumentaria dla razrabotki lokal'nix (GUI) SUBD-6nix prilojeniy - sdelat' vid, 4to nikakogo klient-servera u nas net, i pol'zovatel' uspe6no rabotaet so svoey nastol'noy SUBD. I na eto orientirovani sootvetstvuu6ie interfeysnie metafori.

V etom smisle WEB -sistema trebuet su6estvenno bolee 4estnoy realizacii ideologii "klient-server", poskol'ku trebuet minimizirovat' koli4estvo obra6eniy k serveru. I metafori "prostini" (grid-a) kotoruu mi neograni4enno listaem vverx-vniz, tut net i bit' ne mojet.

Poetomu ispol'zovanie form zaprosa dla avnoy specifikacii togo, 4to mi xotim polu4it', i neavnie zaprosi putem perexda po svazami polu4ili su6estvenno bolee 6irokoe rasprostranenie, 4em v GUI-prilojeniax. A ob6irnaa vida4a v VEB-e vsegda 4etko narezana na stranici nebol'6ogo ob&ema, s avno virajennoy i dostato4no "tajeloy" operaciey listania. Zato xoro6ey praktikoy stala vida4a informacii o summarnom koli4estve zapisey v polu4iv6eysa viborke...

I v ob6em, viasnilos', 4to ot otsutstvia preslovutoy "prostini" i ponatia "teku6aa pozicia v tablice" nikto osobo ne stradaet. Tak 4to a daje na4al zadumivat'sa - a tak li ona neobxodima daje v nastol'nix prilojeniax?

E6e, kak a pisal vi6e, dla web-sistem nepriemlim "pessemisti4eskiy" podxod, osnovanniy na blokirovkax zapisey, vzatix na redaktirovanie. Mogut ispol'zovat'sa tol'ko "optimisti4eskie" strategii, osnovannie na proverke mnogopol'zovatelskix izmeneniy pri popitke zapisi dannix.

Pri4em etot moment trebuet osobogo vnimania, tak kak su6estvovanie knopki "Nazad", vozmojnost' ostanovki zaprosa na zapis' i popitki povtornogo ego ispolnenia tem je pol'zovatelem gorazdo bolee veroatni, 4em sobstvenno, mnogopol'zovatel'skie kollizii.

Upravlenie kontekstami
Razrabot4iki lokal'nix prilojeniy redko stalkivautsa s ponatiem kontekstov v avnom vide (ono vilezaet tol'ko pri ispol'zovanii nizkourovnevix serverov prilojeniy tipa Taxedo).

V klassi4eskom GUI-prilojenii, kogda kajdiy pol'zovatel' obslujivaetsa otdel'noy kopiey zada4i, kontekst "zamurovan" v nabor dannix i sostoanie ispolnenia (ctek) zada4i.

V slu4ae veb-prilojenia vse pol'zovateli obslujivautsa, kak pravilo, odnoy zada4ey (web-serverom i serverom prilojeniy). I etot samiy server, polu4iv "pinok" ot brauzera, doljen ponat' - 4to delat', i kakoy HTML sgenerirovat' i otdat' etomu brauzeru.

Pri etom on doljen osnovivat'sa kak na informacii, polu4ennoy im v sostave zaprosa (URL,login/parol', parametri, kuki), tak i na nekotoroy predopredelennoy informacii. Eta informacia razdelena, kak pravilo, na ob6uu dla vsex pol'zovateley BD, i oblast' dannix, sozdannuu dla dannogo konkretnogo pol'zovatela, i xrana6uu informaciu, nakoplennuu v xode predistorii ego raboti.

Etu oblast' dannix mi budem nazivat' kontekstom, a period ego su6estvovania - ot momenta vxoda pol'zovatela v sistemu do uni4tojenia konteksta - sessiey. Kontekst identificiruetsa libo po imeni pol'zovatela, pri6ed6emu v sostave zaprosa, libo po special'nomu identifikatoru sessii, kotoriy "gonaetsa'' mejdu brauzerom i serverom libo v parametrax URL (vi navernaka videli pri rabote s raznimi veb-saytami v URL 4to-to tipa session_id=XXXX), libo v kuke.

Su6estvovanie konteksta stavit mnojestvo tonkix voprosov - naprimer, kogda ubivat' sessiu. Obi4no eto delaetsa spusta nekotoroe vrema (taym-aut) posle togo, kak pol'zovatel' perestal proavlat' aktivnost'.

E6e odnu problemu sozdaet nali4ie mnogookonnosti i knopki "nazad". Potomu kak sostoanie okna brauzera, v kotorom pol'zovatel' aktiviruet svoy zapros, mojet okazat'sa sovsem ne takim, kak ojidaetsa, isxoda iz sostoania dannix v ego kontekste. Poetomu inogda posledovatel'nost' jestko ograni4ivaut, peredavaa ne tol'ko identifikator sessii, no i vremennoy 6tamp, obnovlaemiy pri kajdom zaprose, i pri polu4enii "ustarev6ego" 6tampa otkazivaa v obslujivanii zaprosa, i/ili prinuditel'no vozvra6aa pol'zovatela v kontekst, kotoriy sistema s4itaet "teku6im".

No eto privodit k sover6enno neo4evidnomu povedeniu sistemi s to4ki zrenia pol'zovatela, privik6ego k vozmojnosti otkritia mnogix okno i svobodnomu ispol'zovaniu knopki "Nazad", poetomu lu46e vse-taki stroit' sistemu takim obrazom, 4tobi ee povedenie v minimal'noy stepeni opredelalos' kontekstom, a v maksimal'noy - informaciey, polu4ennoy v xode zaprosa, i teku6im sostoaniem BD.

Su6estvuu6ie servera veb-prilojeniy, podderjivau6ie naibolee popularnie texnologii (PHP,ASP,JSP) podderjivaut ponatie sessiy, polnost'u prinimaa na seba upravlenie (sozdanie, otslejivanie, udalenie) kontekstami.

No v avnom vide ponatie sessii nujno ne vsegda - 4asto neobxodimiy kontekst vpolne mojno derjat' v kukax i/ili baze dannix. Skajem, v sisteme razrabotki Communiware sessii v avnom vide voob6e net.

No 4etkoe ponimania konteksta neobxodimo i v etom slu4ae. Poetomu proektirovanie veb-sistem v etom smisle trebuet "vivora4ivania naiznanku" soznania razrabot4ika, privik6ego k GUI, potomu kak ono doljno na4inat'sa s videlenia mnojestva elementarnix operaciy, kotorie mojet sover6at' pol'zovatel', i proektirovania edinogo informacionnogo bloka (konteksta), obespe4ivau6ego vozmojnost' vipolnenia operaciy, i tol'ko potom - proektirovania interfeysa dla sover6enia etix operaciy.

Promejuto4nie varianti
Opisannie vi6e fundamental'nie razli4ia porodili mnogo popitok re6it' ix i s s pomo6'u kakix-to instrumental'nix sredstv programmirovania. Popitki eti 6li po dvum napravleniam, re6au6im, voob6e govora, raznie zada4i.

1. Zamena HTML-interfeysov specializirovannimi agentami (ActiveX, Java-appleti, v kakoy-to stepeni Flash i dr.).

Etot podxod zametno upro6aet programmirovanie knopo4ek, no stalkivaetsa s problemoy sovmestimosti raznix platform (skajem, imenno poetomu ot nego otkazalis' v upominav6emsa mnoy proekte globalizacii). Krome togo, pri etom is4ezaet glavnoe preimu6estvo HTML-intefeysov - ix standartnost' i gibkost', o kotorix mi pogovorim 4ut' dal'6e.

2. Razrabotka bibliotek i serverov prilojeniy, obespe4ivau6ix "translaciu" lokal'nix interfeysov 4erez veb - kak a ix nazval v svoe vrema, "veb - udliniteli". Odnoy iz takix sistem bil Baykonur, s kotorim mne pri6los' plotno porabotat' v konce 90-tix.

Na perviy vzglad, takaa sistema re6ala vse voprosi, kak s texnikoy postroenia interfeysov, tak i s obespe4eniem kontekstov (v bazovom variante na kajdogo pol'zovatela tam 4estno zapuskalas' kopia prilojenia), no blije k delu eto okazalos' illuziey, poskol'ku

- interfeysi i logiku prilojeniy vse ravno prixodilos' proektirovat', u4itivaa ograni4enia VEB-a

- avtomati4eski sformirovannie ekrani polu4autsa nekrasivimi, i ne ispol'zuu6imi preimu6estv HTML-interfeysov.

- izderjki na podderjku mnojestva zapu6ennix polnocennix prilojeniy okazivalis' sli6kom veliki, i vse ravno pri6los' perexodit' na sistemu s edinim serverom prilojeniy i avnim xraneniem kontekstov.

Poetomu mi izna4al'no govorili, i dal'6e budem govorit' o klassi4eskix HTML-interfeysax, kotorie, krome opisannix vi6e problem, predostavlaut nekotorie su6estvennie vozmojnosti i udobstva, na moy vzglad, pereve6ivau6ie vse nedostatki.

Na6a sila - obratnaa storona na6ey slabosti
S moey to4ki zrenia, osnovnim preimu6estvom veb-interfeysov avlaetsa:

- vozmojnost' organi4nogo so4etania aktivnix i passivnix elementov na ekrane,

- razumnoe povedenie izobrajenia pri izmenenii razmerov i formi okna

- i otsutstvie kakix-libo ograni4eniy na koli4estvo aktivnix elementov.

V klassi4eskix GUI-prilojeniax vsegda est' raznica mejdu formoy, otnositel'no prostoy po svoey strukture, no pozvolau6ey aktivno rabotat' s predstavlennimi v ney dannimi, i ot4etom, ustroennim skol' ugodno slojno, no passivnim. V HTML-prilojeniax eto razli4ie niveliruetsa, tak kak upravlau6ie konstrukcii takje opisivautsa tekstom, i takje legko generiruutsa, kak i luboy drugoy tekst.

T.e. v HTML net raznici mejdu formami i ot4etami, i eto, na moy vzglad, fundamental'noe preimu6estvo veb-interfeysov pered GUI, pereve6ivau6ee vse ix nedostatki.

Daje vozmojnost' perexoda ot upominania ob&ekta v lubom kontekste k opisaniu ob&ekta, trivial'naa dla lubogo veb-prilojenia (ssilka), problemati4na dla 6irokomas6tabnoy realizacii v GUI. Ne govora uj o vozmojnosti vstraivania form redaktirovania ob&ektov, kotorie generiruutsa v HTML tak je legko, kak i prosto tekst.

Dalee - bednost' izobrazitel'nix sredstv HTML obespe4ivaet visokiy uroven' standartizacii prilojeniy (pol'zovatel' polu4aet edinoobrazniy interfeys), i su6estvenno ograni4ivaet vozmojnost' avtorskix iziskov, kotorie 4a6e idut vo vred, 4em vo blago.

V to je ograni4ennost' sredstv, kak pravilo, stimuliruet tvor4eskoe voobrajenie, pozvolaa razrabot4iku sosredoto4it'sa na suti. Primerom etogo avlaetsa poezia, gde iskusstvennie ograni4enia na poradok i koli4estvo slogov i ix sozvu4nost' ne prepatstvuut sozdaniu velikix proizvedeniy, pri4em v klassi4eskoy, rifmovannoy forme ix gorazdo bol'6e, 4em v janre belogo stixa, gde eti ograni4enia snati.

Andrey Akopanc
andrey@akop.ru
http://akop.ru/

3
Создание эксклюзивных сайтов, юзибилити анализ и бесплатный анализ под запросы основных поисковых машин
Контактная информация :
тел. +7(812) 984 5721

Написать письмо на e-mail
icq 415547094  romverрейтинг на mail.ru сайта romverinbox.ru
© 1997 - 2020 romver.ru

Полная карта сайта Display Pagerank