25 de Outubro de 2009

Os Princípios do Manifesto SOA

Arquivado sob: Outros, SOA — marco @ 18:51



Os Princípios do Manifesto SOA


Nós seguimos estes princípios:

Respeitar a estrutura social e de poder
de uma organização.

Reconhecer que SOA requer mudança em vários níveis

O escopo da adoção de SOA pode variar.
Devemos manter os seus esforços gerenciáveis e dentro
de limites significativos

Produtos e ferramentas sozinhos não lhe
fornecerão SOA ou aplicarão o paradigma
de orientação de serviços para você

SOA pode ser implantado através de uma gama variada de
tecnologias e padrões

Estabelecer um conjunto uniforme de políticas e
padrões corporativos baseado em padrões da indústria,
padrões de facto e padrões da comunidade.

Buscar uniformidade no exterior a medida que
permita diversidade no interior

Identificar serviços através da colaboração de pessoas
de negócio e tecnologia

Maximizar o uso de serviços considerando o escopo
atual e futuro da organização

Verificar se os serviços satisfazem os objetivos e
requisitos de negócio

Evoluir os serviços da organização em resposta ao seu real uso

Separar os diferentes aspectos do sistema para
mudar em velocidades diferentes

Reduzir as dependências implícitas e
publicar as dependências externas para
aumentar a robustez e reduzir o impacto das mudanças

Em qualquer nível de abstração, organizar
cada serviço em torno de unidades
de funcionalidades coesas e gerenciáveis




Esta é uma tradução pessoal do SOA Manifesto Guiding Principles criado por Ali Arsanjani, Thomas Erl, Grady Booch e outros notáveis.

Bons projetos SOA!

O Manifesto SOA

Arquivado sob: Outros, SOA — marco @ 18:03

O Manifesto SOA

A orientação por serviços é um paradigma que orienta o que você faz. A arquitetura orientada por serviços (SOA) é um tipo de arquitetura que resulta da aplicação da orientação por serviços. Nós aplicamos a orientação por serviços para ajudar organizações a entregar valor de negócio de forma sustentável, com agilidade aumentada e custos eficazes, alinhado às necessidades de mudanças nos seus negócios.

Através do nosso trabalho nós priorizamos:

Valor para o negócio sobre estratégias técnicas.
Objetivos estratégicos sobre benefícios específicos de projetos.
Interoperabilidade intrínseca sobre integrações personalizadas.
Serviços compartilhados sobre implementações com propósitos específicos.
Flexibilidade sobre otimização.
Refinamentos evolucionários sobre a procura da perfeição inicial.

Isto é, embora nós valorizemos os valores da direita, nós valorizamos mais os itens à esquerda.


Esta é uma tradução pessoal do SOA Manifesto criado por Ali Arsanjani, Thomas Erl, Grady Booch e outros notáveis. Acredito no manifesto. Também aderi ao manifesto, ao qual me tornei signatário.

Bons projetos SOA!

31 de Julho de 2009

Continue aprendendo BPM jogando - Innov8 2.0

Arquivado sob: Outros, BPM — marco @ 12:38

Postei há algum tempo aqui uma notícai sobre o jogo Innov8 (Innovate) da IBM que mostrava de forma lúdica os conceitos de BPM em um jogo 3-D com excelente qualidade gráfica.

Agora o jogo está disponível online para qualquer usuário (basta preencher um registro e criar uma conta). Para os estudantes universitários da parceria acadâmica IBM, ele pode ser baixado para a sua máquina.

O jogo foi melhorado e agora apresenta cenários de negócios diferentes para os jogadores.

Personagens do Innov8 2.0

Bons jogos e bom aprendizado!

Veja o trailer aqui.
Jogue o jogo online aqui.
Baixe o jogo completo aqui.

30 de Maio de 2009

O caminho do meio do arquiteto Java e do arquiteto .NET

Arquivado sob: Outros, Tecnologias Java, Tecnologias Microsoft — marco @ 13:09

No Budismo, o caminho do meio (madhyamā-pratipad, em sânscrito) é a prática de ensinamentos que nos afastem das vaidades, extremismos e nos guiem a uma busca por mais sabedoria, moralidade e raciocínio. No mundo Java e .NET, o caminho do meio possui o mesmo conceito. Gostaria de compartilhar, neste contexto, uma interessante leitura sobre experiências de diversos arquitetos de software que guardam uma espantosa coincidência com as idéias e conceitos do caminho do meio. Esta lições estão coletadas no excelente e sucinto livro 97 Things Every Software Architect Should Know, escritas por diversos arquitetos de todo o mundo e compiladas por Richard Monson-Haefel.

97 coisas que todo arquiteto de software deveria saber

Dentro das 97 dicas presentes neste livro, gostaria de destacar três:

  • Não coloque seu resumè a frente dos seus requisitos. Este pequeno texto discute porque bons arquitetos primeiro entendem o problema e o contexto de negócio antes de propor a tecnologia preferida do seu currículo. A lição é clara: não leve a sua tecnologia Java ou .NET preferida para o seu cliente antes de entender claramente o problema.
  • Simplifique a complexidade essencial, diminua a complexidade acidental. A complexidade essencial diz respeito a complexidade inerente a um problema. A complexidade acidental diz respeito a efeitos colaterais introduzidos por escolha de tecnologias complexas e soluções estado da arte. Exemplos são o uso de EJBs, servidores como o BizTalk, servidores de transações distribuídas ou modelos complexos de orientação por objetos para problemas simples que não necessitam deste tipo de solução. A lição novamente é clara: não introduza complexidade acidental para aprender uma nova tecnologia. É responsabilidade do arquiteto gerir bem o dinheiro do projeto, da sua empresa e do seu cliente. Não brinque com o dinheiro alheio por vaidade.
  • Arquitetura é sobre equilíbrio. A arquitetura deve equilibrar aspectos técnicos e aspectos de negócio (condutores de negócio). “Arquitetos Java e .NET” que se esquecem de olhar para o negócio estão violando o caminho do meio. Estão buscando apenas um meio de satisafazer seus egos no uso de soluções “elegantes” e criar novos desafios técnicos que apenas eles precisam.

Um “arquiteto Java” e um “arquiteto .NET”, portanto, irá se tornar um melhor arquiteto se não ficar cego pelas palavras “Java” e “.NET” e colocar no seu cardápio porções de liderança técnica e práticas de alinhamento ao negócio.

Pensamento do dia: “A pior escravidão possível é a escravidão a si mesmo”, Sêneca.

27 de Abril de 2009

Iniciando um projeto SOA? Você já possui um “Centro de excelência SOA”?

Arquivado sob: Outros, SOA — marco @ 18:06

Diversas empresas já possuem iniciativas SOA em andamento ou pensam em fazê-lo em breve. Entretanto, poucas empresas no Brasil tem discutido o conceito do Centro de Excelência. Endereço neste artigo o conceito e a função do centro de excelência em implementações SOA.

Em termos simples, um Centro de Excelência (CDE) é um time multi-disciplinar dentro de uma empresa que promove melhores práticas, conhecimento e a implementação de novas soluções dentro de um determinado escopo. Um escritório de projetos (PMO), como exemplo, é um centro de excelência para gerência de projetos. Um CDE SOA faz este trabalho dentro do universo SOA, que envolve um grande conjunto de conhecimentos e habilidades necessárias para a sua implementação.

Tipos de Centros de Excelência SOA

De acordo com um excelente artigo de auxílio na montagem de centros de excelência SOA, podemos classificar os CDE em três tipos - Acadêmico, Técnico e Técnico Avançado. As principais funções destes CDEs são descritas abaixo:

Centro de Excelência

Membros de um Centro de Excelência SOA
Quem irá participar de um centro de um excelência SOA é decisão do CIO, mas a recomendaçào primária é que arquitetos, times de infra-estrutura, gerentes de produtos e vendas e influenciadores de negócio e técnicos estejam envolvidos, bem como o chefe de tecnologia (CTO) e o próprio CIO.

Pudemos acompanhar um CDE em uma empresa que está iniciando uma implementação SOA recentemente e notamos um forte envolvimento do CIO, CTO e time de arquitetura, bem como pessoas de áreas de negócio e produtos em um modelo similar ao da figura abaixo.

Centro de Excelência

Para os mais interessados, um bom artigo que endereça este tema é discutido na revista CIO Zone. Um webcast a respeito está disponível também no excelente site SearchSOA da TechTarget.

4 de Abril de 2009

As verdades sobre SOA

Arquivado sob: Outros, SOA — marco @ 14:21

Adapto para o português algumas pérolas extraídas de um bem humorado web site sobre “verdades” SOA, citadas pelo arquiteto de software Neal Ford, da Thought Works.

SOA Facts

  • SOA é á unica coisa que Chuck Norris não pode matar.
  • O livro “SOA in a Nutshell” são dez volumes com 7531 páginas cada um.
  • Uma pessoa conseguiu definir SOA com sucesso… e então morreu.
  • SOA pode vencer você no jogo da velha, mesmo que você comece!
  • Em uma batalha entre um Jedi e um Ninja, o SOA vence.
  • SOA viola a primeira e terceira leis da termodinâmica, mas não a segunda, dado que toda a energia vem do SOA.
  • No oitavo dia, Deus criou o SOA, e SOA criou o Rock e Roll.
  • Plutão não é mais o nono planeta, porque SOA queria o seu lugar.
  • SOA é a postura da Yoga que consiste de realizar todas as outras posturas da Yoga ao mesmo tempo.
  • Dante tem um nível especial no inferno para consultores que não tenham SOA nos currículos.
  • A solução para SOA é 42, que nos leva a questão….
  • Se você plugar SOA na sua nuca, você já sabe Kung Fu.
  • SOA significa SOA Oriented Architecture.
  • Einstein definiu E=mc2 depois de rejeitar a equaçÃo soa = mc2 , que era muito poderosa e volátil.
  • Arquitetos de software não usam SOA. SOA usa arquitetos de software.
  • Com muito SOA na sala, você nao precisa de desenvolvedores.
  • A resposta para a última questão sobre vida, universo e tudo mais é…. SOA.
  • Darth Vader disse uma vez, “SOA, eu sou seu pai”. SOA replicou…”Vader, EU sou o lado negro”.
  • Não existe governança SOA. SOA governa você.
  • O aquecimento global não foi causado por dióxido de carbono, mas pelo calor dos servidores rodando SOA.
  • A primeira implementação SOA em uma empresa é o triunfo da imaginação sobre a inteligência.
  • A segunda implementação SOA em uma empresa é o triunfo da esperança sobre a experiência.

2 de Abril de 2009

Portal da Communications of ACM no ar!

Arquivado sob: Outros, Engenharia de Software — marco @ 15:03

ACM

Acaba de ser disponibilizado o portal da revista Communications of ACM. É mais uma excelente fonte de recursos técnicos para engenheiros de software, estudantes, professores, acadêmicos e profissionais de TI de forma geral.

A ACM, para quem ainda não conhece, é a mais respeitada associação de classe da área de computação. Com 51 anos de existência, a ACM congrega materiais de qualidade excepcional, além de hospedar os melhores e mais influentes congressos e conferências técnicas da área de computação. Podemos dizer, metaforicamente, que a CACM possui um prestígio acadêmico similar aos das revistas Science e Nature é para a área das ciências naturais.

A revista Communications of ACM é uma revista de propósito geral que traz mensalmente assuntos brilhantes, novidades e tendências da área de computação. Este portal, acredito, irá popularizar fortemente a ACM fora da comunidade acadêmica e permitirá um maior acesso às excelentes informações lá disponíveis.

Recomendo, em particular, dois excelentes artigos (o primeiro da edição do mês de Abril e o segundo da edição de Março):

  • A Direct Path to Dependable Software. Como criar softwares com maior valor agregrado e menores custos.
  • An Interview With C.A.R. Hoare. Uma entrevista com um dos “gênios” vivos da história da computação, que realizou feitos notáveis como o desenvolvimento do algoritmo de ordenação mais eficiente da história (Quicksort), definição dos fundamentos das lnguagens estruturadas e criação dos conceitos de monitores para programas concorrentes. Tudo isso antes da maioria dos que leêm este blog nascerem.

14 de Março de 2009

Automação de Escritório nas Nuvens

Arquivado sob: Outros — marco @ 14:17

No já distante século XX, a única opção para organizarmos o nosso trabalho de escritório (Agendas, Gerenciadores de Projetos, Edtores de Texto, Planilhas) era a compra de pacotes de ferramentas de fornecedores como a Microsoft. Embora os preços sejam justos para o volume de funcionalidades disponibilizadas, eles são proibitivos para estudantes e profissionais em início de carreira.

