Namai Pirmyn mąstymas Grąžinti kliento-serverio kompiuterį?

Grąžinti kliento-serverio kompiuterį?

Video: How to Enable Mods on the Xbox (Beta) App for Windows 10 | Xbox Game Pass PC (Lapkritis 2024)

Video: How to Enable Mods on the Xbox (Beta) App for Windows 10 | Xbox Game Pass PC (Lapkritis 2024)
Anonim

Vienas iš dalykų, kurie pastaruosius kelis mėnesius man pasirodė įdomūs vystymosi pasaulyje, yra tai, kaip šiuolaikinės programos grįžta į tai, kad daugiau intelekto būtų kliento, o ne serverio. Aišku, kliento ir serverio modelis nėra naujas dalykas: tai tradicinių programų kūrimo būdas, kuomet turtingos kliento programos bendrauja su serverio programomis. Tačiau interneto ir net „Web 2.0“ eroje dėmesys buvo nukreiptas į žiniatinklio programas, kuriose didžioji dalis intelekto buvo skirta žiniatinklio serveriui (paprastai „Java“ pagrindu sukurtiems programų serveriams), o klientas buvo tik paprastas interneto puslapis naršyklę, kurioje kaskart spustelėdami įkeldavote naują puslapį.

Tačiau pastaruoju metu HTML5, CSS ir ypač „Java“ brandinimas skatina kūrėjus pateikti realų intelektą ir realų apdorojimą pačiame tinklalapyje. Visų pirma, mes pastebėjome, kad atsirado įvairių kliento „Java“ pagrindu sukurtų sistemų, kurios palengvina intelektualių paslaugų gairių, visiškai veikiančių šiuolaikinėje interneto naršyklėje, kūrimą. Paprastai naudojamos naršyklės, pagrįstos „Webkit“ varikliu, įskaitant „Chrome“ ir „Safari“, tačiau panašu, kad dauguma programų veikia gerai ir dabartinėse „Firefox“ bei „Internet Explorer“ versijose. Pabaigoje sukuriate sudėtingesnį tinklalapį, kuris keičiasi dinamiškai, prireikus paimdamas duomenis iš serverio.

Atrodo, kad daugiausia dėmesio sulaukia trys MVC sistemos: „Backbone.js“, „Ember.js“ ir „Angular.js“. (MVC reiškia modelio vaizdo valdiklį - tai iš esmės yra interneto kliento skaičiavimo architektūra. „Js“ reiškia „JavaScript“.) Iš esmės tai yra visas AJAX (asinchroninis „JavaScript“ ir XML) požiūris, populiarus per pastarąjį dešimtmetį arba taip, bet tampa daug brandesnis ir beveik standartizuotas. Idėja yra įtraukti daugiau naršyklės būsenos ir žvalgybos duomenų, tada naršyklę sujungti su REST API serverio pusėje.

„Stuburas“ yra bene pats paprasčiausias ir minimaliausias iš šių rėmų; daugelyje populiarių svetainių jis yra įpratęs įvairiais būdais. „Ember“ išaugo iš „Sproutcore“ sistemos, kurią palaikė „Apple“, ir yra daug išsamesnė sistema, skirta leisti naudoti darbalaukio stiliaus programas. Jis dažnai naudojamas su „Bootstrap“ - HTML ir CSS šablonų rinkiniu, kurį iš pradžių sukūrė „Twitter“ darbuotojai. Kampas yra „Google“ alternatyva, kuri, atrodo, yra kažkur tarp jų - kai kurie žmonės mano, kad ji yra šiek tiek lankstesnė ar bent jau „mažiau vertinama“ nei „Ember“, bet išsamesnė nei „Nugara“. (Atkreipkite dėmesį, kad „Google“ verčia kūrėjus naudoti kampinį, kad pagerintų kodavimo kokybę, tačiau viduje iš tikrųjų naudoja skirtingą patentuotą sistemų rinkinį.) Net „Microsoft“ pridėjo kablius „Visual Studio“ šioms sistemoms.

Tai žiniatinklis, yra dešimtys alternatyvų. Vienas iš įdomesnių, apie kuriuos pastaruoju metu girdėjau, yra „Meteor“, skirtas dirbti su „JavaScript“ tiek kliento, tiek serverio pusėse. Bet tai dar labai anksti ir aš dar nežinau jokių realių vartotojų. Tuo tarpu daugiau kūrėjų žaidžia su „Node.js“, dažnai naudojamais serverio „Java“ diegimui.

Tokių sistemų pranašumas atrodo akivaizdus. Turtingos žiniatinklio klientų programos yra galingesnės nei plonos kliento programos, kur viskas veikia serveryje, jos gali suteikti geresnę vartotojo sąsają ir suteikti galimybę naudotis neprisijungus prie interneto. Naudodamiesi šiomis sistemomis, kurdami turtingas interneto klientų programas galite kur kas greičiau nei galėtumėte, kurdami viską nuo nulio, ir pasinaudokite aplink kiekvieną iš jų besivystančiomis bendruomenėmis.

Galbūt svarbiausia, kad galite sukurti įvairiems įrenginiams pritaikytas mobiliąsias programas, nerašydami konkrečių vietinių programų. Vis dar yra geras argumentas, kuris turi būti pateiktas vietinėms programoms, kurios gali tiesiogiai atsižvelgti į specifines kiekvienos platformos ypatybes. Tačiau daugybė kūrėjų nustatė, kad tokios sistemos gali smarkiai paspartinti kelių platformų plėtrą, ypač kai jos naudojamos kartu su tokiais dalykais kaip „PhoneGap“ - atvirojo kodo mobilioji programa, kurią įsigijo „Adobe“ ir kuri yra atiduota „Apache Cordova“ projektui.

Žinoma, mobiliesiems telefonams yra savų apribojimų, įskaitant procesorių greitį, o galbūt dar svarbiau - greitis, o kartais ir ryšio nebuvimas. Viena iš priežasčių, kodėl žmonėms patinka programos per tinklalapius, yra ta, kad dažnai naudodamiesi „Wi-Fi“ arba greitu ryšiu galite atsisiųsti pagrindines funkcijas ir tiesiog gauti reikiamus duomenis, o ne visą dizainą. Tokie paketai kaip „PhoneGap“ išsprendžia šią problemą įvesdami „JavaScript“ į atsisiųstą programą.

Tačiau yra ir kitų su tokiomis sistemomis susijusių problemų. Iš esmės atlikdami daugiau skaičiavimų kliento pusėje, padidėja sudėtingumas, palyginti su paprasta programa, skirta tik serveriui, ir iš tikrųjų kai kurie senojo kliento-serverio modelio trūkumai yra svarbūs. Kūrėjai turi valdyti abi šalis. Kodas dviejose vietose reiškia, kad reikia sutelkti dėmesį į saugumą abejose vietose. Kadangi kūrimo komandoje dažnai vieni dirba su klientu, kiti - serveryje, kyla papildomų komunikacijos problemų. Kita vertus, kai kurie senesni kliento-serverio numeriai negrįžta, o jūs išsaugote žiniatinklio programinės įrangos pranašumus. Tai yra daug daugiau standartų, bendruomenių valdomas pasaulis, todėl jūs nesate priklausomi nuo vienos patentuotos aplinkos. Padaliję kliento ir serverio dalis, galite gauti ir švaresnį, paprastesnį serverio diegimą, kuris tiesiog apdoroja, o ne UI, todėl gali prireikti mažiau išteklių. Tačiau jūs vis dar turite pranašumą, kad galėsite atnaujinti visus klientus vienu metu, nes paprastai naršyklė įkelia kodą iš serverio, kai yra suaktyvinta programa.

Mes aiškiai matome žingsnį link intelektualesnių interneto klientų - ne kiekvienu atveju, bet su daugeliu naujų programų. Daug sunkiau priimti senesnes programas ir perkelti jas į šį modelį, tačiau matome ir kai kurias iš jų. Tai nėra gana senas kliento-serverio modelis, tačiau jis daug arčiau.

Grąžinti kliento-serverio kompiuterį?