 |
DA Insight é o newsletter da DigitalAssets, empresa especializada em soluções SOA (Arquitetura Orientada a Serviços) e de gestão e reúso de ativos de software. O newsletter oferece informações que incentivam o conhecimento sobre SOA e reúso divulgando pesquisas, novas tecnologias, entrevistas, tendências e eventos.
Leia nesta edição:
Boa leitura!

Governança de SOA
Manter no mesmo passo as prioridades de negócio e TI, saber onde está cada coisa e monitorar ativos são fundamentais em qualquer organização. A Governança de TI garante esse controle e o alinhamento da área de tecnologia com os objetivos da empresa como um todo, determinando direitos de tomada de decisão, políticas, práticas, processos e formas de medir prioridades. Melhor ainda quando a arquitetura ajuda. É aí que entra um estilo de arquitetura corporativa que abstrai funcionalidades de TI em serviços orientados a negócios, mais conhecida como SOA (Arquitetura Orientada a Serviços). A chamada Governança de SOA - subset da Governança de TI com foco no desenvolvimento e integração de aplicações - fornece visibilidade e controle ao mesmo tempo em que aumenta a agilidade requerida pelas áreas de negócio. A Governança de SOA é uma questão crítica, já que essa plataforma promete unificar sistemas que envolvem diversos departamentos da empresa - a chave para essa governança é justamente compartilhar objetivos e metas. E é bom estar atento para não perder o trem: um estudo realizado pelo Gartner estima que, em 2010, mais de 50% das grandes empresas terão estabelecido um portfólio de sistemas sob o padrão SOA em busca de uma plataforma unificada de negócios.

Paulo Merson
Membro sênior do corpo técnico do Software Engineering Institute (SEI) da Carnegie Mellon University, com sede em Pittsburgh, Pensilvânia, o brasileiro Paulo Merson é especialista em desenvolvimento baseado em componentes e arquitetura de software. Bacharel em Ciência da Computação na UnB e Mestre em Engenharia de Software pela Carnegie Mellon, nessa entrevista exclusiva ele mostra a importância da Arquitetura Orientada a Serviços (SOA) e sua relação com o desenvolvimento baseado em componentes e reúso.
DA Insight: Qual sua atuação junto ao SEI?
Paulo Merson: No SEI eu trabalho no grupo de arquitetura de software e em outro grupo chamado PACC (Predictable Assembly from Certifiable Components).
DA Insight: Atualmente, em quais projetos você está envolvido e quais cursos está ministrando?
Paulo Merson: Acabamos de publicar relatório sobre avaliação de arquiteturas SOA (Arquitetura Orientada a Serviços). Agora estou trabalhando em outros dois relatórios, um sobre SLAs (Service Level Agreements) para SOA e outro sobre técnicas para Architecture Enforcement, isto é, soluções para o seguinte problema: o arquiteto criou e documentou uma arquitetura muito boa, mas como garantir que os desenvolvedores vão seguir o que foi especificado? Como garantir a conformidade do código com a arquitetura anos depois, quando o sistema está em manutenção e há uma rotatividade natural entre os programadores? Uma técnica interessante é usar a programação orientada a aspectos, mas há outras alternativas e ferramentas que estamos avaliando. Além disso, atualmente ministro um dos cursos do nosso currículo de arquitetura de software. Esses cursos, que ocorrem em turmas abertas em Pittsburgh e em turmas fechadas em empresas, são uma ótima oportunidade para interagir com arquitetos experientes da indústria e validar nossas idéias.
DA Insight: Qual a importância de SOA para as empresas?
Paulo Merson: Antes de trabalhar para o SEI, eu era consultor J2EE e trabalhei em projetos onde uma aplicação J2EE precisava falar com transações CICS no mainframe, ou com DLLs, ou com um sistema Delphi na rede, e por aí vai... Essa integração dava muito trabalho! Tínhamos de desenvolver ou adaptar pontes e conectores. Demorava muito para fazer tudo funcionar e a solução era específica, pouco modificável e muito vulnerável a mudanças no ambiente. Com SOA, a integração de ambientes heterogêneos ficou muito mais fácil.
DA Insight: No geral, quais as vantagens e desvantagens do uso de SOA?
Paulo Merson: SOA ampliou o horizonte dos sistemas. Hoje, um arquiteto que precisa de uma informação que está em outra organização pode acessá-la como um serviço usando, por exemplo, tecnologia Web Services. Apesar do grande impacto em ampliar o escopo das aplicações, do ponto de vista técnico SOA não traz grandes inovações. Tecnologias de componentes distribuídos mais antigas - como DCE, CORBA e DCOM - tinham objetivos e conceitos semelhantes, mas nunca atingiram o nível de adoção na indústria e a facilidade de uso de Web Services. Certamente, a interoperabilidade é a principal vantagem de SOA. Contraposto a isso, e eu não diria que são desvantagens, em geral as maiores preocupações são desempenho, testabilidade e segurança.
DA Insight: Qual a relação entre Desenvolvimento Baseado em Componentes (CBD), reúso e SOA?
Paulo Merson: Um serviço é um componente distribuído cuja implementação (na teoria) é irrelevante para o usuário, que só enxerga a interface publicada. Então, quem desenvolve baseado em componentes já possui elementos arquiteturais (os componentes) com encapsulamento adequado para a abordagem SOA. CBD e SOA são abordagens que naturalmente promovem o reúso por que prescrevem a criação de componentes independentes e altamente modulares, ou seja, reutilizáveis. Mas atingir o reúso sistemático de componentes de negócio requer mais. E esse “algo a mais” pode ser uma abordagem de linhas de produto.
DA Insight: Para quem quiser se aprofundar em temas como Qualidade de Arquiteturas SOA, qual seria uma boa referência?
Paulo Merson: Pesquise no Google por "CMU/SEI-2007-TR-015" e você vai achar o nosso relatório que contém informações importantes para qualquer arquiteto que está criando ou avaliando uma solução SOA. Pesquise por "quality attributes for service-oriented architectures" e você vai achar um artigo (parece acadêmico, mas é voltado para o pessoal da indústria) que fala sobre quais atributos de qualidade são positivamente ou negativamente afetados pela abordagem SOA.

