Quando eu programava jogos em DirectX no Windows eu me deparava com o conceito de COM. O windows atuava como um container de objetos que eram implementados usando os padrões do COM. Basicamente o cara ia lá, criava um componente e ‘registrava’ ele no windows, aí outro cara ia lá e instanciava o objeto usando sua interface.
Daí estou estudando Spring e toda a novela envolvendo EJBs, Spring, IoC, DI, AOP, etc… Aprendendo as necessidades do container, a ideia de plugabilidade, etc. etc…
Estou notando algumas semelhanças disso com a ideia de COM. Além disso, até mesmo a ideia de RestFULL parece se encaixar nesses lances de RPC e IPC em geral…
Não apenas isso, eu também estudei um pouco de arquitetura de sistemas operacionais, nanokernel, exokernel, microkernel, etc… Um microkernel não parece diferente de um sistema micro-serviços em Java, até mesmo o message broker é visto em um sistema microkernel com vários serviços que comunicam entre si via mensagens. No SO MMURTL ou Message based MUltitasking, Real-Time, kerneL, as trocas de mensagens entre os processos (serviços?) eram tão simples quanto a troca de mensagens entre os serviços usando REST.
É estranho ler essas coisas como se fossem novas sendo que todos esses conceitos são bem antigos, década de 80 ou 90, só não eram pra web…