Dezvoltarea părții server a aplicației mobile. Dezvoltarea părții server a aplicațiilor mobile

Dezvoltarea părții server a aplicației mobile. Dezvoltarea părții server a aplicațiilor mobile

Compania noastră furnizează servicii pentru crearea părții server a aplicațiilor mobile de afaceri și a serviciilor web pentru clienți care operează în mijlocul unei cereri ridicate. Atunci când dezvoltăm un proiect de piele, suntem încurajați să dezvoltăm o abordare individuală, astfel încât îndepărtarea produsului să devină soluția optimă pentru obiectivele specifice ale tratamentului.

Dacă rulați un program complex care salvează și/sau procesează date pe server, atunci în spatele acestuia se află un Back-end - un complex de software care este găzduit pe un server web și funcționează cu un add-on, care se numește Front. -Sfârşit. Plasările pe serverul add-on pot fi procesate simultan de la un număr mare de clienți, ceea ce asigură o mare flexibilitate și securitate a funcționării acestuia.

Adesea, partea de server a programului este scrisă folosind PHP, deoarece este cea mai populară pentru astfel de soluții. Pentru a implementa sarcini simple de server, puteți folosi vikory sisteme standard, Și pentru cele mai specifice, este deja necesar să vă dezvoltați soluția sau să construiți pe sisteme standard.

Principii de dezvoltare a unui server pentru un program mobil

Programele noastre funcționează cu tehnologii care ne permit să implementăm o gamă largă de soluții pentru toate scopurile, chiar și de mare importanță și direcții variate. De asemenea, creăm soluții pe partea de server pentru sarcini individuale.

Controlul organizațional

Proiectul skin este creat de un grup apropiat de fakhivtsev, care sunt responsabili pentru toate etapele de dezvoltare și crearea proiectului în fiecare zi.

Programare

Proiectarea arhitecturii serverului este cel mai important pas în care se creează baze de date și se formează algoritmii necesari.

Testare

Partea software poate funcționa fără probleme sau erori. Testerii înșiși dovedesc că verifică sistemul.

Suport tehnic

Calculatoarele noastre oferă suport tehnic cuprinzător pentru programe, ceea ce ne permite să remediam rapid deficiențele și să facem actualizări.

Caracteristicile dezvoltării

Pentru a dezvolta în mod competent partea de server a programului, veți avea nevoie de câteva cunoștințe de bază și cunoștințe despre programarea care este utilizată pe server. După cum arată practica, programele client-server sunt create folosind PHP. Vin este liderul incontestabil al acestui grup. Mai mult de jumătate dintre site-urile web din întreaga lume sunt scrise în PHP, ceea ce face ușor de învățat și de asistență.

Cadru

Această platformă software vă permite să creați un proiect mai scalabil și mai flexibil. Timpul nu este mai mic, cadrul gestionează tranzacțiile cât mai corect posibil, așa că este necesar să se efectueze o analiză amănunțită a documentației de lucru a proiectului, care va ajuta apoi la dezvoltarea unui produs de înaltă calitate.

Aflați alte limbi care sunt folosite pentru dezvoltarea back-end. De exemplu, programele de server populare create în Delphi Mijlociu. Din acest motiv, programul a fost îmbunătățit. În plus, este mai ușor să dezvoltați programe unice, transmite un design vizual. Toate acestea vă permit să creați o interfață inteligentă și ușor de utilizat.

Programele de server Java nu sunt mai puțin populare. Mirosurile pot fi adăugate fără probleme și pot fi instalate cu ușurință pe diferite platforme. rubarbă înaltă fii în siguranță.

O altă limbă care este adesea vikorizată. Cu acest ajutor, programele de server pot fi create ușor, rapid și fără nicio cheltuială.

Toate companiile actuale ar putea să își înființeze birourile virtuale. Site-ul poate fi fie o carte de vizită, un portal sau un catalog online cu posibilitate de înregistrare.

Procesele de afaceri în la acest tip stocarea serverelor web și însăși capacitatea lor de a rezista atacurilor, încercărilor rău intenționate și influențelor negative externe, precum și productivitate suficientă pentru cererile fără față care sunt imediat acceptate.

Etapele dezvoltării serviciului web

Creând programe pentru diferite segmente ale pieței, ne organizăm munca după un singur principiu - împărțim întregul proces în secțiuni și raportăm progresul și rezultatele managerilor. Astfel, serverul pentru aplicația mobilă este împărțit în același mod.

1. Dezvoltarea ideii

Până la 2 ani

În această etapă se creează crearea de fundații, care dă indicații asupra celor care vor fi puse și în care se vor dezvolta direct.

2. Evaluarea proiectului

2-3 saptamani

Consultanții noștri evaluează termenii și condițiile de lucru, apoi formulează o propunere de dezvoltare.

3. Specificații tehnice și acord

Până la 2 ani

După ce toate nuanțele procesului și elaborarea raportului TdR au fost discutate cu deputatul, se întocmește și se semnează un acord.

4. Înțelegerea interfeței

2-3 saptamani

Crearea interfețelor necesare scrierii module software, designerii sunt logodiți.

6. Testare

2-3 saptamani

O verificare completă a soluției software obținute este efectuată de testeri folosind un set suplimentar de instrumente suport.

7. Finalizarea proiectului

Până la 2 ani

În sensul termenului gata, proteste hotărât, serviciul web este dat deputatului.

echipa noastră

Analizând activitatea comercială și nevoile clienților noștri, creăm produse cu adevărat eficiente care satisfac o întreagă gamă de obiective de afaceri. Vikoristannya tehnologiile actuale va oferi o gamă largă de capabilități pentru implementarea software-ului server, care garantează o productivitate ridicată de toate tipurile suplimente mobile. Echipa noastra este reprezentata de:

Manageri de proiect

Acești specialiști interacționează cu clienții și clienții, asigurând comunicarea între ei. Ei monitorizează activitățile activităților planificate și procedurile suplimentare necesare.

Designeri

În roboții lor, lucrătorii noștri din prima linie vă vor oferi interfețe convenabile pentru procedurile de operare. sisteme iOSȘi Android, așa că programele care sunt lansate funcționează corect pe diverse dispozitive.

Rozrobniki

Pentru a optimiza productivitatea aplicațiilor mobile, programele le analizează beneficiile sistemului Ei creează servere și software specializate.

Testuvalniki

Testarea Retelne este o garanție a calității produsului finit și o garanție a siguranței datelor care sunt stocate și procesate. Acești falși folosesc diferite instrumente și metode eficiente.

Ce fel de servicii creăm

Fiind creat de pe site-ul PZ sau dintr-un program independent, serviciul web servește pentru executarea sarcinilor legate de publicitate, analiză, planificare și afaceri. În legătură cu aceasta, este necesar să se identifice o resursă pentru orice fel de decizii optime.

Proiecte de informare

Conceput pentru a găzdui conținut divers.

Site-uri tematice

Toate paginile noastre sunt dedicate aceluiași subiect. Cei mari vor bea din ei, ca înainte.

Articole noi

Informați despre diverse știri în cadrul unuia sau mai multor subiecte care reflectă principalele domenii ale vieții.

Bloguri

Popularitatea acestor resurse este în continuă creștere. La fel ca site-urile de știri, acestea transmit diferite informații către Internet, dar în acest caz autorii își exprimă propria idee specială.

Proiecte sociale

Acestea includ servicii sociale specializate. masuri, spilnoti, forumuri etc.

Forumi

Creat pentru a discuta despre diverse produse noi, produse/servicii etc. Ele pot fi atât îngust drepte, cât și cu mai multe fațete.

Măsuri sociale

Aceste resurse ajung la o audiență de milioane. Sarcina lor principală este de a oferi utilizatorilor de internet posibilitatea de a se conecta online folosind notificări text/voce și apeluri video.

Masacrul serviciilor web

Astăzi, zona a devenit foarte largă și există multe specii.

Cataloagele

servicii poștale

Ele oferă corespondenților toate capacitățile și avantajele poștei electronice, vizualizare la mijloc, editare, editare de foi și documente etc.

Sisteme de sunet

Servire pentru site-uri de căutare Informatii diverse pentru cereri de cântare.

Doshki sunt uluiți

Aceste resurse web, precum și diverse canale, își postează rapoartele despre achiziții, vânzări și servicii în cadrul diferitelor subiecte.

Gazduire site

Proiectat pentru salvarea fișierelor. Unii dintre ei pot fi capabili să se familiarizeze cu datele înainte de a fi sedusi.

Sursă de alimentare sporită

Mai jos vă prezentăm răspunsurile la aprovizionarea pe care o dăm adesea fahivilor noștri. Nu veți găsi nicio informație utilă aici, vă rugăm să puneți mâncarea în aceasta formă, și cu siguranță ne bazăm pe el.

Cât timp poate dura crearea unui server web?

Munca medie a unei persoane variază de la 9 la 20 de ani. Totul este supus complexității planului care este implementat.

Poarta de acces pentru clienții mobili este serverul.

Informațiile suplimentare pot depinde de specificul programului:
scalabilitate server – pentru SaaS, aplicații sociale, unde în mod ideal va exista un flux mare de recrutori, creiere și echipamente. Pentru suplimentele de afaceri, unde se face schimbul pentru numărul de investitori sau se prevede numărul, această putere nu este necesară;
interactivitate: un număr de suplimente trebuie să fie prevăzute cu un mecanism de notificare - informați suplimentul (kistuvach) despre ora cântării, transferați notificarea către kistuvach. Această putere este de vină, de exemplu, sistemul bursier sau dispeceratul automat de taxi.
Deschideți API-ul: este transferat astfel încât dezvoltatorii terți să poată accesa rapid funcționalitatea sistemului sub forma unui protocol documentat. Acest client poate fi fie un client mobil, fie o extensie de server extern.
alte beneficii...

Echipă
Depozitul echipei de proiect pentru dezvoltarea sistemului ar putea fi în mod ideal astfel:
manager de proiect: responsabil, controlează proiectul, interacționează direct cu adjunctul;
dezvoltator de software pentru server: dezvoltă un server logic de afaceri, bază de date, protocol edge;
Dezmembrarea programului administrator: dezactivează Supliment web, Interfața Koristuvalnytsky pentru configurare și întreținere cu un add-on de server;
distribuitor de programe client pentru Android;
dezvoltator de programe client pentru iOS;
distribuitor de programe client pentru...
tester: testează suplimentele de administrator și programele client.

Stimate cititor, vă rugăm să respectați faptul că programul server este scris interfata grafica De exemplu, HTML5 poate deveni mai sigur. În acest caz, nu este nevoie să dezvoltați programe client - interfața client este furnizată de browser. Acest articol nu ia în considerare o astfel de problemă; este vorba despre dezvoltarea de suplimente „native” pentru dispozitive mobile.

Am avut ocazia să lucrez într-o echipă cu un depozit plin, dar să fim realiști - nu întotdeauna resursele umane și bugetul ne permit să adunăm o astfel de echipă. Există diferite roluri de jucat: manager de proiect + dezvoltator de programe server, dezvoltator de programe client + tester.

Tehnologii, instrumente, biblioteci
Pentru a dezvolta un server pentru clienții mobili, utilizați următoarea stivă de tehnologie avansată:
Apache Tomcat – container servlet;
MySQL - DBMS;
Subversion – sistem de control al versiunilor;
Maven – un cadru pentru automatizarea dezvoltării proiectelor;
JUnit - securizat;
Apache Log4j – bibliotecă de jurnal;
Jenkins – sistem de integrare continuă;
Hibernare – ORM (setare, configurare în proprietăți, fișiere xml că în adnotări);
hibernate-generic-dao – implementarea DAO de la Google, implementează metode de bază de lucru cu datele bazei de date, simplifică implementarea metodelor de filtrare și sortare;
– implementare de autentificare și autorizare (securitate), container de servicii și beans (configurare în fișiere xml și în adnotări), vikoryst și la crearea de teste.

În funcție de specificul sistemului, a fost posibilă alegerea uneia dintre cele două opțiuni pentru implementarea protocolului de schimb de date.
Dacă aveți nevoie de multi-platformă, cod de viteză, simplitate, eficiență, scalabilitate, deschideți API-ul, atunci iau Jersey - o implementare a serviciilor Web REST (servicii Web RESTful). Această bibliotecă vă permite să serializați datele în format JSON sau XML. Configurarea REST se realizează în vizualizarea de adnotări. Pentru schimbul cu dispozitivele mobile, formatul JSON este folosit prin intermediul celor care au o implementare mai simplă pe partea client (din acest motiv, nu la fel cu serviciile Web „clasice”), se generează mai puțin trafic. Jersey vă permite să configurați cel mai comun tip de JSON.
În caz contrar, dacă este nevoie de multi-platformă, viteză mare, simplitate, eficiență, interactivitate, atunci iau
Apache MINA – cadru pentru crearea de extensii de margine,
Google protobuf este o bibliotecă pentru codificarea și decodarea datelor structurate. Structura datelor este indicată prin fișiere de antet *.proto, compilatorul generează clase Java din acestea (se poate genera și pentru alte limbaje de programare: C++, Objective-C etc., ceea ce asigură puterea cross-platform);
java.util.concurrent este un pachet standard vicory.
Această opțiune poate fi extinsă, dar va fi necesar să se bazeze pe stadiul de proiectare la nivel de arhitectură, inclusiv pe logica afacerii.

