Até a Segurança Social é centralizada!
- Published May 2nd, 2008 in Crónicas
É impressionante como tudo neste país está centralizado em Lisboa. Até os sistemas de informação.
Hoje um amigo meu foi a uma repartição da Segurança Social tentar pagar o devido. Qual não é o seu espanto quando o informam que não o pode fazer porque, e cito, “o sistema em Lisboa está em baixo”.
Ok, muito bem, o sistema está em baixo. E quando um dos servidores do Google está em baixo? Todo o mundo pára? Não. Existem vários servidores dispersos por vários pontos que garantem a redundância.
É incrível como fica todo um país suspenso por um servidor cito em Lisboa.
P.S. - Claro que isto não tem nada a ver com Lisboa, o servidor poderia estar noutro sítio qualquer. Mas é tanta a centralização e a crença que tudo deve passar por Lisboa que nem passa pela cabeça dos políticos portugueses que há forma de garantir o serviço quando, imagine-se, é ponte em Lisboa.




Nota-se que o bom senso reina no senhor Rui Lopes, contudo, e sendo formado em engenharia informática, devia estar ciente dos problemas da sincronização de serviços distribuidos. Talvez antes de fazer uma crítica pública deva investigar, saber as razões das decisões e depois não fazer apenas posts sem explicitar os seus fundamentos.
Caro Jorge,
Antes de mais, desconheço quem seja o Rui Lopes.
Em segundo lugar, os problemas de sincronização e tudo o resto são tão grandes entraves como o são fazer um carburador de um carro. Ou seja, o que é que pretende mesmo dizer?
Pretende dizer que como existem obstáculos, o melhor é deixar tudo como está? Que a Segurança Social funciona melhor assim, ou seja, quando em Lisboa está em baixo, todas as repartições devem parar? Que o Governo não tem 1 ou 2 milhões para pagar a quem consiga implementar um bom sistema distribuido?
Sumarizando a minha opinião não é nada de impossível de fazer com muita vontade de partir pedra consegue-se bons resultados, e tempo. É preciso tempo, as aplicações também assentam em plataformas ultrapassadas(acho eu) e por isso de difícil expansão.
Fernando,
Naturalmente que há entraves. A questão é que da mesma forma que cultura promovida pelo Estado deveria percorrer todo o país, também este tipo de sistema não deverá ser centralizado a sua concepção deverá sempre ser efectuada tendo em conta a distribuição dos serviços para que da próxima vez que eu vá perder o meu tempo a pagar impostos ao Estado não receba um “volte cá mais tarde, o servidor em Lisboa está em baixo”.
Se ainda me indemnizassem pelo tempo perdido…
Peço desculpa por trocar o seu nome, queria mesmo escrever “Mário Lopes”.
O problema de sincronização que falo é o da sincronização de dados após a falha de um servidor ou falha de comunicação de dados. Em outras palavras, se por exemplo há uma falha de comunicação entre um servidor do Porto e o de Lisboa, alguém executaria uma acção no servidor do Porto, como por exemplo, notificava a segurança social que estava desempregado, e ao mesmo tempo, notificava a segurança social em Lisboa que estava de baixa. Como é que acha que depois os dois servidores se iam chegar a acordo sobre quais os dados correctos? Não é possível estar de baixa e desempregado ao mesmo tempo e não é possível escolher a melhor opção.
Caro Jorge,
Essa situação parece-me absolutamente bizarra. Se alguém anda a notificar dois estados distintos em dois balcões distintos e geograficamente separados da Segurança Social é porque tem problemas sérios. Ainda assim, o problema tem solução simples: usar sempre o último estado.
As questões técnicas não são desculpa para continuar com o país em morte lenta e dolorosa fruto do cancro da centralização.
Não é bizarra, é um problema comum de sincronização de dados, sincronizar dados entre sistemas distribuídos.
A solução do último estado não funciona porque apenas é possível saber qual é o “último” estado se as acções são atómicas (atomic) e isso só possível se só for possível executar uma acção de cada vez, o que não é possível em caso de dois sistemas a actuar em separado.
A única “solução” é em caso de acções que causem conflitos ignorar essas acções mas nesse caso era preciso dizer às pessoas algo como “isto fica aqui mas é apenas provisório, daqui a X tempo venha verificar a situação”.
Já agora, em que situação é que uma pessoa dá fisicamente duas informações distintas em balcões a 300 kms de distância?
Quanto à questão da sincronização, isso está errado. Admitindo esse bizarro exemplo em que duas informações distintas são dadas em balcões a 300kms de distância e o sistema está em baixo, ambas as informações ficarão guardadas localmente em cada servidor. Compete depois ao sistema de sincronização primeiro perceber se são exclusivas. Se não forem, executa as duas e está feito. Se forem exclusivas, ou executa-as pela ordem do timestamp para ficar tudo registado ou então executa a última apenas.
Não há desculpas técnicas para um sistema desses não existir. Já se gastou bem mais dinheiro em sistemas bem mais simples de conceber.