Adobe Coldfusion Summit 2023 - 2/3

Adobe Coldfusion Summit 2023 - 2/3
Adobe Coldfusion Summit 2023 - Dia 1, Sesiones Vespertinas.

Empiezan las sesiones especializadas en presentar con profundidad técnica las maravillas que tiene Coldfusion en su nueva versión, Los lideres de opinión y más reconocidos evangelistas de la comunidad, así como el equipo técnico y de producto de Adobe están presentes en todas ellas.

Algo que no me gusta de este tipo de eventos es que te ves obligado a escoger. Típicamente a la misma hora hay 3 o 4 platicas sobre diferentes temas, con diferentes personas y en diferentes lugares. Esto me resultó frustrante porque quise estar en todas pero me vi obligado a escoger las que consideré más relevantes para mi y para esta comunidad, no me arrepiento de la elección.

¡Excelentes ponencias todas! Las escogí porque conozco a la gente que las dió y conozco su nivel de experiencia en la materia así como la relevancia en la industria y necesidades del dia a día que podemos tener como programadores y estrategas.

A) Hidden GEMS in CF 2023

Charlie Arehart & me!

En esta sesión, Charlie Arehart, quien se conoce en la industria por resolver las dudas o problemas relacionadas a CF en menos de 1hr nos compartió su bien conocida sesión práctica y objetiva sobre lo que hay en CF que pocos conocen.

Se resume así:

1) GraphQL - Coldfusion te permite tener un cliente para consumir este lenguaje que busca complementar las APIS al permitir a los desarrolladores obtener datos específicos de un objeto y no toda la data que tipicamente los servicios traen. Con esta data el cliente define la data que requiere y no se limita a la se definió en el servidor. Ejemplos prácticos son sólo las ordenes asociadas a un producto, o los libros en los que partició determinado autor. Consultas muy puntuales y poco probables en APIS rest comunes de /ordenes y /productos que además traerian información excesiva que requiere mucha iteración. Los nuevos comandos que vale la pena revisar son  -generateGraphQLModels y generateGrapQLClient. Se espera que el Servidor de GraphQL este listo en la versión 2024 o 2025 pero con el cliente ya se puede interactuar con servicios de Facebook y otros jugadores.

2) Integración nativa a la nube de Google (GCP) - Con esta integración todos los servicios de GCP como Firestore/NoSQL, así como Mensajeria (similar a AWS/SQS que ya existe con Amazon y con el Service Bus de MS/Azure) se pueden consumir. Coldfusion tiene capacidad completa de interactuar con las 3 nubes principales con comandos muy simples.

3) Un nuevo motor de HTML a PDF que convierte documentos "Pixel-Perfect" de HTML a una versión distribuible/impresa como lo es PDF. Lo anterior con completo soporte para el estándar CSS3, HTML5, JS e inclusive elementos gráficos com SVG y componentes de audio/video embedidos. No olvidemos que Adobe es la compañia que creó el formato PDF y por ello tiene capacidad no solo de crearlos y manipularlos a elección sino también de extraer y generar data mediante APIS que complementan a este motor.  Lo anterior con licencias de PDFRReactor incluidas y con total conformidad a los estandares de PDFA1,1b,2 y 3.

4) INTEGRACION CON WEB TOKENS (JWT/JWE) - Coldfusion permite usar y consumir tokens de seguridad para web en formato JSON. Fundamentalmente se trata de un estandar para compartir información de forma segura entre dos partes mediante la serializacion de data encriptada usando una especificación o algoritmo de encripción. Se usa particularmente en sistemas de autenticación para identificar a los usuarios y asegurar su acreditación por lo que su disponibilidad abre la puerta a muchos casos de uso donde la data no debe viajar abiertamente y se requiere confirmar identidad de las partes. Las funciones especificas por revisar son CreateSignedJWT y VerifySignedJWT

5) AVRO y PROTOBUF - ¡Exacto! yo pensé lo mismo... ¿Y esto que es? Bueno pues se trata de esquemas para serializar BIG-Data originados por Hadoop. Protobuf es igual un estandar para intercambiar datos creado por Google cómo opción para resolver limitaciones de JSON/XML. Traducido a coldfusion, con la capacidad de serializar y deserializar este tipo de datos resulta más sencillo la integración con Big-Data, No-Sql y esquemas de datos asociados. Los comandos que se recomienda evaluar son serializeAvro, deserializeAvro, serializeProtoBuf y deserializeProfoBuf. Esta iniciativa claramente busca crear una interoperabilidad amplia desde y hacia Coldfusion.

Otras menciones Relevantes:

CFIMAGE - Esta función es de las mejores que tiene Coldfusion, la capacidad para generar y manipular imagenes no es nueva, pero agregaron capacidad para soportar más formatos JPEG2000, PNM, RAW y otros que se pueden obtener con getReadableFormats(). Esto es central para la generación de imágenes con AI, la transformación y edición que son parte de las apuestas de Adobe.XMLClear

XMLClear, xmlDeleteAt, xmlHasChild, XmlUpdate y decenas de funciones que amplian y simplifican la manipulación de objetos XML. Con la gran mejora de que ahora se pueden también concatenear usando las funciones de miembros y asi seguir una cadena de eventos asociados y dependientes.

CCS - El servidor de configuración central que permite auditar, administrar versiones y publicar configuraciones de instancias. Extraordinario para ambientes distribuidos ya que centraliza y automatiza procesos que tradicionalmente eran manuales eliminando así los diferenciales que pudieran generar errores. Adicional a esto se implemento una herramienta CLI (Command Line Interface) para poder ejecutar y operar todo desde un Shell o terminal. Faltan cosas como datasources, settings de JVM, tareas y contraseñas pero un paso gigantesco en la administración y configuración de servidores.

SSO SAML/LDAP - mediante CFLogin Coldfusion puede ya integrarse nativamente a servidores y procesos de autenticación basados en SAML y LDAP que facilitan la autenticación única "Single Sign On".

REDIS con SSL - Se habilitó el servicio REDIS para cache bajo procolos encriptados, aunque esto implica la deshabiltación de los JTokens facilita crear clusters de servidores que optimicen la velocidad de carga.

Deployment - Coldfusion ya puede publicarse en diferentes formas - GUI, Instalador Silencioso (ZIP), WAR/CAR/JAR, Commandbox, Docker, y sobre todo como imagenes dentro de AWS/Azure y Google Cloud (esta última aún se encuentra en proceso pero seguro estará lista para la siguiente actualización).

PMT - Las herramientas para la supervisión del rendimiento (Performance Monitoring Toolset) tuvieron la actualización más importante a la fecha ya que ahora operan bajo Nube en esquemas Elásticos.

Mejoras de JAVA - Al actualizar el engine de Java a su versión 17, Coldfusion automáticamente se benefició de mejoras como al paralelismo por default, el soporte para apuntadores Nulos y muchas cosas más que se pueden reevisar directamente en Oracle.com/java o Java.com

B) COLDFUSION 2024 ROADMAP