Jul 14 2008

Zoomii: la libreria “real” online

Tag: Desarrollo de aplicaciones, InternetFrancis @ 12:02 am

zoomii_resize.jpgUna de las cosas que más me gusta de ir a una librería es la posibilidad de rebuscar en las estanterías. He de reconocer que me llaman poderosamente la atención, con su mosaico de colores, sus portadas sugerentes, el olor del papel y todas esas cosas tan emocionales y divorciadas de la modernidad digital. Habitualmente compro libros en Internet, aunque la verdad es que siempre que puedo prefiero hacerlo en la librería “física”. Una de las cosas que me suelen tirar un poco de espaldas de las compras de libros en Internet es precisamente el exceso de racionalidad de las búsquedas. Es verdad que los buscadores de las librerías online son precisos y rápidos, pero con frecuencia han abusado y abusan del listado seco, sin imágenes, con datos a pelo, desprovisto de toda emoción. Hay honrosas y adelantadas excepciones, como Amazón, que juega muy bien las cartas de lo visual, el producto relacionado, la información de los índices y las sinopsis y por supuesto las portadas de los libros. Supongo que por eso es el primero en el mundo en venta online, y no solo de libros, sino de todo. En España el tema es un poco peor, y por grande que sea la empresa librera que haya detrás de una Web de este tipo, la presentación de los resultados de búsqueda, incluso el propio método para buscar, son muy poco atractivos, sobre todo para aquellas personas que nos gusta que nos cautiven, que nos vendan, que nos persuadan, incluso aunque sepamos lo que queremos.

Hoy me he encontrado con un producto sorprendente. Es un buscador visual de libros en Amazon. Es lo que se conoce como un MashUp, es decir, una aplicación realizada con los recursos que gratuitamente empresas como Google, o Amazón en este caso, ponen a disposición de la comunidad de desarrolladores, a través de las llamadas API’s. Estas API’s no son otra cosa que una serie de instrucciones que nos permiten obtener los datos y los servicios que ofrecen estas empresas y combinarlos y colocarlos de una forma nueva en otra página. Ejemplos diarios de esto lo vemos con Google Maps, que se integra en cada vez más páginas Web para colocar planos de situación, calcular rutas y otros servicios relacionados.

En esta ocasión el sitio se llama Zoomii, y permite navegar virtual y visualmente por las estanterías de Amazon, ver los detalles de cada libro y por supuesto comprarlos. Es lo más parecido a caminar entre estanterías. Lástima que sólo tengan títulos en inglés, pero bueno, todo llegará. O a lo mejor tenemos suerte y se lo hacemos nosotros a algún cliente. Ojalá.

Technorati Tags: , , , ,


Dic 19 2007

Convergencia digital

Convergencia. Creo que es la clave de todo lo que marca el devenir de la comunicación en el futuro, cada vez más cercano. Comunicación en todos los sentidos, desde cualquier punto de vista. Convergencia que afecta a todos los que vivimos de elaborar y llevar información de un punto a otro, independientemente del medio y del fin concreto. Empresas de todo tipo y con actividades muy diferentes, a menudo divorciadas, nos vemos obligadas a convivir en un mismo escenario y a converger. Empresas de publicidad, comunicación y marketing, de ingeniería de software, de telefonía, de prensa, editoriales y las nacidas dentro del propio marco de Internet, las famosas .com ahora remozadas en su planteamiento en forma de startups y abanderados de los mashups destinados al buyout tecnológico, han visto como sus caminos, sus necesidades, se entrecruzan provocando situaciones realmente chocantes. Aunque no faltan fechas, nadie sabe a ciencia cierta cuando empezó todo a converger, a unirse en un confuso punto. Yo personalmente me percaté de este hecho en 1999 cuando entré en contacto con un concepto desarrollado por Microsoft llamado UDA (Acceso Universal a Datos), un modelo de desarrollo que permitía integrar todas las fuentes heterogéneas de información que todavía hoy existen -bases de datos, documentos digitales, o recursos distribuidos como Internet- independientemente de su formato, de su localización o del dispositivo. Para mi era la base de la “pancomunicación”.

Por supuesto, este modelo de Microsoft de comunicación total, integrando continentes y contenidos, no era el primero, pero a mi me abrió los ojos y me hizo reflexionar. Inicialmente en lo que era mi campo, el desarrollo de software de gestión empresarial. El modelo de software que empleábamos, basado en arquitecturas cliente-servidor, con instalaciones complejas, difíciles mantenimientos, licencias (¡horror!), dependientes de un sistema operativo, no era el futuro. Y no lo es, por mucho que al día de hoy las empresas de software lo estiren.

