HMSSC

543 views

Published on

Help and Management Software System for International Research Congresses

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
543
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

HMSSC

  1. 1. SISTEMA DE GESTIÓN Y AYUDA A LA ORGANIZACIÓN DE CONGRESOS DE INVESTIGACIÓN (S.G.A.O.C.I.) PFC E.T.S.I.Telecomunicación . (Universidad de Málaga) Proyectante: Juan Antonio Martin Checa Director: Rafael Asenjo Plaza, Ph.D.
  2. 2. Índice de contenidos <ul><li>1. Introducción </li></ul><ul><li>2. Estado del arte en aps. web </li></ul><ul><li>3. Manual de usuario (demo) </li></ul><ul><li>4. Detalles de implementación </li></ul><ul><li>5. Conclusiones </li></ul>Sistema de Gestión y Ayuda a la Organización de Congresos de Investigación (SGAOCI)
  3. 3. 1. Introducción <ul><li>1.1. Motivación </li></ul><ul><li>1.2. E ntorno y objetivos </li></ul>1. Introducción 2. Estado del Arte 3. Manual de Usuario 4. Implementación 5. Conclusiones Sistema de Gestión y Ayuda a la Organización de Congresos de Investigación (SGAOCI)
  4. 4. 1.1. Motivación <ul><li>Analizar , diseñar , implementar , testear y documentar una nueva aplicación web para la gestión eficaz de congresos internacionales de investigación (CI) con especial énfasis en flexibilidad , facilidad de uso , mantenimiento y seguridad . </li></ul><ul><li>Aps. analizadas: Confman , Cyberchair y CRP. </li></ul><ul><li>Deficiencias: comentarios revs, registro conferencia, workshops, tipos de envío, rigidez (ordenar listas, acceso a info, etc.), aspecto visual, etc. </li></ul>1. Introducción 2. Estado del Arte 3. Manual de Usuario 4. Implementación 5. Conclusiones Sistema de Gestión y Ayuda a la Organización de Congresos de Investigación (SGAOCI)
  5. 5. 1.2. Entorno y objetivos 1. Introducción 2. Estado del Arte 3. Manual de Usuario 4. Implementación 5. Conclusiones Sistema de Gestión y Ayuda a la Organización de Congresos de Investigación (SGAOCI)
  6. 6. 2. Estado del arte <ul><li>2.1. Apache </li></ul><ul><li>2.2. HTML / XHTML </li></ul><ul><li>2.3. XML </li></ul><ul><li>2.4. PHP </li></ul>1. Introducción 2. Estado del Arte 3. Manual de Usuario 4. Implementación 5. Conclusiones Sistema de Gestión y Ayuda a la Organización de Congresos de Investigación (SGAOCI)
  7. 7. 2.1. Apache 1. Introducción 2. Estado del Arte 3. Manual de Usuario 4. Implementación 5. Conclusiones Sistema de Gestión y Ayuda a la Organización de Congresos de Investigación (SGAOCI) <ul><ul><li>denominación : servidor HTTP Apache (‘ Apache’ ). </li></ul></ul><ul><ul><li>historia: papel clave en el crecimiento inicial de la </li></ul></ul><ul><ul><li> World Wide Web . </li></ul></ul><ul><ul><li>desarrolladores: Apache Software Foundation </li></ul></ul><ul><ul><li>(‘licencia Apache’); open source. </li></ul></ul><ul><ul><li>S.O.s : Unix , Linux , Solaris , Mac OS X , Windows , </li></ul></ul><ul><ul><li>OS/2 , etc. </li></ul></ul><ul><ul><li>características: sirve contenido estático/dinámico, </li></ul></ul><ul><ul><li> seguridad y fiabilidad. </li></ul></ul><ul><ul><li>arquitectura: Módulos de MultiProcessing (MPM). </li></ul></ul><ul><ul><li> hebras. </li></ul></ul><ul><ul><ul><ul><ul><li>mejor adaptación a cada infraestructura particular. </li></ul></ul></ul></ul></ul><ul><ul><li>rendimiento: comparable a otros servidores web de &quot;alto rendimiento&quot;. </li></ul></ul>
  8. 8. 2.2. HTML / XHTML 1. Introducción 2. Estado del Arte 3. Manual de Usuario 4. Implementación 5. Conclusiones Sistema de Gestión y Ayuda a la Organización de Congresos de Investigación (SGAOCI) <ul><ul><li>denominación : </li></ul></ul><ul><ul><li> - SGML (Standard Generalized Markup Language) </li></ul></ul><ul><ul><li> - HTML (HyperText Markup Language) </li></ul></ul><ul><ul><li> - XML (eXtensible Markup Language) </li></ul></ul><ul><ul><li> - XHTML (eXtensible HyperText Markup Language) </li></ul></ul><ul><ul><li>evolución : </li></ul></ul><ul><ul><li> - SGML: especificación muy compleja. </li></ul></ul><ul><ul><li> - XML: formato sencillo de datos. </li></ul></ul><ul><ul><li>HTML Vs XHTML: </li></ul></ul><ul><ul><li> - XHTML: docs “ bien formados ” </li></ul></ul><ul><ul><li> según XML. </li></ul></ul><ul><ul><li>DTD (DOCTYPE) : </li></ul></ul><ul><ul><li> - Declaración de Tipo de Documento. </li></ul></ul><ul><ul><li>elemento raíz (XHTML): </li></ul></ul><ul><ul><li>ej: <html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; version=&quot;XHTML </li></ul></ul><ul><ul><li>1.2&quot; xml:lang=&quot;en&quot;> </li></ul></ul>
  9. 9. 2.3. XML 1. Introducción 2. Estado del Arte 3. Manual de Usuario 4. Implementación 5. Conclusiones Sistema de Gestión y Ayuda a la Organización de Congresos de Investigación (SGAOCI) <ul><ul><li>denominación : XML (Extensible Markup Language). </li></ul></ul><ul><ul><li>definición: normas para la codificación de docs en formato electrónico. </li></ul></ul><ul><ul><li>especificación: XML 1.0 (W3C); simplicidad, generalidad, y facilidad de uso. </li></ul></ul><ul><ul><li>utilidad: documentos, estructuras de datos y definición de lenguajes. </li></ul></ul><ul><ul><li>caracteres Unicode : doc XML = cadena de caracteres ; (aprox. Unicode ). </li></ul></ul><ul><ul><li>procesador y aplicación: XML parser (procesador XML)  aplicación </li></ul></ul><ul><ul><li> (software que procesa un documento XML ). </li></ul></ul><ul><ul><li>marcado y contenido: doc XML = markup + content </li></ul></ul><ul><ul><li>etiquetas (tags): elemento de marcado, comienza con &quot;<&quot; y termina con &quot;>&quot;. </li></ul></ul><ul><ul><li>start-tags (ej. <section> ), end-tags (ej. </section> ), empty-element tags (ej. <line-break/> ). </li></ul></ul><ul><ul><li>elemento: componente lógico . </li></ul></ul><ul><ul><li>ej. <greeting> Hello, World! </greeting> </li></ul></ul><ul><ul><li>atributo: par nombre/valor. </li></ul></ul><ul><ul><li>declaración XML : </li></ul></ul><ul><ul><li>ej. <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?> </li></ul></ul>
  10. 10. 2.4. PHP 1. Introducción 2. Estado del Arte 3. Manual de Usuario 4. Implementación 5. Conclusiones Sistema de Gestión y Ayuda a la Organización de Congresos de Investigación (SGAOCI) <ul><ul><li>denominación : PHP ( P HP H ypertext P reprocessor). </li></ul></ul><ul><ul><li>definición: lenguaje de secuencias de comandos ( scripts ), propósito gral. </li></ul></ul><ul><ul><li>utilidad: generación de páginas web dinámicas. </li></ul></ul><ul><ul><li>soporte: funciona en la mayoría de servidores web, S.O.s y SGBDs. </li></ul></ul><ul><ul><li>características: open source ( licencia PHP); PHP Group; extensible. </li></ul></ul><ul><ul><li>uso: + 20 millones de sitios web. </li></ul></ul><ul><ul><li> + 1 millón de servidores web. </li></ul></ul><ul><ul><li>tendencia: </li></ul></ul><ul><ul><ul><li>RAD (desarrollo rápido aps). </li></ul></ul></ul><ul><ul><ul><li>LAMP y WAMP . </li></ul></ul></ul><ul><ul><li>programación: </li></ul></ul><ul><ul><ul><li>sintaxis: estilo C (C++, Java ...) </li></ul></ul></ul><ul><ul><ul><li>funciones: +100s + extensiones. </li></ul></ul></ul><ul><ul><ul><li>optimización: formato binario, </li></ul></ul></ul><ul><ul><ul><li>optimizadores ( eAccelerator ), </li></ul></ul></ul><ul><ul><li>cachés Opcode (PHP-6). </li></ul></ul>
  11. 11. 3. Manual de usuario (demo) <ul><li>3.1. Autores </li></ul><ul><li>3.2. Revisores </li></ul><ul><li>3.3. PC Chair </li></ul><ul><li>3.4. Administrador </li></ul><ul><li>3.5. Participantes </li></ul>1. Introducción 2. Estado del Arte 3. Manual de Usuario 4. Implementación 5. Conclusiones Sistema de Gestión y Ayuda a la Organización de Congresos de Investigación (SGAOCI)
  12. 12. 4. Detalles de implementación <ul><li>4.1. Base de datos </li></ul><ul><li>4.2. Arquitectura </li></ul><ul><li>4.3. PHP </li></ul><ul><li>4.4. XML </li></ul>1. Introducción 2. Estado del Arte 3. Manual de Usuario 4. Implementación 5. Conclusiones Sistema de Gestión y Ayuda a la Organización de Congresos de Investigación (SGAOCI) ( Software Engineering )
  13. 13. 4.1. Base de datos (1/2) 1. Introducción 2. Estado del Arte 3. Manual de Usuario 4. Implementación 5. Conclusiones Sistema de Gestión y Ayuda a la Organización de Congresos de Investigación (SGAOCI) <ul><ul><ul><li>Estructura : </li></ul></ul></ul><ul><ul><ul><ul><li>tablas (ficheros XML ). Analogía con las RDBs. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>relaciones: vínculos entre tablas. </li></ul></ul></ul></ul><ul><ul><ul><li>Importancia : </li></ul></ul></ul><ul><ul><ul><ul><li>buen diseño = buen comienzo </li></ul></ul></ul></ul><ul><ul><ul><ul><li>interdependencias scripts PHP – ficheros XML: </li></ul></ul></ul></ul><ul><ul><ul><ul><li>dificultan futuras modificaciones; idea: ‘ the sooner, the better’ . </li></ul></ul></ul></ul><ul><ul><ul><li>Síntomas de un mal diseño : </li></ul></ul></ul><ul><ul><ul><ul><li>carencias de información: no considerar info necesaria. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>redundancias: duplicidad de información  integridad? </li></ul></ul></ul></ul><ul><ul><ul><ul><li>poca previsión de futuro: empty-fields (‘por si acaso’). </li></ul></ul></ul></ul>
  14. 14. 4.1. Base de datos (2/2) 1. Introducción 2. Estado del Arte 3. Manual de Usuario 4. Implementación 5. Conclusiones Sistema de Gestión y Ayuda a la Organización de Congresos de Investigación (SGAOCI)
  15. 15. 4.2. Arquitectura del sistema (1/2) 1. Introducción 2. Estado del Arte 3. Manual de Usuario 4. Implementación 5. Conclusiones Sistema de Gestión y Ayuda a la Organización de Congresos de Investigación (SGAOCI) <ul><ul><li>arquitectura : client-server </li></ul></ul><ul><ul><li>servidor: </li></ul></ul><ul><ul><ul><li>servidor web (Apache) </li></ul></ul></ul><ul><ul><ul><li>php </li></ul></ul></ul><ul><ul><ul><li>xml </li></ul></ul></ul><ul><ul><ul><li>xpath/dom </li></ul></ul></ul><ul><ul><ul><li>scripts php </li></ul></ul></ul><ul><ul><ul><li>bd (archivos xml) </li></ul></ul></ul><ul><ul><ul><li>servidor y cliente smtp </li></ul></ul></ul><ul><ul><li>cliente: </li></ul></ul><ul><ul><ul><li>cliente web (Firefox, IE, etc.) </li></ul></ul></ul><ul><ul><ul><li>servidor y cliente smtp </li></ul></ul></ul><ul><ul><ul><li>plug-ins (Flash, PDF, etc.) </li></ul></ul></ul>
  16. 16. 4.2. Arquitectura del sistema (2/2) 1. Introducción 2. Estado del Arte 3. Manual de Usuario 4. Implementación 5. Conclusiones Sistema de Gestión y Ayuda a la Organización de Congresos de Investigación (SGAOCI) <ul><ul><li>sitios web estáticos Vs dinámicos </li></ul></ul><ul><ul><ul><li>estáticos : mantenibilidad, flexibilidad, redundancias?, integridad?, sencillez </li></ul></ul></ul><ul><ul><ul><li>dinámicos : mantenibilidad, flexibilidad, no redundancias, integridad, complejos </li></ul></ul></ul>
  17. 17. 4.3. PHP (1/9) 1. Introducción 2. Estado del Arte 3. Manual de Usuario 4. Implementación 5. Conclusiones Sistema de Gestión y Ayuda a la Organización de Congresos de Investigación (SGAOCI) <ul><ul><li>esquema de navegabilidad </li></ul></ul><ul><ul><ul><li>elementos : </li></ul></ul></ul><ul><ul><ul><ul><li>páginas. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>relaciones (vínculos). </li></ul></ul></ul></ul><ul><ul><ul><li>importancia : </li></ul></ul></ul><ul><ul><ul><ul><li>‘ conjunto de planos’ de nuestra aplicación web. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>indica el camino a seguir para llegar desde un lugar </li></ul></ul></ul></ul><ul><ul><ul><ul><li> ( página actual ) hasta otro distinto ( página destino ). </li></ul></ul></ul></ul><ul><ul><ul><li>ESQUEMA_NAV-V2.bmp </li></ul></ul></ul>
  18. 18. 4.3. PHP (2/9) 1. Introducción 2. Estado del Arte 3. Manual de Usuario 4. Implementación 5. Conclusiones Sistema de Gestión y Ayuda a la Organización de Congresos de Investigación (SGAOCI) <ul><ul><li>páginas de la conferencia & páginas de gestión </li></ul></ul><ul><ul><ul><li>estructura : cabecera, cuerpo y pie de página. </li></ul></ul></ul>
  19. 19. 4.3. PHP (3/9) 1. Introducción 2. Estado del Arte 3. Manual de Usuario 4. Implementación 5. Conclusiones Sistema de Gestión y Ayuda a la Organización de Congresos de Investigación (SGAOCI) <ul><ul><li>menú de las páginas de la conferencia </li></ul></ul><ul><ul><ul><li>análisis de sitios web : AINA (International Conference A dvance I nformation N etworking & A pplications) </li></ul></ul></ul><ul><ul><ul><li> - IEEE, y otros. </li></ul></ul></ul><ul><ul><ul><li>objetivos del menú : </li></ul></ul></ul><ul><ul><ul><ul><li>intuitivo </li></ul></ul></ul></ul><ul><ul><ul><ul><li>acceso rápido a info. </li></ul></ul></ul></ul><ul><ul><ul><li>directorio: “/Menu”. </li></ul></ul></ul><ul><ul><ul><ul><li>menu_new.html </li></ul></ul></ul></ul><ul><ul><ul><ul><li>menu.css </li></ul></ul></ul></ul><ul><ul><ul><ul><li>archivos .GIF </li></ul></ul></ul></ul><ul><ul><ul><li>menu_new.html: </li></ul></ul></ul><ul><ul><ul><li>definición de la estructura del menú . </li></ul></ul></ul><ul><ul><ul><li>menu.css: </li></ul></ul></ul><ul><ul><ul><li>declaraciones de las clases de las </li></ul></ul></ul><ul><ul><ul><li>opciones del menú. </li></ul></ul></ul><ul><ul><ul><li>menu_new.html menu.css </li></ul></ul></ul><ul> <li class=&quot; Home &quot;><a href=&quot; ConferencePage-Home.php &quot;> Home </a></li> <ul> .menu UL LI.Home { BACKGROUND: url(Home.gif) }
  20. 20. 4.3. PHP (4/9) 1. Introducción 2. Estado del Arte 3. Manual de Usuario 4. Implementación 5. Conclusiones Sistema de Gestión y Ayuda a la Organización de Congresos de Investigación (SGAOCI) <ul><ul><li>estructura de los scripts </li></ul></ul><ul><ul><ul><li>páginas de la conferencia: ’muestrarios’ de información, baja interacción con usuario, </li></ul></ul></ul><ul><ul><ul><li> estructura sencilla, no formularios, no escritura BD (en gral.) </li></ul></ul></ul><ul><ul><ul><li>páginas de gestión: mucho más complejas (validación/procesamiento de datos). </li></ul></ul></ul><ul><ul><ul><li> necesidad: homogeneizar estructura scripts. </li></ul></ul></ul>
  21. 21. 4.3. PHP (5/9) 1. Introducción 2. Estado del Arte 3. Manual de Usuario 4. Implementación 5. Conclusiones Sistema de Gestión y Ayuda a la Organización de Congresos de Investigación (SGAOCI) <ul><ul><li>gestión de variables de sesión </li></ul></ul><ul><ul><ul><li>definición : variable normal que perdura durante toda la sesión ( login - logout ). </li></ul></ul></ul><ul><ul><ul><li>necesidad : surge de manera natural (paso de un valor entre scripts). </li></ul></ul></ul><ul><ul><ul><li>características : autoglobales ( globales por defecto)  uso adecuado! </li></ul></ul></ul><ul><ul><ul><li>zona de gestión de variables de sesión : </li></ul></ul></ul><ul><ul><ul><li>proceso : se crean, varían?, se destruyen (ej. log_out.php ) </li></ul></ul></ul><ul><ul><ul><li>monitorización : php/sessions </li></ul></ul></ul>//----------------------------------------------------------------- SESSION ------------------------------------------------------------------- session_start(); $_SESSION['script']=&quot;admin_participants_edit_delete.php&quot;; // RESET SESSION VARIABLES: (EVERYTIME SCRIPT RELOADED)  BACK TO INITIAL STATUS unset($_SESSION['admin_participant_id']); sess_0820c57c6b5496a13c1706206bb7f71b script|s:15:&quot;@ADMON-PAGE.php&quot;;login|s:25:&quot;jam7777777@telefonica.net&quot;;password|s:5:&quot;ADMIN&quot;; is_admon|i:1;simple_list|i:0; if ($_POST['_submit_check']) { $_SESSION['select_sort_papers_by_field'] = $_POST['select_sort_papers_by_field']; } show_form($_SESSION['select_sort_papers_by_field']);
  22. 22. 4.3. PHP (6/9) 1. Introducción 2. Estado del Arte 3. Manual de Usuario 4. Implementación 5. Conclusiones Sistema de Gestión y Ayuda a la Organización de Congresos de Investigación (SGAOCI) <ul><ul><li>la estructura show_form() , validate_form() , process_form() </li></ul></ul><ul><ul><ul><li>objetivo : independizar tareas  funciones. </li></ul></ul></ul><ul><ul><ul><li>funciones : </li></ul></ul></ul><ul><ul><ul><ul><li>show_form(): muestra. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>validate_form(): valida. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>process_form(): procesa. </li></ul></ul></ul></ul>if ($_POST['_submit_check']) { // If button pressed $defaults=$_POST; // Create the array with the default values to show if ($form_errors = validate_form()) { // In case of error(s), inform on the screen. show_form(); } else { // If there is no error in the form -> process form. process_form(); } } else { // If no button pressed, show form (wait until show_form(); // any button pressed...) } if (strlen(trim($_POST['first_name']))==0) { $errors[] = &quot;The <i>&quot;First Name&quot;</i> is required.&quot;; } if ($_POST['phone1'] != strval(intval($_POST['phone1'] ))) { $errors[] = &quot;Please, enter a valid <i>&quot;Phone-1&quot;</i>.&quot;; } if (! preg_match('/^[^@s]+@([-a-z0-9]+.)+[a-z]{2,}$/i',$_POST['email'])) { $errors[] = &quot;Please, enter a valid <i>&quot;Email&quot;</i>.&quot;; } script principal (ejemplo básico) : ejemplos de recetas validación:
  23. 23. 4.3. PHP (7/9) 1. Introducción 2. Estado del Arte 3. Manual de Usuario 4. Implementación 5. Conclusiones Sistema de Gestión y Ayuda a la Organización de Congresos de Investigación (SGAOCI) <ul><ul><li>enviando emails </li></ul></ul><ul><ul><ul><li>punto de partida : PHP incluye la función nativa mail()  limitada. </li></ul></ul></ul><ul><ul><ul><li>nuestro caso : función send_mail() basada en la clase PHPMailer (Internet). </li></ul></ul></ul><ul><ul><ul><li>servidor SMTP: miniRelay (Internet)  arrancado y latente! </li></ul></ul></ul>Interacciones entre el intérprete PHP y los demás elementos del sistema: Envío de email: intérprete PHP-cliente SMTP-servidor SMTP: function send_email ($FromName, $From, $Address, $CC, $Subject, $body_file, $Attachment) { $mail = new phpMailer(); $mail->IsSMTP(); $mail->Host = &quot;localhost&quot;; $mail->FromName = $FromName; $mail->From = $From; $mail->AddAddress(&quot;$Address&quot;); //$mail->AddCC(&quot;jamc7777777@gmail.com&quot;,&quot;Juan&quot;); $body = $mail->getFile(&quot;$body_file&quot;); $body = eregi_replace(&quot;[]&quot;,'',$body); $mail->AltBody = &quot;To view the message, please use an HTML compatible email viewer!&quot;; $mail->WordWrap = 50; $mail->MsgHTML($body); $mail->IsHTML(true); $mail->AddAttachment(&quot;$Attachment&quot;); if(!$mail->Send()) { return false;} else { return true; } }
  24. 24. 4.3. PHP (8/9) 1. Introducción 2. Estado del Arte 3. Manual de Usuario 4. Implementación 5. Conclusiones Sistema de Gestión y Ayuda a la Organización de Congresos de Investigación (SGAOCI) <ul><ul><li>escaneo de formulario activo y </li></ul></ul><ul><ul><li>botón pulsado </li></ul></ul><ul><ul><ul><li>objetivo : identificar formulario/botón activo. </li></ul></ul></ul>$button_pushed=false; for ($j = 0; $j < $num_papers; $j++) { $name_check1 = &quot;_submit_check&quot;.&quot;_&quot;.&quot;view&quot;.&quot;_&quot;.&quot;$paper_ids[$j]&quot;; if ($_POST[&quot; $name_check1 &quot;]) { $_SESSION['admin_paper_id'] = (string)$paper_ids[$j]; header('Location: admin_see_paper.php'); $button_pushed = true; } } if (( $button_pushed==false )&&( $button_pushed2==false )) { if ($_POST[' _submit_check' ]) { // si se pulsó botón &quot;Sort&quot;  imprime lista ordenada por campo seleccionado $_SESSION['select_sort_papers_by_field'] = $_POST['select_sort_papers_by_field']; show_form(0,$form_errors,1,$_SESSION['select_sort_papers_by_field'], $_SESSION['select_sort_reviewers_by_field']); } . . . elseif ($_POST[' _submit_check1' ]) { // si se pulsó botón &quot;Assign Reviewers To Papers&quot; $defaults=$_POST; if ($form_errors = validate_form1()) { // si hay errores  informa por pantalla show_form(0,$form_errors,1,$_SESSION['select_sort_papers_by_field'], $_SESSION['select_sort_reviewers_by_field']); }else { // si no hay errores  procesa el formulario process_form1(); } . . . } else { // Si no se pulsó ningún botón  muestra el formulario (en espera de que se pulse algún botón...) show_form(0,'',0,$_SESSION['select_sort_papers_by_field'], $_SESSION['select_sort_reviewers_by_field']); } }
  25. 25. 4.3. PHP (9/9) 1. Introducción 2. Estado del Arte 3. Manual de Usuario 4. Implementación 5. Conclusiones Sistema de Gestión y Ayuda a la Organización de Congresos de Investigación (SGAOCI) <ul><ul><li>generación de contraseñas </li></ul></ul><ul><ul><ul><li>objetivo : seguridad de las páginas de gestión . </li></ul></ul></ul><ul><ul><ul><li>solución : usuarios  login y password  acceso a página personal. </li></ul></ul></ul><ul><ul><ul><li>login : email de usuario (modificable). </li></ul></ul></ul><ul><ul><ul><li>password : aleatoria, generada y enviada ‘ en claro’ por email automáticamente, </li></ul></ul></ul><ul><ul><ul><li> almacenada encriptada con crypt(), sólo la conoce el receptor, fichero aparte. </li></ul></ul></ul><ul><ul><ul><ul><ul><li> encriptado : crypt() </li></ul></ul></ul></ul></ul><ul><ul><ul><li> MD5 </li></ul></ul></ul>login_password_admin.xml login_password_contact_authors.xml login_password_chair.xml login_password_reviewers.xml $passwords[$index] = random_password_generator(); $cripted_password = crypt($passwords[$j],'$1$rasmusle$'); function random_password_generator ($length = 8) { $password = &quot;&quot;; // start with a blank password $possible = &quot;0123456789bcdfghjkmnpqrstvwxyz&quot;; // define possible characters $i = 0; // set up a counter while ($i < $length) { // add random characters to $password until $length is reached // pick a random character from the possible ones $char = substr($possible, mt_rand(0, strlen($possible)-1), 1); // we don't want this character if it's already in the password if (!strstr($password, $char)) { $password .= $char; $i++; } } return $password; // done! } <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <!DOCTYPE login_password_reviewers SYSTEM &quot;login_password_reviewers.dtd&quot;> <login_password_reviewers> <login_password_reviewer> <login> [email_address] </login> <password> $1$rasmusle$1tGO1GgXtoPgpdaH/zrEq1 </password> </login_password_reviewer> . . . </login_password_reviewers>
  26. 26. 4.4. XML (1/2) 1. Introducción 2. Estado del Arte 3. Manual de Usuario 4. Implementación 5. Conclusiones Sistema de Gestión y Ayuda a la Organización de Congresos de Investigación (SGAOCI) <ul><ul><li>leyendo datos de la BD: Xpath (1/2) </li></ul></ul><ul><ul><ul><li>XPath : acceso a cualquier parte de un fichero XML de forma rápida y sencilla. </li></ul></ul></ul><ul><ul><ul><li>expresiones XPath : usadas para movernos dentro de un documento XML; </li></ul></ul></ul><ul><ul><ul><ul><li>contienen una ruta de acceso a la ubicación . </li></ul></ul></ul></ul><ul><ul><ul><li>ruta de acceso a la ubicación : define un desplazamiento en un doc XML. </li></ul></ul></ul><ul><ul><ul><ul><li>ruta de acceso relativa : parte desde el nodo contexto . </li></ul></ul></ul></ul><ul><ul><ul><ul><li>ruta de acceso absoluta: parte desde la raíz del documento. </li></ul></ul></ul></ul><ul><ul><ul><li>nodo contexto : punto de partida dentro del documento XML o inicio de ruta. </li></ul></ul></ul><ul><ul><ul><li>nodo : cualquier parte del documento, ya sea un elemento o un atributo. </li></ul></ul></ul><ul><ul><ul><li>raíz del documento: raíz conceptual del documento; se expresa con &quot;/&quot;. </li></ul></ul></ul><ul><ul><ul><li>funciones XPath: </li></ul></ul></ul><ul><ul><ul><ul><li>node functions: name(), node(), comment(), text(), etc. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>positional functions: position(), first(), last(), count(). </li></ul></ul></ul></ul><ul><ul><ul><ul><li>numeric functions: number(), sum(). </li></ul></ul></ul></ul><ul><ul><ul><ul><li>boolean functions: boolean(), not(), true(), false(). </li></ul></ul></ul></ul><ul><ul><ul><ul><li>string functions: string(), concat(), substring(), etc. </li></ul></ul></ul></ul>
  27. 27. 4.4. XML (2/2) 1. Introducción 2. Estado del Arte 3. Manual de Usuario 4. Implementación 5. Conclusiones Sistema de Gestión y Ayuda a la Organización de Congresos de Investigación (SGAOCI) <ul><ul><li>leyendo datos de la BD: Xpath (2/2) </li></ul></ul><ul><ul><ul><li>ejemplo básico : </li></ul></ul></ul>$file = &quot;xml/conference.xml&quot;; $xml = simplexml_load_file($file); $conference = $xml  xpath(&quot;*&quot;); <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <!DOCTYPE conference SYSTEM &quot;conference.dtd&quot;> <conference> <title>Super Computers</title> <location>DAC-ETSIT</location> <city>Malaga</city> <state></state> <country>Spain</country> <conf_email>jam7777777@telefonica.net</conf_email> … </conference> <?php print print &quot;<p> $conference[0] </p>”; print &quot;<p> $conference[1], &nbsp $conference[2]”; if (&quot;$conference[3]&quot;) { print&quot; $conference[3]&quot;; } print “($conference[4]) </p>”; ?> ConferencePage-Home.php xml/conference.xml ConferencePage-Home.php simplexml_load_file(): convierte el doc XML en un objeto
  28. 28. 5. Conclusiones <ul><li>5.1. Conclusiones </li></ul><ul><li>5.2. Posibles mejoras </li></ul>1. Introducción 2. Estado del Arte 3. Manual de Usuario 4. Implementación 5. Conclusiones Sistema de Gestión y Ayuda a la Organización de Congresos de Investigación (SGAOCI)
  29. 29. 5.1. Conclusiones 1. Introducción 2. Estado del Arte 3. Manual de Usuario 4. Implementación 5. Conclusiones Sistema de Gestión y Ayuda a la Organización de Congresos de Investigación (SGAOCI) <ul><ul><ul><li>Ingeniería del Software : siempre presente, fases, ser metódicos, documentación. </li></ul></ul></ul><ul><ul><ul><li> ( análisis, diseño, prototipo, implementación, pruebas, doc .) </li></ul></ul></ul><ul><ul><ul><li>Necesidad: </li></ul></ul></ul><ul><ul><ul><ul><ul><li>mejora aps. existentes (+ flexible, dinámica y segura); pros (no cons ). </li></ul></ul></ul></ul></ul><ul><ul><ul><li>Soporte: </li></ul></ul></ul><ul><ul><ul><ul><li>usuarios: admin, PC Chair, revisores, autores y participantes. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>funcionalidades: distintas por usuario, acceso, fases, dependencias. </li></ul></ul></ul></ul><ul><ul><ul><li>Características : </li></ul></ul></ul><ul><ul><ul><ul><li>requisitos: cumple/supera todas las especificaciones (anteproyecto). </li></ul></ul></ul></ul><ul><ul><ul><ul><li>aplicación web dinámica: + flexible/mantenibilidad, ‘ database-driven’. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>compleja y sofisticada: + requisitos, tipos de usuarios, tareas, etc. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>bajo coste: PHP, XML, Apache ( Open Source ). </li></ul></ul></ul></ul><ul><ul><ul><ul><li>BD: estructura (excelente diseño): no redundancias, previsión. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>varios: cumple estándares XHTML / CSS , PHP Tidy, pruebas. </li></ul></ul></ul></ul>
  30. 30. 5.2. Posibles mejoras 1. Introducción 2. Estado del Arte 3. Manual de Usuario 4. Implementación 5. Conclusiones Sistema de Gestión y Ayuda a la Organización de Congresos de Investigación (SGAOCI) <ul><ul><ul><li>algunas posibles mejoras : </li></ul></ul></ul><ul><ul><ul><ul><li>aplicación de XSLT ( transformaciones XML ). </li></ul></ul></ul></ul><ul><ul><ul><ul><li>creación de página personal de participantes. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>gestión de revisiones “ started ”. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>selección de diferentes skins (aspectos visuales). </li></ul></ul></ul></ul>
  31. 31. SISTEMA DE GESTIÓN Y AYUDA A LA ORGANIZACIÓN DE CONGRESOS DE INVESTIGACIÓN (S.G.A.O.C.I.) PFC E.T.S.I.Telecomunicación . (Universidad de Málaga) Proyectante: Juan Antonio Martin Checa Director: Rafael Asenjo Plaza, Ph.D.

×