™ Technology Concept Map

SM 2 Sun works with companies become members of the JCP by signing JSPA a which is has a

What is Java Technology? are represented onthe supports the development of ... Java 0 within the context of the , Java Community Process The Java Specification Participation Programming language Java object model hti n isorganized by that isan defines This diagram is a model of Java™ technology. The diagram begins with members join the JCP by signing the provides ... documentation 42 may function as ... developers 23 Agreement is a one-year renewable is defined by the ... Java Language Specification 43 logo owns the ... Java trademark 1 support the development of ... Java 0 agreement that allows signatories to is used to write ... programs 24 make(s) ... SDKs 29 make ... SDKs 29 Class libraries are An application programming interface is the Particular to Java, Abstract classes permit child explains Java technology by placing it in the context of related Java forums often discuss Java in Java developer become members of the JCP. is used to write ... class libraries 10 organized collections written or understood specification of how a interfaces are source code classes to inherit a defined method makes versions of a ... JVM 18 make versions of a ... JVM 18 Companies include Alternatively, developers can sign the syntax and 4 of prebuilt classes piece of software interacts with the outside files that define a set of or to create groups of related communities provides certify Java applications using IBM, Motorola, more limited Individual Expert The Java language has roots in C, Objective C, and functions used to world. It specifies what input the application functions (methods) that classes for polymorphic behavior. concepts and examples, and by defining its major components is represented on Nokia, Oracle, Participation Agreement (IEPA). SmallTalk, and LISP. keywords create other classes. or application component accepts, how the are required by a class. hosts Novell, Netscape, Class libraries can be software will behave, and what output it will Interfaces name methods Hewlett-Packard, 9 and the connections between them. It shows how developers from members includes alternate object-oriented programming language is based on the part of the Java provide. All computer software relies on a and set an expectation for specification leads 5 expert groups consist of members of Java Community overseen by the Executive 8 Apple, and BEA. standard – meaning variety of APIs to achieve tasks such as each method's behavior,

are led by draft and do the work of the implementations As opposed to a purely procedural they have been writing a file or displaying text. APIs often but do not implement the may be an use Java technology to create programs that benefit people SM There are two superclass (parent class) abstract class (spec leads) Process (JCP) develops Committee comments on Alternate implementations are written programming language. ratified by the Java depend on other APIs. methods. Interfaces allow has champion executive Community Process – a piece of code to be committees: to the same specification and pass the everywhere, and explains how computers and networks relate TCK, but can be licensed differently or created by 10 class libraries implement 13 APIs written in such a way that contain multiple are ratified by... the J2EE/J2SE and individual developers define the code can work with J2ME. and may have enhanced features principles provide benefits and advantages subclass (child class) inherits methods and properties from a

may rely onparent's may define new may override existing to Java technology. beyond the reference for their own or their any type of class that such as company's use. supports the interface. may also be a 3 Java Specification if accepted becomes a community may become a 6 public may become a new Java specification is instantiated in a Reference Implementation Such as the object object-oriented programming language 9 definition of... is addedto the model, inheritance, 14 interfaces explicit error handling 22 Request (JSR) A proposal to develop draft draft A Java specification describes & Technology Compatibility Kit (TCK) modularity, garbage collection 21 is submittedto some aspect of Java technology, abstraction, hierarchy, The diagram is intended to help developers who are familiar a new specification is added to the reduced development time security model 20 including language, virtual A Reference Implementation is implementation Runtime instances of classes. or significant revision definition of ... Java 0 11 JCP machines, platform editions, a working example of the JSR. hiding, information packages 15 may implement architecturally independent applications 19 to an existing spec. contain multiple may multiple may contain implement objects

ability to write higher-quality code through used can be with one part of the Java platform understand other parts. It profiles, and APIs. Other companies will produce may be implemented in hiding, encapsulation, 18 Java are runtime instances of ... classes 12 2 their own implementations. and polymorphism. more maintainable code have The TCK is a suite of tests, relates unfamiliar technologies to ones with which developers such as are created by methods and fields 0 tools, and documentation that features and benefits ability to call non-Java functions Program 7 maintenance provides a standard way of may already be familiar. The diagram also provides an overview administers the Java Native Interface (JNI) provides a method for calling native serialization logo chairs the may request major revisions via testing an implementation for Scope limits access to methods and properties. Levels include: Management Office lead compliance with a Java functions such as operating system or legacy library functions. In runtime, refers to the process of exists within may revise Classes are source 12 classes implement turning an object into a data stream for scope • public: can be called or manipulated freely

specification. define for developers who are new to Java technology and an has a is which is distinguished by code files that running in RAM are purposes of transmission or storage. • protected: can be called or manipulated by a class in the same package describe a unit of • private: can be called or manipulated only by the same class. 0 is a 1 18 Architecturally dependent machines that are available may be categorized as introduction for non-programmers who want to improve their trademark for nearly every contemporary operating system. programming. A class are constrained by Java virtual machine relates a set of data TM (fields) and functions are distinguished by types field types can be primitives or object references ability to converse with developers. For more information, is defined by the Java virtual machine specification (methods) that use field or class types can be... classes 12 refer to ... (JVM ) the data. Primitives visit the web site at http://java.sun.com. generally enable have have

enables 19 objects architecturally independent applications Inner classes reside inside basic math or enable inner classes methods constructors fields define a location to store data comparison constrained by are constrained by are manipulate

another class, allowing consist of may are operations. Development process One application can run in multiple environments for better organization. Methods are defineinvo r begins with portability Fields are Concept Maps without being rewritten or recompiled. Should not be confused ked 15 detailed sometimes with subclasses. instructions that equi by 16 development environments may include 17 tools such as referred to as may consistof or on ... objects 15 The diagram takes the form of a concept map – a web of linked cause a running red properties. are used to write, test, and debug enforces a 20 security model controls access to critical resources object to take ... interfaces 14 Including memory and hard drive. action or terms showing both overall structure and details. By showing manipulate data. Java developers often use specific development environments everything – the forest and the trees – in a single view, concept called Integrated Development Environments, or IDEs. text editor compiler virtual machine debugger Application visual programming tools programming outline lay out are read by a is usedto create problems with helps identify allows adjustmentof... are usedto buildthe oplssuc oeit isstored in compiles source codeinto byte codeinto translates Just-In-Time compilation maps help people visualize mental models and clarify thoughts. ed by A software utility Significantly improves virtual machine interface improv Notes that developers include to specification. that turns be performance by translating groups of statements declarations comments

can be explain source code to to create andrun human-readable can instructions from byte code to machine Class structures improves can code rather than one instruction at a In running In running themselves and others. API spec class user interface text files into performance be im behavior of... defines the In concept maps, verbs connect nouns to form propositions. is a name for a ... programming language are basic source machine- time. programs, programs, code that structures frameworks proved statements declarations define TM the generation of contribute to the generation of contribute to is also a name for ... SDKs and JREs of ... are examples friendly byte Java provides a prescribe actions a variable's Javadoc Javadoc browsable code. by serves as the Examples and details accompany the terms. More important defines a set of ... APIs 13 framework Basic source code that or a sequence of existence and classes

objects objects dynamic compilation is implemented as a set of ... platforms 27 for the classes, describes the graphical actions. determine scope. comments are processed by the tool to create documentation user interface. Goes beyond Just-in-Time compilation by APIs terms receive visual emphasis; less important terms and can be used to write ... programs 24 describes the Comments specifically formatted to Does not include examining the code as it runs and class hierarchy, source code byte code machine instructions focusing optimization efforts on the most be processed by the Javadoc tool. as running... may bethoughtof constitute a defines Downloads and documentation are 12 implementation details. 13

and provides the 15 examples are in gray. Purple terms and purple lines indicate a available at http://java.sun.com. Is human Is platform Are processor critical pieces of code as it executes. names of the Dynamic compilation is enacted by the class methods readable. independent. It dependent. They can is edited in the Java HotSpotTM virtual machine. and properties. source code framework almost never can be read by the implements 21 process. Terms followed by a number link to terms preceded Selected Java products have been is the foundation for be read by the processor directly. garbage collection localized into many languages. This Does not include The combination of the class classes 12 the completed stored in are Watching for data in memory that is no longer needed and freeing the memory for reuse. implementation processor objects by the same number. localization is one of the key factors structures and the user interface directly. fragment or Other programming languages require programmers to free memory explicitly when a for adoption of Java technology details (method framework into a skeleton of the piece of data is no longer needed, which can increase the development effort. worldwide. definitions). application's overall source code. Does application may finda testing contributes to when debugged, not include implementation details. 15 Are human-readable. text files binary files implements 22 Usually have the run ona explicit error handling suffixes .java or .jav. The virtual machine may encounter a problem, or exception, while a program is running. The software development process is iterative, with several Are computer- readable. The Java language requires that pieces of code which are likely to encounter a particular rounds of designing, writing, compiling, running, and testing error offer a mechanism for handling the exception at runtime. When an error is before software is deployed. Binary files is trapped by a usually have bug encountered, the virtual machine executes the code designed to respond to the error. the suffixes .jar, .jcm, .class, .ear, or .war. 25 23 learn and use are used by or support ... services 26 people such as ... hardware 31 engage in may download and install ... JREs 30 often own ... hardware 31 some of whom are ... developers 23 activities are facilitated by Including getting information, communicating, such as ... applications 28 Java technology is especially collaborating, playing, working, creating, and buying Developers enable ... services 26 devices may submit or comment on a ... Java Specification Request 3 useful in devices that are and selling. who are members of the Java Community Process serve on ... expert groups 5 run on and connect ... devices 25 connected by a network. and the form ... Java developer communities 4 useful f comment on a ... public draft 6 24 26 participate in the ... Java Community Process 2 services may request revisions from the ... maintenance lead 7 are instantiated in connects ... devices 25 Including news services, instant messaging services, who are members of the JCP elect the ... executive committee 8 supports e-mail services, communication software, collaboration often use ... development environments 16 supports ... web services 33 software, discussion forums, games, the world wide web, participate in the ... development process productivity software, image-creation software, and marketplace services.

that make software is developed with ... platforms Including servers, web-based solutions, stand-alone programs internet applications, and clients. JavaTM2 Platform:

42 end-to-end solutions for enterprise servers and applications for desktop servers and applications for consumer and embedded servers and applications Documentation is available via http://java.sun.com. such as

32 TM depends upon 35 TM is based on subsets of 39 TM Java 2 Platform Micro Edition is intended to run on devices TM TM 27 platforms J2EE J2SE J2ME with limited computing power, such as cell phones or PDAs. Java TV Java Embedded rvd uligbok o runon provide buildingblocks for build andrun is usedto build andrun is usedto sue obidadrn are builtusinga is usedto buildandrun sue obidadrn r ul ih are builtusing are builtwith is usedto buildandrun is usedto buildandrun TM Java 2 Platform Enterprise Edition is Java 2 Platform Standard Edition is intended to run J2ME has reduced processor and memory requirements. It is Server (JES) used to build secure, scalable, on desktops, laptops, and workstations. J2SE also based on subsets of J2SE with additional components for runsona are builtwiththe build andrun is usedto distributable server-based includes the core language packages and classes market segments such as hand-held devices. applications for large enterprises. used by J2EE and J2ME. J2EE J2SE J2ME other documentation documentation documentation documentation documents ... specifies and such as documents ... specifies and such as documents ... specifies and such as such as Includes Web 28 applications enterprise applications such as web-based and client/server such as 33 web services may be enabled by applications embedded desktop applications specialized PDA cell phone applications for use interactive television embedded are are composedof have are enabled by Services, Getting applications applications A standardized way in a web page run inside a ... web browser 34 embedded applications applications applications with Smart Cards applications applications Started, Java XML, are built with are may be built with may be built with may be built with are of integrating and are builtwith Internationalization, J2ME shaping business logic, Such as ATMs and Such as user-controlled camera Such as home services and J2EE J2SE Sound, and Java 2D. data, and processes point-of-sale services. views and video on demand. network-aware automobiles. 32 across a network. 35 39

runnable components are configured by business logic is described by server components have interfaces provided by client components always have user interfaces provides a 34 web browser 36 J2SE applets Extend the applet class, which 38 J2SE applications Implement a main method. A class that 40 J2ME J2ME 41 run in a

are builtusing

are builtusing may runinsidea are builtusing r opsdo aecmoe f r otie n include are containedin are composedof are composedof are configured by a are runin may utilize the are is housedin can call other can be ... J2SE applets 36 provides developers with a basic run insidean defines an application must declare a Java Card applets Java TV

Components that can can be ... J2SE applications 38 framework for rapid development of main method, which the Java virtual applets applications J2EE Platform J2SE Platform J2ME Platform tutorials run on their own. run ina are builtusing are builtusing can be ... J2ME applets 40 a limited application. This includes a machine uses as the starting point for Specification Specification Specification basic user interface framework and the application. The main method gets 43 can be ... MIDlets 41 event model. executed when the application starts. Specifies that the entire Includes the JLS and Specifies which parts Java Language J2SE JLS is applicable to documentation of the JLS are Specification (JLS) J2EE, includes additional describing what the applicable to J2ME, Provides a complete never directly build may directly build specifications for J2EE, platform packages are what features the JVM components Enterprise servlets JavaServer Java TV APIs Java Embedded specifies what features and what features the must support, and specification for the

are builtusing run insidea always directly build Java Card API

may be interpreted by a by be interpreted may defines a is containedinthe run on TM TM TM the JVM must support, JVM must support. what the platform syntax and semantics of Cannot function on their JavaBeans (EJB) Servlets respond to Pages (JSP ) embed programming code in a markup language Includes specific Depend on the Java Server the Java programming

