Buscar

Serviços SaaS SOA

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Uma introdução ao 
Software + Serviços, SaaS e SOA
Sumário
Nesses últimos anos, diversas empresas de diferentes áreas de atuação têm implementado projetos em torno do tema SOA – Service Oriented Architecture. 
Os projetos de SOA buscam um conjunto de benefícios que juntos prometem a organização de uma TI mais ágil, de fácil administração e que atenda de forma mais rápida as necessidades de negócio da empresa, em torno do chamado negócio ágil (ou Agile Business). 
Sumário
Nesse mesmo período, vimos o nascimento do modelo de entrega de software como serviço, o SaaS – Software as a Service, com novas exigências para uma solução de software mais flexível e reutilizável, suportando diversos usuários sobre uma mesma infra-estrutura configurável, oferecendo funcionalidades sob demanda. 
Web 2.0
Finalmente, conceitos de Web 2.0, aplicações de composição, barramento de serviços corporativo, entregas de software como serviço e o uso de infra-estrutura provisionável e de alta escalabilidade conhecida como computação na nuvem (ou cloud computing) são tendências que juntas criaram um novo contexto de infra-estrutura e soluções que temos hoje a disposição das empresas. 
Conteúdo
Conteúdo
Introdução
 A combinação do Software + Serviço
 Entregando software como serviço – SaaS
A cauda longa
O modelo de maturidade SaaS
Uma plataforma como serviço
A computação na nuvem
 Construindo arquiteturas orientadas a serviços – SOA
Arquitetura de Referência SOA
Capacidades de uma infra-estrutura de SOA
Construindo aplicações compostas – Web 2.0
 Considerações finais
Introdução
De forma simplificada, podemos definir SOA – Service Oriented Architecture – como um estilo de arquitetura onde funcionalidades específicas de sistemas existentes são oferecidas na forma de serviços.
Aqui, temos alguns conceitos normalmente associados ao tema como barramento de serviços, níveis de operação de serviços, granularidade de serviços, etc. 
SOA
Da mesma forma, consumo de serviços, governança, reuso e todas as capacidades associadas à administração de um ambiente de serviços ganham importância nesse tipo de arquitetura.
Antes de tratarmos todos esses conceitos, vamos apresentar posicionando essa discussão nos dias de hoje.
Breve histórico sobre a evolução do ambiente corporativo
A figura abaixo apresenta uma visão em décadas, onde vemos diferentes abordagens para o ambiente de TI – Tecnologia da Informação:
1970s
Iniciando com a década de 70, nessa época as empresas dispunham de grandes centros de processamento com custos elevados de operação e manutenção. Prevaleciam os sistemas monolíticos, que exigiam pessoal especializado, com grande conhecimento sobre detalhes técnicos de operação e muito pouco era transparente para o desenvolvedor ou para o usuário que operava sobre esses centros.
1980s
Já na década de 80, observamos o nascimento da computação pessoal, oferecendo poder de processamento a baixo custo para o usuário final. O usuário doméstico tinha mais poder para operar e manipular sua própria máquina, com menor necessidade de especialização.
No final dos anos 80 iniciava o modelo de computação cliente/servidor, com o uso intenso de redes interoperáveis que integravam ambientes corporativos. Redes FDDI - Fiber Distributed Data Interface, Token Ring, Ethernet (IEEE 802.3) e uma série de equipamentos de integração como bridges, roteadores, switches e hubs iniciavam suas aparições, permitindo que empresas integrassem ambientes de computação e sistemas, ainda que com grande acoplamento de interfaces, protocolos e formatos de dados via rede.
1990s
Nos anos 90, vimos a consolidação da arquitetura cliente/servidor. Vimos também o surgimento da Web como uma rede pública de baixo custo disponível para universidades, empresas e usuários domésticos. Enquanto que diferentes topologias de redes proliferavam, vimos mais e mais equipamentos de interconexão invadindo nossas empresas, ampliando as capacidades de comunicação e integração entre sistemas.
Sobre esses equipamentos, funcionalidades de aplicações eram publicadas através de serviços, que atendiam as diversas requisições através de protocolos TCP/IP ou diálogos proprietários, customizados para cada cenário de indústria. Serviços eram implementados expondo funcionalidades de aplicações ou sistemas fora das empresas.
2000s
A virada do século veio com mudanças ainda mais importantes: padrões como SOAP (Simple Object Access Protocol), HTTP (Hypertext Transfer Protocol), HTML (HyperText Markup Language) e XML (eXtensible Markup Language) permitiram que sistemas fossem integrados mais rapidamente, suportando um número crescente de usuários e aplicações através da internet. 
Sobre esses padrões, novas aplicações ganharam visibilidade como wikis, blogs, redes sociais, buscadores, etc., e conceitos como Web Services e serviços ganharam importância:
Através da combinação HTTP+SOAP, serviços foram definitivamente expostos pela internet, cruzando as barreiras de firewalls pelas portas 80 (HTTP) e 443 (HTTPS) do TCP, ampliando as possibilidades de integração.
Hoje
Hoje, estamos acompanhando o nascimento de uma nova onda no setor de TI, a chamada computação na nuvem (ou cloud computing). Gigantes como Microsoft, Amazon e Google ampliam suas ofertas de datacenters pelo mundo, oferecendo recursos de infra-estrutura provisionável além das fronteiras de nossas empresas.
Hoje
Vivemos assim o surgimento de uma TI mais dinâmica, flexível e híbrida, combinando serviços locais, hospedados em máquinas e servidores locais, com serviços remotos, hospedados em datacenters diversos.
Da mesma forma, o custo de operação dessa nova TI será mais flexível, entre custos próprios, de serviços auto-hospedados e custos dinâmicos, a partir de serviços oferecidos pela internet e pagos por demanda, pelo volume de uso.
Serviços
Com esse breve histórico, voltamos ao tema central da introdução: os serviços.
Seja sobre uma infra-estrutura local ou através de datacenters espalhados pelo mundo, funcionalidades de aplicações serão cada vez mais oferecidas como serviços, permitindo a combinação e o consumo de uma forma flexível e dinâmica. 
 A combinação do Software + Serviço
Nesses últimos anos, tem-se utilizado a expressão software+serviço (S+S) para expressar estratégias sobre o uso de recursos locais e remotos, sobre uma mesma infra-estrutura de TI.
Essa visão também envolve os principais conceitos presentes hoje em dia no setor, como o SAAS – Software as a Service, a Web 2.0 e uma arquitetura SOA.
Web 2.0, SaaS e SOA
Principais elementos do Software+Serviço: 
Web 2.0, SaaS e SOA.
SLA’s – Service Level Agreement
No centro, vemos as questões de entrega de nossa infra-estrutura: funcionalidades de software podem ser entregues na forma de serviço, hospedados localmente em nossa empresa, em provedores parceiros ou mesmo em datacenters remotos com provisionamento dinâmico, na direção da computação na nuvem. De fato, o modelo de entrega SaaS envolve uma mais TI flexível, que pode compor diferentes níveis de operação (ou SLA’s – Service Level Agreement). 
SLA’s – Service Level Agreement
Serviços hospedados localmente em servidores de nossa própria infra-estrutura tendem a responder de forma mais rápida do que serviços remotos, parcialmente conectados pela internet, seja por questões de acesso e latência de rede ou por condições de contrato ou interfaces customizadas para um cenário específico.
SLA’s – Service Level Agreement
 Uma infra-estrutura local normalmente envolve maior especialização e customização para o cenário de negócio da empresa. Ao mesmo tempo, serviços hospedados na nuvem podem aproveitar o alcance global, com provisionamento dinâmico e o poder de computação elástico, que aumenta ou diminui conforme a necessidade da aplicação. 
SLA’s – Service Level Agreement
Essa combinação entre local e remoto (on-premise
e off-premise) ou maior controle e maior alcance será avaliada de acordo com as necessidades de negócio de cada empresa não havendo certo ou errado, mas sim combinações vantajosas ou mais aderentes às metas de custos de operação de cada indústria.
Web 2.0
A Web 2.0 agrupa questões focadas no usuário (consumidor), envolvendo a experiência de acesso e sua usabilidade, assim como as medidas de acesso e monetização sobre o software. 
Hoje, as aplicações são consumidas através de diferentes interfaces como desktops, notebooks, netbooks, smartphones, pda’s, entre outros dispositivos. 
Web 2.0
Essa variação de interfaces para comunicação exige também um maior suporte a uma série de protocolos e formatos de dados, além de uma maior riqueza de recursos gráficos e melhor usabilidade e navegação.
Web 2.0
Ainda como recurso da Web 2.0, o software como serviço é tarifado de diferentes maneiras, seja via licença, subscrição ou por transação efetuada, além de aproveitar o volume de acesso para gerar renda através de propaganda e campanhas publicitárias sobre sua base de usuários.
Web 2.0
 Todas essas formas de monetização são clássicas do modelo SaaS e estão presentes em diferentes tipos de aplicação hoje em dia, principalmente em sistemas na Web, portais colaborativos, marketplaces na Web, entre outros.
