Ay Marimba!

Rohit Khare (khare@w3.org)
Mon, 7 Oct 1996 10:06:15 -0400


So Marimba finally lifts its skirts on the product line... an IB-clone an=
d
a cache manager. At least Adam and Ernie will recognize this irony... RK

http://www.marimba.com/products/bongo.html
http://www.marimba.com/products/castanet.html

Once again, Kim Polese earns my dropped-jaw astonishment at her ability t=
o
invent 4th-party ready marketing/monikering schemes. Cast-a-net. Wow!

RK

---------------------------------------------------------

<Picture>
<Picture>
Overview=20

<Picture>Marimba's Castanet system fulfills a promise made by applets and
Web browsers: distributing up-to-date self-installing software and data
across companies and continents.=20

Castanet channels (applications and their data) observe the security of
applets while improving on applets in several ways. Although channels are
automatically distributed and installed like applets, they appear to user=
s
more like applications. Stored on the client disk, channels start fast, a=
nd
run smoothly and reliably--whether the computer is <Picture> connected to=
a
network or not. Channel user interfaces are not constrained by Web page o=
r
browser limitations; channels can provide multi-window, multimedia user
experiences of the highest quality. Channels can create and maintain
persistent data, such as documents and preferences, and can communicate
data, such as usage patterns, back to their servers.=20

Running on a client machine, a Castanet tuner cooperates across the
Internet or an intranet with a Castanet tuner running on a server. The
result is mirrored channel files on the client: channels that are always
complete, current, and self-consistent. Tuners can install new versions o=
f
a channel's files while the current version is running; for example, a
sports scoreboard channel can receive new scores every few minutes. For
maximum efficiency, channels are _differentially_ updated: only modified
files are sent by transmitters to tuners, and all files are sent in a
single TCP connection. Because only a small percentage of a typical
channel's files change, updates can be frequent and fast.=20

Castanet repeaters and proxies make channel distribution scalable from
hundreds to millions of users, and ensure that tuners inside a firewall a=
re
served as well as those outside.=20

More Than Downloading=20

Although the main thrust of the Castanet design is downloading channel
files to client computers, channels can also send feedback data to their
servers. The data is sent by tuners in channel update requests.
Transmitters pass the data to channel-specific plug-ins, which can analyz=
e
it and respond to it by selecting or altering the files the transmitter
returns. For example, if a channel feeds back its user's preferred
language, a plug-in can select German files for German speakers, and
Japanese for Japanese. If a child provides a channel with his or her
birthdate, the plug-in include a birthday greeting with the day's files.=20

Perfect For Portables=20

Travelling computer users soon find that they can't practically use an
applet without a network connection. Channels, by contrast, work like
applications. Before a trip, connect to the net and update your channels,
including the expense reporter channel. Disconnect and depart. Enter
expenses as you accrue them; the expense reporter can save them on disk.
Reconnect again when you return, and the expense reporter transfers the
stored expense items to the corporate database. If you have a network
connection on the road, update the price list, or the order entry channel
at any time.=20

Firewall Safety With Caching Speed And Feedback=20

Castanet proxies run on corporate firewall machines, acting much like
caching HTTP proxies with an important difference. Castanet proxies pass
update requests through the firewall and on to the transmitter. In this
way, Castanet proxies keep transmitter plug-ins "in the loop," returning
exactly the same feedbac data whether channels are running on machines
inside or outside a firewall. And by caching files received from
transmitters, Castanet proxies minimize the load on firewall machines.=20

Scaling Up To Millions Of Users=20

Castanet repeaters are self-updating transmitters that can be sited
wherever the Internet reaches to provide fast local response with no
administrative cost. Like tuners, repeaters subscribe to channels on
transmitters, and periodically poll transmitters for updates. In turn,
repeaters serve channels to tuners. Because a transmitter can serve
hundreds of repeaters, repeaters provide immense scaling potential, not
only adding capacity, but putting it close to users where it does the mos=
t
good.=20

Reliable Hot Updates=20

Both transmitters and tuners can be updated on the fly without interrupti=
ng
or even noticeably slowing service. When a new version of a channel is
created on a server, the transmitter switches to the new version new tune=
r
and repeater connections. But it continues to use the old version for
existing connections. The transmitter update is performed as a transactio=
n,
guaranteeing that installed versions are complete and consistent. Channel=
s
running on clients can also be hot-updated, permitting channels to load
fresh data files on the fly. Client updates are also protected by
transactions to ensure that users always have self-consistent channel
versions--something that can't be said for applets.=20

Castanet Component Summary=20

Channels=20

Collections of code and data/content that are downloaded like applets, bu=
t
that look and operate like real applications. Especially appropriate for
applications whose content changes frequently or for which automated
feedback from users is important. Channels in Release 1 run on Windows 95=
,
Windows NT 4.0, and Solaris 2.x. The Macintosh will be supported in the
future.=20

Transmitters=20

Serve versions of channel files to tuners and repeaters, sending only
modified files (differential updating). Extensible by per-channel plug-in=
s.
Release 1 transmitters are available for Windows 95, Windows NT 4.0, and
Solaris 2.x. The Macintosh will be supported in the future.=20

Tuners=20

Small client-resident programs that obtain and install original and updat=
ed
channel files from transmitters and store them on the client disk. Releas=
e
1 tuners will support Windows 95, Windows NT 4.0, and Solaris 2.x. The
Macintosh will be supported in the future.=20

Repeaters=20

Provide increased service capacity and local presence for transmitters
anywhere the Internet reaches. Release 1 repeaters will support Windows 9=
5,
Windows NT 4.0, and Solaris 2.x. The Macintosh will be supported in the
future.=20

Proxies=20

Firewall transparency for tuners, transmitters, and plug-ins without
overburdening firewall machines. Release 1 proxies will support Windows 9=
5,
Windows NT 4.0, and Solaris 2.x. The Macintosh will be supported in the
future.=20

The Castanet System=20

=95Automatically propagates software and content updates to hundreds or
thousands of users within an enterprise or millions around the world =95W=
orks
with corporate firewalls to ensure that channel accessibility doesn't
compromise security or overload firewall machines =95Eliminates version
management: everyone gets updates as soon as they are available =95Combin=
es
application quality and reliability for users with applet logistics for
developers =95Defines a simple channel API that is open to Java developme=
nt
tools of all kinds in Release 1, and will support other languages in late=
r
releases =95Encourages incremental development: establish initial market
presence, then follow up with automatically distributed enhancements=20

<Picture>
<Picture>Bongo=20

Overview=20

<Picture>Marimba's Bongo is an exceptionally able visual tool for designi=
ng
and implementing graphical user interfaces (GUIs) for Java applications.
Programmers, scripters, and graphics designers use Bongo to create modula=
r
interface building blocks called "presentations". Presentations are GUI
element assemblies that encourage reuse, consistency, and the division of
GUI design among the members of a development team.=20

The Bongo builder is aimed at a broader user audience than conventional G=
UI
builders: the multi-disciplinary teams that are increasingly required to
fabricate compelling media-rich applications. Professional Java programme=
rs
will find Bongo a satisfying tool. So will scripters, people whose modest
programming skills are supplemented by deep domain knowledge. Graphics
designers <Picture> will discover that, unlike conventional GUI builders,
Bongo's flexibility and generality frees, rather than hobbles, their
expressive powers. Not only does the Bongo builder support team-based
development, team members can work at any site, and on any platform that
has an Internet connection- -it's perfect for contractors, cooperative
development efforts, and far-flung organizations.=20

Organizations striving to present a consistent look and feel across their
applications and Web pages, and to reuse their investments in content, wi=
ll
find Bongo an accommodating product. Presentations can be embedded in
presentations without limit; standard presentations, such as logos and
billboards, can be entered into "warehouses" making them easily reusable
throughout an enterprise. As important, Bongo is designed as a framework
for integrating diverse user interface elements developed with tools buil=
t
for the purpose. Today, any Java applet can be dropped into a Bongo
presentation as easily as a button. Tomorrow, as container technologies
such as Java Bean mature, Bongo presentations will accept ActiveX, DLL, a=
nd
Shockwave components, among others.

Unprecedented Expressive Power

There are a lot of GUI builders out there, but none offers Bongo's richne=
ss
and flexibility. All the Java AWT widgets you'd expect are there, and qui=
te
a few you might not: styled and scrolling text, animation, audio, dynamic
outlines (trees), containers, and floating windows.=20

As important are the way Bongo's GUI elements play together. If you're
writing a story, include a drop-down list of characters--not just their
names, not just their pictures, but animations depicting them in
characteristic action. Put a list inside a list, or nearly any widget
inside nearly any other. Choose a background for a page, then draw
transparent buttons for an integrated look. They're all easy in Bongo.=20

Give your user interface multiple dimensions with Bongo folders, which ar=
e
similar to tabbed dialog boxes. Think of folders as visual subsystems. A
remote classroom application might have one folder for the current lesson=
,
one to contact the teacher, one to engage supplementary materials, anothe=
r
to join a chat session in progress. Each folder is composed of "pages",
superimposed, transparent, reusable layers that contain their own
components.=20

Engaging Multi-Talented Development Teams=20

Conventional GUI builders are aimed at skilled programmers. So is Bongo,
but it doesn't stop there. Very few programmers can create beautifully
designed applications or highly content elements are as immportant as the
code that makes all them work together. Therefore, Bongo is designed to
accommodate and focus multi-disciplinary development teams whose skills
cover the many facets of dynamic media-rich applications. Graphics
designers and human interface experts can lay out complex, multi-layer,
multi-dimension user interfaces without programming. They can also modify
the media components of dynamic applications- -adding chapters, changing
advertisements, updating news stories--without programmer help.=20

Scripters (people who are comfortable writing scripts, macros, or or even
HTML) can use Bongo as a bridge to the Java language. Because Bongo
provides the application framework, scripts that add behavior to buttons
are usually small bits of code that slot into that framework. Bongo confe=
rs
the benefits of Java without forcing scripters to learn the whole languag=
e.

Control-click on a button and its editor appears. Click the editor's Scri=
pt
tab, and the script specifying the default behavior of the button appears=
,
with color-coded syntax elements. To change the behavior, enter a few lin=
es
of Java and press Apply. The incremental compiler makes the script
executable in an instant. Press the button and it does what you want; if =
it
doesn't, change its behavior in seconds. Bongo's first scripting language
is Java, but it's designed to accommodate others in the future.=20

Taking Reuse Seriously=20

There never seems to be enough designer and developer talent. That's why
Bongo presentations are designed as containers that accept both other
presentations and other kinds of objects. Developing standard
sub-presentations and storing them in Bongo "warehouses" for corporate or
division use is an easy way to promote consistency among applications, an=
d
to reuse work that's already been done.=20

Bongo's also designed to accommodate other kinds of components, which may
be developed in house or purchased from third-party specialists. In its
initial release, Bongo allows GIF and JPEG files to be used as GUI elemen=
t
backgrounds. To add active or interactive behavior to a presentation, dro=
p
in an applet, perhaps one you've already built for a Web page.=20

Applets are today's means of extending Bongo presentations with programme=
d
components. Tomorrow, Bongo will accept components that observe the Java
Bean standard, allowing more of an application to be assembled from
off-the-shelf parts, and correspondingly less custom coding. The Bongo
architecture is ready to support other component integration technologies
as well.

Distributed Development

Not only does the Bongo builder encourage development by multi-disciplina=
ry
teams, it enables team members to work together regardless of their
geographical proximity. The only requirement for collaborating on a
Bongo-built application is an Internet connection. A master presentation
can be divided into sub-presentations which are incorporated by reference
into the master. Changes to the sub-presentations can be automatically
distributed to team members by Marimba's Castanet software distribution
system, giving all team members a current and consistent local copy of th=
e
evolving application. The Bongo builder is perfect for teams whose member=
s
work in different organizations or locales.=20

And speaking of Castanet, applications built with Bongo require no
developer effort to be distributed and updated as Castanet channels.=20

Bongo Summary=20

Presentations:

Bongo GUIs are called presentations. Presentations can be nested and
reused, and can be created, updated, and distributed over the Internet.=20

Folders:

Like tabbed dialog boxes, folders are organizers for multi-dimension user
interfaces.=20

Pages:

Superimposed, reusable layers that allow the presentation in a folder to =
be
built up like lasagne.=20

Widgets:

Unshackled from the limitations of platform window systems, Bongo comes
with a rich array of unusually configurable widgets.=20

Scripts:

Bongo automatically provides each button with a default script that staff
members with modest programming skills can easily modify to change what a
button does. Bongo automatically compiles script changes in seconds.=20

The Bongo GUI Builder=20

=95Provides the power and flexibility to create engaging media-rich Java
applications whose content may change daily or hourly.=20

=95Encourages and focuses the efforts of multi-disciplinary development
teams, regardless of where members reside. Java programmers, scripters, a=
nd
artists can all use Bongo.=20

=95Facilitates make-or-buy decisions by providing an integrating framewor=
k
for applets today, other kinds of components tomorrow.=20

=95Encourages reuse by with layered pages, widgets that can be used insid=
e of
widgets, and entire presentations that can be incorporated by reference.=20

=95Automatically creates applications that can be distributed as Castanet
channels.=20