Caros, iniciei esta thread no grupo “API & Web Services Brasil” (LinkedIn), e, gostaria da opinião de vocês também sobre o assunto.
Atualmente os sistemas de gestão (ERP) são concebidos em um único grande bloco de software (divido em componentes), geralmente, de um mesmo fabricante. Usualmente os módulos básicos (financeiro, comercial, produção e RH) se comunicam unicamente através do Banco de Dados. Quando há a necessidade de acesso externo, é criado algum túnel VPN ou uma API para acesso externo a algumas informações.
E se o conceito de APIs fosse fortemente aplicado aos sistemas de gestão? Concretamente: ao invés de termos um grande sistema com todos os módulos de responsabilidade de um mesmo fabricante, teríamos diferentes módulos se comunicando através de APIs. Por exemplo: cada módulo básico (financeiro, comercial, produção e RH) seria de um fabricante diferente, e, via APIs eles se comunicariam.
Além disso, caso o sistema fosse utilizado em uma empresa onde existisse a necessidade de algum módulo especial, este módulo poderia ser desenvolvido pela equipe de desenvolvimento local, porém, sem a necessidade do desenvolvimento dos demais módulos mais ?genéricos?. Por exemplo: em uma clínica médica, os módulos de Anamnese e Prescrição seriam desenvolvidos por programadores locais, porém, os módulos de financeiro, RH, etc. não teriam a necessidade de desenvolvimento, seriam utilizados módulos de terceiros, oferecidos por uma API.
O que vocês acham a respeito? Quais as limitações deste modelo?
Seria muito melhor se fossem módulos independentes conectados por uma API de integração como SOAP, REST ou WebSocket de forma a encapsular a tecnologias. Esse modelo tem vários pros e contras…tempo de resposta maior, custo de infra maior para manter isso, plano de redundância mais caro, muito mais complexo de criar e mantar bla bla bla…em contra partida seria mais flexível, modular, intercambiável, independente de tecnologia…bla bla bla…
"tempo de resposta maior"
Verdade, a latência da rede irá impactar bastante.
"custo de infra maior para manter isso"
Pelo contrário, como é serviço, a empresa contratante não investirá muito em infraestrutura (modelo Cloud)
"plano de redundância mais caro"
Sim, além disso muito cache
"muito mais complexo de criar e mantar"
Se as interfaces forem bem definidas, não seria tão complexo assim…
"em contra partida seria mais flexível, modular, intercambiável, independente de tecnologia"
Em seu contexto de trabalho, acredita que os clientes pagariam por algo assim?
"tempo de resposta maior"
Verdade, a latência da rede irá impactar bastante.
Aqui vc pode utilizar estrategias para minimizae isso como cache…
"custo de infra maior para manter isso"
Pelo contrário, como é serviço, a empresa contratante não investirá muito em infraestrutura (modelo Cloud)
Cloud resolve sim…
"plano de redundância mais caro"
Sim, além disso muito cache
verdade…
"muito mais complexo de criar e mantar"
Se as interfaces forem bem definidas, não seria tão complexo assim…
Interface bem definida não resolve problemas de orquestração…
"em contra partida seria mais flexível, modular, intercambiável, independente de tecnologia"
Em seu contexto de trabalho, acredita que os clientes pagariam por algo assim?
Tudo depende das prioridades dos requisitos…se houver requisitos que pese flexibilidade, modulação bla bla…
Agora se for fazer só para fica bunito kkkk vc vai arrumar dor de cabeça atoa…
"Interface bem definida não resolve problemas de orquestração… "
Verdade. Em um modelo como este eu tenderia a escolher REST com transações compensatórias. How does that sound?
[quote=brccosta]"Interface bem definida não resolve problemas de orquestração… "
Verdade. Em um modelo como este eu tenderia a escolher REST com transações compensatórias. How does that sound?[/quote]
Seria REST sim…
[quote=JackOld]
Pense 2x antes de politizar contra uma tecnologia, pq o que você acabou de falar foi uma asneira contra o conceito de clouds!![/quote]
Tem razão. Se a nuvem é boa pra guardar tweets e fotos no instragam por que não aproveita-la pra guardar também dados de finanças, vendas, estratégias de marketing da empresa, etc. lol