Introducción aos Servizos Web: Diferenzas entre revisións

De Wiki do Ciclo ASIR do IES de Rodeira
Saltar á navegación Saltar á procura
(Nova páxina: "==Tecnoloxías de Programación Web== A simple transferencia de hipertexto (texto que fai referencia ou enlaza outro texto) non proporciona a funcionalidade que hoxe en día se pr...")
 
Liña 5: Liña 5:


===Tecnoloxías de programación no servidor===
===Tecnoloxías de programación no servidor===
Unha das primeiras solucións atopadas a este problema foi dotar aos servidores web da capacidade de invocar a execución de programas externos sobre a petición dun cliente. Deste xeito, o cliente introduciría información nun formulario HTML que indicaría ao servidor a aplicación encargada de procesala. O servidor web se encargaría de lanzar a execución dese programa enviándolle como argumentos a información recibida a través dun protocolo denominado '''CGI (''Common Gateway Interface'')''''. A saída producida pola execución da aplicación se redirixe de volta hacia o cliente (as aplicacións a ser executadas como CGI normalmente visualizan HTML). Con este sistema é posible crear programas utilizando calqueira linguaxe de programación capaz de encargarse do procesamento da información suministrada aos servidores web.
Unha das primeiras solucións atopadas a este problema foi dotar aos ''servidores Web'' da capacidade de invocar a execución de programas externos sobre a petición dun cliente. Deste xeito, o cliente introduciría información nun formulario HTML que indicaría ao servidor a aplicación encargada de procesala. O servidor web se encargaría de lanzar a execución dese programa enviándolle como argumentos a información recibida a través dun protocolo denominado '''CGI (''Common Gateway Interface'')''''. A saída producida pola execución da aplicación se redirixe de volta hacia o cliente (as aplicacións a ser executadas como CGI normalmente visualizan HTML). Con este sistema é posible crear programas utilizando calqueira linguaxe de programación capaz de encargarse do procesamento da información suministrada aos servidores web.


Mais adiante, desenvolvéronse linguaxes interpretados ('''scripting''') co obxectivo de realizar esta mesma función. Os servidores web incorporan como funcionalidade (normalmente cun módulo) a posibilidade de interpretar código incluído nas propias páxinas e producir unha páxina web resultado que se envía ao navegador. Existen diversas linguaxes dispoñibles para o seu uso en scripts web, sendo o máis popular ''PHP''.
Mais adiante, desenvolvéronse linguaxes interpretados ('''scripting''') co obxectivo de realizar esta mesma función. Os servidores web incorporan como funcionalidade (normalmente cun módulo) a posibilidade de interpretar código incluído nas propias páxinas e producir unha páxina web resultado que se envía ao navegador. Existen diversas linguaxes dispoñibles para o seu uso en scripts web, sendo o máis popular ''PHP''. Unha tecnoloxía simple de este tipo incorporada na maioría dos ''servidores Web'' son os ''Server Side Includes (SSI) '', que permiten un certo grao de lóxica de programación e a invocación a aplicacións e comandos externos.

Estas solucións son apropiadas para a realización de pequenas aplicacións, xa que permiten un rápido desplegue, pero a medida que a complexidade da aplicación aumenta, resulta máis difícil o seu mantemento. En particular, resulta complexo vincular a execución da aplicación a todos os clientes que a están a utilizar nun instante determiñado, xa que en realidade únicamente se están a executar scripts independentes en cada petición.

Coa idea de simplificar o mantemento das aplicacións e aumentar a súa velocidade de execución xurdiron os '''servidores de aplicacións'''. Os servidores de aplicacións ofrecen un entorno onde os clientes poden acceder a unha ''“aplicación”'' (entorno de aplicación). En cada petición non se executan scripts independentes, se non que son atendidas por unha aplicación que está funcionando permantentemente no sistema, deste xeito e moi fácil que a acción dun cliente sexa inmediatamente percibida polos demáis. A diferencia das linguaxes de script ou dos CGI, os servidores de aplicacións non precisan dun servidor web, se non que eles mesmos ademáis de encargarse da execución da aplicación poden servir páxinas HTML estáticas. Os máis populares hoxe en día son '''Tomcat''', basado en ''JAVA'' e '''IIS''' basado en ''.NET''.


