Mostrando entradas con la etiqueta IDE. Mostrar todas las entradas
Mostrando entradas con la etiqueta IDE. Mostrar todas las entradas

viernes, 10 de julio de 2026

¿Cómo funcionan los flujos en MuleSoft?

En la anterior entrega vimos que MuleSoft es una herramienta que nos permite conectar aplicaciones, datos y APIs de manera centralizada.

Ahora veremos cómo funciona los flujos de MuleSoft.

Flujo de una aplicación Spring Boot con Mulesoft

Digamos que se tiene una API con Spring Boot y se quiere integrar mediante MuleSoft.

┌─────────────────┐
 Aplicación      
 Consumidora     
 (Web/Móvil/ERP) 
└────────┬────────┘
          HTTPS/REST
         
┌─────────────────┐
 MuleSoft API    
 Experience API  
└────────┬────────┘
         
          Validación
          Seguridad (OAuth/JWT)
          Rate Limit
         
┌─────────────────┐
 Mule Flow       
 Orquestación    
└────────┬────────┘
         
         ├─────────────┐
                      
                      
┌────────────┐   ┌─────────────┐
 Transform      Enriquecer  
 DataWeave      Datos       
└─────┬──────┘   └──────┬──────┘
                       
      └────────┬────────┘
               
     ┌─────────────────┐
      System API      
      Spring Boot API 
     └───────┬─────────┘
              REST/JSON
             
     ┌─────────────────┐
      Spring Boot     
      Business Logic  
     └───────┬─────────┘
             
             
     ┌─────────────────┐
      Base de Datos   
      MySQL/Postgres  
     └─────────────────┘
	 
	 

Esto nos muestra el flujo de la aplicación con Mulesoft.

Flujo detallado (Spring Boot)

Todo inicia desde la petición del cliente hasta obtener la respuesta.

Cliente
   
   
HTTP Listener
   
   
Validar JWT/OAuth
   
   
Logger Request
   
   
Transform Message
(DataWeave)
   
   
HTTP Request
(Spring Boot API)
   
   
Spring Boot
   
   ├── Consulta DB
   ├── Procesa lógica
   └── Devuelve JSON
   
   
Transform Response
(DataWeave)
   
   
Logger Response
   
   
Retorna al Cliente

Teniendo una API Spring Boot:

GET /api/clientes/123

Respuesta:

{
  "id": 123,
  "nombre": "Thomas Muller",
  "email": "thomas.muller@empresa.com"
}

Exponiendo una API corporativa con MuleSoft:

GET /clientes/123

Respuesta:

{
  "id": 123,
  "nombre": "Thomas Muller",
  "email": "thomas.muller@empresa.com"
}

Arquitectura API-Led Connectivity

MuleSoft recomienda tres capas:

                 CLIENTES
                     
                     
        ┌─────────────────────────┐
         Experience API          
         Web / Mobile / Partner  
        └──────────┬──────────────┘
                   
                   
        ┌─────────────────────────┐
         Process API             
         Orquestación negocio    
        └──────────┬──────────────┘
                   
         ┌─────────┴─────────┐
                            
┌────────────────┐  ┌────────────────┐
 System API        System API     
 Spring Boot       SAP / Oracle   
└────────┬───────┘  └────────────────┘
         
         
   ┌──────────┐
    Database 
   └──────────┘

Responsabilidad de cada API

  • Experience API: adapta la información para cada canal.
  • Process API: aplica reglas de negocio y orquesta sistemas.
  • System API: conecta directamente con Spring Boot, SAP, Salesforce, bases de datos, etc.

Ejemplo de Mule Flow XML

Observemos un ejemplo de flujos (flow):

<flow name="getCustomerFlow">

    <http:listener
        path="/clientes/{id}"
        config-ref="HTTP_Listener"/>

    <logger
        level="INFO"
        message="Consultando cliente"/>

    <http:request
        method="GET"
        url="http://springboot:8080/api/clientes/#[attributes.uriParams.id]" />

    <ee:transform>
        <ee:message>
            <ee:set-payload>
<![CDATA[
%dw 2.0
output application/json
---
{
  customerId: payload.id,
  fullName: payload.nombre,
  contact: {
      email: payload.email
  }
}
]]>
            </ee:set-payload>
        </ee:message>
    </ee:transform>

</flow>

A simple vista es algo complejo estar trabajando con flujos, pero una vez aue se entiende la lógica ya no es tan complicado. Como se dijo arriba, todo inicia desde la petición del cliente hasta obtener una respuesta. Esa respuesta puede ser válida o indicar un error si la aplicación no puede atender correctamente la petición.

Beneficios de usar MuleSoft delante de Spring Boot:

  • Seguridad centralizada (OAuth, JWT, Client ID).
  • Monitoreo en Anypoint Platform.
  • Transformación de formatos con DataWeave.
  • Orquestación entre múltiples APIs.
  • Reutilización mediante API-Led Connectivity.
  • Desacoplamiento entre consumidores y backend Spring Boot.

Proyecto en AnyPoint Studio MuleSoft

AnyPoint Studio MuleSoft es un entorno de desarrollo integrado (IDE) basado en Eclipse. Permite a los desarrolladores diseñar, construir y probar APIs e integraciones empresariales mediante una interfaz visual de arrastrar y soltar, simplificando la conexión entre diferentes aplicaciones y servicios.

Un proyecto luciría de esta forma:

MuleSoft es un mundo por aprender; nos permite conectar sistemas, diseñar, crear, probar y gestionar APIs empresariales; además de facilita la automatización de procesos, denominados flujos de trabajo; también permite visualizar toda la infomación involucrada.

Continuaremos con este tema en próximas entregas.

Enlaces:

https://www.mulesoft.com/
https://es.wikipedia.org/wiki/MuleSoft
https://www.seidor.com/es-mx/blog/salesforce-mulesoft-que-es
https://rootstack.com/es/blog/mulesoft-todo-lo-que-tienes-que-saber


jueves, 17 de abril de 2025

Firebase Studio, el Visual Studio Code de Google

La "benevolente" y nada "maquiavélica" empresa Google ha lanzado una plataforma para programar: Firebase Studio.

Firebase Studio es un entorno de desarrollo basado en la nube, diseñado para acelerar la creación, prueba, implementación y ejecución de aplicaciones web y móviles de pila completa con inteligencia artificial (IA). Combina herramientas como Project IDX, Genkit y la IA de Gemini para ofrecer un espacio de trabajo colaborativo accesible desde cualquier navegador. Permite a desarrolladores y no programadores construir aplicaciones de calidad de producción, incluyendo APIs, backends, frontends y más, de forma rápida y eficiente.

Nota: Esto no es nada nuevo. Hace años existió una plataforma similar llamada: Cloud 9, ahora propiedad de AWS.

Características

  • Prototipado con IA: Utiliza el App Prototyping agent con Gemini 2.0 Flash para generar aplicaciones web (actualmente con Next.js, con más frameworks en el futuro) a partir de descripciones en lenguaje natural, imágenes o bocetos, sin necesidad de programar. 
  • Codificación con control total: Ofrece un entorno basado en Code OSS (similar a Visual Studio Code) con soporte para lenguajes como Java, Python, Node.js, Go, .NET, y frameworks como React, Angular, Vue.js, Flutter, entre otros. Incluye autocompletado, depuración y extensiones del Open VSX Registry. 
  • Flexibilidad y personalización: Permite importar proyectos desde GitHub, GitLab o Bitbucket, usar plantillas predefinidas (más de 60 disponibles) o personalizar entornos con Nix. 
  • Despliegue sencillo: Publica aplicaciones con un clic usando Firebase App Hosting, Cloud Run o infraestructura personalizada, con vistas previas instantáneas mediante URLs públicas o códigos QR. 
  • Colaboración en tiempo real: Comparte espacios de trabajo mediante enlaces para que equipos trabajen simultáneamente, similar a Google Docs. 
  • Asistencia de IA: Gemini en Firebase ayuda con tareas como generación de código, corrección de errores, pruebas, documentación y gestión de dependencias.

