viernes, enero 22, 2010

Un vistazo a la operación España 2010, Parte 3

En el episodio anterior nuestro héroe (x)Harbour se ha conectado con FastReport y nos ha generado un página Web..... ni mas ni menos.

Curiosamente para usar (x)Harbour con Internet, no necestias NADA, ni interfaces gráficas (you know which one I mean) y quien pretenda decir que específicamente necesitarías tal o cual herramienta para hacer que tus programas corran en Web, te esta mintiendo (siento arruinar nuevamente la fiesta, pero es así).

Nosotros llevamos unos cuantos años ya haciendo programas que corren en navegadores Web usando lenguaje Xbase, incluso es posible hacerlo con Clipper 5.2 a 16 bits, de hecho tenemos complejísimos sistemas (una contabilidad completa con 200 usuarios concurrentes) hecha con Clipper que corre usando un navegador Web.

Hace un par de años escribí un artículo en este mismo blog, donde explico un poco como funciona el invento de programar para internet con (x)Harbour y sus ventajas sobre la programación normal en entornos Windows.

Con el paso del tiempo, hemos depurado esta técnica y creado nuestras propias herramientas para acelerar el proceso de programación para Internet, hoy tenemos creado WebAS (Web Application System), que no es mas que una clase escrita en (x)Harbour que se encarga de controlar todo el desarrollo web.

WebAS no requiere de ninguna interfaz gráfica, ni FW, ni MIniGui, ni Xailer, ni naaaaaa, con (x)Harbour puro se puede hacer funcionar o bien usar tu GUI favorita por si necesitas alguna clase especifica, como la clase TDatabase o un DataSet de Xailer. Yo personalmente utilizo Xailer, por el tema del depurador ya que gracias al debugger de Xailer puedo detectar mas rápidamente los errores en mi código de internet.

WebAS es un PRG, que contiene una clase para controlar la entrada/salida de datos por Web, simplemente lo incluyes en tu proyecto (x)Harbour y listo, aplicas unos cuantos métodos y tu aplicación sale caminando para Web.

Al igual que cuando te mueves de MS-DOS a Windows, hay que cambiar toda la interfaz con el usuario, nada de tus pantallas actuales se pueden aprovechar porque toda la interfaz tiene que estar basada en archivos HTML, sin embargo el paso de MS-DOS a Web es mas sencillo, porque no hay eventos que controlar, por lo menos en la primera etapa, y además funciona como procesos batch, por lo tanto el control del flujo del programa es mucho mas simple.

WebAS se complementa bien usando editores de HTML como DreamWeaver para generar tu intefaz con el usuario, y el uso de las paginas web, generadas con cualquier editor HTML, con WebAS es sumamente sencillo, tan simple como leer un archivo de texto con MemoEdit().

Del lado del cliente (paginas web que se van visualizar en el navegador) puedes usar lo que quieras: Applets de Java, hojas de estilo, JavaScript, Ajax, incluso XBScript de xharbour.com

Usando esta tecnología puedes usar hasta un teléfono movil, un iPhone por ejempo, para ejecutar programas hechos en xHarobur y que corran con interfaz web.

Veamos algunos ejemplos:

http://www.digaden.edu.mx

En la parte inferior izquierda selecciona "Sistema de Consulta de calificaciones de cadetes y alumnos de nivel Licenciatura y Técnico Profesional"

En la seccion matrícula: puedes usar estos 2 números: INGE09001 ó INGM05002

Esta pagina de consulta esta hecha usando (x)Harbour sobre Tablas ADT de Advantage database server.

Otro ejemplo:

http://www.ciber-tec.d2g.com:90/sgs/

Tienes varias opciones en esta web:

Usuario: A-1111
Usuario: A-12345678
Usuario: A-32323232

En todos los casos, el password es: 1111

Ahi puedes ver como dependiendo del usuario, se generan pantallas distintas, todos los datos de esa web estan en archivos DBFs con indices CDX.

Otro ejemplo mas:

http://www.ciber-tec.d2g.com/rhshipping/

Usuario: RUDOLF
Password: RUDOLF

Esta web requiere que tengas JAVA instalado en tu computadora ya que verás unos folders que hacen uso de un applet.

Todos los listados de esta web provienen de archivos DBFs con índices CDX.

Como verás el grado de complejidad que se puede lograr con WebAS es muy interesante, la imginación es el límite, lo puedes combinar con ADS, o con FastReport, los resultados saltan a la vista.

13 comentarios:

mvg dijo...

Rene,

pensaste en publicar el codigo fuente de WebAS, ya que me parece una solucion interesante. Se podria portar de esta manera a Linux, por mi parte anda viendo la posibilidad de hacer algo como ClipXnet que tambien es una interesante opcion, gracias por tu tiempo saludos

Marcelo

Rene Flores dijo...

Las clases básicas que integran WebAS (TWCgi y TWebBrowse) están disponible en alguno de los muchos ejemplos que tengo publicados de programación Web.

Actualmente estamos trabajando en una nueva versión de WebAS, que pueda hacer lo que hacen PHP y ASP, es decir interpretar código (x)Harbour metido dentro de un archivo combinado con HTML.

Ya tenemos la primer parte funcionando, gracias al estupendo XaScript de Xailer que se encarga de la "interpretación" del código fuente.

Tenemos ya también configurado el IIS para que, al igual que como se hace con PHP y ASP, se ejecute WebAS.EXE y que la hoja html sea "interpretada" y publicada.

De igual manera se puede hacer con Apache, pero eso de momento lo tenemos aparcado, primero lo haremos funcionar con IIS, y luego con Apache que resulta mas fácil.

WebAS no usa niguna cosa nativa de Windows y todo el código fuente es (x)Harbour (incluyendo el XaScript), con lo cual (en teoría) se podría compilar bajo Linux sin problema alguno.

Anónimo dijo...

Entonces, por lo que he podido leer en tu blog y viendo que no es necesario usar ninguna interfaz gráfica, que solo es necesario (x)Harbour para programa en Web.....

¿ Eso quiere decir que Antonio Linares nos esta mitiendo con el tema de su herramienta para desarrollo web ?

Si yo tengo un programa que corre actualmente en FiveWin Windows mis preguntas son:

¿ No necesitaria ninguna otra cosa para hacer que mi programa que funcionara para web, mas que WebAS ?

¿ No tengo que esperar al invento de Antonio ?

¿ Cuanto tiempo tendría que invertir para pasar un programa en FiveWin a Internet ?

Si me ayudas con este tema te ganarías una buena comida cuando vengas por Santiago de Chile.

JJA

Rene Flores dijo...

Ignoraba que Antonio estuviera haciendo algo para web, pero bueno, si lo hace no esta inventando nada nuevo y nada que, sabiendo como funciona el tema de internet, no puedas hacer tu mismo en un tarde de ocio.

Si tu tienes tu programa que corre actualmente en FiveWin, no necesitas ni siquiera WebAS, (x)Harbour trae una terminal CGI, WebAS en lo que te ayudará es en el tema de tener control sobre lo que entra paginas web Html y sale de la misma manera.

Y sí, puedes usar FiveWin para hacer programas para web, aunque solo puedes usar las clases que no sean visuales.

¿ Cuanto tiempo te llevaría ?, pues depende del tamaño del programa a migrar, de entrada, al igual que con el paso de MS-DOS a Windows, la interfaz no te sirve para nada, tienes que crear interfaces nuevas basadas en Html, pero hoy en dia con tantos editor HTML tanto gratuitos como de paga, hacerlo no te lleva mucho tiempo.

Anónimo dijo...

A ver, que me he liado...

He visto los ejemplos, impresionantes todos, en alguno la interfaz es mejorable, pero bueno lo interesante es que estas usando web como tu interfaz y detras un "algo" hecho con codigo Clipper/xHarbour.

Ese "algo" supongo que es el WebAS tan mencionado, pero donde estoy liado es en... ¿ que es lo que es WebAS ?, un programa, un servidor web, una libreria ¿ exactamente que es ?

Si pudieras aclararlo creo que muchos estamos por el mismo tenor, nos gustaria hacer una aplicación para web usando lo que tenemos.

En mi caso yo tengo FWH, mis programa son Windows 32, y no me gustaría tener que aprender PHP o ASP o tener que cambiar mis archivos DBFs por tablas de MySQL como en el caso de PHP, sino que me gustaría usar la mayoria de las fucniones que ya tengo desarrolladas con FiveWin.

¿ Como me ayuda WebAS ?

Rene Flores dijo...

WebAS es una clase (un simple .PRG) desarrollada por nosotros para utilizar un programa hecho en (x)Harbour usando el soporte CGI que la mayoría de los servidores Web mas populares (Apache e IIS) soportan hoy en dia.

WebAS te permite "leer" los datos ingresados en un formulario web en HTML, usarlos desde tu programa escrito en (x)Harbour y te permite "publicar" las respuestas generadas por tu programa en hojas HTML diseñadas con cualquier diseñador visual HTML como Dreamweaver, HoTDog, o CofeeCup.

En este momento el codigo (x)Harbour debe de ir en un EXE externo, en futuras versiones de WebAS el código fuente ira dentro del archivo HTML, tal como se maneja acutalmente en PHP o ASP, estamos ya bastante avanzados con ese tema, ya esta solventada la parte de la "interpretación" del codigo y solo es cuestion de ajustar unos detalles particulares de cada servidor Web.

Anónimo dijo...

Hola René,

Pues lo dicho, en mi correo privado que te envie, te preguntaba si WebAS era un producto como tal, y parece que no había leido bien es un simple PRG y ahora lo vuelves a comentar.

Y que va a pasar con WebAS, vas a públicar el código fuente?, lo vas a comercializar?, lo vas a dar de manera gratuita para su uso (exe)?, ó que estas planeando, o no estas planeando nada y solo nos lo comentas, y nos quedamos con las ganas de meterle mano a WebAS. (que esto sería como tormento chino, dicho con todo respeto para ti y para aquel país).

Saludos
Javier Parada

Rene Flores dijo...

Javier:

WebAS y todo su codigo fuente se entregan como parte del material del curso de programación para Internet con xHarbour.

El código fuente básico de WebAS esta rodando por internet desde hace mucho, pero dicho código es totalmente inutil sin el curso, ya que cada servidor Web donde quieras ejecutar tu programa hecho con WebAS requiere de ciertos ajustes muy puntuales para poder ejecutar CGIs.

Aqui tienes el código fuente:

Ejemplo del uso de WebAS
En el caso de Apache por ejemplo tienes que descargar y configurar por separado el componente CGI ya que Apache por si mismo no lo trae incorporado.

IIS es otra historia el soporte CGI tiene que ser activado de una forma distinta

Y también usamo un servidor web muy bueno, el WebSite de O'Reilly que es 1000 veces mas simple de configurar que los anteriormente mencionados.

Una vez configurado el soporte CGI de cada servidor, entonces hay que usar determinados metodos de la clase, pero bueno todos esos detalles finos se analizan en el curso.

De todas formas si quieres hecharle un vistazo al código fuente de WebAS, puedes descargarlo de aqui:

Anónimo dijo...

Hola,
¿Ya está resuelto el problema de la seguridad? Hace año tenía el defecto de que usabas usuario y clave para validar la entrada. Si todo está bien te permitía entrar a la zona protegida.
Pero resulta que si llamabas a la página de la zona protegida directamente desde el explorador web.... se brincaba la seguridad.
Hize mis pruebas y hasta ahí lo he dejado, actualmente uso php o ASP, que me permiten hacer sesiones, de esa manera controlo que sea obligatorio identificarse.

Saludos
Fernando Leal

Rene Flores dijo...

Fernando:

Tanto el metodo post, como el metodo get de WebAS funcionan correctamente.

Ahora tambien te permite manejar sesiones de trabajo guardando siempre todo el entorno y variables vigentes entre una llamada y otra a cada CGI, pudiendo incluso hacer validaciones de tiempo de vida de cada sesion.

Anónimo dijo...

Rene, que tal.

Como comentas con WebAS y xHarbour, se podria hacer una aplicacion para ver video de una camara de seguridad ?

Javier Vital

Rene Flores dijo...

Javier:

Para ver el video de una camara de vigilancia por Web no necesitas ni WebAS, ni (x)Harbour !!!!!, si es una camara IP, simplemente la enchufas a la red abres un puerto en el router y en 5 minutos estas sacando video a internet.

Anónimo dijo...

Si, entiendo, pero lo pense pero no lo escribi, hacer una app que corra en un telefono y ver el video.