Video Summary and Transcription
La presentación de hoy trata sobre el desarrollo Full Stack utilizando la nueva base de datos Oracle 23 AI y la plataforma Parse. Parse Server simplifica el desarrollo móvil al proporcionar una solución de backend flexible. El nuevo contenedor de base de datos Oracle 23 AI ofrece beneficios como soporte JSON y administración de base de datos enchufable. El adaptador de almacenamiento de Parse Server permite una gestión y prueba más sencillas de las APIs. El stack también incluye características como GraphQL, ejecución de código personalizado de Oracle, colas de mensajes y Oracle Spatial para aplicaciones de geovallado y seguimiento de camiones.
1. Introducción al Desarrollo Full Stack
La presentación de hoy trata sobre el desarrollo Full Stack utilizando la nueva base de datos Oracle 23 AI y la plataforma Parse como servidor backend. El desarrollo Full Stack se refiere a la práctica de construir tanto los componentes frontend como backend de una aplicación web. Parse Server simplifica el desarrollo móvil al proporcionar una solución backend potente y flexible. La base de datos utilizada en esta pila es la nueva Oracle 23 AI, que se ejecuta como un contenedor Docker, y es la primera vez que Oracle ofrece un contenedor de base de datos gratuito para desarrollo local.
Hola. La presentación de hoy trata sobre el desarrollo Full Stack utilizando la nueva base de datos Oracle 23 AI. También utiliza la plataforma Parse como servidor backend.
La plataforma Parse se conoce como un servidor MBaaS o un backend móvil como servidor y facilita el desarrollo rápido de aplicaciones móviles y web. El servidor se ejecuta con la nueva versión Oracle 23 AI. Esta es una versión completa y gratuita de la base de datos Oracle que se ejecuta como un contenedor Docker.
Mi nombre es Doug Drexel. He trabajado en software durante más de 30 años. Tal vez conozcas algunos productos en los que he trabajado, que incluyen Tuxedo, WebLogic Server. He trabajado en el motor Kubernetes de Oracle por un tiempo. Y ahora estoy trabajando con el equipo de database en el alcance de los desarrolladores.
Muy rápidamente, como probablemente todos saben, el desarrollo Full Stack se refiere a la práctica de construir y trabajar tanto en el lado del cliente frontend como en los componentes del lado del servidor backend de una aplicación móvil o web. Los desarrolladores Full Stack tienen una comprensión integral de cómo interactúan e integran los diferentes componentes de una aplicación web entre sí. Pueden trabajar en la interfaz de usuario, manejar la lógica empresarial, administrar bases de datos y garantizar una comunicación fluida entre el cliente y el servidor. La capacidad de trabajar en toda la pila permite a los desarrolladores Full Stack construir aplicaciones web completas de principio a fin sin estar limitados solo al frontend o backend. Esta versatilidad los convierte en activos valiosos para las empresas que desarrollan productos y servicios basados en web.
En esta charla, el backend será Parse Server. La database será Local23AI y el frontend será una variedad de SDK que admite Parse Server. Entonces, Parse Server es una aplicación Express de Node.js de código abierto que comúnmente se conoce como un servidor integrado. Oracle ha desarrollado un nuevo adaptador de almacenamiento para Parse Server utilizando los módulos Oracle NodeDB. La database es la nueva Oracle 23 AI que se ejecuta como un contenedor Docker. Este contenedor admite el desarrollo NoSQL utilizando la sintaxis JSON habitual. El frontend es la variedad de SDK que admite Parse Server. Lo nuevo y único de esta pila es que es la primera vez que Oracle ofrece un contenedor de base de datos gratuito para desarrollo local.
2. Introducción a Parse Server
Parse Server simplifica el desarrollo móvil al ofrecer una solución backend potente y flexible. Te permite centrarte en construir la funcionalidad principal de tu aplicación sin complicarte con la configuración y mantenimiento del servidor. Con soporte para varios kits de desarrollo de software y un conjunto completo de APIs y servicios, Parse Server es adecuado para proyectos de cualquier tamaño.
Muy bien, hablemos un poco sobre Parse Server. Como desarrollador, sabes que construir aplicaciones móviles puede ser un proceso complejo y que consume mucho tiempo, especialmente cuando se trata de manejar la lógica del lado del servidor y la gestión de datos. Ahí es donde entra en juego Parse Server, ofreciendo una solución backend potente y flexible que simplifica el desarrollo móvil. Con Parse Server, puedes configurar rápidamente una infraestructura backend robusta, completa con características como almacenamiento de datos, autenticación de usuarios, notificaciones push y más. Esto te permite centrarte en construir la funcionalidad principal de tu aplicación sin complicarte con los detalles de la configuración y mantenimiento del servidor.
La naturaleza de código abierto de Parse Server también significa que tienes control total sobre tus datos y puedes personalizar fácilmente el servidor para adaptarlo a tus necesidades específicas. Ya sea que estés trabajando en un proyecto personal pequeño o en una aplicación empresarial a gran escala, Parse Server puede ayudarte a agilizar tu flujo de trabajo de desarrollo móvil, ahorrándote tiempo y recursos valiosos.
Aquí están los kits de desarrollo de software que Parse Server admite. He utilizado React Native para una aplicación de historial de caminatas que se utilizará en la masterclass. He utilizado Flutter para crear una aplicación simple de puntuación de juegos basada en Game Score, que es el `Hola Mundo` de Parse. Esa aplicación implementa autenticación y autorización y utiliza GraphQL internamente. Un miembro del equipo ha utilizado el SDK de Unity API, un SDK común para juegos, para crear una aplicación móvil de piedra, papel o tijera. La API de Parse Server proporciona un conjunto completo de APIs y servicios que permiten a los desarrolladores construir y gestionar la infraestructura backend de sus aplicaciones. Incluye los siguientes componentes.
3. Introducción al Contenedor de la Base de Datos Oracle 323AI
Gestión de datos, gestión de usuarios, notificaciones push, código en la nube y resumen de Parse Server. Introducción al nuevo Contenedor de la Base de Datos Oracle 323AI. Cómo utilizarlo y habilitar el soporte JSON. Concepto de base de datos enchufable dentro de un contenedor de base de datos. Beneficios de una base de datos enchufable y su administración. Adaptador de almacenamiento Oracle para Parse Server.
Gestión de datos, gestión de usuarios, he utilizado básicamente todos estos, notificaciones push, código en la nube para escribir código personalizado en el lado del servidor, y hablaremos de esto a lo largo de esta charla.
Y eso concluye un resumen de Parse Server, el backend. Ahora vamos a hablar de la base de datos. Muy bien, voy a hablar del nuevo Contenedor de la Base de Datos Oracle 323AI. Sí, una imagen de Docker para Oracle que es gratuita. Es una imagen de base de datos completa. No falta nada aquí. Para utilizarlo, tienes que ejecutar un Docker run, y descargará el contenedor y lo iniciará.
Y luego, si quieres utilizarlo para el desarrollo JSON, tienes que ejecutar estos comandos para habilitar el soporte JSON. Para hacer esto, tendrás que descargar el cliente SQL para interactuar con el contenedor local y luego te conectarás, mira este comando, te conectarás como sysdba a una base de datos enchufable llamada 3PDB1. Puedes ver eso en el comando SQL. Una vez que hayas iniciado sesión, ejecutarás estos comandos, o puedes ejecutarlos como un script. Solo tienes que redirigirlos a SQL y eso configurará el contenedor local de Docker para el desarrollo JSON.
Pero, ¿qué es una base de datos enchufable? Oracle tiene esta idea o concepto de una base de datos contenedor. Y 323AI es una base de datos contenedor, lo que significa que puede haber muchas instancias de una base de datos enchufable, que podrían correlacionarse con servicios nativos en la nube o contextos acotados. Por cada PDB dentro de una base de datos contenedor, puedes definir eso. Aquí, déjame intentarlo de nuevo. En una arquitectura de microservicios, una base de datos enchufable puede estar limitada a un contexto acotado de servicios. Por ejemplo, el servicio de proveedores, el servicio de clientes y el servicio de pedidos. Mientras que a nivel de contenedor, el sysdba aún puede administrar todas las PDB de la misma manera en cuanto a parches, actualizaciones y copias de seguridad. Otra gran ventaja es que un equipo puede recopilar e informar métricas para todas las PDB en una base de datos contenedor.
Vimos al administrador sysdba que puede ejecutar comandos a nivel de la base de datos contenedor. Pero cada PDB puede tener su propio administrador que mantiene la instancia específica. Para la PDB predeterminada, PDB1 gratuita, el administrador predeterminado es PDBadmin. Muy bien. Un poco sobre el adaptador de almacenamiento que construimos en Oracle para Parse Server. Actualmente, el código del adaptador de almacenamiento Oracle se encuentra en el repositorio de Oracle Samples en GitHub, y se recomienda trabajar con la última versión de Parse Server 7.0.0. Estoy trabajando con el equipo de Parse para lanzar este adaptador como un, entre comillas, adaptador adecuado.
4. Introducción al Adaptador de Almacenamiento de Parse Server
Moviendo Mongo y Postgres fuera del repositorio del servidor. Se agregaron características como una lista de exclusión de pruebas y soporte para adaptador de almacenamiento. El adaptador estará disponible oficialmente a partir del 1 de julio. El panel de control permite administrar usuarios, colecciones y configurar webhooks. Playground de GraphQL para probar las APIs y verificar el código.
Actualmente, los otros adaptadores de almacenamiento, Mongo y Postgres, forman parte del repositorio del servidor base. Eso es a lo que me refiero con un adaptador adecuado. Queríamos hacer que los adaptadores de almacenamiento fueran configurables de forma dinámica. Y he hablado con el equipo de Parse, y también quieren sacar Mongo y Postgres del repositorio del servidor y convertirlos en sus propios repositorios. Para hacer eso, trabajé con el equipo de Parse para agregar un par de características, una lista de exclusión de pruebas que permite a cada adaptador desactivar las pruebas rotas para esa compilación específica. Y agregué soporte para adaptador de almacenamiento, que permite la configuración dinámica de un adaptador de almacenamiento.
También tenemos un pipeline de GitHub que ejecuta la suite completa de pruebas en Oracle. Actualmente, pasamos 2,671 pruebas de 3,141. De esas fallas, 253 son específicas de Oracle según lo identificado en la lista de exclusión de pruebas. Estuve hablando con la gente de Parse esta mañana, y tenemos la intención de que este adaptador esté disponible oficialmente a partir del 1 de julio. Y por ahora, es compatible como una vista previa para desarrolladores. Por lo tanto, cuando instales Parse Server, también obtendrás un panel de control que es muy fácil de instalar y trabajar con tu servidor. Este panel de control funciona con versiones oficiales etiquetadas. No lo sé con certeza, pero creo que es cierto. Y recomiendo que hagas lo mismo si vas a probar esta pila localmente. Este panel de control te permite hacer muchas cosas. Te permite administrar usuarios. Te permite administrar colecciones. Puedes configurar webhooks para llamar a otros servicios de Kubernetes, por ejemplo, servicios proporcionados por nuestra plataforma Spring Boot. Tenemos una plataforma Spring Boot, y he utilizado webhooks para llamar a los servicios ofrecidos por esos microservicios de Spring Boot y hacerlos disponibles a través de la API para desarrolladores móviles y web. Y luego, como puedes ver en la parte inferior de la consola, está la consola de la API. Si observas el inicio del panel de control, verás que especifiqué la conexión a el punto final de Parse, que es la API de Parse. También especifiqué la conexión al punto final de GraphQL, por lo que realmente podemos ejecutar un poco de GraphQL a través del playground. Aquí hay una imagen en el panel de control del playground de GraphQL. Encontré que estos playgrounds son muy útiles cuando me familiaricé con el uso de las APIs de Parse. Puedes escribir código simple que prueba las APIs y verificar que tu código esté funcionando antes de implementarlo en tus aplicaciones. Este panel de control tiene tres playgrounds.
5. Explorando las características específicas de Oracle
La pila incluye playgrounds de REST, GraphQL y JavaScript. La función de autodocumentación de GraphQL mejora la productividad del desarrollador. El código en la nube permite la ejecución de código personalizado de Oracle. Colas de mensajes con notificación de consulta continua y notificaciones push. Oracle Spatial para aplicaciones de geovallado y seguimiento de camiones. Explorando los grafos de propiedades y el ajuste de SQL.
Tiene el playground de REST, el playground de GraphQL y el playground de JavaScript. En este ejemplo específico de GraphQL, se está creando un documento de curso en la colección de cursos. Una de las cosas que realmente me gustó de GraphQL es su función de autodocumentación.
Creo que eso es genial. Las capacidades de autodocumentación de GraphQL permiten a los desarrolladores inspeccionar y explorar el esquema y las consultas y mutaciones disponibles, y mejora en gran medida la productividad del desarrollador para facilitar la colaboración eficiente entre los equipos de servicio. Así que esa fue una visión general rápida y amplia de este entorno de desarrollo full-stack y los diferentes componentes. El servidor backend de Parse, la base de datos Oracle 3.23 AI, y básicamente cualquier SDK que prefieras utilizar.
Pero ahora voy a empezar a hablar de cosas que he hecho que tal vez sean específicas de Oracle. No estoy seguro, pero estas son cosas que he hecho realmente con la pila. Muy bien. Hay muchos acrónimos en este título, así que vamos a pasar por esto. Muy bien. Parse proporciona la idea de código en la nube, que es código en el lado del servidor que se puede agregar fácilmente al conjunto de API del cliente. Usando el código en la nube, se puede ejecutar código personalizado de Oracle. Se puede utilizar cualquier SQL, JSON, PL SQL preexistente o cualquiera de los métodos de encolado relacionados con una cola, encolado avanzado. En este caso de uso, configuré una cola de mensajes y me registré para recibir una devolución de llamada cuando aparecieran nuevos mensajes en la cola, y eso es la CQN, notificación de consulta continua.
Cuando se recibía un mensaje en la cola, se llamaba a la devolución de llamada y, utilizando APNs, servicio de notificación push de Apple, se enviaba la notificación a los usuarios que se suscribieron. Un agradecimiento rápido a Codeco porque utilicé su tutorial de notificaciones push para desarrollar esta pequeña aplicación. Este siguiente ejemplo es similar al primero, excepto que ahora estoy trabajando con Oracle Spatial. Oracle Spatial es un conjunto completo de características para gestionar y analizar datos espaciales. En este caso, también escucharía eventos en la cola, pero esta vez los eventos están relacionados con el seguimiento de camiones. ¿El camión se desvió de la ruta, como puedes ver? Así que esta es una especie de aplicación de geovallado. Si miras la imagen, hemos establecido un límite, un límite de geovallado, y podemos recibir alertas si un camión se desvía de la ruta, si el camión va a llegar en 20 minutos, para que podamos preparar el muelle. He tenido algunas otras ideas con esta capacidad para algunas otras cosas en las que espero poder trabajar. Estas son dos cosas que he hecho con esta pila localmente. En realidad, envié mensajes y notificaciones a través de APNS desde mi máquina local, pero hay muchas otras características por explorar en esta versión que espero poder utilizar. Esto es una de las próximas cosas en las que voy a trabajar. Estos son los grafos de propiedades. Si no sabes qué hacen los grafos de propiedades, Oracle tiene una base de datos de grafos en la que puedes realizar análisis de grafos, y hay algunos ejemplos de por qué querrías hacer algo así. Lo que quiero hacer, o en lo que estoy trabajando actualmente, es en un conjunto de ajuste de SQL.
6. SQL Tuning Set and JSON Relational Duality
Conversión de un conjunto de ajuste de SQL a un grafo para identificar tablas relacionadas. Definición de un contexto acotado en tablas existentes. Dualidad relacional JSON para definir vistas JSON en tablas SQL.
Oracle tiene un conjunto de ajuste de SQL, que recopila todas las solicitudes que ingresan a la database y las registra. Lo que estoy haciendo es convertir un conjunto de ajuste de SQL a un grafo e identificar tablas relacionadas utilizando la detección de community. Esto sería útil para definir un contexto acotado en tablas existentes mediante la identificación de afinidades conjuntas o tal vez la identificación de un contexto transaccional.
Entonces, el trabajo que estoy haciendo aquí, y hay muchas oportunidades para utilizar esta característica de diferentes formas, pero el trabajo que estoy haciendo es migrar o tomar bases de datos SQL estándar que han existido durante mucho tiempo, analizarlas y ayudar a nuestros usuarios a definir un contexto acotado para que puedan abstraer las tablas existentes en servicios.
Lo siguiente en lo que estoy trabajando, y esto está relacionado con el conjunto de ajuste de SQL, se llama dualidad relacional JSON. Esto significa básicamente que se pueden definir vistas JSON en tablas SQL existentes. Mediante vistas de dualidad, los data se almacenan en tablas relacionales en un formato altamente eficiente y normalizado, pero se accede a ellos mediante aplicaciones en forma de documentos JSON. Teóricamente, podría tomar el contexto acotado que he definido en tal vez múltiples tablas basadas en afinidades conjuntas o contexto transaccional. Podría escribir una vista de dualidad relacional JSON sobre esas tablas y exponer ese contexto acotado como un servicio utilizando NoSQL. Lo siguiente en lo que he trabajado se llama JavaScript stored procedures. Entonces, en Oracle, siempre existió un concepto llamado PLSQL. Podías tener code escrito en la database al que accedías como una llamada de función. Ahora puedes hacer lo mismo con JavaScript. Puedes crear aplicaciones de alto rendimiento basadas en datos escribiendo procedimientos almacenados en JavaScript impulsados por GraalVM e importando bibliotecas JavaScript existentes en la database. Puedes minimizar las idas y vueltas a la database ejecutando la lógica empresarial directamente en la capa de data. Entonces, anteriormente, cuando hablaba de la aplicación de mensajería o la aplicación espacial, parte de eso se escribió como cloud code, código personalizado en el lado del servidor que Parse te permite escribir llamado PLSQL preexistente. Teóricamente, todo ese cloud code se podría mover a la database. Y por último, pero no menos importante, ¿cómo podríamos tener una charla sin hablar de AI? Búsqueda vectorial AI. Me gustaría empezar a trabajar en esto, pero aún no he llegado. Como dije, uso los paquetes de nodo DB que Oracle proporciona ahora para trabajar con bases de datos JSON NoSQL. Y en su última versión, introdujo un nuevo tipo de data vectorial de primera clase para almacenar incrustaciones vectoriales. Enumeré un par de casos de uso posibles para esto, pero como dije, aún no he llegado. Espero llegar pronto. OK. Aquí tienes. Todo lo que Oracle trae con la versión 23AI. Y hay mucho aquí. Y esta es una versión importante para Oracle. Y para los desarrolladores full stack, lo importante es que ahora puedes hacer desarrollo JSON con todas estas características. Así que comienza a crear. Muy bien. Espero haberte convencido de que Oracle tiene un entorno de desarrollo full stack que facilita mucho el desarrollo. Y que ofrece muchas oportunidades para la innovation. Muy bien. Gracias por escuchar mi charla. Y a innovar.
Comments