BULMA

Bulma se une a la protesta contra SOPA y PIPA

Bergantells Usuaris de GNU/Linux de Mallorca i Afegitons   |   Bisoños Usuarios de GNU/Linux de Mallorca y Alrededores
CONTENIDOS
. Jornadas de software libre
. Version para PDA
. Enlaces breves
. La asociacion
. Los mas leidos
. Autores [Actividad]
. Ultimos Comentarios
. Todos los titulares!
. Estadisticas
. Guia de estilo
. ¿Sugerencias?
. Wiki
. XML [Ayuda]
Listas de correo
. Archivos bulmailing
. Archivos BulmaGes
Radio libre :-)
. Des de la Xarxa (Archivos)
. Mallorca en Xarxa
Busquedas

+ Enlaces Linux
Ultimos kernels
(22/05/2013 19:58:43)
    
Google


En bulma.net
En internet
Desarrollo Web Extremo (61099 lectures)
Por Ricardo Galli Granada
gallir (http://mnm.uib.es/gallir/)
Creado el 16/07/2001 18:26 modificado el 16/07/2001 18:26

Pagina2/2

3. Desarrollo

En esta fase se desarrollan los gráficos, el código HTML y los scripts necesarios. Aquí aparece el problema, los responsables de proyectos buscan que todo esto se haga con una sola aplicación.

Es un error buscar ese tipo de integración, no solamente por cuestiones de independencia tecnológica, sino porque el código generado suele ser ofuscado, dependiente de varios ficheros "desconocidos" y muy difíciles de optimizar.

Es mejor dividir el desarrollo en dos partes claramente diferenciadas y que se podrán desarrollar en paralelo.

  1. Desarrollo gráfico y HTML
  2. Desarrollo de programas

3.a Desarrollo gráfico y HTML

Con las herramientas existentes, normalmente es el mismo diseñador el que se encarga del diseño gráfico y la maquetación (sobre todo en proyectos pequeños). Cada diseñador tiene sus propias herramientas y distintas plataformas (Dreamweaver sobre Windows y Mac principalmente). Esto no debe servir de excusa para diseñar los programas del servidor en aquellos lenguajes y recordsets soportados por la herramienta (i.e. ASP y SQL Server, o Cold Fusion).

Lo mejor que se puede hacer es que el o los diseñadores desarrollen todas las páginas con HTML estático y texto falso con su herramienta favorita, luego el texto falso se reemplazará por las partes de código (PHP) que generen la salida deseada. Para evitar problemas de integración, es mejor que los diseñadores trabajen asistidos por los programadores para decidir que tipo de texto salida se puede poner en cada página.

Para facilitar la posterior integración con los programas, a la hora de la maquetación en HTML hay que tener en cuenta lo siguiente:

  1. Poner comentarios en HTML del tipo de salida o consulta en cada sección.
  2. Usar desde el principio nombres de fichero con las extensiones correspondientes que se usarán en la versión definitiva (php, phtml, pl, cgi, etc.). De esta forma se evitarán problemas de enlaces por inconsistencia en los nombres.
  3. Usar siempre enlaces relativos, de esta forma se podrá mover fácilmente los programas a distintos directorios o servidores virtuales.
  4. Poner todo lo que sea código JavaScript o imágenes en subdirectorios y usar referencias relativas.
  5. Grabar todos los ficheros en formato UNIX y con hora GMT. 

3.b Desarrollo de programas

Al mismo tiempo que el o los diseñadores preparan el código HTML, el o los programadores deben preparar los programas usando HTML muy simples para probar la base de datos y  ejecución de los programas.

Las herramientas que se usen en estas fases serán normalmente aquellas que use el programador y que son básicamente un editor de texto y acceso al servidor por medio de TELNET  (o SSH). La ventaja principal  es que permiten a los programadores libertad de horarios y de ubicación, ya que la mayoría de este trabajo puede ser realizado remotamente. En caso de trabajo en grupo se recomienda el uso del CVS, ya que permitirá el control de concurrencia, cambios, parches y versiones con mucha facilidad.

Lo más importante es tener acabada la mayor parte de la programación antes que se acabe el diseño e integrar paulatinamente los módulos acabados en aquellas páginas ya finalizadas por los diseñadores. Además se debe controlar periódicamente que los enlaces y referencias de las páginas HTML sean válidos y relativos

Pruebas

Cuando el desarrollo ya está en un estado avanzado se pone on-line para que pueda ser consultado por un grupo de gente (cliente y desarrolladores) que evaluará o propondrá cambios y comenzarán las pruebas definitivas de tiempos de respuesta y de descarga. 

Además de los cambios inevitables que surgirán cuando el cliente vea como funcionan las páginas  hay que ir realizando pruebas para verificar que los tiempos de respuesta, retorno y de descarga son adecuados y controlar que el sistema soporta la cantidad de conexiones simultáneas que pueden haber.

Para realizar estas pruebas no hacen falta herramientas muy sofisticadas, con el ab (del ABuse Benchmarker, que viene con la distribución del Apache) podemos realizar la mayoría de las pruebas y obtener datos con una precisión suficiente (para más informacion, ver optimización del Apache y del  PHP).  

Pruebas de tiempos de respuesta y retorno

En esta prueba nos interesa saber cuanto tiempo tarda el servidor en generar la salida HTML. Podemos tener una aproximación bastante buena si medimos el tiempo total que tardan en bajarse las páginas en una red local (como el ancho de banda es elevado, el tiempo de descarga es prácticamente igual al tiempo de retorno). 

El siguiente ejemplo lo haremos sobre el servidor de Bulma y obtendremos el tiempo de retorno para 10 (-n 10) de conexiones en serie (-c 1). Es importante que las pruebas se hagan desde un ordenador distinto al servidor para obtener datos mas fiables.

$ /usr/sbin/ab  -c 1 -n 10 http://bulma.net/                         
...
Document Path:          /
Document Length:        28073 bytes

Concurrency Level:      1
Time taken for tests:   0.433 seconds
Complete requests:      10
Failed requests:        0
Total transferred:      284050 bytes
HTML transferred:       280730 bytes
Requests per second:    23.09
Transfer rate:          656.00 kb/s received

Connnection Times (ms)
              min   avg   max
Connect:        0     0     0
Processing:    42    42    43
Total:         42    42    43

Los resultados nos indican que el tamaño del HTML es de 28.073 bytes, y que el tiempo total para las 10 conexiones ha sido de 0.089 segundos, por lo que el tiempo de descarga de cada conexión es de 0.0433 segundos (si hacéis 1/0.0433 veréis que el valor es muy cercano a 23.09 indicado por el valor Requests per second).

Hay otro dato importante, Transfer rate nos indica el tráfico que ha sido capaz de generar el servidor en Kilobytes por segundo. Si llevamos eso a kilobits por segundo (multiplicar el valor por 10 para obtener una aproximación debido a los overhead del TCP/IP), veremos que el servidor (un Linux PIII, 500 Mhz, con Apache, PHP y MySQL)  es capaz de saturar una línea de ¡6 mbps!. En este caso no habrá problemas de saturación de CPU a menos que tengamos una línea de Internet con una capacidad superior. 

El segundo parámetro a investigar es la cantidad de conexiones simultáneas que puede soportar. La estimación de conexiones simultáneas es compleja e incierta, pero una buena aproximación sería estimar las conexiones promedio por día y multiplicar ese valor por 3 a 5 para obtener los picos que veríamos en el servidor.

Si calculamos que se servirán unas 200.000 páginas diarias (en España es un servidor bastante importante), tendremos que por segundo puede haber unas 2.3 conexiones (200.000/86.400 segundos día). Si multiplicamos ese valor por 5 nos queda unas 11.5 conexiones por segundo de pico.

Con las pruebas hechas anteriormente ya sabemos que el sistema soporta el doble (23.09), pero ahora haremos una mejor aproximación con mayor cantidad de conexiones simultáneas. Lo más sencillo para calcular la cantidad de conexiones simultáneas es usar el mismo valor de conexiones por segundo. 

En nuestro caso redondeamos a 12 la cantidad de conexiones simultáneas y subimos la cantidad de pruebas a 100. Así la prueba será:

$ /usr/sbin/ab  -c 12 -n 100 http://bulma.net/
...
Concurrency Level:      12
Time taken for tests:   4.450 seconds
Complete requests:      100
Failed requests:        0
Total transferred:      2886876 bytes
HTML transferred:       2852680 bytes
Requests per second:    22.47
Transfer rate:          648.74 kb/s received

Connnection Times (ms)
              min   avg   max
Connect:        0     0     6
Processing:    41   501  1973
Total:         41   501  1979

En este caso observamos que el sistema soporta perfectamente esas conexiones simultáneas sin casi degradación en los tiempos de retorno (0.0445 segundos).

Tiempos de descarga con conexiones diversas

La siguiente tabla los resultados de la ejecución de ab -c 1 -10 http://bulma.net/.

Tipo de conexión Tiempo de descarga (seg) Solicitudes por segundo Transferencia de datos (KB/seg)
LAN (100 mbps) 0.04 23.00 656.00
Internet WAN (2mbps) 0.36 2.82 79.88
Internet WAN (2 mbps) 0.39 2.57 72.74
Internet WAN (4 mbps) 0.49 2.07 58.65
ADSL compartida NAT (2 mbps) 0.57 1.74 49.33
ADSL (2 mbps) 0.62 1.60 45.33
ADSL (512 kbps) 0.85 1.17 33.18
ADSL (2 mbps)  0.90 1.11 31.56
Internet WAN (256 kbps) 0.91 1.10 31.55
ADSL (256 kbps) 1.29 0.78 21.95
ADSL (256 kbps) 1.43 0.71 20.16
RDSI (64 kbps, compresión PPP) 3.05 0.32 8.96
RDSI (64 kbps) 3.99 0.25 7.18
Modem (56 Kbps) 4.01 0.25 7.16
Modem (56 Kbps) 6.01 0.17 4.70
RDSI compartida NAT (64 kbps) 11.43 0.10 2.48

Tabla de tiempos de descarga para Bulma

Puede observarse que con la conexión más lenta, el tiempo total de descarga es de 11.43 segundos. Sin embargo, si analizáis el HTML generado por bulma.net, veréis que una vez leídos los primeros 1498 caracteres (cabeceras y METAs incluidos), el navegador ya puede mostrar el logo superior, por lo que el tiempo de de pre-visualización para el caso más lento queda en:

Tvis = (1498 Bytes/1024) / 2.48 KBs =~ 0.6 segundos

Hemos bajado el tiempo de respuesta "percibido" por el usuario de 11.43 a 0.6 segundos! sólo cambiando la estructura de las tablas (principalmente evitando una sólo tabla que engloba a todo el contenido de la página).

Si tomamos en cuenta el caso mayoritario hogareño (modem de 56kbps), los tiempos serán:

Tvis = (1498 Bytes/1024) / 4.70 KBs =~ 0.31 segundos

En este caso se logra una mejora de 6 a 0.31 segundos.

En ambos casos los tiempos son muy buenos, pero una página web, sobre todo si se trata de páginas genéricas, no debería superar los 2 segundos.

No confiar en la velocidad de la red local: la moraleja más importante de la tabla anterior, es que aunque la estructura de las páginas esté muy mal definida, el tiempo de visualización será ínfimo comparado con los mejores tiempos que se puedan obtener a través de Internet. En el caso de pruebas de red local, la página estará descargada en menos de la mitad de una décima de segundo (0.04 seg), que está muy lejos de los 6 segundos del caso "normal". No olvidar que hay que hacer pruebas y estimaciones no sólo en la red local donde se hace el desarrollo, sino con también con una navegador estándar y conexiones con modem. Las diferencias son enormes y pueden generar sorpresas desagradables.

Cálculo del ancho de banda necesario

Hasta ahora hemos hablado de temas de tiempos de respuesta y mejoras en el diseño de las tablas, pero queda pendiente un tema importante y a menudo olvidado, tanto por los clientes como por los desarrolladores, el ancho de banda necesario para un sitio web.

La forma más común (y empírica) para calcular los requerimientos máximos es tomar el promedio de tráfico diario y multiplicarlo por 3 (como mínimo) para obtener el tráfico máximo aproximado. En el ejemplo mencionamos 200.000 páginas por día (2.3 por segundo). Si el promedio de cada página es de unos 28.000 bytes (suelen ser un poco más debido a las imágenes que se descargan una vez), entonces el tráfico promedio y máximo serán:

Trafpromedio = 2.3 páginas/seg * 28.000 * 10 = 644 kbps

Trafmaximo = 2.3 páginas/seg * 28.000 * 3 * 10 = 1.932 kbps =~ 2 Mbps

Esto nos da una idea del tipo de línea a Internet (o ancho de banda) que tendremos que contratar para atender adecuadamente los picos de tráfico. Esto significa, en España, entre 600.000 y 1.500.000 de Ptas. mensuales (€ 3.600 y € 9.000 respectivamente). El coste del ancho de banda no es nada despreciable en España y Europa en general. Y mucha gente se olvida de hacer estas estimaciones a priori, y luego se encuentran que la calidad que ofrecen es muy mala por falta de previsión.

4. Producción

El sitio ya entra en producción y su acceso es público. Aunque esta parece la más sencilla de las fases, es la más cara y difícil de conseguir. Hay que actualizar los datos para que el sitio sea interesante y visitado y además asegurase que funcione las 24 horas del día, los 7 días de la semana (24x7).

Si habéis usado Linux, Apache, MySQL/Postgres y PHP/Perl oPython (LAMP), no tendréis ningún problema en sobrevivir muy tranquilamente a esta fase. Y quedarás como un gurú super-profesional ;-)

 

 

Ricardo Galli
gallir@uib.es

Todos los derechos reservados
Los copyright de los sistemas mencionados son propiedad de los respectivos dueños.


Paginas: <<Abreviatura Anterior  1  2 

Imprimir
Version para
imprimir

Imprimir
Version
PDF
Comentarios
1.  Re:Desarrollo Web Extremo (16/07/2001 19:12, #2022)
  Por: DaniRC (http://www.prosystems-ibiza.com/ibizaprogramacion)
En dos palabras IM PRESIONANTE :-D~ Este me lo imprimo y me lo leo con calma. Nota: sois demasiado ... me despisto un segundo y ya soportamos html en los comentarios!

 
2.  Re:Desarrollo Web Extremo (16/07/2001 19:15, #2023)
  Por: C2H5OH
Sólo he ojeado el artículo por encima (quizá estoy pecando de precipitado) pero me alegra ver que la ingeniería no sólo consiste en seguir metodologías eternas y aburridas (como METRICA) sino que también se obtienen buenos resultados con una organización más sencilla (incluso más productiva).

Este artículo me lo voy a imprimir para leerlo en la camita antes de dormir xDDDD.

Excelente artículo. Enhorabuena ;-)

 
3.  Re:Desarrollo Web Extremo (16/07/2001 19:56, #2024)
  Por: gallir (http://m3d.uib.es/~gallir/)
Errr, bueno, esto no es una metodología en el sentido formal, tal como la Metrica, pero no encontré otro título adecuado que ponerle. Lo que sí está claro es que si se parece a una metodología, es una "lightweight".

Pero se la podría extender y hacer algo muy parecido al extreme programming, pero exclusivo para web.

--ricardo


 
4.  Re: Desarrollo Web Extremo (16/07/2001 22:12, #2026)
  Por: gallir (http://m3d.uib.es/~gallir/)
Respuesta a Dani: siempre tan optimista...;-)

Gracias.


 
5.  Re: Desarrollo Web Extremo (17/07/2001 02:17, #2027)
  Por: ^SWITCH^
Si os interesa el tema os acosejo la lectura de Extreme Programming Explained cuyo autor es Kent Beck. En Amazon podéis encontrar más información sobre él. Muy didáctico explica cómo desarrolló un proyecto para una conocida compañía de automóviles norteamericana y, probablemente, lo que más me gustó fue el apartado que habla de cuándo no hay que aplicar Extreme Programming. No sé si en la biblioteca de la UIB estará, pero si no lo está, sería una buena idea que alguno de los profesores que leen o participan en BULMA lo encargara ;-) Un saludo. PD: No me ha funcionado la respuesta con HTML... así que lo cuelgo en texto como siempre...

 
6.  Re: Desarrollo Web Extremo (17/07/2001 09:32, #2028)
  Por: gallir (http://m3d.uib.es/~gallir/)
Ya lo pediré, ya... ;-)

Esa metodología (yo no soy una fan de ellas) es muy buena principalmente para proyectos pequeños y se ajusta bastante al modelo del Bazaar de Eric Raymond. Tienen cosas tan parecidas que creo debe haber influencias mutuas.

PS: para que te funcione el HTML, tienes que seleccionarlo en el Tipo.

--ricardo


 
7.  Re: Desarrollo Web Extremo (21/07/2001 12:54, #2063)
  Por: Joan R. Serra (http://www.terra.es/personal4/joanrserra/hp/index.htm)
Hola,

en primer lugar felicidades por esta asociación que teneis aqui en Mallorca, no sabia de su existencia, pero desde que os "descubrí" he seguido con gran atención varios de vuestros intenresantes artículos.

Creo que este articulo Ricardo, toca un tema muy interesante y muy novedoso, precisamente hace unos meses pregunté en madrakexpert.com, como se abordaba precisamente el desarrollo web en Linux, y si existian herramientas integradas que cubrieran todo el ciclo de desarrollo, hasta la fecha nadie ha contestado. Precisamente creo que este es uno de los puntos serios hoy en dia en Linux, tu articulo lo aborda directamente y da un camino muy bueno. El problema de fondo es como se consigue el RAD (Rapid App Development) (web me refiero) sobre Linux, al fin y al cabo cuando hacemos proyectos siempre el tiempo es reducido y cuanto mas rápido puedes ir más negocio tienes.

Saludos y enhorabuena por el articulo y discusión generada.

Joan R. Serra

 
8.  Re: Desarrollo Web Extremo (03/08/2001 21:07, #2310)
  Por: jorge (http://www.jorgeferrer.com)

Enhorabuena por el artículo, me ha parecido excelente.

Respecto a los comentarios sobre Extreme Programming sólo quería sumarme a las buenas críticas sobre él. Lo conozco desde hace unos 6 meses y cada vez me parece mejor. En mi empresa usamos RUP (Rational Unified Process) y yo ayude a implantarlo. La verdad es que no es malo, pero tiene mucha sobrecarga. Extreme Programming es muy ligero, ayuda a producir software de mayor calidad y hace la programación más divertida (eliminando en gran medida las partes más decepcionantes como las eternas búsquedas de errores).

Me gusta tu idea de adaptarlo al desarrollo web, así que si te decides a ello cuenta conmigo para echar una mano. De hecho llevo un tiempo pensando en hacer algo para promover el uso de Extreme Programming en el mundo del software libre, de forma que sólo presente beneficios para los programadores y no perjuicios (porque entonces pasarían de ello). ¿qué opinais del tema?

PD: Enhorabuena por vuestro web. Es excepcional :-)

 
9.  Re: Desarrollo Web Extremo (14/07/2004 11:20, #22357)
  Por: Oscar Nieto (http://www.ecs.human.ucv.ve)
El articulo es excelente, didactico y muy ùtil para desarrollar bajo un criterio sistemico un sitio web dinàmico felicitaciones

 
10.  Re: Desarrollo Web Extremo (03/08/2004 22:02, #22633)
  Por: Daly
Hola! me sumo a las felicitaciones, el artículo es didáctico e instruccional, de hecho soy asesora de adaptabilidad de metodología y esta me parece idónea para el desarrollo web...comparto muchos criterios y apoyo las etapas planteadas en ella.

 
11.  Re: Desarrollo Web Extremo (19/08/2004 20:27, #22888)
  Por: Jimmy Pazos (http://www.apisdev.com)
Hola: Auqnue veo que el artículo es de hace un buen tiempo, a mi me ha servido muchop ara aclarar algunas dudas y para confirmarme algunas formas de trabajo qeu ya venia implementando.

SAludos a esta comunidad.

jimmy pazos
lima peru

 
12.  Re: Desarrollo Web Extremo (17/12/2005 00:12, #30073)
  Por: Pablo Veintimilla
Hola interesante persipectiva, me gusta la idea de no restringir a las personas que participan en el desarrollo web a una herramienta en especifico, sin embargo desde mi punto de vista si ya se tiene una organización formal es mas facil dar capacitación a nuevos elementos que adaptarse todo el conjunto a su forma de elaborar su trabajo, esto reduce la productividad pues se complica a la hora de integrar cada componente si no se siguio un estandar de antemano, esto se facilita si usamos un entorno de desarrollo común, no preciso que todo el proceso se la haga en una sola herramienta, si no preciso que se deban usar herramientas ya probadas para cada caso y si alguna se ajusta en todas, pues esa debe ser la que se deba usar. Saludos pablo

 
13.  Re: Desarrollo Web Extremo (24/07/2006 02:12, #33907)
  Por: Anónimo
Está claro que no es una metodología, al menos en el sentido formal de la misma. Por lo tanto, creo que lo más conveniente sería definirlo como un PROCESO para el Desarrolo de Aplicaciones Web.

 
14.  Re: Desarrollo Web Extremo (30/09/2011 04:59, #53351)
  Por: Anonimo (http://www.monclergoods.net)
cheap moncler moncler sale Moncler Jacken salg moncler moncler

 
GRACIAS
Distribuciones Universal
Por el servidor
Dpto. de Matematicas e Informatica
Calificacion
***0
Vots: 74
Danos tu opinion:
**** Excelente
***0 Muy Bueno
**00 Bueno
*000 Regular
0000 Malo
Relacionados
. Optimizaciones al MySQL (y PHP) de Bulma
. Instrucciones y estilo de redacción de artículos
. El Corte Inglés, Windows NT4 y ASP, la alianza imperfecta
. Tutorial PHP4 Parte II: Base de Datos y MySQL
. Desarrollando en grupo con CVS
. Tutorial PHP4 - Parte I
. Introducción a PHP + MySql + Apache + phpMyAdmin
. Reducción del tiempo de respuesta de Bulma optimizando las consultas a Postgres
. PHP versus Perl, primera cata
. LAMP = Linux + Apache + MySQL + (PHP | Perl | Python)
SECCIONES
Noticia
Breve
Truco
Enlace
Participa
Proyecto
Articulo
Webbulma
Manoletada :-)
Seguridad
Modificado: 20/9/2012 02:09:07 | Tiempo Total: 0.034 segs | Kernel: Linux - i686 - 2.6.26-2-686 | Last boot: too much time ago!!
Powered by Apache    MySQL    PHP    Gimp