Hi Mostafa,
take this as an input that dont need to care about bcs its out of your scope but could make some input to your mind set.
I like your project and when I also saw that you will
make a central controller for the whole extension and also make support for others then I got interested to make an input of also making a central rule comp for decision and control or at least prepare to be integrated for one i future.
This is something that is missing in Joomla core but is now on the way to get great impact for Drupal CMS - one of Joomlas competitor.
"
....The workflow extension I'll be working on will support the core content component and have the capacity to support other components.
Document workflow will be broken down into a set of "stations" ,An item will be passed from one station to another in a particular order until reaching its final station after which an arbitrary operation will be preformed "e.g. Publish article".
Structure
Core:
MVC based, the core will act as a central controller for the whole extension....Background about rules and business rules and why use itThe big picture is for large corp OMG
http://bmi.omg.org/ and Business Process Management
http://www.bpmi.org/ coming down to use rules for decision and control support.
Production Rule Representation (PRR)This specification provides a standard production rule representation that is compatible with rule engine vendors' definitions of production rules. It can be used for interchange of business rules amongst rule modeling tools (and other tools that support rule modeling as a function of some other task). • It provides a standard production rule representation that is readily mappable to business rules, as defined by business rule management tool vendors. • It provides a standard production rule definition that supports and encourages system vendors to support production rule execution. • It provides an OMG MDA PIM model with a high probability of support at the PSM level from the contributing rule engine vendors and others, and can be included to add production rule capabilities to other OMG metamodels. • It provides examples of how the OMG UML can be used to support production rules in a standardized and useful way. • It provides a standard production rule representation that can be used as the basis for other efforts such as the W3C Rule Interchange Format and a production rule version of RuleML.
"Semantics of Business Vocabulary and Business Rules (SBVR)" The SBVR specification is designed to support interchange of business vocabularies and rules among organizations. SBVR is conceptualized optimally for business people and designed to be used for business purposes independent of information systems designs. It is also intended to provide the business vocabulary and business rules underpinned by First Order Predicate Logic for transformations by IT staff into information system designs. Note that, in most cases, such transformations will not be fully automated; there will be many options for information system design, with decisions required from system architects and PIM modelers.
Drupal is an good example that start implement this and now working for them. If you can create a central integrated rule engine with its own repository where you store the decision and control logic and could be changeable for a l l affected components that would be something really important for Joomla for the future.
Some links about rules to research more infoMore about rules, rules engine and Drupal rule development where you can learn a lot from with these links.
http://drupal.org/project/rules
http://drupal.org/project/issues/rulesBRM
http://en.wikipedia.org/wiki/BRMShttp://en.wikipedia.org/wiki/Rule_engine Workflow business rules Why use rules?
http://www.w3.org/2004/12/rules-ws/paper/105/W3The mission of the Rule Interchange Format (RIF) Working Group is to produce W3C Recommendations for rules interchange
http://www.w3.org/2005/rules/wiki/RIF_Working_GroupWhat about setting up a central rule engine with its own repository why?Rules could be setup with different integrated rule sets that also should be reused for other components, modules that need triggers for decisions and control of what ever. So you only need to make changes in one place affecting every other Joomla comps and modules.
What could it be used for in general ?
There are so many many things you could do if you could set up your own rules where you also could reuse it for a l l Joomlas addons. One example is just time based actions with trigger inference to other comps that need support for decision for making the work flow finalize the action. And letting people change their own rules for their own system via a web browser using a rule based language like a business rules syntax.
You have one Joomla module that make static rule decisions with no central rule engine but is an example for how to use rules for different purpose in Joomla with limited intelligent decisions. But it works.
MetaMod - display modules according to rules
http://extensions.joomla.org/extensions/access-&-security/frontend-access-control/3391/detailsOne example from MetaMod for Joomla.
Here you see that you can make different info/message/marketing to different people (IPlookup) with rules and simple text for that ip no. I also suggested it to be time based which it support now.
Well I have tried to get some response of this before but I think its to big for Joomla even that Drupal doing it or they dont understand what it really is?
http://forum.joomla.org/viewtopic.php?f=500&p=1688036http://forum.joomla.org/viewtopic.php?f=38&t=258568Wish you all the best!