™ Technology Concept Map

SM 2 Sun works with companies become members of the JCP by signing JSPA has a What is Java Technology? are represented on the supports the development of ... Java 0 within the context of the Java Community Process, The Java Specification Participation Programming language Java object model that is an defines 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 This diagram is a model of Java™ technology. The diagram logo owns the ... Java trademark 1 support the development of ... Java 0 agreement that allows signatories to which is is used to write ... programs 24 Class libraries are An application programming interface is the Particular to Java, Abstract classes permit child make(s) ... SDKs 29 make ... SDKs 29 become members of the JCP. explains Java technology by placing it in the context of related Java forums often discuss Java in Java developer 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 makes versions of a ... JVM 18 make versions of a ... JVM 18 Companies include Alternatively, developers can sign the syntax and of prebuilt classes piece of software interacts with the outside files that define a set of method or to create groups of 4 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 related classes for polymorphic 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. behavior. hosts Novell, Netscape, Class libraries can be software will behave, and what output it will Interfaces name methods Hewlett-Packard, 9 includes members from is based on the part of the Java provide. All computer software relies on a and set an expectation for and the connections between them. It shows how developers Apple, and BEA. alternate object-is organized by oriented programming language specification leads 5 expert groups consist of members of Java Community overseen by the Executive 8 standard – meaning variety of APIs to achieve tasks such as each method's behavior,

are led by draft As opposed to a purely procedural and do the work of the SM implementations 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 There are two programming language. superclass (parent class) abstract class (spec leads) Process (JCP) develops Committee comments on Alternate implementations are written 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

J2EE/J2SE and J2ME. contain multiple are ratified by... the define and may have enhanced features individual developers the code can work with principles provide benefits and advantages for their own or their any type of class that subclass (child class) inherits methods and properties from a

may rely on parent's on rely may may define new may override existing to Java technology. beyond the reference implementation. such as may also be a Such as the object company's use. supports the interface. 3 Java Specificationif accepted becomes a communitymay become a 6 public may become a new Java specificationis instantiated in aReference Implementation object-oriented programming language 9 definition of ... is added to 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 submitted to 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 Runtime instances of classes. security model 20 or significant revision including language, virtual A Reference Implementation is implementation 11 JCP machines, platform editions, a working example of the JSR. definition of ... Java 0 hiding, information packages 15 architecturally independent applications 19 to an existing spec. contain multiple may multiple may contain implement objects may implement with one part of the Java platform understand other parts. It profiles, and APIs. Other companies will produce may be implemented in hiding, encapsulation, ability to write higher-quality code through used can be 18 Java are runtime instances of ... classes 12 their own implementations. and polymorphism. 2 have The TCK is a suite of tests, more maintainable code relates unfamiliar technologies to ones with which developers such as are created by methods and fields 0 tools, and documentation that

features and benefits which is 7 ability to call non-Java functions Program administers the maintenance provides a standard way of serialization may already be familiar. The diagram also provides an overview testing an implementation for Java Native Interface (JNI) provides a method for calling native logo Management Office chairs the lead may request major revisions via functions such as operating system or legacy library functions. In runtime, refers to the process of Scope limits access to methods and properties. Levels include: compliance with a Java Classes are source 12 • public: can be called or manipulated freely exists within may revise specification. classes implement turning an object into a data stream for scope for developers who are new to Java technology and an code files that define has a is distinguished by 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 1 18 Architecturally dependent machines that are available may be categorized as introduction for non-programmers who want to improve their is a trademark for nearly every contemporary operating system. programming. A class Java virtual machine relates a set of data are constrained by TM (fields) and functions are distinguished by types field types can be primitives or object references ability to converse with developers. For more information, refer to ... is defined by the Java virtual machine specification (methods) that use field or class types can be... classes 12 (JVM ) visit the web site at http://java.sun.com. the data. Primitives generally enable have enables 19 architecturally independent applications Inner classes reside inside basic math or objects enable inner classes methods constructors fields define a location to store data comparison manipulate constrained by are constrained by are

