PLANTER/Dibuix Distribuit/specs/28-9-2007

De GERMINADOR wiki

Dreceres ràpides: navegació, cerca

< PLANTER < Apunts Dibuix Distribuït
de sistemes i projectes de creació col·lectiva en xarxa.

m.Lloc on hi ha les plantes nades, on es crien les plantes petites, destinades a ésser trasplantades; les mateixes plantes. (Diccionari IEC).

Especificacions Dibuix distribuit (v 0.1)


Contingut


Es tracta de un programari que permet definir a qualsevol plana web una regió de Xpx x Ypx (triable per el propietari/a del bloc) on la gent pot dibuixar sense necesitat de registrar-se ni fer cap acció prèvia. La gent pot dibuixar talment com si un bloc real o paret es tractés. En realitat el sistema es una xarxa distribuida de blocs i servidors de blocs interconnectats entre ells.


El programari consta de dues parts:

  • Servidor
  • Client

[edita] Client

  • Per simplicitat es podrà dibuixar només en negre sobre blanc.
    • Pensar en la possibilitat de poder dibuixar en un color sobre qualsevol altre (mantenir la idea de dibuix binari però poder triar els colors per integrar-ho millor a qualsevol espai web -reflexió a posteriori, dani-)
  • El dibuix es col·laboratiu, es a dir que poden haver diversos usuaris simultanis dibuixant sobre la mateixa pàgina del bloc.
  • Hi ha la possibilitat de pasar de pàgina. La nova pàgina comença en blanc
  • Hi ha la possibilitat de poder navegar per les pàgines del bloc (Imatge:Weather-severe-alert.png i dibuixar en pàgines anteriors ja dibuixades?- reflexió dani)
  • Poder esborrar pas per pas els traços que has fet sobre la pàgina actual del bloc (es faria tecnicament en criteri de la sessió, es a dir un usuari te dret a esborrar tots els traços que ha fet en aquella sessió, això per tal de permetre esborrar sense necesitat de autentificació)
  • Es podria mostrar informació com:
      • Nombre actual de pàgines d'aquest bloc
      • Nombre actual d' usuaris en aquest bloc
  • Hi ha la possibilitat de subscriure't a un bloc mitjançant RSS, tal com si fos un blog normal.


Imatge:Weather-severe-alert.png Coses a pensar:

  • Què pasa quan hi ha més d'un usuari i un d'ells pasa de pàgina (crea una pàgina nova al bloc).
  • Possibilitat de afegir "Notes" (text) a les pàgines del bloc, o etiquetes "tags".

[edita] Servidor

  • Cada bloc està lligat a un únic servidor (intercanviable facilment a la configuració)
  • El servidor magatzema tota la informació dels dibuixos de tots els seus "blocs". I totes les pàgines de cadascun dels blocs.
  • El servidors tenen coneixement dels altres servidors de la xarxa, i actualitzen aquesta informació d'una manera periodica a determinar pel disseny tècnic.Aquest coneixement farà possible la representació de la xarxa global de blocs a partir de la url de qualsevol dels seus servidors
  • El servidor es un programari de codi obert que qualsevol persona pot instal·lar configurar o reprogramar pels seus interesos seguint les condicions de la llicència, a determinar.

[edita] API