Para la industria del software el modelo a seguir era y es la Web. El estado de las tecnologías de desarrollo web eran, ya desde principios de 2000, lo suficientemente buenas para desarrollar aplicaciones de gestión muy potentes que podían sustituir a las aplicaciones de escritorio más extendidas. Son aplicaciones más baratas, con requerimientos de funcionamiento ridículos, que suponen un inmenso ahorro para las empresas que las utilizan, fáciles de mantener y con una disponibilidad inimaginable para los programas tradicionales. Por interés, obviamente, era un modelo muy criticado por ciertos poderes fácticos de esta industria que les achacaban deficiencias de seguridad, simpleza frente a sus rivales de escritorio e incapacidad para abordar ciertos problemas.

Pero pesara a quien pesara estaba cantado. Las aplicaciones que funcionan a través de una página web son una realidad y en ellas centran buena parte de sus esfuerzos las grandes desarrolladoras del mundo, entre otras Microsoft. Basten como muestra las aplicaciones ofimáticas de Google, como Google Docs, que ponen a disposición de los usuarios, totalmente gratis, un procesador de texto y una hoja de cálculo, absolutamente funcional y suficiente para cualquier usuario medio, desde luego más de lo que necesitamos en una empresa como la nuestra. Microsoft ha hecho lo propio con su suitte Office, llevando esta a Internet bajo el nombre de Office Live, aunque con menos potencia para poder seguir ordeñando su exitosa vaca. También Adobe y su reciente adquisición, Macromedia, están investigando ofrecer sus herramientas online. Salesforce, un CRM potentísimo y online, gana cuotas de mercado a pasos agigantados, con un modelo de negocio basado en el alquiler por uso de su aplicación, otro de los filones importantísimos y casi sin explotar por parte de la industria que veremos como despega en cuanto se produzca un relevo generacional en las actuales empresas. Hasta la banca desarrolla sus sistemas de gestión para ser utilizados desde un navegador web. Y en buena medida casi todo es gratis, o eso cuentan, porque obviamente alguien lo pagará. Ese alguien es la publicidad, el único medio para sufragar tan importantes costos y dicho claramente, el único motivo que lleva a estas empresas a emplear a cientos de ingenieros en estos menesteres. Tanto es el negocio que prevén que basta con mirar las inversiones multimillonarias que se han realizado para comprar empresas de publicidad online: Microsoft ha comprado aQuantive y Google a la competencia de la anterior, DoubleClick.

Las agencias de publicidad perciben en todos estos movimientos una enorme amenaza y reclaman su parte del pastel. Por supuesto las grandes firmas del sector de la comunicación y la publicidad juegan en otra liga muy diferente a la de las agencias regionales (condición, por cierto, de la que nos enorgullecemos), pues no todos podemos comprar un monstruo como 24/7 Real Media, tal como ha hecho WPP Group, que nos asegure una “Pole Position” en esta carrera sin cuartel. Las pymes del sector tenemos otra realidad, si cabe más dura, y debemos tomar la delantera si no queremos perder el hilo. Creo que hay batallas donde lo vamos a tener muy duro, principalmente porque debemos hacer negocio con algo que precisamente busca sacarnos del negocio, como los anuncios por palabras, donde los dominadores del medio, léase Google o Yahoo, no están dispuestos a perder ni un céntimo, así que lo que cobremos será por asesorar en base a nuestra experiencia, como consultores y no como gestores de medios. De hecho sus programas están orientados al público final, al propio anunciante, poniéndonos a las agencias muy difícil el trabajar con lo que por otra parte es un servicio muy solicitado y que, lo digo por experiencia, le resulta muy complicado de entender y más de manejar al usuario medio.

Además, la inversión en publicidad tradicional se empieza a resentir, y el futuro del gran material impreso, como catálogos y publicaciones varias, no parece muy halagüeño. Hay una parte de esa inversión que se traslada a Internet, a dotar a la empresa de herramientas de comunicación autogestionables, rápidas, eficaces y baratas de mantener. Detectar esa necesidad, saberle ofrecer al cliente ese servicio que está precisando pero que no sabe como obtener, es a mi entender una de las claves de este negocio y de nuestro futuro. Necesidades que trascienden completamente las todavía hoy extendidas webs presenciales, o los bellos ejercicios creativos de las grandes animaciones con Flash, que aunque hermosos, resultan poco adecuados para la mayoría de los casos hoy en día.

