Pila (Stack)

Pila StackEn días pasados hablamos acerca de las Colas o Queue las cuales siguen la filosofía FIFO (First In – First Out) o Primero en entrar – Primero en salir. Sin embargo, hoy hablaremos de las Pilas o Stack las cuales son un poco diferentes de las Colas, ya que éstas siguen la filosofía LIFO (Last In – First Out) o Último en entrar primero en salir. (más…)

Estructura de datos – Queue (Cola)

Pila StackEn esta entrada quiero platicarles de las Colas (Queue) un tipo de estructura de datos muy utilizada. ¿Pero que es exactamente una colas?, Cuando digo la palabra cola lo mas seguro es que lo primero que se les venga a la mente es una Cola o Fila como cuando vamos al cine y la taquilla esta muy llena o cuando vamos a un evento donde se presentara alguien famoso. Si en tu mente paso un escenario a sí te diré que vas por buen camino.

Una Cola o Queue es una estructura de datos que sigue la Filosofía FIFO del ingles First In – First Out que en español seria “Primero en entrar primero en salir”. Esto quiere decir que el elemento que entre primero a la Cola sera el primero que salga y el último que entre sera el último en salir.

Un escenario común es cuando vamos al banco, Llegamos y lo primero que haces es tomar un turno, inmediatamente nos damos cuenta que ya había 10 personas primero que tú por lo que automáticamente deduces que ellos serán atendidos primero que tú. Si nos damos cuenta en este escenario el primer cliente que llego y solicito un turno sera el que sea atendido primero y tú que llegaste al último seras atendido hasta el final.

 

Agregar elementos a una cola

Estructura de datos - Cola (Queue)
Fig.1: Muestra como un elemento es agregado a la cola(Izquierda) y como queda la cola luego de que el nuevo elemento entra en la cola(Derecha).

Si apreciamos en la figura anterior cuando un nuevo elemento entra en la cola se posiciona siempre al final de la cola a si mismo este sera el ultimo en salir.

(más…)

Patrón de diseño – Proxy

UMLEn esta entrada les hablare del patrón de diseño Proxy, el cual es uno de mis favoritos ya que nos permite hacer una gran cantidad de cosas sin que el usuario final se de cuenta de lo que esta pasando. Podríamos definir a un Proxy como una clase o componentes que hace el papel de intermediario entre la clase que queremos utilizar el cliente que la esta utilizando. Cuando digo intermediario me refiero a que el Proxy nos permite hacer una o varias operaciones antes y después de realizar la tarea que realmente quiere el cliente, incluso el proxy puede tomar la decisión de nunca realizar la tarea solicitada por el usuario.

Patrón de diseño Proxy
Fig.1: Diagrama que muestra como esta conformado un Proxy, Un Proxy se crea a través de una interfaz la cual imita el comportamiento de esta, Sin embargo el trabajo realmente lo delega a otra clase que generalmente también implementan la interfaz del Proxy.

(más…)

Java Message Service (JMS)

QueueEn este Post se habla hacer de la especificación de JMS, los patronos de entrega de manejes que soporta como lo son Punto a Punto(P2P) y Publicador/Suscriptor. También hablare sobre los Temas y Colas (Topis and Queues) y los diferentes tipos de suscriptores que soporta la implementación de JMS.

Java Message Service es una especificación de la Java Community Process(JRS 914) la cual fue desarrollada originalmente para permitir a las aplicaciones Java comunicarse con los proveedores MOM o Middleware Orientado a Mensajes la cual buscaba los siguientes objetivos: (más…)

Estructuras de datos – Listas ligadas

ListaLigadaAgregarSin duda una de las partes mas emocionantes cuando programamos es la parte de la algoritmia donde tenemos que usar la mente para resolver problemas que se escuchan fácil pero a la hora de programarlas es otra cosa.

En esta ocasión hablare un poco de las Listas ligadas y de las variantes que existen entre ellas.

Podríamos definir a una lista ligada como un colección de elementos que están enlazados entre si y que cada nodo contiene un valor y las hacia otros nodos. (más…)

Que es Service-oriented architecture (SOA)

SOAEn los últimos años hemos escuchado haber de SOA por todas partes, SOA aqui SOA alla y SOA por todas partes, Pero que es realmente SOA ya que en ocasiones confundimos SOA con alguna tecnología o algún producto. Sin embargo no es mas un tipo de arquitectura de software la cual esta diseñada para los ambientes de integración, Pero antes de entrar a detalle me gustaría hacer un poco de historia.

Antes del debut de SOA teníamos la Arquitectura de ManFrame y Cliente-Servidor las cuales no quiero decir que sean obsoletas o pasadas de moda ya que cada un ofrece ventajas y desventajas que pueden ser decisivas según nuestro escenario de negocio. (más…)

Patrón de diseño Observer

UMLEste es sin duda uno de los patrones mas utilizados cuando trabajamos con aplicaciones de escritorio o al utilizar la Event-Driver Architecture(EDA).Un Observer es un componente el cual lo único que hace es estar atento a los eventos que el Target realiza, Cuando Target realiza un cambio o evento este notifica a todos los Observers que están registrados. De esta manera las clases observer serán notificadas del evento que realizo el Target.

 

Para explicar correctamente este Patrón de diseño le comparto esta imagen:

Observer

Imaginemos un escenario de la vida real para comprender mejor esta patrón para lo cual nos ubicamos en el Aeropuerto y estamos esperando a que nos indiquen que podemos abordar el avión por medio de las bocinas que hay en el aeropuerto.

Bien, de seguro no eres el único que esta esperando el vuelo, de seguro existen muchas personas que esperan el abordaje, En este escenario nosotros junto con todas las demas personas que esperan el vuelo son Observers y la bocina es el Tajet Ya que todos estamos atento a que nos indique que ya podemos abordar lo cual es un evento que realiza la bocina y que nosotros estamos esperando(Observando) para realizar una acción(Abordar). (más…)

SOA Suite – Como usar el DataBase Adapter

DataBase AdapterEn post pasados ya he hablado de que es una Composición SOA y de los Componentes que ofrece Oracle SOA Suite sin embargo es esta ocasión nos enfocaremos al DataBase Adapter para crear una composición la cual se conecte a una base de datos y guarde los datos de un registro de usuario.

En este punto asumimos que ya sabes como crear un proyecto SOA, configurar un Data Source y un Connection Pool desde la consola de WebLogic. (más…)