Diferencia entre revisiones de «Kernel de TuEntidad.es»
m (→Ordenes) |
m (→Peticiones) |
||
Línea 10: | Línea 10: | ||
=== Peticiones === | === Peticiones === | ||
− | Las '''peticiones''' (''consultas'' y ''escrituras'') siguen el modelo de '''conjunto de órdenes'''. Las '''peticiones''' devuelven '''estructuras''' (''valores'', ''vectores de valores'', ''matrices'' (vectores de vectores) ''de valores'') separadas por '''ampersand''' ('''&'''). A su vez, cada '''estructura''' está formada por tres '''componentes''' separadas por el '''signo igual''' ('''='''). | + | Las '''peticiones''' (''consultas'' y ''escrituras'') siguen el modelo de '''conjunto de órdenes'''. Las '''órdenes''' están separadas por el '''signo dólar''' ('''$''') y se numeran internamente con un autoincremental natural que empieza en cero. |
+ | |||
+ | Las '''peticiones''' devuelven '''estructuras''' (''valores'', ''vectores de valores'', ''matrices'' (vectores de vectores) ''de valores'') separadas por '''ampersand''' ('''&'''). A su vez, cada '''estructura''' está formada por tres '''componentes''' separadas por el '''signo igual''' ('''='''). | ||
''Es posible que se modifique el '''separador de consultas''' por el signo '''$''' en posteriores versiones del protocolo.'' | ''Es posible que se modifique el '''separador de consultas''' por el signo '''$''' en posteriores versiones del protocolo.'' |
Revisión del 00:18 14 abr 2010
La parte que encargada del tratamiento de la lectura/escritura de datos de forma estándar de toda la Plataforma Social "TuEntidad.es" se llama Kernel. Por norma general, se encuentra como subdominio (denominado kernel) de la página de la Plataforma Social. En casos puntuales donde es necesario, existe un archivo dentro del propio visor que redirecciona internamente, por ejemplo a través de una implementación proxy-php (crossdomain) en el caso del visor lotienes, a kernel. No todos los visores implementan un proxy, ya que permiten conectarse directamente al kernel. El uso del proxy oficial permite un balanceo de carga entre máquinas que mejoran los tiempos de carga usando diferentes hilos del kernel.
Los visores en otros lenguajes se caracterizan por acceder al kernel directamente. Es el caso de las versiones en Flash y ejecutables de escritorio. La necesidad del proxy aparece en los visores que utilizan JavaScript, el cual no permite acceder a dominios fuera del actual.
Sumario
Protocolo del Kernel
Actualmente hay una serie de acciones no estandarizadas todavía como son el registro de nuevos usuarios y recuperación de claves de acceso, el inicio/cierre de sesión, y la subida de medios locales. Aquellas acciones estandarizadas se les llama peticiones.
Peticiones
Las peticiones (consultas y escrituras) siguen el modelo de conjunto de órdenes. Las órdenes están separadas por el signo dólar ($) y se numeran internamente con un autoincremental natural que empieza en cero.
Las peticiones devuelven estructuras (valores, vectores de valores, matrices (vectores de vectores) de valores) separadas por ampersand (&). A su vez, cada estructura está formada por tres componentes separadas por el signo igual (=).
Es posible que se modifique el separador de consultas por el signo $ en posteriores versiones del protocolo.
Es posible que se modifique el separador de componentes por el signo # en diferentes versiones del protocolo.
Ordenes
Las órdenes incluyen varias componentes.
Componentes
Las componentes se separan por el signo almohadilla (#). Las componentes de una orden son:
- [0]: El tipo de objeto (a para los álbumes, c para los contactos, etc).
- [1]: El identificador numérico natural del objeto (id>0 para los propios, o id<0 para los comunes) seleccionado.
- [2]: El nombre de la hoja -matriz o vector o valor- (generalmente datos o entidad).
- [3]: La componente numérica -en caso de ser matriz o vector-.
- [4]: La componente numércia -en caso de haber sido una matriz-.
Iteradores
Cada órden puede utilizar en las componentes un valor estático o un valor dinámico. Los valor estático se generan en los visores y se envían directamente para su tratamiento; los valor dinámico son referencias a órdenes anteriores generados en tiempo de procesamiento en el propio kernel, separados por comas (,).
Funciones
Al final de cada órden pueden aparecer, separadas por el signo arroba (@), una o más funciones. Las funciones tienen una estructura parecida a la componentes de la orden.
Tipos de peticiones del Kernel
El protocolo del Kernel distingue dos tipos peticiones: La de consulta, y la escritura, que se separan en dos archivos de petición .php distintos dentro del kernel.
Consultas
Las consultas devuelven estructuras. Las componentes de cada estructura son:
- Tipo de objeto extendido.
- Identificador del objeto.
- Valor, vector -separado por dos puntos (:)- o matriz -vectores separados por salto de línea (\n)-.
Un ejemplo de consulta podría ser este, que es la petición de la fila 1 de los datos de un usuario, en la que se encuentra su nombre, y apellidos. Esta función es pública y accesible por cualquier usuario o visitante:
u # 1 # datos # 1 [0] [1] [2] [3] - Del objeto usuario, --- con identificador 1, ----- su matriz datos, -------- la fila 1
Escrituras
Al igual que el anterior, estas peticiones de escritura se dividen en órdenes. Cada una de ellas segmentadas en una serie de componentes. La última componente es el valor que se le asignará. Generalmente no devuelven nada, y solo en casos concretos, por ejemplo cuando se utilizan los comodines (+) devuelven los valores de esas componentes que se ignoraron. Ese es el caso de, por ejemplo, la petición de un mensaje nuevo:
|---- componentes ----|------------- valor --------------| n # + # 1 : 1 : -2: # urlescape(asunt) : urlescape(txt) [0] [1] [2] [v] - Escribir un mensaje, --- nuevo, ----- para el buzón 1, del usuario 1, con plantilla -2 (la de S&E), -------- cuyo contenido es el asunto asunt y el texto txt
En donde la componente [0] se conoce (n), la [1] es el caracter comodín más (+) que indica que es siguiente al último, y el resto son conocidos. Este ejemplo es el que se usa para enviar mensajes de Sugerencias y Errores al buzón del administrador.