SE401:33:Architectures
Architecture Ideas
- Online tool - web application
- Offline tool - stand alone program
- Plug-in Architecture
- Generic Framework
- ?
Exploration of Ideas
We look at the main points of each idea, advantages/disadvantages and potential problems.
Each idea is also given a difficulty estimate.
Online Tool - Web Application
Overview
- Thin Client
- User accesses tool within their Internet Browser.
- All the code generation/page analysis is done by the servers.
- The tool would need to be written using php/asp/js etc.
- Can get the client to do some of the work using javascript.
- Pages need to be (or seem to be) dynamic. AJAX?
Advantages
- User doesn't need high speed computer.
- User can access content from any computer.
- Users don't need to download the program.
- Users don't need to download additional content/updates.
- Don't need a 'proper' framework.
Disadvantages
- User needs a decent Internet Connection.
- Servers need to be a lot more powerful (calculations and bandwidth) than an average web server.
- If servers go down, no one can use the tool.
- Need the site to work in all the major browsers (rewrite same code a few times).
- PHP is a pain to test.
Potential Problems
- University hosting might be too slow (page scraping etc).
- Need to request additional services from University (AJAX?).
- We don't know AJAX or ASP.
- Online tools are harder to test properly.
- Dynamic editing might be hard to do.
- Dynamic editing might crash slower PC's anyway.
Difficulty Rating:
9/10
Offline Tool - Plugin Architecture
Overview
- Light weight program
- Stand alone program which runs on Windows platform (We assume the majority of Linux users can program - could be later converted which is beyond the scope of our project).
- Written in .net or Visual Basic?
- Consists of basic framework with plugin interface.
- Functions for mashup types can be encapsulated in plugins.
Advantages
- Plugins can be developed independently written after initial framework is established.
- Decrease memory usage as all plugins are not loaded on startup.
- Easy to extend the tool.
- Original download is small, so the server bandwidth does not need to be huge.
- Pass some of the work onto other developers.
Disadvantages
- Users need to download additional content.
- Users cant access their content from anywhere.
- Need to check updates for every plugin the user has aswell as the main application.
- Plugins may not work across versions (like some Firefox plugins - this is a problem for the plugin developer, not so much ours).
Potential Problems
- Plugin interface may be hard to implement (no experience)
- No experience with .Net and VB.
- Framework may take a lot of time to develop properly.
- Bad framework design might lead to poor UI.
- Might not have time to do real life UI testing.
Difficulty Rating:
8/10
Offline Tool - Generic Framework
Overview
- Heavy weight program.
- Stand alone program which is a complete tool.
- Written in .Net or Visual Basic for Windows platform.
- Program will a finished tool which users can download.
Advantages
- All the functions are automatically included (no need to download more).
- More secure than plugins (some users might write malicious plugins).
Disadvantages
- Complete program may be large which will use a lot of bandwidth to download.
- Can't add to the program once it's released (new content will have to come in updates)
- Could require a lot of memory to run.
- We have to write all the functionality.
- Users need to download updates.
Potential Problems
- Wont be able to develop all the functionality for all the possible mashups (in the scope of our project).
- No experience with .Net and VB.
- Framework may take a lot of time to develop properly.
- Bad framework design might lead to poor UI.
- Might not have time to do real life UI testing.
- Have to make the project open source for people to continue adding functionality.
Difficulty Rating:
8/10