brain dust

The Absolute.

Friday, July 01, 2005

New Laptop!

I got a new Compaq nx9600 from my employer this week. Of course they were thinking that if they got me a laptop then I wouldn't have to work the 80 hours I put in each week, right? :).

It's the single most robust development computer I have worked on. It has 2 3.4 Ghz P4. 1 GB RAM, 80 GB HD. DVD Burner. Firewire, built in 802.11g, S Video, 4 USB ports, 100 MB Ethernet, modem (like I'll ever use that) and a media drive (something that is super cool[SD, MS/Pro, MMC, SM, XD]), and a USB external drive bay. Ohyeah, it also has a 17" widescreen super-rez screen and an ATI Mobility Radion X600 128 MB graphics engine.

I have also been working on a new Agent Scripting subsystem. It's really pretty slick, conceived by the president of my company and myself. We are using pure XML documents that represent a script and several different flows that act as a Rules Engine. We are passing xml back and fourth via a webservice (in a farm), which acts as a gateway to rendering engines. The rendering engines take care of converting the XML into what ever UI it needs to (in our case it will be an ASPX page, but we also have a client doing Terminal Screen emulation).

Another cool feather we are implimenting is an XML based "solid state" service. Basically, the scripts will stay cached on each server. When a request comes in we check to see if the key sent back with the request matches the one for that user in the local cache. If the key is different, or missing in cache, then we attempt to load the XML file from the filesystem. As the request is ending and generating the XML for the response to the user, we generate a new key and place it in with the XML and then write the session data back as an XML file to the file system. There's an internal thread running on each server that is using a FileSystemWatcher, watching the session state folder. While the call is in progress then the session filename is the sessionid.TMP. When the call is complete, or timesout, then we change it to .DAT, which another process picks up and shoves into a database logging table. The FileSystemWatcher then cleans up all of it's objects for that session, making each server self healing.

I really wanted to use the EE Caching Application Block, but I could not find any good examples of using it to span/sync cache objects across servers. Kindof dissapointing.

Another use that we are looking into is a web based survey system. It has all the plumbing that would make it work.

At some later point we are going to write a UI designer that will render the XML.

Happy 4th!

0 Comments:

Post a Comment

<< Home