Extensia Beeweevee

Introducere

Colaborarea în timp real a devenit o necesitate în condițiile partajării constante de informații, în condițiile lucrului în echipă, în condițiile mai multor puncte de lucru, în condițiile sincronizării datelor, a transmiterii modificărilor în timp util către restul echipei.

Productivitatea lucrului în echipă este mai mare comparativ cu suma productivităților individuale. Membrii unei echipe interacționând direct pot rezolva probleme mai rapid crescând implicit și eficiența.

Colaborarea în timp real va juca un rol important în viitorul colaborării online, în eficientizarea companiilor avantajând atât colaborarea în interiorul acestora, cât și cea în exterior, cu clienții.

Colaborarea în timp real furnizează utilizatorilor firmelor și clienților acestora instrumente pentru îmbunătățirea productivității la partajarea și crearea informației digitale, sau atunci când se lucrează cu echipe dispersate geografic.

Posibilitatea de a face schimbări în timp real la un proiect cu colegi aflați în alt oraș, de a actualiza statusul proiectului cu o echipa de la altă subunitate sau de a lăsa angajații să facă modificări de ultim moment înaintea întâlnirii cu clienții, toate pot fi făcute în timp real. Astfel, se salvează timp și bani.

Interfața pentru programarea de aplicații BeeWeeVee oferă abilitatea de a încorpora colaborare în timp real într-o aplicație Desktop sau Silverlight. Dacă aplicația folosește paradigma de creare a conținutului creare-evaluare-repetare în care se poate contribui la conținut. Creare-evaluare-repetare este una din cele mai folosite variante în activitățile economice, pornind de la editarea de text pentru CMS, Wikis, programare, documente până la informații structurate în diagrame de flux pentru procesele de afaceri.

BeeWeeVee este proiectată să fie conectată la aplicații noi sau existente. Conectarea la aplicații existente este condiționată de folosirea unui runtime compatibil.

BeWeeVee este folositor indiferent cărui domeniu se adresează software-ul dezvoltat. Acesta este proiectat să ajute la crearea de soluții care să permită utilizatorilor să colaboreze indiferent de granițe.

BeWeeVee este o tehnologie care rezolvă o parte din dificultățile implementării caracteristicilor pentru colaborare în aplicații .Net. Se ajustează la nevoile arhitecturale și de persistență. Algoritmul de rezolvare a conflictelor este peer-to-peer, iar federalizarea este disponibilă din proiectare; rămâne la alegerea dezvoltatorului modul de comportare. Aplicațiile care folosesc BeWeeVee sunt propriul server, astfel pot să lucreze deconectate și să utilizeze caracteristici cheie: urmărirea schimbărilor și playback.

Nu este nevoie de implicare în procesul de rezolvare a conflictelor la sincronizarea datelor. Scrierea simultană de text și desenarea este un efect secundar al acesteia.

Dificultatea sincronizării datelor se datorează faptului că este sensibilă la defecte. Orice defect, indiferent cât de mic este, poate corupe întreg șirul de operații.

Esențialul funcționării BeeWeeVee se reduce la folosirea șirurilor de operații. Documentele, fotografiile, vectorii, paginile web se schimbă de-a lungul timpului. Ceea ce se vede la un moment dat este în realitate rezultatul tuturor operațiilor efectuate asupra acestora de când au fost create. Șirul de operații conține informații care permite BeeWeeVee să refacă starea datelor la orice moment dat.

Șirul de operații permite un număr nelimitat de reveniri la oricare din operații efectuate din șir și recrearea pas cu pas a datelor. Aceste reveniri sunt extrem de importante datorită faptului că permit înțelegerea muncii colegilor și implicit cum au ajuns acolo, oferind informații contextuale. Reprezintă un punct de plecare pentru a înțelege de ce a făcut într-un anume fel un coleg, pentru a înțelege algoritmul, ce a încercat, ce a mers și ce nu.

BeWeeVee

Extensia BeeWeeVee furnizează colaborare în timp real în Visual Studio astfel utilizatorii sunt capabili să efectueze sesiuni de programare la distanță. Elementul cheie pentru o muncă în echipă eficientă este partajarea codului cu colegii.

Această extensie este îmbunătățită constant. Astfel ultimele modificări aduse pentru BeeWeeVee sunt:

O interfață grafică mai dezvoltată datorată feedback-ului utilizatorilor;

Conexiune mai stabilă;

Network Troubleshooter vine cu abilitatea de a semnala problemele cu conexiunea rețelei;

Conexiune mai rapidă pentru accesul fișierelor la distanță.

Utilizarea BeWeeVee vine la pachet cu o serie de avantaje: susținere tehnică, colaborarea specialiștilor cu echipa de producție, update-uri, acces la codul sursă, dezvoltarea de caracteristici personalizate.

Exemple de utilizare BeWeeVee:

Huddle Group folosește BeWeeVee pentru a furniza o parte web pentru Sharepoint 2007 și 2010 integrându-se perfect ;

JoinCube

Alight Learning folosește BeWeeVee pentru a furniza colaborare în timp real prin intermediul textului pentru studenți și profesori.

BeWeeVee SDK (Software Development Kit) permite îmbunătățirea aplicațiilor cu elemente de colaborare în timp real. Folosind Transformare Operațională, BeWeeVee oferă posibilitatea sincronizării structurilor de date fără a fi necesară blocarea unei copii centrale pentru a da impresia unei absențe a latenței în cazurile de colaborare.

Folosirea BeWeeVee API în aplicații are ca scop implementarea unor funcționalități de editare de text, desenare, creare de diagrame sau pur și simplu sincronizarea de colecții de obiecte.

BeWeeVee este proiectat pentru a fi conectat în aplicații noi sau existente. Dacă respectiva aplicație a fost dezvoltată în oricare din runtime–urile compatibile, se pot integra activități de colaborare în timp real pas cu pas la un cost minim.

Varianta de încercare pentru mediile academice și pentru folosirea în afara scopurilor comerciale vine și cu prototipuri.

Caracteristici:

Lipsa conflictelor la sincronizare; BeeWeeVee permite observarea efectelor fiecărei apăsări a unei taste;

Proiectarea ca API vine în sprijinul dezvoltatorilor de software pentru a îmbunătăți orice aplicație;

BeeWeeVee este proiectat astfel încât poate fi extins; suportă editarea simultană în timp real textului, diagramelor sau a altor structuri de date personalizate;

Poate fi folosit pentru aplicații desktop, dar și pentru RIA (Rich Internet Application);

Doar implementarea Transformării Operționale folosește .NET și Silverlight, iar interoperarea folosește Javascript;

API pentru .Net pentru a include caracteristici de colaborare în timp real;

Sincronizarea datelor fără conflicte cu ajutorul Transformării Operaționale;

Sprijin pentru editarea textului simultan;

Susținere pentru arhitecturile Client-Server și Peer-to-Peer;

Model pentru clasele de baza ale BeWeeVee API;

Exemple pentru WPF si Winforms;

Exemple interoperare Javascript/Silverlight;

Exemple Microsoft Peer-Networking (P2P).

Runtime-uri compatibile cu BeWeeVee:

.Net 3.5 în Visual Studio 2008;

.Net 4.0 în Visual Studio 2010;

.Net 4.5 în Visual Studio 2012;

Javascript (prin intermediul interoperării cu Silverlight; necesită instalarea Silverlight pe partea de client).

Fig.1 – Matricea domeniilor

Elemente:

Motor transformare Operațională Peer-to-Peer;

Model extensibil;

Conceput pentru a îmbunătăți experiența utilizatorilor.

BeWeeVee folosește Transformarea Operațională pentru a propaga schimbările efectuate asupra structurilor de date prin intermediul arhitecturii client-server sau peer-to-peer. Documentele, diagramele, paginile web sau alte formate digitale necesită schimbări de-a lungul timpului. Schimbările pot fi transformate de BeWeeVee pentru a crea operații canonice care pot fi replicate pentru obținerea iluziei unor schimbări în timp real. Când operațiile sunt integrate local devin parte a șirului de operații care reprezintă întregul document la un moment dat.

BeWeeVee suportă liste generice de date permițând utilizatorilor să execute sincronizarea datelor în rețele cu topologie peer-to-peer. Cum susținerea pentru schimbările în timp real fără conflicte este independentă de conținut, multe tipuri de aplicații software ar fi avantajate de integrarea BeWeeVee.

Arhitecturi

BeeWeeVee este o tehnologie nativă peer-to-peer. Dacă aplicația folosește o arhitectură client-server, unul dintre calculatoare se va comporta ca server, iar altul va prelua funcționalitățile clientului. Fiecare calculator care folosește BeeWeeVee într-o arhitectură peer-to-peer sau client-server se comportă ca un server și poate folosi protocoale standard sau proprietare pentru a trimite operațiile la restul calculatoarelor.

Fig. 2 – Arhitectura de bază

În alte variante, mai multe calculatoare se pot comporta ca servere federalizate folosind același protocol sau protocoale diferite. BeeWeeVee nu impune implicit canalul de comunicație, astfel dezvoltatorul aplicației este cel care alege ce tehnologie de comunicație se potrivește cel mai bine aplicației. În cazul unei variante tipice peer-to-peer dezvoltatorul aplicației poate decide câte calculatoare va include în rețea.

Fig. 3 – Arhitectura P2P

Un alt exemplu ar fi implementarea unei arhitecturi Thin Server.

Fig. 4 – Arhitectura Thin Server

Modul de funcționare

Tehnologia transformării operaționale folosită de BeWeeVee permite o gamă largă de funcții de colaborare conducând la sincronizarea structurilor de date indiferent de numărul proceselor de modificare la un moment dat de timp.

BeWeeVee sincronizează copiile partajate folosind o funcție de transformare operațională și un protocol de control al concurenței care permite execuția operațiilor aplicate asupra copiilor într-un sistem distribuit P2P.

Algoritmul pentru controlul concurenței determină care operație ar trebui transformată, dar și ordinea de transformare a operațiilor, iar funcția de transformare definește cum pot fi transformate operații diferite.

Fiind dată o structură de date, dezvoltatorul poate semnala extensiei orice operație de inserare sau ștergere efectuate asupra acesteia. BeWeeVee permite modificările mai multor persoane fără a afecta modelul CCI care stă la baza extensiei. Astfel, dezvoltatorul nu mai trebuie să se asigure că structurile de date ale colegilor sunt identice.

BeWeeVee vine cu o API de nivel scăzut care permite dezvoltatorului să notifice algoritmul de control al concurenței despre schimbările efectuate extern asupra structurilor de date. Sunt 3 tipuri de operații pe care ConcurrencyController-ul le știe: operații de inserare, de ștergere și operații de identitate.

Ultimul tip de operații este doar pentru uz intern, nefiind folositor din punctul de vedere al utilizatorilor. În schimb, inserarea și ștergerea sunt operații de bază cu scopul final de a sincroniza copiile partajate. API de nivel scăzut a ConcurrenceController-ului este partea responsabilă din BeeWeeVee cu gestionarea necesară pentru efectuarea transformărilor cerute.

BeWeeVee vine și cu o API de nivel ridicat care asigură abilitatea de a crea liste sincronizabile care se ocupă de partea de semnalizare.

Șirurile de operații permit BeWeeVee să reconstruiască starea unui obiect la orice moment în timp. Dispunând de suficient spațiu de stocare un șir de operații poate defini întregul istoric al schimbărilor efectuate asupra unui document. Modul de funcționare se aseamănă cu salvarea de către utilizator la fiecare apăsare de taste a unei copii pentru a fi folosită mai târziu, doar că BeWeeVee face acest lucru și pentru ceilalți utilizatori aflați la distanță, asigurând în același timp consistență și menținerea intenției de poziționare.

Șirurile de operații în contextul SDK-ului BeWeeVee activează caracteristici precum: o infinitate de Undo, playback al schimbărilor.

Pornind de la exemplul unei liste <1,2,3> la care utilizatorul vrea să adauge ’a’ între 1 și 2, șirul de operații ar avea următoarea formă:

(InserareLaSfârșit ’1’) (InserareLaSfârșit ’2’) (InserareLaSfârșit ’3) (InserareÎntre<1,2> ’a’)

Aplicând operațiile respective la stare inițială se poate vedea modul în care schimbările au dus obținerea formei finale. Complexitatea modului de funcționare apare datorită faptului că aceste schimbări nu sunt produse de un singur utilizator, și alți utilizatori la distanță ar putea avea nevoie să facă modificări. O inserare a caracterului ‘a’ între 1 și 2 poate intra în conflict cu inserarea simultană caracterului ‘b’ între 1 și 2.

Astfel șirul de operații va fi:

(InserareLaSfârșit ’1’) (InserareLaSfârșit ’2’) (InserareLaSfârșit ’3) (InserareÎntre<1,2> ’a’) (T(InserareÎntre<1,2>) ’b’)

iar pentru utilizatorii la distanță șirul de operații va fi:

(InserareLaSfârșit ’1’) (InserareLaSfârșit ’2’) (InserareLaSfârșit ’3) (InserareÎntre<1,2> ’b’) (T(InserareÎntre<1,2>) ’a’).

T semnalează faptul că BeeWeeVee a transformat operația astfel încât aplicarea ei va determina aceeași stare finală pentru fiecare.

Transformarea OT ajustează parametrul pozițional al unei operații în concordanță cu efectul dorit al pozițiilor generate ținând cont de operațiile simultane pentru a menține consistența.

Deși schimbările tehnologice au făcut lucrurile mai ușoare, comunicarea față în față este indispensabilă în anumite momente.

Fig. 5 – Caracteristicile

Similar Posts