none
SOA RRS feed

  • Pergunta

  •  

    Galera gostaria de um exemplo de SOA para entender melhor essa arquitetura, alguem pode me ajudar com algum exemplo prático?

     

    Obrigado

    terça-feira, 24 de junho de 2008 23:51

Respostas

  • SirSmart,
    o que é importante saber, antes de tudo, é que SOA não é apenas técnico (alguns autores defendem que não é técnico). Não existe uma arquitetura de aplicação para SOA, mas sim estratégias, gerenciamento, conhecimentos e negócios aliados a infra-estrutura, técnicas de arquitetura de aplicações, etc. Estes links podem te ajudar a entender SOA, o que realmente significa e como utilizá-la no seu negócio.

    http://www.microsoft.com/downloads/details.aspx?familyid=cb2a8e49-bb3b-49b6-b296-a2dfbbe042d8&displaylang=en
    http://en.wikipedia.org/wiki/Service-oriented_architecture
    http://www-306.ibm.com/software/solutions/soa/

    Abraços
    -- Andre
    quarta-feira, 25 de junho de 2008 03:27
  •  

    Olá SirSmart,

     

    Resumidamente, a arquitetura orientada a serviços, possui um broker chamado ESB (Enterprise Service Bus), que "centraliza" e "disponibiliza" os serviços web de uma corporação. Esses WebServices podem ser consumidos por diversas aplicações, de acordo com a necessidade do negócio, mas o ESB sempre é questionado sobre a localização de determinado serviço.

     

    Existem funcionalidades adicionais como o controle de carga (balanceamento) de chamadas para um determinado serviço, dashbords, etc.

     

    O conceito SOA não está ligado diretamente a um ESB, você pode possuir em sua estrutura uma camada de negócio disponbilizada em SOA, onde todas as regras são compartilhadas e consumidas entre as aplicações através de WebServices.

     

    Conforme o André colocou, não é um conceito técnico e sim mais um ponto de vista e organização.

     

    []sss.

    segunda-feira, 30 de junho de 2008 19:00
  • Incrível como pessoal complica SOA =\

    Vamos supor que você tenha um método (Method, do BASIC) ou classe que tenha métodos (Subs ou Functions).
    O que é isso?
    É um "lugar" que você tem diversos "pontos" que realizam tarefas pra você.

    Vamos supor que você tenha uma classe Cliente e que existam os métodos Salvar, Listar, Obter, que respectivamente salva um cliente na base, lista todos os clientes na base (talvez com filtros) e obtém um cliente específico.

    Bem fácil de compreender, certo? Afinal a gente faz isso todo santo dia.

    Agora, e se você quisesse fazer com que esta classe fosse acessada de qualquer lugar em qualquer plataforma? Serviços lhe vêm a mente, correto?

    SOA nada mais é do que uma coleção de serviços. É o seu aplicativo (ou os pontos mais importantes dele) expostos via serviço (e isso significa web service / WCF / Remoting ou mesmo DLLs).

    Assim, seu aplicativo fica mais ou menos orientado a aspectos, ou seja, você tem um catálogo de serviços com diversos métodos pr'aquele "aspecto" do seu aplicativo.

    Assim, você terá um catálogo com os serviços Cliente, Estoque, Financeiro, cada qual expondo diversos métodos que fazem as operações desejadas.

    Então, basicamente, SOA é uma arquitetura que é baseada em aspectos do seu software, expostos ao mundo exterior por qualquer modo desejado, o que não precisa necessariamente ser um serviço no sentido de webservice/WCF/remoting.

    Não é um bicho de sete-cabeças para se pensar no ponto de vista desenvolvimento, mas, se parar para pensar nisso do ponto de vista arquitetura, é uma "coisa" (por falta de um termo mais apropriado) muito poderoso para seu aplicativo ter o máximo de interoperabilidade possível.

    De certa forma, o próprio .Net framework é um SOA.

    É claro que vai muito além disso e tem muita coisa sobre o assunto, mas isso é um ponto básico de início, de dev para dev ;-)
    sábado, 19 de julho de 2008 03:43
  •  JCKödel wrote:

    De certa forma, o próprio .Net framework é um SOA.


    hãm?!

     JCKödel wrote:
    Incrível como pessoal complica SOA =\


    pois é,...
    terça-feira, 22 de julho de 2008 22:40
  •  Achei todos os comentários extremamente válidos, só gostaria de adicionar ao amigo SirSmart, que é muito importante ao elaborar o seu desenho arquitetural, dividir de forma inteligente os seus serviços, um dos maiores problemas que vi até hoje nessa arquitetura (quando mal desenhada) é sobrecarregar alguns serviços com varios métodos com um acesso extremamente elevado, e outros praticamente não possuir acesso. Implementar segurança nesta arquitetura também é muito válido, principalmente quando seus webservices estiverem fora de uma intranet e não utilizarem https.

     

    Um livro muito bom que pode te ajudar é o "Expert Service-Oriented Architecture in C# 2005", me ajudou muito no começo, eu o comprei no site Amazon, não achei uma versão em português, segue o link http://www.amazon.com/Expert-Service-Oriented-Architecture-2005-Second/dp/159059701X/ref=pd_bbs_1?ie=UTF8&s=books&qid=1218106483&sr=8-1

     

    Abraços,

     

    quinta-feira, 7 de agosto de 2008 11:01
  • As respostas do André e Kleberson estão muito boas.
    Se começar a falar de forma muito simples, acaba não sendo passado corretamente o conceito de uma SOA, que foi o caso do JCKodel.

     

    Se possível, dêem uma olhada na suite de ferramentas da IBM. Está totalmente voltada para BPM utilizando SOA e totalmente integrada.
    Produtos:
       WebSphere Integration Developer - Equivalente ao VS
       WebSphere Process Server - Equivalente ao ESB citado pelo Kleberson
       WebSphere Server Application (WAS) - Equivalente ao balanceamento de carga, citado pelo Kleberson.
       WebSphere Portal - Equivalente ao dashboard citado pelo Kleberson.

    sábado, 9 de agosto de 2008 01:23

