PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie...

61
PRIVATESKY Proiect de cercetare al Facultatii de Informatica Iasi https://profs.info.uaic.ro/~ads/PrivateSky https://github.com/PrivateSky/privatesky

Transcript of PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie...

Page 1: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

PRIVATESKY

Proiect de cercetare al Facultatii de Informatica Iasi

https://profs.info.uaic.ro/~ads/PrivateSky

https://github.com/PrivateSky/privatesky

Page 2: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

Agenda

- Introducere

- Concepte

- Tehnologii

- Arhitectura

- Exemple de aplicatii

Page 3: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

Introducere

PrivateSKY este un proiect open-source ce ofera solutii celor ce doresc ca

aplicatiile dezvoltate de ei sa aibe una sau mai multe din caracteristicile

urmatoare:

- Integrare intra si inter-organizationala

- Arhitectura distribuita

- Arhitectura descentralizata

- Serverless

- Prelucreaza date private

- Implementari de sisteme ce au componente de blockchain public sau privat

Page 4: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

Introducere

PrivateSKY foloseste concepte si tehnologii validate in cadrul proiectului

SwarmESB, dar vine ca o versiune noua si mult imbunatatita a acestuia.

Page 5: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

Introducere

Proiectul SwarmESB este open source si se gaseste la adresa

https://github.com/salboaie/swarmESB

SwarmESB si tehnologiile oferite de acesta au fost validate atat in proiecte

comerciale cat si de cercetare de-a lungul timpului. A fost folosit de firme

romanesti in cadrul unor consortii mari cu parteneri puternici din domeniul IT.

Page 6: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

Concepte cheie

- SWARM

- Flow

- Blockchain

- Asset

- Contracte SMART

Page 7: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

SWARM

Este un concept de baza si reprezinta:

- Paradigma noua de programare ce pune accent pe definirea modelelor si

descrierea interactiunilor

- Metafora...

Page 8: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

SWARM - metafora

Cand se executa un cod de tip SWARM defapt se porneste si ruleaza un

workflow. Acesta trece prin mai multe faze (SWARM phase) executate pe unul

sau mai multe noduri PrivateSKY in functie de modelare si nevoi. Drept urmare

putem spune “ca se porneste un roi cu scopul de a executa un task”.

Page 9: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

SWARM si derivate

In PrivateSky pe langa SWARM mai este si alte derivate a acestuia:

- Flow

- Asset

- Transaction

Derivatele au fost obtinute fie prin limitarea unor functionalitati fie prin adaugarea

unor mecanisme specifice.

Page 10: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

SWARM

Mecanism de baza ce permite modelarea si executia unui workflow ce urmeaza

sa fie executat pe unul sau mai multe noduri PrivateSKY.

Primitive specifice:

- this.swarm(“domainName/agent/AgentName”, “phaseName”, [arg1, arg2 …]);

- this.return([arg1, arg2 …]);

- this.onReturn(callback);

Page 11: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

SWARM - modelare

$$.swarm.describe(“SwarmName”, {

public:{ /*description of public members*/},

protected:{/*description of the members that are available to be used only on the node that defines them*/},

private:{/*description of the members that store privacy related data*/},

phaseOne: function(arg1, arg2, ...){

/* phase code - available APIs:

this.swarm(“domainName/agent/AgentName”, “phaseName”, [arg1, arg2 …]);

this.return([arg1, arg2 …]);

this.onReturn(callback); */

}

});

Page 12: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

SWARM - executie

$$.swarm.describe(“SwarmName”, {...});

var swarm = $$.swarm.start(“swarmName”, “phase”, [arg1, arg2 ..]);

swarm.onReturn(function([arg1, arg2 ...]){

});

Page 13: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

Flows

Mecanism ce permite modelarea si executia unui workflow. Un flow se executa

doar in cadrul unui singur node PrivateSKY. Nu detine capabilitatea de a continua

sau muta executia pe alt node PrivateSKY.

Practic putem spune ca este un SWARM limitat in a fi executat doar local.

In principal sunt folosite pentru modelarea proceselor interne PrivateSKY.

Pot fi apelate in cadrul unui SWARM pentru a adauga si refolosi cod privind unul

dintre flow-urile necesare dezvoltarii unei aplicatii.

Page 14: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

Flows - modelare

$$.flow.describe(“FlowName”, {

public:{ /*description of public members*/},

protected:{/*description of the members that are avaible to be used only on the node that defines them*/},

private:{/*description of the members that store privacy related data*/},

phaseOne: function(arg1, arg2, ...){

//phase code

},

phaseTwo: function(arg1, arg2, ...){

//phase code

}

});

Page 15: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

Flows - executie

var Flow = $$.flow.describe(“FlowName”, {...});

$$.flow.start(“FlowName”, “phaseName”, [arg1, arg2 ...]);

sau

var flowInstance = Flow();

flowInstance.phaseName([arg1, arg2 ...]);

Nota: Nu exista conceptul de “constructor” (metoda ce se apeleaza obligatoriu

prima data in momentul in care se instantiaza un flow). Odata descris flow-ul si

instantiat poate fi apelata oricare din metodele modelate in cadrul flow-ului.

Page 16: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

Flows - exemplu

https://github.com/PrivateSky/privatesky/blob/master/libraries/launcher/mkDirRec.js

Page 17: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

Assets

Mecanism de modelare a datelor stocate in cadrul blochckain-ului PrivateSKY.

API similar cu cel al flow-urilor.

Page 18: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

Assets - modelare

$$.asset.describe(“AssetName”, {

public:{ /*description of public members*/},

protected:{/*description of the members that are avaible to be used only on the node that defines them*/},

private:{/*description of the members that store privacy related data*/},

methodOne: function(arg1, arg2, ...){

//method code

},

methodTwo: function(arg1, arg2, ...){

//method code

}

});

Page 20: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

Transactions

Sunt SWARM-uri speciale ce lucreaza cu obiecte de tip Assets in ideea de a

consulta, modifica si valida informatii din blockchain-ul PrivateSKY.

Page 21: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

Transactions - modelare

$$.transaction.describe(“TransactionName”, {

public:{ /*description of public members*/},

protected:{/*description of the members that are available to be used only on the node that defines them*/},

private:{/*description of the members that store privacy related data*/},

phaseOne: function(arg1, arg2, ...){

},

phaseTwo: function(arg1, arg2, …){

}

});

Page 23: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

Instalare si rulare nod PrivateSKY

Preconditii: Node instalat minim versiunea 10.15.3 sau mai nou

1. git clone https://github.com/PrivateSky/privatesky

2. cd privatesky

3. npm run install

4. npm run start

Observatii:

- pentru instalare si rulare pe Windows trebuie folosit un terminal rulat cu

drepturi privilegiate.

- De adaugat o regula privind portul 8080 in firewall pentru a permite

comunicarea

Page 24: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

Instalare si rulare nod PrivateSKY

Daca instalarea a decurs bine in consola se vor afisa datele necesare conectarii la

noul PrivateSKY.

Daca rezultatul difera verificati ca fiecare pas din instalare sa se fi incheiat fara

erori.

Page 25: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

Configurare nod PrivateSKY

Nodurile PrivateSKY se pot configura folosind aplicatia tip linie de comanda

PSKAdmin.

Aplicatia PSKAdmin se regaseste in folderul {root_folder_PrivateSky}/bin

Page 26: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

Structura si organizare fisiere proiect PrivateSKY

Cele mai importante fisiere si foldere in care se

lucreaza cand dezvoltam noi functionalitati sunt:

bin/scripts/build-devel.js

builds/build.json

libraries/

modules/

Page 27: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

bin/scripts/build-devel.js

PrivateSKY foloseste un mecanism propriu pentru descarcarea si instalarea

dependintelor necesare rularii.

