WRITE-UP for BIS Project


Goal of the Project

The Chief goal of the Project is to develop a system mainly meant for use by application programmers.This system should authenticate a user on an Information system and also supply information regarding the various priviledges of the user. This information may be organized in various levels and may be in various forms.

  1. Information regarding groups:
    Users in an IS may be organized in various groups. There may be a heirarchy of groups. The system should allow group management.
  2. Information regarding roles:
    Users may be assigned roles. Roles may be transferable. The system should be able to manage roles.
  3. Information regarding stored Procedure execution: This is a higher level of security. Based on constraints supplied by programmer, the system checks every 'special' procedure before execution to see if its parameters satisfy the constraints.

What has been done so far.
The design and a basic implementation of the first level has been done. Some functionality which has been implemented is as follows:

  1. Basic Username /Password checking.
  2. Changing Passwords
  3. Implementation of Groups.
  4. Finding all Members of a group
  5. Finding all groups to which a user belongs.
  6. Finding roles which may be played by the user.

What needs to be done.
A lot needs to be done to bring this system to a viable stage.

  1. Better User Interface:
    The interface needs to be more powerful and allow more options.
  2. Network Security:
    Encryption etc. should be implemented to allow more security over the network. Password should also be stored in encrypted format.
  3. Procedure + Parameter information.
  4. More robust implementation and error checking :
    I have made several simplifying assumptions in the code. For example, I have assumed that the heirarchy of groups is always a Dag. However , we need to check for cycles while inserting and searching. For that, a better version of BFS has to be implemented.
  5. Optimization:
    If possible, the number of connections/queries being made to the database should be reduced as this may create a bottleneck.

What I have learnt from this project.

  1. Experience in Java and Databases:
    I learnt about programming in Java Servlets and JDBC. In course of that I also learnt a lot about databases, especially oracle, and about SQL.
  2. Issues involved in network :
    In course of the project I became aware of various issues in networking, such as security and speed problems.
  3. Importance of Design and Planning:
    I realized the importance of the ER model, the SRS and such other designing paradigms . These truly help in keeping the design and the implementation in step with each other ( and in keeping the programmer sane !).