MLUG: [MLUG - DISCUSSION] What I'm doing.
[MLUG - DISCUSSION] What I'm doing.
Email address obfuscation in effect -- please click here to turn it off.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
In case anyone has wondered why I've been mostly silent for the past couple months it's because I've been designing and building a new website (big surprise), PlumbersStock [http://www.plumbersstock.com/], to sell plumbing and HVACR supplies online. This has been an interesting project because it's built on top of Activant Eclipse [http://distribution.activant.com/eclipse/] (until recently Intuit Eclipse) which my company uses for inventory management, customer management, etc.

Eclipse is a pretty commonly used enterprise application and it does what it was designed for well. However, it's Internet support sucks. When I started my job at this company they'd just sunk around $10k to buy a supposed out-of-the-box add-on, Web Order Entry, to provide a web-based eCommerce solution. It sucked. It sucked so bad we effectively decided to just toss it and try something else. So for another $10k they have another add-on, Web Integration (formally IDMS-XML), that is supposed to expose the inner workings of Eclipse through their own XML-based interface. Turns out that WI doesn't actual expose everything Eclipse can do, it's slow, it is poorly documented, it is poorly understood by Eclipse's, expensive, support staff and to top it off it's kind of buggy. So it's been a long and interesting journey building a website that uses Eclipse w/ Web Integration for it's back-end.

To begin with Web Integration's XML-syntax, IDMS, is it's own, somewhat-twisted, beast so I wrapped it in a web service that exposes all the commands as XML-RPC over HTTP. This way I can tap into the system from any programming language that supports XML-RPC without needing to write, and maintain, a compatibility library. This project alone was somewhat huge in that WI uses large and complex bits of XML to communicate and since the documentation wasn't very detailed, and sometimes wrong, required a lot of trial and error to work out. Finally, I've got it tamed but will need to refactor the code to make it easier to maintain and as I continue to make use of WI I'll probably find, and fix, bugs.

Then once you can actually use Web Integration the fun really begins because it's commands have almost no documentation as to what they do or how to properly use them. They have lots of different types of id's that do various different things but they are documented either. Often the documentation expects you to just know internal codes and such from Eclipse but it doesn't tell you what these codes are or how to look them up. Sometimes you'll be killing yourself trying to do something and finally someone from support will talk to the programming department and find out that such and such functionality does exist but just isn't documented. Other times you expect this to be the case but the functionality really doesn't exist - obvious things like calculating what an orders tax or shipping will be .

All-in-all working with Eclipse Web Integration can drive you slightly mad. I definitely expect more from an add-on I spent $10,000 on. Especially since Eclipse itself cost a heck of a lot more than that. It's finally starting to come together though.

Eclipse isn't the only layer that communicates by XML-RPC. The website is broke up into logical components that are each exposed with XML-RPC. All database calls are wrapped neatly in XML-RPC - there is no remote access to the database other than through these exposed functions. The middleware is all exposed by XML-RPC. This includes application logic, other than UI logic, as well as the Eclipse system, systems for communicating with UPS, FedEx, etc to calculate shipping, etc. Everything is exposed and separated in the same way so the logic is always clean.

The cheese gave a few examples of websites he liked the look of. One was NewEgg [http://www.newegg.com/] which I kind of borrowed the look from although it's changed a lot. I went with a look I call exaggerated geometry which basically means it has a realistic but slightly cartoonish look. I did almost all the original graphics myself using GIMP and then have had my graphic artist redoing them in Illustrator to make it easier to tweak colors and to have smoother edges. Product photos I have the graphic artist working on making so they'll all look 3Dish and seem to be popping off the page (in the meantime we have old flat pics from the WOE system). We're also planning on running a comic strip on the site just to add visual interest and the graphic artist draws it by hand and paints it in Photoshop. PlumbersStock, like the other websites I've made for this company, will also respond to holidays by changing to a themed look. In theory, all this works in Firefox, IE6, IE7, Safari, and Opera although there is a minor bug I know I need to fix to make it work perfectly in Safari, Opera, and Firefox 3. There are probably more glitches I'll find along the way but I make an effort to test in all those platforms.

The next big project with PlumbersStock, along with minor feature additions and fixes, is going to be the search engine optimization and marketing of the website. Already the site keeps it's product database posted to Froogle, will let you add it as a search engine to Google Toolbar, and will let you add it as a search method to Firefox and any other browser that supports OpenSearch. I'm working on making OpenSearch work with Amazon A9 - it should work now but for some reason Amazon isn't happy with the RSS search capability. Using the same RSS feeds I plan to make it so that once you've searched for anything on PlumbersStock you can subscribe to that RSS feed to keep track of those products. I may expose other bits of data by RSS such as allowing the customer to watch their current order progress - that way they won't need to keep manually tracking packages etc.

Meanwhile, we dumped most of the old Windows servers and implemented a powerful dual quad-core Xeon Linux server running VMWare with several Linux servers, a couple Windows servers, and even a FreeNAS server running in virtualization. The one Windows server we have left runs the actual Eclipse system and is horribly slow and prone to problems. We're working on the project to move Eclipse over to an AIX machine. Gradually, we're getting rid of Windows and all new systems are Unix or Linux. We've added a KVM-over-IP for the servers so that we can get in and have complete access even if the systems aren't booting, we have remote reboot, and we have remote temperature tracking of the server room. If any system goes down it will send my personal email account a message notifying me and I'm working on getting a company phone so it can SMS me.

PlumbersStock isn't our only website either. We have four other Internet websites, two of which are WOE systems, and a Intranet website too. More websites are planned in the not-to-distand future too. Along with designing, helping build, helping maintain these servers and network, being a system admin for Linux, Unix, and Windows, database admin, programmer, web designer, etc I also get to manage a couple employees and am responsible for handling customer email and phone calls, making sure packages are sent properly, etc. Just a little busy. I'm thinking of releasing some of the code I created to integrate with Eclipse as open source and writing some documentation for working with Eclipse. I've half considered writing some sort of book and trying to sell it since existing documentation is so poor and if someone is going to spend $10,000 for the software maybe they'd spend $100 for a book that tells them how to use it. I'll probably just end up posting the documentation online though as I don't really want to hassle trying to sell a book.

Okay. So that's what I've been working on lately. Not counting my personal projects.

_______________________________________________
discussion mailing list
EMAIL:PROTECTED
http://mlug.missouri.edu/mailman/listinfo/discussion