Idea de proyecto: seguimiento completo de las actividades del usuario con asistencia remota Este programa se divide en dos módulos principales, uno es para el seguimiento completo de la actividad e incluso puede indicar qué actividad está actualmente activa en el lado del usuario. También puede funcionar como un registrador de teclas global para registrar el texto escrito por un usuario en cualquier ventana de proceso (solo cuando se realiza correctamente). El segundo módulo es para acceso remoto, que se usa ampliamente para asistencia remota visual y se usa especialmente en industrias, universidades, centros de capacitación y muchos más. Este proyecto se basa completamente en la arquitectura cliente-servidor que se implementa de manera eficiente utilizando JAVA, puente C con JNI.
Características :
Primer módulo: lado del servidor de seguimiento de actividad: puede realizar un seguimiento de 100 clientes a la vez con la interfaz de usuario más simple con acceso rápido a los datos. Este programa de servidor le brinda opciones para rastrear el texto del usuario sobre la actividad actual desde el identificador de la ventana hasta el texto que contiene. (Seguimiento AZ) Incluso puede rastrear las pestañas de Google Chrome a un archivo de texto ubicado en FileSystem. Utiliza el registrador de teclas global para registrar el texto escrito por cada uno de los usuarios. Lado del cliente: no hay interfaz de usuario para el programa del lado del cliente. Se ejecuta como un proceso en segundo plano que se ejecuta en el inicio de la ventana o puede ser invocado por el proceso del servidor mediante RMI (invocación de método remoto).
Segundo Módulo: Acceso Visual Remoto Lado Maestro: Basado en arquitectura Maestro y esclavo. El lado del maestro proporciona un reflejo visual de la PC del esclavo para proporcionar una interfaz agradable para el acceso remoto. El maestro puede controlar la máquina del esclavo por completo, desde reproducir música hasta buscar en la web. Solo puede manejar al esclavo a la vez. Lado del esclavo: No hay interfaz de usuario para el lado del esclavo, es un proceso en segundo plano. Las acciones del amo se reflejan completamente en la máquina del esclavo. Un esclavo puede ser invocado por una máquina Maestra en cualquier momento.
Detalles de implementación: No se utiliza ninguna base de datos con el fin de acceder rápidamente a una gran cantidad de datos creados por segundo. Para acceder a los datos, utilizamos TreeMap anidado junto con ArrayList para almacenar datos de manera eficiente para un acceso rápido. El concepto detrás del uso de TreeMap es obtener los datos en orden ordenado en complejidad de tiempo O (inicio de sesión). Se proporciona un pequeño fragmento de código de la implementación:
Java
for (Map.Entry<String, TreeMap<String, TreeMap<String, ArrayList> > > en : tm.entrySet()) { System.out.print(en.getKey() + "-->"); TreeMap<String, TreeMap<String, ArrayList> > tm1 = en.getValue(); for (Map.Entry<String, TreeMap<String, ArrayList> > en1 : tm1.entrySet()) { System.out.print(en1.getKey() + "-->"); TreeMap<String, ArrayList> tm2 = en1.getValue(); for (Map.Entry<String, ArrayList> en2 : tm2.entrySet()) { System.out.print(en2.getKey() + "-->"); ArrayList ar = en2.getValue(); for(int i=0;i"); } } }
Herramientas/lenguajes de programación utilizados: Java C JNI RMI Notepad++ TRABAJO DE INVESTIGACIÓN: Profundo estudio sobre JNI a partir de recursos web RMI Trabajó con funciones incorporadas de Windows usando jni. https://msdn.microsoft.com/en-us/library/windows/ Aprendí sobre la clase Runtime, la clase Robot, etc. Un agradecimiento especial a GEEKSFORGEEKS, StackOverflow.
Equipo: Prakhar Gupta, Instituto de Tecnología de Moradabad, cuenta de Github: https://github.com/prakhar554 Perfil de GeeksforGeeks: https://auth.geeksforgeeks.org/profile.php?user=PRAKHAR%20GUPTA%2012 Perfil de LinkedIn: https ://www.linkedin.com/in/prakhar-gupta-bab211106/ Mritumjay Yadav, Instituto de Tecnología de Ingeniería Sant Longowal, Punjab, Código PIN: 148106 Perfil de LinkedIn: https://www.linkedin.com/in/mritunjay-yadav -37544112a Cuenta de Github: https://github.com/manutanu Perfil de GeeksforGeeks: https://practice.geeksforgeeks.org/user-profile.php?user=Mritunjay%20Yadav Si te gusta GeeksforGeeks y te gustaría contribuir, puedes también escribe un artículo usando write.geeksforgeeks.orgo envíe su artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA