The aim is to develop a client-server application for the management of technical applications license assignation to users. Python is the preferred language due to its extensive library catalog that helps to ease and accelerate the development.
The server application shall manage the assignation of the available resources to users, which use the client side of the application. Resources are defined in a configuration file.
Server shall run on Windows Server or Linux. Server shall be in charge of assuring the coherence between the license usage reported by the different license daemons (flexlm based) and the internal state due to license assignment to users. For this it will use information provided by the client side of the application and may enforce actions on users computers through the client (e.g. closing an unauthorized instance of an application consuming a license) . Exceptionally (license hang), and to ensure coherence between assigned and available resources, the server side of the application shall be able to command license daemons for forcing the release of a particular resource, re-starting the daemon or blocking a particular user (normally performed by using the flexlm API). All management tasks shall be logged and the server shall be able to notify the administrator by e-mail for certain events. Server shall be able to recover to a fault situation.
Client side of the application shall run in Windows 7 or Linux. It shall provide a GUI showing the available simulation resources. For using a particular resource the user shall be able to select it and perform a request for assignation. If the server side performs the assignation, the application using the resource is launched in the user computer. The client/server application shall monitor that the license associated the assigned resource is correctly checked out in the corresponding license daemon. The usage of the resource is monitored until it is released. The application using a resource may be a command line application requiring some parameters that shall be configurable through a dialog.
Client and server communicate using TCP/IP sockets. Particular message passing mechanism or remote execution is TBD. Server and clients execute in the same LAN.
The application shall be able to manage around 100 resources.
Developer should master or acquire the following topics:
* Lauch OS commands as well as read and process the standard output (for flexlm commands execution)
* TCP/IP sockets
* Working with text files.
* Execution as a service
* GUI (PyQT preferred)
* Monitoring and management of system processes
* Executable file generation and packaging
Categoría: IT & Programación
Subcategoría: Desktop Applications
¿Cuál es el alcance del proyecto?: Crear una aplicación nueva
Es un proyecto o una posición?: Un proyecto
Actualmente tengo: Tengo las especificaciones
Experiencia en este tipo de proyectos: No (No he administrado este tipo de proyectos anteriormente)
Disponibilidad requerida: Según se necesite
Plataformas requeridas: Windows, Linux / Unix