slides - University of Virginia

Download Report

Transcript slides - University of Virginia

Feeds
Computer Applications to Medicine
NSF REU at University of Virginia
July 27, 2006
Paul Lee
Goals


To become familiar with the .NET/ Microsoft SQL 2005 environment.
To learn about RSS and how to generate RSS feeds from a
database.
Motivation



Doctors are constantly busy and have little time to check on the current
state of medicine.
RSS Feeds provides a means of making short up to date announcements
without the audience having to read through pages of documentation.
RSS feeds can be read by several popular devices (i.e. i-pod, tablet pc,
etc.).
Current state-of-the-art



RSS 2.0, is used widely on the internet for distributing summary data
of articles or events dynamically.
3 popular RSS specifications include: RSS 2.0, RSS 1.0, and RSS
0.91. RSS 2.0 is the latest version.
I encountered 3 types of methods for generating RSS feeds:

Manually coding and updating your RSS page.
 Store a text file in a database, and for every request generate an RSS
file from the text file using .NET and .NET’s HTTP handler to answer the
request by sending the generated XML file to the requestor (used by
James H. Byrd for magazines “Computer Companion” and “Logical
Tips”).
 Store your data in a database and generate an RSS file using .NET only
when changes have been made (used by Nick Bradbury to generate
feeds for his FeedDemon FAQ).
RSS Security (Very New)
A number of aggregators now have
support for SSL and Http authentication.
 However, practically no feeds actually use
security measures.

For more info go to:
“Private RSS Feeds: Support for security in aggregators” by Steven Garrity
http://labs.silverorange.com/archives/2003/july/privaterss
“RSS ‘security’” by Greg Reinacker
http://www.rassoc.com/gregr/weblog/archive.aspx?post=775
“RSS ‘security’, part deux – Web-based aggregators” by Greg Reinacker
http://www.rassoc.com/gregr/weblog/archive.aspx?post=779
Sample RSS Feed
<?xml version="1.0" encoding="iso-8859-1" ?>
<rss version="2.0">
<channel>
<title>RSS Feeds channel</title>
<description>General RSS Feed List</description>
<link>http://www.virginia.cs.edu/</link>
<lastBuildDate>Mon, 24 Jul 2006 14:50:22 GMT</lastBuildDate>
<docs>http://backend.userland.com/rss</docs>
<generator>RSS.NET: http://www.rssdotnet.com/</generator>
<item>
<title>Consumer Reports Health Guide</title>
<link>http://www.consumerreports.org/rssfeed/crmgalerts.xml</link>
<pubDate>Mon, 24 Jul 2006 14:50:22 GMT</pubDate>
</item>
</channel>
</rss>
Requirements


The RSS feed must be updated each time a change has been
made to the data in the database.
GUIs must be user friendly for both the client and admin application.
For the Client application:


The application must be able to read and display RSS feeds.
The application must update the information from the RSS feed in a
timely fashion wasting a minimal amount of resources.
Requirements Part 2
Requirements for Client Application continued:

The user must be able to choose from a list provided which RSS
feeds to subscribe to in addition to the hospital feed.

The user should also be able to subscribe to any other feed.
Clicking on a link should either open a browser page or load the
page in the application.

Requirements Part 3
For the Admin application:
 The application should verify that the user is an administrator.
 The user must be able to view an RSS feed as well as its source data in the
database.
 The user must be able to insert and/or delete entries in the database.
My approach to solution



Create a database to hold announcements and lists of RSS feeds.
Create a client program allowing the user to choose which RSS
feeds to join and view those feeds.
Create an administrative program allowing the viewing of generated
RSS feeds as well as providing an interface for creating/updating a
RSS feed.
Categorizing RSS Feeds
Doctor
Oriented
Feeds
General
Feeds
Patient
Oriented
Feeds
Groups Example
User #1
Doctor
Group
User #1’s
second
Group
User #2
Patient
Group
User #1’s
First
Group
User #3
Users
Relation to
Hospital
Groups
Staff
Group
User #3’s
Group
User
Created
Groups
Some System Specs



The client/admin programs is written using the .NET environment.
RSS.NET, an open source class library, will be used for writing and
reading RSS feeds.
A web service is utilized to mediate between clientapp and the
database.
Deliverables


A method for creating and maintaining RSS feeds.
client and admin applications for viewing and editing RSS feeds.
Results



adminapp and clientapp both ran on a different computer from the
server in the lab after working with windows firewall.
Both applications fulfilled all requirements for this project except for
adminapp, which is lacking an authentication module.
A method for users to create their own private rss feed and form
groups was implemented in clientapp.
Demonstration
Evaluation








Time delay during updates is significant, but seems to be about the same
for RSS Bandit, a free desktop RSS aggregator built on .NET.
Both client and administrative applications need more secure features in
order for them to be used as a means for handling sensitive data safely.
For some, the long term caching mechanism is a useful feature for creating
an archive of old RSS feeds, but may be a waste of hard drive space for
others.
There is an issue with the updating of feeds without publish dates on their
items.
There is no option for updating individual feeds. Updating all feeds can be
an annoyance due to the update time.
adminapp is inflexible and limited in that the connection to server, database,
and tables is hard coded. Additional databases and tables cannot be
created or added.
RSS 0.91 feeds could not be written using RSS.NET.
Much more work can be done to both applications.
Conclusions

RSS is a powerful tool for publishing news, viewing short summaries
of web pages, archiving RSS items, and communicating with groups
of users. Much more work can be done with RSS in terms of secure
communications and application.
Future Work






Strip html tags that pose to be security issues.
Add support for the ATOM standard.
Port the client application to other devices.
Add support for SSL and Http authentication.
Add search capability of cached feeds and/or associated web sites.
Add caching capability of web sites associated with the items in the
cached feeds.