Monday, July 16, 2007

The Architecture

I want to write code that implements everything I need to make the UI function. Some of that code will run on the client machine, some might run on a server. There might even be multiple servers working together to respond to the users' actions.

In a normal project, you would probably decide early on whether you will have a thin client or a full-blown application, and whether you will use an application server and a database in the background. You might decide to use a cluster of web app servers. You will decide which parts of the system will do which specific part of the work, and how the parts will communicate.

In Immersive Development, I would do all that in space.

Quite literally "behind" the UI canvas, I would at some distance create a large box that could reflect a virtual machine (e.g. a JVM). From my toolbox, I would grab a database object and place it somewhere behind that box. I now have a three-tiered architecture in place, and I can decide where to put other parts of the system by placing them in the big box or next to the UI or the database.

I need the code in each box to be able to communicate with the others, so I grab one of the CORBA elements from my toolbox and connect the UI box with the box in the middle. I can now, with my index fingers, connect the "Save" button's "OnClick" stub to some method in the business logic VM, the box in the middle.

Similarly, I can grab a JDBC driver element from the toolbox and use it to connect the business logic VM to the database. The JDBC driver element has some settings written on it, so I zoom in on them and adjust them.

The IDE needs to generate the code that is needed for this to work. This is obviously the repsonsibility of the toolbox element vendors. Some code generators would probably ship with the IDE itself.

No comments: