<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tiago&#039;s Tech Blog &#187; Apache Derby</title>
	<atom:link href="http://www.tiagoespinha.net/tag/apache-derby/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tiagoespinha.net</link>
	<description>My life, ideas, news and applications</description>
	<lastBuildDate>Mon, 09 Jan 2012 13:56:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<image>
  <link>http://www.tiagoespinha.net</link>
  <url>http://www.tiagoespinha.net/favico.jpg</url>
  <title>Tiago&#039;s Tech Blog</title>
</image>
		<item>
		<title>On Turmeric SOA, open-source and the Apache Software Foundation</title>
		<link>http://www.tiagoespinha.net/2011/08/on-turmeric-soa-open-source-and-the-apache-software-foundation/</link>
		<comments>http://www.tiagoespinha.net/2011/08/on-turmeric-soa-open-source-and-the-apache-software-foundation/#comments</comments>
		<pubDate>Wed, 31 Aug 2011 21:32:37 +0000</pubDate>
		<dc:creator>tiago</dc:creator>
				<category><![CDATA[SOA]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Apache DB]]></category>
		<category><![CDATA[Apache Derby]]></category>
		<category><![CDATA[Apache PMC]]></category>
		<category><![CDATA[Apache Software Foundation]]></category>
		<category><![CDATA[ASF]]></category>
		<category><![CDATA[PMC]]></category>
		<category><![CDATA[Program Management Committee]]></category>
		<category><![CDATA[Service Oriented Architectures]]></category>
		<category><![CDATA[Turmeric]]></category>
		<category><![CDATA[Turmeric SOA]]></category>

		<guid isPermaLink="false">http://www.tiagoespinha.net/?p=490</guid>
		<description><![CDATA[It's been a while since I posted something on this blog, partly due to my laziness, but also due to a chronic lack of time and patience to come home after an intellectually intense day of work and still have the peace of mind to gather my thoughts and put them in words. Today was, [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.tiagoespinha.net%2F2011%2F08%2Fon-turmeric-soa-open-source-and-the-apache-software-foundation%2F" onclick="pageTracker._trackPageview('/outgoing/api.tweetmeme.com/share?url=http_3A_2F_2Fwww.tiagoespinha.net_2F2011_2F08_2Fon-turmeric-soa-open-source-and-the-apache-software-foundation_2F&amp;referer=');"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.tiagoespinha.net%2F2011%2F08%2Fon-turmeric-soa-open-source-and-the-apache-software-foundation%2F&amp;source=etiago&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p style="text-align: justify;"><a href="http://www.tiagoespinha.net/wp-content/uploads/2011/08/Service-Oriented-Architecture-SOA-For-Dummies.jpg" rel="lightbox[490]" title="Service Oriented Architecture SOA For Dummies"><img class="alignleft size-full wp-image-496" title="Service Oriented Architecture SOA For Dummies" src="http://www.tiagoespinha.net/wp-content/uploads/2011/08/Service-Oriented-Architecture-SOA-For-Dummies.jpg" alt="" width="194" height="240" /></a>It's been a while since I posted something on this blog, partly due to my laziness, but also due to a chronic lack of time and patience to come home after an intellectually intense day of work and still have the peace of mind to gather my thoughts and put them in words. Today was, luckily, one of those days. Not because it was a particularly easy day at work (reengineering someone else's code with little to non-existing documentation is <strong>never</strong> an easy job) but perhaps the intense gym session loosed my brains just enough for organized and coherent thought to just happen. In any case, I digress.</p>
<p style="text-align: justify;">This post has three main themes. I will be talking about a platform for SOA applications called Turmeric (funny name, I know. I'm using for SOA the same I use in my lentil soup), open-source in general and finally, the Apache Software Foundation and some recent events I've been involved in.</p>
<p style="text-align: justify;"><span id="more-490"></span></p>
<p style="text-align: justify;">I shall begin with <a href="https://www.ebayopensource.org/index.php/Turmeric/HomePage" onclick="pageTracker._trackPageview('/outgoing/www.ebayopensource.org/index.php/Turmeric/HomePage?referer=');">Turmeric SOA</a>. Turmeric SOA, despite the strange choice of name, is actually an industry grade platform for web services. Why is it industry grade, you ask? Is it because the developers so claim? Not really. The industry grade designation is actually made by me - the project (and its developers) do not claim anything about it being industry ready or anything of that kind. I should mention, however, that Turmeric SOA is the <strong>open-source</strong> version of the platform that powers eBay. Yes, you read that right, THE eBay. In my book, if a platform handles the millions of customers all over the world that eBay does, that platform is pretty much as industry-grade as it gets these days.</p>
<p style="text-align: justify;">Why am I talking about Turmeric SOA? Why am I even involved in Turmeric SOA?</p>
<p style="text-align: justify;">It's very simple really and it all points back to my work as a Ph.D. student at the <a href="http://www.st.ewi.tudelft.nl/~tiago/" onclick="pageTracker._trackPageview('/outgoing/www.st.ewi.tudelft.nl/_tiago/?referer=');">Delft University of Technology</a>. My research, in broad terms consists of analyzing and coming up with new ways of helping the maintenance, reengineering and testing of Service Oriented Architectures. In this description, I've cleverly omitted the keyword that defines my research, mostly because it's a vague buzzword that means different things to different people (in case you're wondering, the word is <em>multi-tenancy</em>). In any case, my research involving SOA only makes sense if I have a software system on which I can investigate and demonstrate my claims and this is where it all gets hairy.</p>
<p style="text-align: justify;">The fact is that for most companies, SOA simply means exposing some of their data through an API built on top of SOAP or REST, et voilà. All of a sudden they can claim that they are a company of the future because they have a SOA system. This, however, couldn't be farther from what an actual SOA system should be. We can even take the etymological angle and look at what SOA means: Service Oriented <strong>Architecture</strong>. I've emphasized the word "architecture" as I believe that is the keyword in the SOA acronym. Your SOA system should be built using an architectural style consistent with that of services that communicate with each other. It should be oriented towards/based on services, and not a monolithic blob with one tiny service gateway that allows me to query some data, even if that data is provided in a platform-agnostic manner. To people who have such monolithic SOA-wannabe systems, I ask: can I slice part of your software and place it elsewhere in the world with an Internet connection on both ends? If I can't, what if your user-base or your business grow to a point where one server no longer cuts it? What do you do then? Keep buying bigger motherboards with more CPU and RAM sockets?</p>
<p style="text-align: justify;">Let's get real here. Your software system is service-oriented if I can grab all the pieces that compose it and spread it all over the world. The only thing I should have to tell the software system is: "you have service A deployed at this endpoint, service B at this other endpoint, etc etc" and then it would automagically just work, regardless of whether the services are running in the same application server or in each other's antipodes in completely opposite timezones.</p>
<p style="text-align: justify;">So why am I bringing this up? Well, as it stands it's difficult enough to find open-source systems that are truly built around a service-oriented architecture. For most of these services, SOA is an afterthought. It's something those open-source ERP developers woke up one day and thought "hey, wouldn't it be cool if our ERP had some SOA features?" - and alas, the result is invariably slamming some poorly engineered JAXWS or Axis2 solution on top of already existing business logic and inevitably making a mess of a perfectly fine (albeit, poorly scaling) software system.</p>
<p style="text-align: justify;">From my own experience, this is the summary of most open-source ERP systems out there that claim to have some kind of SOA functionality.</p>
<p style="text-align: justify;">This doesn't cut it for us. This is not what the SOA paradigm truly stands for and these systems are ultimately useless for my research. There's only one web service! How the hell is it supposed to communicate with anything? Its business logic is ultimately still relying on local method calls.</p>
<p style="text-align: justify;">Then out of this hell comes another frightening fact. Even the web service platforms out there are useless on their own. I was chatting with a friend of mine - who's not a computer scientist - the other day, and I was struggling to explain to her what exactly my problem was without using terms such as JAXWS, Turmeric, web services or SOA. I think I came up with a clear laymen explanation involving the process of building a car. So, my problem right now is that I need a very specific type of car, say, one that is rocket propelled. There are, of course, brands out there that have rocket propelled cars but there's no way on Earth that these guys are gonna let me even LOOK at their car, set aside open the hood and disassemble its engine. Yet, my research consists of analyzing the problems and challenges of maintaining a rocket propelled car. But I have no car, and no means to get one. This is a pretty big inconvenience. Not even me promising this car brand that I won't build a competitor car, or destroy their car will convince them to let me pop the hood - and so, Houston, we have a problem.</p>
<p style="text-align: justify;">The solution to this problem is seemingly simple. I can just build my own rocket propelled car and hope for the best. But then we run into a more essential problem: I'm not a car maker, nor does my department pay me to make cars. Also, if by the end of my Ph.D. I've only built a rocket propelled car, they're not gonna be happy.</p>
<p style="text-align: justify;">I could also cut some corners and build a mockup of a rocket propelled car. Sure, maybe it doesn't have a gearbox and the steering wheel is made of cardboard, but hey! It's a rocket propelled car! This would be swell, if it wasn't for the fact that even the free tools I can get out there to make cars are pretty... well... horrible. Stepping back out of the metaphor world, the problem is that the technologies available allow me to build simple web services. I can just grab Java's Metro project (aka JAXWS) and very easily deploy a web service, but that's just what it is. A web service, accessible via SOAP, amidst nothingness. There's nothing I can query to know that this service is there, there's no platform managing this service and telling me that it has <em>this many</em> services and that <em>this particular one</em> is one of them, there's no statistics or runtime information being kept on this service, there's basically... nothing. Just a Java class with a "WebService" sticker on it.</p>
<p style="text-align: justify;">These tools make it difficult to build something that even resembles a real world SOA system (i.e. a rocket propelled car). They're the tiniest building blocks that you can think of. The sand in the car's windshield or the iron ore in the chassis' stainless steel. Sure, I can melt the sand, add some caustic soda and fashion my own windshield out of it. I can melt the iron ore and through some process I don't even know, make steel. But how long is this going to take me? And will the final result be a faithful representation of what actual companies in this line of work have made? Or just a silly toy example that doesn't fully represent the pains and benefits of such a system?</p>
<p style="text-align: justify;"><a href="http://www.tiagoespinha.net/wp-content/uploads/2011/08/TurmericLogo.jpg" rel="lightbox[490]" title="TurmericLogo"><img class="alignright size-full wp-image-498" title="TurmericLogo" src="http://www.tiagoespinha.net/wp-content/uploads/2011/08/TurmericLogo.jpg" alt="" width="214" height="117" /></a>That's where Turmeric comes in. My first impression when I started using Turmeric was that of confusion. I thought to myself "well, that's another platform with an awful lot of features that no one's ever going to use", but I was wrong. Over time, with more thoroughly exploring this platform, it became clear that perhaps every single feature in Turmeric really stemmed from a real world use case, most likely from eBay. All those features, if you really think about it, you'll end up realizing "oh yeah, they probably use this to achieve X and Y". In other words, even if we don't have the rocket propelled car, we have the exact tools that we need to build one. Knowing that if the toolset includes a door-shaped mould, it probably means that our car should have at least one door - for which other reason would those guys have built such a tool if they hadn't built a door for their car before?</p>
<p style="text-align: justify;">This makes Turmeric a very good candidate to be used as the tooling for my research. But Turmeric isn't, in my point of view, a very good candidate anymore. It's evolved from that into an <strong>excellent</strong> candidate at that! Now it's the time when I really have to shine a light on <strong>all</strong> the guys behind the task of open-sourcing eBay's platform. Those guys form a small community of people who usually hang around #turmeric-dev at irc.freenode.net and who just happen to be extremely friendly and helpful. Every time I hit a road bump with Turmeric, these guys go out of their ways to help me achieve the things I'm trying to achieve and I think that's a lot more than I could have ever asked for.</p>
<p style="text-align: justify;">Quickly moving to the topic of open-source, since Turmeric SOA is actually an open-source project, this made me ever so fond of open-source stuff. It's really nice to see all these people dedicated in making such a tremendous contribution that is open-sourcing a platform from eBay to the good of the community. I love that. I love being able to - should I need - download a relational database management system from Apache without having to pay for it. I love seeing projects like Ubuntu flourish, showing companies that even software is all about the people it's built to and with a little help, even an open-source can kick big corporations in their royal butts.</p>
<p style="text-align: justify;">All this to say that I've learned a whole lot over the last few days. Amongst the things I've learned is for example, git. The cool kids' versioning system. As Turmeric nowadays relies on Git for its version management, I thought now would be a good time to learn it and see what advantages it brings over SVN - and boy, does it leave SVN in its rear view mirror! I've grown so much accustomed to it that I've started moving my projects to Git as well and I've been trying to influence other people around me to use it (Andy, if you're reading this, wink wink, nudge nudge <img src='http://www.tiagoespinha.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ). The saddest part of it all is that, in my opinion, you don't really fully understand the advantages it brings until you really give it a try with real source code that you must maintain in collaboration with other people.</p>
<p style="text-align: justify;">Going on a bit of a tangent, Git (and open-source) has also enabled me to propose some enhancements to David Carver's (Turmeric SOA's top man) IRC bot that idles around #turmeric-dev - all via the clever features of Github, forking and pull requesting.</p>
<p style="text-align: justify;"><a href="http://www.tiagoespinha.net/wp-content/uploads/2011/08/46833_425136126860_586946860_5624931_1569623_n.jpg" rel="lightbox[490]" title="46833_425136126860_586946860_5624931_1569623_n"><img class="alignleft size-full wp-image-499" title="46833_425136126860_586946860_5624931_1569623_n" src="http://www.tiagoespinha.net/wp-content/uploads/2011/08/46833_425136126860_586946860_5624931_1569623_n.jpg" alt="" width="254" height="259" /></a>To finalize, the Apache Software Foundation. I'm gonna make it short and sweet. As of a couple of days ago, my fellow open-sourcers at Apache Derby decided to vote me to become a PMC (Program Management Committee) member for the Apache DB project. I have, of course, accepted and it is a post I will do my best to honor and live up to. I started off as a Google Summer of Code student at Apache Derby, then got promoted to committership, this year I had the privilege to mentor Siddharth Srivastava and now I'm becoming a PMC member. Life's good.</p>
<p style="text-align: justify;">It's late now, time for sleep. If you've read it all the way down here, thank you! You're brave!</p>
<p style="text-align: justify;">Good night!</p>
 <img src="http://www.tiagoespinha.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=490" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.tiagoespinha.net/2011/08/on-turmeric-soa-open-source-and-the-apache-software-foundation/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Tiago is now officially an ASF committer!</title>
		<link>http://www.tiagoespinha.net/2010/08/tiago-is-now-officially-an-asf-committer/</link>
		<comments>http://www.tiagoespinha.net/2010/08/tiago-is-now-officially-an-asf-committer/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 21:16:42 +0000</pubDate>
		<dc:creator>tiago</dc:creator>
				<category><![CDATA[my life]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Apache Derby]]></category>
		<category><![CDATA[ASF]]></category>
		<category><![CDATA[ASF Committer]]></category>
		<category><![CDATA[Committer]]></category>
		<category><![CDATA[Derby]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[The Apache Software Foundation]]></category>

		<guid isPermaLink="false">http://www.tiagoespinha.net/?p=357</guid>
		<description><![CDATA[True to the proverbial "feather in the cap", I have been promoted to committer with the project I have been participating on during the last few months, Apache Derby. There's not much to say except that it feels really good to have your hard work recognized Apache Derby is a great project with a really [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.tiagoespinha.net%2F2010%2F08%2Ftiago-is-now-officially-an-asf-committer%2F" onclick="pageTracker._trackPageview('/outgoing/api.tweetmeme.com/share?url=http_3A_2F_2Fwww.tiagoespinha.net_2F2010_2F08_2Ftiago-is-now-officially-an-asf-committer_2F&amp;referer=');"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.tiagoespinha.net%2F2010%2F08%2Ftiago-is-now-officially-an-asf-committer%2F&amp;source=etiago&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p style="text-align: justify;"><a href="http://www.tiagoespinha.net/wp-content/uploads/2010/08/derbylogo.jpg" rel="lightbox[357]" title="derbylogo"><img class="size-full wp-image-358 alignleft" title="derbylogo" src="http://www.tiagoespinha.net/wp-content/uploads/2010/08/derbylogo.jpg" alt="" width="206" height="143" /></a>True to the proverbial "feather in the cap", I have been promoted to committer with the project I have been participating on during the last few months, <a href="http://db.apache.org/derby/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/db.apache.org/derby/?referer=');">Apache Derby</a>. There's not much to say except that it feels really good to have your hard work recognized <img src='http://www.tiagoespinha.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p style="text-align: justify;">Apache Derby is a great project with a really nice community of helpful people and it was through Derby that I have participated and successfully completed the Google Summer of Code challenge for two years in a row! It's always a great challenge even to the sharpest mind and most advanced skills because this is an extensive project that has already been around for more than a decade. Over this period different developers have participated on it which adds to the challenge of reengineering and simple engineering of new features when the need arises. I can't say this is a disadvantage though as it is an excellent way of being exposed to actual production code from an IT giant (Apache Derby once was IBM Cloudscape). It's also exciting because the changes that you make will actually have an impact on the thousands of people that use Apache Derby and for this reason all changes have to be done with most care to keep Derby's performance up to the challenge as well as to ensure that all standards are kept.</p>
<p style="text-align: justify;">With this said, I'll just leave here the link to the "historical" vote in the ASF list <img src='http://www.tiagoespinha.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p style="text-align: justify;"><a href="http://mail-archives.apache.org/mod_mbox/db-derby-dev/201008.mbox/%3C4C6F038C.7080708@sbcglobal.net%3E" onclick="pageTracker._trackPageview('/outgoing/mail-archives.apache.org/mod_mbox/db-derby-dev/201008.mbox/_3C4C6F038C.7080708_sbcglobal.net_3E?referer=');">http://mail-archives.apache.org/mod_mbox/db-derby-dev/201008.mbox/&lt;4C6F038C.7080708@sbcglobal.net&gt;</a></p>
 <img src="http://www.tiagoespinha.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=357" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.tiagoespinha.net/2010/08/tiago-is-now-officially-an-asf-committer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Summer of Code 2009</title>
		<link>http://www.tiagoespinha.net/2009/04/google-summer-of-code-2009/</link>
		<comments>http://www.tiagoespinha.net/2009/04/google-summer-of-code-2009/#comments</comments>
		<pubDate>Fri, 10 Apr 2009 20:29:43 +0000</pubDate>
		<dc:creator>tiago</dc:creator>
				<category><![CDATA[my life]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Apache Derby]]></category>
		<category><![CDATA[Derby]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google Summer of Code]]></category>
		<category><![CDATA[GSoC]]></category>
		<category><![CDATA[GSoC 2009]]></category>

		<guid isPermaLink="false">http://www.tiagoespinha.net/?p=169</guid>
		<description><![CDATA[I know this post comes a little late and all but I still had to mention it on my blog. It turns out I am repeating the stunt again. After being turned down by Google last year, I decided I would try to apply once more this year. Since last year I still had the [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.tiagoespinha.net%2F2009%2F04%2Fgoogle-summer-of-code-2009%2F" onclick="pageTracker._trackPageview('/outgoing/api.tweetmeme.com/share?url=http_3A_2F_2Fwww.tiagoespinha.net_2F2009_2F04_2Fgoogle-summer-of-code-2009_2F&amp;referer=');"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.tiagoespinha.net%2F2009%2F04%2Fgoogle-summer-of-code-2009%2F&amp;source=etiago&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>I know this post comes a little late and all but I still had to mention it on my blog. It turns out I am repeating the stunt again. After being turned down by Google last year, I decided I would try to apply once more this year.</p>
<p>Since last year I still had the change to get acquainted and get the logic of <a href="http://db.apache.org/derby/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/db.apache.org/derby/?referer=');">Apache Derby</a>, I thought it would be wise to apply for the same project, and so I did. After all I do have an education on database management and also on Java, which are key for a project like Apache Derby. On top of it all there's also my tutor from last year; despite not having been chosen I still had a tutor who helped me all the way through. Kathey Marsden agreed to be my tutor again this year and that is a plus for me because I know upfront what I can expect.</p>
<p>So, the application period is over and my application is submitted. The results should be out on April 20th and I have my fingers crossed for me to get picked <img src='http://www.tiagoespinha.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
 <img src="http://www.tiagoespinha.net/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=169" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.tiagoespinha.net/2009/04/google-summer-of-code-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

