sftp con Ant

October 23rd, 2008

Una tarea Ant para mover un archivo a un servidor vía ftp iria de la siguiente manera mas o menos.

<ftp server=”hostname”
port=”21″
remotedir=”/dir/”
userid=”myUser”
password=”myPassword”
passive=”yes”
depends=”yes”
binary=”yes”>
<fileset dir=”.”>
<include name=”**.jar”/>
</fileset>
</ftp>

Basta agregar al classpath de ant los jars de apache commons-net para que esto funcione.

Sin embargo, cuando el servidor solo acepta SFTP la cosa cambia porque se necesita realizar una autenticación segura y ahí las librerías net de apache ya no son suficientes para solucionar el problema.

La tarea SCP permite el movimiento/copia de archivos de manera segura. En este caso es necesario agregar las librerías de jsch al CLASSPATH de ant (es necesario construir el jar) y agregar una tarea que resulta mas sencilla que una de ftp para que podamos realizar el movimiento de archivos.

<scp file=”file.jar” todir=”user@host:/dir” password=”coficina” />

Esto de la manera mas sencilla, es posible usar un fichero de llaves privadas y demás features que pueden verse en la documentación. No hay duda que todo se puede hacer con ant, o mínimo puede ser implementado.

jrcmd

October 1st, 2008

JRockit, la máquina virtual de Java de Bea (ahora Oracle) tiene entre sus features el JRA (Java Runtime Analyzer), una herramienta para realizar/analizar grabaciones de procesamiento en franjas de tiempo que ha realizado la maquina virtual JRockit en local o en hosts remotos. El uso de la herramienta en modo consola gráfica es bastante explicita pero el usarla con línea de comando en las ocasiones en que no hay posibilidad de conexión remota a la máquina destino o no hay posibilidad de levantar un servidor X tiene sus detalles.

El ejecutable es el jrcmd dentro del $JROCKIT_HOME/bin/

Para comenzar una grabación JRA podemos ejecutarla con el mismo usuario que se levantó la máquina virtual que deseamos observar de la siguiente manera:
Primero debemos conocer el PID del jre, eso lo podemos hacer de dos maneras

erwin@eva02:$ ps -ef | grep java

esto muestra los procesos coriendo con los parámetros con que fueron ejecutados, o bien con el mismo jrcmd

[erwin@eva02]$ $JROCKIT_HOME/bin/./jrcmd

esto mostrará los pids de los procesos ejecutandose y una breve descripción, puede ser que hayan varios corriendo con nombres parecidos así que habrá que ver los procesos ejecutandose.

con el pid en mano:

[erwin@eva02]$ $JROCKIT_HOME/bin/./jrcmd <pid> jrarecording time=<time en segundos> filename=<nombre> [methodtraces=true|false] [sampletime=<time en seg>] [nativesamples=true|false] [delay=<time en seg>] [tracedepth=<1..16>]

methodtraces deshabilita con false la traza de resultados por cada muestra
nativesamples, en caso de que haya código proveniente de otros lenguajes se mostrará en su código nativo
delay, da un retraso a la ejecución de la grabacion
sampletime, se indica el tamaño de la muestra en tiempo

Hay que tomar en cuenta que el uso de estas herramientas, supone un overhead en la maquina host que no es tan medible, sin embargo este tipo de mediciones pueden ayudar bastante a encontrar cuellos de botella, puntos calientes dentro de las aplicaciones, la efectividad de las politicas del garbage collector y la latencia generada con ayuda del Mission Control, ya en forma gráfica.

jrcmd es una herramienta superpotente para monitorizar y hacer profiling de weblogic, para ver mas comandos disponibles y sus variantes basta con pedirle ayuda y listo.

$JROCKIT_HOME/bin/./jrcmd <pid> help

Como siempre y como cualquier producto propietario tus posibilidades dependen de la licencia.

SCA

July 3rd, 2008

SCA (Service Component Architecture) es un conjunto de especificaciones para desarrollar bajo un modelo arquitectural de servicios, extendiendo y conjuntando EJB, RMI, Rest, JMS y obviamente WSDL/SOAP de tal manera que se abstrae la parte molesta de estas tecnologías (localización, invocación remota, etc) y se simplifica el modelo programatico de manera dramática permitiendo comunicar componentes que se ejecuten dentro de una misma maquina virtual o distintas de estas, ya sea en forma local o remota.

La “moda” SOA al parecer por fin se simplifica un poco y se hacen caso a tecnologías que ya se ha comprobado bien que funcionan. SCA se me figura como seguir impulsando SOA pero incluyendo también a tecnologías de servicios anteriores, simplificándolo y no montando otra especificación WS-* mas a la lista sino tratar de hacer las cosas de la manera mas limpia posible.

Aún así SCA es una serie de especificaciones para cada tecnología y para cada tecnología hay que leer un poco de que se trata y como se hacen las cosas. Como cada específicación esta debe ser probada y usada antes de hacerla pública, su implementación base es Apache Tuscany, aunque los distintos fabricantes implicados en su desarrollo (IBM, Oracle-Bea, Sun, SAP, etc) trabajan en sus propias implementaciones, cada uno de ellos dándole énfasis en cosas que les convienen o creen mas explotables.

Apache Tuscany, ahora a cargo del grupo Oasis, como modelo de referencia esta un poco mas maduro, pero los fabricantes van incorporando soporte SCA en sus nuevos realeases. El soporte para SCA esta incluído en el TechPreview de Weblogic Application Server 10.3 Oracle-Bea(WLServer10.3tp) con las librerías necesarias para su uso y ejemplos para jugar con el un poco. IBM sigue dando como modelo de referencia a Tuscany y extrañamente Sun Microsystems no esta haciendo mucho por SCA aunque esta en el grupo de definición, aunque los demás fabricantes y mucha gente en el medio al parecer se esta interesando por esta tecnología, que aunque parece prometedora habrá que ver como evoluciona.

Como siempre, el mercado impone y no quiere decir que sea lo mejor para el desarrollo de las tecnologías, en ocasiones el mismo mercado mete complejidad a las cosas, esperemos que este no sea el caso y de veras sea lo que por ahí se lee, que SCA es el nuevo JEE, ojalá no nos traicione como los WS.

Technorati Tags: , ,

101 maneras de saber cuando tu proyecto fracasará

April 17th, 2008

En Codesqueeze hicieron una lista de señales estoy seguro que basadas en la realidad (porque muchas las he vivido) que son buen indicativo de que las cosas van mal y que el proyecto en el que estas fracasará. No importa que ya se haya vendido [nota cultural]. Creo que la lista hasta se queda corta. La lista completa esta por aquí y hay algunas que casi me sacan la lagrimita jeje.

  1. Every bug is prioritized as Critical
  2. Every feature is prioritized as Trivial
  3. Your manager insists that you track all activity but never uses the information to make decisions
  4. Your manager thinks MS Project is the best management tool the market offers
  5. Team Rule - No meetings until 10 AM since we were all here until 2 AM (que cruel, pero cierto)
  6. The project code name is renamed to ‘The Death March’
  7. “Oh, oh, and I almost forgot. Ahh, I’m also gonna need you to go ahead and come in on Sunday, too… thanks”

Podríamos agregar

  • Cuando escuchas, “este es el último fin de semana que venimos”
  • Estas tan harto de la pizza por la noche que la odias
  • Recuerden que quien se esfuerce mas recibirá un bono por “mejor rendimiento”
  • Comienzas a pensar que realmente es tu culpa que las cosas vayan tan mal
  • Se modifican los requisitos 3 horas antes de una presentación a clientes potenciales
  • Ves mas a tus compañeros desarrolladores que a tu familia, y no porque tengan mucha vida social

… creo que la lista es interminable, y lo peor es que sean basadas en la realidad.

>

April 5th, 2008

Hacia tiempo que escribo algunas cosas técnicas que siento que no van en mi blog personal, y aunque desde que he pseudobloggeado he tenido ese debate interno entre que va y que no va, el orden de las cosas, a quien le interesa y a quien no, finalmente he hecho esto, un blog puramente técnico con lo poco que se de a lo que me dedico (desarrollo de software) y algunas otras cosas como sistemas operativos, casualidades, chismes del medio (a.k.a noticias), lo que si prometo es no hablar de bicicletas. Estaré portando los posts tecnicos que llegué a hacer en vonkinder-blog (tampoco son tantos) y que creo que ahi no van simplemente porque para quien según yo esta dirigido mi blog personal (familia y amigos), pienso que no les interesa totalmente que es el bytecode, el garbage collector o si tal o cual lenguaje va mejor para tal cosa. Así que bienvenido, tanto aquí como allá sientase libre de opinar, corregir cosas, tomar lo que gustes y cooperar si así lo deseas que para eso esta.

Bienvenido a este lugar que siempre estará en versión beta… de veras que nunca saldrá a producción, es mas nada debería salir.