views:

124

answers:

2

Friends,

I'm seeking your input to help me think about my next opensource project. I have two ideas, either one of which I'd like to do, probably using Java as the primary language, just as a matter of preference. I'd particularly like to know whether either is already being done, so that I don't duplicate work, and whether or not you think it might be something useful in work that you've done.

The first is a SOA Directory Service alternative to UDDI. When I worked to help implement a middleware/SOA framework in the mid-90s, one of the pieces we built was a directory service. While it didn't offer the metadata storage capability that UDDI offers today, it had some advantages over UDDI. It was simple: easy to register services, do lookups, etc. It was very fast. Services registered using a lease mechanism, so you could get a list of matching service instances, knowing that the instances were probably still up. Next, it was replicated. Certainly, many UDDI implementations support replication. What I don't want to do is create another UDDI implementation, but rather to build an alternative Directory Service that is more like what we did in the 90s, consistent with today's framework needs, but more lightweight. To my mind, UDDI is far more heavyweight a solutions than most enterprises need, and a simpler solution might offer some appeal, provided that it integrated well with whatever framework they're already using. That is, that it would be easy to choose it as an alternative to UDDI.

The second possibility is to do an opensource implementation of a data federation system. We built one for a client that was never used, but there were some good ideas in there. I'd like to do it again as an opensource project, because it offers some useful capabilities. It essentially allows users to publish documents to a master node, then replicate documents to regional servers, that is, to push the data close to where it would be used within the organization. For example, if a document were flagged as pertinent to an organization's European region, it would be be pushed to that region's server, and to its backup server in a neighboring region. Users in the region can then make annotations to the documents as needed, and push those back to the original author for consideration. A federation system such as this offers some availability and performance benefits relative to having a monolithic document server. When a user wants a document that not stored in his or her region, the system goes back to the master or another regional server to fetch it. As an added capability, the original system supported plugins that could fetch data from external sources, and that might be useful to include.

A: 

However, some alternatives/comments on UDDI are provided by Phil Wainewright of Looselycoupled.com, as he cites Timothy Appnel recommending WSIL "for those who want a more 'lightweight ... document-based approach.' "

Do an analysis of what's out there, and think about your target audience. Will this be a proof-of-concept work, or do you have specific use cases that you are targeting?

maxwellb
It is a wiki though.
Aiden Bell
Oh. Still getting used to the difference. I'll update. Thx.
maxwellb
+1  A: 

Modular, Extensible and Understandable

I think the best projects are those that provide a functional foundation that others can easily contribute to. I will give you an example:

I have been meaning to contribute to some OS development for ages now. Firstly the obvious choice was the Linux kernel. But between the politics and huge code base, getting stuck in seemed like an arduous task to say the least ....

After looking around, I found my alternative which was the GNU Hurd kernel and services. This is a highly modular OS based around a microkernel. The source structure is easy to understand and I can see what I need to do to get stuck in. Perfect.

Give it some feeling We can all see how this worked for Mozilla and their immense marketing push.

Make it a definition that can grow Your project should state a purpose, a root, a seed that allows people to take it, use it and grow it. Then these branches of functionality can be shared and can inspire more people to contribute.

As for your proposed projects, only you can answer that I suppose.

Aiden Bell
Keep your eye on Haiku? Or have you already looked there. Btw, thank you for the previous comment.
maxwellb