Literature Review and Proposal on Core Java

Literature Review
Core Java, Java programming or simply Java is a widely used and robust technology for software development and creation of applications. Therefore, Java is both a programming language and a platform. On the other hand, a platform is any hardware or software environmental setting where software developers run their programs. Therefore, since Java has its own environment (JRE) and API on which it runs, it is referred to as a platform. A person who might not have encountered Java might want to know where Java is used. According to the studies, there are approximately three billion devices running on Java. It means that there are many devices around the world where Java is currently being used. Some of the devices where Java is being used are (Levenick, 2006):

Desktop applications like the acrobat reader, media player, and antivirus among others
Several web applications such as
Mobile phone devices applications
Embedded system
Types of Core Java Applications
As has been seen in the description above, Core Java is a programming language that is used in the process of developing systems, software, and applications. It develops that have the capability of working on the local machine and the Internet. The most known features of core Java is that it is object-oriented, and it works across all the platform languages. Therefore, there are various categories of programs which Java can be used to develop them such as (Russel, 2001):

Stand-alone applications
An application is a type of program that runs on a PC or any computer under the OS such as Windows, Mac OS, Linux, or Android of a computer or a mobile device. The process of creating an application in Java is similar to creating a program using another programming language. A stand-alone application can either be a graphical user interface (GUI) based or console based. Console based Java programs are the types of programs that run on being prompt by a command. Furthermore, such programs do not display any screen based on GUI. The output of such programs is console-based (Fain, 2011).

Figure 1: Console based Java Program
GUI based program are the type of Java programs that run stand-alone and can accept input from the user through a GUI based screen.

Figure 2: GUI-based Java Program
Web Applications
Web applications are the Java applications whose nature is based on the web. They are simply web-based, and they require a web browser to execute them. The web-based Java applications use a Server to store data. Every time a user sends a request to have the application executed, the user request is passed on to the server for an appropriate reply. Web-based applications come as an Applet or a Servlet.

Applets: These are Java programs that cannot work in any other environment except on the Internet. Therefore, they are specifically created for that purpose. These programs run through a browser embedded with a Java such as Firefox, Chrome, Internet Explorer, and Netscape among others. Applets are created through any Java development tool. It cannot work on the Internet without it being contained within a web page. Java Applets programs include games developments and visual effects among others (Gladychev, Patel, & O’Mahony, 1998).
Figure 3: A Java Applet Program Screen
Servlets: Java is also appropriate for development of web-based n-tier applications. In a web-based Java application, the client sends a request to a server. The server accepts the request and processes it and sends a response to the client. The Java Application Programming Interfaces (APIs) on the server side address the program processes and request of the client’s response. The server sides APIs extend their capabilities of the standard Java APIs and are referred to as Java servlets or server side applets. An HTML processing of a form is a simple use of servlets. The servlets can also process databases as well as performing server side transactions. Servlets execute through web servers (Hunter & Crawford, 1998).
Distributed Applications

Distributed applications require a server to run. Additionally, the applications use several servers simultaneously to back up the data and information and prevent any losses that might occur. They are also called enterprise applications. Such applications include banking applications, and they are advantageous in that they have a high level of security, clustering, and load balancing. EJB is used to create enterprise applications in a Java development environment.

Database applications: They are distributed applications that use the JDBC API to connect to the database. They could either be applications or applets. However, applets may face security challenges in the database connections (Morgenthal, 1998).
Client Server Applications
Client server applications cannot execute without the availability of web technology. Therefore, they are web dependent. The application follows a less complicated Client-Server model in which a client sends a request to the server directly. Examples of such applications are Yahoo Chat. They are developed in Core Java and Web technologies (Kleinov & Lehmann, 2002).

I will be attached to a company in the position of an intern as the software developer using Core Java. The software development process will largely entail a systematic research process to ensure that the development process is conducted according to the requirement, and it delivers the expected results. The internship will be a subdivision of four iterations where each of the iterations will entail different tasks and activiti

Iteration 1: Orientation – It includes an introduction to the company’s management, employees, and its code of conducts and operations. Furthermore, I will be introduced to the software development team and the department of IT from where I will be working.

Iteration 2: Training – The iteration includes being guided in the process of software development life cycle by the company’s experts in the development process. I will also be introduced to the company’s specific guidelines to the software development such as punctuality and adhering to professional ethics in the process.

Iteration 3: Gathering SDLC tools – The iteration includes collaborating with the software development team to identify and gather all the tools that the implementation phase will require. This includes setting up the computers on which the development will take place and installation the computers will necessary software as well as the JDK (Saini & Kaur, 2014).

Iteration 4: Implementation – The activities of the iteration will include the actual development of the software using Core Java. Therefore, we will follow the SDLC process from the first step to the last step.