Estas dúas solucións son apropiadas para a realización de pequenas aplicacións, xa que permiten un rápido desplegue, pero a medida que a complexidade da aplicación aumenta, resulta máis difícil o seu mantemento. En particular, resulta complexo vincular a execución da aplicación a todos os clientes que a están a utilizar nun instante determiñado, xa que en realidade únicamente se están a executar scripts independentes en cada petición.
Coa idea de simplificar o mantemento das aplicacións e aumentar a súa velocidade de execución xurdiron os servidores de aplicacións. Os servidores de aplicacións ofrecen un entorno onde os clientes poden acceder a unha “aplicación”. En cada petición non se executan scripts independentes, se non que son atendidas por unha aplicación que está funcionando permantentemente no sistema, deste xeito e moi fácil que a acción dun cliente sexa inmediatamente percibida polos demáis. A diferencia das linguaxes de script ou dos CGI, os servidores de aplicacións non precisan dun servidor web, se non que eles mesmos actúan como servidor web ademáis de encargarse da execución da aplicación. Os máis populares hoxe en día son Tomcat, basado en JAVA e IIS basado en .NET.
Como resumo, as vantaxes e inconvenientes destas tecnoloxías son as seguintes:
Como resumo, as vantaxes e inconvenientes destas tecnoloxías son as seguintes:
CGI: Vantaxes
;CGI: Vantaxes:
Pódense realizar en calqueira linguaxe de programación, compilada ou interpretada.
:*Pódense realizar en calqueira linguaxe de programación, compilada ou interpretada.
As linguaxes compiladas execútanse a gran velocidade, sendo axeitados para a execución de procesos que requiren grande capacidade de cómputo.
:*As linguaxes compiladas execútanse a gran velocidade, sendo axeitados para a execución de procesos que requiren grande capacidade de cómputo.
Os CGI teñen acceso ao sistema como unha aplicación máis, cos privilexios otorgados polo servidor web.
:*Os CGI teñen acceso ao sistema como unha aplicación máis, cos privilexios otorgados polo servidor web.
CGI: Inconvenientes
;CGI: Inconvenientes:
E necesario crear un proceso por cada nova petición (e poden ser moitas por segundo), e a creación de procesos é lenta, o que fai que esta tecnoloxía non sexa axeitada para sistemas que reciben moitas peticións/sg. O uso de fastCGI permite aliviar este problema.
:*E necesario crear un proceso por cada nova petición (e poden ser moitas por segundo), e a creación de procesos é lenta, o que fai que esta tecnoloxía non sexa axeitada para sistemas que reciben moitas peticións/sg. O uso de fastCGI permite aliviar este problema.
O que o CGI teña pleno acceso ao sistema pode dar lugar a erros de seguridade.
:*O que o CGI teña pleno acceso ao sistema pode dar lugar a erros de seguridade.
Scripting: Vantaxes
;Scripting: Vantaxes:
A execución dos scripts non precisa de creación de novos procesos, polo que son máis eficaces procesando un gran número de peticións que os CGI.
:*A execución dos scripts non precisa de creación de novos procesos, polo que son máis eficaces procesando un gran número de peticións que os CGI.
Permiten un desenvolvemento e implantación moi rápido.
:*Permiten un desenvolvemento e implantación moi rápido.
A execución do script está restrinxida ao servidor web.
:*A execución do script está restrinxida ao servidor web.
Facilidade de administración.
:*Facilidade de administración.
Scripting: Inconvenientes
;Scripting: Inconvenientes:
A execución dos scripts é máis lenta que a dos programas nativos, sendo máis lentos para tarefas de cálculo intensivo.
*:A execución dos scripts é máis lenta que a dos programas nativos, sendo máis lentos para tarefas de cálculo intensivo.
E necesario unha gran disciplina para a realización de aplicacións mantibles, xa que facilitan moito o desenvolvemento rápido e “sobre a marcha” sen un deseño previo.
*:E necesario unha gran disciplina para a realización de aplicacións mantibles, xa que facilitan moito o desenvolvemento rápido e “sobre a marcha” sen un deseño previo.
Servidores de Aplicacións: Vantaxes
;Servidores de Aplicacións: Vantaxes:
As aplicacións son normalmente fácilmente mantibles e ampliables, xa que o sistema obliga a un deseño previo.
:*As aplicacións son normalmente fácilmente mantibles e ampliables, xa que o sistema obliga a un deseño previo.
Proporciónase un entorno de aplicación que facilita a comunicación entre distintos clientes da aplicación.
:*Proporciónase un entorno de aplicación que facilita a comunicación entre distintos clientes da aplicación.
E fácil producir código reutilizable para outros propósitos.
:*E fácil producir código reutilizable para outros propósitos.
Maior velocidade de execución, sobre todo en aplicacións con gran número de peticións ou con cálculo intensivo.
:*Maior velocidade de execución, sobre todo en aplicacións con gran número de peticións ou con cálculo intensivo.
Servidores de Aplicacións: Inconvenientes
;Servidores de Aplicacións: Inconvenientes:
Maior traballo de implantación. É necesario un deseño previo da aplicación e a creación da infraestructura para a mesma.
:*Maior traballo de implantación. É necesario un deseño previo da aplicación e a creación da infraestructura para a mesma.
Maior complexidade na administración do servidor.
:*Maior complexidade na administración do servidor.
Necesidade dun software servidor de aplicacións.
:*Necesidade dun software servidor de aplicacións.

Tecnoloxías de programación no cliente
===Tecnoloxías de programación no cliente===
Coa programación no servidor, solucionáronse a maior parte de necesidades nas aplicacións Web, pero en moitas ocasións aínda que xa se dispuña no cliente da información necesaria, era necesario o envío dunha petición ao servidor e carga dunha nova páxina para a realización de tarefas simples, como por exemplo o desplegue dun menú, ou a comprobación dunha letra do DNI.
Coa programación no servidor, solucionáronse a maior parte de necesidades nas aplicacións Web, pero en moitas ocasións aínda que xa se dispuña no cliente da información necesaria, era necesario o envío dunha petición ao servidor e carga dunha nova páxina para a realización de tarefas simples, como por exemplo o desplegue dun menú, ou a comprobación dunha letra do DNI.
Para solucionar este problema, Netscape incorporou ao seu cliente web (navegador) a posibilidade de executar scripts incluídos nas propias páxinas mediante unha nova etiqueta (<script>) dando lugar a linguaxe JavaScript. Esta linguaxe foi adoptada mais tarde por todos os navegadores dando lugar a un estándar, do que JavaScript é un dialecto: ECMAScript.
Para solucionar este problema, Netscape incorporou ao seu cliente web (navegador) a posibilidade de executar scripts incluídos nas propias páxinas mediante unha nova etiqueta (<script>) dando lugar a linguaxe JavaScript. Esta linguaxe foi adoptada mais tarde por todos os navegadores dando lugar a un estándar, do que JavaScript é un dialecto: ECMAScript.

Revisión como estaba o 15 de outubro de 2013 ás 15:31

Tecnoloxías de Programación Web

A simple transferencia de hipertexto (texto que fai referencia ou enlaza outro texto) non proporciona a funcionalidade que hoxe en día se precisa nas páxinas web. É necesario que o usuario poda interactuar coa páxina que está visualizando para facer tarefas concretas. Para cumplir este obxectivo é necesaria unha linguaxe de programación que permita procesar as accións do usuario e a información suministrada para conseguir o resultado desexado.

A este nivel podemos distinguir entre dúas tipoloxías diferenciadas en canto ao lugar de execución: As Tecnoloxías de Programación no Servidor, e as Tecnoloxías de programación no cliente.

Tecnoloxías de programación no servidor

Unha das primeiras solucións atopadas a este problema foi dotar aos servidores Web da capacidade de invocar a execución de programas externos sobre a petición dun cliente. Deste xeito, o cliente introduciría información nun formulario HTML que indicaría ao servidor a aplicación encargada de procesala. O servidor web se encargaría de lanzar a execución dese programa enviándolle como argumentos a información recibida a través dun protocolo denominado CGI (Common Gateway Interface)'. A saída producida pola execución da aplicación se redirixe de volta hacia o cliente (as aplicacións a ser executadas como CGI normalmente visualizan HTML). Con este sistema é posible crear programas utilizando calqueira linguaxe de programación capaz de encargarse do procesamento da información suministrada aos servidores web.

Mais adiante, desenvolvéronse linguaxes interpretados (scripting) co obxectivo de realizar esta mesma función. Os servidores web incorporan como funcionalidade (normalmente cun módulo) a posibilidade de interpretar código incluído nas propias páxinas e producir unha páxina web resultado que se envía ao navegador. Existen diversas linguaxes dispoñibles para o seu uso en scripts web, sendo o máis popular PHP. Unha tecnoloxía simple de este tipo incorporada na maioría dos servidores Web son os Server Side Includes (SSI) , que permiten un certo grao de lóxica de programación e a invocación a aplicacións e comandos externos.

Estas solucións son apropiadas para a realización de pequenas aplicacións, xa que permiten un rápido desplegue, pero a medida que a complexidade da aplicación aumenta, resulta máis difícil o seu mantemento. En particular, resulta complexo vincular a execución da aplicación a todos os clientes que a están a utilizar nun instante determiñado, xa que en realidade únicamente se están a executar scripts independentes en cada petición.

Coa idea de simplificar o mantemento das aplicacións e aumentar a súa velocidade de execución xurdiron os servidores de aplicacións. Os servidores de aplicacións ofrecen un entorno onde os clientes poden acceder a unha “aplicación” (entorno de aplicación). En cada petición non se executan scripts independentes, se non que son atendidas por unha aplicación que está funcionando permantentemente no sistema, deste xeito e moi fácil que a acción dun cliente sexa inmediatamente percibida polos demáis. A diferencia das linguaxes de script ou dos CGI, os servidores de aplicacións non precisan dun servidor web, se non que eles mesmos ademáis de encargarse da execución da aplicación poden servir páxinas HTML estáticas. Os máis populares hoxe en día son Tomcat, basado en JAVA e IIS basado en .NET.

