parte_27.txt
Document Details

Uploaded by AutonomousHeliotrope
Full Transcript
Antonio Campos Serna 48 TEMARIO OPOSICIONES COIICV | TEMA 29 • Rápido de configurar: configuración por ficheros ca si autoexplicativos. Se pueden definir varios entornos de configuración distintos (desarro llo, pruebas y producción). • Rápido: está considerado uno de los frameworks más rápidos. • UR...
Antonio Campos Serna 48 TEMARIO OPOSICIONES COIICV | TEMA 29 • Rápido de configurar: configuración por ficheros ca si autoexplicativos. Se pueden definir varios entornos de configuración distintos (desarro llo, pruebas y producción). • Rápido: está considerado uno de los frameworks más rápidos. • URL amigables: proporciona una serie de librerías p ara permitir “urls amigables”. • Validación de formularios: incluye una librería de validación de formularios mediante reglas. • Seguridad: incorpora una capa de seguridad y funcio nes para el filtrado XSS. • Caché: posibilidad de cachear partes o páginas ente ras de nuestra aplicación. • Gestión de sesiones: reemplaza las sesiones nativas de PHP para proporcionar nuevas funcionalidades 3.4.2. Symfony Symfony está desarrollado por SensioLabs y programa do íntegramente en PHP 5.3. Implementa el modelo MVC y soporta la mayoría de gestores de base s de datos (Oracle, MySQL, PostgreSQL y SQL Server). Su primera versión se lanzó en 2.007 Características: • Fácil de instalar y configurar: configuración por f icheros. • Independiente del gestor de BBDD: Incorpora una cap a de abstracción de acceso a base de datos que permite cambiar con facilidad de SGBD en cualquier fase del proyecto. • Patrones: implementa un patrón propio de MVC con la s variantes del uso de una capa de abstracción a base de datos, el controlador frontal y las acciones. También implementa las características de la POO como los espacios de nomb res (por lo que es obligatorio el uso de PHP 5.3). • Línea de comandos: incluye herramientas por línea d e comandos que facilitan generación de código, lo cual contribuye a ahorrar tiempo de t rabajo. • Plantillas: incorpora el uso de plantillas a la cap a Vista para facilitar el trabajo a los diseñadores. • Validación de formularios: soporta la validación au tomática de formularios. • Caché: permite reducir el uso de banda ancha y la c arga del servidor. • URL amigables: gestión de enrutamientos y uso de “u rls amigables”. Se autoriza el uso exclusivo de este documento a María Amparo Pavía García, DNI 20013968N, a 26 de julio de 2019Tecnologías para el desarrollo de aplicaciones. MS. NET, JAVA y PHP TEMARIO OPOSICIONES COIICV | TEMA 29 49 3.4.3. Laravel Taylor Otwell comenzó el desarrollo de Laravel como un intento de proporcionar a CodeIgniter ciertas características que no incorporaba como el soporte a la autenticación y autorización de usuarios. La primera versión se liberó en 2.011 Principales características: • Modularidad: permite la extensión mediante la agreg ación de paquetes desde su directorio Packalyst ( http://packalyst.com/ ). • Enrutamiento: su sistema de enrutamiento es muy sen cillo y proporciona “urls amigables”. • Seguridad: incorpora filtros para XSS y otras medid as de seguridad. También incluye seguridad openSSL y cifrado AES-256-CBC. • Caché: incluye un sistema de caché configurable. • Autenticación: implemente de manera nativa un siste ma de autenticación de usuarios. Referencias En septiembre de 2.016 (1) Un lenguaje interpretado no se compila ni gener a un programa ejecutable. El fichero fuente es leído por un interprete que lo ejecuta instrucción por instrucción. (2) Fuente http://php.net/manual/es/language.operators.precede nce.php (3) Se puede definir como indexación la forma de ac ceder a cada uno de los valores del array. (4) El Modelo-Vista-Controlador (MVC) es un patrón de arquitectura software de tres componentes: • Modelo: gestiona el acceso a la información (bases de datos, ficheros, …). • Vista: gestiona la presentación de la información. • Controlador: hace de “intermediario” entre el Model o y la Vista, respondiendo a las peticiones (eventos) del usuario. Se autoriza el uso exclusivo de este documento a María Amparo Pavía García, DNI 20013968N, a 26 de julio de 2019Antonio Campos Serna 50 TEMARIO OPOSICIONES COIICV | TEMA 29 Referencias bibliográficas MS.NET Evjen, B., Hollis, B., Lhotka, R. y otros. (2004). Professional VB.NET 2003. Wrox Press. Sharp, J. (2008). Visual C#. Anaya Multimedia. Shepherd, G. (2008). ASP.NET 3.5. Anaya Multimedia. Spaanjaars, I. (2014). Beginning ASP.NET 4.5.1: in C# and VB. Wrox Press. Java Cadenhead, R. (2012). Java 7. Anaya Multimedia. Eckel, B. (2002). Piensa en Java. Pretince Hall. Mankale, A. (2015). Mastering Spring Application De velopment. Packt Publishing. Morelli, R., Walde, R. (2012). Java, Java, Java Obj ect-Oriented Problem Solving. Trinity College. Richardson, W., Avondolio, D., Schrager, S., Mitche ll, M. y Scanlon, J. (2007). Professional Java. Wrox Press. Walls, C. (2011). Spring. Anaya Multimedia. PHP Boronczyk, T., Naramore, E., Gerner, J. y otros. (2 009). Desarrollo web con PHP 6, Apache y MySQL. Anaya Multimedia. Doyle, M. (2010). PHP Práctico. Anaya Multimedia. Lecky-Thompson, E y Nowicki, S. (2009). Professiona l PHP6. Wrox Press. Pecoraro, C. (2015). Mastering Laravel. Packt Publi shing. Salehi, S. (2016). Mastering Symfony. Packt Publish ing. Se autoriza el uso exclusivo de este documento a María Amparo Pavía García, DNI 20013968N, a 26 de julio de 2019TEMARIO OPOSICIONES COIICV | TEMA 31 1 Tema 31. Software de código abierto. Software libre. Conceptos base. Aplicaciones y usos. Normativa sobre propiedad intelectual. Tipos de licenciamiento de aplicaciones informáticas Pedro Garrido Águila Colegiado 0879 La idea del software libre y el código abierto surg ió en los años 80 y 90, consolidándose como un modelo de desarrollo comunit ario. Desde el punto de vista del ingeniero de software, se trata de la diferencia existente entre disponer de herramientas que te permitan modi ficar y mejorar el código de programa o no. Independientemente de que dicho inge niero pueda realizar esos cambios y mejoras, nos encontramos con el aspecto j urídico y aquí es donde entra la regulación de licencias. Dos de las entidades más relevantes en el desarroll o de licencias de software libre y código abierto son la Open Source Iniciative y la F ree Software Foundation. Estas dos entidades disponen de licencias de referencia, no o bstante, una licencia es un contrato entre el licenciatario (autor) y el licenciante (ad quiriente). La decisión de adquirir software propietario o soft ware libre debe centrarse en el estudio de las necesidades de los ingenieros inform áticos que vayan a trabajar con dicho software, así como las garantías de soporte y rapidez de acceso a soluciones. Por todo esto es sumamente importante que un ingeni ero informático responsable de la administración pública conozca los tipos de lice ncia existentes tanto a nivel de código abierto o software libre como de licencias d e software propietario. Se autoriza el uso exclusivo de este documento a María Amparo Pavía García, DNI 20013968N, a 26 de julio de 2019Pedro Garrido Águila 2 TEMARIO OPOSICIONES COIICV | TEMA 31 1. Historia En los años 70, con la denominada por muchos medios Tercera Revolución Industrial o Revolución Digital, dando lugar a la Era de la Información , era una práctica natural y común compartir software, tan natural como era compartir apuntes de clase o recetas de cocina. Fue en los años 80 cuando proliferó el denominado Software Propietario , el cual, aunque pudieses, prohibía jurídicamente su modificación o actualizac ión sin el visto bueno de su propietario. Esto provocó que en 1983, Richard Stallman lanzara el pr oyecto GNU, motivado anecdóticamente por un error en la programación del driver de una impresora, cuyo código fuente el propietari o se negaba a revelar, pero que tampoco era capaz de sol ucionar, al menos en un tiempo razonable. El principal objetivo del proyecto GNU, consistía en l a creación de un sistema operativo completo, libre de restricciones para el uso, modificación y distribución, ya fuese con mejoras o sin ellas. Figura 1: La mascota del proyecto GNU, un ñu En 1985, y motivada por la defensa del Software Libre y en particular del proyecto GNU, Richard Matthew Stallman, fundó la Free Software Foundation (FSF). Figura 2: Richard Stallman Se autoriza el uso exclusivo de este documento a María Amparo Pavía García, DNI 20013968N, a 26 de julio de 2019Software de código abierto y propiedad intelectual TEMARIO OPOSICIONES COIICV | TEMA 31 3 La primera definición de Software Libre publicada fue en febrero de 1986, basada en dos principios: “The word ‘free’ in our name does not refer to pric e; it sometimes refer to freedom. First, the freedo m to copy a program and redistribute it to your neighbor s, so that they can use it as well as you. Second, the freedom to change a program, so that you can contro l it instead of it controlling you; for this, the s ource code must be made available to you” . “La palabra ‘libre’ en su propio nombre, no se refi ere al precio; se refiere a la libertad. Primero, a la libertad de copiar y redistribuir un programa entre tus vecinos, para que ellos al igual que tu, lo pu edan usar también. Segundo, a la libertad de modificar u n programa, y así poder controlarlo en lugar de que él te controle a tí; para ello, el código fuente de be estar a tu disposición” . Free Software Foundation, 1986 En 1989, se publicó la primera versión de la Licenc ia Pública General de GNU ( GNU General Public License ). El principal problema radicaba en que los propie tarios o distribuidores de software, sólo publicaban los archivos binarios, funcionales y ejecutables, pero no los códigos fuente perceptibles de ser entendidos y modificados por el ser humano. Por ello la GPLv1 estableció la obligatoriedad de publicar junto con los archivos b inarios el código fuente asociado entendible por humanos. En 1991 fue liberada la GPLv2, con una definición d e la licencia menos restrictiva. La licencia Pública General Menor (LGPL) fue renombrada en una actualización menor de la versión 2.1 a principios de 1999. En 1991 fue liberado el núcleo Linux por Linus Torv alds, no siendo inicialmente una licencia totalmente de software libre, pero en febrero de 19 92, bajo la versión 0.12, Linus Torvalds la licenció nuevamente bajo los términos de la Licenci a Pública General de GNU. Figura 3: Linus Torvalds Se autoriza el uso exclusivo de este documento a María Amparo Pavía García, DNI 20013968N, a 26 de julio de 2019Pedro Garrido Águila 4 TEMARIO OPOSICIONES COIICV | TEMA 31 Esta unión entre Linux y el proyecto GNU, proporcio nó a este último la pieza indispensable que necesitaba, disponer de un sistema operativo casi t erminado. La combinación entre ambos resultó en el primer sistema operativo completo de software libre. Un aspecto importante a resaltar en la época de los 90 es la vinculación del software libre con servidores web. El servidor HTTP Apache fue y sigue siendo el software de servidor web más utilizado. Conocidos como sistemas ‘LAMP’; compuest o por un paquete que incluye Linux como sistema operativo, Apache como proveedor de servicios web, MySQL como sistema de archivo o base de datos y el lenguaje de programación PHP. Figura 4: Logo de Apache A finales de los 90 empezó a acuñarse el término de Código Abierto ( Open Source ). Promovido por el movimiento de Netscape Communications Corporatio n en el sentido de liberación del código de su suite más popular de internet Netscape Communica tor, y debido al poco atractivo para esta sobre el activismo social de la FSF, en 1998 se fun dó la Open Source Initiative (OSI), con el objetivo de fomentar el nuevo término de Software d e Código Abierto, así como sus principios más centrados en el potencial comercial de compartir có digo fuente. 2. Software libre Como hemos comentado, el concepto de software libre apareció vinculado a la figura de Richard Stallman, la FSF y en el espíritu del autor del sof tware sobre la elección manifiesta para poder ser copiado, estudiado, modificado y utilizado libremen te con cualquier fin, redistribuido con cambios o mejoras, por otros autores. El término en su versión inglesa, free software , crea una ambigüedad entre los significados “libre” y “gratis”, por este motivo suele ser considerado el software libre como software gratuito y no como software que puede ser modificado sin restricciones de licencia. La libertad expresada en el término free tiene que ver con la libertad de uso y no con la g ratuidad. Por otra parte es importante también distinguir ent re software libre y “software de dominio público”, el cual no requiere licencia y es propiedad de todo s por igual, con derechos de explotación para toda la humanidad, dado que su autor así lo ha deci dido mediante donación o porque los derechos de autor de dicho software han expirado. Se autoriza el uso exclusivo de este documento a María Amparo Pavía García, DNI 20013968N, a 26 de julio de 2019Software de código abierto y propiedad intelectual TEMARIO OPOSICIONES COIICV | TEMA 31 5 2.1. Libertades del software libre De acuerdo a la definición de Richard Stallman, un software es considerado libre cuando cumple con las cuatro libertades esenciales. Tabla I: Libertades del software libre Libertad Descripción 0 Libertad de usar o ejecutar el programa como lo des ees, con cualquier propósito. (Uso ). 1 Libertad de estudiar el código fuente, cómo funcion a el programa y modificarlo, adaptándolo a las propias necesidades del programad or. ( Estudio ). 2 Libertad de ayudar a tu programa, de distribuir cop ias exactas de él y distribuirlas bien gratuitamente o con la libertad de vender tu desarr ollo. Ambas opciones están permitidas por la comunidad. ( Distribución ). 3 Libertad de mejorar el programa y hacer públicas es as mejoras a los demás, hacer copias de tus versiones modificadas y distribuirlas al resto de la comunidad para que esta se beneficie. ( Mejora ). Las libertades 1 y 3 requieren de acceso al código fuente. Si no se dan estas cuatro libertades en un software , no se considera un software libre, y por tanto se considera software privativo, en mayor o menor m edida, pero privativo. La ventaja del software libre es que este se acompa ña normalmente del código fuente con el que fue creado y por lo tanto tienes la capacidad de ad aptarlo a tus necesidades, con el conocimiento apropiado, de forma totalmente legal. Como veremos más adelante, tanto la OSI como la FSF , disponen en sus webs oficiales de listados con licencias aprobadas por ellos como lic encias de software libre. La definición de software no libre o software priva tivo, se basa sobretodo en que no garantizan estas cuatro libertades. Si nos centramos en las le yes de propiedad intelectual, las premisas son la reserva de derechos sobre modificación, duplicación y redistribución para el propietario del copyright . En este aspecto, el software libre rescinde espec íficamente este tipo de derechos reservados. Unido a estos conceptos, volvemos a dif erenciar el concepto de software gratis y software libre desde el punto de vista que un softw are gratis puede incluir restricciones que no se adaptan a la definición de software libre, ya que n o cumplen las cuatro libertades. Es importante diferenciar entre los términos softwa re libre ( free software ) y software de código abierto ( open source software ), el cuál veremos en detalle más adelante. La prin cipal diferencia radica en que el software libre tiene en cuenta asp ectos más éticos o filosóficos, mientras que el softare de código abierto se basa únicamente en los aspectos técnicos. Se autoriza el uso exclusivo de este documento a María Amparo Pavía García, DNI 20013968N, a 26 de julio de 2019Pedro Garrido Águila 6 TEMARIO OPOSICIONES COIICV | TEMA 31 2.2. Formatos abiertos Los formatos libres permiten al software libre mant ener sus cuatro libertades, no obstante los formatos libres pueden ser utilizados por programas libres o programas cerrados, también por programas gratuitos o programas de pago. Algunas compañías que no suelen utilizar formatos l ibres en sus programas, aún así permiten a sus usuarios instalar software libre en sus sistema s para trabajar con esos formatos. Algunos ejemplos de formatos libres; HTML, PDF, RTF , TXT, JPEG, PNG, SVG,…. 3. Software de código abierto El 3 de Febrero de 1998 en una reunión en Palo Alto se acuña el término open source y durante la semana siguiente La idea principal se basaba en pod er crear modificaciones de un software, compatibilizarlo con otros sistemas operativos o ar quitecturas de hardware, adaptarlo, compartirlo, comercializarlo,… La Open Source Bruce Perens y Eric S. Raymond lanza n opensource.org ( http://opensource.org ). Definition define los términos por los cuales se puede usar, modificar o redistribuir el software de código abierto. Una de las licencias más populares compatibles con la OSD es la GNU General Public License. La definición completa de OSD según la OSI: El código abierto no significa simplemente acceso a l código fuente. Los términos de distribución de software de open-source deben cumplir con los sigui entes criterios: 1.- Libre redistribución : La licencia no restringirá a ninguna de las parte s de vender o regalar el software como un componente de una distribución de software que contenga programas de varias fuentes diferentes. La licencia no exigirá ninguna gratificación u otra tasa por dicha venta. 2.- Código fuente : El programa debe incluir código fuente, y debe pe rmitir la distribución en código fuente, así como en el formulario compilado. Cuando algún tipo de producto no se distribuye con el código fuente, debe haber un medio bien publicado p ara obtener el código fuente por un coste de reproducción razonable, preferiblemente descargándo se a través de Internet sin cargo alguno. El código fuente debe ser la forma preferida en la que un programador debería modificar el programa. No se permite un código fuente premeditadamente enreve sado. No se permiten formularios intermedios tales como la salida de un preprocesador o traducto r. 3.- Trabajos derivados : La licencia debe permitir modificaciones y trabaj os derivados, y debe permitir su distribución en los mismos términos que la licen cia del software original. Se autoriza el uso exclusivo de este documento a María Amparo Pavía García, DNI 20013968N, a 26 de julio de 2019