Subscribe by Email


Showing posts with label Reliable. Show all posts
Showing posts with label Reliable. Show all posts

Monday, July 1, 2013

What is the difference between TCP and UDP?

TCP (transmission control protocol) and UDP (user datagram protocol) are two very important protocols. These two protocols are transportation protocol.  These two protocols are counted in the core protocols of the IP suite. 
These two protocols operate at the 4th layer i.e., the transport layer of the TCP/ IP model but the usage of the both the protocols is used very differently.

1. Reliability: 
- UDP is a connection-less protocol whereas TCP is a protocol that is connection  oriented. 
- Whenever a message is sent, it will not get delivered if there is a connection failure. 
- If during the delivery of the message the connection gets lost, the server will send a request to get the lost part. 
- During the transfer of a message, there is no corruption. 
- The reliability of the UDP is less and if a message is sent, there is no guarantee that it will get delivered, it may get lost on the way. 
- The message might get corrupted during transfer.

2. Ordered: 
- If at the same time two messages are sent along the same connection, one after the other, it is sure that the message which is the first in the line will get delivered there first. 
- The data is therefore delivered always in the same order. 
- You do not have to worry about the order of the arriving data. 
- In the case of UDP, the order of the arrival of data is not sure. 
- The second one can arrive there first before the first one. 

3. Heavyweight: 
- When the order of arrival of the low level parts of the transmission stream is wrong, the requests have to be sent again and again. 
- All the lost parts of the message have to be put together in a proper sequence. 
- So it takes some time for putting back the parts together. 
- On the other hand, UDP is lightweight.
- After sending the message, the user cannot think about tracking connections or ordering of the messages etc. 
- This indeed makes it lot quicker and therefore there is very less work for the network or the OS card for translating the data obtained from the data packets.

4. Streaming: 
- In TCP, the data is read in form of a stream.
- There is nothing that distinguishes one data from another. 
- Per read call there can be a number of packets. 
- In UDP each of the data packets is sent individually and if they arrive, they do so in whole form. 
- Here per read call, only one packet is sent.

5. Some examples of the TCP are FTP or file transfer protocol, World Wide Web (such as Apache TCP port 80), secure shell such as open SSH port 22 and so on. Examples of UDP are TFTP (trivial file transfer protocol), VoIP (voice over IP), IPTV, online multiplayer games, domain name system (such as DNS UDP port 53) etc.

6. Error-checking: 
- The TCP protocol offers extensive error checking mechanisms for the acknowledgement of the data, flow control and so on. 


In TCP, a connection is a must to be established in order to transfer data. Datagram mode is the mode in which the user data gram protocol operates. You can choose between the two protocols depending up on the requirements. If the guaranteed delivery of data is required, then the transmission control protocol must be chosen. The user data gram protocol comes only with the basic error checking mechanism. It checks the data by the means of the check sums. 


Wednesday, March 13, 2013

What are characteristics of autonomic system?


Autonomic systems bring both challenges as well as opportunities for the future networking. The increasing numbers of users have had a negative impact on the complexity of the networks; it has also increased by multiple folds. Autonomic systems provide a solution for this problem. 

Characteristics of Autonomic System

  1. High intelligence: These systems have more intelligence incorporated in to them which lets them tackle this increasing complexity easily.
  2. Business Goal: They are driven by the business goal that the quality of experience of the user must be high. Even with the changing environment, there goals remain the same. But there are changes that take place in the low – level configurations. For example, when a user switches over to a low bandwidth network, the bit rate of the video has to be reduced in order to satisfy the goals of the business.
  3. Complex operations: All the operations carried out in an autonomic system are complex in nature even for the simplest of the services. For example, authentication, video encoding, billing, routing, shaping, QoS prioritizing, admission control.
  4. High level objectives: The human operator just has to specify the high – level objectives and it is left to the system whether it chooses to optimize one or more of the goals. In order to achieve this, the system has to translate these objectives in to low – level configurations.
  5. Adaptability: The system has the ability to adapt itself to the current environment.
  6. Policy continuum: There are a number of perspectives to this as mentioned below:
Ø  Business view: Includes guidelines, processes and goals.
Ø  System view: The service should be independent of the technology as well as the device that is being used.
Ø  Network view: It should be specific to technology but independent of the device.
Ø  Device view: Both technology and device specific.
Ø  Instance view: Operation should be specific to an instance.

  1. Elements: The elements of the network are assumed to be heterogeneous by the autonomic communication systems whereas in plain autonomic computing the elements are taken to be as the homogeneous.
  2. Distributed: These systems work up on a distributed environment.
  3. Complexity: The complexity in autonomic systems is more because of the complex autonomic loop that includes the following operations:
Ø  Interaction between the context  and the business goals
Ø  The MAPE (monitor, analyze, plan and execute) loop.

10. Reliability: In autonomic systems, the network has the authority to decide for itself focusing on high level objectives. Autonomic systems rely heavily up on artificial intelligence. However, there are issues associated with artificial intelligence like it becomes difficult to intervene in between when the things go wrong.It is quite difficult to know whether the system is doing the things it is supposed to do or not.
11. Scalability: This is another major characteristic of autonomic systems. It is required to keep track of the large amounts of knowledge and information. Autonomic systems have three tools to take care of this:
Ø Distributed ontologies
Ø Distributed large – scale reasoning
Ø Exchanging only the useful information
ØDistributing information among the different components of the autonomic network.

But in these cases, detection of the conflicts is a difficult task. For handling the various interactions taking place the various autonomic components efficient protocols are required. 
Currently two approaches have been suggested for developing the autonomic networking systems namely:
1. Evolutionary Approach: Incorporating the autonomic behavior in to the pre – existing infrastructure. This approach will consist of updates in increments till a fully autonomic system is developed. This approach is more likely to be adopted even though it requires a lot of patchwork.
2.  Clean slate approach: This approach is focused up on re – designing of the internet.


Tuesday, January 8, 2013

What is Cleanroom Software Engineering?


Cleanroom software engineering is one of the fastest emerging software development processes and has been designed for the production of the software systems and applications with a reliability of certificate level. The credit for the development of this process goes to Harlan Mills and a couple of his colleagues among which one was Alan Hevner at the IBM Corporation. 

What is Cleanroom Software Engineering?

- The cleanroom software engineering is focused on defect prevention rather than their effective removal. 
- The process was named so since the word cleanroom evoked the sense of cleanrooms that are used by the electronics industry for preventing the defects from entering the semiconductors during the fabrication process. 
- The first time when the cleanroom process was used was in the late 80s. 
- This process began to be used for military demonstration process in the early 1990s. 

Principles of Cleanroom Approach

Cleanroom process has its own principles which we have discussed below:
  1. Development of software systems and applications based up on formal methods: Box structure method is what that is used by the cleanroom development for specifying and designing a software product. Later, team review is used for carrying out verification of the design i.e., whether it has been correctly implemented or not.
  2. Statistical quality control through incremental implementation: An iterative approach is followed in the cleanroom software engineering process i.e., the software system is evolved through increments in which the implemented functionality gradually increases. Pre–established standards are used for measuring the quality of all the increments for making verification that the process is making acceptable process. In case the process fails to meet the quality standards, testing of the current increment is stopped and the process is returned to the designing phase.
  3. Statistically sound testing: Software testing in cleanroom development process is carried as a disguise of a statistical experiment. A subset that represents software’s i/p and o/p trajectories is selected and then subjected to testing. The sample so obtained is  then considered for statistical analyzation so as to get an estimation  of the software’s reliability and level of confidence.

Features of Cleanroom Software Engineering

Software products developed using the cleanroom software engineering process have zero defects at the delivery time. Below mentioned are some of the characteristics features of the cleanroom software engineering:
  1. Statistical modeling
  2. Usage scenarios
  3. Incremental development and release
  4. Separate acceptance testing
  5. No requirement of unit testing and debugging
  6. Formal reviews with verification conditions
The defects rate was recorded as follows:
  1. <3 .5=".5" and="and" delivered="delivered" kloc="kloc" o:p="o:p" per="per">
  • 2.7 Per KLOC between first execution and first delivery.
  • Basic technologies thus used can be listed as:
    1. Incremental development: Each increment is carried out from end – to – end and in some cases there is overlapping development of the increments. This whole process takes around 12 – 18 weeks and partitioning though being critical proves to be difficult.
    2. Function – theoretical verification: A parser may check the constructed program for syntax errors but it cannot be executed by the program developer. Verification conditions drive the team review for verification. Verification is improved by 3- 5 times than debugging. Formal inspections also fall under this category.
    3. Formal specifications: This further includes:
    a)    Box structured specification: It includes 3 types of boxes namely:
    Ø  Black box
    Ø  State box
    Ø  Clear box
    b)    Verification properties
    c)    Program functions
    1. Statistical usage testing: It helps in implementing cost effective orientation and process control. It provides a stratification mechanism to deal with situations that are critical. 


    Saturday, December 15, 2012

    What is IBM Rational Method Composer product?


    One the major products of IBM is the Rational Method Composer or RMC. 

    About Rational Method Composer

    - This product has proved to be quite reliable in increasing the effectiveness as well as the agility of the software system or application.
    - It provides platform that is quite flexible for process management. 
    - This IBM product is equipped with the most comprehensive tooling of the software industry. 
    - It also comes with the richest process library so as to provide assistance to the companies in the implementation of the effective processes so that they can come up with many successful IT and software projects. 

    Characteristics of Rational Method Composer

    1. The rational method composer have some very new practices that will surely improve the performance of many of the leading process experience as well as expertise in the following areas:
    Ø  Agile development
    Ø  Governance and compliance
    Ø  Requirements management
    Ø  Quality management
    Ø  Change management
    Ø  Release management
    1. It helps greatly in the identification of the improvements that are needed by the mapping practices. The improvements identified by the rational method composer can be adopted in increments and improved also as per the business objectives of the project.
    2. The rational method composer offers a choice of over 100 process guidance that are both select-able and customizable and are inclusive of the IBM rational unified process. This guidance can help you in solving common management, business and development problems. 
    3. The facility of providing the corrective action and measured results is what makes the rational method composer more user friendly. Such measure let you harness the effectiveness of the practice adoption.
    4. With Rational Method Composer you get the privileges for managing, authoring, measuring, evolving as well as deploying the effective processes that are tailor made for your software system or application project needs since it is the leading the eclipse – based tool of the software industry.
    5. The rational method composer maintains consistency in driving the results across the whole project with the help of the best practices which have been proven and have been integrated with the following:
    Ø  Measurements
    Ø  Agile
    Ø  Reporting
    Ø  Project management tools and
    Ø  Services
    1. A quantum leap forward is represented by the rational method composer and provides process solutions to IBM for the development of the software systems and applications, agile practices and service management.
    2. Rational method composer assists in capturing and maintaining the individuals’ own practices and further combines them with the practices and processes of IBM for achieving maximum result. 
    One similarity that we can find in each and every project is that there is always a need to minimize the risk, ensuring the predictable results, delivering the high – quality results on time and so on.

    Benefits of Rational Method Composer

    - The practices provided by the rational method composer can be re-used for composing the process that is right – sized enough for meeting the specific requirements of the software systems and applications.
    - The libraries of the rational method composer consist of the most robust practices.
    - These practices are guidance for the software development, governance and management and can be very well applied to domains as well as the processes. 
    - The following two libraries are shipped along with the rational method composer:
    1. The IBM rational unified process 
    2. The IBM practice Library


    Tuesday, July 24, 2012

    What are virtual users? For what purpose are virtual users created?


    For the software developers it is quite frustrating to see their software systems and applications crashing soon after installing them. 
    What impression such a failure of the software system or application will have on the user or the customer!
    It is obvious that the customers and the users may think that the software product has not been through sufficient testing before the software product was released to them. 
    It has become a standard in the world of software engineering that any organization developing a software system or application must follow a defined standard procedure for testing that software product in order to ensure its reliability as well as quality before it is shipped to the users or customers. This whole testing process is of the quality assurance. 

    For every software product there might be a 100 ways in which it may be used by the user. Therefore, the software system or application must be checked in all these possible ways for the verification of whether or not the software product is working fine.
    There are a number ways using which a software testing process can be made more effective then it is actually. 
    - One of such ways is use of automated testing tool in which suites of tests as well as specific tests can be set up and can be run by the computer. 
    - Number of hours of drudgery are reduced by a huge margin as well as time and money. 
    - The saved energy and time can be re-focused upon the tasks that call for more human interaction. 
    - This whole process makes the software product very much reliable.
    - It is always a good idea to verify the quality of the software artifact before it is shipped out. 

    One of the automated testing tools is the virtual user than can help in this regard. In this article we talk about virtual user and with what purpose this tool has been created. 

    What is a Virtual User and Purpose of Virtual User?


    - Virtual user in abbreviated form is known as VU and is a kind of tool that helps a computer in emulating a human user i.e., it helps in performing actions like typing of words, commands and clicking of mouse and so on. 
    - The computer on which the virtual user is installed actually acts as a host and takes the control of the other under itself just as a human tester would do. 
    - One of the targeted computer systems is asked to act as an agent and receive instructions from the host computer. 
    - The environment of a virtual user is constituted by an application whose work is to compile and run the scripts. 
    - The scripts of the virtual user cannot be edited in common editors rather it has to be edited in editors like MPW or BBEDIT. 
    - Through the virtual user, all the computers are linked over a network. 
    - The minimum requirements of the virtual user are:
    1. Virtual user software package and
    2. 2 systems one as host and the other one as target.
    - Today many firms have launched their virtual user software packages. 
    - Though the virtual user sounds like it’s a very good automating tool but it has got many drawbacks :

    • It cannot tell you when something looks right on the test screen or it cannot tell you how a particular icon looks or what position it is at. 
    • The biggest draw back is that the virtual user has got no intelligence of its own and if by chance a crash occurs in the machine, virtual user will keep trying to run the script regardless of the crash.  


    Monday, July 16, 2012

    What are the metrics that can be used during performance testing?


    One of the most important parts that together make up the complete and effective software testing is the performance testing. Perhaps no software system or application can do without performance testing and testing of any software system or application is incomplete without this one. 
    "The determination of the performance of a software system or application in terms of how and when and responsiveness and stability under different particular work loads is nothing but performance testing".

    Apart from this there are several other attributes that can be taken care of by the performance testing like for example:
    1. Scalability
    2. Reliability
    3. Resource usage and so on.
    The concept of performance testing falls under the concept of performance engineering. The practice of performance testing is aimed at building the performance in to the architecture as well as design of the software system or applications before the actual coding of the software system or application begins. 

    We have so many other types of testing that together make up the complete performance testing and have been mentioned below:
    1. Load testing
    2. Stress testing
    3. Soak testing or Endurance testing
    4. Spike testing
    5. Isolation testing and
    6. Configuration testing

    Metrics used during Performance Testing


    The performance testing cannot be carried out all alone by itself! Rather it is supported by some specific metrics called performance metrics. In this article we shall discuss about the metrics that are to be used during the performance testing.  We shall discuss them one by one:

     1. Average response time: 
    This is the time that takes in to consideration all the response cycle ups or round trip requests until a particular point is reached and is the mean of all the response times. Response times can be measured in any of the following way:
          a) Time to last byte or 
          b) Time to first byte
       
          2. Peak response time: 
        This is similar to the previously mentioned metric and represents the longest cycle at a particular point in a particular test. Peak response time is an indication of some potential problem in our software system or application.
       
         3. Error rate: 
       The occurrence of errors under load during the processing of the requests is perhaps the most expected thing during the testing. it has been noted that the most of the errors are reported when the load on the application reaches a peak point and further from there the software system or application is not able to process any requests. Thus error rate provides a percentage of the HTTP status code responses as errors on the servers.
        
         4. Throughput: 
       This performance metric gives you a percentage of the flow of data back and forth from the servers and is measured in units of KB per second.
       
        5. Requests per second (RPS): 
        It gives a measure of the requests that are sent to the target server including requests for CSS style sheets, HTML pages, JavaScript libraries, flash files, XML documents and so on.

        6. Concurrent users: 
        This performance metric is perhaps that best way for expressing the load that is being levied on the software system or application during the performance testing. This metric is not to be equated to the RPS since there are possibilities of one user only generating a high number of requests and on the other hand a user not constantly generating requests.

         7. Cross result graphs: 
         It shows difference between post tuning and pre-tuning tests. 


    Tuesday, July 3, 2012

    What are the main attributes of test automation?


    Test automation is nowadays counted among the best software development aids that we have today. It is a great testing aid that seeks to resolve the drudgery of the testers. Test automation has become so common nowadays that every one of us knows quite a lot about it.

    What does Test Automation do?


    - Test automation actually controls the execution of the test cases by using an automated process. 
    - Also, the comparison of the actual and the predicted outcome takes place in the same and "take it easy" manner.  
    - One thing that should be noted is that only those manual processes can be automated which have deployed a formalized testing process. 
    - In the test automation process, the user actions are recorded and the checkpoints are introduced in to the testing script so that playing it back from a particular point is made easy when you have to perform regression tests. 
    - The manual tests that passed can be automated and is mostly used in the testing methodologies like:
    1. Data driven testing
    2. Regression testing
    3. Performance testing and so on.

    Attributes of Test Automation


    By attributes, we mean the characteristics of the test automation process. It has got quite a lot of positive attributes. So let us what all attributes we can state for test automation:

    1. Repeatability:
    Automation supports repeated execution of a test case several times again and again. When you need to execute the same test case again and again the test automation comes as a big win for you.

    2. Programmability: 
    The test cases can be programmed to be executed on a number of different machines whereas the manual tests have to be executed in a sequential way one after the other.

    3. Reliability: 
    You can rely on test automation for repeat-ability and accuracy.
    4. Impact
    5. Criticality

    6. Maintainability: 
    The maintenance is just that you have to update the test automation suites for every new release of the software system or application.

    7. Flexibility: 
    With test automation it becomes quite easy for you to run automated tests that frequently change according to the regressions at particular time intervals and also the tests can be run in mainstream scenarios.

    8. Efficiency: 
    The ratio of total cost to the required effort need is reasonable.

    9. Portability: 
    The automated tests can be executed in different environments unlike manual test cases.

    10.Robustness: 
    The automated tests are quite effective for the software systems or applications that are quite unstable or change rapidly.

    11. Usability: 
    The automated tests can be used to a large extent by different types of users.

    12. Speed
    13. Accuracy

    14. Relentlessness: 
    The automated test generator as well as the process never gets tired generating and running test cases.

    There are some tests like exploratory testing and usability which cannot be automated because of their free style. Testers involved in a testing team support diverse software systems and applications that are quite unrelated to each other. 
    If the projects that demands implementation of a unique testing strategy, then the testers involved in the whole will appear more to be a hindrance rather than being a help. 
    - The testers will require tie to get adjusted to the new environment which unfortunately they cannot get and thus lowering the level of their productivity. 
    - We cannot waste time on re- engineering the development frame works but we can surely harness test automation power for every new application that we need to develop. 
    - The application can be continuously improved since the test automation has got so many positive attributes that can surely benefit the whole testing process. 


    Wednesday, May 2, 2012

    How does penetration testing tool emphasize on web application security?


    In this internet savvy world, web applications have become an important part of web utilization. Web applications provide a means to utilize or exploit the services offered by the web in a more meaningful manner. 
    The earlier years saw less use of web applications, but now it is reaching new heights day by day with a great demand for improving the existing ones along with the introduction of new ones. With such a vast number of users, the application needs to maintain its security from the malicious attackers among these users and so adequate security measures have to be taken.
    For this purpose, it is required that the security mechanism of the applications to be checked thoroughly for any vulnerabilities and security leaks via the penetration testing. Penetration testing is perhaps the best testing methodology when it comes to the testing the security different software system components like network security, data base security etc. 
    There should be some testing methodology that could dig out all the potential vulnerabilities. Is there an answer? Yes there certainly is! The penetration testing! Perhaps many of us are familiar with this testing methodology. In this piece of writing we have discussed how the penetration testing tools emphasize up on the web application security. 

    About Penetration Testing and its emphasis on Web Application Security


    - Penetration testing is yet another testing methodology that has been adopted for testing the security of the  web applications against the malicious attacks.
    - It provides a way to evaluate the security level of the web application by troubling the application with false simulated attacks as malicious attacks from the outside as well as inside attackers. 
    - It also deals with the aliens, foreigners or outside attackers who do not have any authorized access to the computer system or network and inside attackers who do have that access.
    - An active analysis is required to be carried out for the penetration testing which carries out an assessment of all the potential vulnerabilities of the web application that are merely a consequence of its poor security level as well as configuration level. 
    - Apart from this the known and unknown flaws form both the hardware as well as software components of the application contribute to these vulnerabilities rather than only operational weaknesses.
    - A proper active analysis is achieved only if it is carried out from the view point of a malicious attacker and involves the active exploitation of the recognized vulnerabilities.
    - The web application security depends up on the effectiveness of the testing.
    - The testing in turn is largely affected by the effectiveness of the tools that are employed in the testing.
    - The tools indeed affect the web application security, since if the tools are reliable and efficient in searching for the vulnerabilities, obviously there will be more stringent checking of the security mechanisms. 
    - The identification and recognition of the vulnerabilities is always the first step in penetration testing.
    - A required number of penetration tests are then carried out on that particular system with the coupling of information with the active assessment of the risks associated with the computer system or network using the penetration testing tools. 
    - A whole lot of effective tools are designed to reduce the affect of the identified potential vulnerabilities. 
    Penetration testing tools have been recognized as important component of the web application security audits. 


    Tuesday, January 31, 2012

    What are different aspects of International Organization for Standardization (ISO)?

    ISO is the short form of International Organization for Standardization. The international organization for standardization is well known for the development and publication of the standards pertaining to the international standard.

    - The organizations itself constitutes many national networks from across the world.
    - It is reported to have 163 countries in its network with one representative from each country.
    - The office of the central secretariat of the organization is located in the city of Geneva in Switzerland.
    - The purpose of the secretariat is to regulate the coordination in the system.
    - It is a private organization and works with both public and private sector organizations. It is a non governmental organization.
    - Most of its member organizations are either government organizations of their respective countries or are funded by the government.
    - Other member organizations are private and are run in cooperation with the industry associates.
    - We can say that ISO lays down a consensus that provides solutions which serves needs of both the business and society.
    - The short form “ISO” was taken from Greek word “isos” which means “equal”.

    Standards make a good impact on our life and they raise standards of our living too.Standards are very much needed to ensure characteristics like:


    - environmental compatibility
    - safety
    - quality
    - reliability
    - economical cost
    - interchangeability and
    - efficiency


    We never tend to notice the standard till the services and products are up to our expectations. We notice the importance of standards only when the services are not of the expected level. The products and services are said to work well and efficiently when they meet the standards set for them.

    The international organization of standards is responsible for maintaining such standards all over the world.

    International organization of the standards serves the following purposes:
    1.It makes the manufacturing and development of services and products efficient, better than the previous and safe.
    2.It aims at continually improving the marketing standards.
    3.It takes are of the supply of services and products to the consumers.
    4.It aims at developing a fair trading strategy between different nations of the world.
    5.It lays down a basis for products and services for safety and health and environmental legislation.
    6.It is responsible for carrying out the conformity assessment.
    7.It shares new technological methodologies and management practices with its member organizations to lead innovation ahead.
    8.It acts as a safeguard for the consumers of the services and products.
    9.It provides solutions for many problems of standardization.

    SOME MORE FACTS
    - ISO till now has developed and maintained around 18,500 standards on an international level.
    - Apart from these 18,500 standards, every year some 1000 new standards are being developed and published.
    - The information about all these standards is available on the official website international organization of standards.
    - The information center of ISO is operated by ISO itself in coordination with the international electro- technical commission (IEC).
    - The ISO/ IEC information center has been developed to provide information regarding matters of standardization to its members and other stake holders.
    - All the policies and strategies of the international organization of standards are jointly endorsed by the major governing bodies of ISO itself.
    - The policies and strategies that have been serve as a guideline for all the members of the international organization of standards and its secretariat.

    The 163 members of the ISO network are divided in to 3 categories which are:

    - Member bodies
    - Subscriber members
    - Correspondent members


    Facebook activity