Să aruncăm o privire la o sarcină ipotetică de selectare a tehnologiilor pentru un serviciu SaaS real – „Auknem Service Auction”, care permite oamenilor să formuleze contracte pentru serviciile necesare care funcționează, iar organizațiilor să le priveze de resursele lor. Să luăm toate beneficiile de bază pentru minte. Având în vedere că înregistrarea în acest sistem este gratuită și gratuită, atunci cu siguranță trebuie să fie extinse. Dar interactivitate? Ar fi minunat să informezi antreprenorii (Viconavieni) despre crearea de noi acorduri, și să informezi deputatul despre propunerile care au fost găsite, apoi să apese suplimentul, și nu doar e-mail. Pe platforma pe care o luăm pentru implementarea Apache MINA, Google protobuf. Este uimitor cât de puternic este – deschideți API-ul. Serviciul este accesibil, deci este acceptabil ca furnizorii externi să-și arate interesul înainte de a se integra cu el. Zgârietură! Nu atât de simplu. Protocolul bazat pe Apache MINA poate fi foarte târziu în implementare, iar integrarea fără a cunoaște nuanțele nu este deloc clară. Într-o astfel de situație, va trebui să-ți dai seama ce factor este important și să faci o alegere.

Visnovok
Ar fi interesant de știut, dar cum ați folosit tehnologii, biblioteci pentru dezvoltarea serverelor pentru dispozitive mobile și sisteme similare? Totul se schimbă, nimic nu durează pentru totdeauna și există alternative cu avantajele și dezavantajele lor: MySQL -

Offline în trecut, dar online astăzi obov'yazkovo. Angajați pentru lumea afacerilor de zi cu zi. Prezentarea produselor și serviciilor de marcă, comanda și livrarea online, menținerea bazei de clienți, potrivirea cu clienții și multe altele - toate acestea sunt pur și simplu imposibile fără prezență pe Internet. Dacă aveți nevoie de programe, atât Front-end (interfață web) cât și Back-End (partea server a programului dvs.). Dacă doriți să aveți posibilitatea de a edita conținutul programelor dvs. fără participarea dezvoltatorilor, aveți nevoie de un panou de administrare bun.

În același timp, deoarece front-end-ul industriei aplicațiilor mobile este creat folosind tehnologii suplimentare, cum ar fi X-Code și Java, Back-end, unde baza de date și toată logica programului sunt salvate, va necesita cunoștințe profesionale despre server- programare laterală. fundul Garmin PHP, care este probabil cel mai popular software al meu, este dezvoltat pentru a dezvolta un fel de parte de server. Acesta este un lider impecabil.

Există multe domenii în care se folosește PHP: site-uri web statice și dinamice + sisteme de management al conținutului, măsuri sociale, sisteme CRM specializate, software de securitate pentru comerțul electronic și multe altele. Desigur, nu există costuri sau piese și panouri pentru servere ieftine. Tim nu este mai puțin, în multe cazuri duhoarea nu oferă nivelul necesar de îngrijire, adaptare și capacitatea de modernizare.

Programele noastre funcționează cu tehnologii care ne permit să implementăm o gamă largă de soluții pentru diverse scopuri de afaceri, după cum este necesar. Analizăm opțiunile de sistem pentru fiecare proiect în mod individual și folosim diverse software-uri de server specializate pentru productivitatea optimă a aplicației dumneavoastră mobile.

Dacă sunteți în căutarea unei echipe care să vă conducă către cea mai inteligentă și mai rentabilă soluție pentru crearea de programe de la zero sau actualizarea celui existent pentru potrivirea perfectă cu clienții, nu mai trebuie să glumiți. Appsmob este gata să vă ajute să știți mai bine decât o soluție Pentru dumneavoastră.

Partea din viața de zi cu zi este semnificativă suplimente pentru platforme mobile(iOS, Android etc.) funcționează în tandem cu serverul. Un program cu date învechite își pierde utilitatea. Prin urmare, este important să vă asigurați că datele de pe serverul de pe dispozitiv sunt actualizate în mod constant. Nu există suplimente offline care trebuie utilizate fără Internet. Pentru toți suplimente online, care nu funcționează (sau sunt inutile) fără Internet (de exemplu, Foursquare, Facebook) are propriul specific, care depășește fluxul de statistici.

Voi folosi unul dintre programele noastre offline pentru a vă arăta ce abordări am folosit pentru a sincroniza datele. În primele versiuni am fost rasfatati algoritmi simpli și, în final, cu dovezi, i-am perfecționat. O secvență similară este prezentată în statistici - de la cele mai simple practici evidente la cele complexe.

Trebuie clarificat faptul că statisticile iau în considerare transferul de date dintr-o singură parte: de la server la dispozitiv. Aici serverul este sursa datelor.

Poziții de banc pentru toate abordările

De exemplu, putem vedea transferul de „vase” pe dispozitiv. Vă rugăm să rețineți că dispozitivul ar trebui să solicite adresa URL „/service/dishes/update”, schimbă folosind protocolul http în format JSON ( www.json.org). Pe server există un tabel „dishes” cu următoarele câmpuri: id (identificatorul înregistrării), numele (numele antenei), updated (momentul în care antena a fost actualizată, mai pe scurt, fus orar, „AAAA-LL-DDTh: mm:ssTZD”, de exemplu, „1997 - 07-16T19:20:30+01:00”), is_deleted (semnul intrării șterse).

Observație pentru claritatea câmpului rămas. În acest scop, valoarea este egală cu 0. În plus, acolo unde datele sunt sincronizate între client și server, nu se recomandă ștergerea fizică a datelor de pe server (pentru a nu exista erori). Prin urmare, pentru entitățile la distanță, este setat is_deleted = 1. Când o entitate cu is_deleted = 1 ajunge la dispozitiv, aceasta este eliminată din dispozitiv.

În orice abordare, așa cum se va vedea mai jos, serverul rotește o serie de obiecte (posibil goale) pe dispozitivul JSON:

[
(id: ,Nume: ,actualizat: ,este șters: },…
]

Exemplu de ieșire de server:

