Re: Query about where time might best be invested

85 views
Skip to first unread message
Message has been deleted

Paul Morrison

unread,
Jun 20, 2012, 8:22:42 PM6/20/12
to Flow Based Programming
This is annoying! Could someone please delete one of these topics
that just got added. Also it needs to be reformatted to make it
legible - I was using the new format - not sure if that is what caused
this problem! TIA

Paul

On Jun 20, 8:14 pm, Paul Morrison <paul.morri...@rogers.com> wrote:
> This is my response to someone who wrote asking where might his time be best invested if he wanted to do some academic work on FBP.  Interestingly, he was involved in some workflow projects within IBM, but is thinking of moving more in the FBP direction - right, Michael?  I am using this medium instead of email, as the system at TU Vienna seems to have decided that my server is a bad influence, and won't let me send him email. :-)
>
> My best advice would be to start mining this Google group for ideas.  For instance,  see if you can spot any trends, or maybe team up with one or more of the very bright individuals who hang out here.   There is work going on using Javascript, work on visual displays, work on possibly enhancing DrawFBP to show procedural component code  (DrawFBP is a diagramming tool for FBP networks, and can currently generate FBP network definition code in 3 languages), and a whole bunch of other interesting ideas...
>
> Some people have suggested enhancing the diagramming tools to e.g. show data flow in real time, or dynamically reconfigure networks.  Another possibility might be to use FBP in some way to give kids "good" programming habits early on!
>
> Another place that you might find interesting is the new Chap. 27 in the 2nd edition of my book, which I call "The FBP Explosion!".  In it I have tried to give thumb-nail sketches of a number of projects which I feel are related to FBP, if not necessarily on the exact same wavelength.  There is also new material in the book about supporting really humongous volumes of data!
>
> I look forward to seeing what you come up with, and which discussions on the group you feel like contributing to - I'm sure you have a lot to share with us!
>
> All the best,
>
> Paul M.

Brad Cox

unread,
Jun 20, 2012, 8:32:12 PM6/20/12
to flow-based-...@googlegroups.com
One idea is to use FBP (card-level objects) to support the construction of SOA (system-level objects), which is likely to be of interest to IBM. That's basically what my SOAkit was all about, which I've alluded to here before.

Its really pretty simple. Secure SOA services are a nugget of core functionality,  fed by and drained to a sequence of FBP modules along the request and response pipelines. One-sided modules receive and send messages onto the external wire (which is the one and only place XML gets de/serializaed; the internal pipeline conveys references to DOM trees) . Double-sided modules do processing; encrypting, signing, transforming, etc. The nugget of core functionality can then be redeployed in different security environments (secure labs, friendly waters, high threat, etc) by attaching security modules as required. Presto, card-level objects communicating along an in-memory bus.

This is what the various ESB implementations do (JBI for one, Axis2 for another). The difference is that these aspire to strong typing and INSIST on having a strict WSDL for each and every module. This breaks module reusability, which demands dynamic checking. In this approach each module is statically defined to process a stream of generic Object (i.e. xsd:any), and dynamically performs any further typechecking on its own. 

There's a bit more about this at http://bradjcox.blogspot.com if you're interested.

On Wed, Jun 20, 2012 at 8:14 PM, Paul Morrison <paul.m...@rogers.com> wrote:
This is my response to someone who wrote asking where might his time be best invested if he wanted to do some academic work on FBP.  Interestingly, he was involved in some workflow projects within IBM, but is thinking of moving more in the FBP direction - right, Michael?  I am using this medium instead of email, as the system at TU Vienna seems to have decided that my server is a bad influence, and won't let me send him email. :-)

My best advice would be to start mining this Google group
for ideas. For instance, see if you can spot any trends, or maybe team up with one or more of the very bright individuals who hang out here. There is work going on using Javascript, work on visual displays, work on possibly enhancing DrawFBP to show procedural component code (DrawFBP is a diagramming tool for FBP networks, and can currently generate FBP network definition code in 3 languages), and a whole bunch of other interesting ideas... Some people have suggested enhancing the diagramming tools to e.g. show data flow in real time, or dynamically reconfigure networks. Another possibility might be to use FBP in some way to give kids "good" programming habits early on! Another place that you might find interesting is the new Chap. 27 in the 2nd edition of my book, which I call "The FBP Explosion!". In it I have tried to give thumb-nail sketches of a number of projects which I feel are related to FBP, if not necessarily on the exact same wavelength. There is also new material in the book about supporting really humongous volumes of data! I look forward to seeing what you come up with, and which discussions on the group you feel like contributing to - I'm sure you have a lot to share with us! All the best, Paul M.



Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted

Sam Watkins

unread,
Jun 21, 2012, 1:10:28 AM6/21/12
to flow-based-...@googlegroups.com
I still haven't seen any runnable example programs or components
for DrawFBP. As I understand, Paul knows how to create programs
directly in DrawFBP, editing chunks of Java in DrawFBP, and run them.

I know Java, but the lack of examples (as far as I know) is a
shop-stopper for me. I can't use DrawFBP without some examples.
I tried it out for a while, but did not see how to create a program.

For me, I think this would be the best place for us to invest time;
create example programs for DrawFBP. It's not academic work, but for
anyone who wants to encourage the adoption of FBP this is primarily
what's needed. I suppose we'd all like to do that, and especially Paul.


For academic work, I agree with Paul that the guy should interview
various people on this list. Many of us including me have good ideas,
and it would be good to collect or try to make some sense out of them.

Back to my topic, if anyone has a runnable open-souce app, tool or toy
that was created directly in DrawFBP, please would you send it to me,
or to the list? If everyone who does have such an example could do so,
we would then have a collection of example programs for DrawFBP. That
would be a huge step forward in promoting FBP.

Paul, you must have created some small tools or programs in DrawFBP?
Can you publish some of them as examples, and bundled them with it?
Or, did you do that already?

The more example programs that we can ship with DrawFBP,
the more people are likely to use it.

If there are no example programs, almost no one will be able
or sufficiently motivated to get to grips with it. I'm a reasonably
smart guy, or so they tell me, who has developed FBP systems in C.
But it's not obvious to me, how I can use DrawFBP. In the few hours
I spent looking at it, I did not figure it out, or manage to create a
'Hello World' program.

FBP tech is supposed to be comparatively easy to use,
but it's not easy to use without any examples.

I hope I don't come across disrespectful - I really enjoyed your book
Paul, and I appreciate your work on DrawFBP -
but it's really fraustrating that I still don't know how to use it!

Thanks,

Sam

Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted

Bob

unread,
Jun 21, 2012, 10:08:24 AM6/21/12
to flow-based-...@googlegroups.com
Hi Sam

The "AppKatas using FBP" thread refers to some small examples.

At that time I used DrawFBP and JavaFBP to create some solutions to AppKatas and to work through Paul's book for a few chapters.

No full blown apps but some small programs that processed text files. I added some Java components with Paul's help - these are now in JavaFBP (in the text package).

This self-paced introduction got me sold on the idea - I like the subnets which allow simpler top-level FBP diagrams...

Hope that helps,
Bob

Paul Morrison

unread,
Jun 21, 2012, 2:55:39 PM6/21/12
to Flow Based Programming
In case people are having trouble finding my original post to Michael,
here it is, reformatted by Dan - thanks Dan!

Paul Morrison

unread,
Jun 21, 2012, 4:40:21 PM6/21/12
to flow-based-...@googlegroups.com
Sam, I do appreciate your frustration, and hope that people can come up with ways to simplify the work flow.  What follows is my first crack at it.  There is also some stuff in the readme.txt on SourceForge for JavaFBP - there is a copy of this on my web site, called http://www.jpaulmorrison.com/graphicsstuff/FBPreadme.txt , which was written before DrawFBP existed, and does not assume Eclipse as the IDE, although it mentions it.   I am sure I have omitted important steps, so let's just use this as the base for the tutorial that people have been requesting... unless of course it would be better to approach it from a totally different angle...?

Looking forward to feedback, brickbats, etc.

Paul

--------------------------------------------------------

I have put the xml-format encoding for a simple diagram up on my web site - http://www.jpaulmorrison.com/graphicsstuff/MergeSortDisplay.drw , where .drw is the extension for DrawFBP diagrams.  You do not code this up, although theoretically you could - it just records all the diagram info, including x-y coordinates for all blocks, arrows and bends.

