16. WWJ Architecture and Operation Application Configuration (Global) Scene Controller View Frame Controller Canvas Window Environment (Swing, SWT, etc.) Globe Tessellator Layer Model WorldWindow Cache Web Notifier (Global)
17.
18.
Editor's Notes
There ’s a difference between WWJ and the current crop of Earth browsers. I’ll make that clear. Will show some examples that would be hard to do without WWJ. Introduce WWJ ’s major features. Describe the architecture, which is something you need to understand to use WWJ, but is simple. Show how to build a WWJ application and a WWJ applet. Show how to deploy it with Java Web Start or in a web browser. Where to find more information and help.
These kinds. Point to each and say what it is All these applications are using WWJ. Some of them are applets. They include appliclations for Simulation Analysis Organization Fun Most of them could not be done without WWJ There are many more WWJ applications than these, some we know about and some we know we ’re not supposed to know about.
Earth browsing is mostly done today in a few well-known stand-alone applications, in particular, GE and MS Virtual Earth. That ’s very constraining and tremendously limits their usefulness. The original NASA World Wind provided a plug-in capability, which helped a lot, but it is still someone else ’s application. We decided to flip things around, and create WWJ plug-in. Instead of plugging your logic into someone else ’s program, you plug the world into your own application. WWJ provides applications with an interactive 3D Earth context. It takes care of the hard problems: - Terrain generation - Surface imagery - Getting the right information from the server when it ’s needed - All the tricks necessary to make all this happen very quickly - Viewing and selection - The data and the servers to provide it And you get all this in a component as simple to plug in as a Jbutton. That ’s free and open-source. Big Point: WWJ is not an application. It ’s intended to be a piece of many applications. What kind of applications? … next slide…
Early on we decided that we ’d be as platform neutral as possible. A particular consideration was being able to fit into application frameworks. Here you see WWJ as a component in an Eclipse Rich Client Platform application. People are using WWJ in Swing apps and in Eclipse SWT apps.
Another early goal was that we produce a tool that can run in a web-browser application. Here you see two applets that I ’ll demonstrate later. Both are applets with a WWJ window and driven by Javascript. We have begun implementing a Javascript interface to WWJ.
It ’s not just pretty pictures either. People are doing serious stuff with WWJ and expect a professional product. I don ’t know what this application is doing, but it certainly looks serious. This is the app ’s own imagery, by the way. Not something that WWJ provides.
Up to now I ’ve talked about the WWJ client. But over half the story takes place on the other side of the wire. WWJ is served from NASA Ames Research Center, just down the peninsula. Mention Sun ’s new support of us on network.com Introduce Rick to talk about the server-side
Now I ’d like to show you what it looks like inside the client. Let me first say that every component you see, and many of those you don ’t, are fully replaceable by the application. A fundamental requirement of WWJ is that portions can be subclassed or replaced to satisfy specific app purposes. From the application ’s point of view, it all starts with a WorldWindow, which encapsulates the WWJ component and its canvas Think of a WorldWindow as you would a drawing canvas, or a Swing text pane It ’s a single component with a lot of built-in functionality The other main objects the app works with are: Globe, which represents the planet ’s geometry, including elevations Layers, which determine what gets seen -- what gets drawn on the geometry Examples are surface imagery, placenames, icons, tracks, lines, polygons The typical application creates a window, defines the layers it wants presented, then just lets it all happen. It can listen for events from WWJ that tell it when something was picked or some other useful event occurred. Other objects exposed but not requiring application intervention are: View, maps user actions into viewing changes SceneController, weaves the globe, layers and view together and manages the drawing Configuration, holds the zillion parameters that control which layers are initially created, terrain precision, etc. Objects not normally addressed directly by the application: RetrievalService (not shown), manages all data retrieval from servers Tessellator, computes the globe geometry, can be done several ways