IMS y CONTEXT AWARENESS: EL LONG TAIL EN LA CAPA DE SERVICIO ALEJANDRO CADENAS GONZÁLEZ cadenas@tid.es TelefonicaI+D
Contenidos Introducción La tecnología y los servicios El long tail Servicios personalizados: qué son Long tail en servicios: modelo de negocio! Objetivo: la detección de la situación del usuario Motivo: obtener personalización en servicios Y ahora como lo hacemos?: La investigación La universidad y la empresa como lo podemos encajar? La propuesta final de trabajo La arquitectura actual La arquitectura NGN La arquitectura basada en Enablers Protocolo contextual Interoperabilidad vía API: 3Parties, Web, etc Ejemplo de señalización Estado actual y siguientes pasos 2
Introducción Los servicios tradicionales de telefonía son fuentes de ingresos decrecientes. - La voz pasa a ser una commodity - La barrera de acceso de nuevos actores en el mercado telco se reduce - No es necesario operar una red para ello Por ello, los operadores buscan continuamente maneras de diferenciarse Pero las necesidades que quedarían por cubrir de los usuarios son cada vez más específicas. Desarrollar y desplegar servicios específicos para cada tipo de usuario sería absolutamente ineficiente Cómo solucionar esto 3
Introducción Servicio: una capacidad o funcionalidad ofrecida a un usuario mediante una subscripción o solicitud por parte del mismo. Pueden estar Hosteados o alojados en la red del operador - Las llamadas de voz en el móvil - Las llamadas de voz en el fijo - Copiagenda: subir mis contactos de la SIM a un servidor en la red del operador - Traducción de numeración en telefonía corporativa - Mensajería corta (SMS, MMS) - Notificaciones de presencia por mensajería - Agenda convergente con notificaciones -etc. Pueden estar desarrollados por terceros - Una red social - Un servicio web de compra por internet Pueden estar alojados en el móvil - Aplicaciones de agenda en movil - Aplicación de deporte en iphone - Notas de voz en el móvil 4
Introducción La tecnología Los servicios de operador se alojan en la capa de servicio. Tradicionalmente es específica a un tipo de terminales y una red de acceso dada. Suele ser específica a un tipo de terminales y una red de acceso dada. Ejemplo: llamadas de voz en el móvil, contactos de la SIM a un servidor en la red móvil, se encontrarán en la capa de servicio de la red móvil del operador, o PLMN. Cada tipo de red tendrá tecnologías de servicios tradicionalmente diferentes. Caso móvil: Red de acceso móvil radio, basada en mecanismos de señalizacion NBAP, RANAP, RNSAP (si es 3G), MTP1,2,3, SCCP, TCAP, CAP, INAP, MAP, etc. Los servicios se proporcionarán sobre una tecnología dada. También dependerá de la red de acceso en muchos casos: WebServices (SOAP, XML, BPEL), Parlay/OSA, IM-SSF, etc. 5
Introducción y los servicios Los servicios tradicionales de telefonía suelen estar ya amortizados y no requieren de un CAPEX importante para mantener la posición del operador. Sin embargo sí suponen un OPEX importante, ya que los costes de mantenimiento de ciertas infraestructuras necesarias para algunos de estos servicios son muy costosas (por ejemplo las redes de acceso radio con cobertura nacional). Asimismo, hay nuevos jugadores en el tablero: Skype, Redes sociales, MVNO, etc y todos pueden crear servicios y llegar al usuario a través de canales no convencionales para los servicios telco (VoIP). Pero qué es lo que quiere el usuario? Cada uno, una cosa diferente CAPEX.- CAPital EXpenditures OPEX.- OPerational EXpenditures 6
El long tail Por un lado tenemos los negocios de comunicaciones tradicionales - Son servicios comunes a un gran número de usuarios - No requieren de ejecuciones personalizadas para cada usuario - pueden generar el 85% de los ingresos Pero por otro lado tenemos un conjunto de nuevos servicios - Cada uno satisface necesidades de un conjunto limitado de usuarios - Pueden variar mucho en funcionalidad - Fuertemente segmentados - Pueden significar un 15% o un 10% de los ingresos (dependiendo del país, operador, segmento de usuarios etc). Los servicios personalizados son servicios Long Tail por excelencia 7
El long tail Servicios personalizados: qué son Básicamente, servicios que se ejecutan, se recomiendan, tienen una funcionalidad o propósito acorde al usuario al que se dirige o a su situación. Los servicios completamente personalizados constituyen el LONG TAIL en la capa de servicios, ya que cada una de las implementaciones específicas de estos servicios personalizados es aplicable a un pequeño grupo de usuarios (comparado con el total). Esta definición genérica y académica es en la práctica imposible de implementar como tal en un sistema real, por lo que se hace necesario definir una serie de clusters o grupos de usuarios o situaciones. Ejemplos: - Servicio personalizado en GUI o Look&Feel - Servicio personalizado en ejecución - Servicio personalizado en funcionalidad Servicio #1 Servicio #2 Servicio #3 8
Objetivo: detección de la situación del usuario El primer objetivo para proporcionar servicios Personalizados de manera contextual es el de capturar la situación del usuario Este proceso de adquisición de información de usuario se realiza a través de diferentes fuentes de información o CONTEXT PROVIDERS. - Contexto físico. - Temperatura - Nivel de ruido ambiental - Movimiento, vibraciones - Contexto social. - Usuarios cercanos - Contexto de grupo - Contexto emocional - Estado de ánimo del usuario - Nivel de luminosidad - Localización física (LatLong) - Conectividad, etc Cada una de estas variables (y otras) será capturada por un elemento diferente, con diferentes conectividades, identidades, etc - Contexto de actividad - Disponibilidad - Objetivo 9
Motivo: obtener personalización de servicios Para qué queremos detectar la situación del usuario? Mediante una captura y procesado de informacion de situación del usuario es posible obtener servicios personalizados. Solamente es necesario desarrollar los servicios de manera dependiente de las variables de situación o contexto del usuario. Modelado arquitectural y de contexto de usuario Desarrollo de servicios personalizados o sensibles a contexto Despliegue de servicios sensibles a contexto o personalizados Captura situación de usuario Procesado información de contexto Ejecución servicios sensibles a contexto o personalizados Tiempo de ejecución 10
Y ahora cómo lo hacemos? La investigación OK, hasta aquí lo que queremos hacer y para qué Lo que queremos hacer toca muchos aspectos tecnológicos Algunos están ya en fase de despliegue comercial - Servicios (específicos a tecnologías de acceso determinadas). - Diferentes redes de acceso. - Tecnologías de adquisición de información de contexto de usuario. - Capacidades de orquestación de transacciones entre elementos de la capa de servicio. - Etc. Otros están en fase de investigación o definición aún - Técnicas de modelado de información. - Agregación de información de diferentes redes de acceso. - Aspectos de infraestructura que dén soporte a estos procesos - Desarrollo de servicios sensibles a la información agregada de contexto de usuario. - etc. Por lo tanto se hace necesario un proceso de investigación asociado al proceso natural de productización de estas tecnologías. 11
La universidad y empresa: cómo lo podemos encajar? EMPRESA (OPERADOR) INVESTIGACIÓN Definición de fundamentos arquitecturales necesarios A corto plazo A largo plazo Despliegue de servicios parcialmente funcionales Desarrollos (pre) comerciales Demos & experiencias comerciales Nuevas propuestas Demos/pruebas en entorno labo Publicaciones de resultados Patentes Validación conclusiones Publicaciones de resultados Despliegue de infraestructura adicional Propuesta de nuevas versiones & servicios Despliegue final de sistema completamente funcional 12
La propuesta final de trabajo Establecer y demostrar los principios arquitecturales para extender el uso de información contextual a todos los servicios disponibles para el usuario final de modo horizontal, desde los ejecutados desde el propio terminal o terminales de usuario como los ofrecidos por la red del operador, bajo un entorno convergente. Definición de arquitectura de red. Aportando la definición del entorno de ejecución del sistema Definición de protocolo para gestionar información contextual. Mejorando las soluciones actuales mediante una propuesta viable para un operador convergente Mejoras en capa de control IMS Identificando posibles problemas y mejorando la capa de control convergente Desarrollo de entorno y servicios de prueba A fin de demostrar la viabilidad en entorno trial de las propuestas 13
La propuesta final de trabajo La arquitectura actual SERVIDORES WEB TSP SCP HLR VLR AUC GGSN DNS INTERNET CS CN G-MSC V-MSC BSC 2G BTS PLMN PS CN SGSN RNC IEEE 802.11 IP BACKBONE CAMPUS WiMAX EMPRESA PSTN IEEE 802.11 AD-HOC 2,5G BTS 3G NodoB WiBro iburst LTE HOME DAB/DVB WiFi Enet UPnP BLUETOOTH Automated HOME 14 X10
La propuesta final de trabajo La arquitectura NGN SERVIDORES DE APLICACION ENABLERS SERVIDORES WEB AAA SBC IMS P-CSCF S-CSCF SBC I-CSCF HSS OSA GW SBC HLR VLR AUC GGSN DNS INTERNET V-MSC CS CN G-MSC SGSN PS CN IP BACKBONE PSTN
La propuesta final de trabajo La arquitectura basada en Enablers Enabler es un elemento de la capa de servicio NGN que no constituye un servicio en sí mismo, pero que proporciona información para enriquecer y posibilitar otros servicios. Se basan en orquestación de transacciones entre elementos de la capa de servicio NGN. SERVIDORES DE APLICACION ENABLERS CONTEXTO SERVIDORES WEB TSP SCP AAA S-CSCF HSS OSA GW SBC P-CSCF IMS SBC I-CSCF SBC 16
La propuesta final de trabajo Arquitectura de prueba para demos en entorno labo SERVIDORES DE APLICACIÓN CC CC CC CP CP CC IMS CONTEXTO PoC Presencia Arquitectura LOGICA CP XDMS ENABLERS USUARIO Arquitectura FISICA AHSNET GW SIP/HTTP Acceso WWW IMS HTTP SIP Enabler Propietario 17
Protocolo contextual Definición de protocolo para gestionar información contextual entre CC y CA. Header Body Header Body SIP INFO HTTP POST alt CP REGISTER REGISTER Enabler 200 OK 5xx Error 200 OK <applicationid>application Name</applicationID> <ContextFunction>ContextProvider</ContextFunction> <user> <useridtype>msisdn</useridtype> <userid>600123456</userid> <username>alejandro Cadenas</username> </user> <device> <firmware></firmware> </device> <ContextMessage>Registration</ContextMessage> <ContextCapabilites> <SupportedInfo> <SupportedInfoName>Location<\SupportedInfoName> <SupportedInfoType>Location<\SupportedInfoType> <SupportedInfoAccuracy>CoO<\SupportedInfoAccuracy> <SupportedInfoReport>Periodic<\SupportedInfoReport> <SupportedInfoPrivacy>Public<\SupportedInfoPrivacy> <SupportedInfoData><\SupportedInfoData> <\SupportedInfo> <\ContextCapabilities> 18
Protocolo contextual Definición de API transaccional contextual CC Enabler CP <?xml version="1.0" encoding="utf 8"?> <entityname>context_enabler</entityname> <ContextFunction>Context_Enabler</ContextFunction> <ContextMessage> <MessageType>Capabilities_Request</MessageType> </ContextMessage> 1. SIP REGISTER 2. SIP 200OK 3. SIP OPTIONS 4. SIP 200OK 5. SIP REGISTER 6. SIP 200OK 9. SIP SUBSCRIBE 10. SIP 200OK 7. SIP OPTIONS 8. SIP 200OK 11. SIP MESSAGE 12. SIP 200OK 13. SIP MESSAGE 14. SIP 200OK 15. SIP NOTIFY 16. SIP 200OK 17. SIP MESSAGE 18. SIP 200OK 19
Protocolo contextual Definición de API transaccional contextual <?xml version="1.0" encoding="utf 8"?> <entityname>social_appointment_mobile </entityname> <entityid>kdjq98q23987092q3jid</entityid> <ContextFunction>Context_Provider</ContextFunction> <ContextMessage> <MessageType>Capabilities_Response</MessageType> <RegistrationTime>Default</RegistrationTime> <ContextInformationCaptured> <ContextInformationName>Position</ContextInformationName> <InfoSensibility> <SensibilityUnit>meter</SenbilityUnit><SensibilityValue>50</SensibilityValue> </InfoSensibility> </ContextInformationCaptured> <ContextInformationReport> <OndemandSupport>1</OndemandSupport> <PeriodicSupport><support>0</support> </PeriodicSupport> <EventSupport> <support>1</support><eventcode>1101</eventcode> </EventSupport> <InformationPrivacy> <privacylevel>public</privacylevel><owner></owner> </InformationPrivacy> </ContextInformationReport> </ContextMessage> CC Enabler CP 1. SIP REGISTER 2. SIP 200OK 3. SIP OPTIONS 4. SIP 200OK 5. SIP REGISTER 6. SIP 200OK 7. SIP OPTIONS 8. SIP 200OK 9. SIP SUBSCRIBE 10. SIP 200OK 11. SIP MESSAGE 12. SIP 200OK 13. SIP MESSAGE 14. SIP 200OK 15. SIP NOTIFY 16. SIP 200OK 17. SIP MESSAGE 18. SIP 200OK 20
Protocolo contextual Definición de API transaccional contextual <ContextMessage> <MessageType>ContextCondition_Subscription</MessageType> <NotificationData> <ReportType>Event</ReportType><User>Default</User> <ContextInformationRequested> <ContextInformationName>AreaPresence</ContextInformationName> <ContextInformationUnit>Boolean</ContextInformationUnit> </ContextInformationRequested> <EventData> <type>geo_area</type> <condition> <coord> <Lat>N41,39.717</Lat><Long>W4,42.571</Long> </coord> <range><unit>meter</unit><value>500</value></range> </condition> </EventData> </NotificationData> <SubscriptionData> <SubsPeriod> <Unit>Report</Unit><Number>1</Number> </SubsPeriod> </SubscriptionData> </ContextMessage> CC Enabler CP 1. SIP REGISTER 2. SIP 200OK 3. SIP OPTIONS 4. SIP 200OK 5. SIP REGISTER 6. SIP 200OK 7. SIP OPTIONS 8. SIP 200OK 9. SIP SUBSCRIBE 10. SIP 200OK 11. SIP MESSAGE 12. SIP 200OK 13. SIP MESSAGE 14. SIP 200OK 15. SIP NOTIFY 16. SIP 200OK 17. SIP MESSAGE 18. SIP 200OK 21
Protocolo contextual Definición de API transaccional contextual <?xml version="1.0" encoding="utf 8"?> <entityname>context_enabler</entityname> <ContextFunction>Context_Enabler</ContextFunction> <AssociatedUser> <IDtype>MSISDN</IDtype> <userid>633999999</userid> </AssociatedUser> <ContextMessage> <MessageType>ContextCondition_SubscriptionResponse</MessageType> <SubscriptionData> <SubsID>112765</SubsID> <SubsStatus>Subscribed</SubsStatus> </SubscriptionData> </ContextMessage> CC Enabler CP 1. SIP REGISTER 2. SIP 200OK 3. SIP OPTIONS 4. SIP 200OK 5. SIP REGISTER 6. SIP 200OK 7. SIP OPTIONS 8. SIP 200OK 9. SIP SUBSCRIBE 10. SIP 200OK 11. SIP MESSAGE 12. SIP 200OK 13. SIP MESSAGE 14. SIP 200OK 15. SIP NOTIFY 16. SIP 200OK 17. SIP MESSAGE 18. SIP 200OK 22
Protocolo contextual Definición de API transaccional contextual <?xml version="1.0" encoding="utf 8"?> <entityname>context_enabler</entityname> <ContextFunction>Context_Enabler</ContextFunction> CC Enabler CP 1. SIP REGISTER 2. SIP 200OK <ContextMessage> <MessageType>Information_Request</MessageType> <RequestID>111</RequestID> <RequestData> <RequestType>Periodic</RequestType> <ReportPeriod> <Unit>seconds</Unit> // puede darse en varias unidades <Number>3600</Number> </ReportPeriod> <User>Default</User> <ContextInformationRequested> 3. SIP OPTIONS 4. SIP 200OK 9. SIP SUBSCRIBE 10. SIP 200OK 5. SIP REGISTER 6. SIP 200OK 7. SIP OPTIONS 8. SIP 200OK 11. SIP MESSAGE 12. SIP 200OK <ContextInformationName>Position</ContextInformationName> <ContextInformationUnit>Latlong</ContextInformationUnit> </ContextInformationRequested> <Condition></Condition> </RequestData> </ContextMessage> 15. SIP NOTIFY 16. SIP 200OK 13. SIP MESSAGE 14. SIP 200OK 17. SIP MESSAGE 18. SIP 200OK 23
Protocolo contextual Definición de API transaccional contextual <?xml version="1.0" encoding="utf 8"?> <entityname>mobile_application</entityname> <entityid>kdjq98q23987092q3jid</entityid> <ContextFunction>ContextProvider</ContextFunction> <ContextMessage> <MessageType>Information_Report</MessageType> CC Enabler CP 1. SIP REGISTER 2. SIP 200OK 3. SIP OPTIONS 4. SIP 200OK 5. SIP REGISTER 6. SIP 200OK <ReportType>Periodic</ReportType> <ReportPeriod> <Unit>seconds</Unit> // puede darse en varias unidades <Number>3600</Number> </ReportPeriod> <ContextInformationCaptured> <ContextInformationName>Position</ContextInformationName> <ContextInformationUnit>Latlong</ContextInformationUnit> <ContextInformationValue> <Lat>N41,39.717</Lat> <Long>W4,42.571</Long> </ContextInformationValue> </ContextInformationCaptured> </ContextMessage> 9. SIP SUBSCRIBE 10. SIP 200OK 15. SIP NOTIFY 16. SIP 200OK 7. SIP OPTIONS 8. SIP 200OK 11. SIP MESSAGE 12. SIP 200OK 13. SIP MESSAGE 14. SIP 200OK 17. SIP MESSAGE 18. SIP 200OK 24
Protocolo contextual Definición de API transaccional contextual <?xml version="1.0" encoding="utf 8"?> <entityname>context_enabler</entityname> <ContextFunction>Context_Enabler</ContextFunction> <ContextMessage> <MessageType>Context_Notification</MessageType> CC Enabler CP 1. SIP REGISTER 2. SIP 200OK 3. SIP OPTIONS 4. SIP 200OK <NotificationData> <ReportType>Event</ReportType><User>Default</User> <EventData> <type>geo_area</type> <condition> <coord><lat>n41,39.717</lat><long>w4,42.571</long></coord> <range><unit>meter</unit><value>500</value></range> </condition> </EventData> </NotificationData> 9. SIP SUBSCRIBE 10. SIP 200OK 5. SIP REGISTER 6. SIP 200OK 7. SIP OPTIONS 8. SIP 200OK 11. SIP MESSAGE 12. SIP 200OK <ContextInformationNotified> <ContextInformationValue>TRUE</ContextInformationValue> </ContextInformationNotified> <SubscriptionData> <SubsID>112765</SubsID><Status>Unsubscribed</Status> </SubscriptionData> </ContextMessage> 15. SIP NOTIFY 16. SIP 200OK 13. SIP MESSAGE 14. SIP 200OK 17. SIP MESSAGE 18. SIP 200OK 25
Protocolo contextual Definición de API transaccional contextual CC Enabler CP <?xml version="1.0" encoding="utf 8"?> <entityname>context_enabler</entityname> <ContextFunction>Context_Enabler</ContextFunction> <AssociatedUser> <IDtype>MSISDN</IDtype> <userid>633999999</userid> </AssociatedUser> <ContextMessage> <MessageType>Information_Termination</MessageType> <RequestID>111</RequestID> </ContextMessage> 1. SIP REGISTER 2. SIP 200OK 3. SIP OPTIONS 4. SIP 200OK 9. SIP SUBSCRIBE 10. SIP 200OK 5. SIP REGISTER 6. SIP 200OK 7. SIP OPTIONS 8. SIP 200OK 11. SIP MESSAGE 12. SIP 200OK 13. SIP MESSAGE 14. SIP 200OK 15. SIP NOTIFY 16. SIP 200OK 17. SIP MESSAGE 18. SIP 200OK 26
Protocolo contextual Interoperabilidad vía API: 3Parties, Web, etc APIs abiertas a terceros por el operador - Al igual que la localización, presencia, etc, el contexto del usuario o triggers asociados pueden ser APIs publicadas para desarrollos de terceros - Se emplean protocolos del mundo web (típicamente sobre HTTP). - Su productización depende de las estrategias comerciales del operador. WebServices, REST SERVIDORES DE APLICACION ENABLERS CONTEXTO SERVIDORES WEB TSP SCP Open API AAA S-CSCF HSS OSA GW SBC P-CSCF IMS SBC I-CSCF SBC 27
Desarrollos en labo y comerciales Desarrollo en entorno labo de investigación - Prototipo de gestor de contexto - Propuesta de modelado de usuario - Arquitectura de modelado de usuario distribuida - Simulaciones de balanceo de carga multinivel en el entorno contextual de usuario - Aplicación de obtención de disponibilidad en entorno campus Context Provider Enabler Context Consumer Desarrollo comercial - Despliegue aplicación contextual de usuario final en área metropolitana (capital europea). - Despliegue aplicación contextual en entornos roaming y turísticos (a escala nacional). 28
Estado actual y siguientes pasos Realización de iteraciones Investigación -> Despliegue -> Investigación Varias experiencias Friendly user trial Primeros trials comerciales en residencial en entornos controlados 29
Gracias! 30
IMS y CONTEXT AWARENESS: EL LONG TAIL EN LA CAPA DE SERVICIO ALEJANDRO CADENAS GONZÁLEZ cadenas@tid.es TelefonicaI+D