Prévia do material em texto
1 2 SUMÁRIO 1 INTRODUÇÃO .................................................................................................. 3 2 PRINCIPAIS CONCEITOS DE WEB SERVICE ............................................... 4 2.1 Segurança .................................................................................................. 6 2.2 Tecnologias utilizadas ................................................................................ 9 3 CRIAÇÃO E UTILIZAÇÃO DE WEB SERVICE .............................................. 13 3.1 Acessibilidade à Web ............................................................................... 16 4 CONCEITO E USO DE WEB SERVICE E APIS ............................................ 19 5 FORMULÁRIOS DE UMA PÁGINA WEB ....................................................... 21 6 ACESSIBILIDADE À WEB NO BRASIL E NO MUNDO.................................. 24 6.1 Vantagens decorrentes da acessibilidade à Web .................................... 26 7 O PROTOCOLO HTTP ................................................................................... 27 7.1 Cliente ...................................................................................................... 28 7.2 Servidor .................................................................................................... 31 7.3 Métodos HTTP ......................................................................................... 32 7.4 Cookies .................................................................................................... 34 8 JAVASCRIPT .................................................................................................. 36 8.1 Como o JavaScript se diferencia das outras linguagens de programação37 8.2 As vantagens do JavaScript ..................................................................... 38 9 REFERÊNCIAS BIBLIOGRÁFICAS ............................................................... 39 3 1 INTRODUÇÃO Prezado aluno! O Grupo Educacional FAVENI, esclarece que o material virtual é semelhante ao da sala de aula presencial. Em uma sala de aula, é raro – quase improvável - um aluno se levantar, interromper a exposição, dirigir-se ao professor e fazer uma pergunta, para que seja esclarecida uma dúvida sobre o tema tratado. O comum é que esse aluno faça a pergunta em voz alta para todos ouvirem e todos ouvirão a resposta. No espaço virtual, é a mesma coisa. Não hesite em perguntar, as perguntas poderão ser direcionadas ao protocolo de atendimento que serão respondidas em tempo hábil. Os cursos à distância exigem do aluno tempo e organização. No caso da nossa disciplina é preciso ter um horário destinado à leitura do texto base e à execução das avaliações propostas. A vantagem é que poderá reservar o dia da semana e a hora que lhe convier para isso. A organização é o quesito indispensável, porque há uma sequência a ser seguida e prazos definidos para as atividades. Bons estudos! 4 2 PRINCIPAIS CONCEITOS DE WEB SERVICE Fonte: https://c2ti.com.br/ Organizações das mais diversas áreas (p. ex., fabricantes, educadores, bancários, serviços públicos e privados, comércio, indústrias, etc.) buscam cada vez mais formas sistemáticas para identificar, gerenciar e integrar os dados dos seus consumidores que estão disponíveis nos mais diversos meios de comunicação. Com o surgimento de novos serviços web e a necessidade de sistemas organizacionais, houve uma demanda por novas técnicas de comunicação e integração de dados com web service (ABINADER; LINS, 2006; CARDOSO, 2007). Um web service é um serviço com requisições e retornos de dados padronizados utilizado para integrar aplicações baseadas na web por meio do uso de XML (eXtensible Markup Language — Linguagem de Marcação Extensível, em português), SOAP (Simple Object Access Protocol — Protocolo Simples de Acesso a Objetos, em português), WSDL (Web Services Description Language — Linguagem de Descrição de Serviços Web, em português) e padrões open source, como UDDI (Universal Discovery Description and Integration — Descrição, https://c2ti.com.br/ 5 Localização e Integração Universais, em português). Ele possibilita que novas aplicações possam ser integradas com sistemas e bases legadas ou sistemas desenvolvidos em plataformas e linguagens diferentes (MCGOVERN et al., 2003). Os web services trazem agilidade para os processos de desenvolvimento de sistemas e eficiência na comunicação entre aplicações e serviços, além de serem um serviço acessível a qualquer cliente com acesso à internet. Além disso, eles permitem que toda e qualquer comunicação entre sistemas passe a ser dinâmica e, principalmente, segura, podendo possuir camadas extras de segurança, bem como ser independente de interação com os usuários (CARDOSO, 2007). Com a utilização de web service, uma aplicação pode requisitar outra para efetuar tarefas simples ou complexas mesmo que as aplicações estejam em servidores com SOs (sistemas operacionais) diferentes e tenham sido desenvolvidas com linguagens de programação desiguais. Ou seja, os web services tornam os seus recursos disponíveis, para que qualquer aplicação–cliente possa operar e extrair os recursos fornecidos, garantindo uma grande flexibilidade na integração entre várias aplicações. (CARDOSO, 2007). Esses serviços são identificados por um endereço URI (Uniform Resource Identifier — Identificador Universal de Recurso, em português), podendo ser descritos e definidos usando XML. Um dos motivos que os tornam atrativos é o fato de esse modelo ser baseado em tecnologias padronizadas, em particular XML e HTTP (HyperText Transfer Protocol — Protocolo de Transferência de Hipertexto, em português). Os web services são utilizados para disponibilizar serviços interativos na web, podendo ser acessados por outras aplicações por meio do uso do protocolo SOAP, por exemplo. (CARDOSO, 2007). De modo geral, o objetivo dos web services é permitir a comunicação de aplicações através da internet. Essa comunicação é realizada com a finalidade de facilitar a EAI (Enterprise Application Integration — Integração de Aplicações Corporativas, em português), isto é, a integração das aplicações de uma ou mais empresas (ABINADER; LINS, 2006). 6 Desse modo, há uma interoperabilidade entre a informação que circula em uma organização nas diferentes aplicações, como, por exemplo, o comércio eletrônico com os seus clientes e fornecedores de serviços. (CARDOSO, 2007). Além da interoperabilidade entre as aplicações, a EAI permite definir um workflow (fluxo de trabalho) entre as aplicações e pode constituir uma alternativa aos ERP (Enterprise Resource Planning — Planejamento de Recursos Empresariais, em português). Com um workflow, é possível otimizar e controlar os processos e as tarefas de uma determinada organização, pois ele força a padronização da troca de informações entre os sistemas que o utilizam, e todo processo de escrita e leitura de dados passa pelo mesmo serviço. Mesmo com todas essas facilidades, é possível também pensar em segurança nessa nova camada de serviço. (ABINADER; LINS, 2006). 2.1 Segurança Segundo Abinader; Lins, 2006 afirma que antigamente, muitas empresas temiam prover funcionalidades na internet, devido ao receio de expor seus dados. Todavia, com o advento dos web services, as empresas passaram a publicar seus serviços de forma simples e isolada da base de dados. As questões mais relevantes para a segurança dos web services são listadas a seguir. Autenticidade: ter a certeza de que uma transação dos web services ocorreu entre o servidor e o seu cliente. Privacidade: as mensagens trocadas entre o servidor e o cliente não podem ser interceptadas por uma pessoa não autorizada. Integridade: as mensagens enviadas pelo servidor aocliente e vice- - versa devem permanecer inalteradas. 7 Secure Socket Layer (SSL) O padrão SSL (Secure Socket Layer — Camada de Soquete Segura, em português) é aplicado a pequenos dispositivos, oferecendo autenticação, integridade de dados e privacidade de serviços. O SSL torna possível enviar informações confidenciais por meio de um mecanismo de segurança SSL sob HTTP, também conhecido como HTTPS (HyperText Transfer Protocol Secure — Protocolo de Transferência de Hipertexto Seguro, em português). Esse mecanismo protege informações confidenciais e é fácil de ser configurado, pois é aplicado como uma instalação de certificado em um servidor. (ABINADER; LINS, 2006). Contudo, o HTTPS tem como desvantagem ser mais lento do que as transações HTTP não cifradas, por não ser adequado para taxas de transferências elevadas de dados. Em virtude de ser um mecanismo de proteção no nível de transporte da camada de rede, ele apresenta restrições para ser aplicado em aplicações web services, pois o SSL não permite a criptografia de parte da informação, nem o uso de sessões seguras entre mais de duas partes, uma vez que seu funcionamento se baseia em uma arquitetura de transporte fim a fim, desde o início da transação na rede até a chegada ao cliente de destino(ABINADER; LINS, 2006). XML Signature A definição XML Signature (Assinatura XML) é uma iniciativa conjunta da Internet Engineering Task Force (IETF) e do World Wide Web Consortium (W3C) para especificar uma sintaxe XML e as regras de processamento para a criação e a representação de assinatura digital. Ao contrário de outras normas de assinaturas digitais, as vantagens na utilização da XML Signature estão baseadas na independência da linguagem de programação, na fácil interpretação humana e na independência do fabricante. Além disso, essa tecnologia permite assinar digitalmente subconjuntos de um documento XML. (ABINADER; LINS, 2006). 8 XML Encryption A iniciativa XML Encryption (Criptografia XML) especifica um processo para cifra de dados e sua representação em formato XML. Os dados podem ser arbitrários (incluindo um documento XML), elementos XML ou conteúdos de elementos XML. Um documento XML que utiliza a XML Encryption pode ser visto por qualquer utilizador, mas apenas o proprietário da chave de descodificação conseguirá compreender o conteúdo codificado. (ABINADER; LINS, 2006). Web Services Security (WS-Security) O padrão WS-Security (Web Services Security — Segurança de Serviços Web, em português) é uma iniciativa conjunta de empresas, como Microsoft, IBM e Verisign, destinada ao uso da XML Signature e da XML Encryption para fornecer segurança às mensagens SOAP. O WS-Security é um esforço destinado a fazer os web services trabalharem melhor em um ambiente global. Além disso, ele também inclui alguns importantes componentes, como encaminhamento, confiança e tratamento de transações. (ABINADER; LINS, 2006). Security Assertion Markup Language (SAML) O SAML (Security Assertion Markup Language — Linguagem de Marcação para Autorização de Segurança, em português) é um padrão emergente para a troca de informações sobre autenticação e autorização. Ele soluciona um importante problema para as aplicações da próxima geração: a possibilidade de os utilizadores transportarem seus direitos entre diferentes web services, o que é importante para aplicações que tencionam integrar um número de web services para formar uma aplicação unificada. (ABINADER; LINS, 2006). 9 2.2 Tecnologias utilizadas Para a representação e a estruturação dos dados nas mensagens recebidas/ enviadas, utiliza-se o formato XML. As chamadas às operações, incluindo os parâmetros de entrada/saída, são codificadas no protocolo SOAP (baseado em XML). Os serviços (p. ex., operações, mensagens, parâmetros, etc.) são descritos utilizando a linguagem WSDL, e o processo de publicação/pesquisa/ descoberta de web service utiliza o protocolo UDDI (HANSEN, 2007). eXtensible Markup Language (XML) O formato XML é a base em que os web services são construídos, pois fornece a descrição, o armazenamento e o formato da transmissão para trocar os dados através dos web services. A sintaxe de XML utilizada nas tecnologias dos web services especifica como os dados são representados genericamente, definindo como e com que qualidade de serviço esses dados são transmitidos, bem como de que forma os serviços são publicados e descobertos. (HANSEN, 2007). Simple Object Access Protocol (SOAP) O SOAP baseia-se em uma invocação remota de um método e, portanto, necessita especificar o endereço do componente, o nome do método e os argumentos para ele. Esses dados são formatados em XML, com determinadas regras, e enviados normalmente por HTTP para o componente. Contudo, o SOAP não define ou impõe qualquer semântica, quer seja o modelo de programação, quer seja a semântica específica da implementação. Esse aspecto é extremamente importante, pois permite que tanto o serviço como o cliente que invoca o serviço utilizem aplicações desenvolvidas sobre diferentes linguagens de programação (KALIN, 2013). Desse modo, o SOAP tornou-se uma norma aceita para se utilizar com web service, uma tecnologia construída com base em XML e HTTP. Por meio dele, pretende-se garantir a interoperabilidade e a intercomunicação entre diferentes 10 sistemas através da utilização da linguagem XML e do mecanismo de transporte HTTP ou outro, como, por exemplo, SMTP. O SOAP permite que os documentos XML de envio e de recepção sobre a web suportem um protocolo comum de transferência de dados para uma comunicação de rede eficaz; ou seja, ele providencia o transporte de dados para os web services. (HANSEN, 2007). Em relação à web, o SOAP é um protocolo de RPC (Remote Procedure Call — Chamada de Procedimento Remoto, em português) que funciona, em geral, sob HTTP, de forma a ultrapassar as restrições de segurança/ firewalls normalmente impostas aos sistemas clássicos de RPC (RMI, DCOM, CORBA/IIOP), suportando mensagens XML. Em vez de utilizar HTTP para pedir uma página HTML para ser visualizada em um browser, o SOAP envia uma mensagem de XML através do pedido HTTP e recebe uma resposta, quando existir, através do HTTP. Para assegurar corretamente a transmissão da mensagem de XML, o servidor de HTTP, como o Apache ou o IIS (Internet Information Server — Servidor de Informação da Internet, em português) da Microsoft, recebe mensagens SOAP e deve validar e compreender o formato do documento XML, definido na especificação SOAP v1.1 (KALIN, 2013). Web Services Description Language (WSDL) O padrão WSDL é baseado em XML para descrever o serviço e traz os métodos do web service. Ele funciona como uma espécie de “TypeLibrary” do web service, além de ser utilizado para a validação das chamadas dos métodos. O WSDL é uma especificação desenvolvida pelo W3C que permite descrever os web services segundo um formato XML. Além disso, ele é extensível para permitir a descrição dos serviços e suas mensagens, independentemente dos formatos de mensagem e dos protocolos de rede que sejam utilizados. No entanto, é comum utilizar o MIME (Multipurpose Internet Mail Extensions — Extensões Multifunção para Mensagens de Internet, em português) e o HTTP via SOAP. (HANSEN, 2007). O WSDL também descreve os serviços disponibilizados à rede através de uma semântica XML, providenciando a documentação necessária para se chamar 11 um sistema distribuído e o procedimento necessário para que essa comunicação se estabeleça. Enquanto o SOAP especifica a comunicação entre um cliente e um servidor, o WSDL descreve os serviços oferecidos (HANSEN, 2007). Universal Discovery Description and Integration (UDDI) O UDDI é um protocolo desenvolvido para a organização e o registro de web services (MCGOVERNet al., 2003). Web Services Interoperability (WS-I) O consórcio WS-I (Web Services Interoperability — Interoperabilidade de Serviços Web, em português) garante a integração entre os web services para possibilitar que os web services possam “conversar entre si”. (HANSEN, 2007). JavaScript Object Notation (JSON) O JSON (JavaScript Object Notation — Notação de Objetos JavaScript, em português) é um formato leve para intercâmbio de dados computacionais. Apesar do seu nome, ele não requer o uso de JavaScript exclusivamente. A simplicidade do JSON tem resultado em seu uso difundido, principalmente como uma alternativa para XML em AJAX. Nesse contexto, uma das vantagens reivindicadas do JSON sobre o XML como um formato para intercâmbio de dados é o fato de ser mais fácil escrever em um analisador JSON. Em JavaScript, o JSON pode ser analisado trivialmente utilizando-se a função eval. Isso foi importante para a aceitação do JSON dentro da comunidade AJAX, devido à presença desse recurso de JavaScript em todos os navegadores web atuais. (HANSEN, 2007). Em geral, o JSON é utilizado em ambientes em que o tamanho do fluxo de dados entre o cliente e o servidor é de suma importância (daí seu uso por Google, Yahoo!, etc., os quais servem milhões de usuários), em que a fonte dos dados pode ser explicitamente confiável e em que a perda dos recursos de processamento XSLT (eXtensible Stylesheet Language Transformations — Linguagem de Folhas de Estilo Extensível para Transformações, em português) no lado cliente para a 12 manipulação de dados ou a geração da interface não é uma consideração. (HANSEN, 2007). Embora o JSON seja frequentemente posicionado em confronto com o XML, não é incomum ver tanto o JSON como o XML sendo utilizados na mesma aplicação. Por exemplo, uma aplicação no lado cliente, a qual integra dados do Google Maps com dados atmosféricos através de SOAP, requer suporte para ambos os formatos de dados. (HANSEN, 2007). Existe um crescente suporte para o JSON por meio do uso de pequenos pacotes de terceiros. A lista de linguagens suportadas inclui ActionScript, C/C++, C#, ColdFusion, Java, JavaScript, OCaml, Perl, PHP, ASP 3.0, Python, Rebol, Ruby e Lua. (HANSEN, 2007). 13 3 CRIAÇÃO E UTILIZAÇÃO DE WEB SERVICE Fonte: https://www.opensoft.pt/web-service/ Segundo Prescott, 2015 a criação e a publicação de um web service, tem- se a necessidade de testá-lo, por meio de aplicações–cliente genéricas já desenvolvidas ou com a criação de um próprio serviço de teste. Agora, veremos como ocorre a construção de um web service e um cliente para poder testá-lo. Para isso, utilizaremos a linguagem PHP nativa em sua versão 7. Primeiro, é preciso implementar o serviço: https://www.opensoft.pt/web-service/ 14 15 Com a implementação do serviço, é preciso possuir um cliente para poder testar e consumir os métodos implementados. Com isso, criaremos uma aplicação web também em PHP para poder testar: 16 Essa implementação em PHP foi feita de maneira simplificada para demonstrar o desenvolvimento e como funciona a estrutura da implementação, mas isso não quer dizer que não existam outras formas de exemplificar. (PRESCOTT, 2015). 3.1 Acessibilidade à Web A World Wide Web foi criada com o objetivo de romper as barreiras físicas, geográficas e culturais ao proporcionar o acesso à informação, independentemente da região na qual o usuário esteja situado. Ao migrar para a Web serviços antes disponíveis apenas de forma local, a Internet tem proporcionado aos indivíduos a liberdade de localizar grande parte daquilo que desejam, sem a necessidade de deslocamento físico. Neste contexto, percebe-se que tais facilidades não são utilizadas apenas de modo recreativo, mas também como forma de os usuários poderem participar, de forma ativa, na sociedade (Costa, 2007). Porém, em diversas situações, nota-se que os websites disponíveis não permitem o acesso de forma igualitária a todos os indivíduos da sociedade. De acordo com o World Wide Web Consortium (1999), o conceito formal de acessibilidade à Web refere-se à possibilidade de interação com sistemas computacionais por todos os indivíduos, independentemente de possuir algum tipo de necessidade especial, seja visual, auditiva, física, vocal, cognitiva ou neurológica. Do ponto de vista de tecnologia da informação, acessibilidade à Web relacionasse ao conceito de interfaces perceptíveis, operáveis e de fácil entendimento a todos os usuários de sistemas computacionais (MARTINS, 2008). Desta forma, pode-se afirmar que a acessibilidade à Web está inserida no contexto da flexibilização do acesso à informação contida na Internet, sem discriminação de grupos de usuários específicos. Além disto, a diminuição de barreiras virtuais impostas a determinados grupos de usuários acarreta maior 17 acesso a indivíduos que não possuem nenhum tipo de necessidade especial (HENRY, 2007). Outro aspecto importante a ser ressaltado consiste no fato de a Internet ser a principal forma de interação social de determinados usuários com problemas funcionais. Por exemplo, para um usuário sem deficiência, o ensino virtual à distância mostra-se como mais uma opção de estudo. Todavia, para um usuário com necessidade especial visual, é essencial a possibilidade de adquirir conhecimento sem ter que enfrentar os riscos que o mundo físico impõe. (MOURA,2009) Diante do exposto, não se deve situar o termo acessibilidade apenas em questões solidárias ou humanas, mas sobretudo em aspectos econômicos, já que o acesso global à informação proporciona um aumento significativo nas transações comerciais virtuais. (MOURA,2009) De acordo com Tangarife 2007, o projeto universal consiste na busca pela comodidade, conveniência, segurança, usabilidade e acessibilidade de forma equitativa e equivalente para qualquer indivíduo, durante a fase de projeto e construção do produto a ele destinado, a fim que ao final do processo não seja necessária qualquer alteração ou adaptação do produto. Para que seja possível a criação de um produto conforme aos moldes do projeto universal, é necessário que o processo de construção fundamente-se em diversos princípios, assim sumariados (DIAS, 2010): Uso equitativo: Os produtos devem ser utilizáveis por qualquer indivíduo, produzindo resultados idênticos ou equivalentes; Uso flexível: O projeto precisa ser adaptado a um largo alcance de preferências e habilidades individuais e possibilitar que o usuário faça sua escolha na forma de utilização; Uso simples e intuitivo: O projeto deve ser criado de modo a ser de fácil entendimento, independentemente da experiência prévia, conhecimento, 18 linguagem e grau de concentração do usuário, sendo eliminada qualquer complexidade desnecessária; Informação de fácil percepção: O projeto deve comunicar, necessariamente, informações efetivas ao usuário, independentemente das condições do ambiente e de suas habilidades sensoriais; Tolerância ao erro: O projeto deve minimizar os riscos e as consequências adversas de acidentes, organizando de forma mais protegida os elementos que oferecem algum perigo em potencial; Baixo esforço físico: O projeto deve ser usado de forma eficiente e confortável, exigindo um mínimo de energia e permitindo que o usuário mantenha a posição corporal neutra, sendo de moderada intensidade a força necessária para utilizá-lo; e Dimensão e espaço para aproximação e uso: O resultado do projeto deve ser de tamanho adequado e o espaço no qual for utilizado deve ser apropriado para o acesso, a manipulação e o uso, independentemente das dimensões docorpo, postura ou mobilidade do usuário 19 4 CONCEITO E USO DE WEB SERVICE E APIS A API (Application Programming Interface — Interface de Programação de Aplicações, em português) é definida como uma coleção de rotinas e padrões estabelecidos por um sistema, fornecendo acesso externo às suas funcionalidades, não necessariamente por meio de acesso à implementação, mas de maneira abstrata, independente de programação. (PRESCOTT, 2015) De modo geral, a API é definida como uma biblioteca que fornece um conjunto de funções para sistemas utilizadores. Na prática, um bom exemplo de API é o funcionamento de um SO de dispositivo móvel, como Android ou iOS. Dentro da sua implementação, tem-se funções internas (p. ex., acesso ao hardware de câmera, acelerômetro, sensor de brilho, áudio, etc.), bem como outras chamadas mais interativas com o usuário (p. ex., chamada de um atalho para abrir um aplicativo, alterar o brilho da tela, reproduzir mídias, etc.). No entanto, as APIs mais comuns são os chamados plugins de aplicações. Por exemplo, ao desenvolver um sistema baseado em componentes, utilizam-se bibliotecas já com validação de dados, formatação de valores, entre outros, constituindo exemplos práticos de utilização de API. (PRESCOTT, 2015) Web service e API É possível considerar um web service como uma API, contudo, nem toda API é considerada um web service. O web service é uma coleção de protocolos e padrões de código aberto utilizada para a troca de dados entre sistemas ou aplicativos na internet. Em contrapartida, a API é uma interface de software que permite que dois aplicativos interajam entre si sem o envolvimento do usuário e de maneira independente da internet. (PRESCOTT, 2015) 20 Portanto, pode-se dizer que os modelos de web services e APIs são distintos, mas podem se complementar, dependendo dos seus cenários de aplicação. (PRESCOTT, 2015) 21 5 FORMULÁRIOS DE UMA PÁGINA WEB Em uma página web, um formulário é utilizado para agrupar um conjunto de elementos HTML com o objetivo de captar ou disponibilizar uma informação. Esses elementos são conhecidos por possuir atributos ou campos de formulário, podendo ser de diversos tipos, como campos para edição de conteúdo, listas de seleção de itens, caixas de múltipla escolha, botões que executam ações, entre outros (PRESCOTT, 2015). Normalmente, é por meio de um formulário que um usuário consegue interagir com um sistema web. Essa interação ocorre em diversos momentos, por exemplo, na entrada do site, por meio de uma tela que realiza login; em uma página de contato, para enviar uma mensagem; em uma tela para realizar um pedido de compras; ou até mesmo em uma página que realiza pesquisas na intranet. (PRESCOTT, 2015) Formulários são utilizados para padronizar a entrada e a saída de dados. Essa padronização se dá pela apresentação dos campos que atendem a determinadas funcionalidades, como um cadastro de produtos, a baixa de um artefato no estoque ou a exibição das características de determinado produto. (PRESCOTT, 2015) Por trás de um formulário em uma página web, exibida no navegador do usuário, há um servidor de aplicação que irá interagir com essa página, ou seja, a página web do usuário irá enviar e receber dados desse servidor em operações conhecidas por solicitação e resposta (FLATSCHART, 2011). 22 Ao submeter dados em um formulário, o navegador envia essa informação para um servidor que fará o processamento por meio de uma linguagem de programação web, como o PHP. Após processar a informação, o servidor envia a resposta ao navegador do usuário para que possa ser exibida na tela. (FLATSCHART, 2011). Para implementar um formulário web você vai precisar de uma ferramenta de desenvolvimento de páginas HTML, que pode ser um simples editor de textos ou um Integraded Development Environment (IDE) – ou ambiente de desenvolvimento integrado. (FLATSCHART, 2011). Existem diversas ferramentas no mercado, muitas delas disponibilizam vários recursos que facilitam e agilizam o desenvolvimento, como a apresentação em destaque dos elementos no código-fonte e a opção de autocompletar os comandos. (FLATSCHART, 2011). Algumas ferramentas de edição disponibilizam a facilidade de implementar e visualizar uma página web no mesmo ambiente, sem ter que programar linhas de código-fonte. Por meio de assistentes, você consegue incluir e dispor elementos HTML na sua página, sem se preocupar em conhecer os comandos da linguagem. 23 No entanto, é preciso ficar atento, pois essa facilidade coloca em risco a legibilidade do código-fonte, uma vez que a ferramenta irá acrescentar diversas linhas de código que podem poluir o seu programa, aumentado a complexidade de entendimento das funcionalidades implementadas. (FLATSCHART, 2011). Um ponto importante sobre os formulários é a questão da validação da entrada de dados. Você viu que um formulário submete informações a um servidor, contudo, precisa estar atento para que essas informações sejam coletadas de forma precisa e correta. (FLATSCHART, 2011). Imagine se em um campo data de um formulário, por exemplo, o usuário insere valores que não correspondem a uma data válida. Isso provavelmente irá comprometer a confiabilidade dos dados e reduzir a credibilidade do sistema. Para resolver isso, é uma boa prática validar os dados sempre que possível. Essa validação pode ser realizada de duas formas: a primeira é feita no navegador do usuário, por meio de comandos que analisam os dados antes de enviá-los ao servidor; já a segunda forma verifica os dados no próprio servidor, porém antes de utilizá-los (CROWTHER et al., 2014). 24 6 ACESSIBILIDADE À WEB NO BRASIL E NO MUNDO O W3C é um consórcio internacional que trabalha em conjunto com a sociedade, com o objetivo de prover padrões para a Web. Uma das metas desta organização é prover o acesso à Web a todos as indivíduos, em qualquer tipo de sistema computacional. Em 1999, o W3C criou a World Accessibility Initiative (WAI). Esta iniciativa tem como objetivo desenvolver diretivas relacionadas à acessibilidade à Web, com a finalidade de padronizar a criação de websites. Neste contexto, foi proposto um conjunto de diretivas para acessibilidade de conteúdo Web, Web Content Accessibility Guidelines 1.0, que consiste em um documento explicativo referente à elaboração de conteúdos Web destinados a todos os indivíduos, independentemente de sua necessidade especial. Atualmente, o W3C está trabalhando na implementação da versão 2.0 do documento de diretrizes, com o objetivo de adequá-lo ao nível tecnológico atual. Além disto, o consórcio também possui outras iniciativas, relacionadas à acessibilidade à Web, a saber: (i) UAAG, responsável pela criação das diretivas para a acessibilidade nos agentes; e (ii) ATAG, responsável pela criação de diretivas para ferramentas de autor. (FREIRE, CASTRO E FORTES, 2009). De acordo com a organização Mundial de Saúde (OMS), o número de indivíduos no mundo que apresentam algum tipo de necessidade especial ou incapacidade pode chegar a 10% da população. Como consequência, criou-se o plano de ação ―Disability and rehabilation Action-Plan 2006-2010‖, cujo objetivo é o provimento de iniciativas de integração de indivíduos com necessidades especiais, a partir da conscientização da realidade destes indivíduos. (FREIRE, CASTRO E FORTES, 2009). Na Europa, a discussão acerca da acessibilidade à Web iniciou-se em 2001, a partir da emissão de um comunicado da Comissão Europeia ao Conselho Europeu, ao Parlamento Europeu, ao Comitê Econômico e Social e ao Comitê das Regiões, com o objetivode abranger o plano eEurope 2002, cuja a finalidade era 25 melhorar o acesso à Web por indivíduos portadores de algum tipo de necessidade especial (Martins, 2008). Posteriormente, criou-se o plano de ação ―eEurope 2005‖, que tinha como foco o fortalecimento da economia digital e a consequente inclusão de indivíduos com necessidades especiais no mercado de trabalho virtual. Atualmente, a União Europeia está implementando o plano i2010. Adicionalmente, a Comissão Europeia apresentou o comunicado eAcessibility, o qual torna o plano de ação i2010 mais completo. (FREIRE, CASTRO E FORTES, 2009). Os Estados Unidos iniciaram as discussões acerca do problema da inclusão social a partir da Web ao criarem a lei Section 508, cuja finalidade era a regulamentação de websites das agências federais e estatais, com o objetivo de verificar o cumprimento de regras de acessibilidade propostas pela própria lei (MARTINS, 2008). No ano de 2005, o Massachusetts Institute of Technology (MIT) publicou um conjunto de regras para a acessibilidade virtual. Embora mais resumido do que o WCAG 1.0, este documento se mostra mais voltado para a prática da implementação das técnicas de criação de websites acessíveis. Visando a garantia do pleno acesso aos conteúdos disponíveis na Web, o governo brasileiro promulgou em 2004 o Decreto-Lei no. 5.296, o qual determina explicitamente a obrigatoriedade da observância das questões relativas à acessibilidade em portais e websites do governo (FREIRE, CASTRO E FORTES, 2009). De acordo com Freire, Castro e Fortes (2009), pesquisas recentes na área apontam para o não cumprimento do Decreto-Lei no. 5.296/2004 por parte das instituições governamentais, já que grande parte dos portais do governo ainda não atende satisfatoriamente às recomendações de acessibilidade tidas como consensuais. Considerando pesquisas na área com relação à acessibilidade de sistemas Web, pode-se concluir que a consolidação de uma metodologia de avaliação de websites é essencial para nortear o desenvolvimento de websites governamentais, de forma que venham a atender às determinações do Decreto-Lei no. 5.296/2004. 26 6.1 Vantagens decorrentes da acessibilidade à Web Ao discutir problemas referentes à acessibilidade à Web, tende-se a focalizar o lado social da questão. Porém, tornar a Internet livre de barreiras é também uma visão de mercado. O pleno acesso a websites por indivíduos com necessidades especiais acarreta maior exposição do produto/serviço e, como consequência, torna-os mais atrativos frente a um mercado financeiro altamente competitivo (COSTA, 2007). Além disto, a acessibilidade acarreta maior usabilidade do produto. Ao dotar um website de acessibilidade, obtém-se um produto mais fácil de ser usado, mesmo por indivíduos que não possuam nenhum tipo de limitação. (COSTA, 2007). De acordo com Lawson (2006), o website é composto, na sua forma básica, por texto e figuras e, em alguns casos, sons. Ao promover o uso adequado do CSS e XHTML, obtém-se a redução do tamanho do website à metade e, como conseqüência, a redução nos custos em termos de largura de banda e diminuição de tempo de resposta do website. Outro fator importante é que a acessibilidade promove maior adaptação do produto às diversas tecnologias, e.g., computação móvel, computadores sem mouse ou menos potentes, conexão lenta, dentre outras. (COSTA, 2007). Além disto, um website acessível é indexado de forma mais rápida e precisa pelos mecanismos de busca, acarretando maior exposição do produto/serviço na Internet (COSTA, 2007). Por fim, pode-se afirmar que um sistema Web dotado de acessibilidade está protegido legalmente em face das leis que regulamentam a acessibilidade de websites. (COSTA, 2007). 27 7 O PROTOCOLO HTTP O HTTP – Protocolo de transferência de Hipertexto (Hypertext Transfer Protocol) é um protocolo da camada de aplicação da internet, segundo Kurose, 2006 o HTTP está dividido em duas partes, o programa cliente e o programa servidor, os dois programas são executados em máquinas diferentes, conversam um com o outro por meio de mensagens HTTP. O HTTP define a estrutura destas mensagens e o modo como são trocadas entre o cliente e o servidor. As páginas webs são constituídas por documentos ou arquivos da vários formatos como comentado acima, essas páginas são construídas com HTML (HyperText Markup Language, que significa Linguagem de Marcação de Hipertexto) é a linguagem padrão para a programação de páginas web, a pagina construída em linguagem HTML é interpretada por um browser ou navegador, que em HTTP é considerado como cliente. As páginas ou textos HTML também são considerados como documentos pelo protocolo HTTP, essas definições são explicadas melhor por (KUROSE, 2006) quando o autor fala sobre páginas web: Uma página web (também denominada documento) é construída de objetos. Um objeto é simplesmente um arquivo – tal como um arquivo HTML, uma imagem JPEG, uma imagem GIF, um Applet Java, um clipe de áudio e assim por diante – que se pode acessar com um único URL. A maioria das páginas web é construída de um arquivo-base HTML e diversos objetos referenciados. Por exemplo, se uma página web contiver um texto HTML e cinco imagens JPEG, então ela terá seis objetos: arquivo- base HTML e mais cinco imagens. (...) Páginas web se encontram em um servidor web, onde podem estar várias outras páginas. O cliente ou usuário acessa essa página através de um navegador que interpreta o código HTML e constrói a página a ser visualizada por ele. Uma explicação mais simplificada do funcionamento seria a seguinte: o cliente faz uma requisição de uma página ao servidor através do protocolo HTTP e o servidor responde ao cliente com à página solicitada. (COSTA, 2007). 28 7.1 Cliente Um navegador é essencialmente um programa que pode exibir uma página uma página web, mas primeiro é necessário encontrar a página, e como o navegador faz isso? Através da URL (Uniform Resource Locators, que quer dizer: Localizador Padrão de Recursos), as URLs podem ser comparadas com ponteiros que apontam para um determinado local, neste casso para uma página web. (TENEMBAUM, 2003) Segundo Tenembaum, 2003 as URL são os identificadores universais da página, ou seja, não existem URLs repetidas, seria como o CPF de uma pessoa no Brasil. 29 As URLs são formadas por três partes: a primeira e o tipo de protocolo que está sendo usado, a segunda o nome DNS da máquina ou servidor em que está a página e por último o nome especifico da página, normalmente o nome do arquivo que a pagina representa. Um exemplo, a URL para a página principal da Universidade do Estado de Mato Grosso – campus de Colíder-MT é a seguinte: URL: http://www.unematcolider.org/site/ A primeira parte da URL acima destacada pela cor preta mostra a primeira parte que diz respeito ao protocolo que esta sendo usado, neste casso o http://, a segunda parte destacada pela cor verde mostra o DNS da máquina que ostenta a página www.unematcolider.org, também conhecido como nome do Host, e a terceira e última parte destacada na cor vermelha é o nome do arquivo /site/, segundo (TANEMBAUM, 2003) o nome do arquivo é um caminho relativo ao diretório da Web padrão em www.unematcolider.org Pode-se destacar que, sob o ponto de vista do usuário, uma solicitação de uma página HTML se resuma, as vezes, em apenas um clique do mouse, na verdade ela frequentemente da origem a várias solicitações HTTP que são enviadas do browser para o servidor web, que são seguidas por suas respostas enviadas de volta pelo servidor. (TENEMBAUM, 2003) Quando um usuário clica em um Hyperlink, o navegador executa uma série de etapas realizadas em sequência, para buscar a pagina indicada pelo Hyperlink. E sequência de passos que o navegador realiza é demonstrada abaixo descrita por(TANEMBAUM, 2003): 1. O navegador determina o URL (verificando o que foi selecionado). 2. O navegador pergunta ao DNS qual é o endereço IP de www.unematcolider.org. 3. O DNS responde com 200.140.76.75. 4. O navegador estabelece uma conexão TCP com a porta 80 em 20.140.76.75. 5. Em seguida, o navegador envia um comando solicitando o arquivo /site/. http://www.unematcolider.org/site/ http://www.unematcolider.org/ 30 6. O servidor www.unematcolider.org envia o arquivo /site/. 7. A conexão TCP é encerrada 8. O navegador exibe todo o texto de /site/. 9. O navegador busca e exibe todas as imagens que o arquivo contém. Nem todas as páginas web contém documentos no formato HTML, as páginas podem conter documentos com vários tipos de extensões que podem ser vinculados a um documento HTML, em vez de se construir navegadores que interpretem todos os tipos de formatos, o que não seria viável porque os navegadores ficariam enormes, para poderem interpretar todos os formatos existentes, e que vem crescendo a cada dia. Uma solução encontrada para esse problema é o MIME (Multipurpose Internet Mail Extensions, que em português quer dizer: Extensões Multi função para Mensagens de Internet). Quando um servidor retorna uma página ele envia algumas informações adicionais como MIME. Em (TANEMBAUM, 2003) o autor explica claramente esse processo: “Páginas do tipo text/html são exibidas diretamente, como também as páginas criadas em alguns outros tipos internos. Se o tipo MIME não for um dos tipos internos, o navegador consulta sua tabela de tipos MIME para saber como exibir a página. Essa tabela associa um tipo MIME a um visualizador” O plug-in é uma extensão para o próprio navegador, e tem acesso a página atual, quando o usuário termina seu trabalho e o plug-in não e mais utilizado ele é retirado da memória. (TANEMBAUM, 2003) 31 O que o autor quer dizer quando fala de uma aplicação auxiliar é que quando o navegador não consegue interpretar um documento por exemplo um arquivo PDF, ele procura no registro do sistema operacional um programa para visualizar o documento, no caso do PDF, no sistema Windows (por exemplo) ele chama o programa Acrobat Reader ou qualquer outro que esteja instalado no sistema que seja capas de abrir o arquivo. (TENEMBAUM, 2003) 7.2 Servidor Segundo Kurose, 2006 um servidor é uma aplicação, que espera passivamente de forma assíncrona por um conexão e não o computador em que a aplicação é executado, sendo assim, é incorreto afirmar que um computador com um processador rápido e de alta potencialidade de Hardware seria um servidor. De certa forma um servidor web se divide em três partes o servidor propriamente dito a rede e o browser (cliente). Teixeira, 2010 define servidor web como: “Um servidor web está sempre em um laço infinito, permanentemente aguardando por requisições dos clientes. Nesta espera, existem alguns atrasos que são inevitáveis, como a espera pela transmissão dos dados na rede, o acesso ao disco do servidor, o escalonamento dos processos pelo sistema operacional, entre outros. O servidor, portanto, deve ser 32 projetado de modo a atender o maior número de requisições que lhe seja possível”. Para o cliente solicitar algo ao servidor ele utiliza métodos para fazer requisições ao servidor, assim como o servidor também utiliza-se de métodos para enviar a respostas as solicitações dos clientes, os métodos HTTP serão tratados com mais detalhes na próxima sessão. (KUROSE, 2006) 7.3 Métodos HTTP O protocolo HTTP define um conjunto de métodos que o cliente pode invocar, que funcionam como comandos enviados ao servidor web. O protocolo HTTP 1.0, descrito na RFC 1945 (Berners-Lee et al., 1996), são eles GET HEAD e POST. As mensagens de requisição e resposta do protocolo HTTP seguem um padrão, uma requisição é constituída de uma linha informando o método a ser executado em seguida de um cabeçalho que pode ter mais de uma linha e por último o corpo da mensagem caso seja necessário. (KUROSE, 2006) Segundo Tanembaum, 2003 o método GET é uma solicitação ao servidor de envio de página ou objeto exemplo: 33 Neste modelo de requisição podemos notar que na primeira linha está o tipo do método (GET) o arquivo solicitado e por último o modelo do HTTP usado na segunda linha está o endereço do host, de onde está hospedado o objeto, Connection: close mostra que não é uma conexão persistente, User-agente: informa o browser utilizado e Accept-language: referese a linguagem que o é solicitada, caso ela não exista no domínio será usado a linguagem default. (KUROSE, 2006) A resposta do servidor deve ser: Analisando a mensagem de resposta identificamos na primeira linha o estado da solicitação que no modelo a cima está OK, o servidor está enviando o objeto solicitado, Connection: close, está informando que é uma conexão não persistente, Date, é a data de acesso ao objeto, Serve, o tipo de servidor web, Last- Modified, data da última alteração ou criação do arquivo Content-Length, tamanho do arquivo e por último Content-Type, reponsavel por informar o tipo do arquivo. A baixo segue relação dos métodos usados segundo Kurose, 2006: GET: Método que solicita algum recurso ou objeto ao servidor HEAD: Solicita informações de um determinado objeto sem que esse seja enviado ao cliente apenas para testa a validade do ultimo acesso. POST: Método usado para envio de arquivo dados ou formulário HTML ao servidor. 34 OPTIONS: Por meio desse método o cliente obtém as propriedades do servidor. DELETE: Informa por meio do URL o objeto a ser deletado. TRACE: Para enviar mensagem do tipo loopback para teste. PUT: Aceita criar ou modificar algum objeto do servidor. CONNECT: Comunicar com servidores Proxy. 7.4 Cookies O termo cookie é derivado do inglês que significa bolacha. Recebeu esse nome de uma antiga gíria usada pelos programadores que consistia em um programa chamava um procedimento e recebia de volta algo que seria necessário apresentar novamente mais tarde para realizar algum trabalho. Foi criado pela Netscape para solucionar o problema do envio e solicitação de arquivos, que era esquecido pelo servidor e que poderia ser usado por outros computadores com o mesmo IP conforme o que causava problemas, pois não se sabia na realidade se era ou não aquele usuário mesmo. (TANEMBAUM, 2003), Os cookies são arquivos ou strings e não são programas executáveis. Eles são tratados como dados pelo navegador, não existe nenhuma maneira dele ser usado como vírus, apensar de que podem ser explorados bugs no servidor e causar a ativação de um cookie como vírus, por um hacker. (TANEMBAUM, 2003), Basicamente ele é um grupo de dados trocados entre o servidor de páginas e o navegador colocado em um ficheiro criado no computador do usuário. Serve para manter a persistência das sessões HTTP. (TANEMBAUM, 2003), Ele funciona da seguinte forma: Um usuário solicita uma página da Web, nisso o servidor pode fornecer informações adicionais acompanhando a página solicitada. Essas informações podem incluir um cookie, um pequeno arquivo ou string (com 4 KB no máximo). Este cookie pode ter até 5 campos: Domain, Path, Content, Expires, Secure. (TANEMBAUM, 2003), 35 Domain informa de onde veio o cookie. O navegador confirma que os servidores estão enviando dados fieis a respeito de seu domínio. Cada domínio pode armazenar no máximo 20 cookies por cliente. O campo Path é um caminho na estrutura de diretórios do servidor que identifica as partes da arvores de arquivos do servidor que podem usar o cookie. Frequentemente, ele obtém o símbolo / (barra), que representa a arvore inteira. O campo Content utiliza a forma nome = valor, podendo o servidor definir da maneira que quiser tanto o valor quanto o nome, e é nele quefica armazenado o conteúdo do cookie. Expires é o campo que faz o cookie persistir, nele contem a data e o horário, e se ele estiver ausente o navegador descartara automaticamente após o termino da seção. O último campo define se ele é seguro ou não. (TANEMBAUM, 2003), O cookie é usado para identificar um usuário que configurou uma pagina web, para que na próxima vez que ele entrar ela esteja configurada do modo em que ele deixou. Pode ser usado também quando se faz a solicitação de armazenamento de senha, na vez posterior em que entrar no site, a sua senha será lembrada. É usado também em sites de compra, como e-commerce, armazenando os produtos que o cliente colocou no carrinho para que no final da compra não necessite fazer todo o processo novamente. (TANEMBAUM, 2003) 36 8 JAVASCRIPT JavaScript é uma linguagem de programação criada por Brendan Eich quando ele trabalhava na Netscape Communications Corporation em 1995. Ele foi originalmente projetado para rodar no Netscape Navigator, com o objetivo de fornecer aos desenvolvedores uma maneira de tornar determinados processos da Web mais dinâmicos, tornando seu uso mais agradável. Um ano após o seu lançamento, a Microsoft transportou o idioma para seus navegadores, o que ajudou a consolidar o idioma e torná-lo uma das tecnologias mais importantes e comumente usadas na Internet. (SILVA, 2015) Apesar de usar o nome JavaScript, Java não deve ser confundido com a linguagem de programação Java desenvolvida pela Sun Microsystems: anteriormente, a Netscape criava linguagens que recebiam nomes como LiveScript e Mocha, mas para aproveitar o enorme sucesso de mercado da Sun, os executivos da Netscape Decidiu alterar o nome do idioma para o idioma atual. No entanto, Java e Java Script são completamente diferentes e servem a propósitos diferentes. (SILVA, 2015) 37 O JavaScript tem as características de executar programas localmente, como é dito em TI, executando programas no lado do cliente. Portanto, o JavaScript fornece programação, conversão e processamento de dados enviados e recebidos para páginas da Web, a marcação e a exibição do conteúdo da linguagem HTML e as funções de interação com estilo fornecidas pelo CSS nessas páginas. (SILVA, 2015) Os scripts de código escritos nessa linguagem e executados em um navegador podem (por exemplo) usar técnicas de programação como o AJAX para atualizar parte do conteúdo de uma página da web sem precisar carregá-lo completamente após o preenchimento do formulário. Isso permite a criação de um grande número de softwares completos e totalmente funcionais para diferentes propósitos. Por exemplo, sem JavaScript, o Google Docs nunca será executado. (SILVA, 2015) 8.1 Como o JavaScript se diferencia das outras linguagens de programação Usando a linguagem de programação Javascript, os desenvolvedores podem implementar vários projetos altamente complexos em páginas da Web, como animações, mapas, gráficos ou informações atualizadas em intervalos de tempo padrão. (ZAMPIERI, 2018) Javascript, juntamente com HTML, CSS e PHP, é a terceira camada do gráfico de setores da Web e de desenvolvimento front-end. (ZAMPIERI, 2018) Temos muitos artigos discutindo o que é HTML, o que é CSS e o que é PHP. Eles ajudarão você a entender e dominar o que é Javascript. Mesmo assim, ainda resumimos brevemente cada "nível" do bolo. (ZAMPIERI, 2018) O que é HTML? -É uma linguagem de marcação usada para dar significado e estrutura ao conteúdo da web, por exemplo, para definir títulos, parágrafos, fazer citações ou inserir imagens e vídeos. (ZAMPIERI, 2018) 38 O que é CSS? -Esta é uma linguagem de folha de estilos, sua função é tornar a página exibida na Web, diretamente relacionada ao design e aparência. (ZAMPIERI, 2018) O que é PHP? -É a linguagem de programação da página. Com ele, você pode desenvolver sites dinâmicos, extensões de aplicativos e simplificar o processo de desenvolvimento do sistema. (ZAMPIERI, 2018) O que é JavaScript? -Esta é uma linguagem de programação comportamental que permite a criação de conteúdo dinâmico, controles de mídia e animações para tornar seu site mais interativo e interessante. (ZAMPIERI, 2018) 8.2 As vantagens do JavaScript Segundo Zampieri, 2018 o JavaScript tem muitas vantagens, sendo a melhor escolha entre os concorrentes. Especialmente em certos tipos de usos e situações. Aqui estão alguns benefícios do uso da linguagem JS: 1. Você não precisa de um compilador, porque o navegador da Internet usa HTML para interpretar o compilador. 2. Mais fácil de aprender do que outras linguagens de programação; 3. Os erros são mais fáceis de encontrar, para que possam ser corrigidos; 4. Ele pode ser atribuído a determinados elementos do site ou eventos específicos, como cliques personalizados do mouse e rolagem; 5. Totalmente compatível com várias plataformas e navegadores; 6. Você pode verificar entradas e reduzir a necessidade de verificação manual de dados; 7. Torna o site mais interativo e atrai a atenção dos visitantes por um longo período de tempo, que é a característica que define a experiência do usuário (UX). 8. É mais rápido e mais leve que outras linguagens de programação. 39 9 REFERÊNCIAS BIBLIOGRÁFICAS ABASCAL, J.; ARRUE, M.; VIGO, M. in THATCHER, J.; S. L. Henry; et al. Web Accessibility: Web Standards and Regulatory Compliance, Friends of Ed. 2006. ABINADER, J. A.; LINS, R. D. Web services em Java. Rio de Janeiro: Brasport, 2006. 288 p ALMEIDA, L.; BARANAUSKAS, C. Universal Design Principles Combined with Web Accessibility Guidelines: A Case Study. In IHC 2010 – IX Simpósio Sobre Fatores Humanos em Sistemas Computacionais. Outubro 5- 8, 2010, Belo Horizonte, MG, Brasil. CARDOSO, J. Semantic web services: theory, tools and applications. Hershey: IGI Global, 2007. 372 p. FREIRE, P. A., Acessibilidade no desenvolvimento de sistemas Web: um estudo sobre o cenário brasileiro. Dissertação apresentada ao Instituto de Ciências Matemáticas e de Computação como parte dos requisitos necessários para a obtenção do grau de Mestre em Ciências. USP. São Carlos – SP. 2008 GONZALES, J.; MACIAS, M.; RODRIGES, R. e SANCHEZ, F. Accessibility metrics of web pages for blind end-users. In Proceedings of the 2003 International Conference on Web Engineering (ICWE), páginas 374{383, Oviedo, Spain, 2003. Springer Berlin / Heidelberg. HANSEN, M. D. SOA using Java™ web services. Upper Saddle River: Pearson Education, 2007. 574 p 40 HARPER, J.; YESILADA, Y. Web Accessibility - A Foundation for Research. Manchester: Springer, 353 p., 2008. KALIN, M. Java web services: up and running. 2. ed. Sebastopol: O’Reilly, 2013. 360 p. LAWSON, B. ―Introduction‖ em Holzschlag, M. ―Web accessibility – Web Standards and Regulatory compliance‖ – friendsofED.