Estamos hablando de aplicaciones, en toda la extensión de la palabra, y eso es algo difícil de encajar en una agencia por lo que tiene de novedoso, incluso de cambio de rumbo. Aplicaciones con contenido, donde la imagen y el diseño son fundamentales, sí, pero aplicaciones al fin y al cabo. Ya no basta con creatividad y diseño, ahora hace falta también un conocimiento y dominio profundo de la tecnología, encajar nuevos modelos de negocio, de gestión del trabajo y también nuevos perfiles que se salen completamente de lo que han conocido las agencias de publicidad: consultores, analistas orgánicos y funcionales, administradores de sistemas, de bases de datos, ingenieros de minería de datos, programadores, especialistas en seguridad, arquitectos e ingenieros de software, técnicos de mantenimiento, diseñadores web, maquetadotes y un larguísimo etcétera. Encajar a ese nuevo tipo de profesionales, tan ajenos por formación, carácter, inquietudes y forma de proceder, a lo que hasta ahora ha sido la realidad publicitaria, supone un esfuerzo inmenso de readaptación. En Nueva Imagen lo sabemos bien, y creo que hemos conseguido encajar nuevos perfiles, roles, metodologías y métricas con mucho éxito, aunque no sin sufrimiento. Este transito nos ha llevado a convertirnos en una agencia global. Ahora somos nosotros los que estamos pisando el terreno de las empresas tecnológicas, como respuesta a que ellas han pisado el nuestro en primer lugar, pero lo hacemos consecuentemente, sin cederles ventaja. Sin despreciar al adversario, pues sabemos que no son unos “mindundis”; son estrategas, organizados, sistemáticos, acostumbrados a evolucionar y a readaptarse constantemente, a que su base de conocimiento se quede obsoleta cada dos o tres años, con una gran capacidad de reacción. Y creativos, muy creativos, aunque algún publicitario tenga la tentación de pensar que somos los que tenemos la exclusiva de la creatividad.


Oct 30 2007

De .Net y Java

Tag: Desarrollo de aplicaciones, InternetFrancis @ 9:51 am

java vs netMe veo hace unos días discutiendo con mi amigo y compañero Mario, es decir exponiendo cada uno sus puntos de vista, sobre uno de los temas más controvertidos del desarrollo de aplicaciones Web y que no es otro que el que enfrenta a J2EE y a .NET, entornos de desarrollo que sin duda escribirán buena parte de las páginas más importantes del futuro de Internet. Ambas tecnologías, de empresas rivales hasta la muerte (SUN Microsystems y Microsoft) pugnan por un mercado cada vez más exclusivo, en el que los competidores van quedando cada vez mas rezagados. SUN, para el que no lo sepa, es el bueno de esta película, los abanderados del Open Source. Microsoft, ya lo sabéis, el malote. Pero desmentir semejante bulo, mil millones de veces defendido, es algo que desarrollaré en otra entrada del blog. Volviendo al tema, hablamos de tecnologías de desarrollo Web que ofrezcan un modelo de desarrollo de componentes empresariales. Muchas son las alternativas de desarrollo para una aplicación Web: PHP, páginas ASP, ColdFusion, etc. y la mayoría de ellas están actualmente en un estado tecnológico y de salud comercial excelente, que las permiten acometer la mayoría de los proyectos Web (sea cual sea su tamaño). Excelentes ejemplos los tenemos en todas las tecnologías. Y de todas las envergaduras.

Pero hay algo que las diferencia y es su orientación real hacia un modelo de desarrollo de componentes empresarial. Esto quiere decir que nuestra plataforma tecnológica tiene que servir y propiciar, desde el entorno de ejecución hasta el entorno de desarrollo, un modelo organizado de componentes que puedan actuar dentro de unos servicios básicos del sistema. Estos servicios pueden ser un sistema de autentificación y seguridad, un entorno transaccional, un soporte para granjas de servidores, instanciación remota de componentes, caché de objetos, Framework de acceso a datos, soporte a nuevas tecnologías como WebServices, XML, etc.

