Existe una cantidad increíble de datos que están almacenados en distintos lugares y que sólo responden a ciertas aplicaciones con lo cual se hace extremadamente difícil para otras fuentes, como las aplicaciones realizadas bajo otros parámetros, acceder a ese tipo de datos. Esta situación perjudica a empresas, a gobiernos y a los distintos usuarios que puedan necesitar acceder a esos datos. Si se analiza la situación, existen muchos formatos y semánticas por lo cual es muy difícil crear una aplicación que pueda acceder a todos los formatos con los cuales se almacenan los datos.
Sin embargo, producto de esfuerzos por encontrar una solución formatos comunes como XML, Atom, Json han emergido. A su vez han emergido semánticas para manipular y consultar también rigiéndose por la arquitectura REST, desafortunadamente esas semánticas no son totalmente uniformes por esa razón cada sitio web necesita proveer documentación especializada de desarrollo para describir cómo manipular su sus datos particulares lo cual causa que cada aplicación requiera códigos específicos para trabajar con esos conjuntos de datos.
Lo que hace el protocolo OData es unificar estas semánticas. OData se construye sobre las actuales prácticas comunes, de esta manera los servicios pueden ser entendidos por una sola herramienta genérica y los clientes pueden combinar datos de manera sencilla de distintas fuentes.
Utilizar el protocolo OData trae consigo muchas ventajas, en primer lugar quién adopte este protocolo se integra a la nueva tendencia volviéndose compatible con un gran número de aplicaciones que ya existentes y que están diseñadas para el uso de OData, de esa forma cada desarrollador qué sabe manejar un OData-End-Point sabrá cómo manejar esos datos que está liberando quien adopte el protocolo. Por otro lado, al exponer los datos con el protocolo OData, esos datos se convierten en datos son accesibles para un enorme ecosistema haciendo que la aplicación que use ese protocolo tenga mucho más alcance.
Pero para entender completamente la utilidad del Protocolo OData y porque el mundo va aceleradamente adoptando al protocolo OData como el protocolo estándar se debe definir lo que es REST.
¿Qué es REST?
El Transferencia estatal representacional, REST por sus siglas en inglés, es una filosofía que define 6 restricciones estructurales.
Las restricciones diseñadas de una arquitectura de tipo REST son las siguientes: arquitectura Cliente-Servidor, Cacheabilidad (Cacheability), Comunicación sin estados (Statelessness), Sistema en capas, Uniformidad de interfaces, Código a pedido.
Estas restricciones manejan el comportamiento a gran escala de los participantes en el sistema de software interconectado. El caso más conocido es el del protocolo HTTP que implementa totalmente las restricciones diseñadas de tipo REST.
¿Qué es OData?
El desarrollo creciente de todo tipo de aplicaciones, en especial de aplicaciones SaaS (Por sus siglas en inglés “Software as a Service”) ha llevado a un incremento de REST APIs (conjunto de funciones que los desarrolladores pueden realizar, solicitar y recibir respuestas a través del protocolo HTTP, como GET y POST.). El crecimiento es tan grande que se ha convertido en un problema real el hecho de que los desarrolladores podrían pasar más tiempo aprendiendo APIs que construyendo su propia aplicación. La solución a este problema fue brindada por Microsoft con el protocolo estándar OData para construir REST APIs.
OData es un protocolo creado inicialmente por Microsoft para crear y consumir API’s que se convirtió en un estándar global en la industria de la informática. El impacto ha sido tan grande que las mayores empresas del mundo han adoptado el protocolo y ahora sus nuevas versiones son manejadas por empresas como IBM, SAP y la propia Microsoft entre otras.
El mejor atributo de los servicios OData es que son multicanales y están diseñados para servir a muchas aplicaciones. OData es un conjunto de buenas prácticas para desarrollar y utilizar REST APIs.
Mediante el uso del protocolo OData los desarrolladores pueden concentrarse en la parte lógica del negocio y las necesidades adherentes al mismo debido a que ya no tienen que preocuparse sobre temas secundarios como los estatus de los códigos, los métodos HTTP, opciones de búsqueda convenciones URL, entre otros.
OData es utilizado para lograr llevar a buen término la comunicación entre un cliente y un servidor cuando se requiere construir una arquitectura que en el caso de, por ejemplo, la World Wide Web necesita el uso de interfaces abstractas. Estas interfaces son presentadas como conectores, de esta forma se crea una restricción entre ambas partes (cliente y servidor) los cuales tienen cada uno su propio conector. Este contrato define el protocolo de aplicación que los conectores usan para intercambiar datos entre sí. En el caso de la World Wide Web lo hace mediante el uso del protocolo HTTP. En el caso de la programación ABAP podríamos pensar en un conector vinculado a un sistema SAP BackEnd. Este conector traduce entre los API’s ABAP y las entidades OData. En ese caso SAP Gateway es ese conector.
Se dice de los servicios OData que se desarrollan de afuera hacia adentro. Primero desarrollan o establecen al modelo OData sin la necesidad de conocimientos en SAP y aun así se pueden crear aplicaciones sobre esta estructura. Una vez creada la estructura, esta sirve de base tanto para el desarrollo de los servicios en el sistema BackEnd como en la interfaz del usuario en el FrontEnd. Luego, los desarrolladores de aplicaciones pueden crear servicios en múltiples formas e implementar estas enlazándolas con fuentes de datos tanto existentes como nuevos.
A su vez los desarrolladores de aplicaciones pueden crear la interfaz del usuario usando diferentes herramientas como HTML, JAVA, .NET, Google Android, entre otros. Este enfoque aumenta la eficiencia al lograr que los trabajadores del BackEnd y el FrontEnd trabajen en paralelo en el mismo modelo OData.
La creación y modelado del OData que es el corazón del desarrollo de la aplicación entre los mayores beneficios del uso del protocolo OData se encuentran:
- OData se basa en la arquitectura REST, por lo que podemos recuperar datos basados en una URL.
- También es compatible con HTTP, Atom Pub, así como el formato JSON.
- No es necesario crear un objeto de servicio proxy. Por lo tanto, es ligero de usar.
- Como es ligero, la interacción entre el servidor y el cliente es rápida. Por lo tanto, el rendimiento es bueno.
- El uso del protocolo HTTP lo cual permite el acceso a datos vía web.
- Debido a que es usado por varias plataformas, provee acceso a través de distintos canales.
- El protocolo OData ha sido ampliamente adoptado en el medio por lo cual no representa un cambio traumático.
OData y REST
OData ayuda a concentrarse en la lógica del negocio al construir aplicaciones de tipo REST sin tener que preocuparse por dar el enfoque correcto a tareas para definir los métodos HTTP, convenciones de URL, opciones de consulta, entre otros. Los servicios o datos soportan solicitudes de datos vía de la solicitud GET de HTTP.
El protocolo OData define un contrato especificando un protocolo uniforme que cumple con en su totalidad con los requerimientos para ser clasificado como un protocolo de tipo REST.
Consultas, solicitudes y modificaciones en OData
Alguna de las solicitudes que se puede realizar mediante OData son las consultas que resultan muy útiles para el manejo de los datos. OData maneja un lenguaje de consultas muy simple y muy poderoso que permite al usuario solicitar filtros y clasificaciones como éste lo desee.
Los nombres de todos los parámetros de consultas definidos por OData tienen como prefijo el carácter $. El uso de estas herramientas que provee OData resulta en la reducción del volumen de datos transferidos desde el servidor al Cliente por medio de filtros y seleccionando las propiedades de datos importantes solamente.
- La consulta Count devuelve el número de entradas de una colección, de esta manera el desarrollador puede mostrar cuantos objetos fueron encontrados en la consulta.
- La consulta Select se usa para limitar los resultados en el número de columnas que serán devueltas al consumidor. Esta opción está soportada por el framework.
- La consulta Filter tiene como objetivo limitar el número de columnas y filas que son devueltas. Un Filter tiene varias opciones de aplicación e incluso puede ser aplicada en todas las propiedades de un conjunto de entidades.
- La consulta Stop devolverá sólo el número de resultados especificados por el número pasado vía Stop.
- La consulta Expand es usada para devolver algunas entidades que están conectadas por la por la propiedad de navegación en una solicitud o en un ciclo de respuesta.
Otras operaciones igual de importantes en el manejo de OData son las solicitudes y modificaciones para la gestión de datos que el usuario tiene disponibles.
En cuanto a las solicitudes se cuenta con una amplia gama de herramientas que facilitan el desarrollo de los sistemas. Entre ellas están las opciones de: Solicitar colecciones de entidades, solicitar una entidad individual por medio de la ID, Solicitar una propiedad individual y Solicitar un valor bruto de propiedad individual.
Otra de las funciones interesantes del OData son las opciones para modificar los datos, entre esas opciones están Crear una entidad, Eliminar una entidad, Actualizar una entidad, Operaciones de relación, Funciones y Acciones y ETag.
[themoneytizer id=30822-28]