160 likes | 266 Views
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 capacidades Diferentes usuarios (lenguaje, gustos, edad…) Necesidad de un estándar que cubra esta situación.
E N D
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 capacidades • Diferentes 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 contenidos • El 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.1 • Soporte de referencias externas a perfiles • Soporte 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#reference profile-field-name = "Profile" reference = <"> ( absoluteURI | profile-diff-name ) <"> profile-diff-name = profile-diff-number "-" profile-diff-digest profile-diff-number = 1#DIGIT profile-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-desc profile-diff-field-name = "Profile-Diff-" profile-diff-number profile-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-value profile-warning-field-name = "Profile-Warning" warning-value = warn-code SP warn-target SP warn-text [SP warn-date] warn-code = 3DIGIT warn-target = (absoluteURI | host [ ":" port ]) warn-text = quoted-string warn-date = <"> HTTP-date <">
Warn-codes • 1xx - Estado del perfil • 100 OK • 101 Used stale profile • 102 Not Used profile • 2xx – Tipo de adaptación aplicada • 200 Not applied • 201 Content generation applied • 202 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.