Objetivos de aprendizagem e a sua compatibilidade com o método de ensino (conhecimentos, aptidões e competências a desenvolver pelos estudantes)
Esta unidade curricular pretende dotar os alunos das competências:
Explicar os conceitos fundamentais da integração de sistemas e os modelos existentes.
1.Compreender as diferenças entre as arquiteturas SOA e Microserviços.
2. Utilizar XML, JSON e Document Object Model (DOM) na troca de dados entre sistemas.
3. Aplicar XSLT, XPath e JSONPath na transformação de dados.
4. Criar e consumir Web Services (SOAP, RESTful, GraphQL, gRPC) e configurar API Gateways.
5. Implementar autenticação e autorização em APIs usando OAuth 2.0, OpenID Connect e JWT.
6. Projetar soluções de integração baseadas em filas de mensagens (RabbitMQ, Kafka, MQTT).
7. Implementar estratégias de automação com DevOps (CI/CD, Docker, Kubernetes, Terraform).
8. Integrar serviços na nuvem utilizando AWS, Azure e Google Cloud.
9. Desenvolver soluções de monitorização e logging com ELK Stack, Prometheus e Grafana.
Conteúdos programáticos
1. Fundamentos da Integração de Sistemas
2. Tecnologias de Integração de Dados
3. Web Services e APIs
4. Filas de Mensagens e Comunicação Assíncrona
5. Integração em Cloud e Automação
Demonstração da coerência dos conteúdos programáticos com os objetivos de aprendizagem da unidade curricular
Os conteúdos programáticos preveem o estudo de alguns conceitos, técnicas, modelos, padrões e ferramentas utilizadas nos domínios da integração de sistemas. As estruturas de dados comuns, como o XML ou JSON são incontornáveis quando se trata de interligar vários sistemas, serviços, aplicações ou processos. Os processos de tratamento de dados estruturados são também cruciais neste domínio, já que a integração passa muito pela adequação/transformação de dados oriundos de um sistema ao consumo por parte de outro, ou à apresentação de uma outra forma. A construção de sistemas abertos, disponíveis na Internet, bem como o uso de serviços atualmente existentes serve simultaneamente para aplicar as tecnologias e os conceitos anteriormente estudados, como para promover a disponibilização e consumo de serviços existentes atualmente.
Metodologias de ensino e de aprendizagem específicas da unidade curricular articuladas com o modelo pedagógico
A ênfase será coloca no método aprender fazendo, mas consubstanciada nos conceitos teóricos subjacentes. As sessões terão uma componente expositiva que permita fazer o enquadramento do assunto a tratar, seguindo-se a apresentação de um exemplo e colocando desafios aos alunos para consolidarem os conhecimentos que se pretende transmitir. Os alunos serão ainda desafiados a realizar trabalho autónomo, quer centrado num aspeto específico, quer na interligação entre diferentes matérias. Este trabalho será realizado fora das aulas, servindo estas para esclarecimento de dúvidas eventuais. Quando possível, estes trabalhos serão relacionados com projetos da vida real.
Avaliação
Trabalhos práticos individuais/grupo (30%): Exercícios sobre APIs, bases de dados, WebSockets e cloud computing.
Projeto Final (40%): Implementação de um sistema integrado com APIs, mensagens e cloud.
Teste Escrito (30%): Avaliação teórica sobre os conceitos fundamentais.
Nota mínima para cada elemento: 8 valores.
Demonstração da coerência das metodologias de ensino e avaliação com os objetivos de aprendizagem da unidade curricular
Os objetivos de aprendizagem são, maioritariamente, relacionados com competências técnicas, mais facilmente apreendidas com recurso a trabalhos práticos. Por ser uma área vasta, que tem evoluído consideravelmente nas últimas décadas, com o aparecimento de diversas ferramentas e conceitos, é importante que os alunos também dominem os princípios, para possuírem bases sólidas com vista ao acompanhamento da evolução futura. Assim, associadas a sessões introdutórias dos termos e conceitos relevantes, virão outras sessões, na sua continuação, em que a prática sobre esses conceitos prevalece. Procura-se, assim, consolidar de forma mais consistente os conhecimentos. Tendo em conta que a dimensão dos objetivos de aprendizagem propostos, face ao número de horas de contacto disponíveis, será fundamental que os alunos pesquisem e realizem trabalhos individuais e de grupo, autonomamente, fora do contexto da sala de aula. A solicitação de trabalhos desafiantes e um pouco mais complexos do que aqueles que são apresentados em aula, em cada matéria, é fundamental para que os alunos percebam mais vertentes do assunto tratado. O trabalho de grupo permite, simultaneamente, promover a consolidação de cada assunto, e principalmente a relação os assuntos, tendo em vista a ligação dos objetivos de aprendizagem, bem como a colaboração em equipa na consecução de um objetivo comum. A forma como os assuntos foram alinhados no programa da UC, por ordem crescente de complexidade, e tendo em conta as precedências inerentes, facilita o percurso do aluno em direção à concretização plena dos objetivos de aprendizagem propostos.
Bibliografia de consulta (existência obrigatória)
W3Schools. (n.d.). HTML, CSS, JavaScript, and web APIs. Dispon. em: https://www.w3schools.com