Me he visto en trabajos anteriores ante la requisitoria de idear un sistema que impida que el software se pueda usar en forma
irrestricta en multiples computadoras sin necesidad de que cada una tenga una licencia de uso individualizada. La forma de individualizar
cada computadora implica tener conocimiento de sus componentes, de forma que si la licencia detecta cambios en alguno o varios de estos
quede inhabilitada y se necesite una nueva.
En el 'Proyecto Alice' por las caracteristicas del lenguaje que use para programarlo (Visual Basic .NET) y el sistema operativo en el que se
buscaba que corriera (Windows), no fue dificil llegar a una solución que me indicara muchos datos del hardware que pudiera usar para crear una licencia.
En el caso de Java por la capacidad de correr en 'cualquier' sistema donde exista una virtual machine, el enfoque debe ser otro.
Por un lado la forma de obtener estos datos es diferente, por ejemplo en Windows, que en Linux, que en macOS; pero como la VM nos puede
ofrecer el dato de en que sistema esta corriendo, podemos obtener los datos de forma diferenciada, según de que sistema operativo se trate.
Con este enfoque, pude comenzar a trabajar con Windows.
Aquí está el
CODIGO para obtener datos del procesador, motherboard y memoria.