El sistema de dibuix distribuit té una API amb els següents propòsits:

  • Permet la comunicació entre el client i el servidor
  • Permet a qualsevol persona amb coneixements extendre i fer aplicacions a partir de les dades del sistema (a l'estil de serveis com flickr, youtube, amazon, etc)
  • L'API fa servir SVG com a mètode de codificació dels dibuixos. El fet de fer servir un format obert com SVG pot facilitar l'extensió a altres possibles aplicacions de les dades dels dibuixos.Internament es pot fer servir un format més compacte que SVG per minimitzar l'espai a la base de dades.



[edita] Plataforma tecnològica

  • Servidor. PHP + Mysql
  • Client. Flash fent servir eines de codi obert (compilador de Flex o equivalent)


[edita] Especificacions de la base de dades

Com a primera versió... i base de treball

Alguns canvis
He fet algunes aportacions i comentaris. Es pot veure la diferència amb la primera versió comparant el registre "08:24, 4 oct 2007 David" i "14:57, 3 oct 2007 Dani" en l'Historial d'aquesta pàgina. Es pot revertir a la primera versió des del mateix historial.

--David 10:33, 4 oct 2007 (CEST)



[edita] Taules: versió de treball/discussió

Taula strokes Aquí es guarden les dades de les "pintades" (strokes)

  • id propi
  • Dades d'una línia en concret, preses sempre des de la cantonada superior esquerra.

(*)

  • fk_bloc del bloc al qual pertany
  • fk_page de la pagina al qual pertany

Taula sessions

Aqui es guarda la informació sobre les sessions
Aquesta taula es buida periodicament quan les dades han caducat (un termini determinat)
Només serveix per identificar les pintades amb una sessió determinada i poder esborrar (tornar enrrera)
També serveix per saber qui està a cada pàgina d'un bloc i tancar-la si no és la última i ja no hi ha dibuixants
  • id
  • fk_stroke: (línia que està dibuixant ¿? això anirà canviant ¿? com saps totes les que ha fet? aquest camp és un array?--David 10:24, 4 oct 2007 (CEST))
crec que el funcionament es aquest..
mousedown. comença a dibuixa.. mouseup deixa de dibuixar i rgaba a la base de dades..
es un stroke, una "pintada"
aquesta informacio basicament es un arry pero comprimit en format LZV per exemple per minimitzar el trafic entre client i servidor
--Dani 11:18, 4 oct 2007 (CEST)
Ja ho entenc. Em sembla molt bé.
Però això bàsicament es grava a la taula "stroke". Aquí, a la taula "sessió" el que hi ha és un Identificador de la Stroke que correspon a un usuari-sessió (fk_stroke)
La pregunta seria: com sabem totes les pintades ("strokes") que ha fet aquest-usuari sessió? Perquè a fk_stroke només en podem guardar una, no?
--David 15:41, 4 oct 2007 (CEST)
  • fk_page: pàgina en la que està dibuixant (això caldria per
  • session_id
  • data: (vol dir temps, no dades, oi? timestamp o equivalent, no? --David 10:24, 4 oct 2007 (CEST))


Taula blocs

  • id. El id únic d'aquest bloc.
  • fk_servidor. L'identificador del servidor que fa servir
  • nom del bloc
  • status: (serviria si volem que la info d'un bloc donat de baixa es mantingui o per la gestió per part de l'admin del servidor; podria tenir: actiu, ocult, baixa --David 10:24, 4 oct 2007 (CEST))
  • url? de fet un mateix bloc podria estar a diferents llocs.. com "replicats" (és veritat, diferents blocs, mateixa BD, però si no com localitzem un bloc des del servidor? una URL fa falta --David 10:24, 4 oct 2007 (CEST))

aixo potser no cal

de fet això es podria fer com un 'trackback' automatic en un altre taula.. i de fet podria ser interesant --Dani 11:18, 4 oct 2007 (CEST)

  • meta-creador: creador del bloc, nick que l'identifica
  • meta-creador-mail: mail de contacte del creador del bloc (públicament no visible)
  • meta-creador-password: contrassenya del creador del bloc, la farà servir per exportar les dades, per donar-lo de baixa, etc...
  • meta-Comentari. Una descripció que pot deixar la persona que el crea (info públicament visible)

Taula pages

No faria falta una taula de pàgines?? --David 10:24, 4 oct 2007 (CEST)
Al meu entendre tindria:
  • id. El id únic d'aquesta pàgina
  • fk_bloc: bloc al qual pertany
  • level: número dinàmic de la pàgina dins el bloc. A través d'ell podem saber si és la última pàgina del bloc (0) o és una pàgina anterior. Cada vegada que es crea una pàgina nova se li assigna el número 0 i a les ja creades se'ls suma 1. (no es pot crear una pàgina nova si hi ha dibuixants -sessions- connectats a alguna de les 5 pàgines -per exemple- anteriors; quan la pàgina amb level-6 és abandonada per l'últim dibuixant es tanca. Proposta dvdgmz--David 10:24, 4 oct 2007 (CEST))
  • date-start: data de creació de la pàgina
  • date-stop: data de tancament de la pàgina
  • status: si està oberta o tancada (potser no cal ja que es pot consultar el date-stop i si està buit és que està tancada; però com que pot ser un camp binari 0-1 pot ser més ràpid de consultar --David 10:24, 4 oct 2007 (CEST))

Taules servidors: taules relacionades amb els servidors

Taula host: servidor que allotja el programa

  • id. El id únic d'aquest servidor
  • url-API. Url on es pot accedir a la API pels blocs
  • meta-nom: nom que se li dóna a aquest servidor
  • meta-comentari: comentari o autopresentació breu (per als altres servidors o per als blocs)
  • meta-URLpub: url pública per localitzar la pàgina pública per http

Taula alt-servers: informació sobre els altres servidors "confederats"

  • id. El id únic del servidor confederat
  • url. Url on es pot accedir a la API d'informació entre servidors (subministra informació sobre el meta-nom, el meta-comentari, la seva URL-API i URL-publica, així com accés a la informació dels blocs que allotja)


[edita] Taules: versió preparatoria

Taula strokes: Aquí es guarden les dades de les "pintades" (strokes)
Camps Tipus Ordenació Atributs Nul Defecte Extra Comentari
id smallint identificador únic
stroke_data Dades d'una línia en concret, preses sempre des de la cantonada superior esquerra.
fk_bloc referència al ID del bloc al qual pertany (taula bloc)
fk_page referència de la pagina a la qual pertany (taula page)



Taula pages: informació i identificació de pàgines dels blocs
Camps Tipus Ordenació Atributs Nul Defecte Extra Comentari
id smallint identificador únic
fk_bloc smallINT Referència al bloc al qual pertany
level número dinàmic de la pàgina dins el bloc. A través d'ell podem saber si és la última pàgina del bloc (0) o és una pàgina anterior. Cada vegada que es crea una pàgina nova se li assigna el número 0 i a les ja creades se'ls suma 1. (no es pot crear una pàgina nova si hi ha dibuixants -sessions- connectats a alguna de les 5 pàgines -per exemple- anteriors; quan la pàgina amb level-6 és abandonada per l'últim dibuixant es tanca. Proposta dvdgmz--David 10:24, 4 oct 2007 (CEST))
date-start: data de creació de la pàgina
date-stop: data de tancament de la pàgina
status: si està oberta o tancada (potser no cal ja que es pot consultar el date-stop i si està buit és que està tancada; però com que pot ser un camp binari 0-1 pot ser més ràpid de consultar --David 10:24, 4 oct 2007 (CEST))