Evitam instalarea modulelor direct cu NPM din considerente de securitate. ( a se

vedea numeroasele probleme cauzate de module neintretinute sau registri NPM

neactualizati etc.)

Cand doreste a adauga o noua dependinta se editeaza fisierul si se ruleaza din

nou comanda de instalare cu conditia ca nodul PrivateSKY sa fie oprit.

npm run install

Page 28: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

bin/scripts/build-devel.js

Page 29: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

builds/build.json

Codul necesar rularii PrivateSKY este impachetat in bundle-uri folosind

Browserify.

In cadrul fisierului sunt descrise structura bundle-urilor.

Cand este nevoie de a include intr-unul din bundle-uri o noua librarie sau modul

se editeaza fisierul dupa care se reporneste nodul PrivateSKY.

npm run start

sau exista si optiunea

npm run build

Page 30: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

builds/build.json

Page 31: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

Libraries

Librariile PrivateSKY reprezinta colectii de SWARM-uri (assets, flows,

transactions, swarms).

Structura unei librarii PrivateSKY este similara unui pachet npm. (prezenta unui

fisier index.js sau un package.json ce sa indice fisierul principal)

Page 32: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

Libraries

Page 33: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

Modules

Modulele PrivateSKY sunt proiectele adiacente si necesare rularii unui nod

PrivateSKY. In principal proiectul PrivateSKY foloseste cat mai putine dependente

externe si se bazeaza pe o colectie destul de bogata de module proprii.

Lista tuturor modulelor PrivateSKY poate fi consultata la adresa

https://github.com/PrivateSky

Page 34: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

Modules

Page 35: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

How to SWARM

Page 36: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

How to SWARM

Page 37: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

How to SWARM

Page 38: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

How to SWARM

Continut fisier index.js

$$.swarms.describe("Echo", {

say:function(message){

this.return("Echo is saying: " + message);

}

});

Page 39: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

How to SWARM

Page 40: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

How to SWARM

Page 41: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

How to SWARM

Page 42: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

How to SWARM

Page 43: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

How to SWARM

Page 44: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

How to SWARM

Page 45: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

How to SWARM

Page 47: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

PrivateSKY - arhitectura unui nod

Agent Local

Domain

Agent

Domain Agent

Launcher

VirtualMQ

FolderMQ

with IPC

Client

/ remote agent

PSK DB

PSK DB

PubSub

Channels

HTTP Sandbox

Sandbox

Sandbox

PrivateSKY

Node

Page 48: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

PrivateSKY - arhitectura explicata

Cand se porneste un nod PrivateSKY se executa urmatorii pasi:

- Se porneste un process pentru nodul de comunicare (VirtualMQ)

- Se porneste un process pentru Launcher.

- Odata pornit Launcher-ul acesta verifica configuratia din PSKDB-ul primit ca

si parametru de intrare. Odata incarcata configuratia se porneste si

monitorizeaza cate un proces de tip domeniu.

- Odata pornit procesul domeniu acesta se va conecta la un nod de

comunicare (VirtualMQ) pentru a comunica cu alte domenii sau aplicatii client

Page 49: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

PrivateSKY - arhitectura explicata

Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu

PrivateSKY configurat intr-un nod PrivateSKY se conecteaza la un nod de

comunicare (VirtualMQ) si pune un un mesaj pe canalul domeniului.

Domeniul via http long polling trage mesaj cu mesaj. Odata receptionat mesajul

este deserializat si in functie de agentul vizat transmite catre acesta mesajul

folosind canalul FolderMQ a agentului.

Agentul executa cererea si intoarce catre domeniul raspunsul sau alta cerere in

functie de nevoi.

Domeniul fie transmite raspunsul catre Clientul ce a initializat cererea fie transmite

altui agent sau alt nod PrivateSKY cererea.

Page 50: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

Tipuri de aplicatii - exemple

Integrare intra si inter-organizationala

Aplicatii ce respecta reglementarile GDPR

Aplicatii de tip Blockchain (DAPP)

Aplicatii cu arhitecturi Serverless

Page 51: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

Exemple si documentatie

Proiect mod de lucru cu blockchain-ul PrivateSKY (modelare asset-uri/transactii si

apelare acestora) si nu numai.

https://github.com/PrivateSky/psk-examples

PrivateSKY WIKI project

https://github.com/PrivateSky/privatesky/wiki

Page 52: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

Tehnologii dezvoltate in PrivateSKY - CSB

CSB - Cloud Safe Box

Tehnologie PrivateSKY ce permite stocarea si distribuirea de date sensibile intr-un

mod controlat.

CSB-ul este o arhiva criptata ce contine unul sau mai multe blockchain-uri private

cu date sensibile.

Orice accesare a datelor stocate in cadrul CSB-ului (citire, scriere) este notarizata.

Un CSB poate contine si referinte catre alte CSB.

CSB-urile sunt implementate cu ajutorul modulului PrivateSKY pe nume PskDB.

Page 53: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

Tehnologii dezvoltate in PrivateSKY - EDFS

EDFS = Encrypted Data File System

Middleware de stocare fisiere CSB.

Page 54: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

Aplicatii - CSBWizard

Server HTTP dedicat realizarii de CSB-uri.

Ofera API pentru initializarea unui CSB, adaugarea de fisiere, definirea adreselor

unde sa se faca backup si constructia unui CSB.

Poate fi utilizat de aplicatii dezvoltate pe tehnologii variante (ex. Java, .Net etc.) ce

doresc sa exporte in mod securizat si criptat datele detinute despre utilizatori.

Page 55: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

Aplicatii - PSKWallet

Aplicatie NodeJS de tip linie de comanda.

Permite managementul si lucrul cu CSB-uri locale folosind comenzi intuitive direct

din linia de comanda.

Ofera suport ridicat in ceea ce priveste accesarea flow-urilor de interactiune cu

CSB-urile.

Page 56: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

Aplicatii - PSKWallet

Page 57: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

Aplicatii - CSBUI

Aplicatie React Native dedicata managementul CSB-urilor personale.

Ofera suport in crearea, editarea si distribuirea de CSB-uri.

Ofera posibilitatea de a recupera unul sau mai multe CSB-uri “pierdute”

(recuperarea dintr-un backup anterior a unui CSB si vizualizarea/editarea lui pe un

nou echipament fie el PC, telefon, tableta etc.)

Ofera posibilitatea distribuirii de CSB-uri catre alte entitati sau utilizatori.

https://github.com/PrivateSky/csbui

Page 58: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

Aplicatii - CSBUI

https://github.com/PrivateSky/csbui

Page 59: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

CSBUI

Page 60: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

CSBUI

DEMO folosind https://github.com/PrivateSky/csbui/tree/master/docker

Preconditii: Avem nevoie de infrastructura de tip Docker

1. Build Dockerfile folosind scriptul ./build.sh

2. Lansare container folosind scriptul ./start.sh

3. Accesare pagina http://localhost:3000

In caz ca apar schimbari sau erori si se doreste reluarea procesului de instalare

mai intai se ruleaza scriptul clean.sh abia mai apoi reluand pasii de la 1 pana la 3.

Page 61: PRIVATESKY - profs.info.uaic.roadria/teach/courses/pcd/resources/PrivateSky.pdf · Cand o aplicatie Client/Agent remote doreste sa comunice cu un domeniu PrivateSKY configurat intr-un

Tema

Tema 5

Dezvoltati o aplicatie care foloseste ca back-end PrivateSKY. Realizati o

documentatie care sa prezinte sistemul dezvoltat.

Tema 5 + echivalare Test 2

Dezvoltati o aplicatie integrabila cu CSBUI in care sa implementati usecase-uri ce

folosesc date confidentiale (parole, notite, cheltuieli etc.) care pot fi partajate intre

grupuri de persoane. Realizati o documentatie care sa prezinte sistemul dezvoltat.