Felizmente, podemos usar a Web 2.0 e funcionalidades de última geração disponibilizadas como serviços para organizar o nosso escritório (pessoal ou empresarial) nas nuvens. Listo aqui algumas ferramentas muito interessantes neste contexto:

  • Google Docs. Um editor de texto, uma planilha e um editor de apresentações gratuito e compativel com o Microsoft Office. Além dos excelentes recursos para pessoas com necessidades básicas de editoração de texto, o que mais surpreende é a edição completamente colaborativa de documentos. Duas ou mais pessoas podem editar (simultaneamente) o mesmo documento.
  • Google Calendar. Um calendário nas nuvens com recursos excelentes para controle de atividades e marcações de reuniões. Além disso, você pode cadastrar o seu celular na agenda do Google e receber gratuitamente SMS de notificações de reuniões e lembretes de compromissos. Também sincroniza em ambas as direções com a agenda do Microsoft Outlook 2003 e Outlook 2007.
  • Office Live. O Microsoft Office nas nuvens. Usabilidade excelente e gratuito, também permite sincronização com o Microsoft Office tradicional.
  • ZOHO. Um excepcional conjunto de ferramentas colaborativas, tais como gerenciadores de projetos, agendas, planilhas, documentos, sites, wikis. Ideal para você organizar projetos pessoais ou empresariais de pequeno e médio porte.
  • Google Sites. Suporta a criação (sem codificação alguma) de sites Web 2.0, integrandos informações, fluxos de trabalho e aplicações.
  • Ning. Uma plataforma para criar redes sociais sem necessidade de codificação. Simples e prático, permite você criar a sua rede em poucos minutos.

Os mais conservadores podem se preocupar com a segurança e confiabilidade. Dado que voce esteja conectado à grande rede, podemos realmente confiar na segurança oferecida por estes serviços, que estão em patameres técnicos muito acima do que observamos na grande maioria das empresas de mercado. Particularmente, me beneficio muito destes serviços. Onde quer que você esteja, você acessa os seus projetos pessoas, agendas, tarefas, emails, documentos, planilhas e colabora em suas comunidades de práticas (redes sociais). O espaço é ilimitado e o custo é zero.

É interessante e paradoxal perceber que a Web 2.0 é o melhor combate à prirataria que temos atualmente. Estes recursos vão certamente evitar que muitos caiam em tentação e copiem softwares ilegais.

9 de Março de 2009

Ferramentas Sem Custo de Propriedade

Arquivado sob: Outros, Engenharia de Software — marco @ 19:37

Recebi duas interessantes notícias esta semana sobre ferramentas sem custo de propriedade, que gostaria de compartilhar neste nosso espaço de comunicação. Não uso o termo ferramenta gratuita pois toda ferramenta exige tempo de estudo e personalização e isso certamente não é gratuito. Mas uma ferramenta sem custo de propriedade tem um apelo quase emocional para gerentes e é vista com muitos bons olhos pela comunidade técnica.

A primeira notícia é um mapa com ferramentas para Controle de Versões, Estimativas, Gestão de Requisitos, Teste de Performance, Gestão de Projetos, Gestão de Testes, Testes Funcionais e Gestão de Defeitos, coleta por Cristiano Caetano.

A segunda indicação é um software como um serviço para a gerência de requisitos. Aqui você não baixa um software. Você cria o seu projeto na Web, monta a equipe, configura as permissões da equipe e faz todo o trabalho “nas nuvens”. Muito interessante.

7 de Fevereiro de 2009

Baleias Azuis e Krills, Software como Serviço e Computação nas Nuvens

Arquivado sob: Outros — marco @ 10:52

Em uma parceria do PANGEA com os .NET Raptors, fizemos ontem uma apresentação sobre computação nas nuvens. Nela discutimos os conceitos básicos de software como serviços, computação nas nuvens e uma rápida visão geral do Microsoft Azure.

Para os interessados no tema, a apresentação está disponível aqui. Boas arquiteturas e bons softwares como serviiços!

Próxima Página »
Blog do Marco Mendes | Artigos, Comentários e Opiniões sobre Engenharia de Software, Arquitetura de Software, SOA e Java