Open Micro-Blogging — the Code

Introducing OpenMB.  First off:  the UI sucks, there are many bugs, it is not secure, and there are many missing features.  Having said all of that, I think it’s a great start. 

I’ve posted the code and created the discussion group.  You can also login to the demo site and post messages.  Just keep in mind what I mentioned about the lack of security.  I will probably also blow away that site many times, so don’t count on it keeping your information or being available.

 

Now, let’s begin.

 

What is OpenMB?

OpenMB is a micro-blogging platform that allows you to host your own micro-blog posts.  You can communicate with other users who join your micro-blog site, or you can communicate with users on other micro-blog sites.

Each user has a unique address (i.e. http://www.myserver.com/openmb/users/?id=33), The format of the address is not important, and in the future we may develop standards such as “swhitley#myserver.com” as an alias to the OpenMB address. 

An OpenMB address will recognize commands using the “cmd” querystring variable.  Command names may change, but a current example is “cmd=feed.public.”  The feed.public command causes OpenMB to display the user’s public posts in RSS.

Posting messages and retrieving them through RSS are fairly trivial tasks, however, there are two major features in OpenMB that are very important: 

  • Message Synchronization, and
  • Cross-site Identification

 

Message Synchronization

In effect, OpenMB is a specialized RSS feed reader.  You create connections between your OpenMB address and the address of other OpenMB users.  OpenMB will regularly poll all of your connections, looking for updates in their RSS feeds.  When updates occur, the messages will be posted to your OpenMB site.  You’ll then be able to see all of the messages from all of your connections. [Note:  The current polling feature is underdeveloped.  It works, but it doesn't yet check sites in parallel and it isn't able to quickly determine if there aren't any updates.  The ideas are there, but haven't been implemented yet.]

Cross-site Identification

When we all use the same system on the same website, it’s very easy to keep messages private based on your login credentials, but OpenMB requests can come from anywhere on the Internet.  We must have some way to trust the request before we respond with any non-public messages.  For each request, the “from” querystring variable contains the OpenMB address of the user making the request.  There is also a signature that is attached to the request using the “sig” variable.  When OpenMB receives a request, it checks the “from” address to ensure that it is a trusted address (we’ve previously identified a connection for that address).  If the address is trusted, then OpenMB verifies the request.  OpenMB posts the signature back to the requesting address.  The requesting address must verify the signature and return a positive response to OpenMB or the request will be rejected.

Process:

  • Add a connection for an address.  (We are friends.  I trust your address.)
  • Publish a non-public post.
  • Your friend’s OpenMB server will request non-public posts meant for him/her.
  • Your OpenMB server will verify that the request actually came from your friend.
  • It checks the list of trusted connections based on the “from” address.
  • If the “from” address is a friend’s address, it will post the request signature back to the “from” address.
  • If the verification is positive, the non-public posts will be returned to your friend.

 

On Twitter

Is this project designed to replace Twitter?  In my opinion, no, it is not.  I see great potential in decentralized micro-blogging for business-to-business communications and internal office use.  I also see it as being useful for general communications for folks who want to have more control over their micro-blogging tools.  Just as my instance of WordPress isn’t a threat to Blogger.com, my OpenMB server can happily co-exist (and will probably integrate) with Twitter.

 

Technorati Tags: , ,
  • Share/Bookmark

2 Comments so far »

  1. Kleverson Neves said,

    Wrote on January 23, 2008 @ 5:48 pm

    Very interessant, a big tool, an opensource microblog.

  2. BRET WADE said,

    Wrote on January 29, 2009 @ 9:53 am

    I run a socail networking site for ranchers and farmers. What I am looking to do is have a type of alerting system on the site for government agencies and associations like the USDA. The system will need to have subscription sign up and have a window to view the topic and then click the topic to view the whole article. I don’t think it neds to be so complicated such as twitter but it would be nice if members could sign up for SMS.

    If you have any ideas I really would appreciate it

Comment RSS · TrackBack URI

Leave a Comment

Name: (Required)

E-mail: (Required)

Website:

Comment:

Twitter Users!
Enter your personal information in the form or sign in with your Twitter account by clicking the button below.