[
(id: 5625, nume: „Pâine”, actualizat: „2013-01-06 06:23:12”, este șters: 0),
(id: 23,nume: „Grosul gătit”, actualizat: „2013-02-01 14:44:21”, este șters: 0),(

nume: "Supa de peste",

actualizat: "2013-08-02 07:05:19",

Principii pentru actualizarea datelor de pe dispozitiv

  1. Dacă noul element este pe dispozitiv și esteDeleted = 0, acesta va fi actualizat
  2. Dacă există un element care nu este prezent pe dispozitiv și esteDeleted = 0, atunci acesta este adăugat
  3. Dacă un element este primit și este pe dispozitiv și esteDeleted = 1, acesta va fi șters
  4. Dacă există un element nou care lipsește de pe dispozitiv, atunci este șters = 1, atunci nu vă temeți de nimic

Abordarea 1: Totul este sincronizat de acum înainte

Aceasta este cea mai simplă metodă. Dispozitivul solicită lista de site-uri a serverului, iar serverul descarcă întreaga listă. Pot găsi rapid întreaga listă. Chi nu sortează.

Butt-ul este introdus: nul sau „()”

Avantaje:

  • Logica pe server este simplă - totul este garantat în viitor
  • Logica de pe dispozitiv este simplă - totul poate fi rescris din când în când

Nedoliky:

  • Dacă interogați frecvent lista (la fiecare 10 minute), va exista mult trafic pe Internet
  • Dacă cereți lista rar (în fiecare zi), relevanța datelor va fi distrusă

Galuz zastosuvannya:

  • pentru suplimente cu trafic redus
  • transmiterea de date care se modifică rar (lista de locuri, categorii)
  • transmiterea de programe personalizate
  • la proiectul pentru primul prototip al unei aplicații mobile

Abordarea 2: Se sincronizează cu actualizările

Dispozitivul primește o listă de actualizări de știri de la cea mai recentă sincronizare. Lista sortărilor trebuie „actualizată” în ordine crescătoare (neapărat, dar manual). Dispozitivul salvează valorile „actualizate” pentru conținutul descărcat rămas și, la următoarea descărcare, îl forțează pe server în parametrul „lastUpdated”. Serverul actualizează lista de site-uri ca nou „lastUpdated” (actualizat > lastUpdated). La prima solicitare, serverul „lastUpdated” = nul.

Butt: (ultima actualizare: „2013-01-01 00:00:00”)

Pe diagramă: „last_updated” – valorile care sunt salvate de dispozitiv. Vă rugăm să rețineți că pe dispozitiv este creat un tabel pentru a salva valoarea „last_updated” pentru fiecare subiect (zone, locuri, organizații etc.)

Această abordare este potrivită pentru sincronizarea listelor liniare simple ale căror reguli pentru a ajunge la dispozitive sunt aceleași pentru toate dispozitivele. Pentru o mai mare sincronizare a vibrațiilor div. „Abordarea 5: Sincronizarea cu cunoașterea a ceea ce este deja pe dispozitiv.”

Pentru că această abordare acoperă majoritatea nevoilor. Date noi vor ajunge la dispozitiv, vă puteți sincroniza după bunul plac - traficul va fi mic. Cu toate acestea, există probleme asociate cu interconexiunile dispozitivelor mobile. Aceasta este memoria procesorului.

Abordarea 3: Sincronizarea în loturi

Dispozitivele mobile au puține RAM. Dacă există 3000 de linii în browser, atunci analizarea unei serii mari de json de pe server într-un obiect de pe dispozitiv poate duce la o eroare de memorie. În acest caz, programul fie se va încheia anormal, fie nu economisește 3000 de ruble. Cu toate acestea, dacă dispozitivele nu pot digera un astfel de rând, atunci productivitatea programelor în momentul sincronizării cu fundalul va fi scăzută (întârzieri în interfață, derularea fără probleme) Prin urmare, este necesar să alimentați lista în porțiuni mai mici. .

Pentru ce dispozitiv este trecut un alt parametru („cantitate”), care indică dimensiunea porției. Lista este supusă sortării obligatorii după câmpul „actualizat” după cele noi. Dispozitivul, similar cu abordarea directă, stochează valoarea actualizată a entității rămase și o trece la ultimul câmp Actualizat. Dacă serverul a primit un număr atât de mare de entități, dispozitivul continuă sincronizarea și începe să funcționeze din nou, apoi actualizează „lastUpdated”. Dacă serverul a încărcat mai puține date, ceea ce înseamnă că nu mai are date noi, sincronizarea se încheie.

Pe diagramă: „last_updated” și „amount” sunt valorile din care sunt salvate aplicatie mobila. „last_item” - ultimul articol trimis de pe serverul Sutnist (Strava). Cea mai nouă valoare va fi solicitată pentru lista viitoare.

Butt: ( ultima actualizare: „2013-01-01 00:00:00”, suma: 100)

Avantaje:

  • Dispozitivul primește cât de multe date poate procesa la un moment dat. Mărimea porției este determinată de teste practice. Elementele simple pot fi sincronizate câte 1000 de bucăți la un moment dat. De asemenea, se întâmplă că, cu un număr mare de câmpuri și logica complexă a procesării de salvare, nu sunt sincronizate în mod normal mai mult de 5 bucăți.

Nedoliky:

  • Dacă există 250 de articole dar actualizate, atunci suma = 100 și restul de 150 nu vor apărea pe dispozitiv. Această situație este în întregime reală și este descrisă în abordare.

Abordarea 4: Sincronizarea corectă în porțiuni

În prima abordare, există o situație posibilă ca, dacă există 250 de intrări în tabel, dar „actualizate” (de exemplu, „2013-01-10 12:34:56”) și dimensiunea porției ajunge la 100, atunci mai mult de primele 100 de intrări vor fi returnate. Alte 150 vor fi adăugate la hard mind (actualizate > ultima actualizare). De ce ar trebui să se întâmple asta? La scrierea primelor 100 de înregistrări, LastUpdated va fi setat la „2013-01-10 12:34:56”, iar următoarea va fi scrisă lui Matim Umov (actualizat > „2013-01-10 12:34:56” ). Nu vă va ajuta să vă limpeziți mintea (actualizat >= „2013-01-10 12:34:56”), deoarece dispozitivul va alimenta la nesfârșit primele 100 de înregistrări.

Situația cu „actualizat” nu este atât de rară. De exemplu, când se importă date din fisier text Câmpul „actualizat” a fost setat la ACUM(). Importarea unui fișier cu mii de rânduri poate dura mai puțin de o secundă. Este posibil ca întregul document să fie acum „actualizat”.

Pentru a corecta acest lucru, trebuie să vikorizați câmpul astfel încât să fie unic în același timp („actualizat”). Câmpul „id” este unic în întregul tabel, deci este necesar să vă asigurați că este și sincronizat.

Ei bine, implementarea acestei abordări arată așa. Serverul oferă o listă de sortări pentru „actualizat” și „id”, iar dispozitivele primesc date pentru „lastUpdated” suplimentar și noul parametru „lastId”. Selecțiile serverului de minte sunt complicate: ((actualizat > lastUpdated) SAU (actualizat = lastUpdated și id > lastId)).

În diagramă: „last_updated”, „last_id” și „amount” sunt valorile care sunt salvate în aplicația mobilă. „last_item” - ultimul articol trimis de pe serverul Sutnist (Strava). Cea mai nouă valoare va fi solicitată pentru lista viitoare.

Abordarea 5: Sincronizarea cu cunoașterea a ceea ce este deja pe dispozitiv

Abordările anterioare nu acceptă faptul că serverul de fapt nu știe câte date au fost stocate cu succes pe dispozitiv. Este posibil ca dispozitivul să nu poată salva o parte din date prin compromisuri inexplicabile. Ar fi rău pentru el să refuze să ofere dovezi că toate (sau nu toate) otrăvurile au fost salvate.

Apropo, proprietarul programului poate personaliza programul în așa fel încât să aveți nevoie de unele dintre date. De exemplu, un client dorește să sincronizeze doar rezultatele din 2 locuri din 10. Sincronizările descrise nu pot realiza acest lucru.

Ideea este cam asta. Serverul stochează (în tabelul „stored_item_list”) informații despre deteriorarea care apare pe dispozitiv. Acesta poate fi pur și simplu un transfer de perechi „id – actualizat”. Acest tabel stochează toate listele de perechi „id – actualizate” de pe toate dispozitivele.

Dispozitivul trimite informații despre otrăvirea care se află pe dispozitiv (lista de perechi „id – actualizat”) la server imediat cu o solicitare de sincronizare. La descărcare, serverul verifică ce probleme pot fi prezente pe dispozitiv și ce se întâmplă în prezent. După aceasta, diferența dintre dispozitive crește.

Cum stabilește serverul ce fel de daune se întâmplă pe dispozitiv? În cel mai simplu mod, serverul va cere o listă de perechi „id – actualizat” cu toate felurile de mâncare (de exemplu, SELECT id, updated FROM dishes). Pe diagramă puteți utiliza metoda „WhatShouldBeOnDeviceMethod()”. În acest caz, serverul trebuie să calculeze (uneori interogări SQL importante) ceea ce este pe dispozitiv.

Cum stabilește serverul ce probleme sunt pe dispozitiv? Interogează tabelul „stored_item_list” de pe acest dispozitiv și preia lista de perechi „id – actualizat”.

Analizând aceste două liste, serverul decide ce să trimită către dispozitiv și ce să ștergă. Pe diagramă există „delta_item_list”. Prin urmare, nu există „lastUpdated” sau „lastId” în intrare, așa că ar trebui să includă pariul „id – updated”.

Cum află serverul despre otrăvire și ce este pe dispozitiv? Când scrieți pe server, puteți contacta parametru nou„items”, care conține o listă de ID-uri de site care au fost trimise dispozitivului în timpul ultimei sincronizări („device_last_stored_item_list”). Desigur, puteți extinde lista de ID-uri ale tuturor site-urilor care se află pe dispozitiv fără a complica algoritmul. Dacă pe dispozitiv sunt 3000 de tulpini și duhoarea se calmează în curând, atunci consumul de trafic va fi și mai mare. Pentru cea mai importantă sincronizare, parametrul „articole” va fi gol.

Serverul este responsabil pentru actualizarea constantă a „stored_item_list” cu datele care provin de la parametrul „items”.

Următorul pas este implementarea mecanismului de ștergere a datelor de server stored_item_list. De exemplu, după reinstalarea programelor pe dispozitiv, serverul este important, dar dispozitivul are încă date actualizate. Prin urmare, atunci când instalați un dispozitiv de program, trebuie să informați serverul pentru a șterge lista_de_articole_ stocate pentru acel dispozitiv. Suplimentul nostru are un parametru de supliment puternic „clearCache” = 1 pentru această intrare.

Visnovok

A fost întocmit un tabel care arată caracteristicile acestor abordări:

Pідхід Trafic Obsyag(5 – grozav) Dificultate în învățare(5 – templu) Voi adăuga un ajutor de memorie(5 – templu) Corectitudinea datelor de pe dispozitiv(5 – templu) Puteți vedea un anumit dispozitiv
1 Totul este sincronizat pentru totdeauna 5 1 5 5 nici
2 Se sincronizează fără actualizare 1 2 5 3 nici
3 Sincronizare în loturi 1 3 1 3 nici
4 Sincronizare corectă în porțiuni 1 3 1 3 nici
5 Sincronizarea cu cunoașterea a ceea ce este deja pe dispozitiv 2 5 2 5 Asa de

Corectitudinea datelor de pe dispozitiv înseamnă că dispozitivul conține toate datele care au fost procesate de server. Ambele abordări nr. 1 și nr. 5 au o rată de succes de 100%, astfel încât dispozitivul primește toate datele de care are nevoie. În alte cazuri, nu există o astfel de garanție. Să nu vorbim despre cei care nu pot fi învingători. Doar că, dacă unele dintre date se pierd pe dispozitiv, atunci este imposibil să le corectezi de pe server (și astfel să afli mai multe despre datele de pe server).

Poate că, din cauza disponibilității tarifelor nelimitate pentru internet și a wifi-ului gratuit, problema interconectarii traficului generat de o aplicație mobilă va deveni mai puțin relevantă. Dar tot trebuie să folosiți tot felul de trucuri, să vă dați seama de abordări „inteligente” care vă vor permite să reduceți costul marjelor și să creșteți productivitatea proviziilor. Nu uita de asta. Uneori sună ca „ce este mai simplu este mai bine”, ținând cont de situație. Sper că din aceste statistici este posibil să alegi o abordare care să te avantajeze.

Există în mod surprinzător de puține descrieri ale sincronizării serverului pe Internet. dispozitive mobile. În acest caz, există o mulțime de aditivi care vin cu o astfel de schemă. Pentru cei care doresc să discute de câteva ori.

BECAPI

Backup-uri curente pe platforma mobilă

Fahivții știu cât de nesigure pot fi programele mobile de pe 1C: unele programe pot eșua, iar prin unele baze de date de clienți pur și simplu se prăbușesc. În același timp, ne înțelegem cu nefiabilitatea dispozitivelor în sine: acestea pot fi sparte, cheltuite, furate, iar investitorii vor să-și economisească banii. Și până la versiunea 8.3.9, nu ne-a lipsit un mecanism de backup al platformei.

În trecut, nu existau butoane „salvați o copie”, iar furnizorii de software Boss trebuiau să facă ei înșiși copii de siguranță. Cum ai cheltuit banii?

Datele bazei de date în sine sunt salvate ca XML.

Este important să indicați numărul de opțiuni de salvare a copiilor - la prima mână, astfel încât clienții să poată alege varianta care li se potrivește cel mai bine: alegeți să locuiți cu ei, trimiteți-le la oficiul poștal, economisiți pe dispozitiv.

Cu acest rang, rozrobniki se asigură suplimentar. Acum că totul a mers prost și mecanismul de creare a copiilor pe Google Drive și Yandex Drive s-a defectat, putem spune adevărul că în Narazi Detectivul va rezolva liniștea, dar între timp putem salva datele cale alternativă. Iar oamenii bogați sunt lipsiți de satisfacție, așa că pot fi liniștiți în privința banilor lor.

Obov'yazkovo este necesar să se pună accent pe servicii sumbre , deoarece dacă dispozitivele sunt stricate sau deteriorate, iar cumpărătorul salvează o copie pe același dispozitiv, datele vor fi cheltuite.

Așa suntem noi Koristuvache i se reamintește în mod clar de necesitatea de a crea copii de rezervă.

Cum salvez copii când se schimbă configurația?

Dacă vorbim despre o decizie în masă, despre un plus care se schimbă, se dezvoltă și se dezvoltă în continuare, necesitând respectarea comportamentului clienților. Clientul poate dori să actualizeze backup-ul, economii de la versiune veche Addendum, nu au fost detalii. Și apoi rămâne sarcina: citiți datele, apoi adăugați datele conform logicii de actualizare din versiunea veche a programului. Cum poți câștiga bani? Pe lângă date, păstrează însăși structura datelor, pentru ca ulterior să știi să le citești.

Există o serie de opțiuni pentru salvarea structurii de date, deși aceasta poate fi salvată în cadrul configurației în sine. Deci, atunci când lansați o nouă versiune a skinului, salvați structura metadatelor ultima versiune aspectul configurației.

Este important de reținut că într-o aplicație mobilă configurația nu trebuie să crească chiar așa, ci trebuie să economisim spațiu în ea, trebuie să lucrăm cât mai compact posibil. Cu toate acestea, adăugarea este în curs de dezvoltare și vor exista o mulțime de astfel de machete și tot mai multe dintre ele devin disponibile în timp.

Din acest motiv, cel mai scurt drum de parcurs cu o aplicație mobilă este - păstrează structura de metadate a fișierului de date. Rezultatul pe care îl obținem este un astfel de fișier, în care inițial salvăm toate celelalte date - versiunea de configurare, diagrama de configurare, între secvențe și apoi scriem datele în sine în format XML. Mai mult, în secțiunea „Date suplimentare” a fișierului, puteți salva și alte date importante care, indiferent de motiv, nu au putut fi înregistrate în XML.

Luăm schema de date pe care am salvat-o în fișier, iar pe această platformă vom crea un pachet XDTO pentru citirea fișierului. Creăm un obiect similar în baza de date, îl stocăm, salvăm procesări suplimentare la actualizare și salvăm obiectul finalizat în baza de date.

Mai jos, în imagine, puteți vedea un indiciu despre cum să scrieți frumos modelul XDTO al acestor configurații. Compania care a lansat programul Boss a experimentat acest lucru, a găsit o serie de moduri, dar a decis asupra acestei opțiuni pentru înregistrarea schemelor de metadate. Când deschideți fișierul de date în sine, puteți vedea structura principală a citirii XML, în care sunt incluse toate metadatele și informațiile suplimentare.

// Înregistrează schema de configurare XDTO model = XDTO factory. Export Model XDTO ("http://v8.1c.ru/8.1/data/enterprise/current-config"); FactoryXDTO.WriteXML(FileView, ModelXDTO); // Citiți diagramele de configurare XDTO model = XDTO factory. FactoryVivantagenya = New FactoryXDTO(ModelXDTO);

Pentru a asigura securitatea utilizatorului, trebuie să-l redirecționați complet și apoi aveți nevoie de o copie de rezervă actualizată. Poate doar experimentezi și apeși toate butoanele aplicației :) Și datele tale exacte pot fi distruse. Prin urmare, în viitor, atunci când eliminăm acțiunile potențial „nesigure”, vom clarifica ce ne dorim cu adevărat și cum putem proceda. Koristuvach-ul este responsabil pentru recunoașterea acțiunilor sale.

Mecanismul de creare a backup-urilor este obligatoriu, dacă vorbim de decizii autonome, dacă utilizatorul salvează toate datele, inclusiv dispozitiv mobil: Clientul își poate cheltui dispozitivul și banii vor fi cheltuiți. Eu, s-ar părea că din moment ce programul nu funcționează autonom, ci este conectat la serverul central, atunci serverul nu trebuie să aibă astfel de probleme, chiar dacă dispozitivul își pierde conexiunea la server, își preia toate datele de pe serverul din nou și totul va fi ok.

Cu toate acestea, utilizatorii nu vor folosi întotdeauna backup-urile vikory în același mod în care știm noi de la ei :) Ei chiar le vikorizează adesea pentru a copia pur și simplu datele înapoi. Acesta este într-adevăr un comportament ciudat, dar utilizatorii de aplicații mobile sunt prea leneși să-și dea seama de ce ar fi putut să fi făcut greșeli la introducerea datelor și trebuie doar să recupereze datele și să reintroducă datele pentru ziua curentă. După ce am analizat statisticile robotului cu programul Boss, am aflat că aceasta este o practică normală și un astfel de comportament în rândul clienților apare mai des, dar nu ne-am fi putut presupune.

