11/30/2007

Web Service


Es un tema súper viejo y muy utilizado por algunos sitios, pero cuando me puse a investigar sobre el tema, los ejemplos "simples" no salían a flote y los que existían publicados contenían errores en su programación (no errores de sintaxis si no mas bien errores lógicos).

Todas las páginas que hablaban del tema copiaron y pegaron el mismo ejemplo y para variar el sitio que ocupan como referencia para el Web Service (WS) ya no ofrece el WSDL, una gran frustración ya que tenía que hacer una simple prueba con PHP.

Pero bueno, para poner a disposición de la comunidad (tengo pegado lo del software libre) o para otros sistemas computacionales mis datos almacenados en una bases de datos u otro medio, que mejor que usar WS como solución.
Un servicio web (en inglés Web service) es una colección de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes de programación diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizar los servicios web para intercambiar datos en redes de ordenadores como Internet.
fuente Wikipedia

Web Service al rescate

Existía un problema, ¿Cómo dejo que otros sistemas (clientes) tengan acceso a mis datos sin que ellos utilicen una conexión directa a mis bases de datos?, la respuesta es sencilla y es utilizando WS. El WS ocupa XML como lenguaje de comunicación entre cliente y servidor, osea, yo (cliente) le envío un parámetro en formato XML al WS (servidor) y este me retorna un XML.

NuSOAP

Para los que trabajamos con PHP, esta librería nos viene como anillo al dedo. NuSOAP en un conjunto de clases que nos facilitan la conexión a un WS mediante un WSDL y la creación de un servidor de WS.

Veamos un poco de código, servidor.php:
 <?php  
 //incluimos la biblioteca de nusoap  
 require_once('nusoap/nusoap.php');  
   
 //función que estará disponible en el ws  
 function getSaludo($nombre) {  
      $saludo = "Hola $nombre";  
      //retornamos una variable tipo SOAP  
      return new soapval('return','xsd:string',$saludo);  
 }  
   
 //instanciamos un objeto de la biblioteca nusoap  
 $server = new soap_server();  
   
 //configuramos el nombre del ws  
 $server->configureWSDL('getSaludo');  
   
 //registramos las funciones que estarán disponibles en el ws  
 $server->register('getSaludo',array('nombre'=>'xsd:string'));  
   
 //recibimos los datos enviados  
 $server->service($HTTP_RAW_POST_DATA);  
 ?>  

Ahora veremos el código por parte del cliente, cliente.php:
 <?php  
 //incluimos la biblioteca de nusoap  
 require_once('nusoap/nusoap.php');  
   
 //instanciamos un objeto de la biblioteca nusoap y le pasamos como valor la dirección del WSDL  
 $client = new soapclient('http://localhost/ws/servidor.php?wsdl', true);  
   
 //llamamos a la función que declaramos en el servidor y le pasamos los parametros correspondientes  
 $result = $client->call('getSaludo', array('nombre' => 'brionescl'));  
   
 //imprimimos lo que nos retorno el objeto  
 print_r($result);  
 ?>  

Como ves, es muy sencillo aplicar esta tecnología como solución y sus prestaciones pueden ser variadas.

Fuentes

11/20/2007

Parque nacional "La Campana" v2.0

versión 2.0 (y no es Beta !!!)

Tiempo atrás había intentado subir la cima de este cerro, pero una seguidilla de muertes de algunos "turistas despistados" obligaron a cerrar el paso del andinista hasta nuevo aviso.

A finales de octubre, volvieron abrir el sendero con nuevas señales y rocas pintadas, todo esto para que el turista pueda ascender de forma segura.

Recuerdo que fue un día soleado y con poco viento, el ascenso se hizo a un ritmo moderado y descansando cada cierto tiempo. Nos demoramos casi 5 horas en llegar a la "punta del cerro" (ya se donde queda el lugar) pero antes de ese gran acontecimiento, pasamos por diversos lugares, como por ejemplo "La mina".

La mina

Hasta este punto los vehículos pueden llegar, después solo se puede seguir a pié. Vimos toda clase de animales, desde un zorro (medio flaco) hasta un águila (que seguramente se quería mandar un momento National Geografic con el pobre zorro).

Es bonito el ascenso hasta ese lugar, los árboles te protegen de los rayos del sol maligno, el camino es lizo y parejo y hay agua al final de trayecto, se los recomiendo un 100%... pero después, si no tienes bototos (con punta de fierro) quedarás con mas de alguna ampolla o un tobillo lesionado (misteriosamente todos los turistas Chilenos tenían puestas zapatillas y los turistas extranjeros llevaban consigo un buen par de bototos escaladores, ¿Porqué será?).

La cuesta se pone mas difícil, hay mas piedras puntudas en el camino y los árboles pasaron a ser espinos que en ves de protegerte del sol, te rasguñan las piernas y brazos, pero no todo fue penurias ya que iba conmigo mi linda novia ^_^, su hermano, mi hermana y mi cuñado (bueno en realidad es el pololo de mi hermana), atrás quedaron mi abuela, mi madre, mi sobrina y la polola de un tío.

Hasta que llegamos a la placa de Darwin, que! si era mas de lo mimo, rocas y arbustos espinosos !!! y no olvidemos que todavía quedaba una hora mas de ascenso.

Tocando el cielo

Llegando a la cima, uno podía ver como se creaban las nubes frente a tus ojos (no se porque nadie de los que iba conmigo se impresiono por eso), el aire se era mas puro y fresco y se podía ver por un lado (bueno, había que esforzarse un poco) la bahía de Valparaíso y por el otro la cordillera de los andes.

Bonita experiencia, pero la bajada cuesta tanto como la subida, mas si estas con zapatillas T_T

11/06/2007

Creando Conciencia

Por un mundo sin contaminación

Un día pensando en mi futuro (cosa que hago siempre), se me paso por la cabeza llegar un poco mas allá de lo que acostumbro a pensar e imaginé como sería el mundo para los tataranietos de mis hijos.

Pensar en eso es descabellado ¿?... quizás, posiblemente el mundo se acabe a causa de una guerra nuclear, llegue el día del juicio final o algo por el estilo, pero prefiero ser optimista e imaginar que nuestro planeta será "mejor" a de lo que es hoy.

¿Lindo planeta?

En la actualidad, el nivel de contaminación (polución ambiental) es muy elevado por la congestión vehicular, el sol es mas dañino que años anteriores (problema por la capa de ozono, rayos UV a niveles criticos) y la deforestación de bosques es algo común.

Estuve leyendo un artículo, sobre el rechazo a la utilización de la típica bolsa plástica o de papel. Sabían ustedes que las bolsas plásticas se biodegradan en aprox. 600,000 a 1000 años!!! de acuerdo a estudios de la EPA. A mi parecer, creo que es mucho tiempo, y los tataranietos de nuestros hijos no estarán vivos para ver desaparecer una bolsa plástica que arrojamos a la basura el mes pasado.

Oxo-Biodegradación, ¿Qué es?

Leyendo en un blog
, encontré esta tecnología que es aplicada al plástico, se trata de un proceso en el cual poliolefinas convencionales (polietileno, polipropileno, poliestireno) reaccionan con el oxígeno presente en la atmósfera para insertar oxígeno en el enlace molecular del polímero, de forma que este enlace se quiebre y convierta en moléculas polares más pequeñas, en un proceso llamado oxidación. Esta es la primera etapa del proceso, llamada degradación.

Entonces, estos fragmentos, cada vez más pequeños, absorben agua (son hidrófilos), por tanto se genera un ambiente propicio para que se desarrollen y prosperen microorganismos naturales.


¿Solución?

Crear conciencia es un paso, pero ayudar al medio ambiente con acciones y traspasar esas acciones a nuestros hijos como valores es mas útil, ya que así nos aseguramos que los tataranietos de nuestros hijos vivan en un mejor lugar.

11/02/2007

Enfoques de un proyecto

Procesos de desarrollo de software


La imagen superior puede resultar divertida para algunos, y para otros... una realidad. Mi experiencia en "Mega Proyectos" no es muy amplia, he tenido el privilegio de trabajar en proyectos de gran envergadura y que por lo general, la puesta en marcha (implementación) de estos, cuesta más que el desarrollo en sí.


Análisis y especificación de requerimientos

Lo esencial es poder entender lo que realmente quiere el cliente, o en este caso, el usuario final. Para esto se pueden aplicar diferentes técnicas o métodos de captura de información, como por ejemplo, los formularios, encuestas y/o entrevistas.

Para realizar bien el desarrollo de software es esencial realizar una especificación completa de los requerimientos de los mismos. Independientemente de lo bien diseñado o codificado que esté, un programa pobremente especificado decepcionará al usuario y hará fracasar el desarrollo.

...

El análisis y especificación de requerimientos puede parecer una tarea relativamente sencilla, pero las apariencias engañan. Puesto que el contenido de comunicación es muy alto, abundan los cambios por mala interpretación o falta de información. El dilema con el que se enfrenta un ingeniero de software puede ser comprendido repitiendo la sentencia de un cliente anónimo: "Sé que crees que comprendes lo que piensas que he dicho, pero no estoy seguro de que lo que creíste oír sea lo que yo quise decir".



En la práctica, esta etapa (análisis y especificación de requerimientos) tiene que tener una connotación elevada dentro del desarrollo de un sistema, porque no falta el cambio a última hora, o mejor dicho, la típica respuesta...

"bueno sí, se parece a lo que yo pedí en un comienzo, pero le falta esto !!!"
.