FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Servidor web + Apache 2.0.58 + Delphi 7 + 0% de experiencia...
Veamos como está el asunto.
Quiero hacer un servicio web para poder hacer consultas a una base de datos en firebird que tengo por aquí. Ya no voy a masacraros con preguntas sobre como acceder a la DB y esas cosas (mas adelante tal vez ), pero ahora, de momento, el problema es hacerlo funcionar con Apache 2.0.58. Tal y como sale en esta página http://www.drbob42.com/delphi7/apache2040.htm tengo que hacer unas cuantas operaciones con archivos Cita:
¿Alguno me guía un poco, o en su defecto, me da otra posible solución para este problema? Estoy atascadete, pero creo que es un tema en el que merece la pena insistir por lo útil que puede llegar a ser. Saludos y espero con ganas respuestas. Papulo.
__________________
"El aprendizaje potencia la intuición" Yo mismo, en un momento de inspiración. v2.0 Última edición por papulo fecha: 03-08-2006 a las 13:02:23. Razón: Uops! Tengo una versión de Apache que nadie tiene... ¡¡la 2.58!! ¿o será que me he equivocado? |
#2
|
||||
|
||||
Una preguntita: ya que sabes php, ¿no te interesaría hacerlo en ese lenguaje?
Porque, exactamente, ¿qué quiéres hacer?.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
||||
|
||||
Digamos que hay un "ente superior" (AKA as boss) que sabe que delphi lo puede hacer, y en principio me lo ha dejado claro. Ahora bien, sois gente que domina delphi a un buen nivel, y si argumentais el por que de hacerlo con PHP, de una forma clara y coherente (que mi jefe, ante todo, razonable), decida hacerlo con PHP, porque con argumentos se va a todos los sitios.
Saludos Antonio y resto de gente. PD: Pasa por gmail esta tarde y charlamos del tema.
__________________
"El aprendizaje potencia la intuición" Yo mismo, en un momento de inspiración. v2.0 |
#4
|
|||
|
|||
Asi de forma general, php esta mas pensado y es mas adecuado para hacer temas de la web que delphi. Pero primero habria que sabe exactamente que va a hacer ese servicio web, y despues con esa informacion se podria decidir cual es la mejor opcion.
Saludos |
#5
|
||||
|
||||
Unos clientes nos han pedido que les cedamos nuestra DB (no son listos ni nada ) pero, obviamente, se les ha denegado. Pero mi jefe ha pensado que a lo mejor, podemos implementar un servicio web para que, mediante ficheros XML, podamos permitir a los clientes hacer consultas a la DB dentro de sus propias aplicaciones, fuera del ambito de la nuestra.
Asi pues sería Consulta(Cliente)->Recepción(Nuestro servidor web)->Procesar(Nuestro servidor web)->Devolver datos(Nuestro servidor web)->Recibir respuesta(Cliente) La idea que tengo en mente es recibir el ficherito, extraer las vartiables, montarlas en una query para, via SQL, consultar la DB y devolver el resultado en otro fichero XML (llenito de etiquetas para que no se equivoquen ) hacia la aplicación del cliente. Si necesitais mas datos, por favor, no dudeis en preguntar. Saludos, Papulo.
__________________
"El aprendizaje potencia la intuición" Yo mismo, en un momento de inspiración. v2.0 |
#6
|
|||
|
|||
¿No seria mas facil crear un usuario con solo permisos de solo lectura.
y hacer una aplicacion que solo los consulte via http, que un servicio web? que de servicios web no tengo ni ide aunque quiero aprender a hacerlos |
#7
|
|||
|
|||
Creo que lo mejor sería Intraweb.
Cita:
Te aseguro que tardarás un 90% menos de tiempo que en montar un servidor apache. Cita:
Si es un requisito el fichero XML, lo que puedes hacer es que tu aplicacion IW envie ese fichero al navegador del cliente. Hay varias formas más de hacerlo. PD: Que listos son los jefes, verdad?? |
#8
|
||||
|
||||
Lo más simple, si son consultas específicas, es hacerlas "tal cual", una consulta "normal" a la base de datos, tan sólo que en la oficina del cliente tendrás que decirle que la base de datos está en (ejemplo): 215.215.215.215:/servidor/datos/basedatos.fdb
La 215.215.215.215 sería vuestra IP de internet, y en el router vuestro se direcciona el puerto 3050 a la IP del servidor en la red local. Si no tenéis IP fija, podéis usar los servicios de http://www.no-ip.com/ u otros similares. Para el cliente puedes crear un programita delphi con una lista (grid, listbox, menu, etc. como prefieras) con las distitnas posibles consultas permitidas, ejemplo: Cita:
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#9
|
||||
|
||||
Yo hablando de bases de datos .. Bueno, en serio, si das acceso a la base de datos a los clientes, ¿como puedes controlar las consultas que van a hacer? ¿que les impedirá crearse su propio programa con sus propias consultas? y de esa manera poco a poco copiar la base de datos (que creo que es lo que se quiere evitar). Desde mi ignorancia: ¿se puede limitar en la base de datos que consultas puede hacer cada usuario?, de no ser así, yo apostaría por interponer algún software entre los clientes y la base de datos, así nos aseguramos de que nadie se pase de listo.
No creo que tenga que ser nada muy complicado, de hecho para no liarnos con temas de sockets, que siempre son molestos y pueden ocasionar muchos fallos de seguridad si se nos cuela algún fallo, podemos usar un servidor con una estabilidad probada como el Apache. A partir de ahí crear un simple cgi es trivial, no hacen falta librerías especiales ni nada, al fin y al cabo no deja de ser un simple .exe Luego solo tenemos que decidir como se comunicaran entre ellos, es decir, el programa del cliente enviara una consulta al nuestro, este comprobara que es una de las consultas permitidas y la mandara a la base de datos. Entonces nuestro programa generara una respuesta que el programa del cliente pueda entender (Campos separados por comas, XML, etc) y se lo dará al apache para que lo envié como respuesta. PD: Si lo anterior sonó como si estuviera intentando reinventar la rueda o simplemente es una tontería, por favor ignorarlo. |
#10
|
|||
|
|||
Partiendo de que el que lo vaya a desarrollar sepa tanto php como delphi yo me inclinaria sin dudarlo por implementar una capa intermedia programada en php en el lado del servidor (Lo cierto es que esto ya lo he hecho asi en varias ocasiones).
En el caso de intraweb yo lo he descartado hace tiempo, es demasiado inestable e inseguro, si miramos las actualizaciones del intraweb, continuamente descubren bugs que son criticos para un servidor accesible desde internet en cuanto a la seguridad. Intraweb, ya lo dice su nombre, puede valer para Web Internas de una empresa a la que acceden personas confiables pertenecientes a esa empresa y que no estan expuestas a internet. Razones para usar php y una capa intermedia: 1. Es muy sencillo implementar ese tipo de cosas en php. 2. Es mucho mas sencillo manternelo y añadir nuevas caracteristicas sin tener que parar el servicio. 3. Se puede usar https de forma sencilla, para que vayan los datos encriptados: siendo datos internos de la empresa este requisito seria casi imprescindible. 4. El hecho de usar una capa intermedia permite logear todo lo que hagan y consulten los clientes. Otra cosa muy importante es que podemos añadir restricciones adicionales en el codigo del servidor en el futuro si fuese necesario. Por ejemplo que el jefe decida que tal rango o tipo de informacion a partir de ahora no pueda ser vista por los clientes. 5. Si no tenemos una capa intermedia, como necesitemos hacer algun cambio estructural en la base de datos de la empresa, podriamos romper el funcionamiento del sistema y que dejase de funcionar, obligandonos a actualizar el software de todos los clientes, por ejemplo un simple cambio de un campo podria hacer que las queries fallasen. Con una capa intermedia esto siempre se puede arreglar en un unico punto, en los scripts de php que hacen las consultas, pero manteniendo igual el interface de cara a los clientes para que no haya que modificar y actualizar el software que tengan instalado. Saludos |
#11
|
||||
|
||||
En primer lugar, una cosa.
PHP es para correr sobre un servidor Web. Eso lo limita. Delphi es para correr o para ser su propio servicio web. Delphi puede hacer mas cosas que un lenguaje especifico de Web como PHP, a la vez, es mas "simple" hacerlo en PHP o en Python. Mi solucion es eliminar Apache, y IIS. La manera de hacerlo con un lenguaje como Delphi es hacer un servidor SOAP directamente con Delphi, con Indy o RemObjects (este producto es de cobro pero te hace muchas cosas que son soñadas: Failover, Compresion, Encriptacion hasta 512, multiples formatos de retorno, como SOAP, Binario y otros, muy simple hacer clientes, etc...) Creo que RemObjects e Indy son prueba suficiente para hacer valer a Delphi por lo que es: Una herramienta versatil. Eso NO es PHP, que es mas restringido a paginas (no aplicaciones) Web. PHP, en mi opinion, es el Visual Basic del momento.
__________________
El malabarista. |
#12
|
||||
|
||||
Bueno, ya he vuelto a la vida (4 días de fiestas y excesos machacan cosa mala mala).
Iré por partes: El acceso a la DB es para nuestros clientes, los cuales, a traves de nuestro programa, ya tienen acceso total a la misma a traves del interface. Algunos quieren usar la DB en sus propias aplicaciones, para ello queremos crear este servicio, para permitirles, via XML, adaptarlo a lo que lo necesiten, pero sin tener la DB desencriptada . Por otra parte, no se si hacerlo via PHP o directamente en DELPHI, de momento ya me las veo negras para hacer funcionar DELPHI 7 con Apache 2.0.5X, cosa que está resultando "jarto" complicada. Sigo intentando decidirme por una de las opciones y todas y cada una de las opiniones que dais las leo, así que por mi, no pareis todavía Saluditooos, Papulo.
__________________
"El aprendizaje potencia la intuición" Yo mismo, en un momento de inspiración. v2.0 |
#13
|
||||
|
||||
Porque?
Es cierto que compilar librerias para Apache tiene sus "jartancias" pero pienso que deberias explorar otras opciones mas flexibles. En este momento, con el augue de stacks como RubyOnRails y Django/TurboGears se esta moviendo la cosa de modulos a FastCGI, que es mucho mas simple y mejor desempeño a la larga. Con respecto a Delphi, muy facil: Crea tu servidor como quieras y haces una redireccion desde apache y/o un proxy inverso. Es muy facil, no friegas con la memoria del servidor (porque no instancias nada dentro del proceso), te permite usar un esquema mas flexible luego (ej: Dejar corriendo varias copias del servicio entre distintas maquinas y hacer un failover), no tienes que preocuparte si es un apache con o sin prefork, puedes moverlo a otro servidor mucho mas rapido y liviano como Lighttpd, etc... Como dije, la mejor manera de hacerlo con una herramienta como Delphi es un servicio independiente que luego le haces la conexion... y con apache/lighttpd con su funcionalidad de redireccionamiento (que solo requiere editar el archivo de configuracion) es muy facil
__________________
El malabarista. |
#14
|
|||
|
|||
webservice
Este hilo en mi humilde opinión tenia un nivel un poco… digamos… bajo, de menor a mayor estaba mejorando un poquito (jejeje saliamos de PHP para pasar a INTRAWEB un poco mejor pero no cumplia con lo que el Jefe le pedia a este pobre muchacho) , hasta que mamcx prendio la luz, ahora permitanme bajarlo nuevamente con mi ignorancia: Si tu jefe te pide que hicieras WebService con delphi 7 Apache 2.0.58 lo que podes hacer es compilar el proyecto como si lo fueras a usar IIS, luego configuras apache para que ejecute las dll ISAPI, pues de otro modo yo no logre hacer andar los servicios web con versiones nuevas de apache.
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
php y apache, ¿CGI Binary o Apache Module? | D-MO | PHP | 12 | 06-06-2006 03:11:43 |
Servidor Apache en Suse 9.1 | Sasuke_Cub | Linux | 1 | 23-11-2005 20:50:01 |
Tu experiencia trabajando a distancia | Al González | Debates | 8 | 27-04-2005 01:17:46 |
Apache e ISAPI de Delphi | anitra_cattivo | Internet | 10 | 22-05-2004 19:21:07 |
Se puede usar apache server con delphi? | CORBATIN | Internet | 4 | 18-08-2003 16:58:09 |
|