E você vai passando pelas empresas, vai ganhando experiência, acaba vendo problemas recorrentes e em algum momento pode passar o seguinte pensamento: Putz, esse problema aqui se resolveria de forma super simples com um API Manager, ou um ESB, e quem sabe essa infinidade de API’s de consulta poderiam ser criadas com uma ferramenta. Hoje vou falar um pouco de alguns produtos da WSO2.
Bom esses e muitos outros problemas endereçados no SOA são geralmente atendidos com soluções caras como Data Power, Integration Bus (ambos da IBM) e diversas outras soluções extremamente difundidas, mas caras! Seja IBM, Oracle, Microsoft, CA, inevitavelmente você irá esbarrar em custo, principalmente se você não tiver um bom orçamento para se jogar fora.
Mas então vai ficar sem? A resposta simples para essa pergunta é não. Há alternativas open source que podem te auxiliar. Então hoje vou falar um pouquinho sobre os principais produtos da WSO2, uma empresa que oferece uma suite SOA Open Source. E não é pegadinha, você tem tudo à mão sobre a Apache 2.0 que inclui permissões para:
- Uso comercial
- Distribuição
- Modificação
- Uso em patentes
- Uso privado
E se você se interessar por suporte, seja para desenvolvimento, ou suporte a produção, aí sim você incorre em custos. Há uma equipe comercial aqui no Brasil para te suportar, é só entrar em contato no site do produto.
Agora vamos falar de alguns dos principais produtos da suite. Elegi alguns para falar, os que estou mais familiarizado pois a suite é grande. Para se ter uma visão geral sobre a suite, vale a pena olhar o link, ondem tem tudo lá. Alguns produtos já estão “saindo de linha”, mas ainda assim vale muito a pena dar uma olhada no site.
O que é WSO2?
WSO2 é uma empresa de tecnologia Open Source fornecedora de middlewares SOA. É mais conhecido por seu Enterprise Service Bus, API Manager, governança e ofertas de análise, alguns dos quais são especialmente utilizados pelo eBay, Boeing, Experian e outros. WSO2 foi fundada pelo Dr. Sanjiva Weerawarana e Paul Fremantle em agosto de 2005, e tem sido apoiado por investimentos da Intel Capital, Toba Capital, Pacific Controls e outros. A WSO2 tem escritórios nos EUA (Mountain View, CA, Bloomington, IN), Reino Unido (Londres) e Sri Lanka (Colombo), sendo a maior parte de suas pesquisas e operações realizadas em Palm Grove, Colombo . A empresa ganhou destaque depois que o eBay revelou que um elemento-chave do seu software de processamento de transações usava o open source WSO2 ESB. Os produtos WSO2 são liberados sob a Versão 2 da Licença Apache. Como o próprio projeto do Apache, o WSO2 segue os princípios de desenvolvimento aberto e publica listas de discussão públicas sobre arquitetura e desenvolvimento. A companhia é notada por Gartner como sendo um dos concorrentes principais no mercado da infra-estrutura da aplicação (leia mais)
Principais produtos
Bom, vou abordar aqui os principais produtos, sob a minha perspectiva. A WSO2 tem muitos produtos, e muitos inclusive bem interessantes que não serão abordados hoje, como por exemplo o Machine Leaner, o Data Analytics Server ou o Business Process Server.
Há alguns produtos que são específicos para o suporte ao desenvolvimento Java. Não pretendo abordar esses produtos, apenas os produtos que são agnósticos e podem suportar desenvolvimento .NET, NODE etc.
Então vamos ao carro-chefe da empresa, o WSO2 Enterprise Service Bus. Como o nome o nome já sugere, este é um ESB completo, que oferece todas as features de um ESB de prateleira. Mas talvez você possa ficar em dúvida sobre o que um ESB faz. Um ESB compõem uma arquitetura como plataforma de integração e mediação na troca de mensagens. Seja para reduzir o acoplamento entre serviços, sistemas ou plataformas ou mesmo para assumir o papel de implementações comuns, como leitura de caixas de email, tratamento de arquivos texto, csv, excel, e outras tecnologias. Se integra perfeitamente a Message Brokers, que no caso do WSO2, pode ser usado com RabbitMQ ou qualquer AMQP server, ou utilizar o próprio WSO2 Message Broker. Como qualquer bom ESB, é altamente customizável e extensível, com plugins na loja da WSO2 ou comunidade, ou ainda você mesmo pode criar novos plugins para implantar em seu ESB. Esses plugins são facilitadores, que ajudam a construir pipelines com integração a diversas plataformas, como CRM, Email, Redes Sociais, ferramentas de gestão de tarefas e muito mais.
O Data Service Server é uma customização do ESB voltado para a construção de API´s de Serviços de Dados. Atrás da maioria dos aplicativos estão os armazenamentos de dados heterogêneos. A maioria das empresas requer acesso a dados de forma segura e gerenciada através desses armazenamentos de dados federados, transações de serviços, transformação de dados e validação. Os dados de uma organização expostos como um serviço, dissociados da infra-estrutura onde ela é armazenada são chamados serviços de dados na arquitetura orientada a serviços (SOA). O WSO2 Data Services Server (DSS) reduz os esforços de desenvolvimento, fornecendo uma plataforma simples e fácil de usar para, integrando armazenamentos de dados, criação de visões de dados compostos, hospedagem de dados de fontes díspares, como serviços Web WS- * ou REST. O DSS fornece um mecanismo fácil e poderoso para criar serviços de dados de várias origens, como bancos de dados relacionais, não relacionais (mongodb e cassandra), arquivos CSV, planilhas Excel, planilhas do Google etc. Esses serviços de dados fornecem acesso de dados sem nenhum requisito adicional, mas com integração direta com processos de negócios, mashups, gadgets, inteligência e aplicativos móveis. Você pode expor e acessar dados de forma segura (usando WS-Security) e confiável (usando WS-ReliableMessaging). Todas essas features garantem a redução do escopo de desenvolvimento, manutenção, na medida que o escopo e esforço para a criação de serviços de dados se torna algo extremamente simples. Além disso, suporta ODATA, o que torna a dinâmica de exposição de uma API de Dados, algo muito mais simples seguindo um standard que oferece diversas ofertas de tooling.
O WSO2 Identity Server é uma mão na roda quando falamos em identidade. Seja pela inúmera gama de opções que encontramos no mercado, seja Google, Microsoft, Facebook, Twitter, CRM, seu AD na núvem, seu AD local, há uma infinidade de meios de se autenticar usuários e o WSO2 Identity Server é uma plataforma de identidade completa que oferece recursos para que você não encare mais identidade como um problema, mas como solução. O WSO2 Identity Server fornece gerenciamento seguro de identidades para aplicativos, serviços e APIs da empresa gerenciando a identidade e os direitos dos usuários de forma segura e eficiente, reduzindo drasticamente seu custo de desenvolvimento específico para adicionar cada um dos providers de autenticação e oferece uma gama enorme de possibilidades.
Sobre autenticação, aqui estão alguns providers disponíveis:
- Amazon Authenticator
- Basecamp Authenticator
- Bitly Authenticator
- CAS Inbound Authenticator
- Clef Authenticator
- Dropbox Authenticator
- Duo Security Authenticator and Provisioning Connector
- EmailOTP Authenticator
- Foursquare Authenticator
- Github Authenticator
- Instagram Authenticator
- Inwebo Authenticator and Provisioning Connector
- JWT Grant Type for OAuth2
- LinkedIn Authenticator
- MailChimp Authenticator
- MePIN Authenticator
- Mobile Connect Authenticator
- Office365 Authenticator
- Password Policy Authenticator
- Reddit Authenticator
- RSA SecurID Authenticator
- SMSOTP Authenticator
- Tiqr Authenticator
- Token2 Authenticator
- TOTP Authenticator
- Twitter Authenticator
- WordPress Authenticator
- X509Certificate Authenticator
- Yammer Authenticator
O IS oferece Single Sign-On com SAML 2.0, OpenID, WS-Trust, WS-Federation, Integrated Windows Authentication e OAuth2-OpenID Connect, além de oferecer a possibilidade de associar workflows, com o auxílio do WSO2 Business Process Server.
Um API Manager consiste em uma plataforma que oferece uma loja de API´s, uma ferramenta de gestão, e um portal para publicação de API´s. Pra que? Bom, na loja, você se cadastra, em contra documentação sobre as API´s publicadas na plataforma, enquanto na administração você define os planos, que são limites e permissões de acesso a determinadas API´s, toda essa configuração fica no portal de management e publisher. Então com um API manager, você expõem suas API´s de forma pública ou restrita, permitindo ainda a configuração de sandboxes para teste, em uma plataforma unificada, centralizada. A plataforma contém um gateway que efetivamente repassa as requisições para os seus serviços, não deixando de gravar suas métricas e bloqueando requisições quando os limites de cada cliente é alcançado. É uma plataforma completa para gerenciamento de API´s, que trabalha isoladamente ou em conjunto com o Identity Server, mas depende do DAS (Data Analytics Server), também da WSO2 para fazer toda a gestão de métricas. O API Manager é independente do ESB e DSS, embora façam juntos sejam extremamente poderosos.
Message Broker é um dos meus patterns preferidos. É uma excelente estratégia de mediação, oferece segurança para o tratamento de grandes cargas de trabalho e é destinado a trabalhar recebendo mensagens, e distribuindo para seus consumidores, com todas as garantias necessárias para intermediar suas mensagens permitindo que os consumidores possam estar eventualmente desconectados. Isso dá muita segurança na hora de processar grandes cargas de trabalho e oferecer alta disponibilidade.O WSO2 Message Broker é uma implementação de Message Broker compatível com:
- Advanced Message Queueing Protocol (AMQP) versão 0-91
- Message Queueing Telemetry Transport (MQTT) versão 3.1
- Java Message Service (JMS) versão 1.1.
Mesmo sendo uma opção da própria WSO2, o ESB e API Managers fornecem integração ao MB, no entanto podemos continuar usando RabbitMQ ou qualquer servidor compatível com AMQP, como Message Broker.
Conclusão
As dificuldades de quem cuida de cenários complexos com dezenas e até centenas de API’s internas, somada à outra centena de API’s externas, são extremas. A governabilidade desse tipo de parque gera um esforço descomunal e a criação de soluções minimalistas para diversos problemas do dia-a-dia. O resultado dessa falta de planejamento é o amadorismo. Então como podemos nos posicionar de forma mais profissional? Endereçando problemas reais a soluções reais. Seja seu problema algo endereçável ao WSO2 ou não, evite dar preferência pelo desenvolvimento de soluções caseiras para problemas comuns ao mercado. Se suspeitar que alguém possa ter passado pelo mesmo dilema, corra atrás para entender se há um padrão ou uma solução para seu problema. Para quem pretende usar alguma coisa da WSO2 no seu próximo projeto, conta aí como está sendo, e para os que tem medo de Open Source, a empresa oferece suporte (pago), então ninguém deixa de ser atendido, até os mais conservadores.
Bom, por hoje eu fico por aqui!
OBS: Parte do texto foi retirado e traduzido da documentação do produto.
0 comentários