A Fresh Face for the Web

Beta PreRelease
February 27, 2007

Copyright©2007 by Oaesys Corporation.
All rights reserved.
Written by Jay Vilhena.

 

1

Welcome to Ironbox

2009 UPDATE: We have a new version of Ironbox with enhanced features, an improved API, and support for all common browsers. However, this on-line demo is still the best introduction to Ironbox, so please read on and explore. If you are a developer interested in using Ironbox for your projects, please send an e-mail to jayb2 at ironbox.com for more information. Thank you for visiting our site.

Ironbox is a front-end platform to help build and deploy Web applications. It is also a Graphical User Interface (GUI) that hosts Web applications in a desktop environment entirely contained within and run by a browser. This is the Ironbox desktop.

Ironbox is inspired by the "ThinClient/Browser/Web" architecture model for running applications. It provides a rich interface and client-computing environment for applications and has built-in support to communicate with one or many servers. It supports everything AJAX, Web 2.0, and beyond. Under the hood, there's only pure JavaScript and the DOM. No browser extensions of any kind are required.

This website itself is built with Ironbox. Our goal here is to introduce you to Ironbox by explaining what it is and by letting you experience firsthand the basic features of the interface.

On the next page, we'll start with a quick tour, then we'll introduce more features as we go. We recommend that you follow along through this introduction before exploring and testing on your own.

Also, please keep in mind that this is an early beta release, so you may encounter some glitches. While there's already plenty to feast upon, this is only the beginning of what we have planned for Ironbox. Turn the page and enjoy the ride.

2

Power Boxes

OK, as you've noticed, you're reading this inside what looks like a good old window. Except that it's not actually a window. We call this a “box” - to distinguish it from actual browser windows. If you've read along so far without poking around, you should have two of these boxes in your browser window (Ironbox desktop).

But these aren't like the stuck-in-the-mud boxes you're used to seeing inside browsers. Go ahead, click and drag them around by their title bar... cool, huh? There's more. Click and drag the lower right corner (or the right or bottom edges) to resize. Don't click the blue x just yet, but go ahead and experiment with the size-up and size-down controls, which are the little green arrows in the title bar of each box.

Note that the green arrows do not mean maximize and minimize directly. They mean "go up or down to the next size state." Also, if you minimize a box, you can still inspect its contents by dragging the bottom right corner, but you must click the up arrow to get the box back to its previous free state.

3

Tray of Tricks

If you've maximized either the About box (the one with the Ironbox logo) or this one, click the size-down arrow so that both boxes are back to free floating as they were at the beginning. Above the boxes and parked at the top of the browser window, there's the Tray, which is a bar with some icons. The tray is sort of a command center for the user to manage the Ironbox interface.

Near the right end of the Tray, locate this icon and click on it. A Bubble appears. Bubbles are less-fancy boxes used in Ironbox mostly as alert windows and menus, including multi-level menus. Although simple, bubbles can still have round corners and other decoration.

The menu you just opened lets you pick a chroma (aka color scheme) for your Ironbox interface. A chroma controls colors, blends, icons, sizes, borders, shadings, and pretty much everything visible in the interface except the contents of the boxes which are controlled by the application owning the box.

OK, go ahead and check out each of the chromas listed. Pick the one you like best.

Good choice! Now, back to the Tray. Click in the middle of the Tray and drag it downward then left all the way to the left edge of the browser window, until the mouse pointer hits the edge, then let go. How about that? Try the right side of the browser too. Sorry, there's no support for snapping to the bottom. But... you can snap the Tray back to the top, then pull it free and park it anywhere, including next to the bottom. And... you can resize the Tray width by clicking on and dragging its right edge.

Note: In this version, chroma setting is disabled when the Tray is in any position other than the top. Other features may also work less reliably. So make certain the tray has snapped back to the top edge (not just parked near it) as you continue this tour.

4

Web Apps Rule

Hey, this is all very cool, but it means nothing without a purpose. In Ironbox, the purpose is to run Web Applications. From a user point-of-view, installing an application in an Ironbox environment is a simple one-click process. Hello thin-client computing! Goodbye IT desktop management headaches.

Let's do it now! Locate this icon in the Tray. It calls the Application Installer (or AppInstall). Click the icon, and you'll see a menu of the applications available for installation. Select "Hello World" and "funGrid" -- leave the other two alone for now, let's walk before we run. Click the Update button.

(Note: The Help button does nothing in this demo. Also, AppInstall is designed to both install and remove applications, but only install is supported in this release.)

Ironbox contacts the application server, downloads each application selected, and installs it in your Ironbox desktop. You should now have two shinning new icons in your Tray.

Click the smile icon to open the “Hello World” application. This is an example of a single-box application. All it does is write “Hello World” when you click the “Click Me” line.

Ironbox applications can have single or multiple boxes. Click the grid icon to open funGrid. It is a multi-box application. It has its own Instructions if you want to play with it.

5

More Tray Tricks

By now you should have four or five open boxes on your Ironbox desktop. So let's see what else can be done with them. Locate the views icon on the Tray and click it. The open menu gives you several options to arrange the boxes on your desktop. Try them all, then choose Free again to get back to the original arrangement. You can play with the different views later and discover for yourself the difference between Tile and Knit. Let's keep going with the tour for now.

Bring the About box (that contains the Ironbox logo) to the front, then click the blue x on its title bar. Puff, gone! OK, you can bring the box back by clicking the red square icon on the Tray. So, this is how it works: you can close any box at any time, but every box is associated with an icon on the Tray. Click that icon, and the box comes back. In the case of applications, an icon can be associated with multiple boxes, so clicking their icon opens them all. If you close the box that contains this text, you can reopen it with this icon. Go ahead and experiment with opening and closing boxes.

If your Tray is not currently at the top, move it there. Certainly you've already noticed that there's a clock ticking on the left side of the Tray. That's a Tray App also known as a Ticker. Any number of Tickers (as long as they fit) can be added to the Tray, lined up from left to right. An Ironbox developer can make any application a Ticker so long as the final result is a continually updating string (or icon, actually). Tickers may exist only locally, like this clock, or they may update themselves from the Web, such as stock tickers.

6

And More Web Apps

Alright, we've so far installed a couple of simple Web applications that were written specifically for Ironbox. Dandy! But we'd like to have more useful (i.e., complex) Web apps. We'd certainly love to see folks start writing fancy apps for Ironbox, but the platform does support more than its own native apps.

Ironbox is designed to play nice with generic Web applications. Most Web applications can be ported to or adapted to Ironbox with little effort – usually without any modification to the app, just the addition of a couple of initiation files so Ironbox can link the app to its internal structure.

To showcase this, we've done a quick port of FCKeditor and of Yahoo Maps, two popular Web applications. The ports still need fine tuning, so you may encounter some glitches, but otherwise they should work fine. (Release Notes: 1. To bring these apps' boxes to the front of other boxes, click their title bars. 2. This demo Yahoo Maps port is preset for the Oregon coast, but you can zoom out and zoom in somewhere else. Also, you can drag and extend the map, but it has trouble if you resize the box. 3. If you have a slower machine or slower graphics, adding these heavier apps will tax your system. If Ironbox becomes unstable, it's best to refresh the browser and start over.)

As before, use AppInstall to download and install these two applications. You may want to install them one at a time, since both will download quite a bit of code. Ironbox will download FCKeditor from our own server, but will fetch Yahoo Maps directly from Yahoo and, once installed, the application will interact with the Yahoo servers directly. This should give you an idea of the potential power and versatility of the Ironbox platform.

7

Developer Perspective

You've now completed the tour of the Ironbox interface. This page and the next ones will continue to fill you in on what Ironbox is all about. But you do not need to read these pages in sequence. Feel free to jump around using the page index above.

Ironbox is distributed for Web developers. Our intent is to supply kits that contain the platform and tutorials on how to deploy it, how to write and port applications, etc. Check the info on page 9, "Where Do I Sign Up?," for current kit availability.

By Web developers, we mean a very wide range of people, depending on your interest and desired level of involvement in Ironbox-related development. Here's a list of some of the types of projects you might consider:

Building an Ironbox-based Website. This is the lowest level. Your only skill requirements are knowing how to build Web pages in HTML and how to place them in a Web server. You'll need one or more icons to represent your pages in the Ironbox interface. Just edit a couple of Ironbox configuration files, place the Ironbox files and your pages in the Web server, and that's it. Your website will now look similar to ironbox.com, except that your pages are the applications. Later, we'll have ready-to-add apps that you can download to provide extra features to your site visitors.

Designing Chromas. Everything in the Ironbox interface is programmable and modifiable. From the colors to the design and look of the boxes, the size and placement of the tray, the icons, everything. If you have a highly customized look in mind, JavaScript programming might be needed, but for 99% of the cases, you simply create a custom chroma. A chroma is a small file that describes the interface design. You will need to supply icons and small bitmap files to paint things with, so artistic skill is important here.

