Development Cycles
  Home arrow Development Cycles arrow Page 2 - Hi 5: Part 1
Dev Articles Forums 
ADO.NET  
Apache  
ASP  
ASP.NET  
C#  
C++  
ColdFusion  
COM/COM+  
Delphi-Kylix  
Design Usability  
Development Cycles  
DHTML  
Embedded Tools  
Flash  
Graphic Design  
HTML  
IIS  
Interviews  
Java  
JavaScript  
MySQL  
Oracle  
Photoshop  
PHP  
Reviews  
Ruby-on-Rails  
SQL  
SQL Server  
Style Sheets  
VB.Net  
Visual Basic  
Web Authoring  
Web Services  
Web Standards  
XML  
Mobile Linux 
App Generation ROI 
IBM® developerWorks 
Weekly Newsletter
 
Developer Updates  
Free Website Content 
 RSS  Articles
 RSS  Forums
 RSS  All Feeds
Write For Us Get Paid 
Request Media Kit
Contact Us 
Site Map 
Privacy Policy 
Support 
 USERNAME
 
 PASSWORD
 
 
  >>> SIGN UP!  
  Lost Password? 
DEVELOPMENT CYCLES

Hi 5: Part 1
By: Ben Shepherd
  • Search For More Articles!
  • Disclaimer
  • Author Terms
  • Rating: 3 stars3 stars3 stars3 stars3 stars / 4
    2003-03-12

    Table of Contents:
  • Hi 5: Part 1
  • The First Phase
  • Conclusion

  • Rate this Article: Poor Best 
      ADD THIS ARTICLE TO:
      Del.ici.ous Digg
      Blink Simpy
      Google Spurl
      Y! MyWeb Furl
    Email Me Similar Content When Posted
    Add Developer Shed Article Feed To Your Site
    Email Article To Friend
    Print Version Of Article
    PDF Version Of Article
     
     
    ADVERTISEMENT


    Hi 5: Part 1 - The First Phase


    (Page 2 of 3 )

    Planning a Model

    The first phase in this iterative process is planning the model. Documentation is important, but most of the documentation should be based on functionality, maintainability and structure.

    A functional website should place most of its workload off the client (i.e. the browser). If using a scripting language (i.e. PHP, ASP), functions should be thought out such that the server/s are not tied up unnecessarily.

    A maintainable website is one that can be easily updated in a way that it does not require drastic changes to the current model. For example, if we decided to change the database that drives the website, or change a banner advertisement for example.

     As you know there are two major types of website structure. These two types are two-tier and three-tier structures. For those who are unsure what these structures are, the ideas are simple.

    Functionality

    Functionality is without a doubt the most overlooked section on most websites using a database today. Some websites provide a cute looking user interface to impress the user, but in the backend it is like being in the middle of a forest not being able to sense a direction. Successful websites are often database-centric (i.e. the heart of a website is the database). For this reason the use of modeling your database first would be appropriate.

    Database Design

    When developing a database for your site, you must consider a few things first. You must consider the security of data, accessing data and the structure of your database.

    Security of Data

    There are three levels of security to consider. There is system level security, database level security and client/server level security.

    Firstly let us consider system level security. This is the level of authentication that allows users to have access to the system. The team of developers must sit down and discuss the roles of users and which permissions the role of user has on the system. This level is focused at the front-end of the system.

    Secondly, the database security level is much the same as system level in the way that a user is given a role and that the role may or may restrict them access. This level is focused on the back-end of the system, such that in the database each table has permissions that allow difference access conditions depending on the user’s role.

    Thirdly, the consideration of client/server security level is important for secure communication. The remedy is encryption. SSL/TLS is used to make it harder to eavesdrop on the traffic between the client and server. Oracle’s Secure Network Services provides end-to-end data encryption.

    New technologies are being developed as we speak so continually research into the products that are out there to protect your website.

    Accessing data

    The issue of accessing data is critical for your website performance. A user will not like to wait 30 seconds for a query to be transmitted. So SQL statements must be produced in such a way that they do not overwhelm the DBMS. Query may be tested on a front-end SQL software package such as SQL*Plus to test whether the SQL statements are efficient. This will be studied more in the algorithmics phase.

    Database Structure

    The team must sit down and workout the more efficient database structure. They must look at what data needs to be stored, and how it is to be stored to eliminate data redundancy and provide swift data manipulation. For best results graphically design a database and discuss each member’s model. Once decided, the model can be easily created. Each strategy is different like every problem is different. Take your time with the database design and make should that it can be easily altered if the website specifications change.

    System Design

    The answer to developing functional websites is developing a flowchart to see the overall system functionality. Not only will you see how the website works but you may find parts of the site that will require extra attention.

    Maintainability

    The point of considering maintainability is that if you wish to make a minor adjustment to it should be done quite easily. At this stage the team should be discussing the future of the website before the website is built.

    “Far out!” you may yell out, but the fact of the matter is that you will need to make sure that the website can be altered if the website specifications change. Use technology that has flexibility and scalability.

    The website must be structured well. This means that sections of the website should be divided and place in their own directory. The website’s hierarchy should be like a tree diagram, where the shared elements (i.e. an picture used for action like email that may be used on many pages) of the website are in a common directory a the top of the tree and the private elements (i.e. a picture of yours truly that will only be on the about me page) in a private directory.

    The site structure is up to you, but the way it is organized may be beneficial for the easy maintenance of the website. Be sure to document your structure for later iterations.

    Structuring

    When structuring a website the team must discuss how the web site is to be structured. Whether a two tier or three tier (or even n-tier) model deem more appropriate.

    Two tier vs. Three Tier

    Two Tier

    The two-tier website structure is based on a client/server relationship. The client (i.e. the front-end) provides a user interface, data manipulation and query formulation. On the other side the server contains a DBMS (i.e. Database management system), manages transactions, optimizes queries and controls concurrency.

    Notice that there is a lot of work on the client side, but not as much as the one tier model. What you should generally want is the client to do as little as possible. The client should gather data input from the user and display information to the user. The benefits of the two tier model are that the client does not have to be as powerful (i.e. the term for this powerful client is known as a fat client), traffic over the network is cut down, the data integrity (i.e. the validity of data) because processes are perform centrally on a database server and that the use of stored procedures implies that business rules are done on the server. This model is great for small websites but it will not be able to handle a “heavy traffic” website. So as the internet becomes more and more popular, the more tiers are needed to handle requests.

    Three Tier

    To overcome this needless client side scripting, apart from using XML, which has is security issues, we need to develop a system that will allow a server to handle the processes and the database management system. One way of doing this is using a “middle man” approach. This is formally known as middleware. Middleware is software that provides an API (i.e. Application Programming Interface) on both ends of the system, which allow communication between the client and server.

    This middleware has now taken the workload off both the client and server side. The application processes are now handled in the middle tier. This middleware is used amongst this three tier model to act as a diuretic for the client, even more so then the two tier model. Added modularity makes it easier to modify or replace one tier without affecting the other tiers. This philosophy is similar to that of the object orientation model in programming.

    The importance of the three tier model is that it’s the workload is balanced and hence no server is overwhelmed. A word of advice is that some technologies are incompatible with other technologies, so the team must research this before implementing the strategy.

    Two issues that one must consider in this stage is “cost/benefit” and “website traffic”. You really need to combine these two terms together when considering an appropriate model. If you are low in finance, the “cost/benefit” issues is greatest in concern.

    The three tier model has a low long term cost, but a very high short terms cost. The cost may be shorten somewhat by using a open source web server as the application server (i.e. the third tier) such as the apache web server and using MySQL as your DBMS on the database server(i.e. the second tier). The problem is scalability and flexibility so the question arise “What are you willing the pay?”

    The two tier model is fine for a “low trafficked” website. The short term cost is low and if your site becomes successful you should definitely consider the three tier model then. This therefore creates a long term cost, so the team must discuss whether or not to jump straight into using the three tier model. This choice is an extremely important one, but you may decide to change the system in the next iteration.

    More Development Cycles Articles
    More By Ben Shepherd


     

    DEVELOPMENT CYCLES ARTICLES

    - Division of Large Numbers
    - Branch and Bound Algorithm Technique
    - Dynamic Programming Algorithm Technique
    - Genetic Algorithm Techniques
    - Greedy Strategy as an Algorithm Technique
    - Divide and Conquer Algorithm Technique
    - The Backtracking Algorithm Technique
    - More Pattern Matching Algorithms: B-M
    - Pattern Matching Algorithms Demystified: KMP
    - Coding Standards
    - A Peek into the Future: Transactional Memory
    - Learning About the Graph Construct using Gam...
    - Learning About the Graph Construct using Gam...
    - Learning About the Graph Construct using Gam...
    - How to Strike a Match







    © 2003-2009 by Developer Shed. All rights reserved. DS Cluster 4 hosted by Hostway
    Stay green...Green IT