Ktorý server použiť pre mobilnú aplikáciu. Vývoj mobilného klientskeho servera

Ktorý server použiť pre mobilnú aplikáciu.  Vývoj mobilného klientskeho servera
Ktorý server použiť pre mobilnú aplikáciu. Vývoj mobilného klientskeho servera

488 Časť IV. Ajax v príkladoch

robotov a zavolá server, ktorý dynamicky vytvorí údaje odpovede na základe odoslanej hodnoty reťazca dotazu. Prvý parameter funkcie LoaciXMLXSLTDoc() je adresa URL stránky PHP, ktorá generuje dokument XML kombinovaný s reťazcom dotazu vygenerovaným odkazom na hodnoty poľa HTML formulára O. Druhým parametrom je názov poľa XSLT súbor použitý pri transformácii XML údajov. Tretím parametrom požadovaným funkciou LoadXMLXSLTDoc() je ID prvku div, do ktorého by sa mali umiestniť výsledky vyhľadávania. Identifikátor je názov reťazca výstupného prvku, nie odkaz na objekt; v tomto prípade sa ako identifikátor použije reťazec „výsledky“.

V ďalšej fáze používame metódy DOM na pridanie obrázka indikátora na webovú stránku. Vytvorí sa prvok obrázka © a atribút zdroja obrázka sa nastaví na O. Tento vytvorený prvok sa pridá do div © výsledkov. Týmto spôsobom, keď sa naša funkcia volá z obsluhy udalosti onsubmit formulára, na stránku sa umiestni súbor s obrázkom. Vo všeobecnosti je dôležité, aby používateľ vytvoril vizuál spätná väzba- správa alebo obrázok - označujúci, že prebieha spracovanie. Používateľ tak nebude opakovane klikať na tlačidlo odoslania handicapu v domnení, že sa nič nedeje (pamätajte, že proces Ajax je „tichý“ proces).

Posledným krokom je zavolanie funkcie LoadXMLXSLTDoc()®, ktorá spustí proces odosielania informácií na server. Funkcia LoadXMLXSLTDoc() opísaná v časti 12.4 spracováva volanie objektu ContentLoader(), ktorý požaduje dokumenty zo servera. Zadaním výstupnej pozície ako parametra (namiesto pevného kódovania hodnoty vo funkcii LoadXMLXSLTDoc()) môžeme znova použiť túto funkciu na jednej strane, netreba oddeľovať funkčnosť pridanie viacerých procedúr alebo príkazov if. Preto presmerujeme výsledky rôznych vyhľadávacie dopyty do rôznych častí stránky. Predtým, ako to urobíme, sa však pozrime, ako vytvoriť dokumenty XML a XSLT na serveri.

12.3. Kód aplikačného servera: RHP

IN V tejto časti vytvoríme dynamiku XML dokument využívajúci PHP, populárny open-source skriptovací jazyk zdrojový kód(ako viete, Ajax framework je kompatibilný s akýmkoľvek jazykom alebo platformou na strane servera). Dokument XML sa generuje dynamicky zo sady výsledkov vrátenej ako odpoveď na dotaz klienta do databázy. Okrem toho si ukážeme, ako vytvoriť statický dokument XSLT, ktorý sa nachádza na serveri a načíta sa vždy, keď sa požaduje dynamický súbor. Oba špecifikované dokumenty sa vracajú klientovi nezávisle, keď je objekt ContentLoader vyžiadaný v dvoch samostatných požiadavkách (Výpis 12.7). Kód XSLT transformuje náš dynamický dokument XML na strane klienta a vytvorí tabuľku HTML, ktorá sa zobrazí používateľovi.

Kapitola 12 Živé vyhľadávanie pomocou XSLT 489

12.3.1. Vytvorenie dokumentu XML

Keďže používame XSLT, potrebujeme štruktúrovaný dokument XML, ktorý reprezentuje jednoduchý vstup informácie, aby súbor XSL mohol vykonávať štandardnú transformáciu. IN tento projekt vytvoríme dynamický XML súbor, keď klient požaduje PHP súbor.

Vývoj štruktúry XML

Predtým, ako začneme vytvárať XML súbor, musíme preň vytvoriť šablónu. Tento vzor by mal odrážať štruktúru údajov vrátených vyhľadávaním. Vo zvolenom výpise problému (telefónnom zozname) vrátime názov spoločnosti, kontaktné meno, krajinu a telefónne číslo. Výpis 12.3 zobrazuje základnú šablónu XML obsahujúcu štyri polia.

Výpis 12.3. Základný súbor XML

meno spoločnosti Kontaktné meno Názov krajiny Telefónne číslo

Prvým prvkom je telefónny zoznam. Ďalším je vstupný prvok obsahujúci podprvky so všetkými podrobnosťami, ktoré sú priradené k všetkým kontaktné čísla, nájdete v žiadosti. Ak máme päť výsledkov, v dokumente XML bude päť vstupných prvkov. Názov spoločnosti sa zobrazí v prvku spoločnosti. Okrem toho sme pridali kontaktné meno, názov krajiny a telefónne číslo. Nie sme obmedzení len na špecifikované polia; V závislosti od toho, aké informácie je potrebné zobraziť, je možné polia pridať alebo odstrániť.

Ak sa nenájdu žiadne výsledky, môžete namiesto zobrazenia varovnej správy vytvoriť prvok, ktorý zobrazí tieto informácie používateľovi. STO nám uľahčí vrátenie výsledku používateľovi a nebude vyžadovať dodatočný kód v klientskej časti aplikácie. Kód vo výpise 12.4 je v podstate rovnaký ako kód vo výpise 12.3, ale tentoraz zadávame text do prvkov XML, ktoré chceme zobraziť používateľovi, aby sme naznačili, že sa nenašli žiadne výsledky.

Výpis 12.4. Súbor XML bez výsledkov

Žiadne výsledky

// О Namiesto názvu spoločnosti sa zobrazí "No R e s u l t s". N/A

490 Časť IV. Ajax v príkladoch

// © Namiesto zostávajúcich polí sa zobrazí „N/A“.

N/A

N/A

Pomocou tohto kódu zobrazíme používateľovi jeden riadok, ktorý indikuje, že požadované informácie nie sú dostupné. Rukoväť spoločnosti O zobrazuje informáciu, že neexistujú žiadne výsledky. V iných deskriptoroch 0 hovorí používateľovi, že neexistujú žiadne informácie. Ak nechceme zobrazovať text „N/A“ („not available“), môžeme ho pridať neprerušiteľný priestor, ktorý zobrazí bunky tabuľky. Ak by sme nepridali vôbec žiadne informácie, bunky by sa v tabuľke nezobrazili.

Ako vidíte, formát XML má veľmi jednoduchú štruktúru. Ak tento súbor XML bol statický, pre používateľa by bolo relatívne jednoduché pridať do súboru nového predplatiteľa. Keďže sa vytvára dynamicky, budeme potrebovať slučku, ktorá vytvorí XML dokument z výslednej sady.

