Java URL
Version 0.6
[Download]
[Applications]
[Status]
[FAQ]
[Architecture]
[JNLP Extensions]
[Links] [Credits]
Mission
The mission of the Java URL project is to transform the way services are
provided over the Internet.
Instead of using a browser to access clunky web applications, we can
now run a
launcher and safely run full Java
applications over the Internet. Launcher technology is integrated with browser
technology for a seamless Internet experience.
To allow launchers access to our application, we can bind it to a URL. It is
thus available to
anyone with a Java virtual machine and an Internet connection.
Launching the application is as simple
as:
- Clicking a Java link in a Java-URL-enabled web browser, such as Internet
Explorer and Netscape Navigator;
- Or, we can avoid web browsers entirely and run the lightweight Safe Network Launcher;
- Or, we can launch directly from the command line like this:
> java launch http://java.serviceprovider.com/Calendar
The application will run on our computer (or other device) just like any
other application, except that it is wrapped tightly in a secure environment
that protects our data and resources from evil.
Java is a proven technology for rapid and
secure device-neutral development, and is the strongest platform for the next
generation of Internet/intranet applications. Until now, Java has failed to
become the interface for the Internet, mainly because deployment was limited to
applets embedded in conventional web pages. Java URL breaks the applet barrier,
and brings Java to its full potential, by making deployment of Java
applications as immediate as the deployment of web applications.
The Java URL project is committed to supporting all varieties of Java, from
JDK 1.1 compliant virtual machines, to the Java 2 Platform, and even the Java 2
Platform Micro Edition. Likewise, Java URL is committed to compliance with
the JNLP
(Java Network Launching Protocol) scheme for the Java 2 Platform.
If you already have the Safe Network Launcher
installed, check out our applications index here.
More information about the mission of the project is available in an article I
wrote for JavaWorld
magazine, September 2000.
Good for Users
You are no longer confined to web browsers for accessing compelling
Internet services such as e-commerce. The Internet
sites can now behave just like any other application you run on your machine,
without requiring you to install anything.
You feel fairly safe in pointing our web browser at a web page. You know that
it can't eat up our computer and steal your data. The Safe Network Launcher
guarantees the same level of security. Whenever an invasive operation is
attempted, the launcher will ask you if you allow it. If you do, it works. If
your don't,
access is blocked. That's straightforward security that works, and opens you up
to thousands of applications on the Internet without virus paranoia and
installation woes.
Good for Service Providers
Deployment is no small issue in the Internet age. How can you get to as many
people as possible? Requiring users to install software immediately cuts down
the number of users. It also requires you to support users with installation
problems. And how will you handle an upgrade to a new version of your
application? Even in a controlled Intranet environment, deploying an application
can be a large-scale operation.
Web applications mean zero deployment. It's as easy as turning on your web
server. Anyone with a web browser can point it at your service, and upgrades are straightforward. However, web technologies, even at their most
advanced, are awkward for many applications, and are not very sexy. With Java URL, you get the
same web-style zero deployment for real applications.
Good for Developers
An application with web clients is incredibly hard to design, program, debug,
and test.
You are stuck with HTTP, an antiquated session-less and state-less protocol that requires
much trickery
to manage client-server communication. It is mostly a "pull"
technology that does not allow dynamic "pushing" of data to clients. A Java
client allows you to use connection- and transaction-oriented infrastructures,
such as CORBA, RMI and EJB.
Java applets enable these technologies, but still
lock you in the HTTP scheme. Web browsers, where Java applets live, are
notorious for inflexible security measures, that do not allow the applet to
contact its server even if the user would agree to it.
For the MMI, you are stuck with HTML, DHTML and client-side scripting. These
dictate a page-by-page user interface, with very limited windowing, no dialog boxes,
widgets, controls, etc. While creative developers can overcome these design limitations,
the real nightmare is in debugging and testing. Developing the MMI client in Java
is more flexible, and most importantly - testable. You can use "real"
GUI frameworks, such as AWT and JFC/Swing.
Java applets enable these benefits, but still
lock you in the page-by-page HTML scheme. Sure, you can open AWT and JFC/Swing
windows, but you still have that huge web browser in the background. If the user
moves to another page, the applet is killed.
Good for the Community
Because all source in the Java URL project is free, you can freely change the
code to suit your needs. However, the GNU
General Public License requires you to keep your changed version free
in the same way, so that everybody can benefit from your improvements.
Likewise, the Safe Network Launcher's user-oriented security scheme
does not require signing with special license keys, available only for a cost from
authorized license vendors. As a user, you decide whom to trust. As a developer,
if you want users to trust your software, you will need to do more than buy a
key.
Features
Smart Sandbox Security
|
Similar to the sandbox implemented by web
browsers, but with much less hassle. Users control the relationship between the
application and their computers, by bestowing "trust" on
specific behaviors of specific applications. |
Caching
|
All resources (Java code and otherwise) are cached
locally to save download time and improve performance. Applications are be able to control caching, and to perform background
downloading to the cache while
the user is doing something else. |
Background Downloading
|
Required resources are downloaded in the
background while the application is running. |
Compatibility
|
Java URL supports the Java Network Launching
Protocol (JNLP)
over HTTP. |
Updates and Version Control
|
Cached files include version information, so
new versions at the URL will automatically download, replacing older
versions in the cache. |
Partitioning
|
Each URL has its own file versions, so
different URLs running the same application in different versions can
coexist. Resources may be marked as shared across partition boundaries
to save space in the cache and download time. |
Contribution
If you feel you can help, please do. This project is my idea, and I am its
integrator and coordinator, but I do not claim ownership over it. Ownership of
software is a weird concept. If you feel grateful, prove it by sending me money. My name is
Tal Liron and you may contact me at "tliron at uchicago dot edu"
for more information. For general questions, please check the FAQ
first.
Keep in Touch
(Java and all Java-based marks are trademarks
or registered trademarks of Sun Microsystems, Inc. in the U.S. and other
countries.
Tal Liron and the Java URL Project are independent of Sun Microsystems, Inc.)
(The Java URL tulip logo is a trademark of
Mother Nature, a controversial fictional entity that symbolizes our relationship
with our habitat.
You may reproduce the tulip for commercial and non-commercial purposes... for
now, until some idiot patents it.)
|