Este método para projeto e desenvolvimento de software orientado a serviços estabelece um processo iterativo e incremental, com base em modelos de desenvolvimento como o Rational Unified Process (RUP) (IBM, 2008), desenvolvimento baseado em componentes e modelagem de processos de negócios (PAPAZOUGLOU e van den HEUVEL, 2006).
O ciclo de desenvolvimento é composto por nove fases, sendo uma fase preparatória e oito fases iterativas, representadas por meio de seis blocos na Figura 2.3. As fases iterativas possibilitam uma abordagem de descoberta, criação e implementação a cada iteração, sempre tomando como referência os processos de negócio.
Os objetivos e requisitos de negócio devem direcionar o projeto, desenvolvimento e testes de sistemas de software que automatizam processos de negócio. A tecnologia Web Services (W3C, 2004a) é usada para implementação dos serviços (PAPAZOUGLOU e van den HEUVEL, 2006).
Figura 2.3: Fases do método (PAPAZOGLOU e van den HEUVEL, 2006).
Na fase de planejamento são tratados a viabilidade do projeto, a natureza e escopo da solução baseada em serviços, os objetivos, as regras e os procedimentos. A compreensão do ambiente de negócios e a incorporação de mecanismos de controle no projeto da solução são os seus principais objetivos. Dentre as atividades dessa fase estão: análise das necessidades de negócio, transformando-as em objetivos que guiarão o desenvolvimento; revisão das tecnologias utilizadas atualmente no ambiente de negócios, elaboração de requisitos do novo ambiente e mapeamento de tecnologias para atender a esses requisitos; análise financeira dos custos envolvidos e benefícios, incluindo o orçamento disponível e um plano de desenvolvimento de software estabelecendo um cronograma listando tarefas, prazos e entregas.
A fase de análise trata da elicitação dos requisitos do sistema de software a ser desenvolvido. Um modelo as-is é construído para auxiliar os interessados no projeto a entender os processos de negócio existentes, como as atividades desses processos são realizadas e o contexto no qual o sistema de software será inserido. Análises, verificações e simulações realizadas usando o modelo as-is permitem
identificar pontos de melhoria nos processos de negócio para possibilitar um melhor retorno do investimento. O resultado dessas ações é representado no modelo to-be, que traduz os requisitos que serão implementados na solução a ser desenvolvida. O principal objetivo da fase de análise é o reúso de implementações de funções de negócio na solução. Quatro atividades principais são definidas para essa fase:
Identificação de processos, a partir do agrupamento de funções de negócio;
Definição do escopo de processos, com o intuito de garantir que um único processo não englobe todas as funções de negócio existentes, tornando o processo grande, complexo e difícil de manter;
Análise de gap, com o objetivo de determinar quais serviços devem ser desenvolvidos, quais serão reusados e quais podem ser comprados de um provedor de serviços para atender as funções representadas no modelo to-be e requeridas para implementar o processo;
Análise de realização de processos, que determina a estratégia de desenvolvimento a ser adotada na implementação dos processos de negócio, considerando fatores como riscos, benefícios, retorno de investimento, requisitos e prioridades de negócio.
A fase de projeto transforma processos e serviços conceituais, identificados na fase de análise, em um conjunto de interfaces inter-relacionadas e independentes de plataforma. Como a tecnologia Web Services é usada para a implementação dos serviços, esta fase deve conter as especificações de serviços em linguagem Web Services Description Language (WSDL) (W3C, 2007). As atividades que compõem a fase de projeto são:
Especificação de serviços: trata da especificação dos web services que fornecem a implementação de funções de negócio identificadas na fase de análise. Essas especificações consideram os conceitos de acoplamento, coesão, granularidade de serviços, reusabilidade de serviços, composição de serviços e requisitos não funcionais (por exemplo: segurança, confidencialidade e integridade de informações e controle de acesso). Especificação de processos de negócio: os processos de negócio
identificados na fase de análise são especificados por meio da descrição da estrutura do processo, associação dos papéis envolvidos no processo de negócio (PN) e especificação de requisitos não funcionais. A estrutura
de um processo representa o fluxo lógico que interconecta web services, definindo subprocessos, estruturas condicionais e dependências entre etapas de processo. Utiliza-se a linguagem de orquestração de serviços Web Services Business Process Execution Language (WS-BPEL) (OASIS, 2007) para descrever a estrutura de um processo. Em seguida são identificadas as responsabilidades associadas às atividades de processo de negócio e seus respectivos responsáveis. Acordos de nível de serviço (em inglês, Service Level Agreement - SLA) são estabelecidos entre um provedor de serviço e consumidores de serviço no qual os requisitos não funcionais são especificados. Os principais requisitos levados em consideração são: desempenho, modelo de pagamento, modelo de segurança, comportamento transacional, escalabilidade e disponibilidade. Na fase de construção utiliza-se a tecnologia Web Services para desenvolvimento das implementações dos serviços especificados durante a fase de projeto. A estratégia de implementação dos web services segue a diretriz de realização de processos definida na fase de análise, na qual novos web services podem ser criados, aplicações existentes podem ter suas funções expostas através de web services ou composições de web services podem ser criadas. Nessa fase também são definidas as descrições das interfaces dos serviços e as descrições das implementações dos serviços.
Na fase de testes é avaliado se os requisitos de negócio são atendidos pelos processos e serviços implementados. Vários tipos de testes podem ser realizados com o intuito de assegurar que o sistema orientado a serviços desempenha satisfatoriamente as funções solicitadas. É importante que os aspectos não funcionais envolvidos em um sistema de software, como por exemplo, privacidade, integridade de mensagens, autenticação, autorização e não repúdio, sejam testados. A fase de provisionamento de serviços trata dos aspectos organizacionais dos serviços. Alguns desses aspectos são governança de serviços, certificação de serviços, auditoria de serviços, medições e cobrança pela utilização de um serviço.
Na fase de implantação disponibiliza-se a implementação de um processo de negócio para todos os usuários, incluindo outras aplicações e processos. Para tanto, as interfaces dos serviços que compõem o processo de negócio são publicadas no repositório de serviços e as implementações são implantadas no provedor de serviços.
Na fase de execução um consumidor de serviços pode utilizar o repositório de serviços para localizar um serviço que atenda às suas necessidades e invocar as operações definidas na interface de serviço.
Na fase de monitoração os serviços são monitorados e problemas são identificados e relatados com o intuito de melhorar a qualidade dos serviços utilizados em uma solução orientada a serviços. O foco dessa fase está na avaliação contínua dos níveis de serviço e do desempenho por meio da extração de medidas de qualidade de serviços a partir dos acordos de nível de serviço (em inglês Service Level Agreement – SLA). Também é necessário preocupar-se com o constante acompanhamento das cargas de trabalho de cada um dos serviços fornecidos, permitindo que ajustes sejam feitos pelo provedor de serviços a fim de cumprir os SLAs.