Explain how Java addresses the issue of portability and security. Addressing Portability:
Many computers of different types with several operating systems are connected to network / internet. All the programs that are dynamically downloaded to various platforms through internet, should generate code for execution which is portable.
The Java specification defines clearly the way of behavior. There is a comprehensive specification for desktop applications, JEE applications as well for EJB applications. JEE and EJB specifications are available to run the built applications on any compatible Java application or web server. These specifications may be for JSE or JEE or even EJB applications. Once the behavior is correctly implemented by various vendors, the specified application could run on any Java specification as a contract in between the developers and the implementers of the Java specification.
The reference implementation of JEE provides a sample implementation to the developers which is compatible for JEE platform. It allows the developers to test the implementation and the vendors to test and verify the implementation. The JEE Compatibility Test Suite (CTS) is provided by Sun Microsystems. It is a standard suite with more than 15000 test cases for the JEE applications portability.
Certain security risks like viral infection, malicious programs detection are guarded by Java enabled web browsers and are active when a program is downloaded. The malicious programs / virus programs could gather sensitive information such as passwords, bank account number, credit card numbers etc. Java addresses these issues by executing a program known as ‘firewall’. This program resides in between the downloadable program and the system which downloads it.
Also, as far as application data is concerned, the access specifiers ‘private’, ‘protected’ can be used cautiously to protect the data with in the scope of the application.