Roadmap de Adoação SOA no Instituto IGDN
Estão abertas as inscrições para a segunda turma do treinamento que será ministrado no dia 12 de dezembro, das 8h30 às 18h, no IGDN - Educação Executiva, por Kleber Bacili, diretor de tecnologia da DigitalAssets direcionado para executivos, diretores e gerentes de TI de médias e grandes empresas, consta do programa o ciclo de engenharia do software, desde seu desenvolvimento até a operação de forma efetiva. O curso é dividido em seis módulos: Introdução, Governança, Organização, Serviços, Infra-estrutura em SOA, e o Roadmap de adoção SOA.
DA Discoverer é publicado em congresso internacional
DA Discoverer: “Automatic Identification of Reusable Software Development Assets: Methodology and Tool”, de Marcilio Oliveira, Eduardo Machado e Kleber Bacili, todos da DigitalAssets, foi publicado e apresentado no evento “The 2007 IEEE International Conference on Information Reuse and Integration”, que aconteceu em Las Vegas, EUA em agosto. Este é um dos principais congressos acadêmicos de reúso no mundo, patrocinado pela IEEE SM Society, reconhecida como uma das principais associações profissionais do mundo voltada para o avanço da tecnologia. A publicação do artigo sobre o DA Discoverer - desenvolvido no Laboratório de Inovação em Software da Unicamp/DigitalAssets, em um evento deste porte demonstra que a maturidade da DigitalAssets está cada vez mais alinhada com as inovações na área de reúso, como afirma Bacili.
Evento SOA e Reúso na Prática
O evento organizado pela DigitalAssets, realizado no Polis de Tecnologia, em Campinas-SP, reuniu diretores, gerentes, arquitetos e analistas de TI, que discutiram aspectos estratégicos, educativos, técnicos e práticos de arquitetura de software, reúso e SOA. O evento também contou com um painel de discussão, com representantes da ASR, Ci&T, CPqD, Eldorado e Embraer sobre experiências, dificuldades e casos de sucesso relacionados a reúso e SOA . Kleber Bacili, especialista em SOA e reúso, destacou os benefícios que o re-aproveitamento de ativos de softwares pode trazer para as empresas. A segunda edição do evento acontecerá em Belo Horizonte no dia 29 de novembro e a terceira edição em São Paulo no dia 6 de dezembro no Clube Transatlântico.
SBCARS 2007: Disseminação do Reúso de Software
O Simpósio Brasileiro de Componentes, Arquiteturas e Reutilização de Software, realizado em Agosto na Unicamp, ofereceu palestras com líderes internacionais, mini-cursos, uma sessão industrial e uma de ferramentas. Durante o evento, que disseminou o conceito de reutilização de software, Kleber Bacili, diretor de tecnologia da DigitalAssets, mostrou o panorama da demanda por reúso e do mercado atual de SOA. Marcilio Oliveira, gerente de pesquisa e consultoria da DA, apresentou o DA Manager, uma ferramenta de gestão de ativos de sofware que centraliza informações sobre componentes e serviços, promove visibilidade, governança e controle de ativos reutilizáveis.

DA Educação
Através de alianças com instituições de ensino, a DigitalAssets oferece cursos profissionais em áreas como SOA, Reúso, Arquitetura de Software, Componentização e WebServices. Além de cursos de pós-graduação e de especialização a DigitalAssets também ministra treinamentos In-Company desenvolvidos para as necessidades de cada empresa.
O Curso de Extensão em “Arquitetura de Software, Componentização e SOA”, na Unicamp, com carga de 90 horas, conta com a participação de professores da universidade e empresas. Já na Faculdade IBTA, o Curso de Especialização em “Engenharia de Software Baseada em Componentes”, com carga de 360 horas, foca a aplicação prática dos conceitos. A DigitalAssets também oferece treinamentos em “Roadmap de Adoção SOA”, na IGDN – educação corporativa, com carga de 8 horas com apresentação e discussão de conceitos, estudo de casos práticos, técnicas e exercícios.

