Wednesday, February 13, 2008

Web Servers, and Wikis..Oh My

On my way to learning about web servers and their corresponding applications, I have decided to play around with running my own local web Apache server just for myself. For most nerds, this is no big deal, for linux guys this is nothing. But I'm a Windows guy. I love to fully understand what I need to know, and leave the rest alone. To me a web server has meant, the IIS windows service is running. That's it. Everything else is taken care of.

At work though, we use IBM's Websphere, and I don't have the slightest clue how any of the layers work for it. I write my code in the JSPs , servlets, and web services, and try to cobble together the bits that I know to make sense of the process. But there is a lot of magic in it. A Javascript file exists solely on the client in the browser and runs only there, however, the data in the JSP is transformed to html only on the server before being rendered to the client. Submitting something sends the data from the screen back to the server where it is put into a request and sent to a servlet. The servlet then has access to the session data, which is always stored on the server and never passed to the client. Data can be pulled from the request (aka, the screen data), and have something done with it. It can call a web service, or the database, or basically any java class that it references at this point. The data is then rendered back to the browser again.

The communications between the servlet and the web service is done through SOAP. This is a black box to me. I don't understand anything here. Somewhere in the stack is TCP/IP, but I'm not sure where. Then when things get to the server they are actually run in the server and the other associated applications to produce results. I know about a small portion of this stack.

So when you need to learn something, what do you do? You start learning more about the layers. I decided to start at the base. I knew Apache was free, and I have read about a package XAMPP. It will install everything that you need to run an Apache server with SQLLite, MySQL, and Perl. And then I ran across a post at LifeHacker about How to Setup your personal Wiki. It's great, because it's the same Wiki software we use at work.

One day over lunch I downloaded and installed XAMPP from PortableApps.com. to go along with the the rest of the ones that I already have.

The next day over lunch, I followed the instructions from LifeHacker and had my own personal Wiki up and running.

I still have a long way to go, but I learned a little something about MySQL, and the Apache server that I have running from my thumb drive now. The coolest thing is that I can take my own web server and wiki along with the rest of my tools wherever I go. And if I just happen to have the desire to build a new website, I can get it all up and running, as long as I have my thumb drive with me.

How did you stretch your mind today?