Now save this file into a convenient directory, and read it with DrawFBP.  The result should be a diagram looking like this: http://www.jpaulmorrison.com/graphicsstuff/MergeSortDisplay.png

Now at this point, the blocks don't have components associated with them, so you can generate code, but it will flag the "component" clauses as having errors.

So the next thing to do is to assign Java components to the blocks: right click on each block, and click on "Select Component/Subnet Class" for each one.  You can either load a class from one of your own libraries, or from the JavaFBP jar file (you will be prompted to find this and download it if you don't already have it).  If you use the JavaFBP jar file, you could use Generate.class for the two Generate blocks, Sort.class for the Sort (a very Mickey Mouse Sort component, which can only handle up to 9999 IPs), and WriteToConsole.class for Display. 

After associating a class with each component, generate the network again (using Generate Network.../Java), and save it into a convenient Java library, you will probably have to do a refresh under your IDE to see it; then change the package name as required, and it should be runnable as a Java application under your favorite IDE.   If you are using Eclipse, add the latest JavaFBP jar file to Project/Properties/JavaBuild Path/Libraries for all your JavaFBP properties.

The output of the two Generates will be merged into Sort on a first-come, first-served basis, so the output should look something like the following:

000001abcd
000001abcd
000002abcd
000002abcd
000003abcd
000003abcd

...

000059abcd
000059abcd
000060abcd
000060abcd
000061abcd
000062abcd
000063abcd

...

000097abcd
000098abcd
000099abcd
000100abcd
Run complete.  Time: 0.156 seconds

Brad Cox

unread,
Jun 21, 2012, 4:50:05 PM6/21/12
to flow-based-...@googlegroups.com
On Thu, Jun 21, 2012 at 4:40 PM, Paul Morrison <paul.m...@rogers.com> wrote:
unless of course it would be better to approach it from a totally different angle...?

Not a different angle; same trajectory, but need need more powder.

To reach those non-programmers I keep claiming you need to reach, you need a GUI (ideally) that GENERATES that xml for them. For us, that GUI is JavaScript on top of YUI (now, OWF soon). For RapidMiner, that GUI is written in Java/Swing. For LabView, I've no idea. 

Every one of these uses some machine-oriented data structure between the GUI and the backend. Ours is JSON, RapidMiner's is XML, LabView's is I don't know. 

Until that's done I'm afraid you only have half a solution, the easy half in my experience.  

Paul Morrison

unread,
Jun 21, 2012, 5:12:18 PM6/21/12
to flow-based-...@googlegroups.com
On 21/06/2012 4:50 PM, Brad Cox wrote:
you need a GUI (ideally) that GENERATES that xml for them
This is the part I don't understand.  When I mentioned xml, I meant the linear text that captures the diagram, and from which the diagram can be rebuilt.  If the user draws a diagram, and plugs in the component names, s/he has a runnable program.  What more do you need?!  Sorry to be dense!

Brad Cox

unread,
Jun 21, 2012, 6:01:03 PM6/21/12
to flow-based-...@googlegroups.com
I may have misunderstood. If the user's drawing the diagram, that's all that's needed. I thought they needed to write XML.

Paul Morrison

unread,
Jun 21, 2012, 9:55:38 PM6/21/12
to flow-based-...@googlegroups.com
On 21/06/2012 6:01 PM, Brad Cox wrote:
> If the user's drawing the diagram, that's all that's needed. I thought
> they needed to write XML.
Right! The XML is just a way of saving the diagram on a linear
medium... We could just list the connections, but the XML captures x-y
coordinates as well, plus some non-component icons which we have found
useful, such as file icons, report icons, legends, little people, etc. HTH

--
http://jpaulmorrison.blogspot.ca/

Paul Morrison

unread,
Jun 29, 2012, 9:27:23 AM6/29/12
to flow-based-...@googlegroups.com
On 29/06/2012 7:33 AM, Mike wrote:
> well I am converging on doing a new language as a compiler with FBP
> constructs, if anybody is interested in collaborating drop me a note,
>
Absolutely! I know we would love to see anything you want to share with us.

Paul
Reply all
Reply to author
Forward
0 new messages