190 likes | 348 Views
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.
E N D
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 Patient Oriented Feeds General Feeds
Doctor Group Patient Group Staff Group User #1’s second Group User #1’s First Group User #3’s Group Groups Example Users User #1 User #2 User #3 Relation to Hospital Groups 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.
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.