Project Proposal Jen-Cheng Huang Vinit Shah Mike Wilt

advertisement
Project Proposal
Jen-Cheng Huang
Vinit Shah
Mike Wilt
CS8803—Advanced Internet
Application Development
Prof. Ling Liu
Spring 2008
Project Overview
Project Title
BuzzPost: A new architecture for online forums
Website
http://www.buzzpost.net
Summary
BuzzPost is fast and fluid like a chat room but stable like a traditional
message board.
Ajax programming techniques enhance the user
experience. For example, when viewing a thread, the conversation
updates as soon as a reply is posted, like an AIM conversation. In
addition, a separate page refresh is not required to log in or sign up for a
new account; all database queries are executed “on the fly.” We believe
this feature will lower the barrier to entry for users.
Individuals can create their own online forums using the BuzzPost
architecture. Individuals can customize the design of their forum using
CSS, predefined “skins,” and a variety of layouts. Forums are hosted for
free by BuzzPost. Revenue generated by advertisements offsets this
cost. To the extent feasible, revenue is shared with individuals who create
and administer forums.
Technologies
Many technologies cooperate to make BuzzPost work, including:










AJAX
PHP
MySQL
Javascript
Javascript Object Notation (JSON)
CSS
Cookies
SHA-1 Encryption
CAPTCHA Authentication
HTTPS
-1-
Objectives
Most online forums—even the most vibrant ones—rely on a static message
board. A separate page load is required to log in, start a thread or post a reply.
Threads are not updated automatically. Conversely, most chat applications
update instantaneously. The goal of BuzzPost is to combine the stability and
structure of a traditional message board with the fluidity and speed of a chat
application.
Users appreciate instantaneous feedback. Imagine if AOL’s instant messenger
required a page refresh to send and receive messages. No doubt its appeal
would be diminished. The best part about chatting with someone is that you’re
interacting with them in real time. Chats are usually private conversations
between to two people and tend to occur between people who aleady acquainted
with each other.
Online forums possess a different dynamic. There are many participants at
once. Participants share a similar interest, be it a sports team, programming
language or television show, but rarely is the entire community on a first name
basis with one another. Nonetheless, we believe that applying the “instant”
nature of chat applications to an online forum will enhance the user experience.
We intend to change expectations for the behavior of an online forum in the
same way that Gmail altered expectations for webmail applications.
Chats tend to be ephemeral. Once the chat window is closed the conversation is
effectively over. On the other hand, exchanges that occur in an online forum
don’t necessarily recede into the ether once someone leaves. BuzzPost is
designed to afford concurrent, synchronous communication as well as
asynchronous communication from users who visit (or revisit) the thread at a
later date.
Table 1. Comparing a chat application to an online forum
Attribute
Chat Application
Online Forum
Participants
Two, typically
Many
Feedback
Instant
Static; requires page reload
Relationship
People you know in real life
People with similar interest(s)
After you leave…
Conversation disappears
Thread remains
Examples
AIM, Google Chat, Yahoo!
Messenger, MSN Messenger,
etc.
phpBB, vBulletin, ProBoards
-2-
A static approach befits the pace of most message boards, particularly those with
low traffic. But it’s easy to imagine the opposite situation where many users flock
to a particular thread, and the nature of the conversation changes quickly. For
this reason, a message board that automatically updates can be advantageous.
It transforms a static experience into one that is more dynamic.
Even in low traffic situations, the user experience improves if Ajax is employed to
make the application more seamless. This might seem trivial to some; after all, a
fast server can reduce the overhead from page refreshes. However, one only
has to look at the praise garnered by Google Maps, flickr, and the rising
popularity of online office suites to know that Ajax —if employed tastefully—can
make the user experience infinitely more satisfying.
One problem with existing forum software is that the user must install the
software on his or her own server. What’s more, it can be difficult to customize
the layout. To lower these barriers, we propose to host all forums that use the
BuzzPost architecture for free and provide tools that enable users to customize
their own forums. Blogger does this already for blogs; in the late 1990s, ONElist
(which later merged with eGroups and was purchased by Yahoo!) provided a free
mailing list service to anyone who wanted to start a listserv. Our strategy is
similar. To offset the cost of hosting many virtual communities, we expect to
generate revenue from advertising. Ideally, we will share revenue with forum
administrators.
In summary, the objectives for BuzzPost are as follows:
1.
2.
3.
4.
Design an online forum that is fast, responsive and scalable.
Enable users to create and customize their own forums.
Host forums for free.
Develop a sustainable revenue model to support the service.
Proposed Work
BuzzPost is borne out of a prototype built last semester by Mike Wilt for the class
6235: Real Time Systems with Dr. Calton Pu. This semester we will optimize the
existing code, implement new features and conduct usability and scalability tests.
A successful outcome is contingent upon completion of the tasks described
below, positive feedback from users and the overall usability of the architecture.
In addition to emphasizing a user experience that is fast, simple and reliable, we
will develop the following components:
1. Automatic updates. The list of threads and individual conversations will
update automatically, like an AIM conversation.
-3-
2. Enhanced forum functionality. Users will be able to create and edit
profiles, format submissions, moderate posts, and report inappropriate
content. Similar to Facebook, users will be able to send private messages
to one another.
3. Seamless log in and user authentication system. Users will be able to
log in, log out and/or register without loading a separate page. Database
lookups and insertions will be done “on the fly.”
4. Secure transactions. We will take appropriate steps to ensure BuzzPost
is reliable and secure. For example, passwords will be encoded with
SHA-1 encryption and Session IDs will be used prevent XSS attacks. We
will consider using HTTPS for some aspects of the site.
5. Moderation system. A moderation system will be implemented for users
to rate comments and flag inappropriate content. Our approach will be
similar to Digg and Slashdot.
6. Search engine. A search engine will be developed to find content
quickly. We will implement an algorithm that considers the forum’s
moderation system.
Feedback from the search engine will be
instantaneous, much like Instant Search [http://www.instantsearch.org].
7. Cross-platform compatibility. It is important that everyone be able to
access BuzzPost forums regardless of web browser or operating system.
8. Alternate layouts. We will develop alternate layouts to display content.
9. Alternate versions. We will implement a javascript-free version and a
version compatible with mobile devices.
10. Content syndication. We will enables RSS feeds of the forum and/or
individual threads. In addition, users will be able track thread thanks to
email notifications.
11. GUI for webmasters. We will create a GUI for webmasters to manage
and design their communities. Forum statistics will also be available here.
12. Advertising model and business plan. We will develop a business plan
to assess the feasibility of supporting many forums via advertising. We
will consider the pros and cons of “open sourcing” the BuzzPost code.
-4-
Architecture
How will Buzzpost work? In a nutshell, clients repeatedly make HTTP requests
to BuzzPost asking if new content has been added to the database. If new
content exists, that data is returned to the client in JSON format. The client
parses this data and appends it to existing content. To minimize strain on the
database, every time a new message is added to the database the result from
this insertion is cached. This way other clients can determine the dataset has
changed without executing an actual query.
A diagram of our proposed architecture is contained in Appendix A.
Our approach is informed by programming techniques described in the books [1]
Beginning Ajax with PHP by Lee Babin and [2] Ajax and PHP: Building
Responsive Web Applications by Cristian Darie, et al. In addition, numerous
websites devoted to PHP, MySQL and Ajax programming helped us formulate
our approach.
Evaluation and Testing
The architecture will be assessed from the following angles:



Scalability
Security
Usability
We are considering a number of approaches to conduct these tests. We expect
to implement one or more forums. This will enable us to monitor performance
and collect feedback from actual users. We also hope to simulate a number of
scenarios to understand how performance is affected by certain variables.
Related work
BuzzPost will provide a unique user experience and numerous innovations
compared to existing forums. However it is wise to analyze online forums that
already exist. Wikipedia contains descriptions of nearly one hundred forums. 1
We have examined each one in detail. Some are open source, others are
1
http://en.wikipedia.org/wiki/Comparison_of_Internet_forum_software_%28ASP%29,
http://en.wikipedia.org/wiki/Comparison_of_Internet_forum_software_%28PHP%29,
http://en.wikipedia.org/wiki/Comparison_of_Internet_forum_software_%28Other%29
-5-
proprietary; some are free, others are not. A variety of programming languages
are used: PHP, ASP, Ruby, Perl and others. Most forums do not offer remote
hosting as we plan to offer; instead users must install the code on their own
server. The first table contains details about popular forum software. The
second table points to existing forums that appear to have been developed
independently.
Table 2. Popular Forum Software
Name
Website
Cost
Technology
Remote Host?
phpBB
http://www.phpbb.com
Free
PHP
No
V Bulletin
http://www.vbulletin.com
$85/yr
PHP
No
EZ Board
(now Yuku)
http://www.ezboard.com
Free (Ad
supported). Can
upgrade to “pro”
version for $36/yr.
Smalltalk
Yes
Vanilla
http://www.getvanilla.com
Free
PHP/Ajax
No
ProBoards
http://www.proboards.com
Free (Ad
supported)
PHP (?)
Yes
Orca
http://www.demozzz.com/o
rca/demo/
Free
PHP/Ajax
No
Table 3. Existing Forums
Name
Website
Comment
Adobe
http://www.adobe.com/cfusion/webforums/forum
Similar to phpBB with some
unique features.
FLV
Media
Player
http://www.jeroenwijering.com/?forum=All
Sleek but simple. Cool
emoticons and search engine.
Phantasy
Tour
http://www.phantasytour.com/phish/boards.cgi
Clean layout and simple
functionality.
QBN
http://www.qbn.com/filter/all/public_voice/recent/2
4_hours/
Innovative layout.
I Love
Everything
http://www.ilxor.com/ILX/index.jsp
Proof that a popular forum
doesn’t have to look pretty.
Think
Tank
http://www.thinktankforums.com/
Minimalist design.
-6-
Schedule
Phase 1: Revise and improve existing code


Log in and user authentication
Automatic updates, like AIM
Phase 2: Add new features









Caching mechanism
Moderation system
Private message system
User profiles
Content formatting
Search engine
Content syndication
Alternate layouts
Management tools for webmasters
Phase 3: Testing


Deploy actual message board(s)
Test:
o Scalability
o Security
o Usability
Phase 4: Advertising model and business plan.



Estimate cost to support a large number of users
Estimate potential revenue from advertising
Consider releasing code as open source
Table 4. Project Schedule
Weeks 1-2
Weeks 3-4
Weeks 5-6
Weeks 7-8
Weeks 8-9
Feb 18—Mar 2
Mar 3—Mar 16
Mar 17—Mar 30
Mar 31—Apr 13
Apr 14—Apr 27








Phase 1

Phase 2

Phase 3
Phase 4
-7-
Important Dates:



February 26-28: Selected Proposal Presentation in Class
April 21-25: Final project demos
April 27: Final project deliverable due (6:00PM)
Bibliography
[1] Babin, Lee. Beginning Ajax with PHP. Apress, 2007.
[2] Darie, Cristian, et al. Ajax and PHP: Building Responsive Web Applications.
Packt Publishing, 2006.
-8-
Appendix A
A diagram of the proposed architecture for BuzzPost.
Step 1: Clients repeatedly check the value contained in a document
cached by the database. Our prototype sets an interval of 1000
milliseconds.




Step 2: One client inserts a new message into the database. A new result
is cached.




-9-
Step 3: The clients detect that the cached value has changed.




Step 4: The clients query the database and new content is returned to the
client. Return to Step 1.




- 10 -
Download