OCP2 es un middleware para desarrollar aplicaciones sensibles al contexto (context-aware). Su uso esta basado en el paradigma del productor-consumidor. El productor, por ejemplo un sensor, introduce información en el sistema; uno o varios consumidores interesados en determinada información de contexto son notificados de los cambios en esta información.
La información de contexto se almacena en una ontología, definida según un modelo de contexto creado por el desarrollador, que cumple con el estándar OWL [W3C 2004a].
Algunas características del middleware OCP2:
- Abierto: El sistema permite que dispositivos, con diferentes arquitecturas hardware y software, entren a participar en el sistema.
- Dinámico: El sistema permite que nuevos elementos (por ejemplo, nuevos sensores o nuevos consumidores de información de contexto como servicios, etc.) entren o salgan del sistema. Estos cambios se pueden realizar en caliente, con el sistema funcionando, y sin alterar el funcionamiento de los demás elementos del sistema.
- General: Se ha diseñado para que la solución que aporte sea general, los implementadores de una aplicación concreta necesitan más tiempo para adaptar el sistema a un dominio concreto, y por otro lado el sistema es flexible en cuanto a los dominios de aplicación, es decir, no está atado a un solución concreta.