Adoção de SOA
Estágios, dicas e boas práticas para uma estratégia de sucesso
por Kleber Bacili, diretor de Tecnologia da DigitalAssets
Há alguns anos, o termo SOA (Service Oriented Architecture ou Arquitetura Orientada a Serviços)surgiu como uma buzzword, chamando cada vez mais a atenção dos executivos de TI. Para alguns, SOA é apenas um conjunto de novas siglas para tecnologias que já estão disponíveis. Para outros, SOA é a bala de prata que irá resolver os problemas de TI de hoje. Para mim: nem uma coisa, nem outra.
Uma simples pesquisa no Google das palavras "SOA Benefits" traz mais de 2 milhões de ocorrências. Seus benefícios são ponto pacífico. Mas vale retomar algumas reflexões que me ajudaram muito no entendimento e nos primeiros passos com relação a SOA.
SOA permite a criação de serviços de negócio interoperáveis, que podem facilmente ser reutilizados e compartilhados entre aplicações e empresas.
Na definição acima, é importante salientar algumas palavras-chave relacionadas a SOA que ajudam a determinar as principais características dessa abordagem:
- SOA é uma abordagem arquitetural corporativa: ou seja, não é um produto ou uma tecnologia. Dessa forma, ninguém pode simplesmente vender SOA. Além disso, é corporativa, ou seja, não é a arquitetura de uma aplicação, mas sim uma abordagem para a empresa toda. Porém, cuidado! É importante salientar que "para a empresa toda" é um termo perigoso. Gosto muito de uma frase do Frank Kenney, do Gartner: "don't try to boil the ocean". Ou seja, embora SOA seja destinada a uma aplicação corporativa, muitas empresas esquecem o mais importante: abordagem incremental, pensar grande, começar pequeno e avançar rápido!
- Serviços de negócio: ao contrário de iniciativas anteriores para serviços distribuídos como CORBA, por exemplo, SOA tem como grande diferencial o foco no "valor para o negócio". Ou seja, quando falamos em Serviços de Negócio, estamos falando em serviços como "Análise de Risco", "Aplicação de promoções", Recuperação de dados da apólice" e "Tracking da localização do pacote que está sendo entregue", para citar alguns exemplos que conseguem ser facilmente mapeados para o negócio das empresas.
- Interoperáveis: isso significa ser baseados em tecnologias padronizadas. O objetivo é permitir que serviços desenvolvidos em uma determinada plataforma, JEE, por exemplo, possam ser acessados por outras aplicações (da própria empresa ou de terceiros) e também desenvolvidos em outras tecnologias, como MS.NET, por exemplo.
- Reutilização: o reúso dos serviços desenvolvidos é vital em uma iniciativa SOA e essa característica deve guiar as decisões arquiteturais tomadas durante o processo de implantação desse conceito.
Normalmente, temos visto as empresas vivendo quatro estágios diferentes de adoção de SOA:
- Iniciação: quando a empresa está explorando os conceitos, se capacitando, verificando como SOA pode trazer benefícios, fazendo análise de GAP e "vendendo" o business case internamente.
- Planejamento e design: quando a empresa já tem funding, normalmente atrelado a um determinado projeto-piloto, e está planejando os processos de governança, nivelando os conhecimentos das equipes envolvidas, desenhando a arquitetura de referência para a construção dos serviços, selecionando as ferramentas e a infra-estrutura de execução SOA e desenhando as fases do projeto piloto.
- Implementação: quando a empresa está realizando os serviços do projeto-piloto, implantando a infra-estrutura SOA selecionada e verificando outros serviços já existentes na empresa que possam ser reutilizados.
- Melhoria e acompanhamento: quando a empresa começa a analisar criticamente os resultados alcançados nessa primeira fase e realimenta os processos e as decisões tecnológicas tomadas na fase de planejamento e design. Trata-se de um ciclo contínuo que levará a empresa a níveis mais elevados de maturidade.
Tenho visto no Brasil um interesse muito grande por SOA, mas as empresas, salvo raras exceções, ainda estão no estágio do entendimento. Normalmente, os executivos de TI já estão sensibilizados sobre o "discurso SOA" e interessados na sua implantação, mas ainda não conhecem ao certo seus benefícios. Para a empresa embarcar na onda SOA é preciso fazer um roadmap que determine a motivação, benefícios esperados e investimentos necessários, tudo isso dividido em fases, de forma a minimizar os riscos e potencializar os resultados.
Em cenários mais complexos de integração, a existência de processos de governança que determinem papéis e responsabilidades ao longo do ciclo de vida dos serviços é fator crítico para o sucesso da iniciativa SOA.
|
|
|