Serviços de Negócio com ESL

296 visualizações

Publicada em

Palestra realizada em Maringá - PR, em 24 de junho de 2015.

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
296
No SlideShare
0
A partir de incorporações
0
Número de incorporações
5
Ações
Compartilhamentos
0
Downloads
1
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide
  • A vida em bando é difícil! ..
    É preciso interagir, se comunicar..

    Neste sentido, serviço é interface de comunicação.

    É o que permite a INTEGRAÇÃO.
  • A linguagem, a plataforma, os ciclos de versões, os fornecedores. Tudo é diferente e dinâmico.
    # O desafio então é manter o sistema funcionando, alheio ao caos. Idependência

    E qual é a solução??
  • * Quando pensamos em uma solução do ponto de vista de fornecedor de vários produtos, é mais desafiador.
    * Temos clientes de vários tamanhos, com topografias distintas,... Então “cada caso é um caso”
    * Cada estilo de integração tem vantagens e desvantagens
    * Não existe uma solução padrão

    ** Inclusive tem esse livro que é referência, e aborda o assunto do ponto de vista de mensagens como forma solução.
    ** Publicado no fim de 2003, avalizado pelo Fowler.
  • ** Ou seja ele fez um DECRETO
  • Qual era a motivação do Jeff? O que queria?
    Padronizar
    Garantir independência e desacoplamento
    Evitar problemas de manutenção
    Multiplataforma
    Isto de certa forma foi a semente do AWS.
    O Amazon Web Services foi lançado em 2006 e hoje a Amazon é um dos grandes players de nuvem.
    A Amazon foi precursora.
    E Jeff Bezos foi considerado alguém a frente de seu tempo:
    Percebeu que para ir adiante precisava ajeitar a casa.
    Ele é o cara!
  • É a abordagem moderna. Serviço não tem nada de misterioso.
    Alguém dispara o serviço passando alguns parâmetros (requisição), a requisição é processada e o serviço devolve alguma informação (resposta).
    Mesmo colocando um middleware a comunicação continua sendo necessária.
  • SOA é uma abordagem arquitetural com foco na forma de expor dados e funcionalidades de um sistema,
    Faz isso através de serviços,
    Considerando boas práticas e padrões.
    Ou seja definindo alguns princípios.
  • A Interface deve ser bem definida e intuitiva. A única amarração está neste contrato. É o que “protege” o sistema e o processo de negócio publicando apenas um ponto de acesso.
    A abstração da estrutura e do funcionamento é o que esconde as particularidades de cada aplicação: Não preciso conhecer as tabelas do outro sistema, nem como os dados são gravados.
    Multiplataforma
    Preciso pensar no reuso, na composição. Varios serviços com granularidade fina podem compor um novo serviço com granularidade grossa.
    Ser stateless é importate contribui com os benefícios, adiante
    Permitir acionamento assíncrono também é fundamental
    Outros no livro de Thomas Erl, de 2008

    “resumo” do livro: https://marcobaccaro.wordpress.com/2013/11/29/8-principios-de-design-para-soa/
  • O quanto melhor você seguir os princípios, maiores serão os benefícios
    E claro que isso não se restringe apenas aos princípios de SOA mas aos princípios de design e de orientação a objetos em geral:

    DRY: Don't Repeat Yourself (DRY) or Duplication is Evil (DIE)
    KISS: "Keep it simple, Stupid!“
    SOLID: Single responsibility, Open-closed, Liskov substitution, Interface segregation and Dependency inversion

    https://en.wikipedia.org/wiki/Don%27t_repeat_yourself
    https://en.wikipedia.org/wiki/KISS_principle
    https://en.wikipedia.org/wiki/SOLID_(object-oriented_design)
  • São problemas difíceis de resolver
    A solução depende muito pouco de ferramentas
    Nossa filosofia:
    Facilitar / Automatizar
    Deixar o desenvolvedor livre

    (Aqui vem a DEMO)
  • Regra de negócio
  • O gerador está integrado ao visual studio, pode ser instalado pelo Extension Gallery
    Ele não é obrigatório!
    Não mantém sessão, não requer afinidade de sessão, facilita escalabilidade

    Link para Benner Wiki: http://goo.gl/58Dwkw
  • Permitir gerar serviços compatíveis com layouts já estabelecidos pelo governo/parceiros/mercado
    Facilitar que serviços com processamento pesado sejam direcionados para a fila do BTL
    Possibilitar o monitoramento dos serviços com ferramentas de mercado, como Nagios

    Uservoice: https://goo.gl/p1p81K

  • Projetos já mapeados que estão relacionados com o tema
    Forma padrão para integrar.
    Promover debate sobre o tema, sobre mensageria, sobre microserviços
    Quais demandas expectativas?
    Como atender as deficiências?
    Evoluir Web Service genérico de Integração:
    Suportar xml, lote,
    Oauth 2
    Fila
    Monitoramento
    API para consumir em .NET, Java, ..
  • Serviços de Negócio com ESL

    1. 1. © Benner, o logo Benner muito + que software e logo Benner is Better são marcas registradas e de titularidade da Benner Sistemas em todas as regiões onde atua. 1 Serviços de Negócio João Paulo Melo Junho / 2015 Tecnologia
    2. 2. © Benner, o logo Benner muito + que software e logo Benner is Better são marcas registradas e de titularidade da Benner Sistemas em todas as regiões onde atua. 2 Nome do evento BennerPor que serviços? Sistemas raramente vivem isolados, eles geralmente são encontrados em bandos.
    3. 3. © Benner, o logo Benner muito + que software e logo Benner is Better são marcas registradas e de titularidade da Benner Sistemas em todas as regiões onde atua. 3 Nome do evento BennerIntegração entre sistemas não é fácil • Os sistemas são diferentes • Mudam o tempo todo • Ficam indisponíveis ou lentos • O canal de comunicação fica indisponível #independência
    4. 4. © Benner, o logo Benner muito + que software e logo Benner is Better são marcas registradas e de titularidade da Benner Sistemas em todas as regiões onde atua. 4 Nome do evento BennerQual é a solução? • Transferência de arquivos • Compartilhamento de base de dados • Chamadas remotas / Serviços • Mensageria
    5. 5. © Benner, o logo Benner muito + que software e logo Benner is Better são marcas registradas e de titularidade da Benner Sistemas em todas as regiões onde atua. 5 Nome do evento BennerCurisosidade, o Jeff é o cara!! Em 2002, Jeff Bezos (CEO da Amazon) já estava preocupado com integrações Ele determinou que todos os sistemas da Amazon fossem construídos de uma forma que pudessem se comunicar facilmente
    6. 6. © Benner, o logo Benner muito + que software e logo Benner is Better são marcas registradas e de titularidade da Benner Sistemas em todas as regiões onde atua. 6 Nome do evento BennerDecreto do Jeff Bezos • Todas as equipes passarão a expor seus dados e funcionalidades através de interfaces de serviços. • As equipes devem se comunicar através destas interfaces. • Não haverá outra forma de comunicação entre processos permitida: nada de link direto, nada de leitura direta na base de dados, nada de modelo de memória compartilhada, e nada de back-doors. A única comunicação permitida é por meio de chamadas via interface de serviço através da rede. • Não importa que tecnologia que você usa. • Interface de serviços, sem exceção, deve ser concebida a partir do zero para ser externalizável. Ou seja, a equipe deve planejar e projetar para ser capaz de expor a interface para desenvolvedores no mundo exterior. Sem exceções. • Quem não fizer isso será demitido. • Obrigado, tenha um bom dia.
    7. 7. © Benner, o logo Benner muito + que software e logo Benner is Better são marcas registradas e de titularidade da Benner Sistemas em todas as regiões onde atua. 7 Nome do evento BennerO caminho é: Serviços
    8. 8. © Benner, o logo Benner muito + que software e logo Benner is Better são marcas registradas e de titularidade da Benner Sistemas em todas as regiões onde atua. 8 Nome do evento BennerArquitetura Orientada a Serviços SOA é uma abordagem arquitetural corporativa que permite a criação de serviços de negócio interoperáveis que podem facilmente ser reutilizados e compartilhados entre aplicações e empresas. — Gartner Group
    9. 9. © Benner, o logo Benner muito + que software e logo Benner is Better são marcas registradas e de titularidade da Benner Sistemas em todas as regiões onde atua. 9 Nome do evento BennerAlguns princípios de SOA • Interface / Contrato • Abstração • Plataforma agnóstica • Reuso e composição • Sem estado • Assíncrono
    10. 10. © Benner, o logo Benner muito + que software e logo Benner is Better são marcas registradas e de titularidade da Benner Sistemas em todas as regiões onde atua. 10 Nome do evento BennerAlguns benefícios de SOA • Independência entre os módulos e sistemas • Integrações entre plataformas e tecnologias distintas • Possibilita o uso de ESBs • Processos de negócio automatizados com Workflow (BPM) • Interfaces em vários dispositivos acionando a mesma regra de negócio • Aplicativos compostos • Escalabilidade facilitada
    11. 11. © Benner, o logo Benner muito + que software e logo Benner is Better são marcas registradas e de titularidade da Benner Sistemas em todas as regiões onde atua. 11 Nome do evento BennerE como a Tecnologia pode ajudar?
    12. 12. © Benner, o logo Benner muito + que software e logo Benner is Better são marcas registradas e de titularidade da Benner Sistemas em todas as regiões onde atua. 12 Nome do evento BennerO que é? O Enterprise Service Library (ESL) é um conjunto de componentes e de boas práticas que tem como objetivo facilitar a exposição de funcionalidades do sistema através de serviços, possibilitando uma abordagem SOA. As funcionalidades do sistema, sejam entidades ou componentes de negócio, são facilmente expostas como serviços SOAP ou HTTP utilizando WCF e hospedados no WES.
    13. 13. © Benner, o logo Benner muito + que software e logo Benner is Better são marcas registradas e de titularidade da Benner Sistemas em todas as regiões onde atua. 13 Nome do evento BennerO que resolve? • ESL Service Generator • Documentos estruturados ou parâmetros simples • HTTP com JSON ou XML • SOAP • Autenticação OAuth 2.0 • Serviços escaláveis (stateless) • Single Sign-On • Material de apoio na Benner Wiki
    14. 14. © Benner, o logo Benner muito + que software e logo Benner is Better são marcas registradas e de titularidade da Benner Sistemas em todas as regiões onde atua. 14 Nome do evento BennerO que vem pela frente? • Contract-First • Enfileirar processamento no BTL • Monitoramento de serviços • Treinamento
    15. 15. © Benner, o logo Benner muito + que software e logo Benner is Better são marcas registradas e de titularidade da Benner Sistemas em todas as regiões onde atua. 15 Nome do evento BennerAinda tem mais! • Definir modelo para Integrações • Serviço de integração genérico mais amigável e poderoso Ajude a priorizar estes projetos!
    16. 16. © Benner, o logo Benner muito + que software e logo Benner is Better são marcas registradas e de titularidade da Benner Sistemas em todas as regiões onde atua. 16 João Paulo Melo joao.melo@benner.com.br +55 47 3321-1300

    ×