Creating or Porting Generic Web Apps. By “generic” we mean that the app is not Ironbox-aware because it does not call any Ironbox API's. In general, any app that can run inside a div or an iframe without modifying any parent HTML elements can be hosted by Ironbox. Such apps can be installed and displayed like a regular Ironbox app. They may connect to the Web on their own and transfer XML or other data.

Creating Web Apps for Ironbox. These would be JavaScript applications specifically written to run inside Ironbox. These applications are simpler to write because they can take advantage of browser-independent Ironbox API's to build things, use Ironbox facilities to communicate with one or many Web servers, and use other functions from the Ironbox library. Consider this code:

	var ibox1 = ironbox.makeBox([300, 220], 'PhotoView', 'test1');
	ibox1.view.style.paddingTop = '10px';
	ibox1.view.style.textAlign = 'center';
	var img1 = ibox1.addImage('pix/WSKayak31.jpg');
	img1.style.width = '95%';
	img1.style.height = '95%';
	ibox1.seeMe(true);

Click here to run this code. As you see, just these few lines of code can create a smart box from nothing and load an image from the Web into it. Note how CSS style commands still work in the usual way. Had we defined a class in CSS, we could have shorten the above code by removing the style lines. Also, the seeMe() call could be delayed until some later event (by default boxes are hidden when first created).

Note: Ironbox does not use or require XML files or XML data. The native data format is JSON (JavaScript Object Notation). But your apps are free to use whatever data format you wish when communicating with servers.

Building Web Application Server Sites. This is the advanced version of “Building an Ironbox-based Website.” The goal here is to create websites that visitors access to run applications, typically so that they can produce work, not just look at stuff on-line. It could be a private site that an enterprise's workers use to access a database or a public site that offers access to various on-line applications. You and/or your team need all-of-the-above skills, but you may also need to integrate what we call the Server Component. A Server Component fulfills requests from apps running in Ironbox. For some apps, like Yahoo Maps, you simply tap into an existing service, but if you're providing custom services, or complex applications, you'll likely need your own Server Component. You can build it with Perl, PHP, Rails, .Net, or whatever other server environment strikes your fancy.

Building Website Operating Systems (WebsiteOS's). And this is the super-advanced version of “Building an Ironbox-based Website.” What we call a WebsiteOS, or WOS, consists of Ironbox paired with an advanced, app-aware Server Component. As we see it, a WebsiteOS will go beyond the traditional website concept to become a server-based platform, a virtual operating system of sorts, accessible through one or more domain names. In this scenario, the Server Component fulfills requests from Ironbox apps, accesses databases, stores apps for distribution, keeps track of accounts such as who has what rights to what apps and data, and serves customized versions of Ironbox itself. A WebsiteOS implementation can target a specific industry or set of applications, or it can be for general purpose. Anyone with the right skills can build a WebsiteOS, either for their own use or to offer as a platform for others to deploy.

8

Real-World Ironbox

This section attempts to give you some mental imagery of situations that real-life deployments of Ironbox might produce. These are just a few hypothetical stories, but they do represent areas that are good candidates for Ironbox deployment.

IT Department. Larry manages the IT department of a midsize company. They have 320 computer stations. 47 employees work with drawing programs, page layout, or image editing software. Another 21 are either in-house software developers or have very specific hardware requirements. The remaining 252 mostly look up company data, update the database, write letters, or fill-out various forms. These 252 had aging PCs. They were a maintenance nightmare and they all needed to be replaced. Larry had just read about Ironbox. After some research, he decided to replace the 252 PCs with much less expensive and a-breeze-to-maintain thin clients. These clients don't even have hard drives but do have good graphics performance. They sure can run Firefox fast. Larry had his developers install Ironbox on the company's main server. Eric, his resident JavaScript whiz, wrote some Ironbox apps to look up data from the company database. The apps just called some PHP routines they already had, so it was pretty easy to do. They also found an open-source, letter-writing Web app on-line, and tweaked it a bit so it also worked as an Ironbox app. Reproducing in HTML the company's fill-out forms, which formally ran in some archaic software, took a bit more work, but Paulo, their layout design guy, is in love with CSS, so for him it was a treat. With the help of a couple of Larry's other guys, they made this cool Ironbox app that lets users pick the form they want to fill out and automatically knows which users use what set of forms. And, get this, Eric wrote this little script that modifies what shows up in the Ironbox AppInstall list based on who is using the interface. They also made some changes to one of the chromas, so Ironbox comes up with the company colors and logo. The employees love their new clean interface and sharp flat-panel monitors. OK, a couple of them are disgruntled because they can no longer install their own apps like they could in their old PCs. But that's music to Larry's ears.

Work On-Line Site. Deena had this cool idea about a website where people could go to do everyday tasks. Like keeping track of birthdays, or addresses, or recipes, or to-do lists. Maybe write a letter or two, or print labels for the family reunion invites. No, this would not be a site where you publish a blog that you share. More like a private workspace that you access when you log in. Yeah, yeah, you can already do all those things on your PC. But what about when you are at work during your lunch break? Or at grandma's house? Or at the airport Starbucks waiting for your next flight? Or on vacation? Wouldn't it be cool to access your private desktop from anywhere through the Web without having to lug around your own computer? But how do you do that? How do you integrate all those little applications into a webpage and still have it look clean and simple? (Hint! Hint! Use Ironbox.)

Science Lab. Walter, aka Dr. Karlson, runs a pretty intense operation these days. His lab has all this genetic code to sequence, then his team needs to evaluate a bunch of models and see if they can be used with the data. Plus there's all those simulations that need to be run on the remote supercomputer. They've got a pile of software to help analyze all this stuff. Scientific apps they've picked up here and there, mostly open-source stuff that runs on Linux. Few of these apps have a graphical interface. You type in the commands and you get the answers: a bunch of mumbo jumbo that looks like the result of an MS-DOS dir command. Hey, what do you expect? This is a science lab, not Elle magazine! Well, apparently Trish, the new software support brain, thinks otherwise. She says software should not be ugly, and all these programs need to be integrated into a common front end. She's got something called Ironbox for the interface. And she's writing some sort of Perl script that she says will coordinate execution of the various scientific programs that she's setting up to run on the server. Each program will have a corresponding JavaScript app within Ironbox that serves as the user interface. Each app calls its Linux program via the Perl coordinator and the results are displayed back through the Ironbox interface. Trish says Mozilla has a new HTML tag called 'canvas' that will allow her to create fancy graphics to display in these Ironbox apps as well. Hmmm... sounds pretty good to me.

9

Where Do I Sign Up?

We're thrilled that you're already reaching for the phone to ask your finance department to cut us a check for $50,000. But you can take your hand off the receiver now. Ironbox is free.

Free as in freedom to get the code without paying us a dime. Free as in freedom to install Ironbox wherever you want, as often as you want, without paying us license fees. Free as in freedom to distribute it with your own product without paying us royalties.

OK, there are a couple of restrictions, so technically it's not open source in the traditional sense. Basically, you're not allowed to distribute modified versions of our code. This is to prevent branching, a common problem in open source. But it's OK to modify the code for internal use in your enterprise. It's also OK to distribute our code along with your own JavaScript files that override parts of what our code does. So, in a sense, you can still distribute your functionally modified version, you just can't modify our source files for distribution.

Also, you must keep our copyright notices in the code intact and note somewhere that your product is built with Ironbox. More details are included with the download files.

10

Security

So we've got this Ironbox thing running as a platform-in-a-browser. Then any user is able to download apps from anywhere and install them on his or her Ironbox desktop. Big security hole, right?

Not really. Had we designed Ironbox so users could install any app that they find on the Web, then yes, the security risk would be enormous. Ironbox folds apps into its own DOM tree and, for maximum power and versatility, allows the apps to communicate not only with any server out there but also openly with each other. So, a rogue app could instruct your database interface app to fetch some sensitive data and pass it along. To prevent this, we've made sure that no app can be installed unless it is cleared by the server administrator.

This works through AppInstall. Recall that to install an app, it must already be listed in AppInstall. A server administrator or WebsiteOS administrator must first make these apps available at the Ironbox host website. So, the idea is that the administrator will screen and test apps (and their source domains) before making them available. And to make them available, each app's 'ini' file needs to be installed at the Ironbox host site even in the case that the app itself will be loaded from elsewhere on the Web.

The list that shows up in AppInstall is controlled by one of Ironbox's ini files. Server logic can manipulate how Ironbox receives this file, delivering different app lists to different users, based on their preferences, access privileges, etc. Thus, access to Web apps deployed on the server can be as secure as necessary by installing your choice of authentication software.

We think that Ironbox represents a rather secure solution to many situations, since it does away with the multiple vulnerabilities pertinent to individual PC desktops. If the host server is secure, you'll probably end up with a very secure environment. However, at this point, Ironbox is not field-proven, so we can't say for sure what the vulnerabilities are. We certainly welcome your comments in this area.

11

Support and Services

OK, this is the part where we hope to make a little extra money. We're giving away our precious code for nothing, but at some point some of you will come back and ask us for support. Like, what's the best way to integrate some legacy app with Ironbox. Or maybe you need some custom coding. Or your team is in the middle of an Ironbox project and they got stuck. We'll come and help... for a fee. And we'll be super dedicated and provide the greatest service and support ever, as if the food on our tables depended on it. Because it does. And that's good news for you. When you embrace the Ironbox concept, you get the direct support of our company as well as the support of the wide community that we hope to create.

Effective immediately, we're offering the following paid services:

  • Telephone or e-mail consultation regarding general information about Ironbox
  • Telephone or e-mail consultation on how Ironbox can help your particular IT situation
  • Telephone or e-mail technical support for developers working on Ironbox projects
  • Custom app development or conversion of existing apps to Ironbox
  • On-site project evaluation (for projects integrating Ironbox)
  • On-site support and consulting for teams working on Ironbox-related projects
  • On-site seminars introducing Ironbox, its features, and how it can fit in your enterprise
  • On-site technical seminars on how to deploy Ironbox and how to program to the API

More services will be added as we are able to provide them. We'll also be promoting the services of our partners to widen your choices. If you are interested in any of the above services, please e-mail us at supportB1@ironbox.com for more information and rates.

12

Partners and Investors

In the world of Internet-based applications, Ironbox is but one piece of a large, evolving puzzle. We intend to do our best to help support and publicize a community of partners offering Ironbox-related solutions. There are many opportunities for new ventures by packaging Ironbox with your own offerings. If you are looking for products to develop, services to provide, or technologies to support, here are some ideas:

Thin-Client Hardware
The idea of thin clients lost momentum a few years back, but we continue to see this as holding big potential for the future. Thin clients are great companion products for Ironbox. If you're in a position to design and/or manufacture hardware, here's what we'd like to see in a thin client:

  • Priced under $500 and preferably under $300
  • Small footprint (small box or built into monitor)
  • No mechanical drives or fans of any kind
  • Fast graphics (definitely do not skimp on the graphics!)
  • USB and FireWire ports
  • Local OS and Browser residing in a swappable memory card (are we dreaming or what?)

Web Applications
We'd like to see lots of apps. The more the better. The better the quality, the better too. Web Apps that can run inside Ironbox come in many forms. Here are some options of how you can get involved:

  • If you already built a Web app, then you can port it over by writing the interface files for Ironbox. This is an easy process, and then you can offer your product as an application for Ironbox as well as continue to offer it as a generic app. (You could also port existing open-source Web apps even if they're not your own.)

  • Write new applications. Since Ironbox already takes care of most of the interface for you, you skip the drudgery of having to design a pretty interface or a clever website to present your app. If you're a code-and-logic dude or a team with few artistic skills, this is your ticket.

  • Make mashups. So you got this great idea that combines services from various Web sources, but you are not sure how to package the whole shebang? Simple. Write the logic that combines the services, then package the whole thing as an Ironbox app.

Remember, Ironbox apps can be server-based, using Ironbox as a front-end, or they can reside and execute entirely in the browser, or they can be various combinations of the two. So there are opportunities to match your skill pool. And it's your decision on whether to offer your products for free or for a fee.

User Interface Artistry
Do you like to design buttons, icons, and GUI's? Perhaps you could make a business out of designing chromas for Ironbox. No programming is required, just your artistic and graphic design skills. You could specialize in building custom designs for clients, or simply place your chroma portfolio on-line so folks can download their picks either for free or for a fee.

WebsiteOS's and WebOS's
Heard the buzz about Web Operating Systems? (Or, as we prefer to call them, Website Operating Systems.) Wanna build one too? Grab Ironbox, then go build your own WebOS. Yes, it's a new Web Order, so you may as well be part of it.

Enterprise Integrators and Consultants
Tired of assembling PC's? Here's a new business for you. Provide custom solutions for the enterprise by integrating thin clients, Ironbox, Web apps, and a server or two. Yes, we still have some work ahead of us to make certain that all this stuff is stable and dependable, but the advantages are clear.

Venture Capitalists
Ah! You don't want to work on any of the above, but you still want a piece of the Ironbox action. And you got money burning holes in your pockets to entice us? OK, we'll bite. If you have cash to burn, let's talk. Send an e-mail to jayB1@ironbox.com clearly explaining who you are (on-line refs would be great) and why you are reading this when you could be buying condos in Fiji.

Previous
Next