TM run insidean are builtusing

and what the platform packages are. run insidea are builtusing

own, but are used by other an URL request. packages: Media Framework language. deployment Can be HTML, JavaBeans packages are. components or runnable Enterprise JavaBeans Servlets commonly JSPs define a page are builtwith java.lang (JMF), which is framework components. define independent pieces generate HTML, XML, element, which can be WML, XHTML, Discrete units of software descriptor javacard.framework optional to J2SE but Specifies packages: Mobile Information of business logic or or dynamic images. HTML, XML, or another or voice XML. functionality that conform to the javacard.security required for Java TV. Java BluePrints application behavior that They can call other markup language. JSPs JavaBeans API and are designed to be http Device Profile (MIDP) is one type of javacardx.crypto can call either servlets, servlets, JSPs, or execute as servlets. reusable components. The JavaBeans log Specification Guidelines, patterns, JSPs, or other EJBs. EJBs. They can call other Extensible Markup API makes it particularly easy for device access and code for end-to-end JSPs, servlets, or EJBs. Beans to be utilized by visual timers applications. Language (XML) programming tools. (In an framework Foundation Profile Provides a structured and architecture analogy, these would be Specification extensible mechanism for prebuilt walls, windows, or doors.) Profiles are packages required organizing and presenting data. for a particular vertical J2EE Connector Connected Limited read configurations from a from configurations read Many Java packages and classes Also referred to as required or core market segment or set of Specification Device Configuration containers connector EJB utilize XML to store and exchange related devices. Other profiles run insidea can bea data. packages, platform packages are the (CLDC) Specification Manage architecture container web container heart of the Java programming include Foundation, Game, is created by a Personal Basis Profile, and PDA. can becreated by transactions, is containedin language. The packages include Optional packages define Connected Device life-cycles, Provides a mechanism Simple Object myriad classes that define user a set of methods to and data for connecting to legacy interface components, a address specific Configuration (CDC) persistence. information systems. Access Protocol programming event model, text and functionality required for Specification math processing tools, code-level certain specialized (SOAP) security, objects for memory storage applications. Applications There are several PersonalJava Provides a way for applications of complex data, and methods for that require optional invoking remote applications, to packages must be shipped implementations of Specification to communicate. SOAP is Mobile Information typically transmitted via HTTP. name just a few. with the package code. Device Profile, Personal Profile including MIDP for Sometimes referred to as Specification packages or J2EE platform include ... platform packages 37 37 platform packages are contained in the J2SE optional packages are optional are J2ME Personal such as Profiles such as MIDP Palm 1.0.3, MIDP depend on are containedin depends on required or core packages. UDDI 1.04 for Monty, and for example are ... class libraries 10 packages Universal Description, for example packages optional Profile (PP) MIDP 2.0. Personal Basis Profile libraries depends on may becomeplatform packages viathe... include Discovery, and Integration provides a way for businesses packages Specification to discover each other. Can also be used programmatically J2EE API Specification J2SE API Specification J2ME API Specification TM TM Connected Limited J2EE specific by applications to locate an Beans Swing Java regular Java 3D JavaHelp Device Configuration On handheld and application or service. A component kit that includes specific embedded devices, the Mobile Information packages expressions A set of classes A system that initial implementation provides a set of graphical Connected Device packages that are Device Profile (MIDP) user interface elements. A powerful set of text matching and used to write enables CDC such as configurations such as CLDC subsets of the J2SE of Java technology are containedin Examples include: Configuration includes a include a subset ofa contains a Swing can be used to rapidly manipulation routines supported by three-dimensional developers to equivalent: Includes the necessary addresses the software API Documents ¡avax.activation graphics applets incorporate includes specific A set of javax.ejb build applications without many programming languages. java.io tools, emulators, and needs of networked Java technology implements or applications. online help in packages that are packages that runtime environment applications running javax.servlet writing original code to subsets of the J2SE java.lang Connected Limited support common interface Perl-compatible regular applications or define basic java.util to develop and test on consumer devices javax.transaction build applications is used to and services based on web sites. equivalent: services for a Device Configuration javax.xml elements. Supports a native javax.microedition.io applets for the Java such as set-top boxes 29 Software Development J2EE Software Development Kit contains Java Web Services Developer Pack java.lang range of Card platform. and smart phones. (CLDC) API Documents look and feel on many java.util common operating systems. J2SE Software devices. is used to build ... web services 33 JCP Kits (SDKs) Includes the binary version of the J2EE Reference java.net TM Connected Device PersonalJava Implementation, plus the development tools and Development Kit java.io Java Card runs ona may include ... tools 17 Provides a framework for developing and hosting J2EE applications documentation needed to build a J2EE application. 2 java.text Configuration (CDC) that run inside web containers. The pack includes the Java APIs for The J2SE SDK includes the source code, A JVM can be are used in ... development environments 16 java.security Development optimized API Documents include ... class libraries 10 XML included in the Java XML Pack, the JavaServer Pages Standard class libraries, development tools, and J2ME Tag Library (JSTL), the Ant build tool, the Java WSDP Registry Server, for residential are used to create ... programs 24 runtime environment required to build Kit and the Tomcat Java Servlet and JavaServer Pages container. Java applications and applets. Wireless gateway servers. Java Series Java Series Java Series Toolkit 30 Java runtime environments Java virtual is instantiated by J2EE Java-enabled Java Plug-In may be enabled by a Java-enabled may be enabled by an operating system-based Java virtual machine Java Card Java virtual Java virtual J2EE Tutorials J2SE Tutorials J2ME Tutorials runs on uso runon runs on (JREs) include a machine runs on application web server TM Some browsers may be Java-enabled browser or viewer Java virtual machine A JVM can be optimized for cell phones, The J2ME Wireless virtual machine machine machine runs on runs on uso runon runs on runon runs on runs on runs on runs insidea... PDAs, and other similarly resourced devices. Toolkit includes the u n runon run on include ... packages 11 Jini because they include the Java Plug-In. A JVM can be optimized Some JVMs are server Can host EJBs, Some JVMs are optimized for various types necessary tools, are used to run ... programs 24 runs on servlets and Jini network technology provides Some users may need to download for set-top boxes. optimized for servers. Hosts EJBs, the Java Plug-In for their browsers. of laptops, workstations, and desktops. emulators, A JRE is the software environment in JSPs. one infrastructure for delivering servlets and JSPs. services in a network and for Installing the Java Plug-In will also documentation, and Acknowledgements Trademarks which programs compiled for the Java install the J2SE runtime environment. examples to develop virtual machine can run. The runtime creating spontaneous interaction Prepared for the Sun Developer Web Services Group © 2002 , Inc. All rights reserved. TM and simulate Java system comprises everything necessary to between programs that use web browser Windows SunOS HP-UX Palm OS, Windows CE, by Dubberly Design Office/Devine/Faris/Saddler. Sun, Sun Microsystems, the Sun logo, Java, the Java operating Solaris, Linux, Windows, those services. applications targeted Windows real-time operating proprietary run programs written in the Java Mac OS AIX Compaq Tru64 RTOS, Linux, Symbian OS, at cell phones, TM coffee cup logo, J2EE, J2SE, J2ME, Enterprise JavaBeans, programming language, including the HP-UX, AIX, FreeBSD Solaris systems run on Unix Alpha beOS proprietary systems pagers, PDAs, and systems (RTOS) systems Significant contributions from the following people EJB, JavaBeans, Java Card, Java Community Process,

Java virtual machine, which may be a Java other small devices. proprietary systems run on interpreter, and the platform packages. Linux RS6000 VMS made this map possible: Josh Bloch, Lisa Friendly, JCP, Javadoc, Java Embedded Server, JavaHelp, JavaServer Telematic networks Doug Kramer, Paul Pangaro, Robert Patten, Monica Pages, JSP, Java TV, Java 3D, Jini, JVM, PersonalJava,

JREs may be developed by Sun or by other 34 Irix FreeBSD TM connect computers with companies. Solaris NeXT telecommunications Pawlan, Carla Schroer, Leigh Shevchik, Alan Sommerer, Solaris, and SunOS are registered trademarks of Sun run on run on systems. Ken Tallman, and James Urquhart. Microsystems, Inc.

Thanks also to Cindy Bloch, Adam Cohn, Andrey Any errors or omissions are the responsibility of the 31 point-of-sale (POS) Java Card, subscriber network-aware specific devices (hardware) servers personal workstations televisions Dikanskiy, Larry Freeman, Dale Green, Joann Gray, authors. Comments are welcome; contact Audrey Crane systems, pagers, cell identity module (SIM) appliances, computers phones, and personal phones, and automobiles, and Cori Kaylor, Onno Kluyt, Stuart Marks, Shawn Moore, at [email protected]. digital assistants (PDAs) multi-application smart Telematic networks Chuck Mosher, Shaler Ney, Eduardo Pelegri-Llopart, cards Lori Uzzo, Brad Wetmore, and Hinkmond Wong. February 14, 2003