SE401:33:Architectures

From Marks Wiki
Jump to navigation Jump to search

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


◄ Back