Vytvorenie dynamického XML dokumentu

Ako vždy vytvárame XML dokument na serveri. Pri dodržaní zásady používania rôznych jazykov na strane servera v príkladoch je kód na strane servera pre túto kapitolu napísaný v PHP. Pripomeňme ešte raz, že infraštruktúra Ajax môže byť vytvorená pomocou akéhokoľvek jazyka na strane servera a popíšeme len samotný princíp implementácie serverového kódu bez toho, aby sme zachádzali do detailov. Výpis 12.5 teda zobrazuje kód pre serverovú stranu aplikácie. Kód preberá parameter reťazca dotazu a generuje viacero výsledkov dotazu na databázu. Potom iterujeme cez množinu výsledkov a vytvoríme prvok v súbore XML podľa šablóny uvedenej vo výpise 12.4 pre každé telefónne číslo vrátené ako odpoveď na dotaz.

Výpis 12.5. Skript phoneXML.php: generovanie XML dokumentu na serveri

// O Deklarujte typ MIME header("Typ obsahu: text/xml"); echo("\n");

// © Pripojte sa k databáze

$db = mysql__connect("localhost", "ajax", "akcia"); rnysql_select_db("ajax",$db);

$vysledok = mysql_query("SELECT *

FROM Contacts WHERE ContactName ako "%". // © Vyplňte požiadavku

$_GET["q"] ."%"",$db); ?>

// O Skontrolujte výsledky

if ($myrow = mysgl_fetch_array($result)) ( do (

// © Prejdite si viacero výsledkov

Kapitola 12. Živé vyhľadávanie pomocou XSLT 491

001">

)pričom ($myrow - mysql_fetch_array($result)); )inak(

telefónny zoznam alebo zobrazíme správu „Žiadne výsledky“ 0.

12.3.2. Vytvorenie dokumentu XSLT

Pomocou XSLT možno náš súbor XML premeniť na krásnu tabuľku HTML s niekoľkými riadkami kódu. Dokument XSLT umožňuje v prípade potreby porovnávanie vzorov na zobrazenie údajov v akomkoľvek požadovanom formáte. Pri porovnávaní šablón sa na zobrazenie údajov používa štruktúra šablóny. Zároveň prechádzame uzlami stromu

492 Časť IV. Ajax v príkladoch

zdroj wa pomocou XSLT. Dokument XSLT má štruktúrovaný súbor XML a transformuje ho do formátu, ktorý sa dá ľahko prezerať, aktualizovať a meniť. V našom prípade je XSLT dokument definovaný staticky.

XSLT štruktúra

Transformácia XSLT obsahuje pravidlá na preklad zdrojového stromu do cieľového stromu. Celý proces XSLT je o porovnávaní so šablónou štruktúry. Keď sa prvky zdrojového stromu zhodujú so zadanou štruktúrou, cieľový strom sa vytvorí podľa šablóny dokumentu.

Štruktúra konečného stromu nemusí súvisieť so štruktúrou pôvodného stromu. Preto je možné pôvodný súbor XML previesť do akéhokoľvek požadovaného formátu. Nie je potrebné používať iba tabuľkové znázornenie súboru údajov.

Transformácia XSLT sa nazýva šablóna štýlov, pretože definuje štýl výsledného stromu. Šablóna štýlov obsahuje pravidlá šablóny, ktoré majú dve časti. Prvou časťou je šablóna štruktúry, s ktorou sa porovnávajú uzly zdrojového stromu. Po nájdení zhody XSLT procesor použije druhú časť - šablónu obsahujúcu deskriptory na zostavenie zdrojového stromu.

Vytvorenie dokumentu XSLT

Generovanie transformácie XSLT pre tento projekt je pomerne jednoduché. Keďže ideme získať tabuľku, nie je potrebná žiadna ozdobná zhoda vzorov; jednoducho postupne prejdeme všetky uzly prvkov zdrojového stromu. Nižšie navrhneme šablónu, ktorá vygeneruje HTML tabuľku so štyrmi stĺpcami. Zodpovedajúci súbor XSLT pre tento projekt je uvedený vo výpise 12.6.

i Výpis 12.6. súbor XSLT

"ISO-8859-l"?>

// О Nastavte verziu XML a kódovanie

// © Nastavte menný priestor XSLT"http://www.w3.org/1999/XSL/Transform">

// © Nastavte pravidlá šablóny

// O Pridanie prvku tabuľky

// © Vytvorte riadok nadpisu

Kapitola 12 Živé vyhľadávanie pomocou XSLT 493

// 0 Postupne prechádzať prvkami telefónneho zoznamu

select="phonebook/entry"> // © Formátovať výstup

Spoločnosť Kontakt Krajina Telefón

Pri vytváraní transformácie XSLT musíte zadať kódovanie a verziu XML a určiť priestor názvov XSLT. Menný priestor definuje pravidlá a špecifikácie, ktorým musí dokument vyhovovať. Prvky v priestore názvov XML sú rozpoznané v zdrojovom dokumente, ale nie sú rozpoznané v dokumente s výsledkami. Predpona xsl sa používa na definovanie všetkých našich prvkov v mennom priestore XSLT. Ďalej môžete vytvoriť pravidlo vzoru - vyhľadajte štruktúru / ©, ktorá sa zhoduje s celým dokumentom.

Teraz môžeme začať vytvárať šablónu tabuľky, ktorá zobrazuje naše výsledky. Pridáme tabuľku deskriptorov O, ktorá mapuje identifikátor do tabuľky. Potom sa zadá riadok hlavičky © tabuľky, ktorý obsahuje názvy stĺpcov, ktoré používateľovi indikujú, aké informácie obsahuje tabuľka.

Postupným prechodom cez mnohé uzly zdrojového stromu získame zvyšné riadky tabuľky. V tomto prípade sa používa slučka for-each ©, ktorá v procese spracovania záznamov vytvára uzly umiestnené v telefónnom zozname/zázname.

Keď prechádzame stromom dokumentu, musíme vybrať hodnoty stĺpcov. Na výber hodnôt z uzlov sa používa operátor value-of, ktorý extrahuje hodnotu prvku XML a pridá ju do výstupného toku transformácie. Nastaviť XML element, ktorého text chceme extrahovať, použijeme atribút select s názvom prvku. Po vygenerovaní súboru XSLT a vytvorení kódu na dynamické generovanie dokumentu XML môžete dokončiť vytváranie kódu JavaScript a uvidíte, ako kombinácia transformácie XSLT so štruktúrovaným súborom XML vytvára prehľadnú tabuľku.

Ďalší krok nás zavedie späť na stranu klienta a získame súbory, ktoré boli práve vytvorené pomocou odpovede HTTP.

Naša spoločnosť ponúka služby pre tvorbu serverovej časti mobilných biznis aplikácií a klientskych webových služieb pracujúcich vo vysoko zaťažených prostrediach. Pri vývoji každého projektu sa snažíme o individuálny prístup, aby sa výsledný produkt stal čo najviac optimálne riešenie konkrétne ciele zákazníka.

Ak používate komplexnú aplikáciu, ktorá ukladá a/alebo spracováva dáta na serveri, potom je za tým Back-end - softvérový balík, ktorý je umiestnený na webovom serveri a beží na ňom aplikácia, ktorá sa v tomto prípade nazýva Front-end. Aplikácia hosťovaná na serveri môže bežať súčasne s veľké množstvo zákazníkov, ktorá kladie požiadavky na vysoká rýchlosť a bezpečnosť jeho prevádzky.

Často je napísaná serverová strana aplikácie jazyk PHP, ako najobľúbenejšie pre takéto riešenia. Môže byť použitý na implementáciu jednoduchých serverových úloh štandardné systémy, no pre konkrétnejšie je už potrebné vyvinúť vlastné riešenie alebo nadstavby nad štandardné systémy.

Princípy vývoja servera pre mobilnú aplikáciu

Naši programátori pracujú s technológiami, ktoré nám umožňujú realizovať širokú škálu riešení pre akúkoľvek, aj veľmi vysokú záťaž a rôzne oblasti. Pre jednotlivé úlohy vytvárame aj samostatné serverové riešenia.

Organizačná kontrola

Každý projekt vytvára samostatná skupina špecialistov zodpovedných za všetky fázy vývoja a dodanie projektu načas.

Programovanie

Návrh architektúry servera je najdôležitejším krokom, počas ktorého sa vytvárajú databázy a vytvárajú potrebné algoritmy.

Testovanie

Softvérová časť musí fungovať bez chýb a porúch. Práve za to sú zodpovední testeri, ktorí kontrolujú systém.

Technická podpora

Naši zamestnanci poskytujú programom plnú technickú podporu, ktorá vám umožňuje rýchlo odstrániť nedostatky a vykonať aktualizácie.

Funkcie vývoja

Na kompetentný vývoj serverovej strany aplikácie sú potrebné určité zručnosti a znalosti programovacieho jazyka používaného na serveri. Ako ukazuje prax, aplikácie klient-server sú vytvorené v PHP. Je nesporným lídrom v tejto oblasti. Viac ako polovica webových stránok na svete je napísaná v PHP, čo je vhodné na vývoj a podporu.

Rámec

Táto softvérová platforma vám umožňuje urobiť projekt škálovateľnejším a flexibilnejším. Rámec však musí byť zvolený čo najsprávnejšie, preto je potrebná hĺbková analýza pracovnej dokumentácie projektu, ktorá následne pomôže vyvinúť kvalitný produkt.

Na vývoj back-endu sa používajú aj iné jazyky. Napríklad serverové aplikácie vytvorené v Prostredie Delphi. Vďaka tomu program zlepšil ladenie. Okrem toho sa ľahšie rozvíja jedinečné programy, zahŕňa vizuálnu tvorbu. To všetko nám umožňuje vytvoriť jasné a pohodlné rozhranie.

Serverové aplikácie v jazyku Java sú nemenej populárne. Dajú sa jednoducho rozširovať, dajú sa jednoducho spúšťať na rôznych platformách a majú vysokú úroveň zabezpečenia.

Ďalší často používaný jazyk. S jeho pomocou sa serverové aplikácie vytvárajú jednoducho, rýchlo a bez ďalších nákladov.

Takmer všetky moderné spoločnosti majú svoje vlastné virtuálne kancelárie. Webová stránka môže byť buď vizitkou, alebo portálom či online katalógom s možnosťou zadávania objednávok.

Obchodné procesy v tomto prípade závisia od webových serverov, konkrétne od ich schopnosti odolávať útokom, pokusom o hackovanie a vonkajších negatívnych vplyvov, ako aj od výkonu postačujúceho na množstvo súčasne akceptovaných požiadaviek.

Etapy vývoja webových služieb

Vytváraním aplikácií pre rôzne segmenty trhu organizujeme našu prácu podľa jediný princíp– celý proces rozdeľujeme na samostatné kroky, ktorých priebeh a výsledky komunikujeme so zákazníkmi. Teda server pre mobilná aplikácia sa vyvíja podobne.

1. Vývoj nápadu

Do 2 týždňov

V tejto fáze sa vytvorí základ, ktorý dáva predstavu o tom, čo bude stanovené a akým smerom sa bude rozvíjať.

2. Hodnotenie projektu

2-3 týždne

Naši špecialisti posúdia načasovanie a náklady na prácu a potom vypracujú predbežný návrh týkajúci sa vývoja.

3. Podmienky a zmluvné podmienky

Do 2 týždňov

Po prerokovaní všetkých nuancií procesu so zákazníkom a vypracovaní podrobnej technickej špecifikácie je pripravená a podpísaná zmluva.

4. Vývoj rozhrania

2-3 týždne

Vytváranie rozhraní potrebných pri písaní softvérové ​​moduly, dizajnéri sú zapojení.

6. Testovanie

2-3 týždne

Komplexné overovanie prijatého softvérové ​​riešenie vyrobené testermi pomocou súboru vhodných nástrojov.

7. Dokončenie projektu

Do 2 týždňov

V dohodnutom termíne je zákazníkovi dodaná hotová, dôkladne otestovaná webová služba.

náš tím

Analýzou obchodných aktivít a potrieb našich klientov vytvárame skutočne fungujúce produkty, ktoré pomáhajú riešiť celý rad obchodných problémov. Použitie moderné technológie poskytuje širokú škálu možností implementácie serverového softvéru, ktorý zaručuje vysoký výkon príslušných mobilných aplikácií. Náš tím reprezentujú:

Projektoví manažéri

Títo zamestnanci komunikujú s klientmi aj vývojármi a zabezpečujú komunikáciu medzi nimi. Monitorujú implementáciu už plánovaných akcií a potrebných zlepšení.

Dizajnéri

Naši špecialisti pri svojej práci zohľadňujú požiadavky na budovanie rozhraní operačných sál systémy iOS a Android, takže vydané aplikácie fungujú správne na rôznych zariadeniach.

Vývojári

Aby sa optimalizoval výkon mobilných aplikácií, programátori ich analyzujú Požiadavky na systém a vytvoriť špecializovaný serverový softvér.

Testeri

Dôkladné testovanie je kľúčom ku kvalite hotového produktu a zaručuje bezpečnosť uložených a spracovávaných údajov. Títo špecialisti používajú rôzne nástroje a účinné techniky.

Aké služby vytvárame?

Zabudovanie do softvéru webovej stránky resp nezávislý program, webová služba používaná na vykonávanie úloh súvisiacich s reklamou, analýzou, obchodným plánovaním a propagáciou. V tejto súvislosti je potrebné rozhodnúť, aký typ zdroja bude optimálnym riešením.

Informačné projekty

Navrhnuté tak, aby vyhovovali rôznorodému obsahu.

Tematické stránky

Takmer všetky ich stránky sú venované rovnakej téme. Dopyt po nich je stále dosť vysoký.

Spravodajské stránky

Informujú o rôznych novinkách v rámci jednej alebo viacerých tém, odzrkadľujúcich hlavné oblasti života.

Blogy

Popularita týchto zdrojov neustále rastie. Podobne ako spravodajské stránky sprostredkúvajú internetovej komunite tú či onú informáciu, no v tomto prípade autori vyjadrujú svoje osobné názory.

Sociálne projekty

Patria sem špecializované sociálne služby. siete, komunity, fóra atď.

fóra

Vytvorené na diskusiu o rôznych novinkách, produktoch/službách atď. Môžu byť úzko zamerané a rôznorodé.

Sociálne médiá

Tieto zdroje majú mnohomiliónové publikum. Ich hlavnou úlohou je poskytnúť používateľom internetu možnosť komunikovať online prostredníctvom textových/ hlasové správy a video komunikácie.

Rôzne webové služby

Dnes sú rozšírené a delia sa na niekoľko typov.

Katalógy

Poštové služby

Poskytnite používateľom všetky funkcie a výhody e-mailu vrátane prezerania, odosielania, úpravy listov a dokumentov atď.

Vyhľadávače

Používa sa na vyhľadávanie stránok a rôzne informácie pre určité požiadavky.

Nástenky

Sú to webové zdroje, kde používatelia siete uverejňujú svoje reklamy na nákupy, predaje a služby v rámci rôznych tém.

Hosting stránok

Určené na dočasné ukladanie súborov. Niektoré z nich poskytujú možnosť skontrolovať údaje pred stiahnutím.

FAQ

Nižšie uvádzame odpovede na otázky, ktoré často kladú naši odborníci. Ak tu nenájdete informácie, ktoré vás zaujímajú, položte svoju otázku tu. formulár, a my na to určite odpovieme.

Ako dlho môže trvať vytvorenie aplikácie a webového servera?

V priemere táto práca trvá od 9 do 20 týždňov. Všetko závisí od zložitosti vykonávanej úlohy.

Offline je minulosťou, byť online je dnes nevyhnutnosťou. Aspoň pre moderný svet podnikania. Prezentácie značkových produktov a služieb, online objednávanie a doručovanie, udržiavanie zákazníckej základne, komunikácia s klientmi a mnoho ďalšieho – to všetko je jednoducho nemožné bez online prítomnosti. Ak potrebujete aplikáciu, musíte mať front-end (webové rozhranie) aj back-end (serverová strana vašej aplikácie). A ak chcete mať možnosť upravovať obsah svojej aplikácie bez zapojenia vývojára, budete potrebovať dobrý panel správcu.

Kým Front-end v oblasti mobilných aplikácií je vytvorený pomocou technológií ako X-Code a Java, Back-end, kde bude uložená databáza a celá aplikačná logika, vyžaduje odborné znalosti programovací jazyk na strane servera. Dobrým príkladom je PHP, čo je snáď najpopulárnejší programovací jazyk používaný na vývoj takmer akéhokoľvek backendu. Toto je nesporný vodca.

Existuje mnoho oblastí použitia PHP: statické a dynamické webové stránky + vlastné redakčné systémy, sociálne médiá, špecializované CRM systémy, softvér pre elektronický obchod a oveľa viac. Samozrejmosťou sú bezplatné alebo lacné serverové diely a ovládacie panely. V mnohých prípadoch však neposkytujú potrebnú úroveň pohodlia, prispôsobenia a upgradovateľnosti.

Naši programátori pracujú s technológiami, ktoré nám umožňujú implementovať širokú škálu riešení pre rôzne obchodné ciele, potreby a požiadavky. Individuálne analyzujeme systémové požiadavky pre každý projekt a aplikujeme rôzne špecializované serverové softvéry pre optimálny výkon vašej mobilnej aplikácie.

Ak hľadáte tím, ktorý vás dovedie k najinteligentnejšiemu a najefektívnejšiemu riešeniu na vytvorenie aplikácie od začiatku alebo prebudovanie existujúcej aplikácie pre dokonalý používateľský zážitok, už nehľadajte. Appsmob je pripravený pomôcť vám nájsť pre vás najlepšie riešenie.

ZÁLOHY

Prečo potrebujete zálohy na mobilnej platforme?

Odborníci vedia, aké nespoľahlivé sú niekedy mobilné aplikácie na 1C: kedykoľvek sa môžu vyskytnúť chyby, v dôsledku ktorých budú databázy používateľov jednoducho zničené. Zároveň sa stretávame s nespoľahlivosťou samotných zariadení: môžu sa rozbiť, stratiť, ukradnúť a používatelia si chcú svoje dáta zachrániť. A až do verzie 8.3.9 sme nemali platformový mechanizmus na ukladanie záloh.

Keďže používatelia predtým nemali tlačidlo „uložiť kópiu“, vývojári aplikácie Boss museli zálohovať sami. Ako sa nám to podarilo?

Samotné dáta databázy ukladáme vo forme XML.

Odporúča sa ponúknuť používateľovi niekoľko možností na ukladanie kópií - v prvom rade je to výhodné pre klientov, môžu si vybrať najlepšiu možnosť pre seba: nahrať do cloudu, poslať na svoj e-mail, uložiť na svojom zariadení.

Developeri sa tak dodatočne poisťujú. Ak sa niečo pokazí a zrazu sa pokazí mechanizmus vytvárania kópií na Disku Google alebo na disku Yandex, vždy môžete používateľovi povedať, že tento moment vývojár sa s chybou zaoberá, ale zatiaľ môže dáta uložiť alternatívny spôsob. A používatelia sú spokojní, pretože si môžu byť istí svojimi údajmi.

Nevyhnutne treba sa zamerať na cloudové služby, pretože ak dôjde k strate alebo poškodeniu zariadenia a používateľ uloží kópiu na tom istom zariadení, údaje sa stratia.

Aj my Používateľovi určite pripomíname potrebu vytvárania záloh.

Ako uložiť kópie, ak sa konfigurácia zmení?

Keď hovoríme o masovom riešení, aplikácii, ktorá sa neustále mení, vyvíja a zdokonaľuje, musíme brať do úvahy správanie zákazníkov. Používateľ môže chcieť obnoviť zálohu uloženú v stará verzia aplikácie, kde neboli žiadne podrobnosti. A potom vyvstáva úloha: načítať údaje, potom vyplniť údaje podľa logiky aktualizácie zo starej verzie aplikácie. Ako to spraviť? Okrem údajov si uložte aj samotnú štruktúru údajov, aby ste ju neskôr vedeli čítať.

Existuje niekoľko možností na uloženie tejto dátovej štruktúry, vrátane uloženia v samotnej konfigurácii. To znamená, že pri vydaní každej novej verzie zachovajte štruktúru metadát predošlá verzia v rozložení v konfigurácii.

Netreba zabúdať, že v mobilnej aplikácii by konfigurácia nemala jednoducho rásť, musíme si vážiť priestor v nej, musíme ju urobiť čo najkompaktnejšou. Ale aplikácia sa vyvíja a takýchto rozložení bude veľa a časom ich bude stále viac.

Preto je v prípade mobilnej aplikácie vhodnejší iný spôsob - uložiť štruktúru metadát priamo v dátovom súbore. Na výstupe dostaneme tento súbor, kde najskôr uložíme nejaké pomocné dáta - verziu konfigurácie, konfiguračný diagram, hranice sekvencie a následne zapíšeme samotné užívateľské dáta do XML formát. Okrem toho v časti súboru „Auxiliary Data“ môžete uložiť aj ďalšie dôležité údaje, ktoré z nejakého dôvodu nebolo možné zapísať do XML.

Zoberieme dátovú schému, ktorú sme uložili do súboru, a na základe nej zostavíme balík XDTO na čítanie súboru. V databáze vytvoríme podobný objekt, naplníme ho, vykonáme dodatočné spracovanie pri aktualizácii a hotový objekt uložíme do databázy.

Nižšie na obrázku môžete vidieť nápovedu, ako krásne napísať XDTO model konfiguračných údajov. Spoločnosť, ktorá vydala aplikáciu Boss, s tým experimentovala, našla niekoľko spôsobov, ale rozhodla sa pre túto konkrétnu možnosť zaznamenávania schémy metadát. Keď sa otvorí samotný dátový súbor, môžete vidieť obvyklý štruktúrovaný XML, čitateľný, ktorý obsahuje všetky metadáta aplikácie.

// Zaznamenanie konfiguračného diagramu ModelXDTO = FactoryXDTO.ExportModelXDTO("http://v8.1c.ru/8.1/data/enterprise/current-config"); FactoryXDTO.WriteXML(NahraťSúbor, ModelXDTO); // Čítanie konfiguračnej schémy ModelXDTO = FactoryXDTO.ReadXML(ReadXML, FactoryXDTO.Type("http://v8.1c.ru/8.1/xdto","Model")); FactoryUnload = New FactoryXDTO(ModelXDTO);

Na ochranu používateľa sa ho musíte znova opýtať, či potrebuje obnoviť zálohu. Možno len experimentoval a stláčal všetky tlačidlá v aplikácii :) A teraz môže prísť o svoje aktuálne dáta. Preto si pri vykonávaní potenciálne „nebezpečných“ akcií vždy ujasníme, či to naozaj chce a ako by sa to malo stať. Používateľ si musí byť vedomý svojich činov.

Musí existovať mechanizmus na vytváranie záloh, keď hovoríme o offline riešení, keď má používateľ všetky dáta uložené výlučne v mobilnom zariadení: používateľ môže prísť o svoje zariadenie a následne o dáta príde. A zdá sa, že ak aplikácia nefunguje autonómne, ale je pripojená k centrálnemu serveru, používateľ by nemal mať taký problém, pretože v prípade straty zariadenia sa pripojí k serveru a dostane všetky svoje údaje. znova zo servera a všetko bude v poriadku.

Nie vždy však užívatelia využívajú zálohy tak, ako od nich očakávame :) Veľmi často ich využívajú na jednoduché “vrátenie” dát. Ide naozaj o veľmi zvláštne správanie, no používatelia mobilných aplikácií sú leniví na to, aby prišli na to, kde mohli pri zadávaní údajov urobiť chybu, a údaje jednoducho vrátia späť a znova zadajú údaje za aktuálny deň. Po rozbore štatistík práce s aplikáciou Boss sme si uvedomili, že ide o bežnú prax a takéto správanie používateľov je bežnejšie, ako by sme si vedeli predstaviť.

A ak používate synchronizáciu s inými zariadeniami, musíte to zvládnuť. Tu je niekoľko riešení:

  • prerušte spojenie so serverom a uveďte, že údaje na ňom zostanú tak, ako boli, a kópia sa obnoví iba na zariadení používateľa;
  • Pre používateľa je lepšie nechať ho obnoviť kópiu na všetkých zariadeniach naraz, keď predtým predpísal takéto mechanizmy.

Je tu ešte jeden bod. Doteraz sme si zálohy ukladali sami, kontrolovali celý proces a zachytávali akcie používateľa priamo v kóde, keď klikol na tlačidlo „uložiť kópiu“. To všetko sa dá neskôr spracovať. Na platforme 8.3.9 bolo možné ukladať zálohy pomocou nástrojov platformy. A používateľ to robí bez nášho vedomia. Ak sa použije synchronizácia s centrálnou databázou, potom treba takýto scenár spracovať. Musíme nejakým spôsobom zistiť na našom serveri, že používateľ obnovil predtým uloženú kópiu a musíme mu poskytnúť nejaké riešenie. Nemôžeme si dovoliť, aby sa údaje nesynchronizovali.

VÝMENY

Keď hovoríme o súkromnom riešení na mobilnej platforme, väčšinou máme zákazníka, ktorý chce využiť napr mobilná platforma pre svojich obchodných zástupcov a na výmenu údajov s centrálnou databázou. Všetko je tu jednoduché: jedna databáza, niekoľko zariadení, nastavíte server, vytvoríte spojenie s ním. Takže problém výmeny medzi zariadeniami je ľahko vyriešený.

