PDA

Click to See Complete Forum and Search --> : Web App Architecture and Plug Ins question


hellswraith
Nov 6th, 2003, 12:39 AM
We are looking into a web application project at work. We have a architecture that must be pretty flexible in it's design in one particular area. I was wondering, has anyone used a plug in type architecture for a web application?

What we are looking to do is create a flexible web application that would allow us to add or remove modules from the application on the fly. Obviously these modules would have to incorporate interfaces and such, but we also need them to process and display web forms. Also, during installation, they would require certain data needs from the sql server db that is being used, so the tables would need to be created and linked to the existing tables via relationships.


So to break down my problem more, here is a senerio:
We are tracking individuals with the main application. These individuals will be able to be assigned certain hardware. Each hardware will have it's own tracking requirements. Such as one piece of hardware could require one serial number to be kept, and the next hardware would require two serial numbers because it is actually two different pieces.

The problem is that hardware can be phased out, and new hardware can be implemented. The new hardware could have different data needs than the initial hardware by a large margin. There is no way to tell what these needs will be. There can also be 1 or more pieces of hardware currently in use.

So, since the hardware can have unlimited possibilities of data storage needs, we can't design the app to only use the initial design. It has to be very flexible. We also can't be tied up in reworking the core application when a new piece of hardware is added, or an old one is taken away.

If anyone has had any experience with this and/or some general good/bad comments, I would appreciate it.

Edneeis
Nov 6th, 2003, 01:49 AM
I have never done this but in theory it sounds fine. I have a site that displays pages from a document type class (which gets filled by SQL). I think as long as the page was either flexible or generic enough it should be able to be changed via the plugin. For instance the page code just load a table which the plugin fills. Or the if the page has some other means of displaying flexible data...but I'm sure you already have a handle on that.

The questions I wonder about would be. How would the plugins be managed? Via some sort of web interface? How will the plugins be maintained in state/session? Or would the plugins be non-session related?

If none of this is helpful then just ignore me, I think I am really just thinking out loud. Actually the project sounds pretty cool.

hellswraith
Nov 6th, 2003, 12:03 PM
You bring up some points that I have also thought of. The basic principle is we need to get the data to the database in a relational manner. After that, everything is fine. I figured each module would have to have restrictions on it, like what tables it could reference in it's tables, etc...

But the way I wanted to let it go was to let each module handle the authentication themselves. Not much session state is really needed, and the calls from the main dll to the module dll would pass the parameters needed (or through a query string). Or implement the session state via sql server or something.

I just want to make it to where we only have to develop new modules, which can be simple, or complex, and just drop them in the module folder along with updating the SQL Server database, and it is done. The app restarts, discovers the new modules, and can add that item to the combo boxes. Using the standard interface, it would then call a beginning page of that module, and the module would handle the rest.