CC/PP: Composite Capabilities and Preference Profiles
description
Transcript of CC/PP: Composite Capabilities and Preference Profiles
CC/PP: Composite Capabilities and
Preference Profiles
David Álvarez Quintana
Introducción
Situación actual en el acceso a contenidos web:Múltiples dispositivos de diferentes
capacidadesDiferentes usuarios (lenguaje,
gustos, edad…) Necesidad de un estándar que
cubra esta situación.
Independencia de Dispositivo Información en cualquier
momento, en cualquier lugar Dos puntos de vista a tener en
cuenta:El usuario consumidor de
contenidosEl programador de contenidos
independientes del dispositivo.
Independencia de Dispositivo: El usuario
Implica acceso universal
Independencia de Dispositivo: El programador
Implica un único desarrollo para todos los terminales
Preferencias de Usuario
Descripción formal de las “condiciones” de usuario en la presentación de contenidos.
Mecanismo de asignación de valores a sus preferencias.
Repositorio de preferencias
El estándar CC/PP
Infraestructura para la representación estándar de las capacidades de dispositivo y las preferencias de usuario.
Basado en perfiles Utiliza RDF (Resource Description
Languaje) como lenguaje formal de construcción de perfiles
Estructura CC/PP Estructura de documento jerárquico. Cada perfil será un conjunto de componentes
Características principales a modelar: Plataforma Hardware Plataforma Software Aplicación
Cada componente se compondrá de uno o varios atributos Valores concretos de los componentes
Tamaño de pantalla Versión de JRE soportada Versión de navegador
Ejemplo de perfil de dispositivo
<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ccpp="http://www.w3.org/2002/11/08-ccpp-schema#" xmlns:ex="http://www.example.com/schema#"> <rdf:Description rdf:about="http://www.example.com/profile#MyProfile"> <ccpp:component> <rdf:Description rdf:about="http://www.example.com/profile#TerminalHardware"> <rdf:type rdf:resource="http://www.example.com/schema#HardwarePlatform" /> <ccpp:defaults rdf:resource="http://example.com/HWDefault"/> <ex:displayWidth>320</ex:displayWidth> <ex:displayHeight>200</ex:displayHeight> </rdf:Description> </ccpp:component>
<ccpp:component> <rdf:Description rdf:about="http://www.example.com/profile#TerminalSoftware"> <rdf:type rdf:resource="http://www.example.com/schema#SoftwarePlatform" /> <ccpp:defaults rdf:resource="http://example.com/SWDefault"/> <ex:name>EPOC</ex:name> <ex:version>2.0</ex:version> <ex:vendor>Symbian</ex:vendor> </rdf:Description> </ccpp:component>
Ejemplo de perfil de dispositivo (2)
<ccpp:component> <rdf:Description rdf:about="http://www.example.com/profile#TerminalBrowser"> <rdf:type rdf:resource="http://www.example.com/schema#BrowserUA" /> <ccpp:defaults rdf:resource="http://example.com/UADefault"/> <ex:name>Mozilla</ex:name> <ex:version>5.0</ex:version> <ex:vendor>Symbian</ex:vendor> <ex:htmlVersionsSupported> <rdf:Bag> <rdf:li>3.0</rdf:li> <rdf:li>4.0</rdf:li> </rdf:Bag> </ex:htmlVersionsSupported> </rdf:Description> </ccpp:component> </rdf:Description></rdf:RDF>
CC/PPex: CC/PP Exchange Protocol
Estándar CC/PP solo describe composición de perfiles.
Requerimientos para el protocolo:Compatible HTTP/1.1Soporte de referencias externas a perfilesSoporte de cacheo de información válida
para todas las peticione dentro de una misma sesión.
CC/PPex se basa en HTTP Extension Framework
Profile Header
Lista de referencias a descripciones CC/PP
Soporta direccionamiento indirecto mediante URI
Gramática:Profile = profile-field-name ":" 1#referenceprofile-field-name = "Profile"reference = <"> ( absoluteURI | profile-diff-name ) <">profile-diff-name = profile-diff-number "-" profile-diff-digestprofile-diff-number = 1#DIGITprofile-diff-digest = sp; < MD5 message digest encoded by base64 >
Profile-Diff Header Contiene propiamente el perfil. Gramática:
Profile-Diff = profile-diff-field-name ":" profile-descprofile-diff-field-name = "Profile-Diff-" profile-diff-numberprofile-desc = < the CC/PP description based on XML/RDF text format (any OCTET except CTLs,but including LWS)>
Ejemplo de Cabecera:Profile: "1-P1GRkSjKK50aTWXXndFcSQ=="Profile-Diff-1: <?xml version="1.0"?><RDF xmlns="http://www.w3.org/TR/1999/PR-rdf-syntax-19990105#" xmlns:PRF="http://www.w3.org/TR/WD-profile-vocabulary#"> <Bag> <Description about="HardwarePlatform"> <Defaults> <Description PRF:Vendor="Nokia" PRF:Model="2160" PRF:Type="PDA"..............
Profile-warning header
Cabecera para la respuesta (response) del servidor.
Gramática:
Profile-warning = profile-warning-field-name ":" 1#warning-valueprofile-warning-field-name = "Profile-Warning"warning-value = warn-code SP warn-target SP warn-text [SP warn-date]warn-code = 3DIGITwarn-target = (absoluteURI | host [ ":" port ])warn-text = quoted-stringwarn-date = <"> HTTP-date <">
Warn-codes 1xx - Estado del perfil
100 OK 101 Used stale profile 102 Not Used profile
2xx – Tipo de adaptación aplicada200 Not applied201 Content generation applied202 Transformation applied
Ejemplo:Profile-Warning: 101 http://www.aaa.com/hw "Used stale profile", 102 http://www.bbb.com/sw "Not used profile", 200 18.23.0.23:80 "Not applied" "Wed, 31 Mar 1999 08:49:37 GMT"
Conclusiones Buena infraestructura para la descripción de los
dispositivos. No suficiente para alcanzar la independencia de
dispositivo. Apoyo de otras tecnologías para proceso de transformación
SVG XSL
Requiere madurez en definición de preferencias de usuario.
Abierto a nuevas propuestas de protocolo para el intercambio de perfiles.