Și dacă aveți probleme cu sincronizarea cu alte dispozitive, sunteți responsabil pentru procesare. Iată o grămadă de nobili:

  • deschideți conexiunea de la server, specificând că datele se vor pierde așa cum au fost, iar o copie va fi actualizată pe dispozitivul clientului;
  • Pe scurt, pentru dezvoltator - lăsați-l să actualizeze imediat o copie pe toate dispozitivele, după ce a înregistrat anterior astfel de mecanisme.

Mai este un punct aici. Am salvat singuri toate copiile de rezervă, am controlat întregul proces și am prins acțiunile vânzătorului chiar în cod atunci când am făcut clic pe butonul „Salvați o copie”. Totul poate fi rezolvat mai târziu. Platforma 8.3.9 are acum capacitatea de a salva copii de rezervă pe platforma însăși. Și koristuvach-ul va face asta fără știrea noastră. Dacă este necesară sincronizarea cu baza de date centrală, este necesar să tratați cu atenție un astfel de scenariu. Trebuie să verificăm pe serverul nostru dacă utilizatorul a restaurat o copie salvată anterior și poate vedea că soluția a fost rezolvată. Nu ne putem permite să lăsăm datele să devină nesincronizate.

OBMINI

Dacă vorbim de decizii de confidențialitate pe o platformă mobilă, atunci avem un deputat care, de exemplu, vrea să fie vikorist platforma mobila pentru agenții lor de vânzări și astfel încât să facă schimb de date cu o bază de date centrală. Totul este simplu aici: o bază de date, mai multe dispozitive, configurați un server, stabiliți conexiuni de la acesta. Ei bine, problema comunicării între dispozitive este ușor de rezolvat.

