I am currently a Bachelor Student in Computer Science at the University of Bern studying in the 9th semester. Alongside my studies I work as a software tester at the State Secretariat for Migration (SEM-EJPD) focussing on test automation. In my free time I play around with many different programming languages and write (mainly small but useful) libraries for Java and Scala. Some small applications have also popped up over time. These projects can be found at http://www.awae.ch and on GitHub: https://github.com/ksmonkey123
For my Bachelor Thesis I develop a software component for the IT Service Center of the Federal Department of Justice and Police (ISC-EJPD). The main goal of this component is to continuously monitor a Java Server Application and provide a status report on request over a WebService. It should also be able to detect predefined error conditions automatically and attempt to resolve those using customisable strategies. Some of the most important monitoring aspects are monitoring the condition of all required external services and published services for use by other systems, monitoring of VM memory usage and GC performance. The solution should be as abstract as possible (and as such it should be usable in almost any application), but also highly usable for one specific application (ZEMIS). This combination of high abstraction and target-specific implementation will require a carefully balance during the complete development.
Initially I will develop a completely abstract and unspecific solution able to monitor (almost) any generic JavaEE EJB. Since the vast majority of components used in ZEMIS have a generic EJB somewhere in their type hierarchy (as will most components of any application), this should allow at least generic monitoring of the vast majority of components. After that A set of ever more specific components will be created to cover more EJB-specific traits for ever more specialised EJB groups. GC and RAM monitoring can probably be done on the VM-Level and therefore require no direct relation to any of the JavaEE components as long as the VM specs and implementation are known. I have already confirmed, that reflection is a possible tool for such monitoring, which opens up quite some possibilities.