Passwords are very important to protect access to a secured entity. The entity may be any system, device, file or any piece of information. Passwords are often personal codes set by individual. Everyone uses his own way to set the password by adhering to certain standards defined.
As for as the security is concerned the entire security is with that person who owns the password. This is a one person to one password security scenario for the entire given system. The drawback here is that the entire security is with that person. Due to this one person owning the security there will be problems like
1. Risk of misusing the secured entity by the person holding the password.
2. Stealing of the password by other.
3. Threat to the password holder to disclose the password.
Whatever may be the length and strength of the password chosen the above problems still remain.
What if this password security is distributed to multiple people as a team? Definitely the security can never be misused. This password can never be stolen by anybody. Also the chances of misusing the password or the risk of entire team getting threatened will never arise.
Distributed password scenario
In this case the team of n members hold the entire password so that the security is distributed to the team. Here ‘n’ sub strings S1, S2…Sn, form the password string ‘S’. It is the concatenation S1+S2+S3+…+Sn, which forms the whole password. Each member of this team holds the sub string, Si. He treats that as his own password with its own length. The login process will be successful if, all team members enter their strings S1 to Sn, correctly in order.
There is no separate implementation required for the login process to authenticate the entry except that all members should be present while login. The entire team will be the authorized users group and will be required while login.
When the entire team logs in the actual user needs to be identified. With the whole team entering the password there should be a way for the system to determine who is going to access the system and uses the system further. Any one can use the system. So the next level can be another login screen where any one member ‘Mi’ from that team can enter inside with his sub string password Si. This solves the problem of identifying the actual person going to work on that system. To change the main distributed password again the entire team is required.
This is the better approach than the multiple level logins or multiple levels of securities. It fits for the areas like military, finance and various highly secured systems, where the security is under threat.
Human race has the ability to learn the new skills and to apply the knowledge acquired. This ability of human race is reflected in the inventions and the discoveries made so for. The learning ability has enabled him to find the solution for all kinds of problems in is life. Human race journey has been along the continuous learning curve. This is the basic reason for the evolution of human race.
Showing posts with label Innovation. Show all posts
Showing posts with label Innovation. Show all posts
Thursday, May 3, 2007
Sunday, March 25, 2007
Minimize the Client and Server transactions on the Internet
Whenever any website is visited the web browser opens the website’s home page initially. The home page in website serve as the introductory page for the entire website. It provides the links to other pages for detailed specific information. These links can be in the form tabs, buttons in the menu or any hyper linked texts and used to open the different pages. Usually the information itself is broken down in to different pages so that each page serves a different purpose and provides the classified information. The home page provides the hyper links or tab links through menus to other pages.
Web browser at the client machine processes the URL and opens the home page first and waits for the user to click for any links on it. The pages are loaded from the web server on demand whenever user clicks the hyper links. This saves the Internet bandwidth by loading only the require pages.
Internet bandwidth always becomes inadequate even if the bandwidth capacity is improved. This is due to the fact that there is always overloaded Internet traffic in the form with text, photos, video and voice. So the bandwidth needs to be carefully utilized.
Current strategy used in web browser is loading the page based on user requirement as discussed above. As the client machine keeps on requesting the pages, the page is repeatedly fetched from the web server. Distributed servers have increased the speed of getting the page. Even if the nearest servers are chosen based on the client’s geographic information the number of transactions are not minimized. The web browsers were designed earlier to get only the required information. The reasons may be the costly hardware like RAM and the secondary storage devices at client side.
Each time the page is refreshed or the hyper link is clicked there are many processes happen to get the page from the server. At minimum following are the tasks that need to be completed to get a requested page (Assuming that the cache is not set for the pages to stay locally).
1. At the client side web browser sends the request to server.
2. Web server needs to process the document search operation.
3. The searched document is loaded on to the Internet and sent to the client machine.
4. Client machine receives the document and refreshes the screen with the new page.
This happens every time the page is refreshed. If there are two Internet explorers open on the same machine for the same user login both act independently. When same URL is opened in these Internet explorers, both initiate the http request for that page and get the pages from the server.
Can the web browser behave smart when communicating to the web server?
If the transaction between the client and the server is minimized the load on the Internet is going to be minimized definitely.
What are the strategies to minimize the transactions between the client and server? It depends on the type of transaction. For the transactions where the stepwise authentication is required at the server side it cannot be minimized. But in any other types of transactions it should be minimized. Web browsers should determine the type of transaction happening and act accordingly.
1. Whenever the web page has a descriptive material user will definitely click the hyper links embedded in between the paragraph. The web browser can get the web pages for all the links in that paragraph when the page is downloaded for the first time. This is like getting all materials required instead of getting it whenever is required. This protocol can be applied when the server is not nearer to the client and the client and server communication is costly.
2. When the home page is downloaded from the server the server can send the information to the client about when next update can happen to that page. So that the client can cache the page locally depends on this time length. Some web pages frequently updated can follow some protocol to set their page update time.
Any comments please…
Web browser at the client machine processes the URL and opens the home page first and waits for the user to click for any links on it. The pages are loaded from the web server on demand whenever user clicks the hyper links. This saves the Internet bandwidth by loading only the require pages.
Internet bandwidth always becomes inadequate even if the bandwidth capacity is improved. This is due to the fact that there is always overloaded Internet traffic in the form with text, photos, video and voice. So the bandwidth needs to be carefully utilized.
Current strategy used in web browser is loading the page based on user requirement as discussed above. As the client machine keeps on requesting the pages, the page is repeatedly fetched from the web server. Distributed servers have increased the speed of getting the page. Even if the nearest servers are chosen based on the client’s geographic information the number of transactions are not minimized. The web browsers were designed earlier to get only the required information. The reasons may be the costly hardware like RAM and the secondary storage devices at client side.
Each time the page is refreshed or the hyper link is clicked there are many processes happen to get the page from the server. At minimum following are the tasks that need to be completed to get a requested page (Assuming that the cache is not set for the pages to stay locally).
1. At the client side web browser sends the request to server.
2. Web server needs to process the document search operation.
3. The searched document is loaded on to the Internet and sent to the client machine.
4. Client machine receives the document and refreshes the screen with the new page.
This happens every time the page is refreshed. If there are two Internet explorers open on the same machine for the same user login both act independently. When same URL is opened in these Internet explorers, both initiate the http request for that page and get the pages from the server.
Can the web browser behave smart when communicating to the web server?
If the transaction between the client and the server is minimized the load on the Internet is going to be minimized definitely.
What are the strategies to minimize the transactions between the client and server? It depends on the type of transaction. For the transactions where the stepwise authentication is required at the server side it cannot be minimized. But in any other types of transactions it should be minimized. Web browsers should determine the type of transaction happening and act accordingly.
1. Whenever the web page has a descriptive material user will definitely click the hyper links embedded in between the paragraph. The web browser can get the web pages for all the links in that paragraph when the page is downloaded for the first time. This is like getting all materials required instead of getting it whenever is required. This protocol can be applied when the server is not nearer to the client and the client and server communication is costly.
2. When the home page is downloaded from the server the server can send the information to the client about when next update can happen to that page. So that the client can cache the page locally depends on this time length. Some web pages frequently updated can follow some protocol to set their page update time.
Any comments please…
Friday, March 23, 2007
Compilers can be Intelligent
Compiler is a tool used by developers to produce the binary image of the source code. Developer uses this tool frequently while the code is being developed. There are compilers for all languages except for some languages, where the interpreters execute the program.
The current compilers do preprocessing for cleaning the code and handling the various compiler directives. Then the result is subjected to lexical and syntax analysis where the typo errors and language related errors are handled. After this there will be code generation and code optimization.
The current compilers have configuration options for a particular compilation set up needs. Every time the code is compiled the same above said steps are done. In some cases the incremental compilation is done to act only on the recently changed code. To develop a small program couple of times the compilation happens in average. In this process compiler does not use the information generated by the profiler to act intelligent. Compiler can learn about the program and about its data objects. This information can be used to make compiler act intelligently over that program. But compilers do not use any information about the program, which makes the successive compilations easier for the same program.
Compilers need to become like expert systems. They can obtain the expertness while compiling the programs. As, typically the program development involves couple of rounds of compilation the learning process for the compilation need not be the separate phase.
What are the areas where the compilers can behave as intelligent tools?
· Compiler can declare any local variable if its declaration is missing and indicate the user about the same in the form of warning.
· Compiler can declare any global variable if its declaration is missing and indicate the user in the form of warning.
· Compiler can free the dynamic memory allocated inside a function or block if user does not free the memory by mistake and indicate the same to the user in the form of warning.
· Compiler can include the header file as appropriate corresponding to a used library instead of throwing the errors.
These abilities of the compiler speed up the program development task and thereby reduce the program development life cycle time.
The current compilers do preprocessing for cleaning the code and handling the various compiler directives. Then the result is subjected to lexical and syntax analysis where the typo errors and language related errors are handled. After this there will be code generation and code optimization.
The current compilers have configuration options for a particular compilation set up needs. Every time the code is compiled the same above said steps are done. In some cases the incremental compilation is done to act only on the recently changed code. To develop a small program couple of times the compilation happens in average. In this process compiler does not use the information generated by the profiler to act intelligent. Compiler can learn about the program and about its data objects. This information can be used to make compiler act intelligently over that program. But compilers do not use any information about the program, which makes the successive compilations easier for the same program.
Compilers need to become like expert systems. They can obtain the expertness while compiling the programs. As, typically the program development involves couple of rounds of compilation the learning process for the compilation need not be the separate phase.
What are the areas where the compilers can behave as intelligent tools?
· Compiler can declare any local variable if its declaration is missing and indicate the user about the same in the form of warning.
· Compiler can declare any global variable if its declaration is missing and indicate the user in the form of warning.
· Compiler can free the dynamic memory allocated inside a function or block if user does not free the memory by mistake and indicate the same to the user in the form of warning.
· Compiler can include the header file as appropriate corresponding to a used library instead of throwing the errors.
These abilities of the compiler speed up the program development task and thereby reduce the program development life cycle time.
Booting technique for next generation computers
Booting is a process to bring the system up for working. This process checks the system components after power on and loads the operating system from the secondary storage device. This process involves many predefined tasks, which are carried out every time the system is switched on. Booting starts with the POST step followed by bootstrapping process.
The bootstrapping process begins with executing the software in ROM at a predefined address. This BIOS software contains a small functionality to search for devices eligible to participate in booting, and loads a small program from a boot sector. This small program, called as bootstrap loader or boot loader loads the operating system into memory and passes the control to it. This boot sector will be on any storage device.
This booting process takes a while depends on the machine configuration and the operating system. The total booting time is divided into three stages in cold booting (boot from shut down state) process.
· BIOS POST - the time for the power-on self test (POST)
· Pre-Logon - the time from BIOS POST handoff to the Windows Logon screen
· Post-Logon - the time from closing the Logon screen to a usable Start menu
These 3 time units make the total booting time. Users are always concerned about the booting time the system takes. All expect the system to be ready after it is switched on.
In fact we do not use the system’s full capacity and all its devices initially. Why to check the entire RAM in the beginning? Why to verify all the CPUs in the system initially? Why all network cards are to be verified?
The booting process should be such that the logon screen should be made available to the user as soon as he switches on the system. The limited set of hardware can be made available to the user initially. The booting process can be extended at the background to make the full system resources available to the user. Here the hardware and software resources are made available to the user as the user continues to use the system.
This lazy and demand based booting technique for quick system availability can be investigated for the next generation computer systems.
The bootstrapping process begins with executing the software in ROM at a predefined address. This BIOS software contains a small functionality to search for devices eligible to participate in booting, and loads a small program from a boot sector. This small program, called as bootstrap loader or boot loader loads the operating system into memory and passes the control to it. This boot sector will be on any storage device.
This booting process takes a while depends on the machine configuration and the operating system. The total booting time is divided into three stages in cold booting (boot from shut down state) process.
· BIOS POST - the time for the power-on self test (POST)
· Pre-Logon - the time from BIOS POST handoff to the Windows Logon screen
· Post-Logon - the time from closing the Logon screen to a usable Start menu
These 3 time units make the total booting time. Users are always concerned about the booting time the system takes. All expect the system to be ready after it is switched on.
In fact we do not use the system’s full capacity and all its devices initially. Why to check the entire RAM in the beginning? Why to verify all the CPUs in the system initially? Why all network cards are to be verified?
The booting process should be such that the logon screen should be made available to the user as soon as he switches on the system. The limited set of hardware can be made available to the user initially. The booting process can be extended at the background to make the full system resources available to the user. Here the hardware and software resources are made available to the user as the user continues to use the system.
This lazy and demand based booting technique for quick system availability can be investigated for the next generation computer systems.
Thin-Laptop over the Internet - Can be possible?
The client-server architecture concept is used all over the Internet. The computers are found at all work points, which connect to remote server and gets the data from it. These client machines serve as the interface to the user, which, connect to the server and provide the data to the user. These machines get the database and display it for the user in the required format. No data will be stored at their point.
Everywhere network is mandatory and there is no system without network. We cannot imagine the isolated machine without network. Here comes the idea of new thin-laptop to make use of the available network connection. Thin-Laptop is a new kind of handy Laptop capable of doing everything. The only difference is, this Thin-laptop has no motherboard. It can load the editor and edit the applications. It can open the integrated development environments for developing applications. It can compile and execute and user can browse the Internet on it. It can play the music and video. But all computation happens in remote station. This laptop will have the necessary hardware to connect to remote machine. It can have I/O devices like Mouse, CD ROM drive, USB drive, and floppy drive except hard disk. All are handled through the embedded processor locally.
Though it looks similar to dumb terminal connected to some mainframe computer but it is not. It is not a full pledged machine to do all jobs on its own. All the compilations and executions occur in remote computer. It gets the results from remote computer and displays to the user. But for the user it gives the feeling like he is working on local machine. It provides all access facilities to user locally and does all computations on remote machine. It opens the remote terminal screen for the user and enables him to do everything over network.
General Features of the concept
1. This does not follow either dumb I/O terminal concept or Client server architecture concept. This is a hybrid product of both concepts.
2. No OS is installed on the machine. Embedded processor will do all the limited tasks.
3. Network connection is mandatory to connect to the server. The machine does not work independently.
4. This can work both on battery power and direct power supply like laptop.
Advantages of this concept
1. This can be a handy and new product, which can be carried to any place where the network is available.
2. Users working in a computer center, industries, banks and educational institutions can have their own Thin-laptops on their table connected to the server. This is a more useful machine in all places where people work with the databases on remote servers.
3. If these machines are supported by wireless then users can use them anywhere in wireless zone.
4. More suitable model for the developing countries as it is economical to buy.
This techonology can be used as cloud computing or not. Readers please comment
Everywhere network is mandatory and there is no system without network. We cannot imagine the isolated machine without network. Here comes the idea of new thin-laptop to make use of the available network connection. Thin-Laptop is a new kind of handy Laptop capable of doing everything. The only difference is, this Thin-laptop has no motherboard. It can load the editor and edit the applications. It can open the integrated development environments for developing applications. It can compile and execute and user can browse the Internet on it. It can play the music and video. But all computation happens in remote station. This laptop will have the necessary hardware to connect to remote machine. It can have I/O devices like Mouse, CD ROM drive, USB drive, and floppy drive except hard disk. All are handled through the embedded processor locally.
Though it looks similar to dumb terminal connected to some mainframe computer but it is not. It is not a full pledged machine to do all jobs on its own. All the compilations and executions occur in remote computer. It gets the results from remote computer and displays to the user. But for the user it gives the feeling like he is working on local machine. It provides all access facilities to user locally and does all computations on remote machine. It opens the remote terminal screen for the user and enables him to do everything over network.
General Features of the concept
1. This does not follow either dumb I/O terminal concept or Client server architecture concept. This is a hybrid product of both concepts.
2. No OS is installed on the machine. Embedded processor will do all the limited tasks.
3. Network connection is mandatory to connect to the server. The machine does not work independently.
4. This can work both on battery power and direct power supply like laptop.
Advantages of this concept
1. This can be a handy and new product, which can be carried to any place where the network is available.
2. Users working in a computer center, industries, banks and educational institutions can have their own Thin-laptops on their table connected to the server. This is a more useful machine in all places where people work with the databases on remote servers.
3. If these machines are supported by wireless then users can use them anywhere in wireless zone.
4. More suitable model for the developing countries as it is economical to buy.
This techonology can be used as cloud computing or not. Readers please comment
Smart Novel Editor - A feasible tool for embedded program development
Traditional compilers for programming languages start the compilation process with preprocessing step followed by lexical analysis, syntax analysis, intermediate code generation, code generation and code optimization tasks. This is a translation process, which takes the source code and produces the machine code. The steps in the beginning of compilation process are language oriented and the later steps are machine oriented. The former stages of compilation generate the warnings and errors related to types and usage of variables.
Data flow graph can help the programmer to understand the data usage in the program. It clearly shows the data flow through various statements and the data dependencies of the code fragments. It helps in reducing the logical errors. But this needs to be done as a separate step manually, before coding starts. Also programmer can know about the logical errors while testing the program.
Difficulties faced by the programmer today
One of the problems faced by the programmer, while coding the program is he will not know about how the variable was updated earlier. Programmer guesses the data values for the variables based on his previous logic and builds the program logic further. But he cannot imagine the current data values for the variables. He expects some value and builds the logic. He commits mistake when he uses the variables without having full knowledge of how those variables were updated previously.
What are the abilities of the currently available editors?
There are many development environments where the editor brings the tool tips and pop-up windows about the function signatures, class members. These direct the programmer in choosing the right class members, right variables and help him to build the statement syntactically correct. But they do not reveal anything about how the variables were changed previously. The information to help the programmer to build the logic correctly while typing the program will be advantageous. It reduces the program development life cycle time by reducing the logical errors on the first front.
What additional feature of editor may help the programmer?
If the editor pops up the list for recent previous statements, which update the variables in hand, programmer understands the variables clearly. This will be the proper information for the programmer to build the logic correctly. The editor helps the programmer to use the variables in appropriate way while typing the program.
Also this editor helps the programmer to produce the ‘First Time Right’ Code. Developing ‘first time right’ code means while typing the program itself the programmer corrects the logical errors.
Features of the novel editor
This editor supports the ‘DataUpdate’ feature. This intelligent feature is supported in the editor as user option. If this option is turned off the editor behaves as the normal editor in the development environment. The intelligence is provided to the editor by the backend DLL. The DLL is a programming language dependent. It behaves like a preprocessor and compiler for the language being used. But it will not produce the machine code. The DLL is programming language syntax aware. The two components are editor and the backend DLL. Editor is responsible for the display and the formatting functionalities and serves as the GUI.
The DLL performs the following functions online as the programmer types the program.
a) Preprocessing
b) Lexical Analysis
c) Syntax Analysis
d) Providing the previous update details for any variable
The backend DLL keeps the database of statements and variables. It shows how the particular variable was updated earlier. As the programmer types the statements and uses the variable it will provide the list of statements updating that variable. This aids the programmer to take valid decisions while framing the logic.
Whenever the programmer types the variable name a menu pops up below the variable position. It shows the recent statements modifying that variable. If there are many paths to the statement being typed, then it will show all the alternative list of statements.
Where it will be more useful?
For embedded processors most of the software development happens with the help of cross compilers. For any embedded software development environment where C syntax like language is used we can use this kind of intelligent editor. Here reducing the logical errors while the code is under development can shorten the software development life cycle. Otherwise the errors will be known when the code is tested on the simulator.
Data flow graph can help the programmer to understand the data usage in the program. It clearly shows the data flow through various statements and the data dependencies of the code fragments. It helps in reducing the logical errors. But this needs to be done as a separate step manually, before coding starts. Also programmer can know about the logical errors while testing the program.
Difficulties faced by the programmer today
One of the problems faced by the programmer, while coding the program is he will not know about how the variable was updated earlier. Programmer guesses the data values for the variables based on his previous logic and builds the program logic further. But he cannot imagine the current data values for the variables. He expects some value and builds the logic. He commits mistake when he uses the variables without having full knowledge of how those variables were updated previously.
What are the abilities of the currently available editors?
There are many development environments where the editor brings the tool tips and pop-up windows about the function signatures, class members. These direct the programmer in choosing the right class members, right variables and help him to build the statement syntactically correct. But they do not reveal anything about how the variables were changed previously. The information to help the programmer to build the logic correctly while typing the program will be advantageous. It reduces the program development life cycle time by reducing the logical errors on the first front.
What additional feature of editor may help the programmer?
If the editor pops up the list for recent previous statements, which update the variables in hand, programmer understands the variables clearly. This will be the proper information for the programmer to build the logic correctly. The editor helps the programmer to use the variables in appropriate way while typing the program.
Also this editor helps the programmer to produce the ‘First Time Right’ Code. Developing ‘first time right’ code means while typing the program itself the programmer corrects the logical errors.
Features of the novel editor
This editor supports the ‘DataUpdate’ feature. This intelligent feature is supported in the editor as user option. If this option is turned off the editor behaves as the normal editor in the development environment. The intelligence is provided to the editor by the backend DLL. The DLL is a programming language dependent. It behaves like a preprocessor and compiler for the language being used. But it will not produce the machine code. The DLL is programming language syntax aware. The two components are editor and the backend DLL. Editor is responsible for the display and the formatting functionalities and serves as the GUI.
The DLL performs the following functions online as the programmer types the program.
a) Preprocessing
b) Lexical Analysis
c) Syntax Analysis
d) Providing the previous update details for any variable
The backend DLL keeps the database of statements and variables. It shows how the particular variable was updated earlier. As the programmer types the statements and uses the variable it will provide the list of statements updating that variable. This aids the programmer to take valid decisions while framing the logic.
Whenever the programmer types the variable name a menu pops up below the variable position. It shows the recent statements modifying that variable. If there are many paths to the statement being typed, then it will show all the alternative list of statements.
Where it will be more useful?
For embedded processors most of the software development happens with the help of cross compilers. For any embedded software development environment where C syntax like language is used we can use this kind of intelligent editor. Here reducing the logical errors while the code is under development can shorten the software development life cycle. Otherwise the errors will be known when the code is tested on the simulator.
Subscribe to:
Posts (Atom)
Save Water and Save Life