Pe lângă faptul că vorbim despre programul de masă, există o mulțime de baze de date, pentru fiecare dintre mulți oameni prosperi, situația se înrăutățește. Clienții au devenit obsedați de program din piață și doresc să se sincronizeze unul cu altul. De exemplu, o persoană a descărcat un program pentru finanțe speciale și acum dorește ca echipa să se alăture și să lucreze împreună într-un singur plus. Există o mulțime de resurse, datele se dezvoltă, cresc și este nevoie de un număr mare de baze de date. Cum să organizezi totul? Koristuvach nu va contacta personal distribuitorii, astfel încât aceștia să creeze o bază de date puternică pentru ei și să permită capabilități de sincronizare. Vrei să apeși butonul și să se întâmple totul odată. In acelasi moment.

Cum să o repar? Aici mecanismul de date vine în ajutor. Vă permite să organizați o singură bază de date, unde există o singură configurație globală, iar în acest caz, în cadrul aceleiași baze de date globale, sunt salvate un număr mare de baze de date client.

Cel mai bun lucru este că puteți adăuga clienți dinamic, programatic, fără participarea noastră. În realitate, comercianții pur și simplu dau clic pe butonul „înregistrează-te pe server” și totul este gata: pe server este creată o bază de date personală și pot începe imediat să tranzacționeze în ea.