Monetização da Web 2.0
A Internet deixou de ser algo só para informação e entretenimento e se tornou um meio demasiadamente lucrativo!
Atualmente as empresas estão investindo muito em publicidade na internet pelo fato das pessoas hoje em dia passarem a maior parte de seu dia frente aos computadores.
Monetização da Web 2.0
Os sites de compras coletivas são um grande exemplo desse comércio pela internet onde os usuários cadastrados nesses sites recebem diariamente através de email informações sobre as ofertas do dia e podem fazer suas comprar sem sair de onde estão.
Entregando software como serviço – SaaS
Alguns especialistas afirmam que o mercado ao redor de SaaS envolve cifras em torno de US$ 5 bilhões. Ainda, de acordo com o Gartner Group, SaaS representou cerca de 5% do mercado total de software em 2005 e até 2011, deverá representar 25% das vendas totais para o segmento corporativo. 
Entregando software como serviço – SaaS
O uso de SaaS para a automação dos processos de negócio fim-a-fim, como ordens de pagamento para grandes empresas por exemplo, deve crescer ainda mais nos próximos anos. Porém, o que inicialmente era uma visão de negócio para a exposição de funcionalidades na forma de serviços está se tornando uma opção real de publicação de funcionalidades também no ambiente corporativo, entre departamentos, através de infra-estrutura local, remota ou na nuvem.
Entregando software como serviço – SaaS
Em poucas palavras, SaaS é um software distribuído como um serviço, implementado em plataforma web de forma nativa e acessado usando tecnologias e protocolos de internet.
Do ponto de vista do usuário, é um software que não é instalado localmente na infra-estrutura do cliente (on-premise), mas é utilizado através da web e pago pelo tempo de uso ou volume, por demanda. 
Entregando software como serviço – SaaS
Desse modo, um software SaaS envolve mecanismos de tarifação e métricas de uso ou billing. Ainda, é um software que fornece uma API para acesso pela web, através de Web Services, interfaces REST, SOAP, entre outros protocolos.
Entregando software como serviço – SaaS
Um aspectos importante da arquitetura SaaS é o envolvimento de uma infra-estrutura compartilhada entre diversos clientes, o que caracteriza um de seus grandes desafios de construção. 
Quando pensamos em SaaS, o conceito de multi-inquilino está presente. Ele é referente ao uso do mesmo software e instância por vários clientes e empresas de forma simultânea. 
Entregando software como serviço – SaaS
Em apresentações sobre SaaS, o termo tenant é utilizado para designar o inquilino, ou cliente que acessa o software pela web. 
O objetivo dessa abordagem é disponibilizar os mesmos recursos de software para um número muito maior de clientes. E essa visão tem suas bases no conceito da "Cauda Longa".
Cauda longa
Cauda longa
O gráfico ilustra que conforme baixamos o custo de adoção, um número maior de clientes pode adotar nossa solução. E esse número tende a crescer, aproveitando o alcance global do ambiente Web.
No modelo SaaS de fornecimento de software, precisamos pensar em soluções e infra-estruturas de baixo custo, com alto aproveitamento de recursos por um número muito grande de clientes, para atingirmos um público não suportado hoje em dia, devido os custos proibitivos de entrada.
Cauda longa
Outro conceito importante do modelo é o "micro-pagamento". Na cauda longa, um número muito grande de usuários poderá adotar nossa solução pagando pelo uso, por demanda, o que deve gerar um valor muito baixo de pagamento ou ticket. 
Nesse cenário, estamos realmente buscando o chamado "milhões de mercados de poucos" ao invés dos atuais "poucos mercados de milhões", sendo a essencial do modelo baseada na Cauda Longa.
Construindo arquiteturas orientadas a serviços – SOA
Quando falamos em SOA, destacamos aqui duas palavras-chave: composição e federação.
A composição compreende a agregação de serviços e workflows participantes de uma arquitetura SOA, permitindo a combinação de chamadas chamadas para serviços diversos, assim como a coordenação de processos participantes de uma aplicação.
Construindo arquiteturas orientadas a serviços – SOA
A federação compreende a integração de diferentes arquiteturas de serviços, através de recursos como federação de identidades, compartilhamento de recursos e áreas de armazenamento comuns ou por colaboração entre os participantes.
Arquitetura de Referência SOA
Uma arquitetura de referência normalmente é apresentada como um diagrama ou desenho que orienta o arquiteto de soluções e desenvolvedores na construção das diversas camadas e componentes de uma solução.
Arquitetura de Referência SOA
Exemplo de Arquitetura de Referência SOA:
Capacidades de uma 
infra-estrutura de SOA
Considerando uma solução baseada em serviços, uma questão importante que aparece é a hospedagem destes componentes, assim como sua administração, segurança, controle, versionamento, governança, entre outros aspectos de infra-estrutura da solução.
Capacidades de uma 
infra-estrutura de SOA
Surge então o conceito de SOI – Service Oriented Infrastructure, que envolve os principais aspectos de administração do ambiente de serviços disponíveis em nossa TI.
Existem diferentes tipos de hospedagem de serviços, oferecendo benefícios e limitações próprias. Da mesma forma, podemos organizar os diferentes recursos e camadas da arquitetura SOA, posicionando seus componentes físicos de acordo com a arquitetura de referência SOA apresentada anteriormente.
Capacidades de uma 
infra-estrutura de SOA

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais