tions, an applet is only able to open connections to programs being executed in the same machine as the web server that has sent the applet to the web browser. The applet can only open connections to applications running in other machines if it is a signed applet. The event dispatcher is again configured by passing to it Lua code, which per- forms the distribution and storage of the events. There are three ways to distribute an event: to every user, to a domain of users or to one user. Tables are used to struc- ture data in Lua, making it is easy to define simple structures, such as arrays and records, and more complex structures, such as linked lists and sets. 14.3.3 Monitoring Service The Monitoring Service is responsible for periodically monitoring and collecting information from the network elements. Such information is useful in performance management and for identifying abnormal conditions. The Monitoring Service can be broken down into Monitor processes, which are responsible for collecting and monitoring the information in the network devices. These processes are composed of a CORBA interface, for receiving its configuration, and a Lua engine, which executes the monitoring according to the Lua code. Monitors can be executed in different machines, allowing load distribution. The user interface application is basically a CGI application, a set of CGILua scripts. These scripts implement the user interface and the network management applica- tion, setting up the services described in the previous sections. As the remote ser- vices use CORBA interface, the user interface application could be implemented in any kind of language that has an ORB implemented. We chose CGILua for imple- menting WebComm because of its flexibility and simplicity. The simplicity of Lua syntax makes the development of the application easy and quick. An application 14 Web-based Telecommunications Systems Management built with CGILua may also be extended, allowing the user to add new tools to the management application. Lua libraries may