Modos de uso

  • Sin código: Ideal para principiantes, permite crear prototipos describiendo la idea en lenguaje natural. 
  • Codificación manual: Para desarrolladores avanzados que prefieren editar código directamente en un IDE completo.

Limitaciones:

  • Actualmente, el App Prototyping agent solo soporta aplicaciones web con Next.js. 
  • Las funciones de IA generativa están sujetas a la Política de Uso Prohibido de IA Generativa y los Términos de Servicio de Gemini API. 
  • Para evitar que los datos se usen en entrenamiento de modelos, se puede desactivar la finalización de código o evitar el uso del App Prototyping agent.
  • La interfaz está principalmente en inglés, aunque acepta instrucciones en español.

Ejemplo de uso:

Un usuario puede describir: "Quiero una aplicación web para gestionar tareas con autenticación de usuarios y un diseño minimalista". Firebase Studio genera un prototipo funcional en minutos, con código, interfaz y API configurada. Luego, el usuario puede ajustar el diseño con Gemini, editar el código manualmente o publicarlo directamente.

Un punto de vista...

El creciente número de plataformas que usan IA debería ponernos a pensar: ¿En un futuro todo será automatizado y, por ende, no se necesitará de intervención humana?

Solo el tiempo lo dirá.

Nota curiosa: ¡Este es el post número 333 del blog!

Enlaces:

https://firebase.studio/
https://code.visualstudio.com/
https://atom-editor.cc/

domingo, 25 de febrero de 2024

IDEs y editores de código que deberías conocer y usar

 

En este post veremos una pequeña lista de IDEs  y editores de código que todo programador debería conocer. La lista no tiene un orden específico.

Entre los IDEs más famosos están Eclipse, IntelliJ IDEA, Visual Studio y Netbeans. Algunos son muy específicos como Lazarus IDE que solo es para Pascal o Spyder IDE para Python. 

Y entre los editores de código más habituales están SublimeText, Notepad++ y Visual Studio Code.

IDEs

IntelliJ IDEA

https://www.jetbrains.com/es-es/idea/


Visual Studio 2022

https://visualstudio.microsoft.com/es/


NetBeans

https://netbeans.apache.org/front/main/index.html


Eclipse IDE

https://eclipseide.org/


PyCharm

https://www.jetbrains.com/es-es/pycharm/


Spyder IDE

https://www.spyder-ide.org/


Eric (Python) IDE

https://eric-ide.python-projects.org/


Lazarus IDE

https://www.lazarus-ide.org/


Aptana Studio

https://www.axway.com/en/aptana


Android Studio

https://developer.android.com/studio



Editores

Kate

https://kate-editor.org/es/


Notepad++

https://notepad-plus-plus.org/


Sublime Text

https://www.sublimetext.com/


Brackets

https://brackets.io/


Atom

https://atom-editor.cc/


Visual Studio Code

https://code.visualstudio.com/


MU Editor

https://codewith.mu/


Geany

https://www.geany.org/


CudaText

https://cudatext.github.io/


Enlaces:

https://www.techrepublic.com/article/best-ide-software/

https://en.wikipedia.org/wiki/List_of_text_editors

sábado, 18 de julio de 2015

Una pregunta ... ¿Por qué quieres ser programador?

"Algunos comienzan una cosa sin tener la más remota idea de como comenzar y lo peor aún ... como terminar"
 :: El Libro de los naufragios::

Hace algunos años les preguntaron a James Gosling y Linus Torvalds (por mencionar algunos) donde habían aprendido a programar y si realmente la educación universitaria fue la diferencia que marco el destino de sus carreras. Sus respuestas fueron: "No aprendí a programar en la escuela, sino por mi cuenta leyendo libros y practicando" y "al principio aprendí por mi cuenta. Conseguí mi primer trabajo como programador antes de ir a la universidad". Otros más dijeron que: "Las universidades me enseñaron muchas cosas útiles, incluso la mayoría de las bases que sería mi trabajo futuro".  Para estas "celebridades" de la informática el gusto y una buena educación académica fue esencial para ser programador. Pero ¿qué es un programador?  y más aun ¿existe la carrera de programador o desarrollador?.


  El programador (de una manera burda) es  quien, sin importar si tiene o no una carrera universitaria( la que sea) o hasta estudios básicos, escribe, documenta (en algunos casos) y depura los programas que la computadora ejecutará y obtendrá información útil para ser usada para cualquier propósito. Ahora bien esta cabe señalar que "esta carrera" no existe como tal. Un programador puede ser cualquier persona: un contador, un abogado, un médico, y ¡hasta un niño!. No, no se trata de una broma. Es la realidad.  Esta claro que por lo general los programadores vienen de carreras como Sistemas computacionales, Informática administrativa, Ingeniería en computación, etc. , pero ya no es raro encontrar gente que trabaja "haciendo programas" y no ha estudiado ninguna de esas carreras.  ¿La calidad de su trabajo tiene que ver con lo estudiado en la universidad?, ¿será que se equivocaron al elegir una profesión? ... algunas preguntas incomodas.

   Y si de preguntas incomodas hablamos ... se les podría hacer la siguiente: ¿por qué quieres ser programador?. Habría respuestas como:
  • Me gusta la computación y la tecnología
  • Se gana muy bien como programador
  • No lo sé, creo me gustan los retos
  • etc.
Yo creo que tiene que ver más por el gusto aunque la necesidad también puede ser.

Links
https://blog.udemy.com/es/cinco-preguntas-de-perl-para-una-entrevista-que-cada-programador-debria-saber/


viernes, 30 de mayo de 2014

IDEs para programar en C# ... no Visual Studio .NET

Lista de IDEs para programar en C#

XDevelop
http://freecode.com/projects/xdevelop
Un IDE para programar en C# y Java. Al parecer esta descontinuado.

QuickSharp
http://quicksharp.sourceforge.net/
Un IDE para programar aplicaciones Microsoft .Net (C#). No tan robusto como Microsoft Visual Studio.

 
Xacc IDE
http://xacc.wordpress.com/
Un IDE para programar en varios lenguajes, entre ellos C#.


SharpDevelop
http://www.icsharpcode.net/opensource/sd/
Un IDE bastante completo para programar en C#, VB .Net y Boo.

MonoDevelop

http://monodevelop.com/
Es un IDE que permite crear aplicaciones .Net (ASP .Net), una alternativa a Visual Studio .Net.

Emonic (plugin para Eclipse)
 http://emonic.sourceforge.net/  
Es un plugin que se agrega Eclipse para poder crear aplicaciones C#.

Xamarin Studio
http://xamarin.com/studio
Este IDE muy  completo, con integración a Visual Studio.

domingo, 8 de septiembre de 2013

Un vistazo a ... C#


Instalar SharpDevelop
Comenzamos descargando e instalando este IDE http://www.icsharpcode.net/opensource/sd/ para programar en C#. Es una herramienta Open Source para crear aplicaciones .Net. 

Una vez instalado, creamos un proyecto File -> New -> Solution, elegimos "Console Application".
Le damos un nombre al proyecto.


1. Entrada y salida
using System;

namespace Codemonkey.cs
{
class Program
{
public static void Main(string[] args)
{

      String nombre;
      Console.WriteLine("Introduzca tu nombre");
      nombre=Console.ReadLine();
      Console.WriteLine("Hola " + nombre);
      Console.Write("Presiona una tecla para continuar . . . ");
      Console.ReadKey(true);

}
}
}

2. Calcular el valor futuro dada una cantidad invertida
using System;

namespace Codemonkey.cs
{
class Program
{
public static void Main(string[] args)
{

      double valor=4500.0;
double tasa=7.0/12.0;
int plazo=4;
double valorFuturo;
for(int i=0;i<plazo;i++){
valorFuturo=valor*Math.Pow(1+tasa,i);
Console.WriteLine("valor futuro generado: "+valorFuturo+" para el periodo: "+(i+1));
}
Console.Write("Presiona una tecla para continuar . . . ");
Console.ReadKey(true);

}
}
}

Links
http://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Java

Jai un lenguaje de programación inspirado en C++

Hoy hablaremos de un nuevo lenguaje de programación llamado Jai . Se trata de un lenguaje de programación que está desarrolland...

Etiquetas

Archivo del blog