What is claimed is:
1. A computer software implemented access control method comprising:
validating a user;
generating a unique user security context number for a validated user; and
granting permission based on the unique user security context number for the validated user.
2. The method of claim 1 wherein a user comprises a person.
3. The method of claim 2 wherein the person is validated based on a user ID and a password.
4. The method of claim 3 wherein the user is validated by a server.
5. The method of claim 4 wherein the server is validated based on a server name and machine number.
6. The method of claim 1 wherein the unique server security context number is generated by a central security server for a validated server.
7. The method of claim 6 and further comprising checking for permission against the unique security context number by the central security server prior to granting permission.
8. The method of claim 1 and further comprising removing the unique context number when a user is no longer valid.
9. The method of claim 8 wherein a user is no longer valid when the user either logs out or is turned off.
10. The method of claim 1 wherein the permission allows access to data on a server, or operations to be performed by a server.
11. The method of claim 1 wherein the access control method is implemented in a component object model (COM) based system, using a security infrastructure comprising:
a central security server responsible for:
generating and keeping track of the logged in users and the executing server at any point of time;
reading the access control information from any storage file or database and caching this information for quick retrieval;
a security client module for each server in the system which comprises:
a security monitor component for receiving the server security context and for receiving notifications for user log off, access control information change and server shutdown information, this component being housed inside the server itself; and
a security agent component which is a residing in a dynamic link library, which takes care of checking of access permission, retrieving access control information from security server if required and keeping track of the last activity time of the user and also for caching the access control information of users and servers whose security check has been done at least once.
12. A method of providing access control to perform a user requested operation during a session in a COM based computer application system having multiple users and servers, comprising:
a security server validating a user to log in to the system for the session by verifying user entered authenticating parameters;
a security server generating a unique user security context number that represents the validated user for the session;
storing the unique user security context number;
user requesting access to perform an operation on a server in the system during the session by passing the unique user security context number;
if access control information for the user is not in the server, then obtaining the access control information for the user;
storing the access control information for the user security context in the security client’s cache; and
performing the user requested operation on the server during the session based on the access control information and the unique user security context number.
13. The method of claim 12, further comprising:
when a server comes up first, its security agent registering with the security server passing the server name and machine name on which the server is executing,
the security server upon validation of the server credentials, generating a unique server security context,
the security server passing the unique server security context asynchronously to the server which is being registered, by creating a security monitor component whose ClassId is known and which is housed inside the server.
passing a unique server security context number of the server to another server in the system to perform another operation, when the user requested operation requires performing further operation on the other server;
checking if the access control information for the first server is present in the local cache of the security agent, if not present fetching it from the security server;
the security agent validating the request to use the other server by checking the access control information for the passed in server security context, verifying the passed unique server security context number against the stored access control information of the server in the other server;
granting full permission to all server security context, thereby making the further security check faster;
performing the other requested operation on the other server based on the outcome of validating the request to use the other server during the session; and
repeating the passing, validating, and performing steps when the user requested operation further requires using other servers in the system during the session until the user logs off from the session.
14. The method of claim 12, wherein validating the user to login to the system further comprises:
requesting a login to use the system for a session by the user by entering authenticating parameters or using any other authentication mechanism;
verifying the user provided authenticating parameters; and
if the authenticating parameters provided by the user are not valid based on the verification, then not generating a unique context number
15. The method of claim 14, wherein validating the user comprises:
validating the user based on methods selected from the group consisting of verifying the user entered authenticating parameters with stored user information and using an authenticating mechanism supported by the resource operating system.
16. The method of claim 14, wherein the unique context number comprises a GUID.
17. The method of claim 12, wherein generating the unique user security context number comprises:
dynamically generating the unique user security context number while the system is in operation.
18. The method of claim 17, wherein dynamically generating the unique user security context number comprises:
dynamically generating a unique random number; and
optionally encrypting the dynamically generated unique user security context number for additional security.
19. The method of claim 17, further comprising:
logging off the user from the allowed session upon a request to log off from the system;
removing the stored user access control information for this user; and
informing all servers of the unregistering of the generated unique user security context number by notifying the security monitor component of all the servers.
20. The method of claim 19, further comprising: the central security server storing all the security context of all the logged in users and the servers that are executing at any point of time; and storing the user security context number against the user name and the machine name to allow for user logins to the system from multiple machines
21. The method of claim 20, further comprising:
unregistering the generated unique user security context number upon an abnormal shutdown of the server or system in a distributed system, by keeping track of the last activity time of the user;
informing all servers of the unregistering of the generated unique user security context number; and
removing stored access control information.
22. The method of claim 12, further comprising:
dynamically generating a unique user security context number each time a user logs back into the system for another session by re-entering the authenticating parameters.
23. The method of claim 12, further comprising:
security client updating the last activity time of logged in users at regular intervals to security server;
security server monitoring inactivity time of the accessed user;
comparing the inactivity time to a predetermined inactivity time; and
unregistering the generated unique user security context number, when the inactivity time exceeds the predetermined inactivity time.
24. The method of claim 23, further comprising;
requesting authentication parameters again from the user and generating another unique user security context number when the user tries to regain access to the system, when the user was logged off due to exceeding the inactivity time.
25. The method of claim 24, further comprising:
passing server authenticating parameters for validation, upon the server coming up in the system;
verifying the server by checking the passed server authenticating parameters with server information stored in the database;
validating the server based on the outcome of the verifying;
generating the unique server security context number;
passing the generated unique server security context number to the server;
storing the generated unique server security context number in the server: and
storing the generated security context in the security server.
26. The method of claim 14, wherein generating the unique server security context number comprises:
dynamically generating the unique server security context number; and
optionally encrypting the generated unique server security context number for additional security.
27. The method of claim 13, further comprising:
purging the stored unique user security context number upon logging off the system by the user:
purging the stored unique server security context number of a server when that server shuts down; and
informing all the other servers through the security monitor component to do clean up for this security context.
28. The method of claim 12, further comprising:
requesting to update access control information of a user through a server in the system;
notifying all servers to update the access control information for the user, upon receiving the request by sending notification through the security monitor component; and
dynamically updating and storing the access control information for the user, upon receiving the notification.
29. A computer-readable medium having computer-executable instructions for providing a computer implemented access control method comprising:
validating a user;
generating a unique context number for a validated user; and
granting permission based on the unique context number for the validated user.
30. A computer system having an access control method, the system comprising:
means for validating a user;
means for generating a unique context number for a validated user; and
means for granting permission based on the unique context number for the validated user.
31. A COM based computer application (system) having one or more users requiring access control checking for the users to allow or deny permission to data and resources associated with the application or, to allow or deny permission to do operations with the application where the application is running on one or more computers each of which comprising:
a processor;
an output device; and
a storage device to store instructions that are executable by the processor to provide access to a server in a computer application which is a COM based system having multiple users and servers, wherein each of the servers are coupled to one or more servers in the system, each server implementing a method comprising:
validating a user to login to the system for the session by verifying the user entered authenticating parameters;
generating a unique user security context number that represents the validated user for the session;
storing the generated unique user security context number of the user in the security client associated with the server;
if access control information for the user is not in the security client’s cache, then obtaining the access control information for the user from the security server; and
performing the user requested operation on the server during the session based on checking the access control information for the stored unique user security context number.
32. The system of claim 31, wherein the method implemented by each server further comprises:
passing a unique server security context number to another server to perform an operation, when the requested operation requires operation on the other server;
the second server’s security client validating the request by checking the passed in unique server security context number for permission based on the access control information of the first server,
performing the other requested operation on the second server based on the outcome of the validating of the request to use the second server during the session; and
repeating the passing, validating, and performing steps when using other servers in the system to perform other required operations during the session until the user logs off from the session.
33. The system of claim 32, wherein the method implemented by each server further comprises:
passing the server authenticating parameters, upon a request to perform the user requested operation on the other server.
34. The system of claim 33, wherein the method implemented by each server further comprises:
logging off the user from the allowed session upon a request to log off from the system;
the security agent communicating to the security server about the logoff;
the security server removing the user security context and its access control information from its local cache;
informing the security monitor components of all the registered servers about the log off of the user passing the user security context;
the security monitor components informing the corresponding security agent component of the log off; and
security agent removing the access control information of the logged off user’s security context;
35. A generic security system for a COM based network, comprising:
a database or any other storage mechanism like LDAP to store user and server access control information;
a security server coupled to the database; and
multiple servers coupled to the security server, wherein each of the servers comprises a security client,
wherein the security server to receive authenticating parameters entered by a user through the security client of a UI server in the system to gain access to the system to perform a session, wherein the security server validates the user by verifying the received authenticating parameters with the user information stored in the database, upon receiving the authenticating parameters from the security client of the UI server, wherein the security server generates a unique user security context number for the session upon validation, wherein the generated unique user security context number represents the validated user based on the stored user information for the session, wherein the security server passes the generated unique user security context number to the security client of the UI server, wherein the UI server stores the passed unique user security context number,
wherein the user requests access to perform an operation on a first server in the system upon validation by the security server, wherein the security client of the UI server passes the unique user security context number to the first server, wherein the first server performs the requested operation based on stored access control information and the unique user security context number if the access control information is stored in the security client of the first server, otherwise the first server obtains the access control information from the security server and performs the requested operation based on the obtained access control information and the unique user security context number.
36. The system of claim 35, wherein the security client of the first server sends a unique server security context number of the first server along with a request to do an operation on a second server in the system to the second server, when the user requested operation on the first server requires further operation to be performed on the second server, wherein the security client of the second server provides access to perform the operation in the second server based on the access control information when access control information for the unique server security context number of the first server is in the security client of the second server, otherwise the security client of the second server obtains the access control information from security server and stores it in the security client of the second server and provides access to perform the operation on the second server based on the access control information.
37. The system of claim 36, wherein each of the security clients further comprises cache memory to store the received unique user and server security context numbers and user and server access control informations until the user logs off the system and the server shuts down.
38. The system of claim 37, wherein the generated and stored unique user and server security context numbers are passed between servers and the associated security clients in the system to verify and authenticate the user and the server trying to gain access to the other servers in the system to perform the user requested operation during the session and until the user logs off the system.
39. The system of claim 38, wherein the security client associated with each of the multiple servers removes the stored unique user and server access control information and any associated user and server access control information upon the user logging off from the system and server shutdown.
40. The system of claim 36, wherein the security server notifies security clients through the security monitor and dynamically updates cache memory associated with each server in the system by fetching the updated access control information from the security server, upon a request from an administrator through the security server to update access control information associated with a user.
41. The system of claim 36, wherein generating the unique user and server security context numbers comprise dynamically generating unique random numbers and encrypting the generated unique random numbers to further enhance security.
42. A system for providing access control during an operation in a COM based system, comprising:
a database to store user and server access control information;
a security server coupled to the database;
a user interface (UI) server coupled to the security server to receive authenticating parameters entered by a user to gain access to the system for a session, wherein the UI server further comprises of a security client comprising of a security agent, a security monitor, and cache memory; and
one or more servers coupled to the security server, wherein each server comprises one or more executable software applications and a security client, wherein each security client includes a security agent, a security monitor, and cache memory,
wherein the security server to receive the user entered authenticating parameters through the security agent of a server that contains the UI for capturing the user authentication parameters, wherein the security server validates the user by verifying the received authenticating parameters upon receiving the authenticating parameters from the security client of the UI server, wherein the security server generates a unique user security context number for the user for the session upon successful validation, wherein the security server passes the generated unique user security context number to the security agent of the UI server, wherein the security agent of the UI server stores the passed unique user security context number in the cache memory of the UI server,
wherein the user requests access to perform an operation using the first server in the system, wherein the security agent of the UI server checks for user access control information for the unique user security context number stored in the cache memory of the first server, wherein the UI server allows the user to perform the requested operation in the first server if the user access control information is in the cache memory of the first server, otherwise the UI server obtains the user access control information from the security server and stores in the cache memory of the first server and allows or denies the user to perform the requested operation in the first server based on the access control information.
43. The system of claim 42, wherein the generated unique user context number represents the validated user based on the stored user’s access control information in the database.
44. The system of claim 42, wherein the security agent of the first server sends a unique server security context number of the first server that represents the first server along with a request to do an operation on a second server in the system to the security agent of the second server, when the user requested operation on the first server requires using the second server, wherein the security agent of the second server checks for access control information associated with the received unique server security context number of the first server in the cache memory of the second server, wherein the security agent of the second server provides access to perform the operation on the second server if the access control information associated with the unique server security context number is in the cache memory of the second server, otherwise the security agent of the second server obtains the access control information associated with the unique server security context number from the security server and provides access to perform the operation on the second server.
45. The system of claim 44, wherein the security agent associated with each of the servers registers the associated server with the security server by passing the associated server authenticating parameters and other associated server information to the security server, when each server comes up in the system, wherein the security server validates each of the received authenticating parameters and generates associated unique server security context number based on a successful validation, wherein the security server passes the generated unique server security context number to the associated server, wherein each server stores the received unique server security context number.
46. The system of claim 45, wherein the generated and stored unique user and server security context numbers are passed between the multiple servers in the system to verify and authenticate the user and any of the servers trying to gain access to any of the other servers in the system to perform the user requested operation during the validated session and until the user logs off from the system.
47. The system of claim 46, wherein the security client associated with each of the one or more servers removes the stored unique user security context numbers and any associated user access control information in the associated cache memory upon the user logging off from the system.
48. The system of claim 46, wherein the security client associated with each of the one or more servers removes the stored unique server security context numbers upon the server shutting down.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A method for simulating an integrated circuit, said method comprising:
consolidating a plurality of records of timing violations, wherein each of said plurality of records reports a timing violation for a same module in a simulated integrated circuit, wherein each of said plurality of records reports a timing violation for a same bus, wherein the consolidating a plurality of records further comprises separating a suffix from a module name for the bus; and
generating a report based on said consolidating, wherein said report comprises one record which includes information from the plurality of records.
2. The method of claim 1 , further comprising recording bits of said bus within timing violations.
3. The method of claim 1, further comprising recording a time where a first timing violation occurs and recording a time where a last timing violation occurs for the plurality of records.
4. The method of claim 1, wherein the consolidating a plurality of records further comprises:
consolidating the plurality of records of timing violations, wherein each of said plurality of records reports a timing violation during a predetermined time interval.
5. The method of claim 1, further comprising:
filtering timing violations occurring within a predetermined period of time after a simulated power-up or system reset.
6. An article of manufacture comprising computer readable medium, wherein the computer readable medium stores a plurality of executable instructions, and wherein the plurality of executable instructions cause:
consolidating a plurality of records of timing violations, wherein each of said plurality of records reports a timing violation for a same module in a simulated integrated circuit, wherein each of said plurality of records reports a timing violation for a same bus, wherein the consolidating a plurality of records further comprises separating a suffix from a module name for the bus; and
generating a report based on said consolidating, wherein said report comprises one record which includes information from the plurality of records.
7. The article of manufacture of claim 6, wherein the plurality of executable instructions further cause recording bits of said bus within timing violations.
8. The article of manufacture of claim 6, wherein the plurality of executable instructions further cause recording a time where a first timing violation occurs and recording a time where a last timing violation occurs for the plurality of records.
9. The article of manufacture of claim 6, wherein the consolidating a plurality of records further comprises:
consolidating the plurality of records of timing violations, wherein each of said plurality of records reports a timing violation during a predetermined time interval.
10. The article of manufacture of claim 6, wherein the plurality of executable instructions further cause filtering timing violations occurring within a predetermined period of time after a system reset.