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 2 [3] 4 5 ... 188
31  PureMVC Manifold / MultiCore Version / Re: Java Servlets with PureMVC on: July 31, 2015, 09:25:39
Nice.
32  PureMVC Manifold / MultiCore Version / Re: Java Servlets with PureMVC on: July 30, 2015, 03:04:36
That looks great. Did you think about the possibility of running this as a daemon so that you don't have to load and plumb the whole app for every request?
33  PureMVC Manifold / MultiCore Version / Re: Java Servlets with PureMVC on: July 07, 2015, 07:07:18
If the application gets large it could be an issue. Can you set the application up to run as a daemon and then connect to it from a more lightweight servlet? You could instantiate a pool of modules to handle requests, and plumb a new one when needed, then return it to the pool when complete.
34  Announcements and General Discussion / Architecture / Re: Bulky Modules on: June 24, 2015, 07:34:11
Hey Saad,

Glad to hear the refactor worked out for you. It's always nice when you can chop a few heads off the complexity beast :)

Cheers,
-=Cliff>
35  Announcements and General Discussion / Architecture / Re: Bulky Modules on: June 16, 2015, 12:35:59
Still, you could implement the formal request and use SimpleCommand and Proxy. The Proxy classes could possibly be simplified intto a single, more generic one by having the Request class determine the HTTP method GET/POST/PUT/DELETE and the URL base, but you supply the final node like :id in the constructor.

Then as I mentioned before,
The command would then trigger different notifications based on the response it gets back, which might mean a Command and/or Mediators answer, that end of things - handling of the result - will vary based on your app.

-=Cliff>
36  Announcements and General Discussion / Architecture / Re: Bulky Modules on: June 09, 2015, 01:46:48
Hi Saad,

I agree with your precepts for decomposition of actors and modules. However, I think the explosion of classes in your current design is probably due to the literal mapping of your application's actors to the REST interface you are exposing to the client.

For instance, having a separate command and proxy pair for list/detail/insert/update/delete seems a bit excessive. Usually I have one Proxy for a data source and perform all operations from it. A single command could look at the incoming request and determine which methods to call on the Proxy.

I see you're using AsyncCommand/AsyncProxy. Not my favorite implementation. I like the "Formal Request" architecture (which I describe in the Advanced Model Topics section of the PureMVC book) better.

The essence of that architecture is having a "Request" object which is submitted to a Proxy, via a method like MyProxy.submitRequest( request:IRequest ). That request tells it the operation the caller (usually an ICommand) wishes to invoke. And it also has a callback function (courtesy of extending PureMVC Observer) that lets the result come back asynchronously to the caller. This will work with a SimpleCommand and Proxy.

I described the basic premise in code here:
http://forums.puremvc.org/index.php?topic=1955.msg8724#msg8724

You'd want a more advanced request that could have a type and other parameters probably. That example just triggers a static call and gets the result back. It also uses AsyncToken (a Flex-ism) that ensures the Proxy gets the result of the call. Whatever methodology you're using in JS in your AsyncProxy would be used there. It has nothing to do with the communication between the command and the proxy.

I'm willing to bet you could have a single command figure out the type of request to generate, then submit it to a single proxy to get the work done and return the result. Your router would simply need to send the right notification to the command containing the information about the REST path, so that the Command could determine the appropriate request type to create. With a single submitRequest() method on the Proxy, it would mean you don't have a big switch in that Command calling different Proxy methods, so it shouldn't be very large. Nor should the Proxy really. It would need a method for each of list/detail/insert/update/delete, but its handling of the response would be similar.

The command would then trigger different notifications based on the response it gets back, which might mean a Command and/or Mediators answer, that end of things - handling of the result - will vary based on your app. But the collapsing of the commands for initiating a call into one, and the collapsing of the separate proxies for every kind of call by way of the formal request object with built-in callback should get this under control without pushing too hard at the upper limits of your #1 decomposition rule.
37  Announcements and General Discussion / Architecture / Re: Bulky Modules on: June 08, 2015, 06:35:50
Hi Saad,

