Building Web 3.0
We're sorry, but this discussion has just been closed to further replies.
Tags:
Why use Rolons?
At some point (I'm not ready yet) we need to redo the material on rolons. Reminds me of how they teach the metric system in the US. First they teach the (rather complex) English system, and then they teach how to convert it to metric. Everyone then is left with the impression that the metric system is very complex, while it is really much simpler than the English system.
Rolons are complex only because they need to be implemented using objects, and because of the way they are mapped onto disk blocks. Most rolons are mapped to a single block of memory, but when an element has more than 4 sub-elements, the sub-elements are, b-tree like, written to 2 separate blocks which can split further and even form trees of blocks as the number of elements grows without limits.
But implementation aside, rolons are simple. Easy to use and extend. And as they have a fluid/extensible structure, they are easier to develop to. Especially as you do not need to worry about writting special code to handle large tables, persistence, robustness or caches--the hard things are already done for you. You can just focus on the business logic of your application.
1. What the purpose / benefits of using rolons over objects?
I just answered this in part in the above paragraph, but that is from just one technical perspective. I think a stronger argument is that every single rolon is a user-accessible object. So in a sense, they are all mbeans. They give you a dynamic architecture which can be reconfigured on the fly and easy to manage.
Now we've previously touched on the fact that rolons can be used to implement services. But these service rolons are still rolons, and as such can be operated on by privileged users and other rolons. Inverting that perspective, every application can operate on the rolons of every other application--they ALL conform to a well known structure. One big advantage here is that the data structures are generic enough that you can take a program which uses rolons and implements something like twitter.com and extend it to implement something like ning.com, and extend it to implement something like Google Wave and just keep extending it and still have every feature integrate nicely with all the other features. This is how programming should work!
Finally, rolons are light-weight enough and yet rich enough to also support complex knowledge structures, which can then be used to drive any number of applications. This opens the door for very flexible applications.
2. Is rolons xml being used as a database? But i thought xml database does not seens to handle heavy load very well?
No, this is not an xml database. There is no xml in the database. Only the rolons are constrained so that they can be expressed fully in XML... as needed. Currently when migrating a database from one release to another we create a stream of XML documents. Later we can speed this up by using an alternative representation--parsing those documents is too slow.
Note that when using the Browse console, the admin user can view the persistent data used by any rolon with the express command. Very helpful for debugging.
3. Base on the demo, what can we achieve with rolons that normal objects can't do? I was thinking maybe we can improve on the interface and also the type of application we are doing
Anything we can do with rolons we can do with objects, only it may not be practical to do so. :-) It is the old turing machine argument.
Now if you look at the ning site, or rather if you were to set up your own ning community site, you would find that there is a lot of flexibility in the configuration of the pages and the selection of the features. OK, you can get the idea perhaps by just browsing other ning sites. The problem with the ning site is that the data structures behind it are a bit complex and this precludes them from doing other things. But with rolons we don't have this problem.
The first application implemented on the web was file sharing. The next will be twits. And then we will rework the UI to be driven by rolons, making it even more configurable than ning. See http://agilewiki.ning.com/forum/topics/work-in-progress?page=3&...
4. I find the console for looking at the database quite complex.
The web UI tries to organize things from the perspective of the user, to maximize utility. Conversly, the browse console provides you access to the full capability of the underlying database. Each has its place.
The console is good for learning more about the database. As I mentioned above, the express command lets you access all the persistent data of a rolon. The console is also the back door for any user wanting to look inside the web site. If you use the same email address for accessing both the web and the console, they you will have the same privileges.
(As the admin of your console, you can open a peer ark proxy connection to the agilewiki.org site. From there you can navigate to the console of other users who are doing the same thing. And yes, this is why access control is so important.)
Starting with release 16.1.0, AgileWiki works with either JDK1.5 or JDK1.6.
Hi, I have just joined the web 3.0 project. My first name is Khanh. I have a background in Computer Science and have been working in the software field for fourteen years. As a generalist, I am comfortable doing analysis, design, and/or programming (Java, C#, some PHP, some Javascript). I look forward to contribute to the project which sounds to be interesting.
Khanh
I just checked out the demo site? Is this our current version of agilewiki?
I just checked out the demo site? Is this our current version of agilewiki?
© 2009 Created by Bill la Forge on Ning. Create a Ning Network!