Cum poți câștiga bani? Prima și cea mai simplă soluție este să scrieți propria bază de date a serverului folosind acest mecanism. Când compania noastră a început să lucreze la programul Boss și la schimburile din acesta, am făcut același lucru cu prima versiune: am scris o bază de server cu un mecanism de subsecțiuni de date. Totul a mers, mai ales că nu era nimic complicat - separatorul bazelor era recuzita ascunsă.

Și atunci ne-am dat seama că bicicleta s-a spart :) De fapt, deciziile sunt deja gata, și într-o situație nouă la care nu ne-am gândit încă. Tse 1C: proaspăt.

Aici este gândită scalabilitatea serviciului: cu ce să lucrezi, dacă există mai multe date și baze de date, deoarece există o creștere cu toate acestea. Aici este momentul creației copii de rezervă zone de date: atunci nu facem doar backup uneia dintre bazele de date ascunse, creăm și copii ale unui anumit cont. Mai mult decât atât, mecanismul este astfel încât copiile sunt făcute doar dacă sunt cu adevărat necesare. Deoarece koristuvach nu a intrat în baza de date de ceva timp, nu ne obosim să facem copii, deoarece nu s-a schimbat nimic acolo. O altă caracteristică a Fresh este că serviciul de implementare are un mecanism de reducere a cererii pe server, iar acest lucru este și mai important dacă aveți o mulțime de baze de date.

Zagalom Fresh pentru noi este ceva nou și proaspăt. Încetul cu încetul încercăm să ne instalăm într-un nou loc de muncă, dar pur și simplu suntem mulțumiți de munca lui.

Transfer de date. Cum se implementează pentru schimbul între dispozitive

Platforma oferă două mecanisme - servicii SOAP și http. Există aspecte ale modului de accesare a acestor servicii dacă este implicat mecanismul de date. Cu toate acestea, este necesar să adăugați parametri care să indice numărul specific al zonei în care vă desfășurați, deoarece pe aceeași platformă nu putem determina în ce bază vă desfășurați. În plus, același comerciant poate lucra cu mai multe baze de date într-o singură bază de date (imagine uimitoare).

Pe lângă servicii, suplimentul Boss implementează un schimb de întâlniri: un utilizator introduce date, iar celălalt le elimină. Utilizatorii de dispozitive mobile au spus că totul se întâmplă, așa că ne-am gândit cum un serviciu mai bun koristuvatisya - SOAP chi http. Fluiditatea conexiunilor a jucat un rol cheie. Cu http, viteza conexiunii este mai bogată, iar atunci când ne conectăm prin SOAP, suntem liberi de descrierea serviciului, ceea ce este important și va dura mult timp. Platforma are o modalitate de a salva o descriere a serviciului, dar prin parametrii pe care îi adăugăm dinamic, nu putem vikoriza mesajul WS. În plus, accesul la serviciile http este mai ușor și mai flexibil, după cunoștințele noastre.

Ei bine, scopul nostru este să implementăm schimburi în timp real. Prin urmare, vă îndemnăm să nu lucrați în așa fel încât corespondenții să se întâmple undeva, să apese orice buton, să vă gândiți cât de relevante sunt datele și cine este responsabil cu efectuarea actualizării... Pentru colaboratori, datele va fi relevant. Mirosurile au sunat așa, lucrând în mesageri - trimițând una dintre date și respingând imediat cealaltă. Totul va fi mittevo. Există aceleași beneficii pe care le suferă o afacere: un vânzător a finalizat vânzările, celălalt este responsabil să rezolve imediat situația actuală, fără a lua nicio măsură.

Prin urmare, în Boss, trebuie să te implici în schimbul de informații de fundal. După ce skin-ul scrie date în bază, începe un job de fundal pentru a iniția schimbul. Prima parte este trimiterea datelor către server. Apoi alte dispozitive vor recunoaște care sunt noile date. Pentru cine suntem o notificare PUSH. Această schemă este deja în funcțiune și va continua să umple lichidul.

Ne-am dorit și mai mult, deoarece lucrăm în timp real, dar de obicei nu avem multe date. Avem XML mic, dar în acest caz trimitem informații despre aceste date de la primul dispozitiv către server, serverul trimite PUSH către alt dispozitiv, iar apoi celălalt dispozitiv, după ce a eliminat PUSH, inițiază un schimb pe partea sa, merge la serverul și preia datele, preia datele Și apoi întărește dovezile că datele au fost eliminate. A fost mult timp, dar datele în sine nu erau foarte bogate.

Ne-am întrebat cum am putea accelera acest proces.

De ce ne-am dat seama ce să facem cu PUSH și cum îl puteți vikoriza în continuare. S-a dovedit că PUSH va înlocui câmpuri precum textul dat. Documentația pentru iOS și Android afirmă că dimensiunea notificării PUSH este limitată, dar nu am avut destule și am vrut să ne asigurăm că toată lumea vă răspunde. Am verificat că pentru iOS numărul de caractere permis este de 981 de caractere, iar pentru Android – 3832 de caractere. În cazul rămas, pot fi utilizate limitele, în acest caz pot fi inserate unul sau mai multe obiecte de bază. Și apoi distribuitorii companiei au schimbat puțin schema. Dacă nu sunt suficiente date, le trimitem de pe un dispozitiv, le preluăm pe server, le împachetăm în PUSH acolo și le trimitem direct pe alt dispozitiv. Schema a devenit mai scurtă, iar schimburile au devenit și mai rapide :)

Un punct important în vikoristan PUSH – nu dratuyemo koristuvachiv.

Este foarte ușor să treci peste această situație: pur și simplu nu copleși sistemul cu multe notificări PUSH:) Pe măsură ce lucrezi în același timp cu suplimentul, poți depăși bogăția notificărilor. Când platforma rulează, utilizatorul nu trebuie să IMPINGE, totul este activat automat. Și dacă programul este închis, clientul are o mulțime de mesaje necitite. Prin urmare, în orice moment, nu este posibil să trimiteți următorul PUSH până când conexiunea este eliminată de pe dispozitivul pe care programul îl rulează, iar PUSH-ul anterior este deja activ.

Un alt aspect al schimbului este robotul prin Internet. Trebuie să facem vicoriştii cât mai asincroni posibil. Nu o poți face ca înainte - ai scris codul - ai sunat funcția - ai verificat până s-a terminat - ai anulat confirmarea - și totul este ok. Dacă lucrați prin internet, veți fi în continuare conectat la schimburi populare, de exemplu, internet instabil, stabilind timeout-uri în timpul executării operațiunilor banale. Prin urmare, este necesar să se gândească în avans la arhitectură.

