Após o post “Dicas para Certificação SAP Netweaver focus Java” tenho recebido diversos e-mails com questionamentos sobre os tópicos do exame e vou procurar responder as perguntas mais reincidentes com posts. Dentre os tópicos mais discutidos nos e-mails está o Netweaver Development Infrastructure. A minha indicação é estudar o NWDI como um Continuous Integration Environment e reconhecer como seus componentes se encaixam nos requisitos desta estratégia de desenvolvimento.
Mas o que é Continuous Integration? Continuous Integration (Integração Contínua) é um conjunto de práticas que visam diminuir os riscos de integração durante o processo de desenvolvimento de um software em equipe. Adotando-se estas práticas conseguimos evitar (ou pelo menos diminuir a incidência de) diversos problemas comuns durante a produção de um software.
CI é uma técnica de desenvolvimento clara e objetiva – faça corretamente os procedimentos e dificilmente você terá problemas de integração – e suas principais características são tão óbvias que certamente já devemos tê-las incorporadas em nosso cotidiano. O ponto chave da integração contínua é resolver os possíveis problemas de uma porção de código assim que eles ocorram. Para atingirmos este objetivo devemos seguir uma série de procedimentos, tais como: manter um repositório central, commits freqüentes (no mínimo todos os dias), builds e testes constantes, e uma máquina de integração.
Manter um ambiente de integração contínua manualmente lhe exigirá, na maioria dos casos, um esforço considerável. Contudo, para evitarmos ter de executar uma série de passos a cada commit, podemos automatizar essas tarefas usando um Continuous Integration Server.
Em geral, após configurar seu projeto num CI Server, o mesmo será responsável pela execução de boa parte das etapas do processo de build de forma assíncrona e reportará o resultado do build ao desenvolvedor.
Assim como no ABAP a SAP disponibiliza uma infra-estrutura de apoio ao desenvolvimento de software para a plataforma Java. Esta infra-estrutura é composta de:
- Uma IDE – Windows, menus e uma perspectiva no NetWeaver Developer Studio;
- Um repositório central – com o DTR, Design Time Repository;
- Builds automatizados – com o CBS, Component Build Service;
- Definição de um fluxo de concepção de um componente – desenvolvimento, integração, quality assurance e deploy – com o CMS, Change Management Service;
- Ferramentas para deploy – SDM, Software Deployment Manager.
- Um diretório central de informações sobre os softwares, componentes, serviço de namespace e etc.
- Um modelo de componentes que proporcionam maior coesão, dependências declarativas, relacionamentos unidirecionais e agilidade no desenvolvimento/manutenção dos elementos do software.
Conforme descrito acima o SAP NWDI compreende a maioria dos requisitos de um Continuous Integration Server e pode também ser utilizado para o desenvolvimento de soluções sem componentes específicos SAP.
IMHO, se você nunca trabalhou com um servidor de integração, poderá absorver melhor o assunto estudando as práticas da integração contínua e depois como os componentes do NWDI trabalham juntos em cada etapa e nos diferentes cenários do desenvolvimento em equipe (nesta ordem).
Referências:
SDN NWDI: https://www.sdn.sap.com/irj/sdn/wiki?path=/display/Java/NetWeaver%2bDevelopment%2bInfrastructure%2b(NWDI)
Integration Unit testing on SAP Web AS (Java): https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/9ef1967a-0901-0010-6c86-ed2251898764
Para maiores informações sobre integração contínua recomendo a leitura destes textos:
Martin Fowler: http://www.martinfowler.com/articles/continuousIntegration.html.
Wikipedia: http://en.wikipedia.org/wiki/Continuous_integration
Continuous Integration Server Matrix: http://damagecontrol.codehaus.org/Continuous+Integration+Server+Feature+Matrix
Arquivado em: Certificação, Desenvolvimento de Software, Dicas, Java, SAP NetWeaver | Etiquetado: Continuous Integration, Java, NetWeaver, NWDI, SAP