I know all this makes sense to you within the context of the work you've done. But if you could draw us a diagram of the modules and their message flow as well as a diagrams of the individual modules, it would make things a lot clearer.

Cheers,
-=Cliff>
38  PureMVC Manifold / Demos and Utilities / Pipes - A PureMVC Swift Utility on: May 15, 2015, 04:02:12
This utility provides the capability for creating pipelines that pass messages between Cores in a PureMVC  MultiCore-based application. Pipelines can be composed of filters, queues, splitting and merging tees, and more.

The Utility is located here: https://github.com/PureMVC/puremvc-swift-util-pipes/wiki

Authors are Cliff Hall and Saad Shams.

The Project Owner is Saad Shams. <saad.shams@puremvc.org>
39  PureMVC Manifold / Demos and Utilities / StateMachine - A PureMVC Swift Utility on: May 15, 2015, 03:08:34
This utility provides a simple yet effective Finite State Machine implementation, which allows the definition of discrete states, and the valid transitions to other states available from any given state, and the actions which trigger the transitions.

A mechanism is provided for defining the entire state machine in XML and having a fully populated StateMachine injected into the PureMVC app.

The utility is is located on GitHub: https://github.com/PureMVC/puremvc-swift-util-statemachine/wiki

The authors are Neil Manuell, Cliff Hall, and Saad Shams.

The Project Owner is Saad Shams. <saad.shams@puremvc.org>
40  PureMVC Manifold / MultiCore Version / Welcome to the Swift MultiCore Port on: May 15, 2015, 02:33:48
The project source is hosted at GitHub:
https://github.com/PureMVC/puremvc-swift-multicore-framework/wiki

The Project Owner is:
Saad Shams <saad.shams@puremvc.org>
41  PureMVC Manifold / Demos and Utilities / AsyncProxy - A PureMVC / Swift Utility on: May 15, 2015, 12:57:32
Based on a need to handle a series of asynchronous operations. Ultimate use in conjunction with AsyncCommands/AsyncMacroCommands in a sequence.

The AsyncProxy Utility source is on GitHub:
https://github.com/PureMVC/puremvc-swift-util-asyncproxy/wiki

The author is Saad Shams. <saad.shams@puremvc.org>
42  PureMVC Manifold / Demos and Utilities / AsyncCommand - A PureMVC / Swift Utility on: May 15, 2015, 12:56:37
The AsyncCommand utility offers a solution to the problem of executing a series of commands each of which may need to complete one or more asynchronous operations before the next command is executed.

The source code is located on GitHub: https://github.com/PureMVC/puremvc-swift-util-asynccommand/wiki

Standard and MultiCore versions are included.

The author is Saad Shams. <saad.shams@puremvc.org>
43  PureMVC Manifold / Demos and Utilities / AsyncCommand - A PureMVC / Swift Utility on: May 15, 2015, 12:55:11
The AsyncCommand utility offers a solution to the problem of executing a series of commands each of which may need to complete one or more asynchronous operations before the next command is executed.

The source code is located on GitHub: https://github.com/PureMVC/puremvc-swift-util-asynccommand/wiki

Standard and MultiCore versions are included.

The author is Saad Shams. <saad.shams@puremvc.org>
44  PureMVC Manifold / Demos and Utilities / AsyncProxy - A PureMVC / Swift Utility on: May 15, 2015, 11:22:03
Based on a need to handle a series of asynchronous operations. Ultimate use in conjunction with AsyncCommands/AsyncMacroCommands in a sequence.

The AsyncProxy Utility source is on GitHub:
https://github.com/PureMVC/puremvc-swift-util-asyncproxy/wiki

The author is Saad Shams. <saad.shams@puremvc.org>
45  PureMVC Manifold / Demos and Utilities / EmployeeAdmin - A PureMVC Swift / UIKit Demo on: May 15, 2015, 09:13:51
This demo illustrates techniques for performing routine maintenance operations in a PureMVC-based Swift / UIKit application.

The project source is hosted on GitHub: https://github.com/PureMVC/puremvc-swift-demo-uikit-employeeadmin/wiki

The author is Saad Shams. <saad.shams@puremvc.org>
Pages: 1 2 [3] 4 5 ... 188