<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3856624862131672592</id><updated>2011-09-17T10:12:15.407+02:00</updated><category term='qtjolie'/><category term='jolie'/><category term='vision'/><category term='metaservice'/><category term='italianaSoftware'/><category term='kde'/><title type='text'>fmontesi's blog</title><subtitle type='html'>Hacking the way up to pervasive Service-oriented Computing</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://fmontesi.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://fmontesi.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Fabrizio Montesi</name><uri>http://www.blogger.com/profile/12780751151972172366</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_I6cBVk6ZngU/SWt0B8jvayI/AAAAAAAAABk/HRKz20uNuHo/S220/fmontesi.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>26</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3856624862131672592.post-2985419482774858279</id><published>2010-11-02T09:52:00.001+01:00</published><updated>2010-11-02T15:06:34.623+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kde'/><title type='text'>Plasma crashing upon login after updating the system clock</title><content type='html'>Many people have just recently switched from DST to standard time, putting their clocks an hour back. This can possibly cause a nasty behaviour in Plasma, due to a bug in KSharedDataCache: the application simply crashes just after logging in.&lt;br /&gt;The bug has already been &lt;a href="https://bugs.kde.org/show_bug.cgi?id=253795"&gt;reported&lt;/a&gt; and corrected at the speed of light (kudos to Michael Pyne for the instantaneous reaction), so it will be fixed in KDE SC 4.5.3 and 4.6. If you are running KDE SC 4.5.2 and you do not want to apply the patch in the bug report, you can simply empty your user's cache directory.&lt;br /&gt;Simply go in the directory pointed by cache-$HOSTNAME inside your user's kde configuration directory and remove every file that is located inside.&lt;br /&gt;In openSUSE such directory is /var/tmp/kdecache-$USER, and your kde configuration directory is $HOME/.kde4.&lt;br /&gt;&lt;br /&gt;Happy Plasmaing! (or would that word be Plasming? ;-) )&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3856624862131672592-2985419482774858279?l=fmontesi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fmontesi.blogspot.com/feeds/2985419482774858279/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3856624862131672592&amp;postID=2985419482774858279' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/2985419482774858279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/2985419482774858279'/><link rel='alternate' type='text/html' href='http://fmontesi.blogspot.com/2010/11/plasma-crashing-upon-login-after.html' title='Plasma crashing upon login after updating the system clock'/><author><name>Fabrizio Montesi</name><uri>http://www.blogger.com/profile/12780751151972172366</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_I6cBVk6ZngU/SWt0B8jvayI/AAAAAAAAABk/HRKz20uNuHo/S220/fmontesi.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3856624862131672592.post-3516553896248306539</id><published>2010-05-13T15:37:00.007+02:00</published><updated>2010-05-13T17:11:33.814+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='metaservice'/><category scheme='http://www.blogger.com/atom/ns#' term='jolie'/><category scheme='http://www.blogger.com/atom/ns#' term='qtjolie'/><category scheme='http://www.blogger.com/atom/ns#' term='kde'/><title type='text'>Web Services for human beings</title><content type='html'>&lt;span style="font-size: xx-small;"&gt;&lt;i&gt;No, this is not related to *buntu. But this is looong... and now I've got your attention. :-)&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: xx-small;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;Interacting with Web Services usually implies reading some &lt;a href="http://www.w3.org/TR/wsdl"&gt;WSDL (Web Service Description Language) document&lt;/a&gt;. Unfortunately, WSDL documents are written in XML and can be pretty complicated, leaving the user with no other choice than to use some graphical development tool in order to understand them.&lt;br /&gt;&lt;br /&gt;Lately at italianaSoftware we had to handle a lot of Web Services stuff, equipped with long WSDL documents and complex data types. &lt;a href="http://www.jolie-lang.org/"&gt;Jolie&lt;/a&gt; already had support for the SOAP protocol, but one had to code the interface and data types of the Web Service to invoke by hand. So we started a new project aiming to enable Jolie for the automatic usage of WSDL documents, mainly composed by two parts: a tool and an improvement to the Jolie SOAP protocol. Of course both things are open source and available in the trunk branch in the Jolie svn repository!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;wsdl2jolie &lt;/b&gt;(whose executable is now installed by default if you install Jolie from trunk) is the newly developed tool in question. It simply takes a URL to a WSDL document and automatically downloads all the related files (e.g., referred XML schemas), parses them and outputs the corresponding Jolie port/interface/data type definitions.&lt;br /&gt;Let us see an example. See this WSDL document for a service that calculates prime numbers: &lt;a href="http://www50.brinkster.com/vbfacileinpt/np.asmx?wsdl"&gt;http://www50.brinkster.com/vbfacileinpt/np.asmx?wsdl&lt;/a&gt;. Reading the raw XML is not so easy, or at least requires some time.&lt;br /&gt;Let us see what we get if we execute &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;wsdl2jolie http://www50.brinkster.com/vbfacileinpt/np.asmx?wsdl&lt;/span&gt; &lt;span style="font-family: inherit;"&gt;:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Retrieving document at 'http://www50.brinkster.com/vbfacileinpt/np.asmx?wsdl'.&lt;br /&gt;type GetPrimeNumbersResponse:void {&lt;br /&gt;        .GetPrimeNumbersResult?:string&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;type GetPrimeNumbers:void {&lt;br /&gt;        .max:int&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;interface PrimeNumbersHttpPost {&lt;br /&gt;RequestResponse:&lt;br /&gt;        GetPrimeNumbers(string)(string)&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;interface PrimeNumbersHttpGet {&lt;br /&gt;RequestResponse:&lt;br /&gt;        GetPrimeNumbers(string)(string)&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;interface PrimeNumbersSoap {&lt;br /&gt;RequestResponse:&lt;br /&gt;        GetPrimeNumbers(GetPrimeNumbers)(GetPrimeNumbersResponse)&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;outputPort PrimeNumbersHttpPost {&lt;br /&gt;Location: "socket://www50.brinkster.com:80/vbfacileinpt/np.asmx"&lt;br /&gt;Protocol: http&lt;br /&gt;Interfaces: PrimeNumbersHttpPost&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;outputPort PrimeNumbersHttpGet {&lt;br /&gt;Location: "socket://www50.brinkster.com:80/vbfacileinpt/np.asmx"&lt;br /&gt;Protocol: http&lt;br /&gt;Interfaces: PrimeNumbersHttpGet&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;outputPort PrimeNumbersSoap {&lt;br /&gt;Location: "socket://www50.brinkster.com:80/vbfacileinpt/np.asmx"&lt;br /&gt;Protocol: soap {&lt;br /&gt;        .wsdl = "http://www50.brinkster.com/vbfacileinpt/np.asmx?wsdl";&lt;br /&gt;        .wsdl.port = "PrimeNumbersSoap"&lt;br /&gt;}&lt;br /&gt;Interfaces: PrimeNumbersSoap&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;which is the Jolie equivalent of the WSDL document. Those ".wsdl" and ".wsdl.port" parameters are the aforementioned improvement to the SOAP protocol: when the output port is used for the first time, Jolie will read the WSDL document for processing information about the correct configuration for interacting with the service instead of forcing the user to insert it by hand.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Now we can just put this into a file, say "PrimeNumbers.iol"&lt;span style="font-family: inherit;"&gt;, and use the output ports we discovered from Jolie code. As in the following:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;include "PrimeNumbers.iol"&lt;br /&gt;include "console.iol"&lt;br /&gt;&lt;br /&gt;main&lt;br /&gt;{&lt;br /&gt;        request.max = 27;&lt;br /&gt;        GetPrimeNumbers@PrimeNumbersSoap( request )( response );&lt;br /&gt;        println@Console( response.GetPrimeNumbersResult )()&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;That little program will output "1,3,5,7,11,13,17,19,23&lt;/span&gt;&lt;span style="font-size: small;"&gt;"&lt;/span&gt;&lt;span style="font-size: small;"&gt;. The example can be downloaded from &lt;a href="http://www.jolie-lang.org/examples/unsorted/prime_numbers_wsdl.zip"&gt;this link&lt;/a&gt; (remember, it requires Jolie from trunk).&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;wsdl2jolie acts as a nice tool for being able to use the typed interface of a Web Service from Jolie and for getting a more human-readable form of a WSDL document (its Jolie form).&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;span style="font-family: inherit;"&gt;Another nice feature we get for free from the SOAP protocol improvement is that &lt;b&gt;now MetaService can act as a transparent bridge towards Web Services&lt;/b&gt;. Simply call the addRedirection operation with the right protocol configuration (in this case, the ".wsdl" and ".wsdl.port" parameters) and MetaService will automatically download the WSDL document (we also have a cache system for them already in trunk!) and make it callable by clients.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;span style="font-family: inherit;"&gt;This is a huge step forward for client libraries such as QtJolie: just tell where the WSDL document is and you can already place calls to the Web Service of interest.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;span style="font-family: inherit;"&gt;Also, by using &lt;b&gt;wsdl2jolie&lt;/b&gt; first and then tools such as &lt;b&gt;jolie2plasma&lt;/b&gt; one could use the Jolie intermediate representation for transforming a Web Service interface definition into a (&lt;a href="http://www.kde.org/"&gt;KDE&lt;/a&gt;) Plasma::Service XML one. With the same trick, one could also write C++ generators for QtJolie and introduce ease and type-safeness to Web Services invocations. I and Kévin sure have things to think about now. ;-)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;span style="font-family: inherit;"&gt;Beware that the code is still in its early stages. It already works with a lot of Web Services, but we're still improving it. For instance, we currently support only the SOAP document format (which is the one people advise to use, anyway). Patches, comments and reports are welcome in jolie-devel @ lists.sourceforge.net!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3856624862131672592-3516553896248306539?l=fmontesi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fmontesi.blogspot.com/feeds/3516553896248306539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3856624862131672592&amp;postID=3516553896248306539' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/3516553896248306539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/3516553896248306539'/><link rel='alternate' type='text/html' href='http://fmontesi.blogspot.com/2010/05/web-services-for-human-beings.html' title='Web Services for human beings'/><author><name>Fabrizio Montesi</name><uri>http://www.blogger.com/profile/12780751151972172366</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_I6cBVk6ZngU/SWt0B8jvayI/AAAAAAAAABk/HRKz20uNuHo/S220/fmontesi.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3856624862131672592.post-1233749388678732111</id><published>2009-11-24T17:00:00.000+01:00</published><updated>2009-11-24T17:00:58.849+01:00</updated><title type='text'>Discovering Jolie... in italian!</title><content type='html'>I have just discovered that Simone (Demo) Gentili is documenting his journey about the &lt;a href="http://www.jolie-lang.org/"&gt;Jolie language&lt;/a&gt;&amp;nbsp;on his blog! As a matter of fact, he's practically translating the Jolie language tutorials in italian!&lt;br /&gt;See &lt;a href="http://www.unodeitanti.com/wordpress/jolie/"&gt;his blog here&lt;/a&gt; if you are interested in some Jolie lessons in italian.&lt;br /&gt;&lt;br /&gt;This is obviously a very nice surprise for us and an important form of contribution, so thank you Simone for your work!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3856624862131672592-1233749388678732111?l=fmontesi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fmontesi.blogspot.com/feeds/1233749388678732111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3856624862131672592&amp;postID=1233749388678732111' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/1233749388678732111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/1233749388678732111'/><link rel='alternate' type='text/html' href='http://fmontesi.blogspot.com/2009/11/discovering-jolie-in-italian.html' title='Discovering Jolie... in italian!'/><author><name>Fabrizio Montesi</name><uri>http://www.blogger.com/profile/12780751151972172366</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_I6cBVk6ZngU/SWt0B8jvayI/AAAAAAAAABk/HRKz20uNuHo/S220/fmontesi.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3856624862131672592.post-1201950550576025250</id><published>2009-10-20T18:19:00.006+02:00</published><updated>2009-10-21T11:09:57.055+02:00</updated><title type='text'>Service-Oriented Computing: a new programming paradigm?</title><content type='html'>&lt;span style="font-style: italic;"&gt;The point of this post is to introduce a paper that explains service-oriented computing that can be read by anyone, without requiring too much previous knowledge. The link is in the last paragraph of the post. If you were interested in knowing more about what service-oriented computing is, it could be a good starting point.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The concepts of online service and distributed programming exist since quite some time now, to the point that they evolved into a huge research topic both for academia and the industry. Huge as it is, a lot of different results from different research areas appeared; conferences on Service-Oriented Computing (SOC) were opened; a lot of investments were made.&lt;br /&gt;In the last decade or so it became apparent that new foundations were need in order to build truly inter-operable distributed applications and that ad-hoc technologies were not good enough for the job. Moreover, it was clear how much SOC could benefit from theoretical research for handling its complex inherent problems. New concepts were forged and new languages were made, the most notable result being the set of languages, specifications and technologies that falls under the name of "Web Services".&lt;br /&gt;&lt;br /&gt;Today, we reached the point in which we can look back and see that "services" follow common principles (e.g. public interface, protocol descriptions...) and must necessarily address certain problems (e.g. session handling, structured data description and manipulation, interoperability...). The whole thing grew up so much in detail that we may be looking at a new programming paradigm: the service-oriented one. A paradigm that has the concept of "service" as a native element, much like object-oriented programming has the native concept of "object" or functional programming of "function".&lt;br /&gt;This is not something that we just imagined. We see this every day at &lt;a href="http://www.italianasoftware.com"&gt;italianaSoftware&lt;/a&gt;, programming solutions for our customers with the &lt;a href="http://www.jolie-lang.org"&gt;JOLIE language&lt;/a&gt;. Having a language that allows you to make lightweight services in a matter of minutes and to exploit local communications between them in order to maintain performance can change your point of view: services are not mere bridges between different applications anymore, they can be used (and reused) as the building blocks of a single application.&lt;br /&gt;&lt;br /&gt;We tried to express our definition and experience on this new paradigm on a concept paper at YR-SOC'09, which is publicly available online. Here is the &lt;a href="http://arxiv.org/abs/0906.3920"&gt;link&lt;/a&gt; (on the upper right area of the linked page you can find links for the pdf or postscript versions). It is an introduction to service-oriented computing that considers what has been made so far, so you will find links to a lot of existing works inside it. Some concepts may be pretty new to some readers (after all, it was originally meant for an academic audience and contains references to theoretical works), but we are currently interested in enhancing the paper to make it more readable by the casual developer (probably with less references to theoretical works and more comparisons with existing languages and technologies) and put the new version online in the JOLIE website. So, if you read the paper and find some concepts too obscure or you have some doubts or comments (apart what I have already said) or some arguments that you wish would be addressed, please let us know!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3856624862131672592-1201950550576025250?l=fmontesi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fmontesi.blogspot.com/feeds/1201950550576025250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3856624862131672592&amp;postID=1201950550576025250' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/1201950550576025250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/1201950550576025250'/><link rel='alternate' type='text/html' href='http://fmontesi.blogspot.com/2009/10/service-oriented-computing-new.html' title='Service-Oriented Computing: a new programming paradigm?'/><author><name>Fabrizio Montesi</name><uri>http://www.blogger.com/profile/12780751151972172366</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_I6cBVk6ZngU/SWt0B8jvayI/AAAAAAAAABk/HRKz20uNuHo/S220/fmontesi.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3856624862131672592.post-8365367961964245667</id><published>2009-09-29T09:48:00.001+02:00</published><updated>2009-09-29T09:48:41.380+02:00</updated><title type='text'>Jolie and ARM</title><content type='html'>Last year (yeah, this is one of those "I should have posted this long ago" posts, but better late than never) I received a precious delivery:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_I6cBVk6ZngU/STlF0zRUZ9I/AAAAAAAAABc/0PsvHrAHV0U/s1600-h/05-12-08_1451.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 256px; height: 320px;" src="http://3.bp.blogspot.com/_I6cBVk6ZngU/STlF0zRUZ9I/AAAAAAAAABc/0PsvHrAHV0U/s320/05-12-08_1451.jpg" alt="" id="BLOGGER_PHOTO_ID_5276325211859609554" border="0" /&gt;&lt;/a&gt;Oh, yes! KDE sent me bubble wrap, woohoo! I played with it until its exhaustion, so thank you KDE (and Claudia for handling the delivery, and Nokia for providing the materials)!&lt;br /&gt;&lt;br /&gt;After playing with the bubble wrap I discovered that there was something inside it: a shining Nokia N810. My very first ARM device to experiment with. The ARM world is indeed very interesting not only for &lt;a href="http://www.kde.org/"&gt;KDE&lt;/a&gt;, but also for the &lt;a href="http://www.jolie-lang.org/"&gt;Jolie&lt;/a&gt; language; so I started to try installing a working execution environment for Jolie in this little device.&lt;br /&gt;&lt;br /&gt;The first try wasn't easy. I needed a working Java environment before trying to install Jolie. Fortunately, the &lt;a href="https://wiki.evolvis.org/jalimo/index.php/Main_Page"&gt;Jalimo project&lt;/a&gt; out there has already made all the important steps. So I made contact with them in IRC and I've found people willing to help. Many thanks in particular to &lt;a href="http://www.ohloh.net/accounts/xranby"&gt;xranby&lt;/a&gt;, who provided me an almost-ready binary package for getting me started. The result?&lt;br /&gt;Jolie has been tested on ARM, and it just works! The whole process has produced some patches for Jolie too, in terms of performance improvements (loading protocol extensions is now faster than before) and memory consumption.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3856624862131672592-8365367961964245667?l=fmontesi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fmontesi.blogspot.com/feeds/8365367961964245667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3856624862131672592&amp;postID=8365367961964245667' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/8365367961964245667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/8365367961964245667'/><link rel='alternate' type='text/html' href='http://fmontesi.blogspot.com/2009/09/jolie-and-arm.html' title='Jolie and ARM'/><author><name>Fabrizio Montesi</name><uri>http://www.blogger.com/profile/12780751151972172366</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_I6cBVk6ZngU/SWt0B8jvayI/AAAAAAAAABk/HRKz20uNuHo/S220/fmontesi.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_I6cBVk6ZngU/STlF0zRUZ9I/AAAAAAAAABc/0PsvHrAHV0U/s72-c/05-12-08_1451.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3856624862131672592.post-4762103819746986471</id><published>2009-09-09T16:26:00.009+02:00</published><updated>2009-09-09T19:44:17.367+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jolie'/><category scheme='http://www.blogger.com/atom/ns#' term='kde'/><title type='text'>Random thoughts: getting ready for Jolie 1.0 and remote services inclusion in KDE</title><content type='html'>&lt;a href="http://www.jolie-lang.org/"&gt;Jolie&lt;/a&gt; is getting into shape for the 1.0 release. This is requiring a lot of work, and whenever we reach our current objectives we feel like improving things even further (every developer likes perfection, the problem is it requires too much time)! Nevertheless, the line for a good 1.0 release has been placed and is getting very near. The two major points we need to address are SSL support (both in SODEP an HTTP) and documentation. By documentation I'm not just referring to the language documentation but also to the source code documentation of the interpreter; the aim is to make the Jolie interpreter more approachable by hackers who want to improve it or want to write an extension (protocols, specifications, hardware support, ...). The 1.0 release will also contain experimental support for XML-RPC.&lt;br /&gt;&lt;br /&gt;SSL support is already working and waiting for inclusion (rough edges need to be investigated) in the main source tree. SSL support will particularly benefit B2B applications, which until&lt;br /&gt;now had to get security by wrapping Jolie in SSL containers, and &lt;a href="http://www.kde.org/"&gt;the KDE project&lt;/a&gt;, which has just &lt;a href="http://pindablog.wordpress.com/2009/09/08/tokamak-3-wrap-up/"&gt;included support for remote services&lt;/a&gt; in trunk using Jolie and MetaService as backend technologies. SSL support in Jolie would allow KDE remote Plasma services to encrypt their data exchanges, an essential feature when dealing with sensitive data (though the initial handshake part is already made secure by using Qt).&lt;br /&gt;I must say that the KDE inclusion was pretty quick: it was just one year ago when the Jolie and the Plasma teams met at the first Tokamak and now we already have a first functioning version in trunk. This process required quite a lot of work and skill, from writing a service orchestrator that could dynamically create bridges from Plasma to services using different protocols and technologies onward to the QtJolie gluing layer and the final implementation in the Plasma library. Now we have the basis for constructing even more complex frameworks and applications, and all of this will benefit from the future Jolie static analysis tools that we (the Jolie team) are planning to implement. All of this to say that it really is a pleasure to work with the KDE team: I will be sure to keep in touch as much as possible.&lt;br /&gt;&lt;br /&gt;I'm now focusing heavily on source code documentation and polishing (for which I've just made some pretty big commits). Regarding code polishing, I got some help from the &lt;a href="http://findbugs.sourceforge.net/"&gt;FindBugs&lt;/a&gt; static analysis tool; you can just ask it to read some Java bytecode and it comes up with a lot of good hints for performance improvements and bug removals. It is really easy to use and it even considers correct resource locking and releasing. Pretty useful if you have old code to maintain or for checking new extensions before merging them.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ah yes, I should also blog about a lot of other features and the porting of Jolie to ARM-based devices thanks to the &lt;a href="https://wiki.evolvis.org/jalimo/index.php/Main_Page"&gt;Jalimo project&lt;/a&gt;... but that's for other blog posts!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3856624862131672592-4762103819746986471?l=fmontesi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fmontesi.blogspot.com/feeds/4762103819746986471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3856624862131672592&amp;postID=4762103819746986471' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/4762103819746986471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/4762103819746986471'/><link rel='alternate' type='text/html' href='http://fmontesi.blogspot.com/2009/09/random-thoughts-getting-ready-for-jolie.html' title='Random thoughts: getting ready for Jolie 1.0 and remote services inclusion in KDE'/><author><name>Fabrizio Montesi</name><uri>http://www.blogger.com/profile/12780751151972172366</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_I6cBVk6ZngU/SWt0B8jvayI/AAAAAAAAABk/HRKz20uNuHo/S220/fmontesi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3856624862131672592.post-1779024738038272067</id><published>2009-02-24T13:20:00.008+01:00</published><updated>2009-03-23T18:26:53.781+01:00</updated><title type='text'>RFC: Service-oriented Training &amp; Hacking session at Akademy 2009</title><content type='html'>It is some time that I'm thinking about Akademy 2009, and how to make people aware of the potential the integration of Plasma and &lt;a href="http://www.jolie-lang.org"&gt;Jolie&lt;/a&gt; are going to bring. The following is what I came up with, and from some early discussions it really looks like something worth doing. Please share your thoughts and comments on this.&lt;br /&gt;&lt;br /&gt;The idea is to make a (workshop-like) session about the service-oriented world, with pragmatism in mind. aseigo and ervin have been coerced into helping. It'd be composed by two parts, training and hacking.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Training&lt;/h2&gt;&lt;br /&gt;The training part would touch these topics (not necessarily in order):&lt;br /&gt;- the Service-Oriented Computing paradigm: what is it, and how can we use it?&lt;br /&gt;- how to exploit the service-oriented paradigm through the Jolie language.&lt;br /&gt;- bridging Jolie and Qt with kevin's latest cool library&lt;br /&gt;- the Plasma::Service+MetaService API explained. Service-oriented plasmoids!&lt;br /&gt;- how to make powerful service compositors/orchestrators in Jolie, and use them as backends for plasmoids or $insert_your_app_here.&lt;br /&gt;- use cases and surprises (?)&lt;br /&gt;- questions and answers&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Hacking&lt;/h2&gt;&lt;br /&gt;Everyone starts his editor of choice and starts hacking on some service-oriented UI/Plasmoid/etc, getting help and sharing ideas.&lt;br /&gt;It will be an excellent occasion to improve the framework too (not only the C++ libraries but even the Jolie framework itself, as I'll be there), as there will probably be necessities that could be implemented as a Jolie protocol or some other extension.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;What I'd like to have are ideas and comments about this. Is there any topic you'd like to be covered in particular? Questions to be answered?&lt;br /&gt;&lt;br /&gt;Of course it would be nice to have plasma developers attending, along with any other people interested in integrating jolie/service-oriented computing in their application or framework.&lt;br /&gt;It'&lt;br /&gt;&lt;br /&gt;So, dear reader, would *you* attend? =)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3856624862131672592-1779024738038272067?l=fmontesi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fmontesi.blogspot.com/feeds/1779024738038272067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3856624862131672592&amp;postID=1779024738038272067' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/1779024738038272067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/1779024738038272067'/><link rel='alternate' type='text/html' href='http://fmontesi.blogspot.com/2009/02/rfc-service-oriented-training-hacking.html' title='RFC: Service-oriented Training &amp; Hacking session at Akademy 2009'/><author><name>Fabrizio Montesi</name><uri>http://www.blogger.com/profile/12780751151972172366</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_I6cBVk6ZngU/SWt0B8jvayI/AAAAAAAAABk/HRKz20uNuHo/S220/fmontesi.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3856624862131672592.post-427113556348591528</id><published>2009-02-20T09:15:00.002+01:00</published><updated>2009-03-13T09:58:36.813+01:00</updated><title type='text'>Solid, UPnP and Jolie</title><content type='html'>Lately there's been a lot of interest about UPnP and its application in KDE.&lt;br /&gt;These days I'm speaking a lot about these things with &lt;a href="http://ervin.ipsquad.net/"&gt;Kévin "ervin" Ottens&lt;/a&gt; w.r.t. the &lt;a href="http://solid.kde.org"&gt;Solid&lt;/a&gt; project. Even at Akademy 2008, Kévin suggested to me that it would be nice to have a UPnP protocol implementation in &lt;a href="http://www.jolie-lang.org"&gt;Jolie&lt;/a&gt;. There's been some discussion since there, but we just couldn't afford to implement it because of lack of resources (people/time). GSOC is approaching and this item is among the ideas for KDE, so some explanation is probably a good thing to offer. The aim of this post is to offer such an explanation, but given that I'm so familiar with Jolie I could miss some points of interest... so please *ask* if *you*'ve got doubts about this (like "I didn't understand why that point would be better than doing this other thing...", or "Did you think about using this and/or this?..").&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.jolie-lang.org"&gt;Jolie&lt;/a&gt; is currently being integrated in KDE and will become a runtime dependency for activating Plasma on the network (making plasmoids in different machines communicating with each other, or with external services, etc.). Enabling Jolie to use UPnP would mean to re-use this dependency and all the technology developed until now (QtSodep, service composition, easy data manipulation etc.) for giving Solid (capital S) a solid backend (lower-case s ... yes, it's a pun! ha ha... *cough cough*) to exploit all the UPnP devices out there. Add to this the service-oriented programming capabilities of Jolie and you obtain a complete framework for making powerful orchestrators out of your UPnP network and even making Solid itself a UPnP service provider.&lt;br /&gt;&lt;br /&gt;A note about the implementation: nowadays Jolie offers two ways for implementing a new protocol: you can write it in Java or write it in Jolie itself. We offer these two possibilities because it's useful to distinguish between low-level and high-level protocols, and to use the right tool for the right job.&lt;br /&gt;The first kind deals with low-level byte streams manipulations, e.g. binary protocols, and Jolie is not suited to do that; good examples are any binary protocol, or even HTTP.&lt;br /&gt;The second kind is more about manipulating data structures in an abstract manner; for example, suppose that you need to implement a new protocol on top of XML: being able to exploit Jolie's syntax for XML manipulation is usually a winner.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3856624862131672592-427113556348591528?l=fmontesi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fmontesi.blogspot.com/feeds/427113556348591528/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3856624862131672592&amp;postID=427113556348591528' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/427113556348591528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/427113556348591528'/><link rel='alternate' type='text/html' href='http://fmontesi.blogspot.com/2009/02/solid-upnp-and-jolie.html' title='Solid, UPnP and Jolie'/><author><name>Fabrizio Montesi</name><uri>http://www.blogger.com/profile/12780751151972172366</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_I6cBVk6ZngU/SWt0B8jvayI/AAAAAAAAABk/HRKz20uNuHo/S220/fmontesi.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3856624862131672592.post-4684532984863159978</id><published>2009-02-11T14:08:00.003+01:00</published><updated>2009-02-11T17:10:28.394+01:00</updated><title type='text'>openSUSE package for Jolie</title><content type='html'>The title of this blog post really leaves a trail of mistery.&lt;br /&gt;&lt;br /&gt;Today, under a not-so-excellent-but-still-not-too-bad weather, I've decided to enter the dark school of packaging. The results can be found here: &lt;a href="http://download.opensuse.org/repositories/home:/fmontesi/openSUSE_11.1/"&gt;http://download.opensuse.org/repositories/home:/fmontesi/openSUSE_11.1/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This means that now we've got a &lt;a href="http://download.opensuse.org/repositories/home:/fmontesi/openSUSE_11.1/jolie.ymp"&gt;one-click installer&lt;/a&gt; for &lt;a href="http://www.jolie-lang.org/"&gt;Jolie&lt;/a&gt; in openSUSE 11.1. Enjoy!&lt;br /&gt;&lt;br /&gt;P.S.: in the &lt;a href="http://www.jolie-lang.org/download.php"&gt;website official download page&lt;/a&gt; there's a better looking button ;)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Update:&lt;/strong&gt; andred in #plasma made me notice that many people are still using openSUSE 11.0. Jolie should work flawlessly even there, but I've got no mean to test it. Anyway, &lt;a href="http://download.opensuse.org/repositories/home:/fmontesi/"&gt;my repository&lt;/a&gt; now contains packages for openSUSE 11.0 and openSUSE factory, too. I must say that openSUSE build service is one fantastic piece of software!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3856624862131672592-4684532984863159978?l=fmontesi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fmontesi.blogspot.com/feeds/4684532984863159978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3856624862131672592&amp;postID=4684532984863159978' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/4684532984863159978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/4684532984863159978'/><link rel='alternate' type='text/html' href='http://fmontesi.blogspot.com/2009/02/opensuse-package-for-jolie.html' title='openSUSE package for Jolie'/><author><name>Fabrizio Montesi</name><uri>http://www.blogger.com/profile/12780751151972172366</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_I6cBVk6ZngU/SWt0B8jvayI/AAAAAAAAABk/HRKz20uNuHo/S220/fmontesi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3856624862131672592.post-5287570169105871917</id><published>2009-01-23T11:28:00.006+01:00</published><updated>2009-02-04T11:04:20.466+01:00</updated><title type='text'>Major distribution bug in Java support for unix sockets?</title><content type='html'>If you're trying to use local unix sockets using libmatthew with a Java program (as it's the case for JOLIE and thus MetaService), you might get a similar error:&lt;br /&gt;&lt;br /&gt;Exception in thread "main" java.lang.UnsatisfiedLinkError: /usr/lib/libunix-java.so: /usr/lib/libunix-java.so: undefined symbol: __stack_chk_fail_local&lt;br /&gt;&lt;br /&gt;I get it using the libmatthew-java package from openSUSE 11.1. It looks like &lt;a href="https://bugs.launchpad.net/ubuntu/+source/dbus-java/+bug/218658"&gt;Ubuntu users are suffering of the same problem&lt;/a&gt; (there causing a bug in dbus-java). If you read their bug thread, you'll find that they appoint the problem to a compilation flag. I've tried to simply download libmatthew sources from &lt;a href="http://www.matthew.ath.cx/projects/java/libmatthew-java-0.7.1.tar.gz"&gt;here&lt;/a&gt; and compiling them: they just work (except that you have to fix the Makefile by substituting the java compiler flag -source 5.0 with -source 1.5).&lt;br /&gt;&lt;br /&gt;This problem really looks worth going into some official update repository for each bugged distro. I have already filed a &lt;a href="https://bugzilla.novell.com/show_bug.cgi?id=468886"&gt;bug for openSUSE&lt;/a&gt;, but I cannot confirm it for other distros. Could *you* (dear reader) check for it and send an appropriate bug report? =)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt; the bug has been fixed! Thanks to all the people involved! =) If you're using openSUSE 11.1, you can fetch a backport from the Java repository (http://download.opensuse.org/repositories/Java:/packages/openSUSE_11.1/).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3856624862131672592-5287570169105871917?l=fmontesi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fmontesi.blogspot.com/feeds/5287570169105871917/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3856624862131672592&amp;postID=5287570169105871917' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/5287570169105871917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/5287570169105871917'/><link rel='alternate' type='text/html' href='http://fmontesi.blogspot.com/2009/01/major-distribution-bug-in-java-support.html' title='Major distribution bug in Java support for unix sockets?'/><author><name>Fabrizio Montesi</name><uri>http://www.blogger.com/profile/12780751151972172366</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_I6cBVk6ZngU/SWt0B8jvayI/AAAAAAAAABk/HRKz20uNuHo/S220/fmontesi.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3856624862131672592.post-4210087066364566192</id><published>2009-01-21T12:21:00.004+01:00</published><updated>2009-01-21T12:46:54.994+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jolie'/><category scheme='http://www.blogger.com/atom/ns#' term='kde'/><title type='text'>MetaService enters the main source tree</title><content type='html'>Today I have moved MetaService from &lt;a href="http://www.jolie-lang.org/"&gt;JOLIE&lt;/a&gt;'s playground source tree to the main source tree, the one that gets installed when you type &lt;i&gt;ant install&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;A short description for people that do not know what MetaService is: MetaService is a JOLIE service that allows you to dynamically bridge applications that speak different protocols (sodep, soap, http, etc.) or use different communication transports/mechanisms (sockets, local sockets, Java RMI, etc.). It has been developed as an answer to the &lt;a href="http://plasma.kde.org/"&gt;Plasma project&lt;/a&gt;'s needs to have a transparent means to introduce Plasma to the Service-oriented world. The project turned out to be so useful that I have built a Java library for interacting with and dynamically loading it (metaservice-java, to be found in trunk/support/metaservice-java) which we, as &lt;a href="http://www.italianasoftware.com"&gt;italianaSoftware&lt;/a&gt;, have already used in the scope of web application development (I can not say much more on this topic... yet ;).&lt;br /&gt;&lt;br /&gt;As a bonus, *nix users get a launcher script for MetaService when installing JOLIE with &lt;i&gt;ant install&lt;/i&gt;. Just type &lt;i&gt;metaservice -h&lt;/i&gt; and a help screen will welcome you.&lt;br /&gt;&lt;br /&gt;The script supports passing MetaService's input port location and protocol as parameters. This means that for KDE launching MetaService just became a matter of executing something like:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;metaservice localsocket:/tmp/ksocket-$USER/metaservice&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Hooray for simplicity!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3856624862131672592-4210087066364566192?l=fmontesi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fmontesi.blogspot.com/feeds/4210087066364566192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3856624862131672592&amp;postID=4210087066364566192' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/4210087066364566192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/4210087066364566192'/><link rel='alternate' type='text/html' href='http://fmontesi.blogspot.com/2009/01/metaservice-enters-main-source-tree.html' title='MetaService enters the main source tree'/><author><name>Fabrizio Montesi</name><uri>http://www.blogger.com/profile/12780751151972172366</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_I6cBVk6ZngU/SWt0B8jvayI/AAAAAAAAABk/HRKz20uNuHo/S220/fmontesi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3856624862131672592.post-831741256211833908</id><published>2009-01-20T12:05:00.005+01:00</published><updated>2009-01-20T16:30:47.097+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jolie'/><category scheme='http://www.blogger.com/atom/ns#' term='kde'/><title type='text'>Jolie Jobs (now with Plasma)</title><content type='html'>The Jolie web site now sponsors a "Jobs List", which can be found from the &lt;a href="http://www.jolie-lang.org/contribute.php"&gt;Contribute page&lt;/a&gt;, also known as "What we lack for world domination". The list features some Junior Jobs, so it's a good starting point for people that are looking for ways to start contributing to Jolie. We are continuously filling in new jobs (there's *always* something to do, as in every project ;), so be sure to refresh it if you're interested. If you don't find anything that interests you, remember that you can always post to the &lt;a href="mailto:jolie-devel@lists.sourceforge.net"&gt;mailing list&lt;/a&gt;. =)&lt;br /&gt;&lt;br /&gt;Now that JOLIE supports message types, it is feasible (and not too hard) to make automatic generators for Plasma::Service description files. These jobs are listed, so if someone wants some cool tool for automatic type-safe code generation between Plasma and JOLIE sooner rather than later and to learn something more about how Plasma and JOLIE communicate, this is a good occasion to jump on the JOLIE&lt;-&gt;Plasma revolution train. ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3856624862131672592-831741256211833908?l=fmontesi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fmontesi.blogspot.com/feeds/831741256211833908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3856624862131672592&amp;postID=831741256211833908' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/831741256211833908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/831741256211833908'/><link rel='alternate' type='text/html' href='http://fmontesi.blogspot.com/2009/01/jolie-jobs-now-with-plasma.html' title='Jolie Jobs (now with Plasma)'/><author><name>Fabrizio Montesi</name><uri>http://www.blogger.com/profile/12780751151972172366</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_I6cBVk6ZngU/SWt0B8jvayI/AAAAAAAAABk/HRKz20uNuHo/S220/fmontesi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3856624862131672592.post-3391305478933107237</id><published>2009-01-19T15:33:00.006+01:00</published><updated>2009-01-20T16:30:59.803+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jolie'/><title type='text'>Compiling JOLIE from sources in Windows now easier</title><content type='html'>For everyone using Windows out there: &lt;span style="font-weight:bold;"&gt;compiling JOLIE from sources in Windows is not a pain anymore&lt;/span&gt;!&lt;br /&gt;&lt;br /&gt;I've patched the build system so that it recognizes the running operating system and installs the appropriate launcher script (a shell script in *nix and a .bat script in Windows), so now having a working environment is far less "manual" than before. You can find the updated guide &lt;a href="http://www.jolie-lang.org/download.php"&gt;here&lt;/a&gt; (Windows -&gt; From sources).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3856624862131672592-3391305478933107237?l=fmontesi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fmontesi.blogspot.com/feeds/3391305478933107237/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3856624862131672592&amp;postID=3391305478933107237' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/3391305478933107237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/3391305478933107237'/><link rel='alternate' type='text/html' href='http://fmontesi.blogspot.com/2009/01/compiling-jolie-from-sources-in-windows.html' title='Compiling JOLIE from sources in Windows now easier'/><author><name>Fabrizio Montesi</name><uri>http://www.blogger.com/profile/12780751151972172366</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_I6cBVk6ZngU/SWt0B8jvayI/AAAAAAAAABk/HRKz20uNuHo/S220/fmontesi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3856624862131672592.post-8942527156906402809</id><published>2009-01-14T19:00:00.006+01:00</published><updated>2009-01-14T19:59:26.225+01:00</updated><title type='text'>JOLIE meets Message Typing!</title><content type='html'>I've just finished to adapt and merge into &lt;a href="http://www.jolie-lang.org/"&gt;Jolie&lt;/a&gt;'s SVN the awesome work derived from &lt;a href="http://www.elvisciotti.it/blog/2008/12/tesi-sistema-di-tipi-per-jolie/"&gt;Elvis Ciotti's thesis&lt;/a&gt;. The job required some time, but we are definitely improving our development process with people that decide to make a thesis on JOLIE (it required much more than a day in the past); I think that we can improve even more, but that's another story. Elvis made some testing scripts, too, so I'm pretty sure that my refactoring did not introduce any regression and testing the result was a painless process. Way to go, Elvis. =)&lt;br /&gt;&lt;br /&gt;So, message typing: what's that? Let's have a preface and then look at an example!&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;The problem&lt;/h2&gt;&lt;br /&gt;In a service-oriented world applications communicate with each other. An application (say, A) can communicate with another one (say, B) by using the interface exposed by the latter. An example of an interface is "I accept messages for an operation called &lt;span style="font-weight: bold;"&gt;sum&lt;/span&gt;. You shall send me two numbers and I will return their sum to you.".&lt;br /&gt;The problem here is that A and B are completely separated applications. They could even have been made with different programming languages. What does assure us that A is gonna respect the interface specs of B? Unfortunately, nothing does. We do not have any means to do that, as A is a black box to our eyes: we can not peek inside. We can only hope A has been statically checked against our interface before being run, or that A hasn't been purposefully made wrong to mess B up.&lt;br /&gt;&lt;br /&gt;So what can we do?&lt;br /&gt;&lt;br /&gt;When B receives a message, it could check at run-time that it conforms to the interface. If not, it should discard it immediately. That way we are sure to be safe, and that B's internal program doesn't get unexpected data.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Example&lt;/h2&gt;&lt;br /&gt;Let us implement B with Jolie's syntax for message types. The code would look as the following:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;type SumRequest:void {&lt;br /&gt;   .x:int&lt;br /&gt;   .y:int&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;inputPort B {&lt;br /&gt;Location: "socket://localhost:8000"&lt;br /&gt;Protocol: sodep&lt;br /&gt;RequestResponse:&lt;br /&gt;   sum(SumRequest)(int)&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;main {&lt;br /&gt;   sum( request )( result ) {&lt;br /&gt;       result = request.x + request.y&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;In the example B accepts messages containing two sub-nodes, x and y. An XML representation of a valid message is the following:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;request&amp;gt;&lt;br /&gt;   &amp;lt;x&amp;gt;5&amp;lt;/x&amp;gt;&lt;br /&gt;   &amp;lt;y&amp;gt;10&amp;lt;/y&amp;gt;&lt;br /&gt;&amp;lt;/request&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Jolie will take care that B doesn't receive anything that doesn't conform to SumRequestType. Clients sending a malformed message would receive a "TypeMismatch" fault in return.&lt;br /&gt;&lt;br /&gt;Jolie types are pretty expressive, you can also play with the number of occurrencies. An example of a more complex type:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;// A type describing an article&lt;br /&gt;type Article {&lt;br /&gt;&lt;br /&gt;// We want at least one author, but no upper limit&lt;br /&gt;   .author[1,*]:void {&lt;br /&gt;       .name:string&lt;br /&gt;       .surname:string&lt;br /&gt;       .age:int&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;// We accept from 5 to 15 pages&lt;br /&gt;   .page[5,15]:string&lt;br /&gt;&lt;br /&gt;// ? is a shortcut for [0,1], i.e. giving a summary is optional&lt;br /&gt;   .summary?:string&lt;br /&gt;&lt;br /&gt;/* .metadata is left completely free,&lt;br /&gt; * type checking is not performed on it&lt;br /&gt; */&lt;br /&gt;   .metadata:any { ? }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The code has just entered so it still may have some bugs, but it works already with some advanced tests I've conducted with current SVN.&lt;br /&gt;&lt;br /&gt;Enjoy! =)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3856624862131672592-8942527156906402809?l=fmontesi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fmontesi.blogspot.com/feeds/8942527156906402809/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3856624862131672592&amp;postID=8942527156906402809' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/8942527156906402809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/8942527156906402809'/><link rel='alternate' type='text/html' href='http://fmontesi.blogspot.com/2009/01/jolie-meets-message-typing.html' title='JOLIE meets Message Typing!'/><author><name>Fabrizio Montesi</name><uri>http://www.blogger.com/profile/12780751151972172366</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_I6cBVk6ZngU/SWt0B8jvayI/AAAAAAAAABk/HRKz20uNuHo/S220/fmontesi.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3856624862131672592.post-9182429859688041236</id><published>2009-01-12T17:47:00.003+01:00</published><updated>2009-01-12T17:59:06.701+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jolie'/><title type='text'>Jolie's new website is up!</title><content type='html'>JOLIE has a new and shiny website: &lt;a href="http://www.jolie-lang.org/"&gt;www.jolie-lang.org&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The new site has a wiki which we are filling in with a lot of information, minute by minute. Some tutorials are already final and we are preparing demos and packages of source code examples.&lt;br /&gt;&lt;br /&gt;This step required some effort and time, but we now have a serious and stable basis to build our  knowledge base upon (the backend of the website is quite powerful and allows for easy administration and data versioning).&lt;br /&gt;&lt;br /&gt;The mailing list and IRC channel are already active since some time, respectively jolie-devel@lists.sourceforge.net and #jolie on freenode, providing the means for asking about anything related to JOLIE and getting the attention of the JOLIE team.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3856624862131672592-9182429859688041236?l=fmontesi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fmontesi.blogspot.com/feeds/9182429859688041236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3856624862131672592&amp;postID=9182429859688041236' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/9182429859688041236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/9182429859688041236'/><link rel='alternate' type='text/html' href='http://fmontesi.blogspot.com/2009/01/jolies-new-website-is-up.html' title='Jolie&apos;s new website is up!'/><author><name>Fabrizio Montesi</name><uri>http://www.blogger.com/profile/12780751151972172366</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_I6cBVk6ZngU/SWt0B8jvayI/AAAAAAAAABk/HRKz20uNuHo/S220/fmontesi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3856624862131672592.post-179819510329906729</id><published>2008-12-15T18:26:00.005+01:00</published><updated>2008-12-15T18:48:53.308+01:00</updated><title type='text'>Jolie meets JavaScript</title><content type='html'>Starting today, JOLIE services can exploit the JavaScript language!&lt;br /&gt;As usual we are &lt;span style="font-weight: bold;"&gt;not&lt;/span&gt; speaking of mixing JOLIE code with another language, which would result in incomprehensible JOLIE programs. We are instead speaking of the insertion of another language in JOLIE's service-oriented paradigm, by means of the embedding mechanism (which we are detailing in our new, shiny tutorials, to be published really soon).&lt;br /&gt;&lt;br /&gt;Embedding a JavaScript service goes like this:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;// main.ol&lt;br /&gt;&lt;br /&gt;include "console.iol"&lt;br /&gt;&lt;br /&gt;// Standard JOLIE service declaration&lt;br /&gt;outputPort Math {&lt;br /&gt;RequestResponse: sum&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;embedded {&lt;br /&gt;// We load our JavaScript file as the JS service&lt;br /&gt;JavaScript:&lt;br /&gt;    "mathservice.js" in &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;Math&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;br /&gt;&lt;br /&gt;main&lt;br /&gt;{&lt;br /&gt; // Now we can call JS as every other service type supported by JOLIE&lt;br /&gt;    with( request ) {&lt;br /&gt;        .addend[0] = 2;&lt;br /&gt;        .addend[1] = 4;&lt;br /&gt;        .addend[2] = 1;&lt;br /&gt;        .addend[3] = 3&lt;br /&gt;    };&lt;br /&gt;    sum@&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;Math&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;( request )( response );&lt;br /&gt;    println@Console( response ) // Will print 10&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The JavaScript API for accessing structured JOLIE data is the same as the one for Java. Let us see how the Math service is implemented:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;// mathservice.js&lt;br /&gt;&lt;br /&gt;function sum( request )&lt;br /&gt;{&lt;br /&gt;    var addends = request.getChildren( "addend" );&lt;br /&gt;    var total = 0;&lt;br /&gt;    for( var i = 0; i &lt; addends.size(); i++ ) {&lt;br /&gt;        total += addends.get( i ).intValue();&lt;br /&gt;    }&lt;br /&gt;    return total;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Voilà! Simple, isn't it?&lt;br /&gt;Support for other scripting programming languages will be introduced in the future, stay tuned! =)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3856624862131672592-179819510329906729?l=fmontesi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fmontesi.blogspot.com/feeds/179819510329906729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3856624862131672592&amp;postID=179819510329906729' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/179819510329906729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/179819510329906729'/><link rel='alternate' type='text/html' href='http://fmontesi.blogspot.com/2008/12/jolie-meets-javascript.html' title='Jolie meets JavaScript'/><author><name>Fabrizio Montesi</name><uri>http://www.blogger.com/profile/12780751151972172366</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_I6cBVk6ZngU/SWt0B8jvayI/AAAAAAAAABk/HRKz20uNuHo/S220/fmontesi.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3856624862131672592.post-3585321635837694858</id><published>2008-11-05T18:09:00.004+01:00</published><updated>2008-11-05T18:52:58.196+01:00</updated><title type='text'>Today, in JOLIE...</title><content type='html'>&lt;span style="font-weight: bold;font-size:130%;" &gt;Build system&lt;/span&gt;&lt;br /&gt;JOLIE's SVN contains now an ant-powered build system that compiles all the protocols, extensions and libraries and then is able to install the resulting runtime environment in your computer in a painless way. Painless like "just type &lt;span style="font-style: italic;"&gt;sudo ant install&lt;/span&gt; in trunk/ and you're done".&lt;br /&gt;The system is still beta-ish, but it's been tested by some people other than me. So now installing JOLIE from SVN is just:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;svn co https://jolie.svn.sourceforge.net/svnroot/jolie/trunk&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sudo ant install&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Warning&lt;/span&gt;: I still have to implement &lt;span style="font-style: italic;"&gt;ant uninstall&lt;/span&gt;, so you'll have to delete /opt/jolie and /usr/local/bin/jolie by hand for uninstalling it.&lt;br /&gt;&lt;br /&gt;If you want to control the install directories, just edit the buildconfig/config.properties file, it's short and easy. Suggestions and reports on the build system topic are &lt;span style="font-style: italic;"&gt;very &lt;/span&gt;welcome, so please tell me of anything comes up to your mind / bugs you find.&lt;br /&gt;&lt;br /&gt;You'll notice a couple jars in the SVN, they're there because you probably don't have them in your system and they're usually not packaged by distros (e.g. Google Web Toolkit servlet jar, relaxngDatatype). It's Java, so recompiling them is useless. But if you want to use _your_ jar anyway, just change the library paths in config.properties.&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Program checker upgrades&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;The JOLIE pre-execution program checker now punches you (emits an error) whenever you're trying to use the wrong communication pattern (you send a message, but you don't wait for a response when you're supposed to, or vice versa, etc.).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Concurrent request-response pattern performing in persistent channels&lt;/span&gt;&lt;br /&gt;Whoa, this paragraph title is so long and confusing. Let's look at the problem by using an example: if you use the same, persistent socket with multiple threads (say, 2 threads) for performing a request-response pattern (i.e. you send a request and you receive a response back, like in HTTP), the messages risk to get messed up, because now when you get the first response you aren't sure which thread is expecting it.&lt;br /&gt;HTTP pipelining solves that problem for you by sending the responses in the same order as you sent the requests. That implies that you must first send all your requests and then wait for all the responses. But in a true asynchronous system, you'd want simply to be able to send and receive things without introducing such slowing factors.&lt;br /&gt;How does JOLIE solve that? We tag each request with an identifier and we require the response to equip the same tag. That way we can relate responses to their requesting threads. The internal handling of this is complicated, but it's all abstracted away at the language level... the programmer doesn't even need to know this mechanism.&lt;br /&gt;In-memory communications, Java&lt;-&gt;JOLIE channels and the SODEP protocol already support this new feature. We're currently thinking about possible solutions to introduce this on other protocols.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Website and documentation progress&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;The new website works are on schedule (i.e. we should publish it by this month or at least december, no later). We have tutorials (Claudio already made a lot of work.. my schedule fixes next week for full diving in user documentation writing), examples (I'll problably publish some of them in advance on the blog)&lt;/span&gt; and so on.&lt;br /&gt;A lot of in-code documentation has been polished up (especially in the support libraries for external programs interacting with JOLIE).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Mmmh I estimate a 50% rate of things I forgot to report... I should probably post more. ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3856624862131672592-3585321635837694858?l=fmontesi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fmontesi.blogspot.com/feeds/3585321635837694858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3856624862131672592&amp;postID=3585321635837694858' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/3585321635837694858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/3585321635837694858'/><link rel='alternate' type='text/html' href='http://fmontesi.blogspot.com/2008/11/today-in-jolie.html' title='Today, in JOLIE...'/><author><name>Fabrizio Montesi</name><uri>http://www.blogger.com/profile/12780751151972172366</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_I6cBVk6ZngU/SWt0B8jvayI/AAAAAAAAABk/HRKz20uNuHo/S220/fmontesi.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3856624862131672592.post-9031623497654344222</id><published>2008-10-10T12:57:00.013+02:00</published><updated>2008-10-10T17:18:47.188+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jolie'/><category scheme='http://www.blogger.com/atom/ns#' term='italianaSoftware'/><category scheme='http://www.blogger.com/atom/ns#' term='kde'/><title type='text'>Opening MetaService to Java: the MetaService-Java API layer.</title><content type='html'>Today, MetaService-java hit Jolie's SVN. You can find it in /trunk/support/metaservice-java. Basically, MetaService-java is a Java API abstraction layer for interacting with MetaService, so that you can use it as if it were a Java object.&lt;br /&gt;&lt;br /&gt;This project was born for two reasons:&lt;br /&gt;- it will be part of a solution for the integration of Java enterprise web applications with Service-Oriented Computing;&lt;br /&gt;- it is a good example of how to implement an API abstraction layer to MetaService from an Object-oriented language, so its source code could be a useful reading for the Plasma::Service developers.&lt;br /&gt;&lt;br /&gt;I'll let the code (and its comments) and a simple example speak for themselves. They're in Java, but they should be pretty easy to understand even for people non-proficient with it. Example follows.&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="font-weight: bold;"&gt;MetaService metaService = new EmbeddedMetaService(); // Create a MetaService instance.&lt;br /&gt;&lt;br /&gt;// Set up access to a SOAP Web Service.&lt;br /&gt;MetaServiceChannel myWebService = metaService.addRedirection(&lt;br /&gt;    "MyWebService", // Resource name to assign&lt;br /&gt;    "socket://www.mywebservice.com:80/", // Service location&lt;br /&gt;    Value.create( "soap" ), // Protocol to use&lt;br /&gt;    Value.create( "My metadata" ) // Descriptive metadata&lt;br /&gt;);&lt;br /&gt;&lt;br /&gt;// Done! Let's communicate with it.&lt;br /&gt;myWebService.send( "getNameById", Value.create( 4 ) );&lt;br /&gt;Value response = myWebService.recv();&lt;br /&gt;System.out.println( response.strValue() ); // Will print the name.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;The API is still to be refined, but pretty much usable already. =)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3856624862131672592-9031623497654344222?l=fmontesi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fmontesi.blogspot.com/feeds/9031623497654344222/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3856624862131672592&amp;postID=9031623497654344222' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/9031623497654344222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/9031623497654344222'/><link rel='alternate' type='text/html' href='http://fmontesi.blogspot.com/2008/10/opening-metaservice-to-java-metaservice.html' title='Opening MetaService to Java: the MetaService-Java API layer.'/><author><name>Fabrizio Montesi</name><uri>http://www.blogger.com/profile/12780751151972172366</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_I6cBVk6ZngU/SWt0B8jvayI/AAAAAAAAABk/HRKz20uNuHo/S220/fmontesi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3856624862131672592.post-4188890937063185282</id><published>2008-10-02T15:12:00.006+02:00</published><updated>2008-10-02T15:16:55.404+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jolie'/><title type='text'>Local socket support in JOLIE</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;This fall looks good so far! A lot of JOLIE sub-projects are taking shape, and are going better than anticipated. But I'm blogging about something which has just landed on JOLIE's svn.&lt;br/&gt;&lt;br /&gt;JOLIE now supports local sockets (a.k.a. unix sockets). How to use them? Let's see it by comparison; a communication interface over tcp/ip sockets is exposed like the following:&lt;br/&gt;&lt;br /&gt;&lt;code&gt;inputPort MyInputPort {&lt;br /&gt;Location: "socket://localhost:9000"&lt;br /&gt;Protocol: soap&lt;br /&gt;Interfaces: MyInterface&lt;br /&gt;}&lt;/code&gt;&lt;br/&gt;&lt;br /&gt;Let's switch that to a local socket:&lt;br/&gt;&lt;br /&gt;&lt;code&gt;inputPort MyInputPort {&lt;br /&gt;Location: "localsocket:/tmp/mylocalsocket"&lt;br /&gt;Protocol: soap&lt;br /&gt;Interfaces: MyInterface&lt;br /&gt;}&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;That's it! Use the localsocket scheme in the Location URI, and supply the right path to it.&lt;br/&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3856624862131672592-4188890937063185282?l=fmontesi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fmontesi.blogspot.com/feeds/4188890937063185282/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3856624862131672592&amp;postID=4188890937063185282' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/4188890937063185282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/4188890937063185282'/><link rel='alternate' type='text/html' href='http://fmontesi.blogspot.com/2008/10/local-socket-support-in-jolie.html' title='Local socket support in JOLIE'/><author><name>Fabrizio Montesi</name><uri>http://www.blogger.com/profile/12780751151972172366</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_I6cBVk6ZngU/SWt0B8jvayI/AAAAAAAAABk/HRKz20uNuHo/S220/fmontesi.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3856624862131672592.post-8258609555398987888</id><published>2008-09-09T15:01:00.006+02:00</published><updated>2008-09-09T22:33:13.479+02:00</updated><title type='text'>I'm (almost) back</title><content type='html'>After three weeks full of time eating monsters (scary!) here and there, here I am back to posting.&lt;br /&gt;&lt;br /&gt;Sorry to people who mailed me in this period, some mails I could not answer to or I missed because my life kept me &lt;span style="font-style: italic;"&gt;really&lt;/span&gt; busy during last weeks. I'll try to reply asap.&lt;br /&gt;&lt;br /&gt;Fortunately, this week looks good so far, so I'll be back blogging JOLIE news soon!&lt;br /&gt;&lt;br /&gt;Meanwhile, if someone has ideas for cool plasmoids making use of &lt;a href="http://www.open-collaboration-services.org/"&gt;open collaboration services&lt;/a&gt; (apart those already listed in the specs draft of course) and/or knows something about how &lt;a href="http://wiki.openid.net/REST/SOAP/HTTP_Bindings"&gt;this work&lt;/a&gt; is proceeding, please let us know.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3856624862131672592-8258609555398987888?l=fmontesi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fmontesi.blogspot.com/feeds/8258609555398987888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3856624862131672592&amp;postID=8258609555398987888' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/8258609555398987888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/8258609555398987888'/><link rel='alternate' type='text/html' href='http://fmontesi.blogspot.com/2008/09/im-almost-back.html' title='I&apos;m (almost) back'/><author><name>Fabrizio Montesi</name><uri>http://www.blogger.com/profile/12780751151972172366</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_I6cBVk6ZngU/SWt0B8jvayI/AAAAAAAAABk/HRKz20uNuHo/S220/fmontesi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3856624862131672592.post-177364162726867381</id><published>2008-08-12T13:20:00.004+02:00</published><updated>2008-08-12T17:49:22.636+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jolie'/><category scheme='http://www.blogger.com/atom/ns#' term='kde'/><title type='text'>Open collaboration services have been Jolied!</title><content type='html'>&lt;a href="http://blog.karlitschek.de/2008/08/akademy-rocks.html"&gt;Frank&lt;/a&gt;'s &lt;a href="http://www.open-collaboration-services.org/socialdesktop.pdf"&gt;talk&lt;/a&gt; was great: bringing the community into the KDE desktop is actually a great idea.&lt;br /&gt;Even better, he's building up REST services for accessing the data! Of course, as we're speaking of services, my mind went directly to "Hey, these things are Joliable".&lt;br /&gt;&lt;br /&gt;I've already started collaborating with Frank in order to discuss the API and a set of specifications for publishing a machine-readable format for reaching said services.&lt;br /&gt;&lt;br /&gt;While I'm at it, someone could wonder "Just how difficult is to use these things with JOLIE?". The answer, of course, is &lt;a href="http://jolie.sourceforge.net/videos/jolie-open-collaboration-services.mpeg"&gt;"damn easy" (screencast)&lt;/a&gt;. ;)&lt;br /&gt;&lt;br /&gt;So, once we're finished with the JOLIE&lt;-&gt;Plasma integration, expect nice graphical frontends to pop up. =)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3856624862131672592-177364162726867381?l=fmontesi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fmontesi.blogspot.com/feeds/177364162726867381/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3856624862131672592&amp;postID=177364162726867381' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/177364162726867381'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/177364162726867381'/><link rel='alternate' type='text/html' href='http://fmontesi.blogspot.com/2008/08/open-collaboration-services-have-been.html' title='Open collaboration services have been Jolied!'/><author><name>Fabrizio Montesi</name><uri>http://www.blogger.com/profile/12780751151972172366</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_I6cBVk6ZngU/SWt0B8jvayI/AAAAAAAAABk/HRKz20uNuHo/S220/fmontesi.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3856624862131672592.post-6464903067226520077</id><published>2008-08-09T11:21:00.004+02:00</published><updated>2008-08-10T10:34:37.941+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jolie'/><category scheme='http://www.blogger.com/atom/ns#' term='kde'/><title type='text'>Are we converging to a service-oriented experience?</title><content type='html'>The more I speak with people at Akademy, the more I'm convinced that contacting KDE to start the JOLIE&lt;-&gt;Plasma integration thing has been the right decision.&lt;br /&gt;&lt;br /&gt;It looks like the whole KDE community (users and developers) is a perfect match to start "porting service-oriented computing to the masses". There is an incredible need for integration, communication, sharing and service accessibility. And when I see talks like the one given by Frank Karlitschek (KDE Community websites: The past, the present and a vision for the future) I get the feeling that we are all trying to converge to a service-oriented experience. We have the right tools, let's make that happen!&lt;br /&gt;&lt;br /&gt;I do really hope to clarify &lt;span style="font-style: italic;"&gt;what&lt;/span&gt; this means and &lt;span style="font-style: italic;"&gt;how &lt;/span&gt;we can do it with my presentation this afternoon, so... here I am checking that the demos are still working. Murphy's law, begone! ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3856624862131672592-6464903067226520077?l=fmontesi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fmontesi.blogspot.com/feeds/6464903067226520077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3856624862131672592&amp;postID=6464903067226520077' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/6464903067226520077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/6464903067226520077'/><link rel='alternate' type='text/html' href='http://fmontesi.blogspot.com/2008/08/are-we-converging-to-service-oriented.html' title='Are we converging to a service-oriented experience?'/><author><name>Fabrizio Montesi</name><uri>http://www.blogger.com/profile/12780751151972172366</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_I6cBVk6ZngU/SWt0B8jvayI/AAAAAAAAABk/HRKz20uNuHo/S220/fmontesi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3856624862131672592.post-7629050635277430846</id><published>2008-08-09T11:18:00.002+02:00</published><updated>2008-08-09T11:20:56.686+02:00</updated><title type='text'>Going to Akademy... with a battery that lasts longer</title><content type='html'>I'm flying to Akademy as I'm writing this post (but I'll be able to post it only when I'll be there).&lt;br /&gt;Just turned on my laptop to have a look at my presentation, and.. surprise surprise, with KDE 4.1 my battery actually can last 20 minutes longer than with KDE 3.5. Plasma drains almost no power. Hooray for KDE 4!&lt;br /&gt;&lt;br /&gt;On the other side, my flight switch in Munich was not so easy... did it ever occur to you that your flying company "does not really know if your flight has been cancelled or not" ? =)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3856624862131672592-7629050635277430846?l=fmontesi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fmontesi.blogspot.com/feeds/7629050635277430846/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3856624862131672592&amp;postID=7629050635277430846' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/7629050635277430846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/7629050635277430846'/><link rel='alternate' type='text/html' href='http://fmontesi.blogspot.com/2008/08/going-to-akademy-with-battery-that.html' title='Going to Akademy... with a battery that lasts longer'/><author><name>Fabrizio Montesi</name><uri>http://www.blogger.com/profile/12780751151972172366</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_I6cBVk6ZngU/SWt0B8jvayI/AAAAAAAAABk/HRKz20uNuHo/S220/fmontesi.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3856624862131672592.post-7045288798184658109</id><published>2008-08-06T10:22:00.003+02:00</published><updated>2008-08-07T10:31:04.130+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jolie'/><category scheme='http://www.blogger.com/atom/ns#' term='italianaSoftware'/><category scheme='http://www.blogger.com/atom/ns#' term='kde'/><title type='text'>Before Akademy</title><content type='html'>Phew, the temperature is so high here in Bologna that it's difficult even to think.&lt;br /&gt;Nevertheless, this month is gonna be even hotter! So, here are some quickies of the current things that are happening.&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Akademy, Akademy, Akademy...&lt;/span&gt;&lt;br /&gt;I'm finishing my preparations for Akademy, and the presentation is coming out nicely. I'm trying to make it understandable even by people who does not know much about Service-oriented Computing. I will also demo a couple of service-oriented applications for KDE (of which you could have seen screencast/shots in the kde blogs), and explain how they work and how easy is to make them with JOLIE.&lt;br /&gt;By the way, if you need/want to talk with me, I'll be at Akademy the 9th, the 10th and the 11th (the 11th only in the morning).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Rising interest&lt;/span&gt;&lt;br /&gt;We, as &lt;a href="http://www.italianasoftware.com/"&gt;italianaSoftware&lt;/a&gt;, are receiving more and more interest in JOLIE by the business world. It looks like this could produce some open-source products. We shall see what comes up. The industry involvement has already produced some good things, like the sponsoring of the Google Web Toolkit integration in JOLIE (we are already using this in the open-source world, too: Echoes is based upon the JOLIE-GWT compatibility).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;A lot of features to come in the next months&lt;/span&gt;&lt;br /&gt;Some projects from the academic side are taking shape. A student from the University of Bologna, Davide Malagoli, is putting the basis for a complete bi-directional JOLIE&lt;-&gt;XML translator. While JOLIE already supports the SOAP protocol, this is a great thing for the integration with tools designed for the Web Services technology. For instance, we will be able to generate automatically a WSDL document of a JOLIE program. As JOLIE supports more than just SOAP and TCP/IP sockets, we are already designing standard compliant WSDL elements to describe that.&lt;br /&gt;We have got other two projects in early development, I will blog about them in the near future.&lt;br /&gt;&lt;br /&gt;Looks like this fall and winter I will have a lot of features to put in the source tree, and a lot of screencast/shots to make. =)&lt;br /&gt;As for this coming week-end, see you all at Akademy!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;P.S.: welcome back to the blog world, Aaron!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;UPDATE!&lt;/span&gt; Got the permission from the student to blog his name, so here it is. ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3856624862131672592-7045288798184658109?l=fmontesi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fmontesi.blogspot.com/feeds/7045288798184658109/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3856624862131672592&amp;postID=7045288798184658109' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/7045288798184658109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/7045288798184658109'/><link rel='alternate' type='text/html' href='http://fmontesi.blogspot.com/2008/08/before-akademy.html' title='Before Akademy'/><author><name>Fabrizio Montesi</name><uri>http://www.blogger.com/profile/12780751151972172366</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_I6cBVk6ZngU/SWt0B8jvayI/AAAAAAAAABk/HRKz20uNuHo/S220/fmontesi.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3856624862131672592.post-8285061676467032461</id><published>2008-07-24T22:48:00.002+02:00</published><updated>2008-07-24T23:02:11.724+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vision'/><category scheme='http://www.blogger.com/atom/ns#' term='jolie'/><category scheme='http://www.blogger.com/atom/ns#' term='kde'/><title type='text'>Vision: a distributed presentation framework.</title><content type='html'>Vision is a proof of concept application (thanks aseigo for the initial suggestion), showing what can be easily obtained by using the service-oriented paradigm together with rich client applications.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;What is Vision?&lt;/span&gt;&lt;br /&gt;But, more importantly: what's a distributed presentation?&lt;br /&gt;&lt;br /&gt;Imagine that you are showing a presentation, and that someone wants to see what you're presenting... in his computer! To do so, he should connect in some way to your presentation. Whenever you change page (or make another relevant action, like changing document), the client should be notified and synchronized automagically.&lt;br /&gt;That is exactly what Vision does. It forms a network between the presenter and the clients, keeping the clients synchronized with the presentation.&lt;br /&gt;A screencast is better than a thousand words: &lt;a href="http://jolie.sourceforge.net/videos/vision-previewer.avi"&gt;an example usage of vision with the previewer plasmoid and kpdf&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;As you can see in the screencast, Vision already supports more than one viewer (there are shown kpdf and the previewer plasmoid, but we also already support okular).&lt;br /&gt;&lt;br /&gt;Another nice feature of Vision is that it forms a P2P network. A client acts also as a presentation server. Say that A is watching B's presentation. Now another client (C) can connect to A. Whenever A receives an event from B, it will now also send it to C.&lt;br /&gt;This can be exploited, for example, in order to perform bandwidth load balancing.&lt;br /&gt;&lt;br /&gt;Note also that Vision makes use of &lt;a href="http://jolie.sourceforge.net/?page=sodep"&gt;SODEP&lt;/a&gt;, a binary protocol especially designed for service communications (it can, nevertheless, use all of the other JOLIE supported protocols, such as SOAP, HTTP, GWT-RPC...). Thus, the needed bandwidth is very small and the application can handle a lot of clients at the same time.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Exposing Vision to other platforms&lt;/span&gt;&lt;br /&gt;A great feature of JOLIE is that it separates the logical interfaces of a service from their deployment. Suppose that we want to extend Vision to support Bluetooth clients. The ideal solution would be to expose the same interface that we expose on the network via sockets to bluetooth. Luckily, doing that in JOLIE is very easy:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;service PresenterBluetoothService&lt;br /&gt;{&lt;br /&gt;Location: "btl2cap://localhost:3B9FA89520078C303355AAA694238F07;name=Vision;encrypt=false;authenticate=false"&lt;br /&gt;Protocol: sodep { .charset = "ISO8859-1"; .keepAlive = 1 }&lt;br /&gt;Ports: PresenterInputPort&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;What do these lines mean?&lt;br /&gt;Well, they're telling JOLIE to expose the &lt;code&gt;PresenterInputPort&lt;/code&gt; interface (which is the Vision presenter interface) on the pointed bluetooth Location using the SODEP protocol to encode and decode data. You can see the whole presenter service code in the &lt;a href="http://sourceforge.net/svn/?group_id=171960"&gt;JOLIE SVN repository&lt;/a&gt; (/trunk/playground/vision).&lt;br /&gt;&lt;br /&gt;Guess what? &lt;a href="http://jolie.sourceforge.net/videos/vision-remote.avi"&gt;It just works! (video)&lt;/a&gt; And what's better than a mobile phone to test it?&lt;br /&gt;&lt;br /&gt;By the way:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_I6cBVk6ZngU/SIjqKz3Nz_I/AAAAAAAAAAs/UmVTnVhruO4/s1600-h/goingakademy08.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_I6cBVk6ZngU/SIjqKz3Nz_I/AAAAAAAAAAs/UmVTnVhruO4/s320/goingakademy08.png" alt="" id="BLOGGER_PHOTO_ID_5226684839004852210" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;just in case you want to see more service-oriented goodness in KDE. =)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3856624862131672592-8285061676467032461?l=fmontesi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fmontesi.blogspot.com/feeds/8285061676467032461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3856624862131672592&amp;postID=8285061676467032461' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/8285061676467032461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/8285061676467032461'/><link rel='alternate' type='text/html' href='http://fmontesi.blogspot.com/2008/07/vision-distributed-presentation.html' title='Vision: a distributed presentation framework.'/><author><name>Fabrizio Montesi</name><uri>http://www.blogger.com/profile/12780751151972172366</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_I6cBVk6ZngU/SWt0B8jvayI/AAAAAAAAABk/HRKz20uNuHo/S220/fmontesi.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_I6cBVk6ZngU/SIjqKz3Nz_I/AAAAAAAAAAs/UmVTnVhruO4/s72-c/goingakademy08.png' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3856624862131672592.post-3819006597662232127</id><published>2008-07-24T22:01:00.000+02:00</published><updated>2008-07-24T22:16:56.755+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jolie'/><category scheme='http://www.blogger.com/atom/ns#' term='kde'/><title type='text'>Starting up: another blog in the cauldron.</title><content type='html'>Hello, readers.&lt;br /&gt;So here I am, another piece in the blogosphere. This blog will be about the development of &lt;a href="http://jolie.sourceforge.net/"&gt;JOLIE&lt;/a&gt;, a language for service-oriented programming, and all of its related works.&lt;br /&gt;&lt;br /&gt;As of this first post, this blog is on Planet KDE; the following says why.&lt;br /&gt;&lt;br /&gt;If you read the planet, you should have seen JOLIE cited here and there already. Basically I'm on Planet KDE because we, the JOLIE and KDE (Plasma especially) projects, are cooperating in order to bring the power of service-oriented computing (see also: service-oriented architecture, service-oriented programming, etc.) to the desktop.&lt;br /&gt;This blog of mine is here also to explain what this means and will mean for the KDE desktop, and to show the practical results of this effort. Stay tuned with my blog if you want to know more!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3856624862131672592-3819006597662232127?l=fmontesi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fmontesi.blogspot.com/feeds/3819006597662232127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3856624862131672592&amp;postID=3819006597662232127' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/3819006597662232127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3856624862131672592/posts/default/3819006597662232127'/><link rel='alternate' type='text/html' href='http://fmontesi.blogspot.com/2008/07/starting-up-another-blog-in-cauldron.html' title='Starting up: another blog in the cauldron.'/><author><name>Fabrizio Montesi</name><uri>http://www.blogger.com/profile/12780751151972172366</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_I6cBVk6ZngU/SWt0B8jvayI/AAAAAAAAABk/HRKz20uNuHo/S220/fmontesi.jpg'/></author><thr:total>1</thr:total></entry></feed>
