SlideShare una empresa de Scribd logo
1 de 31
Castellón - 5 y 6 de Julio 2010 – Universitat Jaume I organizan patrocinan colaboran Jornadas Symfony 5 y 6 de julio 2010 Universitat Jaume I, Castellón http://decharlas.uji.es/symfony
Caso práctico: Symfony en la gestión de un centro de computación avanzada César Suárez, www.ceta-ciemat.es Jornadas Symfony 5 y 6 de julio 2010 Universitat Jaume I, Castellón http://decharlas.uji.es/symfony
sesión patrocinada por www.ceta-ciemat.es Jornadas Symfony  http://decharlas.uji.es/symfony
¿Quiénes somos? Jornadas Symfony  http://decharlas.uji.es/symfony
¿Dónde estamos? Jornadas Symfony  http://decharlas.uji.es/symfony
¿Dónde estamos? Jornadas Symfony  http://decharlas.uji.es/symfony
¿Dónde estamos? Jornadas Symfony  http://decharlas.uji.es/symfony
¿Dónde estamos? Jornadas Symfony  http://decharlas.uji.es/symfony
¿Dónde estamos? Jornadas Symfony  http://decharlas.uji.es/symfony
Algunos datos de nuestro CPD… ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Jornadas Symfony  http://decharlas.uji.es/symfony
¿Qué queremos? ,[object Object],[object Object],[object Object],[object Object],Jornadas Symfony  http://decharlas.uji.es/symfony
¿Cómo lo queremos? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Jornadas Symfony  http://decharlas.uji.es/symfony
Unidad Arquitecturas de Aplicaciones ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Jornadas Symfony  http://decharlas.uji.es/symfony
Aplicaciones internas: CMDB ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Jornadas Symfony  http://decharlas.uji.es/symfony
¿Por qué symfony? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Jornadas Symfony  http://decharlas.uji.es/symfony
Primeras buenas vibraciones ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Jornadas Symfony  http://decharlas.uji.es/symfony
Más primeras buenas vibraciones ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Jornadas Symfony  http://decharlas.uji.es/symfony
Primeras malas vibraciones ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Jornadas Symfony  http://decharlas.uji.es/symfony
… pero al final… ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Jornadas Symfony  http://decharlas.uji.es/symfony
CMDB: Resultado Jornadas Symfony  http://decharlas.uji.es/symfony
CMDB: Resultado Jornadas Symfony  http://decharlas.uji.es/symfony
CMDB: Resultado Jornadas Symfony  http://decharlas.uji.es/symfony
CMDB: Resultado Jornadas Symfony  http://decharlas.uji.es/symfony
Más aplicaciones internas: UAWP ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Jornadas Symfony  http://decharlas.uji.es/symfony
Ventajas de no ser el primero. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Jornadas Symfony  http://decharlas.uji.es/symfony
… y al final… ,[object Object],[object Object],[object Object],[object Object],[object Object],Jornadas Symfony  http://decharlas.uji.es/symfony
UAWP: Resultado Jornadas Symfony  http://decharlas.uji.es/symfony
UAWP: Resultado Jornadas Symfony  http://decharlas.uji.es/symfony
Nuestro futuro con symfony ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Jornadas Symfony  http://decharlas.uji.es/symfony
Conclusiones ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Jornadas Symfony  http://decharlas.uji.es/symfony
[object Object],[object Object],[object Object],[object Object],Jornadas Symfony  http://decharlas.uji.es/symfony

Más contenido relacionado

Similar a Caso práctico II: symfony en la gestión de un centro de computación avanzada (ceta-ciemat.es) - decharlas

Symfony: construyendo aplicaciones web
Symfony: construyendo aplicaciones webSymfony: construyendo aplicaciones web
Symfony: construyendo aplicaciones websergiovier
 
Arquitectura y diseño de un entorno de desarrollo - decharlas
Arquitectura y diseño de un entorno de desarrollo - decharlasArquitectura y diseño de un entorno de desarrollo - decharlas
Arquitectura y diseño de un entorno de desarrollo - decharlasDecharlas
 
Presentacion Symfony2 ADWE Alicante
Presentacion Symfony2 ADWE AlicantePresentacion Symfony2 ADWE Alicante
Presentacion Symfony2 ADWE AlicanteADWE Team
 
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHP
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHPIntroducción a Silex. Aprendiendo a hacer las cosas bien en PHP
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHPDaniel Primo
 
Symfony2: Framework para PHP5
Symfony2: Framework para PHP5Symfony2: Framework para PHP5
Symfony2: Framework para PHP5Raul Fraile
 
Introducción a symfony - decharlas
Introducción a symfony - decharlasIntroducción a symfony - decharlas
Introducción a symfony - decharlasDecharlas
 
Plantillajornadasversion2 100708010347-phpapp01
Plantillajornadasversion2 100708010347-phpapp01Plantillajornadasversion2 100708010347-phpapp01
Plantillajornadasversion2 100708010347-phpapp01Alfonso Alba
 
Symfony2: Framework para PHP5
Symfony2: Framework para PHP5Symfony2: Framework para PHP5
Symfony2: Framework para PHP5Raul Fraile
 
Introducción a Symfony
Introducción a Symfony Introducción a Symfony
Introducción a Symfony Marcos Quesada
 
Caso práctico symfony: voota.es - decharlas
Caso práctico symfony: voota.es - decharlasCaso práctico symfony: voota.es - decharlas
Caso práctico symfony: voota.es - decharlasDecharlas
 
symfony admin generator - decharlas
symfony admin generator - decharlassymfony admin generator - decharlas
symfony admin generator - decharlasDecharlas
 
Symfony y Admin Generator
Symfony y Admin GeneratorSymfony y Admin Generator
Symfony y Admin GeneratorJavier López
 
Elementos sobre Symfony 2.1
Elementos sobre Symfony 2.1Elementos sobre Symfony 2.1
Elementos sobre Symfony 2.1Yaismel Miranda
 
Symfony2 Formacion y primeros pasos
Symfony2  Formacion y primeros pasosSymfony2  Formacion y primeros pasos
Symfony2 Formacion y primeros pasosSoni BM
 

Similar a Caso práctico II: symfony en la gestión de un centro de computación avanzada (ceta-ciemat.es) - decharlas (20)

Symfony 1 y 2
Symfony 1 y 2Symfony 1 y 2
Symfony 1 y 2
 
Symfony: construyendo aplicaciones web
Symfony: construyendo aplicaciones webSymfony: construyendo aplicaciones web
Symfony: construyendo aplicaciones web
 
Arquitectura y diseño de un entorno de desarrollo - decharlas
Arquitectura y diseño de un entorno de desarrollo - decharlasArquitectura y diseño de un entorno de desarrollo - decharlas
Arquitectura y diseño de un entorno de desarrollo - decharlas
 
Presentacion Symfony2 ADWE Alicante
Presentacion Symfony2 ADWE AlicantePresentacion Symfony2 ADWE Alicante
Presentacion Symfony2 ADWE Alicante
 
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHP
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHPIntroducción a Silex. Aprendiendo a hacer las cosas bien en PHP
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHP
 
CRUD básico con Symfony
CRUD básico con SymfonyCRUD básico con Symfony
CRUD básico con Symfony
 
Symfony2: Framework para PHP5
Symfony2: Framework para PHP5Symfony2: Framework para PHP5
Symfony2: Framework para PHP5
 
Introducción a symfony - decharlas
Introducción a symfony - decharlasIntroducción a symfony - decharlas
Introducción a symfony - decharlas
 
Plantillajornadasversion2 100708010347-phpapp01
Plantillajornadasversion2 100708010347-phpapp01Plantillajornadasversion2 100708010347-phpapp01
Plantillajornadasversion2 100708010347-phpapp01
 
Introduccion a symfony
Introduccion a symfonyIntroduccion a symfony
Introduccion a symfony
 
Symfony2: Framework para PHP5
Symfony2: Framework para PHP5Symfony2: Framework para PHP5
Symfony2: Framework para PHP5
 
Introducción a Symfony
Introducción a Symfony Introducción a Symfony
Introducción a Symfony
 
Symfony
SymfonySymfony
Symfony
 
Caso práctico symfony: voota.es - decharlas
Caso práctico symfony: voota.es - decharlasCaso práctico symfony: voota.es - decharlas
Caso práctico symfony: voota.es - decharlas
 
symfony admin generator - decharlas
symfony admin generator - decharlassymfony admin generator - decharlas
symfony admin generator - decharlas
 
Symfony y Admin Generator
Symfony y Admin GeneratorSymfony y Admin Generator
Symfony y Admin Generator
 
Elementos sobre Symfony 2.1
Elementos sobre Symfony 2.1Elementos sobre Symfony 2.1
Elementos sobre Symfony 2.1
 
Symfony2 Formacion y primeros pasos
Symfony2  Formacion y primeros pasosSymfony2  Formacion y primeros pasos
Symfony2 Formacion y primeros pasos
 
Introducción a Silex
Introducción a SilexIntroducción a Silex
Introducción a Silex
 
Symfony
SymfonySymfony
Symfony
 

Último

Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 

Último (20)

Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 

Caso práctico II: symfony en la gestión de un centro de computación avanzada (ceta-ciemat.es) - decharlas

Notas del editor

  1. Primero agradecer a la organización el esfuerzo que han hecho para cuadrar horarios y hacernos un hueco como ponentes. Como ha sido un dia largo, tampoco me quiero extender mucho. En nuestro caso vamos a explicar nuestras experiencia con el framework durante el desarrollo de diversas herramientas hechas en el CETA-CIEMAT. Pero antes de nada vamos a ponernos en contexto de la naturaleza del centro, para comprender el contexto de nuestros casos prácticos.
  2. Tantas siglas significan: CETA, Centro Extremeño de Tecnologías avanzadas, en cuyas características ahondaremos más adelante. Se trata de un centro de CIEMAT, Centro de Investigaciones Energéticas Medio Ambientales. Organismo autónomo al Ministerio de Educación y Ciencia, centrado en la investigación, especialmente en materias de energía y medio ambiente (como su propio nombre indica).
  3. El CETA-CIEMAT se encuentra en la ciudad de Trujillo, a unos 40 KM de Cáceres., como se puede ver en el mapa adjunto, dentro del conventual de San Francisco, un lugar bastante peculiar para albergar un centro centrado en la investigación.
  4. Y aquí se pueden ver algunas fotos.
  5. Y aquí se pueden ver algunas fotos.
  6. Y aquí se pueden ver algunas fotos.
  7. Y aquí se pueden ver algunas fotos.
  8. Datos curiosos de nuestro CPD.
  9. Cuáles son los objetivos del centro? En un principio nuestro centro actualmente está centrado en las redes GRID, ya sea a nivel de investigación, ofreciendo servicios o desarrollando sistemas que se beneficien de este tipos de redes. Ofrecemos toda la potencia de la GRID (para quien no lo sepa, a grandes rasgos y sin ser muy ortodoxos a nivel técnico), se basa en redes de varias computadoras que comparten sus capacidades de cálculo y almacenamiento para alcanzar potencias similares a los de una supercomputadora a un coste más bajo). No sólo ofrecemos acceso a las redes GRID en las que participamos, sino que investigamos las capacidades y uso de este tipo de tecnología a todos los niveles, no sólo a nivel científico que es el más habitual, y también desarrollamos aplicaciones que hacen uso de la potencia de la GRID. Como centro, estamos abiertos a todo tipo de colaboraciones con cualquier institución.
  10. Todos estos objetivos se fundamentan en varios valores (o principios), que vienen a conformar la filósofía del centro, teniendo en cuenta su naturaleza pública. El principal es buscar el interes social y el bienestar de los ciudadanos a través de las tecnologías de la información y la comunicación, y hacer estas lleguen a todo el tejido social. De nuevo recalcar que todo esto creemos que sólo es posible buscando colaboraciones y sinergias con otras instituciones, y añadir que creemos que la clave de todo esto pasa por el uso del software libre.
  11. Como decía, nos encargamos dentro del centro en la investigación, diseño y desarrollo de aplicaciones software. Principalmente usamos Java, y alguna de sus tecnologías relacionadas como JSF. Nuestros desarrollos se pueden dividir en 2 tipos: El primero aplicaciones relacionadas con las redes GRID, lo que incluye el porting de aplicaciones «normales» para que se beneficien de este tipo de redes. Nuestro proyecto principal es DRI (Digital Repositories Infraestructure), una plataforma de repositorios digitales, capaz de almacenar contenido digital en la GRID. Actualmente de este sistema se beneficia el Archivo Historico de Trujillo, o una colaboración con la universidad de Oporto para un repositorio de mamografías. De momento toda la plataforma está escrita en Java, y todos los clientes en Java. Al final, volveremos a esto brevemente. Aparte de los proyectos relacionados con la GRID, la unidad desarrolla aplicaciones internas para la unidad, con la idea de ayudar al resto de unidad del diagrama anterior. Entre estas aplicaciones, dos son las que nos ocupan, y que están centradas en la administración desde nuestro centro como centro de computación avanzada. Dichas aplicaciones las comentaremos a continuación, las razones que nos llevaron a usar Symfony, y que problemas y benificios ha conllevado su uso.
  12. Nuestra aplicación se trata de un CMDB, una aplicación para llevar el inventariado de máquinas del centro, y la generación de ficheros de configuración. Como somos muy originales, nuestra herramienta se llama «cmdb» a secas. En centros con tantos elementos a la red, no es mantenible generar «a mano» los ficheros de configuración DNS o DHCP. Por ejemplo, la última vez que miré la herramienta, habría 783 elementos, entre máquinas físicas, virtuales, elementos de red… Nuestra herramienta a parte de generar los ficheros de configuración, es capaz de mandar estos a los servidores correspondientes y reiniciar los servicios. De tal forma, con un par de clicks, el administrador puede poner en orden la estructura de red del centro. Anteriormente existía un CMDB programado en Ruby, pero que se había quedado corto de funcionalidad. Además la gente de administración de sistemas no estaban nada contentos con Ruby, y querían algo sencillo, fácil de desplegar y mantener. Básicamente querían algo desde cero, y MUY importante, que mantuviese todos los datos coherentes. La anterior herramienta no tenía ningun tipo de validador en los formularios de añadir o editar, y eso provocaba que gracias a fallos humanos se almacenasen datos problemáticos: Ips mal definidas, nombres de host repetidos, valores incoherentes… Mucho tiempo de desarrollo de la herramienta se ha pasado añadiendo todo tipo de validadores (luego veremos algunos ejemplos), e incluso facilidades incrustadas en ellos, como buscadores de Ips libres dentro de una VLAN, o de MACs libres para máquinas virtuales. Este proyecto supuso nuestra primera experiencia com symfony, ya que ninguno teníamos experiencia previa en este framework (incluso en ningun framework web similar).
  13. Teniendo en cuenta, todo esto y algunas razones que iremos explicando, hubo una serie de datos que nos hicieron plantearnos el uso del framework. Primero necesitabamos algo fácil y sencillo de mantener. Nos dijeron que querían algo sencillito, que funcionase en un servidor con un apache, php y mysql, porque a ellos les resultaba más familiar en el caso de migrar la herramienta de máquina (por ejemplo). Obviamente teníamos la necesidad de tener algo que nos ayudase a la hora de generar formularios, y más concretamente sus validadores, y a priori, el de symfony nos daba esa ayuda, que además nos dotaba gran flexibilidad de personalizar nuestros formularios a nuestro gusto. Más orientados a la hora de desarrollar, están las 3 últimas causas. Primero que esté basado en el patrón de diseño modelo-vista-controlador, que separa la parte del código de datos, la de negocio, y las vistas, lo que nos aseguraba como resultado un sistema sostenible y extensible, cosa muy importante, ya que una de las razones principales de desechar el anterior CMDB fue esta. Otra cosa muy importante, y que nos animó a usar Symfony es la documentación que tenía, y que además era alabada en todos los análisis que leímos. Y por supuesto que nos ofreciese ayuda en otros aspectos del sistema, como un framework para acceder a los datos de nuestra base de dataos facilmente como Propel, o un framework Javascript como Protottype. Con todos estos datos, y un poco a lo loco, comenzamos nuestra andadura con symfony.
  14. Bueno, en los primeros ciclos de desarrollo ya apreciamos que en algunas cosas no nos habíamos confundido. Efectivamente era fácil de instalar, desplegar y configurar. Con symfony project:freeze (creo que ya obsoleto, no?), la propia herramienta convertía nuestra «carpeta» de desarrollo en un paquete listo para desplegar con un simple copia-pega. Incluso, en el centro tenemos como parte de nuestra metodología el uso de «ant» (una herramienta de automatización de tareas hecha en java, y por tanto, multiplataforma), teníamos programados rapidamente nuestras rutinas con las que podemos preparar nuestro proyecto y desplegarlo con un solo comando. Tambien vimos que a la hora de configurar nuestra herramienta, todos los ficheros de configuración están en formato YAML, facilmente interpetables hasta por gente sin conocimientos técnicos de ningun tipo. En dos ficheros muy localizados se puede concentrar casi toda la configuración de nuestra herramienta, tanto la config de la bd, como la propia de la herramienta. La documentación, al final resultó excelente, y muy abundante. Libros de primeros pasos, de referencia, tutoriales, … Todo sabiendo conjugar los conceptos teoricos como partes prácticas (DESTACAR JOBEET). Y también disponible en multitud de idiomas, incluido una buena traducción en español. Todo online o en PDF bien maquetado para impresión. Y casi lo más importante: gratis. A destacar su comunidad tan activa, y que la documentación está siempre actualizada, sobretodo cuando la gente de symfony tiene a bien lanzar nuevos libros que enriqucen lo ya existente. Y otra cosa que pudimos confirmar de nuestras suposiciones iniciales, es que el framework de formularios era verdaderamente potente. Altamente personalizable, tanto en logica como en vista. El sistema de validadores es totalmente personalizable, dando una flexibilidad casi ilimitada a la hora de validar nuestros validadores.
  15. Mas cosas que nos gustaron. Sobretodo a la hora de generar código de buena calidad. Primero su estructura de directorios. SF se basa mucho en una compleja, y amplia estructura de directorios a la hora de estructurar su código. Ahora buen, una vez que te acostumbras, eres capaz de llegar a cualquier parte de tu codigo en un periquete, con la ventaja de estar todo MUY organizado. Se acabo lo de no acordarse donde estaba tal clase, o tal librería. Facilidad a la hora de generar tests unitarios y funcionales para asegurar el funcionamiento con la herramienta, de manera sencilla. Auto cargado de librerías, que funciona genial. Se acabaron las aplicaciones rotas porque se olvido incluir una librería. Helpers (pequeñas funciones) creados para ayudarnos a hacer las tareas más tediosas más fáciles, como generar links a otras partes de la herramienta, meter una imagen en una vista, hacer llamadas AJAX sencillas, crear una paginación, … Sistema de generación de la parte de la vista muy modulable, de tal forma que impide que haya que programar una y otra vez los mismos elementos de la interfaz. Se ahorra tiempo, fallos, y código repetido. Luego la barra de depuración que tiene, de tal manera que siempre que la quedemos activadas, desde el mismo navegador, podamos ver logs, variables de sistema, mediciones de tiempo, consultas lanzadas contra la BD, … Luego también es un framework muy anclado a las nuevas características que trajo PHP5. Ya no es que te deje usarlo, es que lo aprovecha al máximo en su core.
  16. Pero no todo es bueno. Symfony tiene una curva de aprendizaje costosa. Propone muchos conceptos nuevos para aquel que nunca ha usado un framework web mvc. Aunque la docuemtanción es buena, al ser tan extensa, y variada a veces es difícil encontrar algunos detalles. Es algo que hay que tener en cuenta. Con Symfony cuesta arrancar, por mucho PHP que sepas, PHP es sólo el medio, toda la filosfía de desarrollo que hay detrás es muy distinta si no se tiene experiencia previa. Vale, el framework de formularios es potente. Es flexible. Puedes hacer lo que quieras con él. Pero eso tiene un precio, y es que es complicado. Puede parecer en la primera toma de contacto fácil, poruqe lo básico es muy fácil, pero en cuanto quieres complicar algo las cosas los problemas empiezan a suceder. Actualmente, y a pesar de la experiencia (que no me considero ningun experto), todavía me quedo a veces atascado para hacer alguna cosa con los formularios y/o validadores. Que use versiones tan avanzadas de PHP no siempre es bueno, ya que por temas de administración, a veces no se puede tener la versión de PHP que nos gustaría en los entornos de desarrollo, test o producción. Por ello, tuvimos que empezar a usar sf1.1, aunque ya estuviese el 1.2 disponible. En el momento de empezar a desarrollar, tampoco existía ningun entorno de desarrollo medianamente competente que soportase a symfony, lo que significa a renunciar a muchas facilidades que frameworks modernos como netbeans o eclipse dan.
  17. Pero bueno, al final, tras un tiempo de desarrollo, creemos que las ventajas superaron a las desventajas. El código resultable actual es sólido, está bien organizo, es sencillo y por tanto es mantenible. Además, según está organizado symfony (patrón MVC), es muy fácil refactorizar partes sin afectar al resto. El framework de formularios, a pesar de las peleas que hemos tenido con él , creo que hemos conseguido domarlo, y actualmente hemos creado formularios con validadores bastante complejos, sólidos, y bastante desacoplados, y por tanto reutilizables. Incluso la estricta estructura de directorios no resultó ser tan inflexible y resultó ser personalizable, lo cuál fue muy util para adecuar nuestros proyectos a la estructura que nuestros proyectos software tienen en los repositorios SVN. En definitva, 6 releases puestas en produción con pocos sobresaltos, que han desembocado en una herramienta, estable, ampliable y modificable.