another class, allowing consist of may defineare invoked required by operations. Development process One application can run in multiple environments for better organization. Methods are begins with portability Fields are Concept Maps without being rewritten or recompiled. Should not be confused detailed 15 with subclasses. sometimes 16 development environments may include 17 tools such as instructions that referred to as may consist of or on ... objects 15 The diagram takes the form of a concept map – a web of linked cause a running properties. are used to write, test, and debug enforces a 20 security model controls access to critical resources object to take ... interfaces 14 terms showing both overall structure and details. By showing Including memory and hard drive. action or 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 Just-In-Time compilation programming maps help people visualize mental models and clarify thoughts. are used to build the outline lay out is used to create compiles source code into byte code into translates problems with helps identify allows adjustment of ... Significantly improves virtual machine interface A software utility Notes that developers include to that turns human- performance by translating groups of statements declarations comments specification.

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

classes dynamic compilation is implemented as a set of ... platforms 27 for the classes, describes the graphical objects actions. determine scope. comments are processed by the tool to create documentation

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 user interface. examining the code as it runs and Comments specifically formatted to

Does not include class hierarchy, source code byte code machine instructions focusing optimization efforts on the most be processed by the Javadoc tool. defines is stored in constitute a as running ... may be thought of Downloads and documentation are 12 implementation details. and provides the 13 examples are in gray. Purple terms and purple lines indicate a available at http://java.sun.com. Is human Is platform Are processor 15 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 almost never can be read by the Java HotSpotTM virtual machine. process. Terms followed by a number link to terms preceded Selected Java products have been and properties. source code framework implements 21 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

stored in are Watching for data in memory that is no longer needed and freeing the memory for reuse. the completed processor objects by the same number. localization is one of the key factors implementation 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 contributes to when debugged, may find a testing not include implementation details. 15 Are human-readable. text files binary files implements 22 explicit error handling Usually have the are read by a run on a 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 usually have bug is trapped by a 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 support ... services 26 such as ... hardware 31 people 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, applications 28 such as ... Java technology is especially collaborating, playing, working, creating, and buying Developersmay submit or comment on a ... Java Specification Request 3 enable ... services 26 devices and selling. useful in devices that are who are members of the Java Community Process serve on ... expert groups 5 run on and connect ... devices 25 connected by a network. form ... Java developer communities 4 and the comment on a ... public draft 6 24 useful for 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, e- who are members of the JCP elect the ... executive committee 8 supports 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

TM TM TM Java 2 Platform Micro Edition is intended to run on devices TM TM 27 platforms 32 J2EE depends upon 35 J2SE is based on subsets of 39 J2ME with limited computing power, such as cell phones or PDAs. Java TV Java Embedded provide building blocks for build and run is used to build and run is used to is used to build and run is used to build and run is used to build and run TM Java 2 Platform Enterprise Edition is Java 2 Platform Standard Edition is intended to J2ME has reduced processor and memory requirements. It is Server (JES) used to build secure, scalable, run on desktops, laptops, and workstations. J2SE based on subsets of J2SE with additional components for build and run is used to distributable server-based also includes the core language packages and market segments such as hand-held devices. applications for large enterprises. classes used by J2EE and J2ME. J2EE J2SE J2ME other documentation documentation documentation documentation such as documents ... specifies and such as documents ... specifies and such as documents ... specifies and 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 composed of Services, Getting have run on are enabled by 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 built with are built with are built with the Internationalization, shaping business logic, Such as ATMs and Such as user-controlled camera Such as home services and J2EE J2SE J2ME Sound, and Java 2D. data, and processes point-of-sale services. views and video on demand. network-aware automobiles.

across a network. 32 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 built using

are built using may run inside a are built using are composed of is housed in are configured by a are run in may utilize the are can call other can be ... J2SE applets 36 provides developers with a basic run inside an defines an application must declare a Java Card applets Java TV are built using a

are built using 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. machine uses as the starting point for run in a are built using are built using can be ... J2ME applets 40 a limited application. This includes a 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 specifies what features and what features the must support, and specification for the

Java Embedded are built using run inside a

may be interpreted by a Java Card API

are composed of always directly build defines a is contained in the 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 inside an are built using and what the platform packages are.

run inside a are built using

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 built with java.lang (JMF), which is framework components. define independent pieces generate HTML, XML, element, which can be WML, XHTML, Discrete units of software runs on a 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 http Device Profile (MIDP) is one type of javacardx.crypto can call either servlets, servlets, JSPs, or EJBs. execute as servlets. be reusable components. The log Specification Guidelines, patterns, JSPs, or other EJBs. They can call other Extensible Markup JavaBeans API makes it particularly device access and code for end-to-end JSPs, servlets, or EJBs. easy for Beans to be utilized by timers applications. Language (XML) visual programming tools. (In an framework Foundation Profile Provides a structured and architecture analogy, these would Specification extensible mechanism for be prebuilt walls, windows, or Profiles are packages required organizing and presenting data. doors.) for a particular vertical J2EE Connector Connected Limited