Todas as Respostas

  • SirSmart,
    o que é importante saber, antes de tudo, é que SOA não é apenas técnico (alguns autores defendem que não é técnico). Não existe uma arquitetura de aplicação para SOA, mas sim estratégias, gerenciamento, conhecimentos e negócios aliados a infra-estrutura, técnicas de arquitetura de aplicações, etc. Estes links podem te ajudar a entender SOA, o que realmente significa e como utilizá-la no seu negócio.

    http://www.microsoft.com/downloads/details.aspx?familyid=cb2a8e49-bb3b-49b6-b296-a2dfbbe042d8&displaylang=en
    http://en.wikipedia.org/wiki/Service-oriented_architecture
    http://www-306.ibm.com/software/solutions/soa/

    Abraços
    -- Andre
    quarta-feira, 25 de junho de 2008 03:27
  •  

    Olá SirSmart,

     

    Resumidamente, a arquitetura orientada a serviços, possui um broker chamado ESB (Enterprise Service Bus), que "centraliza" e "disponibiliza" os serviços web de uma corporação. Esses WebServices podem ser consumidos por diversas aplicações, de acordo com a necessidade do negócio, mas o ESB sempre é questionado sobre a localização de determinado serviço.

     

    Existem funcionalidades adicionais como o controle de carga (balanceamento) de chamadas para um determinado serviço, dashbords, etc.

     

    O conceito SOA não está ligado diretamente a um ESB, você pode possuir em sua estrutura uma camada de negócio disponbilizada em SOA, onde todas as regras são compartilhadas e consumidas entre as aplicações através de WebServices.

     

    Conforme o André colocou, não é um conceito técnico e sim mais um ponto de vista e organização.

     

    []sss.

    segunda-feira, 30 de junho de 2008 19:00
  • Incrível como pessoal complica SOA =\

    Vamos supor que você tenha um método (Method, do BASIC) ou classe que tenha métodos (Subs ou Functions).
    O que é isso?
    É um "lugar" que você tem diversos "pontos" que realizam tarefas pra você.

    Vamos supor que você tenha uma classe Cliente e que existam os métodos Salvar, Listar, Obter, que respectivamente salva um cliente na base, lista todos os clientes na base (talvez com filtros) e obtém um cliente específico.

    Bem fácil de compreender, certo? Afinal a gente faz isso todo santo dia.

    Agora, e se você quisesse fazer com que esta classe fosse acessada de qualquer lugar em qualquer plataforma? Serviços lhe vêm a mente, correto?

    SOA nada mais é do que uma coleção de serviços. É o seu aplicativo (ou os pontos mais importantes dele) expostos via serviço (e isso significa web service / WCF / Remoting ou mesmo DLLs).

    Assim, seu aplicativo fica mais ou menos orientado a aspectos, ou seja, você tem um catálogo de serviços com diversos métodos pr'aquele "aspecto" do seu aplicativo.

    Assim, você terá um catálogo com os serviços Cliente, Estoque, Financeiro, cada qual expondo diversos métodos que fazem as operações desejadas.

    Então, basicamente, SOA é uma arquitetura que é baseada em aspectos do seu software, expostos ao mundo exterior por qualquer modo desejado, o que não precisa necessariamente ser um serviço no sentido de webservice/WCF/remoting.

    Não é um bicho de sete-cabeças para se pensar no ponto de vista desenvolvimento, mas, se parar para pensar nisso do ponto de vista arquitetura, é uma "coisa" (por falta de um termo mais apropriado) muito poderoso para seu aplicativo ter o máximo de interoperabilidade possível.

    De certa forma, o próprio .Net framework é um SOA.

    É claro que vai muito além disso e tem muita coisa sobre o assunto, mas isso é um ponto básico de início, de dev para dev ;-)
    sábado, 19 de julho de 2008 03:43
  •  

    Não é que SOA é muito complicado, as explicações erradas que simplificam demais Wink

     

    Abraços

    -- André

    segunda-feira, 21 de julho de 2008 01:44
  •  JCKödel wrote:

    De certa forma, o próprio .Net framework é um SOA.


    hãm?!

     JCKödel wrote:
    Incrível como pessoal complica SOA =\


    pois é,...
    terça-feira, 22 de julho de 2008 22:40
  •  Achei todos os comentários extremamente válidos, só gostaria de adicionar ao amigo SirSmart, que é muito importante ao elaborar o seu desenho arquitetural, dividir de forma inteligente os seus serviços, um dos maiores problemas que vi até hoje nessa arquitetura (quando mal desenhada) é sobrecarregar alguns serviços com varios métodos com um acesso extremamente elevado, e outros praticamente não possuir acesso. Implementar segurança nesta arquitetura também é muito válido, principalmente quando seus webservices estiverem fora de uma intranet e não utilizarem https.

     

    Um livro muito bom que pode te ajudar é o "Expert Service-Oriented Architecture in C# 2005", me ajudou muito no começo, eu o comprei no site Amazon, não achei uma versão em português, segue o link http://www.amazon.com/Expert-Service-Oriented-Architecture-2005-Second/dp/159059701X/ref=pd_bbs_1?ie=UTF8&s=books&qid=1218106483&sr=8-1

     

    Abraços,

     

    quinta-feira, 7 de agosto de 2008 11:01
  • Gostei desse post, nada de complicar, vamos falar o popular... rs....

    Valew
       JCKödel
    sexta-feira, 8 de agosto de 2008 17:46
  • As respostas do André e Kleberson estão muito boas.
    Se começar a falar de forma muito simples, acaba não sendo passado corretamente o conceito de uma SOA, que foi o caso do JCKodel.

     

    Se possível, dêem uma olhada na suite de ferramentas da IBM. Está totalmente voltada para BPM utilizando SOA e totalmente integrada.
    Produtos:
       WebSphere Integration Developer - Equivalente ao VS
       WebSphere Process Server - Equivalente ao ESB citado pelo Kleberson
       WebSphere Server Application (WAS) - Equivalente ao balanceamento de carga, citado pelo Kleberson.
       WebSphere Portal - Equivalente ao dashboard citado pelo Kleberson.

    sábado, 9 de agosto de 2008 01:23