En este aspecto, la oferta de SUN siempre ha estado dividida en dos grandes grupos. Por un lado, la tecnología de Servlets y páginas JSP, que eran la réplica a las páginas ASP de Microsoft, y que permite abordar una gran gama de desarrollos, desde Intranets hasta portales verticales, con unas ciertas garantías de éxito. Pero por otra parte, SUN ofrece J2EE (Java2 Enterprise Edition), que ofrece al desarrollador el entorno empresarial antes citado. J2EE se trata en realidad de un estándar que otras empresas se encargan de implantar. Así, cuando hablamos de “servidores de aplicaciones J2EE“, no nos referimos a un producto exclusivo y realizado por SUN, sino a un servidor que cumple el estándar J2EE y que puede estar desarrollado por otras empresas, como BEA, Netscape o Allaire por citar unos cuantos.
 
Este estándar ya lleva muchos años en el mercado y son muchas las aplicaciones que se han realizado bajo su estándar, entre ellas portales verticales, y muchos desarrollos de Banca Virtual. Al mismo tiempo, Microsoft ofrecía su plataforma Windows DNA basada en una mezcla de tecnologías. Con el servidor Web Internet Information Server 4.0 como nexo común y el servidor de base de datos SQL Server, esta plataforma utilizaba la tecnología de objetos COM, el servidor transaccional MTS y MSMQ y las páginas ASP para el desarrollo de aplicaciones Web empresariales. Pero este modelo ofrecía algunas desventajas. Por un lado, la comunicación y utilización entre componentes se realizaba a través de una interfaz binaria definida por el estándar COM. Así, el desarrollador podía elegir entre diversos lenguajes de desarrollo como Visual Basic, Visual C++, o diversas librerías como ATL o MFC. Esto, que en un principio puede parecer una ventaja, en la práctica ofrecía un gran problema. Los desarrollos de componentes en Visual Basic escalaban mal por su pobre soporte a tecnologías multihilo (cosa que sí manejaba con gran soltura el siempre excelete Delphi, su rival más aventajado y peor comercializado), y los desarrolladores de Visual C++ se encontraban con una tecnología que sí escalaba muy bien, pero que como contrapartida resultaba compleja, en la que resultaba muy sencillo cometer errores de pérdida de recursos o memoria.
 
Mas tarde había que integrar estos objetos con las páginas activas ASP. El modelo de desarrollo funcional de estas páginas hacía que la mayor parte de los proyectos (salvo honrosas excepciones) desembocase en una amalgama de páginas con “spaguetti code“ y con una fuente interminable de errores, aunque solo fuera por ser un lenguaje no tipado y con una excesiva tolerancia a la sobrecarga de operadores.
 
