Hi,

I have recently started using facebook. I never understood what the fuss was about... until now. Yes, I am sucked in. Fully.
Facebook is a breakthroug. To me, its _real_ breakthrough is this:

** OFF-SITE MODULES **

Drupal has modules, and we all know how far modules have taken it. What is missing, is a clean, fantastic way of allowing people to add modules that do _not_ reside in the local Drupal installation.
It may sound insane, but the benefits are just too many:

* No installation required.
* Module authors will be able to deploy them in a server
* Users will be able to activate external modules

The architecture would be similar to what happens in Facebook right now. It has two sides:

FIRST SIDE
-------------
The Drupal side of the story would include two things:

* A GUI to enable external modules. This should allow administrators to "register" external modules, AND users to enable them. It should also allow users to "register" their own external modules if they wish. Those modules will then be available to all users.

* An API, available though HTTP, which would give external modules ways to "know" things about the server. To speak in practical terms (which I like), the core API could export something like em/core/user_exists (as a path), or em/core/user_friends , xm/core/module_installed, etc. Then, other modules (and I mean "proper" Drupal modules) could export anything they like, possibly in the em/modulename/* namespace. Or maybe there would be a better way of doing this -- ideas welcome. These functions would obviously be used by the modules to discover things and to do something meaningful.

SECOND SIDE
------------------
The second side would i be what makes it possible to actually run "remote" applications.

When an external module is installed, it will basically get a namespace (app/NAME). Drupal will then basically reroute any request to the external module's URL passing the parameters. Its response would then be shown in the app's canvas. External modules should be able to send special markup language (like facebook does) to create forms etc. The special format would obviously be as simple as possible, and for the forms for example could use a subset of Drupal's API (obviously, it would have to be limited to the rendering--but it's all there already!).

There is obviously tons and tons missing. My explanation of how RPC should work is sketchy and possibly faulty--there are probably 1 million better ways of doing it. But, it's a start.

Does anything like this already exist? The end result, the "world-domination plan", would include the availability of countless modules; users of _any_ Drupal site could then register external modules, and use them. No installation required. Eventually, it should be possible to clone exactly what facebook does. Except, anybody would be able to do it, AND modules would be usable in ANY Drupal site.

Am I just dreaming?
This is not something I could work on on my own. I would make tons and tons of design mistakes. I should probably have a deep understanding of how facebook works, and what is already available for cloning. Is anybody out thre skilled or interested enough to give this a go?

Merc.

[1] http://bmaurer.blogspot.com/2008/03/open-source-google-stack.html

Comments

Dave Cohen’s picture

You should also think about Open Social. It's intended to allow something similar to what Facebook provides, but with APIs closer to a standard. For that reason, I think Drupal will be hosting Open Social Apps sooner than it would be hosting Facebook-like apps. You could try to imitate Facebook's API, but that's sort of a moving target and probably you'd never catch up and certainly never be compatible to the point where an app written for Facebook would just work on your site.

Someone created http://drupal.org/project/opensocial, but its unclear to me whether that is aimed at creating apps or being the app container. And its unclear whether any work has actually been done. I plan to write some code for an open social app in the near future, but not hosting apps written by others.

Here's some related reading...
http://groups.drupal.org/social-networking-sites
http://groups.drupal.org/facebook-api

mercmobily’s picture

Hi,

This shows how little I know about this. I didn't know that OpenSocial allowed external applications... if that is the case, then that would be the way to go!

Does anybody here know much about this?

Merc.

mercmobily’s picture

Hi David,

I've just noticed that you were the person replying to my message... ah! THE Dave Cohen...!
I am trying to gather information about OpenSocial. It really looks like OpenSocial is th way to go... It's pretty much what I thought about, but done in a much neater way!

Merc.

maverick14’s picture

Hey, maybe this will sound interesting to you:

http://drupal.org/project/opensocial-container

mercmobily’s picture

Hi,

This is fantastic news. If Drupal could really become an OpenSocial container, it would be _amazing_.
I will try and chip in once my work for Drigg is more stable!

Merc.

maverick14’s picture

I'm not sure if this is really what you think it is.
It's just an implementation for embedding profile info in Drupal.

mercmobily’s picture

Hi,

Oh OK I honestly thought that the module was aimed at turning Drupal into a full OpenSocial Apps container...

Do you know if anybody is working on that? Do you see any technical hurdles in doing that?

Bye,

Merc.