Desarrollo de aplicaciones corporativas desde plataformas desktop
El fenómeno cliente/servidor, trampolín del PC en su "revolución"
Se parte de una problemática que pudo pasar desapercibida, emplazada en el mainframe; un hito en el camino, con la vertiginosa ascensión del PC y la llegada de las redes locales; luego, a partir de la idea del grupo departamental, se pasó a perseguir al hermano mayor. Con el mundo SQL como vía de acceso a entornos corporativos denominados "abiertos", y Microsoft aportando Windows y ODBC, el camino está abierto. Pero eso no significa que sea corto.
La revolución cliente/servidor se gestó partiendo de una filosofía basada en el PC. Hoy, el PC se ha convertido en pieza básica de los departamentos de informática de las corporaciones: se trata de crear desde el propio cliente aplicaciones que penetren en la base de datos corporativa, integradas con otras que procesen su información.
Herramientas como NewEra de Informix, PowerBuilder de Powersoft, Delphi de Borland o Developer/6000, entre otras, tratan de comer el máximo terreno al modus operandi tradicional.
Todo eso pudo costar la existencia al mainframe, de no ser porque se descubrió que la mecánica del software para PC no consigue todavía la escalabilidad deseada en muchos casos para realizar en modo cliente/servirdor lo que actualmente realiza el mainframe con sus terminales. Y, de hecho, las herramientas al alcance del usuario corporativo en la actualidad no parecen reunir entidad suficiente para hacer frente a grandes proyectos.
El presente artículo trata de dar explicación a la situación actual del mundo cliente/servidor, desde la plataforma que mayoritariamente lo impulsa, el PC. Lo cual no es decir que sea la única porque también se utilizan estaciones Unix.
Pero la necesidad de un interface común no sólo para el usuario en cuestión, sino también para la industria misma, ha hecho que lenguajes visuales como Visual Basic o Visual C++ o CA-Visual Objects, hayan tomado gran protagonismo.
Y, también, desde el mundo Windows, ha sido posible acceder a herramientas basadas en lenguajes de cuarta generación, que son los que proporcionan esa escalabilidad deseada. Junto a ellas, por otra parte, librerías de clases que pueden ser desarrolladas por el fabricante, por algún VAR de éstos o por el propio usuario. Estas librerías proporcionan la opción de desarrollar pequeñas aplicaciones específicas "de usar y tirar" y reducen significativamente el tiempo de desarrollo. Por último, la posibilidad de particionar aplicaciones es el factor con el que se llega a la médula misma del proyecto: distribuir realmente toda la lógica aplicativa a fin de optimizar el almacenamiento, el acceso y el proceso de la información contenida en el seno de la corporación.
Pues bien, incluso las herramientas más punteras o denominadas "de segunda generación", no ofrecen por el momento la capacidad de particionar aplicaciones.
Problemática actual
Los primeros intentos de desarrollo cliente/servidor no fueron en realidad corporativos, sino más bien basados en soluciones front-end que aglutinaban toda la lógica en el desktop. El objetivo era acceder a a las únicas bases de datos que se les abrían: las bases de datos relacionales. SQL, el interface CLI y, más recientemente, ODBC, han puesto en contacto los dos mundos, y, si tomamos como criterio de referencia la comunicación entre ambos, eso está conseguido.
Mientras todos aquellos comprometidos con el PC seguían trabajando, más recientemente surgió una segunda vía, que ya se ha comentado antes: se trata de la vía del servidor, con máquinas de rango medio y estaciones de trabajo corriendo Unix.
Sin embargo, en la actualidad ninguna de estas dos vías ha dado un resultado plenamente satisfactorio: los equipos de alto nivel, por lo general, ofrecen un desarrollo un tanto "jurásico" que ofrece aplicaciones de servidor ciertamente escalables y con capacidad para gestionar entornos complejos, pero carecen con mucho de la flexibilidad que ofrece un PC. Este, por su parte, es flexible y cuenta con la baza de que ha recogido para el desarrollo la mentalidad visual y gráfica que cautivó en su momento al usuario final; sin embargo, las herramientas disponibles no alcanzan esa escalabilidad que consiste, fundamentalmente, en la no necesidad de modificación del núcleo de la aplicación cuando sea necesario que ésta crezca.
Es el PC, sin embargo, el que parece abocado a llegar el primero a la meta. O, al menos, a lllegar bastante más lejos en esta empresa.
A continuación tratarán de exponerse los principales factores de apoyo al desarrollo de la plataforma PC como entorno de desarrollo de aplicaciones corporativas (el aspecto cliente/servidor se da como premisa básica).
El impacto de Windows
Microsoft ideó Windows como un modo más "amigable" (el término es bastante arcaico, pero cuadra perfectamente con el cometido del producto) de comunicar al usuario con el mundo MS-DOS. Sin embargo, bien voluntaria o bien involuntariamente, la gestión de aplicaciones en modo gráfico ha dado lugar a una verdadera corriente que piensa en el mundo gráfico como única forma de ver el futuro.
Así pues, se comenzó a pensar en modo gráfico incluso desde las sedes de los "dinosaurios" como Unix o los distintos sistemas propietarios. Sin embargo, sólo Windows parece haberse hecho con el apoyo de la mayoría ya que, incluso los desarrolladores de soluciones Unix (Oracle, Sybase, Progress, etc.) han tomado contacto con el mundo Windows de diferentes maneras. Paralelamente, se ha producido una gran expansión de los llamados "lenguajes de scripting" (Visual Basic, C++, SQL/Windows) que son los encargados de conseguir, desde Windows -aunque también desde otros como OS/2 o Unix), una forma de entenderse con el ordenador no sólo para la ejecución de aplicaciones, sino también para su desarrollo.
Pero el principal espaldarazo a Windows se lo ha dado la propia Microsoft, aportando desde el desktop lenguajes de desarrollo, gestores de aplicaciones, sistemas operativos con alcance corporativo, pasarelas a bases de datos, conexión con otros entornos de servidor, etc. Y todo desde Windows.
Por último, cabe destacar bajo este epígrafe la aparición de potentes herramientas como NewEra de Informix, Developer/2000 de Oracle, Delphi de Borland, etc., que, desde fuera, han fomentado el desarrollo de aplicaciones corporativas de la mano de Windows.
Objetos: OLE y demás
¿Porqué es importante un objeto? ¿es que puede decirse que un objeto es algo en particular? En realidad, se presenta más como un concepto para unificar una filosofía, la filosofía de la reusabilidad.
De hecho, la orientación a objetos puede ser considerada como una de las más importantes transformaciones en el desarrollo de aplicaciones, tanto a nivel limitado como en grandes proyectos. No obstante y como a todo, habrá que dar tiempo al tiempo para que esta tecnología cumpla sus objetivos.
En el caso de los objetos, tanto el PC como equipos algo más avanzados se benefician de tecnologías importantes. No obstante, la omnipresente Microsoft dio la campanada recientemente para anunciar que OLE se convertirá en un entorno de alcance corporativo: se integrará en ODBC, eso es seguro por el momento, lo cual permitirá sacar partido de este middleware de acceso a bases de datos corporaticas a todas aquellas aplicaciones desarrolladas desde un PC y que tengan conformidad a las especificaciones del Object Linking & Embbeding de la firma del Windows.
Por otra parte, el OMG está tratando de atraer a Microsoft para que aporte la tecnología OLE al mundo abierto de CORBA. Y, a este respecto, hay que decir que, suceda o no suceda esto, desde el prisma del usuario bastará que ambos mundos conecten.
Lo mismo puede decirse de SQL: mientras, en el marco de este mismo especial de COMPUTERWORLD, su máximo responsable asegura que se trabaja en este sentido, parece claro tam