It is required to write the control interface and agent for a network element (NE) that is a network switch. The control interface (CI) should be a Java application that provides a graphical interface for the NE, the agent on the NE (hereafter just termed the NE) is to be a Java application that does not have a graphical interface but instead provides logging facilities to a text file and mimics control actions to the switch. The communication between the control interface and NE agent is to be CORBA. More details on the switch you are to control: The switch has six ports labelled P0 ... P5, each port has up to 65536 possible channels labelled 0-65535. The switch allows any input chanel from one port to be switched to a channel on any other port according to an entry in a switch table. For example four switch table assignments could be written as: Input Port Input Channel Output Port Output Channel P0 10 P1 20 P1 20 P4 30 P5 31 P2 30 P2 30 P5 31 Note that only one input channel/port can be assigned to each output channel/port and that at any one time there may be any from zero to full capacity of channels assigned. The last two entries in the example above shows a configured bi-directional link and indicates that the channels are themselves uni-directional (i.e. if a port/channel is used for input the same port/channel numbers can be used for output from the switch without contention).
Specification of the Control Interface (CI): The control interface (CI) should be able to set any combination of input channel/port to output channel/port switch entries and confirm that this was succesful (i.e. that it was allowed by the switch). It should be able to query ports to obtain the channels setup to that port as either input or output. Furthermore it should allow the deletion of a switch table entry. The CI should communicate with the switch using CORBA. When querying the switch for already setup channels there could be potentially a large amount of information (six ports times 65536 channels!), hence, an ability to query just one port and/or a range of channels should be provided. If there is a communication error with the switch the GUI should warn gracefully. The GUI should ask the user for a username and password for the switch and allow a number of switches to be controlled using a name to identify them (for the very adventerous: you may even allow the switches to be "discovered" dynamically from a central naming service). The GUI should check that the username, password and requested switch name are OK and warn appropriately if not. Specification of the Network Element agent (NE) The NE should be started from the command line and have no user-interface except from the remote CI specified above and any command line arguments that you may need. It should maintain a switch table in a suitable data structure that mimics the switch table. The NE should accept user input via the CI over CORBA and update (or read) the switch table as appropriate. If the user requests a channel that is already in use an error should be returned to the CI and no table update performed. Any action initiated by the users (and corresponding result) should be logged in a log file stored on the NE hard-disk in a suitable format. As there is no real switch, the log file and switch table data structure will be the only actions taken. The NE should maintain a simple user/password file so that it can check that users are authenticated to control it. This file does not require encrypted passwords and can be created simply from an editor. The NE should be designed to refuse entry if the authentication is not valid.
The program should be run under Redhat Linux 7.3 and compiled using jsdk 1.4 it should be usefull to run also on windows XP