De que se trata o artigo:

O artigo trata de discutir aspectos e princípios da Orientação a Objetos e de SOA. Serão mostradas as características comuns a estes dois paradigmas, além de pontos nos quais os mesmos diferem.

Em que situação o tema é útil:

As práticas e padrões que compõem a Orientação a Objetos procuram servir de base para a construção de soluções que sigam boas práticas de desenvolvimento de software, bem como sejam flexíveis a mudanças. Além disso, há uma forte ênfase no reuso de recursos construídos anteriormente.

Assim como acontece com OO, SOA prioriza a reutilização de funcionalidades de software que são expostas como serviço, porém possui um escopo muito mais amplo. Serviços representam, dentro deste paradigma, um meio de integração entre sistemas distintos que podem, muitas vezes, ter sido concebido nas mais diferentes plataformas. Esta interoperabilidade não se restringe, contudo, às diversas aplicações de software de uma companhia: Webs Services podem ser empregados para integrar uma empresa a parceiros comerciais, aumentando a eficiência operacional.

Resumo do DevMan:

SOA x OO - Uma comparação entre paradigmas de desenvolvimento: A Orientação a Objetos e a metodologia SOA são dois paradigmas proeminentes dentro do desenvolvimento de software. O modelo orientado a objetos gira em torno da representação de elementos reais, como classes dentro de uma aplicação contando com diversos padrões que procuram fornecer a base para a obtenção de sistemas dotados de uma arquitetura bem estruturada e flexível a mudanças. Já a Orientação a Serviços é um padrão de arquitetura que procura fornecer alternativas para a integração entre diferentes sistemas, tornando possível a interoperabilidade entre softwares concebidos nas mais diversas plataformas. Um erro de interpretação comum é supor que SOA substitui conceitos de OO na implementação de um projeto de software. Na verdade, uma solução baseada em serviços dependerá sempre de recursos da Orientação a Objetos na construção das partes que constituirão a mesma. Serviços, por si só, contam com um escopo de atuação bem definido, o que significa que não devem ser empregados indiscriminadamente.

Por mais que seja comum a ocorrência de diversos equívocos dentro da área de desenvolvimento de sistemas, é incorreto supor que práticas orientadas a serviço tenham surgido com o objetivo de suplantar ideias da Orientação a Objetos (OO). Fatos como o surgimento de uma série de princípios/padrões em torno do uso de objetos e a ascensão dos Web Services como principal tecnologia de integração entre sistemas possibilitaram, sem sombra de dúvida, a evolução que culminou com a definição de um agrupamento de conceitos conhecido como SOA (“Service Oriented Architecture” - ou Arquitetura Orientada a Serviços).

A Orientação a Objetos é formada por um conjunto de técnicas de eficácia já comprovada em inúmeros projetos. Esta metodologia surgiu com a finalidade de transpor para o mundo de software, elementos do mundo real, representando os mesmos como objetos dotados de atributos (dados com algum valor para o negócio) e comportamentos (operações a serem executadas visando à produção de informação). O modelo OO procurou, em termos gerais, trazer ordem ao processo de codificação de aplicações; as inúmeras recomendações propostas focaram na necessidade de evitar problemas bem conhecidos de aplicações mal estruturadas, como o notório "código spaghetti" (trechos de código extensos, mesclando diversos aspectos e sendo, por conta disso, de difícil manutenção).

Os numerosos padrões baseados em conceitos de OO foram elaborados como alternativas para a solução dos mais variados tipos de problemas, sendo que tais práticas possibilitaram o desenvolvimento de aplicações construídas seguindo uma arquitetura mais flexível a mudanças (algo praticamente certo ao longo do ciclo de vida de um software), priorizando o reuso de componentes de software já implementados anteriormente.

Bibliotecas de componentes constituem um caso bem conhecido de reutilização de recursos empregando Orientação a Objetos: projetos desenvolvidos dentro de uma mesma plataforma ou linguagem de programação podem se beneficiar de funcionalidades existentes em tais dispositivos, eliminando os esforços que seriam empreendidos na construção das estruturas equivalentes.

A grande revolução pela qual passou a área de telecomunicações, sobretudo quando se considera a expansão no uso da Internet e de outros recursos de rede, transformou profundamente o cotidiano das organizações. Muitas rotinas de integração entre diferentes sistemas, antigamente caracterizadas por seu comportamento moroso, tiveram uma redução drástica em seus respectivos tempos de execução: informações que eram processadas ao fim de um expediente de trabalho e em lotes, passaram a partir deste processo de evolução sem precedentes, a serem substituídas por transações em tempo real.

...
Quer ler esse conteúdo completo? Tenha acesso completo