iDesign Method: Managers and Engines

281 views
Skip to first unread message

Peter Kneale

unread,
Jul 2, 2008, 7:52:29 PM7/2/08
to ArchitectM...@googlegroups.com
Hi All,
I'm back at work trying to put some of what we were taught last week in to practice.
Does anyone have any examples or sample code that demonstrated the implementation of the iDesign method particularly the ManagerServices and EngineServices.
If i recall correctly the Managers are permitted to make many calls on the Engines and also permit queued calls to other Managers but i would like to see how this is actually implemented. I'm sure there are many benefits to it but it seems to add so much complexity to the codebase (two sets of contracts, two sets of services, two proxies (one used by the client and one used by the manager to call the engines)..

Thanks!

--
Peter Kneale

Ajit Bhandari

unread,
Jul 3, 2008, 8:27:15 AM7/3/08
to ArchitectM...@googlegroups.com
Hi Peter,
 
I have already implemented it and using it in my project but I cann't share the code as its under company's copyright. Will try to create some sample.
 
Cheers,
Ajit

Peter Kneale

unread,
Jul 3, 2008, 9:04:46 PM7/3/08
to ArchitectM...@googlegroups.com
Thanks for getting back to me Ajit - I understand the copyright issues - i was think you might just be able to validate my approach then...
These are the projects that i was going to put together for my sample code - do you think i am going in the right direction?

Sample.Client                          Contains a command line tool that calls MyManager via the Sample.Manager.Proxies proxy.

Sample.Manager                      Contains implementation of MyManager. This calls MyEngine via the Sample.Engine.Proxies proxy.
Sample.Manager.Proxies          Contains a proxy class for IManager
Sample.Manager.Contracts       Contains a definition of IManager
Sample.Manager.Data              Contains a definition of ManagerData
Sample.Manager.Host              Contains a Windows Service that hosts MyManager

Sample.Engine                        Contains implementation of MyEngine
Sample.Engine.Proxies            Contains a proxy class for IEngine
Sample.Engine.Contracts         Contains definition of IEngine
Sample.Engine.Data                Contains a definition of EngineData
Sample.Engine.DataAccess     Contains ADO.Net code for talking to SQL Server
Sample.Engine.Host                Contains a Windows Service that hosts MyEngine
--
Peter Kneale

Peter

unread,
Jul 3, 2008, 10:54:05 PM7/3/08
to ArchitectM...@googlegroups.com
I think a sample application should be put together, something fairly simple which we can all understand and see the concepts in action.
Perhaps Clients and their Products would be a good example, maybe the Product is subscription based and can Expire and also be Renewed.

The full architecture should be designed first using the IDesign method too so we can all see this method full-cycle.

What does everyone think...?

Peter King.

andrew mackay

unread,
Jul 4, 2008, 4:05:15 AM7/4/08
to Architect Master Class
Hi Pete,

Your right and I will try my luck asking Juval itself. Who better to
give us a sample application outling how the method is implemented.

Maybe if he got several requests from each of us it would convinince
him to send us a sample app. Also he has not sent us the artifacts he
has promised.

Cheers
Andrew

On Jul 4, 6:54 am, Peter <oasisma...@gmail.com> wrote:
> I think a sample application should be put together, something fairly simple
> which we can all understand and see the concepts in action.
> Perhaps Clients and their Products would be a good example, maybe the
> Product is subscription based and can Expire and also be Renewed.
>
> The full architecture should be designed first using the IDesign method too
> so we can all see this method full-cycle.
>
> What does everyone think...?
>
> Peter King.
>
> On Fri, Jul 4, 2008 at 10:34 AM, Peter Kneale <peterkne...@gmail.com> wrote:
> > Thanks for getting back to me Ajit - I understand the copyright issues - i
> > was think you might just be able to validate my approach then...
> > These are the projects that i was going to put together for my sample code
> > - do you think i am going in the right direction?
>
> > Sample.Client                          Contains a command line tool that
> > calls MyManager via the Sample.Manager.Proxies proxy.
>
> > Sample.Manager                      Contains implementation of MyManager.
> > This calls MyEngine via the Sample.Engine.Proxies proxy.
> > Sample.Manager.Proxies          Contains a proxy class for IManager
> > Sample.Manager.Contracts       Contains a definition of IManager
> > Sample.Manager.Data              Contains a definition of ManagerData
> > Sample.Manager.Host              Contains a Windows Service that hosts
> > MyManager
>
> > Sample.Engine                        Contains implementation of MyEngine
> > Sample.Engine.Proxies            Contains a proxy class for IEngine
> > Sample.Engine.Contracts         Contains definition of IEngine
> > Sample.Engine.Data                Contains a definition of EngineData
> > Sample.Engine.DataAccess     Contains ADO.Net code for talking to SQL
> > Server
> > Sample.Engine.Host                Contains a Windows Service that hosts
> > MyEngine
>
> > On Thu, Jul 3, 2008 at 10:27 PM, Ajit Bhandari <bhandaria...@gmail.com>
> > wrote:
>
> >> Hi Peter,
>
> >> I have already implemented it and using it in my project but I cann't
> >> share the code as its under company's copyright. Will try to create some
> >> sample.
>
> >> Cheers,
> >> Ajit
>
> >> On Thu, Jul 3, 2008 at 9:52 AM, Peter Kneale <peterkne...@gmail.com>

andrew mackay

unread,
Jul 4, 2008, 4:22:18 PM7/4/08
to Architect Master Class
Juval mentioned that the artifacts are with Readify....

Andrew
> > > Peter Kneale- Hide quoted text -
>
> - Show quoted text -

andrew mackay

unread,
Jul 6, 2008, 11:53:27 AM7/6/08
to Architect Master Class

oasisman82

unread,
Jul 17, 2008, 1:32:13 AM7/17/08
to Architect Master Class
Looking through the, "Rubicon Project Architecture Report" (Page 5,
Paragraph 4), I see a small paragraph that should be highlighted.
It describes the responsibilities of Managers and Engines...

"The business layer components are broken into two main types: manager
and engine components. Manager components are focused on implementing
the workflow or business process for the use case to which it is
aligned and determine the API exposed to the services. The engine
components encapsulate the business rules that support the business
process. The separation is intentional for maintenance reasons.
Business rules are more likely to change frequently than the business
process. Keeping them isolated in their own component allows the
developer to more easily locate and update the business rule code
without needing to check in many locations throughout the
architecture. The engine components can potentially be deployed and
updated separately from the rest of the architecture to minimize the
potential breakage of deploying updates. The implementation of manager
components can be done with workflows, and the implementation of
business rules can be done with rules within the workflow environment
if the use case is complex enough to warrant implementation through a
workflow engine technology such as Windows Workflow Foundation or
K-2."

Cheers,
Pete.

Himanshu

unread,
Aug 5, 2008, 3:37:19 AM8/5/08
to ArchitectM...@googlegroups.com
Hi Peter,
I agree sample application will help greatly to clarify the concept,did anyone end up creating one?
 
Regards,
Himanshu

Reply all
Reply to author
Forward
0 new messages