Ak sa ale bavíme o masovej aplikácii, kde je veľa databáz, z ktorých každá má veľa používateľov, situácia sa komplikuje. Používatelia si stiahli aplikáciu z trhu a chcú sa navzájom synchronizovať. Manžel si napríklad stiahol aplikáciu na účtovníctvo osobných financií a teraz chce, aby sa pripojila aj jeho manželka, pričom spolu pracujú v rovnakej aplikácii. Používateľov je veľa, aplikácia sa vyvíja, rastie a je potrebný veľký, veľký počet databáz. Ako to všetko zorganizovať? Používatelia nebudú osobne kontaktovať vývojárov, aby im vytvorili samostatnú databázu a umožnili synchronizáciu. Chcú stlačiť tlačidlo a všetko okamžite funguje. V ten istý moment.

Ako postupovať? Tu prichádza na pomoc mechanizmus separácie údajov. Umožňuje organizovať jednu databázu, kde je jedna spoločná konfigurácia, no zároveň je v rámci jednej spoločnej databázy uložený neobmedzený počet užívateľských databáz.

Najlepšie na tom je, že používateľov môžete pridávať dynamicky, programovo, bez našej účasti. V skutočnosti používatelia jednoducho kliknú na tlačidlo „zaregistrovať sa na server“ a všetko sa deje samo: na serveri sa vytvorí osobná databáza a môže v nej okamžite začať pracovať.

Ako to spraviť? Prvým a najjednoduchším riešením je napísať si vlastný serverová základňa s týmto mechanizmom. Keď naša spoločnosť začala robiť aplikáciu Boss a výmeny v nej, v prvej verzii sme urobili práve to: napísali sme serverovú databázu s mechanizmom zdieľania údajov. Všetko fungovalo, najmä preto, že nebolo nič zložité - základný oddeľovač je bežným atribútom.

Ale potom sme si uvedomili, že sme znovu vynašli koleso :) V skutočnosti už existuje hotové riešenie, a už zohľadňuje body, o ktorých sme ešte ani neuvažovali. Toto je 1C:Fresh.

Je tu premyslená škálovateľnosť služby: čo robiť, keď je veľa dát a databáz, ako s tým všetkým rásť. Je tu moment o stvorení záložné kópie dátové oblasti: to znamená, že nezálohujeme len jednu všeobecnú databázu, ale vytvárame kópie konkrétneho používateľa. Navyše je tam mechanizmus taký, že kópie sa robia len vtedy, keď sú naozaj potrebné. Ak sa užívateľ týždeň neprihlásil do databázy, tak mu kópie nerobíme, pretože sa tam nič nezmenilo. Ďalšou vlastnosťou Fresh je, že služba implementuje mechanizmus na zníženie zaťaženia servera, a to je veľmi dôležité, keď máte veľa databáz.

Vo všeobecnosti je Fresh pre nás niečo nové a zaujímavé. Pomaly sa na to snažíme prísť, ale väčšinou sme spokojní len s tým, ako to funguje.

Prenos dát. Ako to implementovať na výmenu medzi zariadeniami

Platforma poskytuje dva mechanizmy – SOAP a http služby. Existujú nuansy týkajúce sa prístupu k týmto službám, keď je zapojený mechanizmus separácie údajov. Predovšetkým musíte pridať parametre, ktoré označujú konkrétne číslo oblasti, ku ktorej pristupujete, pretože platforma nedokáže určiť, do ktorej databázy má pristupovať z používateľského mena. Okrem toho môže ten istý používateľ pracovať s viacerými databázami v rámci jednej databázy (pozri obrázok).

Pokiaľ ide o služby, aplikácia Boss implementuje okamžitú výmenu: jeden používateľ zadáva údaje a druhý ich prijíma. Používatelia mobilných aplikácií sú zvyknutí, že sa všetko deje okamžite, preto sme rozmýšľali ako lepšie služby použitie - SOAP alebo http. Rýchlosť pripojenia hrala kľúčovú úlohu. V http je rýchlosť pripojenia oveľa vyššia a pri pripojení cez SOAP dostávame popis služby, ktorá je ťažká a dlho sa načítava. Platforma má spôsob uloženia popisu služby, ale kvôli parametrom, ktoré pridávame dynamicky, nemôžeme použiť odkazy WS. Okrem toho je podľa našich skúseností prístup k službám http pohodlnejší a flexibilnejší.

Naším cieľom je teda implementovať výmenu v reálnom čase. To znamená, snažíme sa, aby to nebolo tak, že používateľ musí niekam ísť, kliknúť na nejaké tlačidlo, premýšľať o tom, aké aktuálne sú jeho údaje, či ich má aktualizovať... Údaje používateľov by mali byť vždy aktuálne -randiť. Pri práci v instant messengeroch sú na to tak zvyknutí – jeden dáta odoslal, druhý ich hneď prijal. Všetko sa deje okamžite. To isté platí pre aplikácie súvisiace s podnikaním: jeden predajca dokončil predaj, druhý musí okamžite vidieť aktuálnu situáciu bez toho, aby podnikol akékoľvek kroky.

To je dôvod, prečo aplikácia Boss využíva úlohy na pozadí na výmenu. Po každom zadaní údajov do databázy sa spustí práca na pozadí, ktorý iniciuje výmenu. Prvou časťou je odoslanie údajov na server. Potom by ostatné zariadenia mali vedieť, že existujú nové údaje. Na tento účel používame upozornenia PUSH. Táto schéma už funguje a funguje pomerne rýchlo.

Chceli sme to však urobiť ešte rýchlejšie, keďže pracujeme v reálnom čase a spravidla nemáme veľa údajov. Máme malé XML, ale zároveň posielame správu s týmito údajmi z prvého zariadenia na server, server pošle PUSH na ďalšie zariadenie a druhé zariadenie po prijatí PUSH iniciuje výmenu zo svojej strany. , kontaktuje server a požaduje údaje, prijme tieto údaje a potom odošle odpoveď, že údaje boli prijaté. Je to dlhá doba, ale údajov bolo veľmi málo.

Zaujímalo nás, ako by sa dal tento proces urýchliť.

Aby sme to urobili, prišli sme na to, čo PUSH obsahuje a ako sa dá tiež použiť. Ukázalo sa, že PUSH obsahuje polia ako dáta a text. Dokumentácia pre iOS a Android naznačuje obmedzenia veľkosti PUSH správ, ale to sa nám zdalo málo a chceli sme na to prísť sami na základe skúseností. A skontrolovali sme, že pre iOS je súčet povolených znakov 981 znakov a pre Android je to 3832 znakov. V druhom prípade je možné použiť obmedzenie jedného alebo viacerých databázových objektov. A potom vývojári spoločnosti trochu zmenili schému. Keď nie je veľa dát, pošleme ich z jedného zariadenia, prijmeme na server, tam ich zabalíme do PUSH a pošleme priamo do iného zariadenia. Schéma sa skrátila a výmena sa začala diať ešte rýchlejšie :)

Dôležitým bodom pri používaní PUSH je, že nedráždime používateľov.

Je veľmi jednoduché zbaviť sa tejto situácie: jednoducho neposielajte používateľovi veľa PUSH správ :) Ak práve pracuje v aplikácii, môžete posielať veľa správ. Keď je platforma spustená, používateľ nevidí PUSH, všetko sa deje automaticky. Ale keď je aplikácia uzavretá, klient má veľa neprečítané správy. Preto by sa za žiadnych okolností nemalo odoslať ďalšie PUSH, kým zo zariadenia nedostane odpoveď, že aplikácia je spustená, aktívna a predchádzajúce PUSH už bolo spracované.

Ďalšou nuansou výmeny je práca cez web. Musíme čo najviac využívať asynchrónnosť. Nemôžete pracovať ako zvyčajne - napísali ste kód - zavolali funkciu - čakali na jej vykonanie - dostali odpoveď - a všetko je v poriadku. Ak pracujete cez web, stále budete čeliť určitým obmedzeniam, napr. nestabilný internet, spúšťanie časových limitov pri vykonávaní dlhotrvajúcich operácií. Preto je potrebné vopred premyslieť architektúru.

Na príklade registrácie zariadenia sa pozrime na to, čo sa deje v aplikácii, keď sa chce používateľ zaregistrovať. Nejaký čas si vedie evidenciu, zadal množstvo údajov, no potom chce, aby s touto databázou pracoval aj predajca. Používateľ klikne na tlačidlo „registrovať sa“. Spočiatku bolo všetko veľmi jednoduché: vzali sme jeho údaje, zaznamenali ich na server a môžete, prosím, pracovať a spájať používateľov. Potom sme sa však stretli so situáciou, keď sa databázy niektorých používateľov na ich zariadení výrazne rozrástli v čase, keď sa zaregistrovali. A táto schéma už nefungovala, pretože... Počas nahrávania celej databázy na server vypršal časový limit pripojenia alebo jednoducho vypadol internet. Preto sme jeden synchrónny hovor nahradili mnohými krátkymi. V súčasnosti sa dáta zdieľajú a nie prenášajú naraz. Za žiadnych okolností nečakáme, kým server spracuje a zapíše dáta. Odoslali sme údaje, dostali odpoveď, že údaje boli prijaté, a spojenie sme ukončili. Periodicky je potrebné dotazovať server, aby ste zistili, čo sa tam deje a ako, a medzitým na serveri beží úloha na pozadí, ktorá zaznamenáva prijaté dáta. Výsledkom je veľa volaní servera, ale máme záruku, že všetko pôjde dobre. A ani časové limity, ani nestabilita internetu vám nezabránia nahrať všetky dáta na server.

AKTUALIZÁCIE

Výmena medzi zariadeniami s rôznymi verziami aplikácie

Keďže hovoríme o hromadnej aplikácii, ktorá sa uvoľňuje na trhy, musíme vziať do úvahy niektoré funkcie procesu aktualizácie a výmeny údajov.

Ak ste uvoľnili aplikáciu pre jeden podnik a rozhodnete sa ju aktualizovať, zvyčajne jednoducho vydáte príkaz, aby si všetci zamestnanci jednomyseľne nainštalovali novú aplikáciu. Toto sa nedá urobiť s používateľmi, ktorí si aplikáciu stiahli z trhu. Vôbec im nemôžete prikázať, čo majú robiť. Napríklad pracujú v aplikácii a nechcú ju aktualizovať ani teraz, ani nikdy. Nemajú automatické aktualizácie, takže je úplne bežná situácia, keď je do centrálnej databázy pripojených viacero zariadení a všetky majú rôzne verzie. Ďalším dôvodom tohto javu je čas zverejnenia na trhoch: je iný pre iOS a Android. Často implementujeme kľúčové veci, napríklad opravy kritické chyby a nechcete čakať na kontrolu iOS dva týždne Nová verzia, chceme aspoň len pre Android, no aktualizáciu vydajte už teraz.

Nemáme právo rozkazovať používateľom. Ak chcú, aktualizujú sa a ak nie, nerobia nič. Na obrázku je pomer inštalácií aplikácie Boss podľa verzie na GooglePlay, ako aj štatistiky z nášho servera - reálny pomer verzií aplikácií, ktoré sú nainštalované na zariadeniach, ktoré si vymieňali dáta so serverom za posledný týždeň. Toto je sada, s ktorou musíte pracovať. Toto rôzne verzie a rôzne metadáta. A v tomto prípade musíme zorganizovať normálnu výmenu :)

Vývojári stoja pred nasledujúcimi úlohami:

  • Toto všetko musí fungovať. Používatelia by sa nemali cítiť nepríjemne, pretože zabudli aktualizovať. Vôbec by si to nemali všímať. Aktualizované - stalo sa lepšie, dobre, dobre.
  • Musíme zabezpečiť bezpečnosť údajov. Napríklad jeden používateľ má adresár a nové podrobnosti, ale iný ho zatiaľ nemá. Navyše, ak používateľ, ktorý nemá nové podrobnosti, niečo na svojom zariadení zmení, údaje by sa nemali stratiť na iných zariadeniach.
  • Musíme zabezpečiť aktualizáciu údajov pri prechode na novú verziu. Keď sa používateľ rozhodne, že je pripravený na upgrade, mal by mať automaticky všetky nové informácie, ktoré nemal len preto, že mal starú verziu.

Ako sa nám to podarilo?

1. Na serveri používame 2 výmenné plány. Prvý slúži na zdieľanie medzi zariadeniami a druhý na aktualizácie. Používateľovi sme napríklad poslali referenčnú knihu, ale nemá merné jednotky, teda neúplné údaje. Toto si musíme pamätať. A keď je aktualizovaný, musíme mu poslať všetky informácie, ktoré nemal. To je dôvod, prečo potrebujete druhý výmenný plán.

2. Na zápis a čítanie objektov používame rovnaký mechanizmus, aký sa používa pri zálohovaní, teda ukladáme verziu metadát. V tomto prípade pracujeme so serverom a môžeme si dovoliť pridať čokoľvek, čo chceme, priamo do konfigurácie, takže do konfigurácie jednoducho pridávame schémy metadát vo forme layoutov v priebehu vývoja aplikácie.

Ako sledovať masívne chyby počas výmeny a na serveri

Najprv musíte kontrolovať dostupnosť samotného servera. Stáva sa to so servermi - zlyhávajú. Nevymysleli sme nič špeciálne na monitorovanie, ale jednoducho sme v telegrame našli robota, ktorý kričí, ak niečo nie je v poriadku. Každú minútu kontroluje výkon servera a ak je zrazu server nedostupný, začne kričať, správcovia to vidia a zdvihnú server.

Z denníka zhromažďujeme aj protokoly chýb. Nič extra – iba zbierame protokoly chýb každé tri hodiny, posielame ich e-mailom a pravidelne ich kontrolujeme. Pomáha vám to vidieť bežné problémy a niektoré výnimočné situácie. Nie je ťažké zobraziť e-mail, sledovať a rýchlo opraviť chyby. To vám však umožňuje rýchlo identifikovať a riešiť problémy, ktoré môžu narastať s rastom databáz.

Viac dôležitý bod- nezabudnite dať používateľovi možnosť „sťažovať sa“. To zlepšuje náš stav v ich očiach a zachraňuje nás. Existujú používatelia, ako ich nazývame „hysterici“, ktorí nám pri najmenšej chybe začnú e-mailom posielať veľa správ, že nič nefunguje, databáza sa nenačítava, všetko je strašne zlé. Ale niekedy nás naozaj zachránia, pretože niekedy nájdu chyby, ktoré iní ešte zázrakom neobjavili, vážne chyby.

Používateľ by sa nemal báť. Žiadne strašidelné správy ani nič iné. Potrebujú všetko krásne vysvetliť a vyzvať ich, aby sa sťažovali. A sľubujeme, že všetko vyriešime. Potom sa užívatelia tešia, lebo vidia, že je o nich postarané a hneď veria, že im bude pomožené :)

Tento článok bol napísaný na základe výsledkov správy prednesenej na konferencii INFOSTART EVENT 2016 DEVELOPER. Dá sa prečítať viac článkov.

V roku 2020 pozývame všetkých, aby sa zúčastnili na 7 regionálnych stretnutiach, ako aj na jubilejnom INFOSTART EVENT 2020 v Moskve.

Nevýhodou mobilných klientov je server.

Ďalšie požiadavky závisia od špecifík aplikácie:
škálovateľnosť servera – pre SaaS, sociálne aplikácie, kde sa v ideálnom prípade očakáva veľký tok návštevníkov, je táto podmienka povinná. Pre podnikové aplikácie, kde existujú obmedzenia týkajúce sa počtu používateľov alebo je počet predpokladaný, túto nehnuteľnosť nevyžaduje sa;
interaktivita: rad aplikácií je potrebné vybaviť notifikačným mechanizmom – informovať aplikáciu (užívateľa) o výskyte určitých udalostí, poslať používateľovi správu. Túto vlastnosť by mal mať napríklad výmenný systém alebo automatický dispečer taxi.
otvorené API: predpokladá sa, že vývojári tretích strán môžu využívať funkčnosť systému prostredníctvom zdokumentovaného protokolu. Koniec koncov, klient môže byť buď mobilná alebo externá serverová aplikácia.
iné požiadavky...

Tím
Zloženie projektového tímu pre vývoj systému by v ideálnom prípade mohlo byť nasledovné:
projektový manažér: riadi, kontroluje projekt, komunikuje priamo so zákazníkom;
vývojár serverových aplikácií: vyvíja server obchodnej logiky, databázu, sieťový protokol;
vývojár admin aplikácií: vyvíja Webová aplikácia, používateľské rozhranie konfigurovať a spravovať serverovú aplikáciu;
vývojár klientskych aplikácií pre Android;
vývojár klientskych aplikácií pre iOS;
vývojár klientskych aplikácií pre...
tester: testuje správcovskú aplikáciu a klientske aplikácie.

Pozorný čitateľ si všimne, že v prípade písania serverovej aplikácie s grafickým rozhraním, napríklad v HTML5, môžete ušetriť peniaze. V tomto prípade nie je potrebný vývoj klientskych aplikácií – používateľské rozhranie zabezpečuje prehliadač. Tento článok sa nezaoberá takýmto prípadom, hovoríme o o vývoji „natívnych“ aplikácií pre mobilné zariadenia.

Mal som možnosť pracovať v tíme v plnej zostave, ale buďme realisti – ľudské zdroje a rozpočet nie vždy umožňujú zostaviť takýto tím. A niekedy je potrebné skombinovať roly: projektový manažér + vývojár serverovej aplikácie, vývojár klientskej aplikácie + tester.

Technológie, nástroje, knižnice
Na vývoj mobilného klientskeho servera zvyčajne používam nasledujúci balík „bezplatných“ technológií:
Apache Tomcat – kontajner servletov;
MySQL – DBMS;
Subversion – systém správy verzií;
Maven – rámec pre automatizáciu zostavovania projektov;
JUnit - poskytne ;
Apache Log4j – logovacia knižnica;
Jenkins – systém kontinuálnej integrácie;
Hibernate – ORM (nastavenia, konfigurácia vo vlastnostiach, xml súbory a v anotáciách);
hibernate-generic-dao – implementácia DAO od Google, implementuje základné metódy pre prácu s databázovými dátami, zjednodušuje implementáciu filtrovania a triedenia v metódach;
– implementácia autentifikácie a autorizácie (zabezpečenie), kontajnera služieb a beanov (konfigurácia v xml súboroch a anotáciách), využívaná aj pri vytváraní testov.

V závislosti od špecifík systému a požiadaviek naň používam jednu z dvoch možností implementácie protokolu výmeny údajov.
Keď sa vyžaduje multiplatformová, rýchlosť, jednoduchosť, efektivita, škálovateľnosť, otvorené API, potom beriem Jersey – implementáciu webových služieb REST (RESTful Webové služby). Táto knižnica vám umožňuje používať serializáciu údajov vo formáte JSON a/alebo XML. Konfigurácia REST je udržiavaná prostredníctvom anotácií. Pre výmenu s mobilnými zariadeniami bol použitý formát JSON z dôvodu, že má jednoduchšiu implementáciu na strane klienta (z tohto dôvodu nevyužívame „klasické“ webové služby), generuje sa menší objem prevádzky. Jersey vám umožňuje prispôsobiť „vzhľad“ JSON, ktorý vám najviac vyhovuje.
Inak, ak je potrebná multiplatformnosť, vysoký výkon, jednoduchosť, efektivita, interaktivita, tak beriem
Apache MINA – framework pre tvorbu sieťových aplikácií,
Protobuf Google je knižnica na kódovanie a dekódovanie štruktúrovaných údajov. Štruktúra údajov je určená hlavičkové súbory*.proto, kompilátor z nich generuje triedy Java (možno generovať aj pre iné programovacie jazyky: C++, Objective-C atď., čím je zabezpečená multiplatformová funkčnosť);
java.util.concurrent – ​​používame štandardný balík.
Táto možnosť môže byť škálovaná, ale to je potrebné naplánovať vo fáze návrhu na architektonickej úrovni, berúc do úvahy obchodnú logiku.

Zoberme si hypotetický problém na príklade výberu technológií pre skutočnú službu SaaS - „Aukcia služieb „Auknem“, ktorá umožňuje ľuďom vytvoriť objednávku na požadované služby alebo prácu a organizácie im zas nechajú svoje návrhy. Štandardne berieme všetky základné požiadavky. Vzhľadom na to, že registrácia do tohto systému je bezplatná a bezplatná, určite k nim treba pridať aj škálovateľnosť. A čo interaktivita? Bolo by skvelé informovať dodávateľov (realizátorov) o vytváraní nových objednávok a informovať zákazníkov o prijatých návrhoch súčasne v aplikácii, a to nielen prostredníctvom e-mail. Na základe toho použijeme na implementáciu Apache MINA a protobuf Google. Pozrime sa na nasledujúcu vlastnosť – otvorené API. Služba je verejne dostupná, takže predpokladáme, že o integráciu s ňou môžu mať záujem externí vývojári. Počkaj! Nie také jednoduché. Protokol založený na Apache MINA je dosť závislý od implementácie a integrácia bez znalosti nuancií nie je v žiadnom prípade transparentná. V takejto situácii budete musieť zvážiť, ktorý faktor je dôležitejší, a vybrať si.

Záver
Zaujímalo by ma, aké technológie, knižnice ste použili pri vývoji servera mobilného zariadenia resp podobné systémy? Všetko sa mení, nič netrvá večne, na každej úrovni existujú alternatívy s vlastnými výhodami a nevýhodami: MySQL -