Pero la actual oferta tecnológica de Microsoft es muy distinta. Mediante la tecnología .NET, Microsoft ofrece una serie de tecnologías ideales para el desarrollo de aplicaciones Web. Por un lado, sus lenguajes (con C# a la cabeza) ofrecen una sintaxis mas moderna y productiva, similar a la de Java, y su modelo de desarrollo de aplicaciones ha ganado muchos puntos en sencillez y potencia.
 
Comparar las tecnologías .NET y J2EE es en realidad una tarea en algunos aspectos absurda. .NET es una tecnología multipropósito, que puede ser utilizada tanto para el desarrollo de aplicaciones Web como para el desarrollo de aplicaciones con interfaz Windows. J2EE por su lado es una tecnología exclusivamente empresarial, orientada hacia un tipo de desarrollo muy concreto, y que jamás servirá para desarrollar aplicaciones de “ventana“ ni aplicaciones móviles. Para estas tareas, SUN distribuye sendos SDK denominados J2SE (Java2 Standard Edition) y J2ME (Java2 MicroEdition).  Por tanto, la comparativa debe de realizarse en lo que a aplicaciones Web se refiere. No obstante es necesario hacer hincapié en que la columna vertebral de .NET es ASP .NET, y desde luego fue mirando hacia las aplicaciones IP como se diseñó su “core”. Surgió como competencia a Java, y se esforzaron por sacar un producto de gran nivel. Y a mi entender, lo consiguieron, especialmente a partir de la versión 2.0 de su framework y Visual Studio 2003.
 
Aún con todo, en este punto, lo primero con que nos encontramos es que J2EE está mucho mas especializado. Todas sus librerías, objetos e interfaces están orientados hacia este tipo de aplicaciones. Por su lado, .NET no ofrece como J2EE un estándar a la hora de desarrollar componentes de reglas de negocio y componentes de acceso a datos. Por el contrario, Microsoft “recomienda” una serie de pautas de desarrollo, dejando al analista/programador la libertad de seguirlos o no. Esto supone una sutil diferencia.

Existe en Internet una comparativa mantenida por la empresa Middleware Company (TMC) sobre la que ha surgido una gran polémica. SUN mantiene desde hace tiempo una aplicación de “ejemplo” denominada “PetStore” para que sirva como ejemplo de desarrollo de aplicaciones bajo J2EE. Microsoft por su lado, realizó una versión en .NET (C#) y se publicaron unos resultados en los que esta última versión salía ganando en rendimiento y facilidad de desarrollo. A partir de este momento, el revuelo fue enorme. Réplicas, contrarréplicas e incluso versiones alternativas de Macromedia (Flash) y el movimiento “open-source” han sido constantes. La comparativa original habla de rendimientos muy superiores de la versión en .NET (mas del doble de páginas servidas en algunos casos y un coste monetario por transacción muchísimo menor). Yo no entraré en esta discusión mas que para afirmar un punto importante: ambas tecnologías se presentan como más que aceptables para abarcar un proyecto de este tipo. Esto supone en cualquiera de los casos una ventaja clara para Microsoft, debido a que su tecnología es mucho mas nueva y ya supone un logro haber alcanzado estas cotas en tan poco tiempo. 

Uno de los puntos claros en la tecnología actual, es la interoperabilidad de aplicaciones mediante los denominados “Web Services“ o “Servicios Web”. Las tecnologías, lenguajes y protocolos utilizadas para construir y utilizar un “Servicio Web” son estándares en el mercado (definidos en su mayoría por el Consorcio W3C) y por tanto ofrecen una gran capacidad de comunicación entre aplicaciones, independientemente de la plataforma tecnológica sobre la que están construidas. En realidad, un servicio Web no se distingue mucho de una aplicación “cliente- servidor” de las de toda la vida. Al fin y al cabo, un “cliente” necesita obtener datos y realizar operaciones en un “servidor”, y para ello utilizará un sistema de llamada a procedimiento remoto, mediante una serie de protocolos y lenguajes bien conocidos. No importa en este caso si detrás del servicio Web hay un servidor de aplicaciones J2EE o un servidor con .NET. Lo importante es saber su dirección y comunicarme con el mediante los protocolos y lenguajes adecuados (HTTP, SOAP, XMLRPC, XML, etc.). Bajo esta perspectiva, los servicios Web no traen nada nuevo al mundo del desarrollo de aplicaciones.  La diferencia fundamental está en las tecnologías que utilizaremos usando los servicios Web. Si las anteriormente citadas aplicaciones “cliente-servidor” se desarrollaban de forma mas o menos aislada unas de otras, la particularidad fundamental de los servicios Web es que todos utilizan una serie de protocolos y lenguajes comunes, haciendo así mucho mas sencilla la labor de interconectar unos con otros, y de construir aplicaciones cliente que sean capaces de entenderse con todos los servicios Web que se construyan.

.NET en la actualidad tiene una gran ventaja, que es su magnífico entorno de desarrollo Visual Studio .NET. Trabajando con J2EE tenemos una variedad mucho mayor de entornos, pero ninguno con una productividad tan alta como la alternativa de Microsoft.  Por otro lado, J2EE cuenta con un parque de instalaciones mucho mayor, pero que en breve puede verse seriamente afectado por .NET. Como comentario final, no debe de escaparse un interesante cambio de posición de la comunidad de desarrolladores. Hace tiempo que nadie dice que “.NET no funciona” o “.NET no sirve”, como se hacía con las páginas ASP, Visual Basic, y el resto de tecnologías de Microsoft. Ahora la discusión se ha vuelto mucho más etérea porque realmente todos los datos y las pruebas hablan a favor de la nueva tecnología. Pero tampoco ninguno habla en contra de J2EE. Ambas tendrán que luchar por un mercado con armas ya no tanto tecnológicas, como comerciales. 

En Nueva Imagen hemos apostado…  por las dos. Por ello estamos inviertiendo muchas horas en dominar ambas tecnologías, con la mirada puesta en el futuro. Hemos sacrificado desarrollos en tecnologías archiconocidas como ASP o PHP por parecernos insuficientes y porque desde luego están muy lejos del avance tecnológico que supone .Net o Java.

Por supuesto, ya lo sabemos, muchos nos criticarán. Probablemente algún veterano de Phiton, o los nuevos paladines de Rails veran nuestra apuesta por la convivencia de ambas tecnologías de una forma muy parecida a la terrible imagen que ilustra esta entrada. Pero nosotros ya estamos acostumbrados a la incomprensión…