Tópicos Especiais em Sistemas Distribuídos I (SOA e MDA)
A arquitetura orientada a serviços (SOA – Service Oriented Architecture) tem se mostrado como o melhor paradigma para desenvolvimento de aplicações distribuídas alinhadas ao negócio. SOA apresenta-se como sendo mais flexível e capaz de suportar serviços independentes de plataforma e protocolo em um ambiente distribuído.
MDA é a proposta da OMG para desenvolvimento de sistemas orientados a modelo (MDD – Model Driven Development). O principal objetivo da proposta é construir o sistema a partir de níveis de abstração maiores, produzindo-se modelos a partir dos quais o código fonte referente aos aplicativos são gerados.
O objetivo desta disciplina é aprofundar o conhecimento em tópicos de pesquisa importantes em SOA através da leitura de artigos, resumos e apresentações em salas de aula e discussões em grupo a respeito dos conceitos aprendidos. Em relação a MDA, a disciplina apresenta-se como introdutória ao tema.
Número de créditos: 4,0
Ementa:
- Introdução: definição, elementos de SOA, benefícios, serviços, desafios SOA, modelo de implantação.
- Princípios arquiteturais: encapsulamento de serviços, acoplamento fraco de serviços, contratos de serviços, abstração de serviços, reuso de serviços, composição de serviços, autonomia de serviços, manutenção de estado por serviços, mecanismos de descoberta de serviços.
- Enterprise Service Bus: principal tecnologia para SOA
- Business Rule Management System e SOA
- Classificação de serviços: serviços básicos (de dados e de lógica), serviços compostos e serviços de processos.
- Ciclo de vida para desenvolvimento de serviços: ciclo de vida tradicional de desenvolvimento comparado ao desenvolvimento de serviços e ciclo de vida orientado a stakeholders.
- Métodos para identificação, análise e projeto de serviços
- Business Process Management e SOA, identificação e análise de serviços considerando modelos de processos de negócio.
- Contrato de serviços (WSDL, XSD e WS-Policy), modelo canônico
- Desenvolvimento Orientado ao Modelo (Model-Driven Development – MDA) e SOA, profiles UML para desenvolvimento de serviços
- Descoberta de serviços: descobrir o serviço mais apropriado para o negócio em tempo de execução, considerando o contexto de realização do processo subjacente.
- Governança em um ambiente SOA
- Mashup para o Desenvolvimento de Aplicações em uma Abordagem SOA
- SaaS: Software as a Service
- DaaS: Data as a Service
- Cloud Computing
- Principais conceitos de Model-Driven Architecture.