Labs SD >

Ferramentas

As ferramentas para o desenvolvimento do projeto são: o Java (plataforma), Maven (construção), e o Eclipse (ambiente integrado de desenvolvimento).

Em primeiro lugar, é necessário instalar o software.

 

Java

O Java Developer Kit (JDK) é 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.

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.

 

Maven

A ferramenta Maven é, talvez, a mais importante logo a seguir ao próprio JDK (sim, é mais importante que o Eclipse). A utilização do Eclipse é opcional, mas o Maven é considerado obrigatório.

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 - pom.xml - para que possam ser (re)construídos de forma repetível.

Para cada exemplo, estudar o código fonte e o ficheiro pom.xml.
Compilar e executar o programa através da linha de comando mvn, seguindo as instruções no ficheiro readme.txt.

JUnit

Para garantir a qualidade do código, é necessário produzir testes que incidem sobre diferentes módulos e aspetos das soluções.

O JUnit é uma biblioteca Java que ajuda a construir e executar testes ao código.

Exemplo e mais informação: JUnit

 

Eclipse

O Eclipse pode ser configurado por cima do JDK (Eclipse/JDK), ou então por cima também do Maven (Eclipse/Maven/JDK).

 

Sockets

Um 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 estabelecem uma ligação entre cliente e servidor. Um endereço de socket é composto 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. O exemplo seguinte - servidor e cliente - ilustra a comunicação entre dois programas usando esta biblioteca.

Os sockets estão na base da programação da comunicação na World Wide Web. O porto 80 é reservado para comunicação com o HTTP (HyperText Transfer Protocol).

 

Exercício a resolver até ao fim da aula

  1. Obter o exemplo de sockets TCP/IP.
    Neste caso temos dois programas que colaboram entre si.
    1. Configurar os projectos no Eclipse
    2. Estudar o código fonte e os ficheiros pom.xml do servidor e do cliente.
    3. Compilar e executar o servidor e cliente, seguindo as instruções no ficheiro readme.txt

Problemas? Observar atentamente as exceções produzidas.

  1. Analisar o output do Maven, em especial as linhas começadas por [WARNING]:
    1. Qual foi a causa da exceção?
    2. Que exceção é que foi lançada?
    3. Em que linha do código do cliente é que foi lançada a exceção?
      • Ou será um problema na configuração dos argumentos?
  1. Compilar e executar o servidor até funcionar sem erros.

Problema resolvido? Sim ou Não? :)
Retomar o exercício:

  1. Modificar os programas para que o servidor responda ao cliente com uma mensagem de confirmação.
  2. ... o resto do enunciado será entregue no início da aula.

 

Entrega da solução

A solução do exercício desta aula não conta para a avaliação, mas deverá ser entregue da forma descrita abaixo.

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