Labs SD >
As ferramentas para o desenvolvimento do projeto são: Java (linguagem e plataforma), Maven (construção), e o Eclipse (ambiente integrado de desenvolvimento).
Esta página contém textos introdutórios a cada uma das ferramentas e um exercício.
Em primeiro lugar, antes de começar, é necessário ter o software instalado.
O JDK (Java Developer Kit) é um conjunto de ferramentas para programação na linguagem Java.
As mais importantes são o javac que compila os programas e o java que lança as aplicações.
O javac e java são suficientes para construir pequenos programas, mas para programas de maior dimensão, é muito útil ter:
A tabela seguinte resume as utilizações mais comuns do JDK, Maven, e Eclipse:
A programação em Java para Sistemas Distribuídos deve ter em conta a concorrência e sincronização, uma vez que os servidores costumam tratar pedidos de vários clientes em simultâneo.
O tratamento de exceções é também um aspeto muito importante, e que irá ser especialmente importante para lidar com problemas de comunicação.
A ferramenta Maven é a mais importante logo a seguir ao próprio JDK. A utilização do Maven é obrigatória para permitir a construção dos projetos de forma automática na linha de comandos.
O Maven desempenha o papel muito importante de automatizar toda a construção do código e de explicitar dependências de outros programas. Todos os programas devem ter a configuração Maven no ficheiro pom.xml para que possam ser (re)construídos de forma repetível. Os programas devem ter um ficheiro README com instruções de construção e de execução.
O Eclipse pode ser configurado por cima do JDK (Eclipse/JDK), ou então por cima também do Maven (Eclipse/Maven/JDK).
Uma tomada (socket) é uma extremidade de uma ligação através de uma rede de computadores. Atualmente, a comunicação entre computadores faz-se quase sempre com IP (Internet Protocol). Os sockets mais comuns usam TCP (Transmission Control Protocol), que estabelece uma ligação entre cliente e servidor. Um socket é identificado por um endereço IP e por um número de porto.
O Java disponibiliza uma biblioteca de sockets que está disponível no pacote java.net.
Os sockets definem uma interface de programação, mas não definem o conteúdo e significado das mensagens que vão ser trocadas. Para isso é necessário um protocolo de comunicação. Um protocolo é um sistema de regras que define uma convenção para permitir que diferentes entidades troquem informação de forma não ambígua. Assim tem que ser na comunicação em sockets. É preciso "dizer" como é enviado um pedido, quando termina o pedido, quando chega a resposta, quando já foi recebida, e assim por diante.
Um exemplo de protocolo é o HTTP (HyperText Transfer Protocol) que está na base da comunicação na WWW (World Wide Web).
Esta tecnologia
Pode consultar também a Secção 1.6 do livro da cadeira sobre a World Wide Web e Sockets.
O ponto de partida para o exercício ilustra a comunicação entre dois programas Java usando a biblioteca de sockets:
Java Sockets
Problemas? Observar atentamente as exceções produzidas.
Problema resolvido?
Sim ou
Não :)
Retomar o exercício:
Fénix, Avaliação, Projetos, mini Exercício 0
A solução completa deverá ser submetida no Fénix
antes do fim da sua aula de laboratório.
Trabalhos submetidos depois da hora de fim da aula não serão considerados.
Ter atenção ao seguinte:
© Docentes de Sistemas Distribuídos,
Dep. Eng. Informática,
Técnico Lisboa