PLANTER/Dibuix Distribuit/specs/28-9-2007
De GERMINADOR wiki
< 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)
|
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.
- 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 (
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.
- 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 --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
| 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) | ||||||
| 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)) | ||||||

