 |
MGT415H5
Group Assignment
Java
by
Group 3
Ajit Thagad
Anand Patel
Bill Maloney
Wan Heng (Alvin) Lee
Yvonne Lee
Kevin Pedra
Introduction 3
Companies/Organization Using Java 3
Industry and Commercial Bank of China (ICBC): 3
Office Depot 3
Kodak Polychrome Graphics 4
The American Red Cross 4
Business Enabler 4
How Java Works 5
Versions 7
Example of Java Code 8
Alternatives 9
Alternative 1: C# 9
Alternative 2: C++ 10
Alternative 3: Assembly 11
Alternative 4: PERL 12
Standards Bodies 13
Bibliography: 15
Websites: 15
Books: 16
1 Introduction
In recent years, Java has emerged as an industry-leader in the world of computer programming. This high-level computer programming language has become popular with businesses because of its compatibility, which automatically configures it to each separate platform and operating system. Several additional versions of Java have hit the market since its first release by Sun Microsystems in 1996, with each version including more and more packages and classes while becoming increasingly speedy and efficient. These newer versions have allowed Java to continually adapt to the ever- changing computing industry. More and more companies are relying on Java because of its user-friendly applications and reliability.
2
3 Companies/Organization Using Java
3.1.1 Industry and Commercial Bank of China (ICBC):
ICBC, the largest state-owned commercial bank in China, used Java (a Sun Microsystems technology) to cut costs and increase simplicity. ICBC took advantage of Java's knowledge and efficiency to help with its consolidation efforts.
3.1.2 Office Depot
One of the largest resellers of office products in the world, Office Depot uses Java technology for increasing cost effectiveness and for standardization purposes. Office Depot is also working on a global content application roll out with the use of this technology.
3.1.3 Kodak Polychrome Graphics
Kodak, the leader in the conventional and digital graphic arts industry, employs Java in its attempt to implement a SAP infrastructure. The main purpose of the implementation of SAP is for the management of Kodak's inventory and finance departments.
3.1.4 The American Red Cross
The American Red Cross uses Java to help design systems to control its blood bank. Java has also helped the Red Crosses system become more integrated all the way from back office operations to blood supply management and employee training & assessments.
4 Business Enabler
In today's market, businesses are required to utilize the speed, accessibility and opportunity that the internet has to offer. Businesses must transact online to keep up with the trends of the global community, and the selection of the right solution for your business will impact how efficiently the benefits of the internet are harnessed.
Java is no longer an interest or "half-baked" solution to a problem that did not pose a viable threat to a business. Rather, an increasing number of large companies have found a home for Java on their servers. "It's just an application, but it's huge," says Stephen Earl, senior Web analyst. "It handles more than 160 functions. Is it mission-critical? We run our business on it"[1]. Java technology "provide(s) a leading-edge foundation for enabling e-business services. Some of the most innovative internet start-up companies have their entire company based on Java backbones."[2]
5 How Java Works
Java is a high level programming language. Its main selling points to businesses are the ease of use compared to other languages such as C++, and its "Write once, run anywhere" format[3]. Most programming languages either compile or interpret a program, enabling you to use it on your computer; however, Java can perform both functions[4].
The first step in creating Java programs is the use of the compiler to translate a program into an intermediate language called Java bytecodes. Java bytecodes are the equivalent of instructions that are then interpreted by the Java Virtual Machine (Java VM). Each Java interpreter is a Java VM. These are platform independent codes that are interpreted by the interpreter on the Java platform. The interpreter separates and runs each Java bytecode on the computer. The compilation process occurs once while the interpretation process happens each time the program is executed.
The program can be written on any platform that has a Java compiler and can be run on any form of Java VM, which can be anything from a Windows operating system, to a Mac OS[5].
[pic]
Source: http://java.sun.com/docs/books/tutorial/getStarted/intro/definition.html, The Java Tutorial, "About the Java Technology"
This compatibility is what makes Java so attractive to businesses. Programs do not have to be reconfigured to fit within different platform and operating systems. Whereas most platforms are combined of hardware and software, the Java platform consists only of software. It consists of the Java Virtual Machine, and the Java Application Programming Interface (Java API). The Java API is a combination of software modules that offer a variety of functions, such as graphical user interfaces.
Businesses use Java to create and run high level applications, such as web servers, proxy servers and mail servers. Another type of application that businesses create with Java is servlets, which are applets that run on the server side of the system and are used for the creation of interactive web applications.
By using Java, businesses are not concerned regarding the platform which the end user is working on. They can simply create one program that will run on any platform. This saves the company time and money, and allows them to focus on more important things than compatibility issues
6 Versions
Sun released the first edition of Java in 1996, calling it Java 1.0. The initial release offered 8 packages and 212 classes. Java 1.0 was soon updated to Java 1.1 in 1997. This version added 15 more packages for a total of 23 packages and had 504 classes. Also, Java 1.1 now included inner classes and boasted improved event handling[6]. These versions of Java remained "current" until the release of Java 1.2, also known as 'Java 2', in 1999. This latest version was initially set out to be called Java 1.2 but some felt that the significant changes called for the label Java 2[7]. With 59 packages and 1520 classes, Java 1.2 now offered foundation classes which allowed for an improved graphical user interface[8]. Also, Java 1.2 would now offer new features such as drag and drop and added security features[9].In 2002, Java 1.3 was released. This version, also considered to be part of the 'Java 2' Platform, increased the number of packages to 76 and the number of classes to 1842. The newer version, not a drastic change from 1.2, increased speed and added features that were previously available as separate packages. The biggest addition was the 'Hotspot Virtual Machine', which increased the startup speed. 2002 introduced Java 1.4 with 135 packages and 2991 classes. This latest version offers increased speed and more support, however, will be updated in 2004 to include Generics and other features[10].
7 Example of Java Code
/**
* The HelloWorldApp class implements an application that
* simply displays "Hello World!" to the standard output.
*/
class HelloWorldApp {
public static void main(String[] args) {
System.out.println("Hello World!"); //Display the string.
}
}
Possibly the most famous example of java, this piece of code displays the phrase 'hello world' when applied. There are three methods for inserting comments in the code. Comments made according to these methods are ignored by the compiler and are strictly for the use of the programmer/readers. The three methods are (1) /** ending with */ (2) /* ending with */ and (3) the compiler will ignore everything from // until the end of the line (http://java.sun.com/docs/books/tutorial/getStarted/application/comments.htm l, 2004Feb06, The Java Tutorial, "Comments In Java Code"). All java coding begins with the selection of a class. Here in our example this is denoted [class HelloWorldApp {]. A class is used to categorize the code. These categories group together codes that appear to be identical (http://java.sun.com/docs/books/tutorial/getStarted/application/classdef.htm l, 2004Feb06, The Java Tutorial, "Defining a Class"). The information in classes is stored as variables (http://java.sun.com/docs/books/tutorial/getStarted/application/classdef.htm l, 2004Feb06, The Java Tutorial, "Defining a Class"). With the release of Java 1.1, inner classes were introduced. Inner classes allow the programmer to be more specific regarding the type of class by enabling the programmer to input more than one class (http://tns- www.lcs.mit.edu/manuals/java-api- 1.1beta2/guide/innerclasses/html/innerclasses.doc.html , 2004Feb06, Telemedia, Network and Systems Group, MIT, "Inner Classes in Java 1.1").
The next line of code is referred to as the main method. Similar to the main method used in C and C++, the definition of a main method is necessary for the code to run applications. The main method in our code appears as [ public static void main(String[] args) { ]. The class selection from the first line of code calls upon the main method which in turn calls upon all other methods required to run the application ( http://java.sun.com/docs/books/tutorial/getStarted/application/main.html, 2004Feb06, The Java Tutorial, "The Main Method").
The final line, [System.out.println("Hello World!"); //Display the string.],
is where the variable in our code is located. The name of the variable in this case is System.out. Periods are used to join methods and variables as well as instance variables (http://java.sun.com/docs/books/tutorial/getStarted/application/objects.html , 2004Feb06, The Java Tutorial, "Using Classes and Objects). An instance in this piece of code is the print stream. In the second part of the last line, the code initiates the print function, prompting the computer to print "Hello World."
8 Alternatives
8.1.1 Alternative 1: C#
C# was created by Microsoft in June of 2000 to support the .NET framework. This fairly new programming language is object-oriented and is aimed at enabling programmers to build a wide range of applications for the Microsoft .NET platform[11]. C# enables the programmer to shorten development time by freeing the developer from worries such as memory management and type safety issues[12]. This programming language is simple and modern being derived from C++ and Java. C# aims to combine high productivity of Visual Basic and the basics of C++. C# supports garbage collection as well as automatic memory management[13].
A disadvantage of C# programming includes the large download of the .NET framework (131MB) or a very expensive Visual Studio .Net. Since C# is a Microsoft product, it is considered an easy target by hackers and viruses. Lastly, running a C# program requires a speedy machine or it will run slow[14].
8.1.2 Alternative 2: C++
C++ was developed by Bjarne Stroutrup at Bell Labs during the early 1980's. It was designed to support the features of C[15]. In addition to C, C++ includes features such as classes with inheritance and virtual functions. C++ is a higher end version of C with full support for object-oriented programming[16]. C++, like C is very fast and versatile. Both are considered universal languages. This high-level programming language is portable or machine independent as well as programmer friendly. C++ is backwards compatible with C, meaning that C++ compliers can understand C programs.
C and C++ applications are applied on one operating system platform that are usually very much intertwined with native windowing system and OS specific networking capabilities. Also, C++ is less portable in comparison to Java. This is because each implementations decides the precision and storage requirement for basic data types (short, int, float , double, etc). Unlike Java, C++ is considered less reliable because of certain features such pointers and automatic type conversion. Also, because it is not a low- level machine language (like Assembly), its language needs to be translated for the machine. C++ requires the programmer to allocate memory and to collect garbage[17]. As well, those who are not familiar with the structured programming style in C may find it a challenge if they decide to use languages that are closer to the machine such as Assembly.
8.1.3 Alternative 3: Assembly
Assembly is a low-level programming language (machine language). An assembly language program is a sequence of commands or operations that the computer "reads" and then performs. One advantage of using assembly language is that it is self-managed, since it is the programmer who also creates the tools. Assembly is fast and efficient. Since assembly language is a machine language (is it machine oriented) no translation is required[18].
Assembly programming is not commonly used among most programmers; this specialization can be good or bad. Since the language is difficult to read and code, assembly is deemed not programmer friendly. A negative aspect of creating the tools is that it is harder and at times, very frustrating. The programmer as well, must manage and allocate memory, which can be very time consuming. Programming languages such as Java and C++ avoids this problem because they have intrinsic memory management. As well, unlike Java and C++, assembly programming is not portable[19].
8.1.4 Alternative 4: PERL
An alternative to Java is Perl, which stands for "Practical Extraction and Report Language" though some have coined the acronym as "Pathologically Eclectic Rubbish Lister." Perl is created by Larry Wall who continues to develop and maintain the language. This programming language can be used in virtually every platform, providing a useful tool for portable code. Other advantages of Perl include the many built-in functions for character string manipulation. If mastered, these functions make it possible to write string code quickly and concisely.
A disadvantage of Perl is that its code is rather complex. If the documented code is poorly written, understanding it can be difficult. Perl programs require an interpreter whereas Java does not. Since Perl requires an interpreter, Perl programs starts slowly, especially if the user program uses dynamically loaded libraries. Perl also attempts to continue execution in spite of 'minor' programming errors. This can make it difficult to find the start of a chain of errors[20]. Perl is also a scripting language, meaning that to run the program, you must install Perl (Perl does not have a complier).
9 Standards Bodies
On May 23 1995, Sun Microsystems announced that Java technology was going to be incorporated into Netscape Navigator[21]. Since then, there had been pressure on Sun Microsystems to standardize Java through an official standard body. Sun was willing to standardize Java into a 'write once, run anywhere' technology, but did not want to lose any control of the product[22]. In 1997, the International Standards Organization (ISO) accepted Sun's offer to standardize Java, but Sun never submitted Java to the Organization. Sun cited that they were 'unhappy with the degree of control the [ISO] would have over the Java specification'[23]. Two years later, Sun attempted to standardize Java through the European Computer Manufacturers Association (ECMA). Again, Sun eventually refused to standardize Java through this process. This time Sun's VP George Paolini claimed that '[ECMA] does not provide the necessary assurances and safeguards that are needed to protect the interests of Sun, the Java community, and ECMA."[24]
After these failed attempts, Sun abandoned the idea of standardizing Java through an international standard body. Instead, they developed the Java Community Process 2.0 (JCP) program to use as an 'open source' standardization process[25]. The JCP is a program that allows the development of Java in an open and cooperative manner, without the direct involvement of Sun. Users of Java can propose Java Specification Requests (JSRs) - documents requesting major changes to Java or development of new specifications-to the JCP in order to make a change or add a new component to Java. The JCP, which now has over 350 members, looks over the JSRs and decides if the changes are acceptable.
Recently (Jan 2004), JCP added another layer to the 'open-standardization' process called the Java Tools Community (JTC)[26]. According to the Java website, the goal of JTC is to 'to promote the creation, adoption, and advancement of JCP standards for "toolability" and interoperability in the design-time area.'[27] The JTC was founded by the following 10 companies; BEA Systems, Compuware, Embarcadero Technologies, Iopsis Software, JetBrains, Oracle Corp., Quest Software, SAP AG, SAS and Sun Microsystems[28]. The JTC will provide an online society where tool vendors, customers and developers can work together to further develop Java.
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 Bibliography:
28.1.1 Websites:
http://www.prnewswire.com/cgibin/stories.pl?ACCT=SVBIZINK6.story&STORY=/www/ story/01-20-2004/0002092144&EDATE=TUE+Jan+20+2004,+09:03+AM, 2004Feb02, PR Newswire, "News and Information"
http://www-306.ibm.com/software/info/synergy/L1.pdf, 2004Feb07, IBM, "Lotus Domino and WebSphere Application Server Software Solutions to Support Your Business Objectives"
http://java.sun.com/docs/books/tutorial/getStarted/intro/definition.html, 2004Feb06, The Java Tutorial, "About the Java Technology"
http://www.particle.kth.se/~lindsey/JavaCourse/Book/Java/Chapter01/versions. html, 2004Feb10, Java, "Java Tech"
http://www.os2ezine.com/20000816/java1-2-13.html, 2004Feb06, OS2EZINE, "Java What's The Difference?"
http://thetyro.co.uk/javaversion.html, 2004Feb05, The Tyro Productions Ltd., "Java Versions"
http://java.sun.com/features/1998/05/birthday.html, 2004Feb03, The source for Java Developers, "Java Technology: The Early Years"
http://java.sun.com/features/1998/01/wora.html, 2004Feb01, The source for Java Developers, "Write Once, Run Anywhere: Why It Matters"
http://news.com.com/2100-1001-225197.html, 2004Jan30, CNET News, "Sun revising plan for Java recognition"
http://techrepublic.com.com/5100-6329-5033149.html, 2004Feb04, TechRepublic, "Sun refuses to relinquish control over Java"
http://java.sun.com/features/2001/06/jcp.program.html, 2004Feb03, The Source for Java Developers, "Java Community Process program"
http://www.jcp.org/en/home/index, 2004Feb03, Java Community Process, "News from JCP"
http://www.javatools.org, 2004Feb04, Java Tools Community, "Overview"
http://xml.coverpages.org/JTC-Announce.html, 2004Feb04, Cover Pages, "Java Tools Community"
http://sern.ucalgary.ca/courses/CPSC/547/W2002/slides/11, 2004Jan30, CPSC 547, "Advanced Information Systems"
http://www.c-sharpcorner.com/Language/CSfeaturesGAG.asp, 2004Jan31, C# Corner, "C# and its Features"
http://www.ecom.arizona.edu/mis507a/quicktalk/c_sharp.html, 2004Jan30, C#, "C#"
http://www.25hoursaday.com/CsharpVsJava.html, 2004Jan30, C# From a Developer's Perspective, "A Comparison of Microsoft's C# Programming Language to Sun's Microsystems' Java Programming Language."
http://arizonacommunity.com/articles/java_32001.shtml, 2004Jan27, Arizonacommunity.com, "Java Advantages & Disadvantages"
http://www.ccse.kfupm.edu.sa/~saliu/ICS102/fall031/lecture/L02_OverviewOfPro grammingParadigms.ppt, 2004Jan27, ICS102, "Overview of Programming Paradigms"
http://cplus.about.com/library/weekly/aa010702a.htm, 2004Jan27, All you need to know About, "Introduction to C and C++"
http://cs.smith.edu/~thiebaut/ArtOfAssembly/fwd/fwd.html#61, 2004Jan29, The Art of Assembly Language, "What's Wrong with Assembly Language?"
http://medlib.med.utah.edu/medstat_ops/node182.html, 2004Jan28, Learning PERL, "PERL Advantages and Disadvantages"
http://archive.ncsa.uiuc.edu/General/Training/PERLIntro/whatIs.html, 2004Jan28, Overview of Programming Paradigm, "Programming Languages"
28.1.2 Books:
C++ Interactive Course, Robert Lafore, 1-57169-063-8, "Chapter 1: Session 2: Features of Object-Oriented Languages" pg14.
----------------------- [1] http://www.internetwk.com/trends/trends022299.htm
[2] http://www-306.ibm.com/software/info/synergy/L1.pdf
[3] http://java.sun.com/docs/books/tutorial/getStarted/intro/definition.html
[4] http://java.sun.com/docs/books/tutorial/getStarted/intro/definition.html
[5] http://java.sun.com/docs/books/tutorial/getStarted/intro/definition.html
[6] http://www.particle.kth.se/~lindsey/JavaCourse/Book/Java/Chapter01/versions. html
[7] http://www.os2ezine.com/20000816/java1-2-13.html
[8] http://www.particle.kth.se/~lindsey/JavaCourse/Book/Java/Chapter01/versions. html
[9] http://www.os2ezine.com/20000816/java1-2-13.html
[10] http://www.particle.kth.se/~lindsey/JavaCourse/Book/Java/Chapter01/versions. html
[11] http://www.c-sharpcorner.com/Language/CSfeaturesGAG.asp
[12] http://www.25hoursaday.com/CsharpVsJava.html
[13] http://sern.ucalgary.ca/courses/CPSC/547/W2002/slides/11
[14] http://www.ecom.arizona.edu/mis507a/quicktalk/c_sharp.html
[15] C++ Interactive Course, Robert Lafore, 1-57169-063-8, "Chapter 1: Session 2: Features of Object-Oriented Languages" pg14.
[16] http://cplus.about.com/library/weekly/aa010702a.htm
[17] http://arizonacommunity.com/articles/java_32001.shtml
[18] http://archive.ncsa.uiuc.edu/General/Training/PERLIntro/whatIs.html
[19] http://cs.smith.edu/~thiebaut/ArtOfAssembly/fwd/fwd.html#61
[20] http://medlib.med.utah.edu/medstat_ops/node182.html
[21] http://java.sun.com/features/1998/05/birthday.html
[22] http://java.sun.com/features/1998/01/wora.html
[23] http://news.com.com/2100-1001-225197.html
[24] http://techrepublic.com.com/5100-6329-5033149.html
[25] http://java.sun.com/features/2001/06/jcp.program.html
[26] http://www.jcp.org/en/home/index
[27] http://www.javatools.org/
[28] http://xml.coverpages.org/JTC-Announce.html |
 |
|