Futurescale, Inc. PureMVC Home

The PureMVC Framework Code at the Speed of Thought


Over 10 years of community discussion and knowledge are maintained here as a read-only archive.

New discussions should be taken up in issues on the appropriate projects at https://github.com/PureMVC

Show Posts

| * |

  Show Posts
Pages: [1]
1  Announcements and General Discussion / General Discussion / Pipeworks Rewritten Using LICS instead of Pipes - 23% Less Code on: February 07, 2010, 08:08:18
I want to start the topic with a very important statement.

I think PureMVC is excellent. In particular the multicore version has enabled me to do some really cool things, and do them quickly. The source code is clean and I think Cliff Hall is verging on the genius - so I want to be sure I don't want to offend anybody by what I am about to say:

IMHO Pipes and the Pipeworks demo are a bit of an overcomplicated mess. I have just spent the whole day converting the demo to use my LICS Framework, and have managed to get rid of 298 lines of code without even trying (mainly from junction mediators and all the code associated with them). Thats a full 23% reduction without losing functionality. I was also very surprised by the amount of coupling between the modules in the demo, something Cliff isn't normally guilty of :-) Int the LICSWorks demo I have reduced the coupling quite a lot.

The LICS framework is an implementation of an Enterprise System Bus (http://en.wikipedia.org/wiki/Enterprise_service_bus) using PureMVC. I think it works very well and is a far simpler approach to Multi Module applications than Pipes. It is outlined here.

http://www.dz015.com/?p=1

The main changes for the demo are

1) The junction mediators are sort of represented by the module Workers - but workers are much simpler.
2) LICS provides a service locator (http://en.wikipedia.org/wiki/Service_locator_pattern) for global service - I used this to provide a screen service for the components to attach to instead of them 'messaging' themselves to the shell. This is one of the strangest bits of the Pipeworks demo - I don't normally write apps like that, and so am not sure this was a good approach. The Service Locator in LICS is outlined here

http://www.dz015.com/?p=37

I have zipped up the project and attached it to this post.

I will hopefully have time at some point to improve it even more in the future.

Let me know what you think



2  Announcements and General Discussion / General Discussion / PureMVC Pipes Alternative - LICS on: January 28, 2010, 06:31:57
Hi all,

First off, sorry for the cross post, but based on the talk here this might actually be a better place to have posted it.

Based on the thread here

http://forums.puremvc.org/index.php?topic=1611.0

I have now released version 1.0.0 of my Lightweight Inter Core System extension for PureMVC. In my opinion it is a more lightweight and simpler alternative to Pipes.

Read all about it here

http://www.dz015.com/?p=1

Early next week I will be releasing version 1.1 that has a service framework included. Then it will probably be complete :D

Please let me have your comments, and I hope somebodyfinds it useful


Conrad
3  PureMVC Manifold / MultiCore Version / Introducing the LICS PureMVC exetension on: January 24, 2010, 10:43:21
Hi,

based on the thread here

http://forums.puremvc.org/index.php?topic=1611.0

I have now released version 1.0.0 of my Lightweight Inter Core System extension for PureMVC. In my opinion it is a more lightweight and simpler alternative to Pipes.

Read all about it here

http://www.dz015.com/?p=1

I hope somebodyfinds it useful


Conrad
4  PureMVC Manifold / MultiCore Version / A New Approach to Inter-Core communication on: January 18, 2010, 09:37:23
***** 19/01/2010: I have updated the shell, based on comments from Cliff, new shell is now attached, please read my new post for details of the changes - I think it is even cleaner and lighter now - original post is inaccurate now, but idea remains the same *****

Hi all,

I haven't posted here before, but I have been using PureMVC for well over a year now. I have delivered a lot of apps using the multicore version (large and small), and have used Pipes and Junctions on one big project.

My thoughts on Pipes and Junctions was that it was too complicated and not very PureMVC (sorry Cliff).

I tried to think of another way of doing decoupled module communication and have come up with a system that works at the facade level.

It uses the idea of 'Supervisor' and 'Supervised' facades (although a facade can be both).

A supervisor facade (of which there should be only one) is the router and uses exactly the same Observer pattern as the mediators in order to pass information.

Supervised facades have a 'listSystemNotificationInterests' and a 'handleSystemNotification' method analogous to the mediator methods with similar names.

Facade instances can then call the 'sendSystemNotification' method to send fire and forget inter module messages. There is also a SystemCommand that extends SimpleCommand and has a sendSystemNotification method.

To me this is more intuitive and PureMVC like.

I have attached to attached a project that explains this better (I hope).

The Shell app is the main one and at startup it load a logger swf (which is a puremvc core). The shell is a supervisor facade and the logger is a supervised facade. It is listening for SystemNotification.LOG messages from any other cores that load.

If you press the 'Load Module A' button, then a second module loads up that has a supervised facade. When it starts up it uses a SystemCommand to send a log notification out to the system. The logger catches this and displays the message.

What do people think of this - are there better ways to do what I have done? Is this a valid way to implement inter core communication?


Conrad
Pages: [1]