read configurations from a 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 inside a can be a 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 be created by transactions, is contained in 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 Configuration (CDC) and data for connecting to legacy interface components, a address specific 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 Palm 1.0.3, MIDP Specification 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 packages or depend on are contained in 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 become platform packages via the ... are contained in include Discovery, and Integration Specification provides a way for businesses packages 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 Examples include: Configuration includes a include a are contained in subset of a contains a Swing can be used to 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 rapidly build applications many programming languages. java.io tools, emulators, and needs of networked Java technology implements Perl- or applications. online help in packages that are packages that runtime environment applications running javax.servlet without writing original subsets of the J2SE java.lang Connected Limited code to support common compatible regular expressions. applications or define basic java.util to develop and test on consumer devices javax.transaction is used to build applications and services based on web sites. equivalent: services for a Device Configuration javax.xml interface elements. javax.microedition.io applets for the Java such as set-top boxes 29 contains java.lang range of Card platform. and smart phones. (CLDC) API Documents Software Development J2EE Software Development Kit Java Web Services Developer Pack Supports a native look and java.util feel on many common J2SE Software devices. Includes the binary version of the J2EE Reference is used to build ... web services 33 JCP java.net Kits (SDKs) operating systems. TM Connected Device

include Implementation, plus the development tools and java.io PersonalJava Development Kit Java Card runs on a may include ... tools 17 Provides a framework for developing and hosting J2EE applications documentation needed to build a J2EE application. 2 java.text A JVM can be Configuration (CDC) are used in ... development environments 16 that run inside web containers. The pack includes the Java APIs for The J2SE SDK includes the source code, Development XML included in the Java XML Pack, the JavaServer Pages Standard java.security optimized API Documents include ... class libraries 10 class libraries, development tools, and J2ME Tag Library (JSTL), the Ant build tool, the Java WSDP Registry Server, runtime environment required to build Kit for residential are used to create ... programs 24 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 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 runs on runs on runs on

runs inside a runs on PDAs, and other similarly resourced devices. Toolkit includes the 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 Jini network technology provides Some users may need to download for set-top boxes. optimized for servers. servlets and of laptops, workstations, and desktops. emulators, Hosts EJBs, JSPs. one infrastructure for delivering the Java Plug-In for their browsers. A JRE is the software environment in servlets and JSPs. Installing the Java Plug-In will also documentation, and Trademarks which programs compiled for the Java services in a network and for Acknowledgements creating spontaneous interaction install the J2SE runtime environment. examples to develop virtual machine can run. The runtime ... 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 pagers, PDAs, and Solaris systems run on Unix Alpha beOS proprietary systems systems (RTOS) systems Significant contributions from the following people EJB, JavaBeans, Java Card, Java Community Process, run on run on Java virtual machine, which may be a Java other small devices. proprietary systems run on run on Linux RS6000 VMS run on made this map possible: Josh Bloch, Lisa Friendly, JCP, Javadoc, Java Embedded Server, JavaHelp, JavaServer interpreter, and the platform packages. Telematic networks JREs may be developed by Sun or by other Irix FreeBSD Doug Kramer, Paul Pangaro, Robert Patten, Monica Pages, JSP, Java TV, Java 3D, Jini, JVM, PersonalJava, 34 TM connect computers with companies. Solaris NeXT telecommunications Pawlan, Carla Schroer, Leigh Shevchik, Alan Solaris, and SunOS are registered trademarks of Sun run on run on systems. Sommerer, Ken Tallman, and James Urquhart. Microsystems, Inc.

31 specific devices (hardware) servers personal workstations point-of-sale (POS) Java Card, subscriber televisions network-aware Thanks also to Cindy Bloch, Adam Cohn, Andrey Any errors or omissions are the responsibility of the 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 multi- automobiles, and Cori Kaylor, Onno Kluyt, Stuart Marks, Shawn Moore, at [email protected]. digital assistants (PDAs) application smart cards Telematic networks Chuck Mosher, Shaler Ney, Eduardo Pelegri-Llopart, Lori Uzzo, Brad Wetmore, and Hinkmond Wong. February 14, 2003