Thursday, October 23, 2008

MOINC - The Future Web Services!!!

As Web services continue to become the dominant paradigm in the arena of distributed computing, more and more people around the world are starting to get interested in improving the performance and scalability achievable from Web services deployments. An enterprise grade Web services deployment must be high available and scalable in order for it to be useful to the clients and provide a competitive advantage for the service provider. Due to this reason it has become a must for the Web services middleware providers to support high availability and scalability via general techniques such as clustering.

Me and some of my colleagues recently started a venture to explore the potential of grid computing as a means of improving the availability and scalability of Web services deployments. Our plan is to design and develop a complete open source Java Web services deployment platform which makes use of grid computing as the basis for clustering. This exciting concept is a brain child of one of our lecturers at the Department of Computer Science and Engineering, Dr. Sanjiva Weerawarana, who also happens to be the chairman and CEO of WSO2. This research project focuses on not only improving the scalability of Web services deployments via grid computing but also putting the much wasted electrical energy to good use by getting idling computers to do some useful work.

We have named the project 'MOINC' which stands for Mora Open Infrastructure for Network Computing. (If you are confused what 'Mora' is all about it's a little nick name for the University of Moratuwa. 'Mora' also means shark in Sinhala.) So far we have managed to successfully complete the requirements gathering and design phases of this massive R&D effort. We have identified four components in our target platform and four groups of undergrads are working on implementing the components. The four components are;
  • MOINC Server
  • MOINC Client Agent
  • MOINC Server Manager
  • Thisara Communication Framework
You can learn more about our project and its four main components from our official website. You will also find links to our design documents, proposals, specifications and SVN repositories there. We recently released the 0.1-alpha version of the Thisara messaging framework which is one of the four components of the MOINC platform. You can download the binaries from our website too.

5 comments:

Saliya Ekanayake said...

This is really a nice project. I am too is interested :) Could you please give a link to the SVN location? Btw. it would be great if you can come up with some diagram depicting the components and connections between them. Also could you pleas explain what sort of a content is sent to a client machine? I mean, since all the Web services are hosted in the server what sort of a processing is done by the clients?

Anyway really great project.

Hasala said...

Awesome hiranya aiyya, if u need any help will be there for you.....

We help if you need any outsourcing...

cheers

Hiranya Jayathilaka said...

Saliya,
Info on our SVN repo can be found at http://www.moinc.org/index.php?option=com_content&view=article&id=56&Itemid=66
However there's nothing much in our SVN at the moment since we very recently started with the implementation phase.
Talking about the architecture we are planning to reuse the existing clustering features of Apache Axis2 and Apache Synapse as much as possible. MOINC clients will have to first register with the MOINC server, to be eligible to be added to the cluster. When a registered client machine moves into the idle state the MOINC client agent will start an Axis2 instance on the client machine. This Axis2 instance will be added to the MOINC cluster dynamically by the MOINC server. We will be using some kind of a URL repository (Registry) to publish service artifacts so that they can be easily shared among multiple hosts. The server will simply point a client instance to a particular URL when the client joins the MOINC cluster. A node in the cluster would host only a subset of the all published services.
I hope this makes the things clear. We will be publishing more documents on our architecture in the near future. (Site is actually still under construction)
Thanks a lot for the comments. Please do stay in touch and help us make this a relaity.

Hiranya Jayathilaka said...

Even though the service artifacts are uploaded at the MOINC server, the actual request processing is done by the clients. The server simply plays the role of a load balancer and distributes the incoming service requests to the active nodes in the cluster. The platform also has one special Axis2 instance which is a default member of the cluster. When there are no idle hosts on the network this instance will take care of the request processing.

Anonymous said...

Wow man I just went through MOINC.org … this is exceptionally exceptional… well you guys are the leading braininess of Sri Lanka who else… hats off… to you brother…