<?xml version="1.0" encoding='utf-8'?>
<!-- 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
-->
<?xml-stylesheet type="text/xsl" href="https://mbien.dev/roller-ui/styles/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom">
    <title type="html">Michael Bien&apos;s Weblog</title>
    <subtitle type="html">don&apos;t panic</subtitle>
    <id>https://mbien.dev/blog/feed/entries/atom</id>
        <link rel="self" type="application/atom+xml" href="https://mbien.dev/blog/feed/entries/atom?tags=p2p" />
    <link rel="alternate" type="text/html" href="https://mbien.dev/blog/" />
    <updated>2024-08-24T07:57:58+00:00</updated>
    <generator uri="http://roller.apache.org" version="6.1.4">Apache Roller</generator>
    <entry>
        <id>https://mbien.dev/blog/entry/fishfarm_got_second_prize_in</id>
        <title type="html">FishFarm wins second prize in GlassFish Community Innovation Awards Program</title>
        <author><name>mbien</name></author>
        <link rel="alternate" type="text/html" href="https://mbien.dev/blog/entry/fishfarm_got_second_prize_in"/>
        <published>2008-10-04T17:30:23+00:00</published>
        <updated>2020-04-09T10:13:42+00:00</updated> 
        <category term="Java" label="Java" />
        <category term="fishfarm" scheme="http://roller.apache.org/ns/tags/" />
        <category term="forkjoin" scheme="http://roller.apache.org/ns/tags/" />
        <category term="java" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jsr166y" scheme="http://roller.apache.org/ns/tags/" />
        <category term="p2p" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;img align=&quot;left&quot; src=&quot;https://fishfarm.dev.java.net/resources/fish200.png&quot; /&gt;I recently
&lt;a href=&quot;http://www.sun.com/aboutsun/pr/2008-09/sunflash.20080929.2.xml&quot;&gt;won
with FishFarm&lt;/a&gt; the second prize in the GlassFish Community Innovation
Awards Program -&amp;nbsp; which is pretty cool. I would never have thought
that I have a chance to win something in the GAP.&lt;br /&gt;

&lt;p&gt;Since you probably don&apos;t know what FishFarm actually is, I will
try to introduce it with this entry.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Formal:&lt;/b&gt;&lt;/p&gt;
&lt;blockquote&gt;
    &lt;b&gt;&lt;a href=&quot;https://fishfarm.dev.java.net/&quot;&gt;FishFarm&lt;/a&gt;
    = Shoal + Fork/Join Framework&lt;/b&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
    &lt;b&gt;&lt;a href=&quot;https://shoal.dev.java.net/&quot;&gt;Shoal&lt;/a&gt;
        = simple to use clustering framework currently based on JXTA and used
    within GlassFish&lt;/b&gt;
    &lt;p&gt;&lt;b&gt;&lt;a href=&quot;http://g.oswego.edu/dl/concurrency-interest/&quot;&gt;Fork/Join
            Framework&lt;/a&gt; = pretty cool concurrency framework for local parallelization
    of tasks (jsr166y targeted for Java 7)&lt;/b&gt;&lt;/p&gt;
    &lt;b&gt;=&amp;gt; FishFarm = simple but pretty cool solution
    for distributing concurrent tasks over a p2p network [q.e.d.]&lt;/b&gt;&lt;br /&gt;

&lt;/blockquote&gt;
&lt;p&gt;&lt;b&gt;Informal:&lt;/b&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
    Project FishFarm is a simple solution for
        distributing computational intensive tasks over the network based on
    Java SE APIs.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;p&gt;The goal of this project is to take any task
    written in the Fork/Join Framework (JSR166y targeted for Java 7) and
    distribute the computation over multiple nodes in a grid. FishFarm
    introduces no new frameworks and is also no full featured distribution
    system.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;p&gt;The initial focus was to make the ForkJoinPool (which is a core
    part of jsr166y) distributable with as few code changes as possible.
    Thanks to Doug Lee these modifications are now in trunk of his Fork/Join
    Framework and he even provided a handful of utility methods to make
    further extensions simpler.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;b&gt;How it works: &lt;/b&gt;&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;All you need to make your Application distributable is to replace
ForkJoinPool with FishFarm&apos;s DistributedForkJoin pool.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;
  ForkJoinPool pool = new DistributedForkJoinPool();

  // submit as many tasks you want (nothing changed)
  Future futureResult1 = pool.submit(new MyTask());
  Future futureResult2 = pool.submit(new LongRunningTask());

  // block until done
  System.out.println(&quot;result of task 1: &quot; + futureResutl1.get());
  // or ask if done
  System.out.println(&quot;task 2 isDone=&quot; + futureResutl2.isDone());
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Every DistributedForkJoinPool is member of a peer2peer network
    and automatically steals work from overstrained pools if idle.
    DistributedForkJoinPool extends ForkJoinPool and will complete submitted
    tasks even when working offline or on node failures. No additional
configuration required.&lt;/p&gt;
&lt;p&gt;I wouldn&apos;t call it ready for production yet but it should be
stable enough to have fun ;-)&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://fishfarm.dev.java.net/demo/&quot;&gt;webstartable
demos&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
    &lt;p&gt;&lt;img align=&quot;baseline&quot; src=&quot;https://fishfarm.dev.java.net/resources/aquariumTest.png&quot; /&gt;&lt;br /&gt;
    &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;-------&lt;/p&gt;
&lt;p&gt;In case you are wondering why you are reading this entry via the
    RSS feed of my brother&apos;s (&lt;a href=&quot;http://www.adam-bien.com/roller/abien/&quot;&gt;Adam&lt;/a&gt;) blog. This is a
    bug which confuses both urls, I hope this should be fixed with the next
roller deployment.&lt;/p&gt;
&lt;p&gt;This is &lt;a href=&quot;//mbien.dev/blog//&quot;&gt;Michael&lt;/a&gt;
    - over and out ;-)&lt;br /&gt;
&lt;/p&gt;</content>
    </entry>
</feed>

