{"id":80,"date":"2015-08-18T14:00:30","date_gmt":"2015-08-18T19:00:30","guid":{"rendered":"http:\/\/naps.com.mx\/blog\/?p=80"},"modified":"2022-08-15T11:48:19","modified_gmt":"2022-08-15T16:48:19","slug":"arquitectura-de-una-aplicacion-web","status":"publish","type":"post","link":"https:\/\/naps.com.mx\/blog\/arquitectura-de-una-aplicacion-web\/","title":{"rendered":"Arquitectura de una aplicaci\u00f3n web"},"content":{"rendered":"<p>La arquitectura de una aplicaci\u00f3n web es distinta a la de una aplicaci\u00f3n t\u00edpica de escritorio.<\/p>\n<p><!--more--><\/p>\n<p>Una diferencia radica en que las aplicaciones web utilizan un software <strong>cliente<\/strong>, un software <strong>servidor<\/strong> y un protocolo de <strong>comunicaci\u00f3n<\/strong> para el env\u00edo y recepci\u00f3n de datos\u00a0(Luj\u00e1n, S., 2002).<\/p>\n<h2>Cliente, Servidor y protocolo de comunicaci\u00f3n<\/h2>\n<p>El software cliente puede ser un <strong>navegador web<\/strong> (Chrome, Firefox, IExplorer) que interpreta c\u00f3digo en <strong>HTML.<\/strong>\u00a0El software servidor puede ser un <strong>servidor web<\/strong> como es Apache, y el protocolo de comunicaci\u00f3n generalmente es <strong>HTTP<\/strong>. Como vemos, ninguna de estas aplicaciones tiene que ser creada por el programador.<\/p>\n<p>Del lado del cliente pueden correr tecnolog\u00edas como: <strong>HTML, CSS y Javascript<\/strong>. Del lado del servidor pueden correr tecnolog\u00edas <strong>CGI, ASP, JSP o PHP<\/strong>.<\/p>\n<blockquote><p>Las aplicaciones web utilizan un software cliente, un software servidor y un protocolo de comunicaci\u00f3n.<\/p><\/blockquote>\n<h2>Proceso de ejecuci\u00f3n de una p\u00e1gina web<\/h2>\n<p>El proceso de <strong>ejecuci\u00f3n de una p\u00e1gina web<\/strong> es como sigue:<\/p>\n<ol>\n<li>El usuario escribe una <strong>URL<\/strong> desde el navegador.<\/li>\n<li>Se establece una conexi\u00f3n con el <strong>servidor<\/strong>.<\/li>\n<li>El servidor busca el <strong>recurso<\/strong> solicitado en la cadena URL<\/li>\n<li>El servidor env\u00eda el recurso solicitado (si fuera una tecnolog\u00eda como <strong>PHP<\/strong>, primero realiza una compilaci\u00f3n; si no existiera el recurso env\u00eda un mensaje de error).<\/li>\n<li>El cliente interpreta el c\u00f3digo <strong>HTML<\/strong> que le fue enviado. Si \u00e9ste hace referencia a otros objetos de nuevo establece comunicaci\u00f3n con el servidor, solicit\u00e1ndoselos.<\/li>\n<li>Se <strong>cierra<\/strong> la conexi\u00f3n entre el cliente y el servidor.<\/li>\n<li>Al final tenemos una p\u00e1gina completa siendo mostrada al usuario.<\/li>\n<\/ol>\n<h2><strong>Arquitectura de una aplicaci\u00f3n web<\/strong><\/h2>\n<ol>\n<li><strong>El servidor ejecuta todo<\/strong>. En este enfoque el servidor contiene: el software servidor, la aplicaci\u00f3n y los datos. PHP utiliza este enfoque.<\/li>\n<li><strong>El servidor de datos por separado<\/strong>. El servidor de base de datos puede estar en un equipo diferente.<\/li>\n<li><strong>Un servidor, con servicio de aplicaciones<\/strong>.<\/li>\n<li><strong>El servidor de datos por separado, con servicio de aplicaciones<\/strong>.<\/li>\n<li><strong>Todo separado<\/strong>.<\/li>\n<\/ol>\n<h3><strong>Ventajas de los esquemas con servicios \u201cseparados\u201d<\/strong><\/h3>\n<ul>\n<li>Mayor rendimiento<\/li>\n<li>Se puede configurar cada servidor de la mejor manera para cada tipo de servicio.<\/li>\n<li>Al separar los datos se aumenta un poco la seguridad.<\/li>\n<\/ul>\n<h2><strong>\u00bfQu\u00e9 plataforma de desarrollo es mejor utilizar?<\/strong><\/h2>\n<p>Tendremos que elegirlo en base a nuestras necesidades y criterios.<\/p>\n<p>\u00bfQuieres algo <strong>f\u00e1cil de aprender<\/strong>? <span style=\"color: #800000;\">PHP<\/span> (<em>Hypertext Preprocessor<\/em>) es relativamente f\u00e1cil de usar teniendo algunas nociones de programaci\u00f3n (Granados, R., 2015). Adem\u00e1s es c\u00f3digo abierto, cuenta con una gran comunidad de desarrolladores dispuestos a compartir su conocimiento y responder tus dudas, y hay mucha documentaci\u00f3n en l\u00ednea.<\/p>\n<p>\u00bfEst\u00e1s acostumbrado a la tecnolog\u00eda .NET? La plataforma de <strong>Microsoft<\/strong> ASP.NET \u00a0tiene gran integraci\u00f3n con las aplicaciones desarrolladas en .NET, por lo que no es extra\u00f1o que algunas empresas desean que se utilice este lenguaje. Otra ventaja de esta plataforma es que compila previamente el c\u00f3digo por lo que su ejecuci\u00f3n puede llegar a ser m\u00e1s r\u00e1pida que PHP (Granados, 2008).<\/p>\n<p>Y no podemos pasar por alto a <strong>JSP<\/strong> (<em>Java Server Pages<\/em>) que es una tecnolog\u00eda desarrollada por Sun y de la cual es actualmente propietaria Oracle. Se integra con tecnolog\u00edas Java como lo son los servlets.<\/p>\n<blockquote><p><span style=\"color: #000000;\">PHP<\/span> es relativamente f\u00e1cil de usar,\u00a0es c\u00f3digo abierto y cuenta con una gran comunidad de desarrolladores.<\/p><\/blockquote>\n<h3><strong>Referencias<\/strong><\/h3>\n<ol>\n<li>Granados, R. (2015). <strong><a href=\"https:\/\/books.google.com.mx\/books?id=OO91CQAAQBAJ&amp;printsec=frontcover&amp;dq=Desarrollo+de+aplicaciones+web+en+el+entorno+servidor&amp;hl=es-419&amp;sa=X&amp;redir_esc=y#v=onepage&amp;q=Desarrollo%20de%20aplicaciones%20web%20en%20el%20entorno%20servidor&amp;f=false\" target=\"_blank\" class=\"broken_link\">Desarrollo de aplicaciones web en el entorno servidor<\/a>.<\/strong> IC Editorial.<\/li>\n<li>Luj\u00e1n S. (2002). <strong><a href=\"https:\/\/books.google.com.mx\/books?id=r9CqDYh2-loC&amp;printsec=frontcover&amp;dq=Programaci%C3%B3n+de+aplicaciones+web:+historia,+principios+b%C3%A1sicos+y+clientes+web&amp;hl=es&amp;sa=X&amp;ved=0ahUKEwizoaqhxMrKAhWBWT4KHaQrDioQ6AEIGzAA#v=onepage&amp;q=Programaci%C3%B3n%20de%20aplicaciones%20web%3A%20historia%2C%20principios%20b%C3%A1sicos%20y%20clientes%20web&amp;f=false\" target=\"_blank\">Programaci\u00f3n de aplicaciones web: historia, principios b\u00e1sicos y clientes web<\/a><\/strong>. Editorial Club Universitario.<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>La arquitectura de una aplicaci\u00f3n web es distinta a la de una aplicaci\u00f3n t\u00edpica de escritorio.<\/p>\n","protected":false},"author":1,"featured_media":82,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"amp_status":"","footnotes":""},"categories":[171,33],"tags":[46,47,45],"class_list":["post-80","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programacion-web","category-web","tag-asp","tag-jsp","tag-php"],"_links":{"self":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts\/80","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/comments?post=80"}],"version-history":[{"count":5,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts\/80\/revisions"}],"predecessor-version":[{"id":476,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts\/80\/revisions\/476"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/media\/82"}],"wp:attachment":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/media?parent=80"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/categories?post=80"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/tags?post=80"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}