Home

Architecture

WebApps

Database

Administration

Web Search

News

Java Servers

Web Services

Enterprise

Learning

Contact Us

Java - EJB - J2EE -Servlets- JSP - JMS - JNDI- JDBC - RMI

Java Skyline:Learning

"They also surf, who only sit and web."

Introduction to Java Servers

Welcome to the Java Skyline Learning Resource Center. From here, you can go everywhere... For easy navigation (and in case you didn't realize those grey words up there like "Java" are actually links), here are the Java Server core technology sections:

If there was a FAQ for Java Skyline, this would be it. Instead, it's called "Introduction." I hope that's OK.

If you can't find the tutorial you were looking for in the Core Technology sections above, these learning centers each provide a wealth of information on aspects of Java and Java servers.


   

The Keys to the Kingdom: The main purpose of Java Skyline is to make it easy and fun for you to explore and learn Java server technology:

What is Java server technology?

Java Server technology consists of Java-based frameworks and APIs that together provide a versatile combination, capable of building many kinds of server applications that are portable and scalable.

What can it do?

Front-end servers The most visible portion of servers are the front-end Java provides server APIs for the following:

Web interaction the Servlet API and JavaServer Pages (JSP) enable building of Web front-ends that have far more capabilities than traditional CGI.

Message exchanges Java Message Services (JMS) provides message queuing services and can be used for message business-to-business (B2B) communcation or communcation between applications (A2A or EAI) JMS provides both point-to-point and publish/subscribe asynchronous message queuing.

Back-end servers built with Enterprise JavaBeans technology provide distributed business and transaction processing. EJB provides containers for two types of Enterprise JavaBeans, Session Beans and Entity Beans:

Session Beans provide control over interaction with users. Session Beans can be "stateless" or "stateful" (such as for shopping carts).

Entity Beans represent persistent entities (such as accounts, product inventory) that are stored in databases or in external applications.

Entity Beans can be managed by the container in what is called Container Managed Persistence (CMP), or by the bean itself in Bean Managed Persistence (BMP). Both CMP and BMP can use Object Relational Mapping Tools to map beans to database entitites.

Communication with EJB containers uses Java Naming and Directory Services (JNDI) plus Remote Method Invocation (RMI), and possibly SOAP or JMS. J2EE-branded servers supply a Deployment Tool that automates the configuration process between the front-end servers and EJB containers and between containers.

Who makes it? How can I get it?

You can get free downloads of reference implementations and open source products as well as trial or developer versions of many real-world commercial Java Servers:

The Jump Point! You can download developer-only reference implementations of J2EE. The Jump Point provide an instant guide to reference implementations. From the Jump Point, you can go to every Java server home page, JavaDoc, Download, and FAQ (plus each Java Server Core Technologies Learning page in this magazine).

Java Skyline: Java Servers This page lists commercial and open source products. The Java Servers page lists product manufacturers for Java-based Web Servlet, JSP, and EJB servers. Many of them offer free versions for developers.

Java Skyline: Database lists database drivers to major RDBMSs, ODBMSs and Object-relational mapping tools.

How can I learn it?

Learning the Java Language Learning Java can be fun. A guide to learning materials on Java itself with an emphasis on Java 2 and how to have fun while you do it.

Learning Server Core Technologies: Java Skyline: Learning pages provide learning resource and sometimes tutorial sections for each core technology:

Servlets JSP RMI CORBA JMS
JDBC   EJB JNDI  

Java Server Learning Centers contains a list of major learning centers around the Web that provide tutorials and examples where you can learn about Java servers

Where can I find advanced examples and development tools to take me to the next level?

Each Core Technology Section (listed above) includes advanced tutorials and examples and specialized topics. In addition:

Java Skyline: Servlets & JSP provides tools and practical examples for servlets

Java Skyline: Enterprise provides tools and applications to help build enterprise servers.

Java Skyline: Architecture provides analysis and design tools especially for Java plus connections to major system engineering and Web-based architecture resources.

What are the industry trends and what's happenning right now!

Java Skyline: News provides the most focused, comprehensive Java server news anywhere in the world. It highlights:

  • New Articles and Tutorials about Java Servers
  • Open Source projects and products
  • Trends and Special Focuses on server technologies including Java, UML, EJB, B2B, CRM, XML, Wireless
  • New API Releases
  • Announcements on Java Servers by several hundred manufacturers including by Sun, IBM, BEA, GemStone, Blue Stone, and all the other stones...
Learning contents
Introduction:
The Keys to the Kingdom
The Jump Point!
Server Learning Centers
Core Technologies:
Servlets
JSP
EJB
JDBC
RMI
JNDI
CORBA
Java Learning Centers
Java2
Hosted by

Java Server Learning Centers

If you can't find the tutorial you were looking for in the Core Technology sections above, these learning centers each provide a wealth of information on aspects of Java and Java servers.
Learning Center Description
JavaSoft/Sun: The Java Tutorial the List of J2EE Learning Materials and other learning resources (Sun) For server technology, JavaSoft/Sun provides a number of great learning resources. First, there is a List of J2EE Learning Materials. Second, there is the a separate JNDI Tutorial. Both of these are separate from "THE Java Tutorial." THE Java Tutorial itself consists of a series of trails that cover nearly every other aspect of the Java Language (except Swing which has its own Swing Tutorial). For server technology, see especially Trail: JDBC, Trail RMI, and Trail: Servlets, and Trail: Custom Networking.

And there is another separate list of jGuru courses. For some reason, the jGuru courses didn't make it as part of the Java Tutorial or into the J2EE tutorial list (Sigh... Well now you know why I made this list). The
list of jGuru Short Courses (formerly Mage Lange) appears on Sun's main tutorial page. The short courses cover EJB, RMI, CORBA, Collections, and Servlets.

Lastly but certainly not leastly, Sun provides an extensive list of
Code Samples for Java 2 with a table of contents. This by itself is a terrific learning resource. Plus it's a wonderful improvement over Java 1.1 code samples which you had to download as two huge zip files.
   
CowCatcher.Org A set of slide-based tutorials on various aspects of Java. The site is not yet complete, but does have sample lessons in several areas including a good set of lessons on Java Network programming.
Dick Baldwin Tutorials
(Austin Community College)
Expansive coverage of introductory to advanced Java plus XML, JavaScript, and Python and XML. The advanced section has detailed coverage on Servlets, Network programming, RMI, and CORBA, and security.
Roger Whitney's Courses
(San Diego State)
Excellent set of courses, lecture notes, examples and related resource links on Object Oriented technologies. See especially CS 596 which provides special focus on Java client-server technology.
Marty Hall's Web Sites: Servlet & JSP Tutorial
(Johns Hopkins)
Dr. Marty Hall of Johns Hopkins has a number of interrelated Web sites dedicated to teaching you about Java Web programming. Coverage and additional background on many aspects of servlet and JSP programming including detailed sections on sessions and cookies. Marty Hall is the author of Core Servlets and JavaServer Pages. See also the Java Programming Resource page.
Web Cornucopia(Gopalan Suresh Raj) Good tutorial coverage of Java/J2EE technologies including EJB, RMI, JNDI, JDBC, JTS, and JMS. Also has materials on COM and DCOM.Gopalan Suresh Raj is the author or co-author of several Java related books.
Java Success (GemStone) Covers EJB and J2EE development topics; Contains - among other things the J2EE How-to-Cookbook and How to Build a Really Big Distributed J2EE System Using Tools You Have Around the Office.
Cetus-Links Included among the thousands of Cetus-Links links are many Java and OO tutorials and examples and what might be the ultimate FAQ list. If you haven't been to Cetus Links yet, go.
<% Server Pages %>: JSP Links to books, articles, tutorials and other JSP resources.
Article Collections developer.iPlanet: Java Language Articles
Certification  
JCHQ and "The Java2 Certification last minute tutorial" Marcus Green One of the better known centralized resources for preparation for Java Certification exams. Marcus does reviews of WROX books, posts tutorials and mock exams, provides links for certification resources and even runs a discussion forum for his mock exam.
Whiz/@bs "Whiz/@bs" (also known as Whiz Labs) offers a very extensive set certification tests that include many technical subjects. In addition to mock certification tests on Java, and Sun Web SCWCD (JSP, Servlet) and application servers - including WebSphere and (soon) WebLogic certification, they also offer certification tests on CORBA, XML, Cisco (CCNA), Oracle (OCP), and Microsoft. They also have highly useful certification tutorial guides FAQs: an SCWCD certification guide, and a Java certification guide - which includes Marcus Green's site. Of course. They've done their homework.

Home

Architecture

Servlets and JSP

Database

Administration

Web Search

News

Java Servers

Web Services

Enterprise

Learning

Contact Us

Java - EJB - J2EE -Servlets- JSP - JMS - JNDI- JDBC - RMI

Learn: Java

Learning the Java language

What is Java?
and what makes it fun
Java is an object oriented language and of course the basis of Java servers - but it's more than that. Java is fun and learning it can be fun too. Below are some actual fun-filled learning centers where you'll find Java at the center of the fun...
Learning Center Description
For Appetteazers...  

Don't fear the OOP

Not just pretty colors. Johannes Claerbout shows you how objects can tell a story with heros and villans and damsels in distress.

The Java Ranch

When it's time to relax, hangout with the Java cowboys ... Come hear pearls of wisdom from Granny and the campfire stories... visit the saloon and see how others are doing. Greenhorns are always welcome.

To get started, head on over to the campfire and check out the three stories ending with
How my Dog learned Polymorphism. And you're ready for some more advanced development you may want to try Getting in Touch with your Inner Class.

 

 

Shlurrrpp......Java

Stays with you from your first sip of applets, til you meet up with "CAFE BABE." At Shlurrrp that doesn't actually take very long.
   

Welcome to Summer Semester CS1121!

Who said summer school was all fun and games? Glen Gardner did. At least I think he did. This page covers aspects of programming you just won't find anywhere else in the universe - like how to write unmaintainable code and that how to reach that greatest of all goals - becoming a "Hacker."
   
Look out World! Here we come...

Hello World:
Getting Started with Java

by David Reilly (Java Coffee Break)

A short simple tutorial in which you download the JDK, write and run Hello World application. Quick and easy.

Hello World - the MOVIE:
Chapter 3 from the Java Developer's Resource by Elliotte Rusty Harold

Elliotte may be the first to make the "Hello World" program into a full length feature chapter. However, his Chapter 3, uses the tiny test program to introduce basic Java syntax as well as to to show how to make Java work on different platforms - including the Mac. If you haven't downloaded the JDK yet, be sure to read Chapter 2 first.

 

 
Trying it on-line...  

Learn + Play Java (JAI)

Provides on-line, on-screen Java language lessons and source interpretation using the JAI Interpreter.
   
Steak and Potatoes...  

Thinking in Java
by Bruce Eckel (Code Guru) 

Index
Source Code

Possibly the number one on-line (and off-line) book on learning Java, Thinking in Java is an excellent resource for learning the Java language. The main page provides an index and source code downloads. (Or you can download the whole book from its various mirror sites). See bruceeckel.com for additional information.
Certification  

JCHQ and
"
The Java2 Certification last minute tutorial" Marcus Green

One of the better known centralized resources for preparation for Java Certification exams. Marcus does reviews of WROX books, posts tutorials and mock exams, provides links for certification resources and even runs a discussion forum for his mock exam.

Whiz/@bs:
Be a Certified Public Everything
(now includes WebSphere)

"Whiz/@bs" (also known as Whiz Labs) offers a very extensive set certification tests that include many technical subjects. In addition to mock certification tests on Java, and Sun Web SCWCD (JSP, Servlet) and application servers - including WebSphere and (soon) WebLogic certification, they also offer certification tests on CORBA, XML, Cisco (CCNA), Oracle (OCP), and Microsoft. They also have highly useful certification tutorial guides FAQs: an SCWCD certification guide, and a Java certification guide - which includes Marcus Green's site. Of course. They've done their homework.

 

 

Teach Yourself Java 2
in 24 Hours
!!
by Rogers Cadenhead

If Bruce's book seems too long, if you think you haven't learned enough Java yet and already don't know any other programming languages, or if you've just been looking for any excuse *not* to learn Java, this book is ideal for you! In fact, the sample Chapter 1: Becoming a Programmer is designed to discourage you from ever picking up a coding pencil.

Besides we don't use coding pencils anymore. Instead, we use the DOS Window as the special section
Using the Java Development Kit on a Windows System explains - and in the most agonizing detail I might add.

If all else fails, press the Panic Button on the main page. And if that doesn't work, consider selecting something easier to learn - from one of Rogers's other books: "Learning FrontPage 2000 in 24 hours," or "How to use the Internet, 5th edition." In any case, don't miss his contributions to the
Drudge Retort.
   

Learn Java Packages
in 21 Seconds!

Alex Chaffee

Packages are important to know about. Here's your chance, if however brief, to learn it straight from one of those jGurus: Alex Chaffee, an originator of Gamelan and creator of PurpleTech.

As a bonus, this article manages to explain classpaths as well as packages. So, if you don't know packages, it will take you only 14 more second to learn them from Alex than it did to read this entire description, so why don't you just
go read it?
Inside Sports...  
Architecture of the Java Virtual Machine Allen Holub This is a guide to what makes it all work. It's also a guide for doing your own class loading, managing your own security, understanding class file layout, reading .class files, verifying byte code. In short, if you want to break out of the matrix, here's a good place to start.
       

The Java 2 Language

Java as a second language:
Java 2 Collections

"Write it Once - Run it on Anything!"


Package:
java.util
It's a good thing they call it Java 2, because for many of us, Java is a Second Language. Unless you just started programming yesterday, you've probably already learned to use Visual Basic, or C/C++, or Perl, or xBase before you tackled Java. In fact, Java 2, the real Java language is just now being completed.

Java 2 provides highly generic frameworks for collections that include
iterators. With these tools you can both reduce code and make your programs highly adaptable. Let the world be your oyster...

Glen McClusky's
article is well worth reading, and would be worth "the price of admission," if joining the JDC actually cost you anything (which it doesn't).

After you read Glen's article, I think you'll agree that Collections sound exciting. For a good demonstration, In JavaPro's February edition 1999, Claude Duguay explains how to
use collections to create a Sort Factory.

One exciting thing about Java is that you - yes you can extend the language and make it better. In fact, that's how a lot of Java features came into existence.

Many people inspired by other languages they have used, have taken it upon themselves to provide similar features for Java. Jeff Langr is one of those people. Here's
an article where Jeff, inspired by Smalltalk, extends the ArrayList collection with a "forEachDo" method so that it automatically iterates for you.
From Sun:
o Collections from JDK 1.2 Doc by Joshua Bloch
o Using Collections with JDK 1.2 by Glen McClusky. (Requires JDC membership) Dec 7, 1998
o "That Cute Little Overview Java2 Applet"

From JavaWorld:
The battle of the container frameworks: which should you use? by Laurence Vanhelsuwé


From JavaPro
A SortFactory for the Collections API by Claude Duguay, Feb 1999.

From Doug Lea SUNY Oswego:
Overview of the collections Package

From Jeff Langr (Gamelan):
Extending the Java 2 Collections framework, Jul 2000.
Java as a second language:
Threads:

The computer may be the network -- but threads are what make the net really work


Package: java.lang

Interface:
Runnable
Threads are essential to making a server-side Java class useful. Many users will be using the your servlet, your RMI server, or other component at the same time. In server-side applications code, you can generally get by with a "one-per-user" session-related class to store dynamic information.

Tutorial: For some thread-safe examples, take a look at Putting Threads to Work by Luke Andrew Cassady-Dorion in Java Pro October 1998. (If you have a premier subscription, go here). The May 1999 JavaWorld Q&A discusses issues on thread safety.

But for general purpose operating system-like or database-like (non-applications) code you may need to protect yourself from data collisions, deadlocks and thread-race conditions. To do so, it's recommended you serialize access to certain objects and blocks of code using locking signals called
semaphores.

Fortunately, the Java language provides a number of thread and concurrency features. Java helps you to construct semaphores provides by providing
synchronization which is itself is a binary semaphore built into the JVM. The May 1999 JavaWorld Q&A presents a brief discussion of thread safety, thread racing, and synchronization.

Highly Recommended: Allen Holub has published a (so-far) 8 part series in JavaWorld on the subject of threads. Source code is included at his web site.

Highly Recommended: You may also want to get a copy of Concurrent Programming: The Java Programming Language by Professor Stephen J. Hartley, from Drexel University, . More information about the book, code examples, and course work materials from the book are available on-line (also see the book for additional information).

Highly Recommended: Doug Lea provides an on-line summary of Java concurrency features, and numerous examples as excerpts from his book Concurrent Programming in Java. He also provides a Java library called util.concurrent. The library, updated for Java 2, contains several kinds of semaphores. Doug's book takes the approach of integrating concurrent programming with design patterns. He also presents a series of concurrent design patterns. It's enough to make a system architect drool.

From Allen Holub: Allen Holub's Javaworld Articles

From JavaWorld: May 1999 Q &A: Thread Safety by Random Walk Computing

From Stephen J. Hartley at Drexel:

From Doug Lea at SUNY Oswego:

Java as a Second Language:
Reflections
dynamic programming solutions

Packages: java.lang.reflect
With the introduction of JDK 1.1, the Java language gained the reflection API and has developed important dynamic capabilities.

This handy tip from JavaWorld explains how you can implement something like dynamic messaging using reflection API. And another article in JavaWorld explains dynamic configuration.

From JavaWorld:

ClassLoader
Package:
java.lang.ClassLoader
From JavaWorld: The basics of Java class loaders, and SimpleClassLoader by Chuck McManis, Oct 1996
   


       

Learn: CORBA

         
Components:
Java - CORBA

Packages:
org.omg.CORBA
(and other org.omg packages listed on the
Java 2 Platform API page)


See also:


Java Skyline
Enterprise Resources
Highly Recommended: One great starting place for learning Java related component technology is the book Client/Server Programming with Java and CORBA 2nd Ed, by Robert Orfali and Dan Harkey. Hardly limited to CORBA, the book additionally discusses and provides easy to follow training materials for RMI, DCOM, JDBC, and EJB. Information about the book can be found at http://www.corbajava.engr.sjsu.edu.


Overview: CORBA (Common Object Request Broker) connects software components across platform through a neutral interface. The interfaces themselves are called Object Request Brokers (ORBs). The ORB takes a message from any application that can connect to it and networks it to another application.

To use CORBA, you must define an interface for the applications that will connect to it. To do this, you use the
Interface Definition Language (IDL).

CORBA is one of the major technologies supported by the
Object Management Group (OMG). Netscape made CORBA an integral part of their Netscape Enterprise Server (NES). They provide an interesting overview..

Tutorials: Sun also provides an example in its IDL Tutorial section of the Java Tutorial. To get a flavor for CORBA, you will also want to visit OMG's CORBA for Beginners site which contains a list of books and other reference material.

Debugging: This Java Tip article by Charles LeRose in Java World explains how to dynamically load testing code and test CORBA servers in their normal operating environment.
From San Jose State: New University Degree Program by Robert Orfali and Dan Harkey

From Sun:
IDL by Jim Inscore

From Object Management Group:
CORBA for Beginners

From Netscape: CORBA: Catching the next wave, June 1997

From JavaWorld:
Java Tip 73: Test your Java/CORBA
server from the inside
by Charles LeRose, May 1999