Wednesday, March 4, 2009

You do not learn 'Webservices' in one day...

The past few days have been a bit difficult for us, that is, we discovered that we may have moved a bit too fast...

Being new to the whole 'Webservices-thing' makes it difficult at times to see the forest through the trees. Webservices and more specifically the J2EE stack provide a LOT of ways and methods (all with their own accronym) to do certain things. Moreover, in many cases, there are several ways to accomplish the same goal, each needing its own set of tools and techniques.
Although we initially made a good start, we realized after a while that we were using certain techniques without actually knowing 'why' we necessarily used those (and more importantly: why we weren't using other, similar techniques). In particular, we were using Apache's axis ADB to parse incoming SOAP messages to Java objects. While learning more about the subject, we discovered that there are other libraries/techniques which provide similar features (XMLBeans, JiBX, JAXB, AXIOM, POJO's, etc).
Not knowing any of these libraries (except for JAXB, which we have used before), we didn't really know what their differences (strengths/weaknesses) were.
Others Axis/Webservices related libraries also needed some further investigation (WS-*, Spring, EJB's, JAX-WS among others).

That is why we decided to postpone the 'prototype-deadline' which was scheduled for this Friday; we really need some more time to investigate, so that we can make good decisions (we should at least know why we choose to use technique X and not technique Y).

Today, we already did a lot of extra research on various topics, and some concepts are already a lot clearer. (E.g.: we will probably use POJO's instead of ADB, or any other XML-parser/binder, since this prevents us from having to manually parse SOAP messages).


On another note, we've examined the SVN protocol more closely, and decided we'll replace the RA-layer in SVNkit with a custom (soap)implementation. In doing so, we only change the way svn communicates with a server, and do not change svn's mechanics for storing changes made to files.

Hopefully, we've made a better start now, and won't run into similar problems in the future...

You'll hear from us soon !

Sunday, March 1, 2009

Research and Prototyping

The past days, we've been doing some extensive research about webservices and the subversion revision control program.

After lots of reading and 'trail and error', we managed to get the apache axis2 servlet running on top of an apache tomcat server. This great tool does a lot of low level (SOAP/WSDL) serverside work behind the scenes, which will allow us to focus more on our core objective: implementing the SVN protocol using those webservices.

Today I succeeded in creating a small client which can communicate with the server. I started from a stub that was generated by an eclipse plugin for Axis. Although this helped a lot, the generated code is of very poor quality... So, I started refactoring and adding some basic (temporary) design to the code.
It will probably take a few more days before we'll have something where we can really build upon... (We hope to have some sort of better design (on paper) before friday.)

Meanwhile, Kurt has been examining the SVN-protocol more carefully. We discovered the SVNkit API for Java (which is also used by the popular Subclipse plugin for Eclipse). He managed to create a small prototype that can list directories within a repository, and even 'checkout' those !

Tomorrow we'll evaluate the progress we've made this weekend.

Joris




Wednesday, February 25, 2009

Blog creation

As you can see, we've quickly setup a blog for our WSVN (WebService SVN) project.
We will be using this blog as a way to communicate to everyone that wishes to follow the progress of our project.
The idea is to post frequently and often (no long blog posts here, just frequent small updates).

Below you can find the goal of the project (which is in fact the subject of our bachelor thesis):

Dutch:
Het eerste deel van de opdracht bestaat erin het SVN protocol en de hendendaagse webservicetechnieken te bestuderen.
Vervolgens dient er een client geschreven te worden die een SVN repository kan aanspreken,
hierbij wordt er extra aandacht besteed aan het beveiligingsaspect, ihb het gebruik van
e-id lezers om dit te verwezenlijken.

English:
The first part of the project consists of doing research about the SVN protocol and webservice-techniques.
After that, a client will be written that can query an SVN-repository. We'll pay extra attention on security related issues by using the e-ID card reader.

The exact specifics (which parts of SVN to implement, technical details, etc) of the project are not all known yet, and will be announced later.

More info follows soon.

Joris and Kurt