Page Compilation allows server code to be embedded in an HTML file. As
a result, web developers can make changes to the server without have to
recompile the code thus giving them the option of allowing customization of
web content from the client side. This means that developers save time
deploying the application and can focus on other things.
Page Compilation also makes using and writing Java servlets easier so
users don't have to be Java language experts to use them!
Java Web Server
Cross Platform
Java Web Server's ability to be cross platform is due to the fact that it is
written in Java. Since Java is a widely support and accepted language,
most of the platforms support any application written in Java. As a result,
Java Web Server can be used on more platforms than any other web
server can.
Java Web Server Key Features Cross Platform
Servlet API Page Compilation
Session Tracking
Administration Applet
Presentation Templates
Secure Socket Layer (SSL)
Support
Secure Area Sandboxes
Digital Signature
Access Control List
Proxy Support
System Requirements
JAR
Although JAR can be used as a general archiving
tool, the primary motivation for its development was so that Java
applets and their requisite components (.class files, images and
sounds) can be downloaded to a browser in a single HTTP
transaction, rather than opening a new connection for each
piece.This greatly improves the speed with which
an applet can be loaded onto a web page and begin functioning. The JAR format also supports
compression, which reduces the size of the file and improves download time still further.
Additionally, individual entries in a JAR file may be digitally signed by the applet author to
authenticate their origin.
Java Compatible Certfication(JCC)
100% Pure Java certification is an award bestowed upon programs that meet the criteria set
forth in this guide. Certified programs have the right to display the 100% Pure Java logo on their
software package. The logo assures customers that the program relies only on the documented
and specified Java platform, so that it will run on any computer hosting
a Java Compatible application environment. The end result is that your program delivers on the
promise of "Write Once, Run Anywhere".
Certification is the process by which you inspect your program for compliance to the standards
defined in the 100% Pure Java Cookbook, using the procedures and test tools provided by Sun.
Once your program meets the specified criteria, you submit your program along with the required
documentation to an independent certification center for inspection and approval.
Java Compatibility test process requires a senior contributor able to both develop new tests and review
and track test development by others in the security area. This is a key position for delivering the
Java Compatibility Kit (JCK), a high visibility project within Java Software and the industry.
Java Development Kit (JDK)
The Java Development Kit contains the software and tools that you need to
compile, debug, and run applets and applications that you've written using
the Java programming language. The JDK software and documentation
is free.
JDK 1.1.6
This is the latest maintenance release of the JDK Version 1.1. JDK
1.1 includes improvements over JDK 1.0. Current plans call for new
maintenance releases of JDK 1.1 at semi-regular intervals. These
releases represent ongoing support of the JDK 1.1 feature set.
JDK 1.0.2
This is the final release of JDK Version 1.0. It was released in May
1996.
JDK 1.2 Beta 4
This is a beta release of the JDK Version 1.2. JDK 1.2, which is still
under development, includes improvements over JDK 1.1.
JDBC
JavaSoft has developed a standard SQL database access interface, the
JDBC API. This API provides Java programmers with a uniform interface
to a wide range of relational databases, and provides a common base on
which higher level tools and interfaces can be built. JDBC is now a
standard part of Java and is included in the JDK.
The JDBC API defines Java classes to represent database
connections, SQL statements, result sets, database metadata,
etc. It allows a Java programmer to issue SQL statements
and process the results. JDBC is the primary API for
database access in Java.
The JDBC API is implemented via a driver manager that can
support multiple drivers connecting to different databases.
JDBC drivers can either be entirely written in Java so that
they can be downloaded as part of an applet, or they can be
implemented using native methods to bridge to existing
database access libraries.
JDBC drivers fit into one of four categories:
1.The JDBC-ODBC bridge provides JDBC access via
most ODBC drivers. Note that some ODBC binary
code and in many cases database client code must be
loaded on each client machine that uses this driver, so
this kind of driver is most appropriate on a corporate
network, or for application server code written in Java
in a 3-tier architecture.
2.A native-API partly-Java driver converts JDBC calls
into calls on the client API for Oracle, Sybase,
Informix, DB2, or other DBMS. Note that, like the
bridge driver, this style of driver requires that some
binary code be loaded on each client machine.
3.A net-protocol all-Java driver translates JDBC calls
into a DBMS-independent net protocol which is then
translated to a DBMS protocol by a server. This net
server middleware is able to connect its all Java clients
to many different databases. The specific protocol used
depends on the vendor. In general, this is the most
flexible JDBC alternative. It is likely that all vendors of
this solution will provide products suitable for Intranet
use. In order for these products to also support
Internet access they must handle the additional
requirements for security, access through firewalls, etc.,
that the Web imposes. Several vendors are adding
JDBC drivers to their existing database middleware
products.
4.A native-protocol all-Java driver converts JDBC
calls into the network protcol used by DBMSs directly.
This allows a direct call from the client machine to the
DBMS server and is a practical solution for Intranet
access. Since many of these protocols are proprietary
the database vendors themselves will be the primary
source for this style of driver. Several database
vendors have these in progress.
Java Virtual Machine (JVM)
The Java Virtual Machine is the cornerstone of Sun's Java programming language. It
is the component of the Java technology responsible for Java's cross-platform
delivery, the small size of its compiled code, and Java's ability to protect users from
malicious programs.
The Java Virtual Machine is an abstract computing machine. Like a real computing
machine, it has an instruction set and uses various memory areas. It is reasonably
common to implement a programming language using a virtual machine; the
best-known virtual machine may be the P-Code machine of UCSD Pascal.
The first prototype implementation of the Java Virtual Machine, done at Sun
Microsystems, Inc., emulated its instruction set in software on a handheld device that
resembled a contemporary Personal Digital Assistant (PDA). Sun's current Java
release, the Java Developer's Kit (JDK) version 1.0.2, emulates the Java Virtual
Machine on Win32, MacOS, and Solaris platforms. However, the Java Virtual
machine does not assume any particular implementation technology or host platform.
It is not inherently interpreted, and it may just as well be implemented by compiling
its instruction set to that of a real CPU, as for a conventional programming language.
It may also be implemented in microcode, or directly in silicon.
The Java Virtual Machine knows nothing of the Java programming language, only of
a particular file format, the class file format. A class file contains Java Virtual
Machine instructions (or bytecodes) and a symbol table, as well as other ancillary
information.
For the sake of security, the Java Virtual Machine imposes strong format and
structural constraints on the code in a class file. However, any language with
functionality that can be expressed in terms of a valid class file can be hosted by
the Java Virtual Machine. Attracted by a generally available, machine-independent
platform, implementors of other languages are turning to the Java Virtual Machine as
a delivery vehicle for their languages. In the future, we will consider bounded
extensions to the Java Virtual Machine to provide better support for other languages.
Jini Technology
The Jini project was the 1994 inspiration of Sun cofounder and vice
president Bill Joy at his Sun Aspen Smallworks R&D lab in Aspen,
Colorado. With the creation of Sun's JavaTM technology, Joy saw the
potential to leverage its power to create a ubiquitous network. The Java
application environment provides a good computing platform for distributed
computing, because both code and data can move from machine to
machine.
"The trend is very clear," says Joy. "We are moving toward a world in which
it will be possible to move software codes that act as our personal agents
between many different computers in a global network."
One of the goals of Jini technology is to make adding an electronic device to
a network as easy as plugging in the base unit of a new cordless phone. In
fact, like a cordless phone unit, devices using Jini technology have just two
cables: a power cord and a phone plug. When new wireless networks
become common, the devices won't even need the phone plug -- they'll
become services on the network simply by turning on.
Another goal is to make distributed computing --
capabilities shared among
many diverse machines across a common
network -- a near-term reality.
JIT compiler ( Just-In-Time )
In the Java programming language and environment,
a just-in-time (JIT) compiler is a program that turns Java bytecode
(a program that contains instructions that must be interpreted)
into instructions that can be sent directly to the processor. After you've
written a Java program,
the source language statements are compiled by the Java
compiler into bytecode rather than into code that contains
instructions that match a particular hardware platform's processor
(for example, an Intel Pentium microprocessor or an IBM
System/390 processor).
The bytecode is platform-independent code that
can be sent to any platform and run on that platform.
In the past, most programs written in any language
have had to be recompiled, and sometimes, rewritten for each computer
platform. One of the biggest advantages of Java is that you only
have to write and compile a program once.
The Java virtual machine on any platform will "translate"
the compiled bytecode into instructions understandable by the particular
processor. However, the virtual machine handles one bytecode instruction
at a time. Using the optional Java just-in-time compiler
(really a second compiler) at the particular system platform compiles
the bytecode into the particular system code
(as though the program had been compiled initially on that platform).
Once the code has been (re-)compiled by the JIT compiler, it will usually
run more quickly in the computer.
Compiler is actually a traditional compiler that runs on-the-fly.
JITs do not have time to perform much optimization Low-level (C-like)
code and method invocations run much faster All the other problems remain
Java Naming abd Directory Interface(JNDI)
JNDI is a Java Standard
Extension, providing Java applications with a unified interface
to multiple naming and directory services in the enterprise. As
part of the Java Enterprise API set, JNDI enables seamless
connectivity to heterogeneous enterprise naming and directory
services. Developers can now build powerful and portable
directory-enabled applications using this industry standard.
The Java Naming and Directory Interface (JNDI) is an API
specified in the Java programming language. It provides naming and
directory functionality to applications written in the Java programming
language. The JNDI is defined to be independent of any specific
directory service implementation. Thus, a variety of directories--new,
emerging, and already deployed ones--can be accessed in a common
way.
The JNDI architecture consists of an API (Application Programming
Interface) and an SPI (Service Provider Interface). Java applications
use the JNDI API to access a variety of naming and directory services.
The JNDI SPI enables a variety of naming and directory services to be
plugged in transparently, allowing the Java application using the JNDI
API to access their services.
JNI
Java Native Interface is a standard programming interface for writing Java native
methods and embedding the Java virtual machine into native applications. The
primary goal is binary compatibility of native method libraries across all Java virtual
machine implementations on a given platform.
JDK 1.2 extends the Java Native Interface (JNI) to incorporate new features in the
Java platform. The changes are driven by licensee and user comments.
You must declare all methods, whether Java programming language
methods or native methods, within a Java programming language class.
When you write a method implementation in a programming language
other than the Java programming language, you must include the
keyword native as part of the method's definition within the Java
programming language class. The native keyword signals to the Java
compiler that the function is a native language function.
JMAPI
The Java Management API (JMAPI) is a collection of
Java language classes and interfaces that allow
developers to more easily build system, network,
and service management applications that solve management problems.
The Managed Object Server is the mechanism that provides active
instantiated management objects to applications.
It includes the agent object interfaces, SNMP agent interfaces,
managed data interfaces, Java database connectivity (JDBC) interfaces,
a database, and an HTTP server.