Como resumo, as vantaxes e inconvenientes destas tecnoloxías son as seguintes:

CGI
Vantaxes:
  • Pódense realizar en calqueira linguaxe de programación, compilada ou interpretada.
  • As linguaxes compiladas execútanse a gran velocidade, sendo axeitados para a execución de procesos que requiren grande capacidade de cómputo.
  • Os CGI teñen acceso ao sistema como unha aplicación máis, cos privilexios otorgados polo servidor web.
CGI
Inconvenientes:
  • E necesario crear un proceso por cada nova petición (e poden ser moitas por segundo), e a creación de procesos é lenta, o que fai que esta tecnoloxía non sexa axeitada para sistemas que reciben moitas peticións/sg. O uso de fastCGI permite aliviar este problema.
  • O que o CGI teña pleno acceso ao sistema pode dar lugar a erros de seguridade.
Scripting
Vantaxes:
  • A execución dos scripts non precisa de creación de novos procesos, polo que son máis eficaces procesando un gran número de peticións que os CGI.
  • Permiten un desenvolvemento e implantación moi rápido.
  • A execución do script está restrinxida ao servidor web.
  • Facilidade de administración.
Scripting
Inconvenientes:
  • A execución dos scripts é máis lenta que a dos programas nativos, sendo máis lentos para tarefas de cálculo intensivo.
    E necesario unha gran disciplina para a realización de aplicacións mantibles, xa que facilitan moito o desenvolvemento rápido e “sobre a marcha” sen un deseño previo.
Servidores de Aplicacións
Vantaxes:
  • As aplicacións son normalmente fácilmente mantibles e ampliables, xa que o sistema obliga a un deseño previo.
  • Proporciónase un entorno de aplicación que facilita a comunicación entre distintos clientes da aplicación.
  • E fácil producir código reutilizable para outros propósitos.
  • Maior velocidade de execución, sobre todo en aplicacións con gran número de peticións ou con cálculo intensivo.
Servidores de Aplicacións
Inconvenientes:
  • Maior traballo de implantación. É necesario un deseño previo da aplicación e a creación da infraestructura para a mesma.
  • Maior complexidade na administración do servidor.
  • Necesidade dun software servidor de aplicacións.

Tecnoloxías de programación no cliente

Coa programación no servidor, solucionáronse a maior parte de necesidades nas aplicacións Web, pero en moitas ocasións aínda que xa se dispuña no cliente da información necesaria, era necesario o envío dunha petición ao servidor e carga dunha nova páxina para a realización de tarefas simples, como por exemplo o desplegue dun menú, ou a comprobación dunha letra do DNI. Para solucionar este problema, Netscape incorporou ao seu cliente web (navegador) a posibilidade de executar scripts incluídos nas propias páxinas mediante unha nova etiqueta (<script>) dando lugar a linguaxe JavaScript. Esta linguaxe foi adoptada mais tarde por todos os navegadores dando lugar a un estándar, do que JavaScript é un dialecto: ECMAScript. Hoxe en día JavaScript é unha linguaxe complexa con orientación a obxectos que permite a realización de aplicacións complexas, aínda que a súa misión principal é reaccionar aos distintos eventos producidos polo usuario modificando o aspecto da páxina Web (DHTML ou HTML Dinámico), ou validar as entradas dos formularios antes do seu envío ao servidor para ser procesados. Existen ademáis librerías JavaScript que permiten un uso sinxelo de JavaScript para realizar tarefas complexas de uso común, sendo a máis coñecida e utilizada JQuery. O HTML Dinámico ou DHTML consiste no emprego de JavaScript para alterar o HTML da páxina dinámicamente en resposta a distintos eventos, normalmente producidos polo usuario (clicks en botóns, movimentos do rato, etc). Outras tecnoloxías de programación no cliente consisten na descarga do servidor web dunha aplicación que posteriormente é executada empotrada no navegador mediante o uso dun plugin. Os applets JAVA e Flash son os exemplos máis comúns destas tecnoloxías. Os sistemas Windows permiten tamén a descarga e execución no sistema (en lugar de facelo dentro de un plugin no navegador) de aplicacións dun servido mediante compoñentes ActiveX. Esto pode supoñer un risco para a integridade do sistema, polo que se recurre á firma criptográfica das aplicacións e a solicitude de autorización de execución por parte do usuario. Exemplo de Script de Servidor: CGI Realizaremos un pequeño script en BASH que se encargue do procesamento de información enviada polo cliente mediante un formulario de exemplo devolvendo unha páxina de resposta.