Uitați-vă la dispozitivul de înregistrare, care este disponibil în plus dacă doriți să vă înregistrați. Știți cât este ceasul, trebuie să obțineți o mulțime de date, dar apoi doriți ca vânzătorul să se ocupe și de această bază. Koristuvach apasă butonul „Înregistrare”. De la bun început, totul a fost foarte simplu: ți-au luat datele, le-au înregistrat pe server și, te rog, poți procesa și conecta contribuitorii. Dar apoi am ieșit din situație, deoarece în unele dintre bazele de date corporative de pe dispozitiv la momentul înregistrării, acestea crescuseră deja foarte mult. Această schemă nu a funcționat, pentru că În timp ce înregistrați întreaga bază de date pe server, setând un timeout de conexiune sau pur și simplu decupând internetul. De aceea am înlocuit un strigăt sincronizat cu multe scurte. Mesajele sunt împărțite și nu sunt transmise toate odată. Nu suntem verificați în mod regulat atâta timp cât serverul procesează și înregistrează date. Datele au fost trimise, confirmarea a fost eliminată, datele au fost eliminate și conexiunea a fost închisă. Periodic, trebuie să reîmprospătați serverul, ce este acolo și cum este generat, iar pe server există lucrări de fundal care înregistrează datele. În acest fel, vor fi multe clicuri de la server, dar putem garanta că totul va merge bine. Și nici timeout-urile, nici instabilitatea internetului nu vă împiedică să încărcați toate datele pe server.

ACTUALIZAȚI

Schimb între dispozitive cu diferite versiuni de programe

Vorbim despre suplimentul de masă care este lansat pe piață, necesitând o atenție deosebită procesului de actualizare și schimb de date.

Dacă ați lansat un supliment pentru o companie și ați dorit să îl actualizați, atunci sunați și dați pur și simplu o comandă, astfel încât toți furnizorii de securitate să instaleze noul supliment împreună. Cu koristuvachs care au deturnat programul de pe piață, nu poți câștiga bani așa. Nu le poți spune ce să facă. De exemplu, lucrează la adăugare și nu doresc să o reînnoiască nici imediat, nici pentru totdeauna. Nu au o actualizare automată bună, așa că situația este deosebit de proastă dacă există câteva dispozitive conectate la baza centrală și toate au versiuni diferite. Un alt motiv pentru acest fenomen este ora publicării în piețe: este diferit pentru iOS și Android. Reparăm adesea lucruri cheie, de exemplu, corectarea erorilor critice și nu vrem să le verificăm, stațiile de andocare iOS le verifică pe cele două principale versiune noua, vrem doar pentru Android, dar vrem să lansăm actualizarea imediat.

Nu avem dreptul să-i comandăm pe Koristuvachs. Dacă vrei o miros, o să-ți placă, dar dacă nu, nu ezita. Puteți vedea clar comparația instalărilor programelor Boss cu versiunile GooglePlay, precum și statisticile de pe serverul nostru - versiunea reală a programelor instalate pe dispozitivele care au fost schimbate cu serverul în ultimii ani. Acesta este genul de lucru care trebuie făcut. Tse versiuni diferiteși metadate diferite. Și trebuie să organizăm un schimb normal pentru asta :)

Retailerii se confruntă cu următoarele provocări:

  • Este necesar ca totul să funcționeze. Locuitorii nu sunt de vină pentru că simt disconfortul pe care duhoarea a uitat să reapară. Duhoarea s-a instalat și nu marchează vina nimănui. Am actualizat - a devenit din ce în ce mai bun.
  • Este responsabilitatea noastră să ne asigurăm că aceste date sunt salvate. De exemplu, un corespondent a primit un agent și detalii noi, dar celălalt încă lipsește. Dacă un client care nu are detalii noi își schimbă dispozitivul, atunci nu este vina lui să întâmpine probleme pe alte dispozitive.
  • Este necesar să ne asigurăm că datele sunt actualizate atunci când trecem la o versiune nouă. Dacă un client crede că este gata să actualizeze, va avea automat informații noi pe care nu le-a avut doar pentru că avea versiunea veche.

Cum ai cheltuit banii?

1. Suntem vikorist pe serverul 2 planuri de schimb. Primul este pentru schimbul de dispozitive, iar celălalt este pentru actualizare. De exemplu, am fost trimiși de reprezentantul Koristuvacheva, dar nu există o singură persoană în lume, dar datele sunt inconsecvente. Nu ne putem aminti. Și dacă sunteți reînnoit, este responsabilitatea noastră să vă trimitem toate informațiile pe care nu le cunoșteați. Pentru aceasta aveți nevoie de un alt plan de schimb.

2. Pentru înregistrarea și citirea obiectelor de către vikoryst, același mecanism este utilizat pentru vikoryst pentru copii de siguranță, astfel încât versiunea metadatelor să fie salvată. În această situație, lucrăm cu serverul și ne putem permite să adăugăm tot ce este util direct în configurație, așa că pur și simplu în aspectul layout-urilor adăugăm la configurația schemelor de metadate în lumea dezvoltării programelor. .

Cum să monitorizezi descărcările în masă pe oră de schimb și pe server

În primul rând, trebuie să controlați disponibilitatea serverului în sine. De la servere există un astfel de miros - duhoarea cade. Nu ne-am gândit la nimic special pentru monitorizare, ci pur și simplu am găsit un robot pe telegramă care țipa că ceva nu este în regulă. Când verificați funcționalitatea serverului, dacă serverul nu este disponibil, administratorii încep să țipe și ridică serverul.

De asemenea, colectăm jurnalul de plăți din jurnalul de înregistrare. Nu există nimic supranatural - la fiecare trei ani colectăm un jurnal de beneficii, le trimitem prin poștă și le revizuim periodic. Acest lucru ajută la bachiti parte a problemei astfel de situații de vina. Nu este dificil să verifici corespondența, să o rezolvi și să îndrepți rapid comenzile. Acest lucru vă permite să identificați și să rezolvați rapid problemele care pot apărea în bazele de date în creștere.

Un alt punct important este acela de a oferi cu bunăvoință lui koristuvachev oportunitatea de a „rara”. Acest lucru ne îmbunătățește statutul în ochii lor și ne onorează. Iar profitorii, cum îi numim noi, „isterici”, care, pentru cele mai mici favoruri, încep să ne obligă să anunțăm prin corespondență că nu fac nimic, baza nu este interesată, totul este teribil de rău. Uneori chiar ne avertizează, pentru că uneori descoperă astfel de bug-uri pe care alții încă nu le-au descoperit, bug-uri serioase.

Koristuvacha nu poate fi lyakati. Nu mesaje înfricoșătoare, nimic altceva. Chiar trebuie să explic totul și să-l arăt. Și promitem că vom crede totul. Acești oameni sunt fericiți, chiar dacă aud ce spun despre ei și cred doar că îi pot ajuta :)

Acest articol a fost scris în urma dovezilor citite la conferința INFOSTART EVENT 2016 DEVELOPER. Mai multe articole pot fi citite.

În 2020, cerem tuturor să participe la 7 evenimente regionale, precum și la aniversarea INFOSTART EVENT 2020 de la Moscova.

 

 

Tse tsikavo: