Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-04-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.099
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Información y consejos para proyecto web

Hola, tengo que preparar el análisis de un proyecto web y me gustaría leer opiniones de personas que tengan experiencia en algo parecido para así tomar una decisión u otra.

El proyecto es para una cadena de empresas asociadas y sus sucursales, las cuales necesitan un sitio común donde almacenar las incidencias de los artículos que les ha llegado defectuosos, estropeados, rotos, los que se han deteriorados con el tiempo, etc. y que todos puedan consultarlos mediante varios filtros.

Resumiendo: usuarios, artículos y fotografías de los artículos dañados (esto de las fotos es el principal problema).

Explico un poco el proceso que se pretende: en cualquiera de las empresas o sucursales asociadas reciben un pedido de la central y llegan una serie de artículos dañados en el transporte, porque han estado mucho tiempo al sol, porque han estado almacenados en un lugar húmedo, etc. y también puede ser que lleguen correctamente pero que se estropeen después de un tiempo en los almacenes.
Entonces el usuario entra en la web, se da de alta si no ha entrado antes, da de alta la referencia del artículo dañado si no existe o le aparecen los datos para confirmar, si ya existe. Ahora debe rellenar un formulario con varios datos del artículo, defectos detectados, etc. y adjuntar fotografías de los mismos, puede subir cuantas fotos le parezca.

Cualquier otro usuario puede consultar fotos de artículos por usuario, zonas, tipos de defectos, etc. para comprobar, por ejemplo, si un artículo se daña más en el norte (zona más fría y húmeda) o en el sur (zona más calurosa y seca), puede consultar sólo sus artículos y fotos, los de otro usuario (empresa/sucursal), los de una zona en especial: Cantabria, Andalucía, etc., los que lleven cierta cantidad de tiempo dados de alta, etc.

Además debe llevar una opción de estadísticas donde filtrar por todos los apartados que deseen, eso no es problema tampoco.

En general todo es bastante simple, el principal problema aquí es que haciendo unos cálculos “así por encima” nos ha salido que en el primer año pueden almacenarse unas cien mil fotos, en tres años alrededor de un millón de fotos y a partir de ahí se estabilizaría porque se eliminarían los registros más antiguos.

Las fotos deben ser todas de formato 'jpg' y al guardarlas se deben convertir si no lo son. Pero otra premisa que exigen es que hay que mantener los tamaños originales de las mismas. Y esto sí es un problema porque ya me veo yo a la gente haciendo fotos de 12 megas cada una, pero bueno, ellos sabrán lo que quieren pagar de ancho de banda , seguro que en poco tiempo me piden que las reduzca de tamaño al guardarlas

Y bien, aquí van las preguntas:
  • Fotos en una base de datos o fuera
  • Si van fuera, cómo organizarlas mejor (esto creo que es lo primordial)
  • Hacerlo todo desde cero o aprovechar algo existente tipo joomla, drupal, etc.
  • Los servidores estarán alojados físicamente en la central de la empresa, qué medidas de seguridad se recomiendan (Por supuesto, en Linux)
  • Lenguaje a usar y base de datos, mi experiencia web no es muy amplia
  • Otras cosas a tener en cuenta
  • Consejos
Y eso es todo, creo que no se me olvida nada importante. Muchas gracias a quien pueda o quiera aportar algo interesante .


Responder Con Cita
  #2  
Antiguo 30-04-2010
manuc manuc is offline
Miembro
 
Registrado: abr 2010
Posts: 165
Poder: 15
manuc Va por buen camino
Hola Casimiro Notevi,

Te comento mi opinión personal:

Cita:
Fotos en una base de datos o fuera
Si van fuera, cómo organizarlas mejor (esto creo que es lo primordial)
Fuera de base de datos, en un directorio de imágenes y protegido (si es posible)
En un proyecto similar, lo hemos hecho es crear una tabla en base de datos, con un ID autogenerado y el Nombre original del fichero.
Al subir la foto, registras la entrada en la tabla de imágenes y la imágen la subes al directorio de imágenes y le cambias el nombre por el ID del registro creado para ella.

Para los listado de imágenes tiras de la tabla en base de datos. Cuando un usuario quiere descargar una imagen, localizar el fichero correspondiente al ID que se quiere descargar y al descargar lo haces con el nombre original de la imagen (que estaba también almacenado en la misma tabla)


Cita:
Hacerlo todo desde cero o aprovechar algo existente tipo joomla, drupal, etc.
Los defensores de Joomla te dirán que se puede hacer sin problemas y que irá a las mil maravillas. Yo no lo haría con Joomla, ni nada de estos Software que, en teoría, te facilitan el trabajo. Desde mi punto de vista le pasa como cuando haces una base de datos con Access. Para empezar está bien, pero cuando quieres hacer cosas más avanzadas todo se complica.
Sin contar con los inconvenientes de tener todo el contenido de la Web en base de datos. Si no tienes muy muy bien configurada la página en Joomla, puedes tener grandes problemas de tiempos de carga.

Te recomiendo que todas las páginas que puedas las hagas con html, php o asp directamente. Ganarás mucho control, estructuración y velocidad de carga.

Cita:
Los servidores estarán alojados físicamente en la central de la empresa, qué medidas de seguridad se recomiendan (Por supuesto, en Linux)
Las habituales: firewall físico, si las delegaciones tiene IP fijas, pues filtro por IP's, Antivirus, redundancia y respaldo de servidores principales, buen sistema de copias de seguridad, SAIs, etc.

Cita:
Lenguaje a usar y base de datos, mi experiencia web no es muy amplia
HTML, AJAX, CSS, JavaScript, PHP y MySQL.
Si te es posible, respeta los estándares W3C, AAA, CSS, etc.
Puedes utilizar DreamWeaver, mezclando plantillas con "includes" de php estructurados para no duplicar mucho código.
Cita:
Otras cosas a tener en cuenta
Cuidado con los distintos navegadores. Es una pesadilla.
Cita:
Consejos
No abuses de los tamaños de ficheros que reutilices (CSS, JS's, etc) te perjudicarán en los tiempos de carga de la Web.

Revisa periódicamente los tiempos de carga de las páginas (hay sitios que dan el tiempo de carga de cada fichero de tu web)

Estructura bien el proyecto para crear unidades que puedas reutilizar desde distintos módulos.

Si vas a indexar algunas páginas en buscadores, utiliza para esas páginas nombres amigables.

En páginas que vayas a indexar en buscadores, no utilices AJAX para cargar contenido estratégico para la indexación.

Seguro que hay mucho más, pero ahora no me brotan las ideas.

Bueno, un poco "espeso", pero espero que te ayude.

Un saludo.
Responder Con Cita
  #3  
Antiguo 30-04-2010
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
Cita:
Empezado por Casimiro Notevi Ver Mensaje
  • Fotos en una base de datos o fuera
  • Si van fuera, cómo organizarlas mejor (esto creo que es lo primordial)
  • Hacerlo todo desde cero o aprovechar algo existente tipo joomla, drupal, etc.
  • Los servidores estarán alojados físicamente en la central de la empresa, qué medidas de seguridad se recomiendan (Por supuesto, en Linux)
  • Lenguaje a usar y base de datos, mi experiencia web no es muy amplia
  • Otras cosas a tener en cuenta
  • Consejos
Hola casimiro,

a ver unos pensamientos al aire... por si las moscas te sirve alguno...

Por mi parte yo almacenaria las fotos en un directorio... y no en la DB;

Lo de la estructura del directorio para mi dependeria del mismo desarrollo en si... aunque de una como sabes tirar todas las fotos en un solo directorio no es recomendable... algo como "/photos/año/mes/numerodecaso/img1.jpg" poria servir.

aunque joomla tiene unos administradores de ficheros... la verdad mejor seria lanzarte a un desarrollo desde 0 para la herramienta como tal... si la herramienta va acompañada de un sitio informativo habria que tener en cuenta su complejidad si es muy complejo depronto un wordpress o un joomla te ayude.

Con lo del lenguaje, de seguro que yo me iria por PHP + MySQL... te ofrece buen rendimiento... y como dices que no tienes mucha experiencia en las webapps... pues la comunidad php es grande y tutoriales sobran en toda la red... aquí una comunidad de desarrollo de aplicaciones web

si depronto tienes algo de tiempo para experimientar echale un ojo a las bases de datos NOSQL... google por ej ya no usa MySQL... tiene una nueva base de datos que se llama BigTable; facebook tomo el mismo camino e implentó cassandra... http://cassandra.apache.org/;

Hasta donde entiendo (no he leido mucho) estas bases de datos dan mayor velocidad a las aplicaciones web siempre y cuando la estructura de la base de datos no sea muy compleja... mas que todo si solo se trata de unas pocas tablas pero muchos datos en ellas... twitter creo que vá en las mismas.

Si por alguna cosa... ves que el proyecto se dimensiona algo grande, puedes hacer mano de un frwamework... depronto Symphony te pueda ayudar (hasta tiene funcionalidades para ajax)... aquí un libro detallado

otra cosa (casi se me escapa)... en la web no despliegues las imágenes tal cual las subes... puedes usar un generador de miniaturas... esto te ayuda muchisimo con la carga de la imágen... al lado de la misma imágen puedes colocar un link para descargar el archivo original.

De todos modos... trata siempre de echar mano de clases ya preparadas o crear tus propias clases para las cosas sencillas y tediosas... conectividad a la DB, generación de contenido... este sitio tiene clases para cada cosa...

Pues... hasta aquí los pensamientos al aire... por lo demas... aqui estamos tus compadres... y con los compadres pa las que sea.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #4  
Antiguo 30-04-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.099
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Por si acaso no lo he citado antes, lo principal en la web será la consulta de las fotos por distintos parámetros, todo girará alrededor de las fotos de los distintos artículos haciendo búsquedas por referencias, marcas, descripciones, fechas de alta, etc. y mostrándose las fotos de las mismas.
Responder Con Cita
  #5  
Antiguo 30-04-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.333
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Casimiro Notevi Ver Mensaje

Y bien, aquí van las preguntas:
  • Fotos en una base de datos o fuera
  • Si van fuera, cómo organizarlas mejor (esto creo que es lo primordial)
  • Hacerlo todo desde cero o aprovechar algo existente tipo joomla, drupal, etc.
  • Los servidores estarán alojados físicamente en la central de la empresa, qué medidas de seguridad se recomiendan (Por supuesto, en Linux)
  • Lenguaje a usar y base de datos, mi experiencia web no es muy amplia
  • Otras cosas a tener en cuenta
  • Consejos
Hola Casimiro.
Pues no tengo mucha experiencia en Web, pero me interesa que me vayas comentando cómo va el proyecto, Las decisiones que tomas y qué resultado dan.

En cuanto a las preguntas, la primera es la eterna discusión. Creo que nunca se pondrán de acuerdo los defensores de una y otra postura.

Mi experiencia en este campo (no es con una apliación web, pero la problemática es la misma desde una aplicación no-web) ha sido la de escoger guardar los ficheros fuera de la Base de datos. Hay razones para lo uno y para lo otro, pero se trata de ver el peso de cada una y las ventajas que te puede aportar. En mi caso:

* Al incluirlas en la Base de datos el tamaño de esta hace más complejas las tareas "varias" a realizar con la BD. Backups, Restauraciones, copias,...
Una simple multiplicación da muestra de ello. Por ejemplo, fotos de 5 MG; Cuando tengamos 300.000 fotos y hagamos el Backup. ¿Cuanto va a tardar? ¿Dónde lo vamos a meter?
* Al incluir las imágenes fuera de la Base de datos tenemos mucho más control sobre ellas y más facilidad para realizar todo tipo de operaciones. Copias de seguridad, cambios de tamaño, miniaturas,...
* Podemos tenerlas divididas en diferentes ubicaciones físicas de forma mucho más fácil.

································································································
En nuestro caso partimos de un directorio inicial, a partir de ahí tenemos diferentes Volúmenes (VOL) y dentro de los volúmenes, diferentes directorios (DIR).
Se tiene en cuenta que cada Directorio no supere un tamaño especificado u un número de ficheros fijado (5000, por defecto), de esta forma se controla que cada directorio no tenga ni demasiado tamaño ni demasiados fucheros.
Esta ubicación de:
UBICACIÓN -> VOL -> DIR
facilita, por ejemplo, que con pocos cambios se puedan mover los Volúmenes del 1 al 1000 a otra ubicación (otro disco) modificando sólo la Ubicación inicial.
Lo mismo pasa cuando un disco cae, basta con cambiar la ubicación para que las imágenes se vayan a buscar a otro disco (replicación).
································································································

* Otras aplicaciones no tienen porqué tener acceso a la base de Datos. Basta con que se les pase la ubicación del fichero que necesitan (esto hay que evaluar en cada caso si es bueno o malo).

* Un inconveniente de este, es que los directorios de imágenes/documentos deben estar accesibles para más gente/programas de lo necesario. Es decir, cualquier aplicación que deba acceder a una imagen/documento, debe tener acceso al directorio de imágenes. Esto no me acaba de gustar y las posibles soluciones las estamos pensando/evaluando.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 30-04-2010
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
Lo del tema del acceso a directorios en las aplicaciones web se maneja mas facil pues con los permisos de linux solo permites que el usuario del webserver (apache por lo general) sea quien tenga permiso de entrar a ese directorio y se le restringe el acceso y escritura al publico y/o al grupo.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #7  
Antiguo 30-04-2010
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por movorack Ver Mensaje
Lo del tema del acceso a directorios en las aplicaciones web se maneja mas facil pues con los permisos de linux solo permites que el usuario del webserver (apache por lo general) sea quien tenga permiso de entrar a ese directorio y se le restringe el acceso y escritura al publico y/o al grupo.
Pero es este mismo usuario el que accede para servir el contenido, así que las fotos estarían al alcance de cualquiera desde la web. Si se usa Apache, hay que usar además un .htaccess para impedir el acceso desde el exterior.

// Saludos
Responder Con Cita
  #8  
Antiguo 30-04-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.099
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Voy tomando notas de todos vuestros comentarios, por ejemplo:

Cita:
Empezado por roman Ver Mensaje
[..] hay que usar además un .htaccess para impedir el acceso desde el exterior. [..]
¿Eso de qué va?
Responder Con Cita
  #9  
Antiguo 30-04-2010
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Siguiendo el ejemplo de movorack, si tienes el directorio

Código:
/photos/2010/04/33025/img1.jpg
el usuario puede poner

Código:
http://tuservidor.com/photos/2010/04/33025/img1.jpg
y descargarse la foto sin necesidad de iniciar sesión en tu sistema. Si las fotos no son para el acceso público, debes proteger los directorios donde las guardas. En Apache, esto lo puedes hacer colocando un archivo.htaccess con este contenido:

Código:
deny from all
De hecho, acabo de percatarme, que el w2box lo maneja abierto. Por ejemplo, si vas al FTP público y navegas a Delphi|Tools, podrás ver que los enlaces de cada archivo son las rutas directas al archivo. Por ejemplo

Código:
http://www.terawiki.clubdelphi.com/archivos/Delphi/Tools/CloneDelphiWizard.zip
Si pones eso directamente en el navegador, podrás descargar el archivo. Sin emabrgo, a manera experimental y temporal, he puesto un .htaccess en

Código:
http://www.terawiki.clubdelphi.com/archivos/Delphi/Ejemplos
Intenta descargar ahora uno de los archivos de esa sección...

De todas formas, hay que tener en cuenta, que el Apache debe estar configurado para procesar archivos .htaccess.

// Saludos
Responder Con Cita
  #10  
Antiguo 30-04-2010
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Las razones que expone Neftali son bastante convincentes para almacenar las fotos fuera de la base. Aunque si generas miniaturas, quizá éstas sí podrías guardarlas en la base. Sería más cómodo para generar listados.

Recuerda que con PHP también puedes usar Firebird, así que no tendrías que desprenderte de tu motor favorito.

Al guardar las imágenes en archivos en disco, hay que tener en cuenta que no puedes guardarlas en rutas accesibles desde la web (a menos que cualquiera pueda verlas). Tendrás que impedir su acceso y usar el mismo PHP para recoger las fotos y servirlas.

Desde luego, no creo que ningún CMS como joomla, drupal, wordpress, etc. sirva para esto. En todo caso, sería más adecuado algo como el w2box, que es el que usamos aquí en los foros para gestionar los archivos del FTP público. Aunque más que nada para darte una idea, porque también pienso que los mejor es hacerlo desde cero, que no parece un proyecto complejo.

// Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Consejos para empezar con firebird seoane Firebird e Interbase 21 22-03-2007 05:14:33
Consejos para última compilación Pedro-Juan OOP 2 14-03-2007 20:44:11
Consejos para ahorrar. marcoszorrilla La Taberna 3 03-02-2007 01:59:55
Obtener información de Proyecto DLL (ProductVersion) ContraVeneno API de Windows 2 02-02-2007 19:30:15
Consejos para ventanas modales ? Tecnic2 OOP 14 16-10-2006 22:37:20


La franja horaria es GMT +2. Ahora son las 11:06:17.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi