[GSoC 2009] Workflow Extension 1.6

For Joomla! 1.5 Coding related discussions, please use: http://groups.google.com/group/joomla-dev-general
Forum rules
Please use the mailing list here: http://groups.google.com/group/joomla-dev-general rather than this forum.
Locked
User avatar
dr_drsh
Joomla! Guru
Joomla! Guru
Posts: 585
Joined: Thu Sep 22, 2005 3:52 pm
Location: Egypt
Contact:

[GSoC 2009] Workflow Extension 1.6

Post by dr_drsh » Fri Apr 24, 2009 8:23 pm

Hello ,

My Name is Mostafa, I'm an accepted student for Google Summer of Code 2009, My Project will be a Workflow extension for J! 1.6, I'm sorry if I'm posting in the wrong forum but It was announced on the GSoC Skype channel that It is okay to post project specs here.

I'll try to describe what I'm trying to accomplish to get as much feedback as possible before starting.

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, it is composed of two parts:
1. A conventional component
2. Core plugin: A system plugin that captures J! Triggers related to content saving and passes them down to “Component handlers” (See below)

Hook Handlers:
Hooks will be implemented to allow developers to perform arbitrary actions when certain events occur, initially one hook will be implemented, this hook will be invoked upon transition from one station to the next.

Field Handlers:
They handle the rendering and storage of the “station” fields (e.g. comment fields, file attachments, etc...)


Component Handlers:
All component specific code will be placed here, these handlers act as a layer between the extension and the component whose content is being workflowed (e.g. com_content),

Each handler is composed of 2 files
1. An XML file that contains Meta data about the handler and a other parameters, among which is the “onSaveItem trigger name” which defines the name of the “J! Event” that is triggered when an item of the handler type is saved. (E.g. onAfterSave in com_content), the file also contains a list of supported “Final Actions”, which are the actions that can be taken when the item reaches its final destination (e.g. publish, delete, archive, etc…)

2. A php file containing implementation of the handler, it must implement the following methods ( Subject to change as needed )
• lockElement (id)
• unlockElement (id, gid)
• onItemEdit ()
• getItemRevision(id, rev)
More on getItemRevision()
If the component in question (e.g. com_content) does support version control, the method returns the requested version, if it doesn't, then the method simply ignores the $rev parameter and returns whatever stored in the DB.

The above list of methods is a preliminary list and is subject to change as development progresses
When the workflow is saved, the component’s onSaveItem trigger is registered with core plugin so that when the event is triggered the core plugin captures it and loads the correct component handler.

Version Control:
When working with workflows content is likely to be edited several times before reaching its final form, which raises the question of “versioning” , This extension will NOT handle version control of content elements that are being workflowed but will have internal support for version control should it be included in future versions of the content management.
This internal support will be provided through “component handler” plugins which allows each component to have its own way of dealing with version control if it supports it, and to ignore it if it doesn’t support it.
http://mostafa.mosmar.com/blog | My blog
http://mostafa.mosmar.com/jforms | JForms - WYSIWYG Forms Component for J! 1.5 (Beta)

User avatar
dr_drsh
Joomla! Guru
Joomla! Guru
Posts: 585
Joined: Thu Sep 22, 2005 3:52 pm
Location: Egypt
Contact:

Re: [GSoC 2009] Workflow Extension 1.6

Post by dr_drsh » Fri Apr 24, 2009 8:24 pm

Work scenario

The Administrator wants to create a new workflow for publishing content in a particular set of categories.

The Administrator will use a backend screen to create that workflow; he can specify the categories/sections he wants to be workflowed.

The Administrator defines the “stations” and the custom fields for each station and saves the workflow.

User xyz posted an article, the onAfterSave event is triggered, the core plugin captures this event and loads the component handler that corresponds to the content type (com_content handler in this case)

The component handler for “com_content” locks the article for all groups of users and unlocks it for the ACL group of station 2.

In the process of transition between two stations, A hook is invoked, calling all registered handlers, One of these handlers will send an E-mail to station users about the item that waits processing.

Station 2 user logs into J! And accesses the “pending items” view (Accessible via frontend or backend), station 2 fills the custom fields assigned to the station (comment and file attachment) and passes the article up to station 3.

The core locks the article for everybody except station 3, the article proceeds in similar manner until it reaches its final destination where the “final action” will be decided, supported final actions will be "component handler" dependent, for com_content, I cannot think of anything aside from "publish, delete, move to category/section".

A word about the "views"

The component will have several views, but nothing out of the ordinary,except for the view that allows the administrator to create the workflow, This view will feature some javascript magic to increase usability, I'll borrow some code from JForms :) .


That's all for now :)
http://mostafa.mosmar.com/blog | My blog
http://mostafa.mosmar.com/jforms | JForms - WYSIWYG Forms Component for J! 1.5 (Beta)

User avatar
darb
Joomla! Ace
Joomla! Ace
Posts: 1446
Joined: Thu Jul 06, 2006 12:57 pm
Location: Stockholm Sweden
Contact:

Re: [GSoC 2009] Workflow Extension 1.6

Post by darb » Thu May 14, 2009 7:30 am

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 it
The 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 info
More 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/rules


BRM http://en.wikipedia.org/wiki/BRMS
http://en.wikipedia.org/wiki/Rule_engine

Workflow business rules Why use rules? http://www.w3.org/2004/12/rules-ws/paper/105/

W3
The 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_Group

What 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 ... 91/details

One 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=1688036
http://forum.joomla.org/viewtopic.php?f=38&t=258568

Wish you all the best!
Success in the long run Its not about the code its about the people and community that's make it!
Its not what you say its what you do that matters!

Darb - aka ssnobben

ojb
Joomla! Intern
Joomla! Intern
Posts: 60
Joined: Sat Jan 30, 2010 5:41 am
Contact:

Re: [GSoC 2009] Workflow Extension 1.6

Post by ojb » Sat Jan 30, 2010 11:44 pm

Hi dr_drsh,

Very exciting!!!
Is these any update with your project with I can join as a tester?

Best wishes,
OJB
BlackRed Flatlia Mobile Extensions for Joomla
http://www.blackredmobile.com

faridv
Joomla! Apprentice
Joomla! Apprentice
Posts: 29
Joined: Thu Oct 01, 2009 12:42 pm
Location: Tehran, Iran

Re: [GSoC 2009] Workflow Extension 1.6

Post by faridv » Sat Jun 04, 2011 4:32 pm

Hi,
I was searching and searching for a good workflow extension and suddenly I found this.
I downloaded this extension from Joomla! Code (where suddenly I can't find it anymore!) and tested it. It's all I need but just working with Joomla 1.5.
I tried to contact the author but I saw he has mentioned not to contact him for Joomla component and post here instead.. so here is my questions:
1) Where is project now and is it still under development or it's where it was?
2) How can we contribute to this project if we want to?
and other questions that I will ask after getting answers for these questions.

mpierce
Joomla! Apprentice
Joomla! Apprentice
Posts: 8
Joined: Sun Jun 26, 2011 8:58 am

Re: [GSoC 2009] Workflow Extension 1.6

Post by mpierce » Sun Jun 26, 2011 9:45 am

Hey Mostafa, thanks for sharing this with us, have you got any updates on this project? I'm intrigued to know of the outcome, we've started working on something similar here at Sydney Uni and we'd like your input, if you could PM me that'd be great.

Thanks!
Last edited by mpierce on Sat Jul 02, 2011 3:30 am, edited 1 time in total.

User avatar
darb
Joomla! Ace
Joomla! Ace
Posts: 1446
Joined: Thu Jul 06, 2006 12:57 pm
Location: Stockholm Sweden
Contact:

Re: [GSoC 2009] Workflow Extension 1.6

Post by darb » Fri Jul 01, 2011 1:56 pm

Success in the long run Its not about the code its about the people and community that's make it!
Its not what you say its what you do that matters!

Darb - aka ssnobben

User avatar
darb
Joomla! Ace
Joomla! Ace
Posts: 1446
Joined: Thu Jul 06, 2006 12:57 pm
Location: Stockholm Sweden
Contact:

Re: [GSoC 2009] Workflow Extension 1.6

Post by darb » Sat Sep 17, 2011 8:23 pm

Great to know that this Joomla workflow extension is not dead! :D
Success in the long run Its not about the code its about the people and community that's make it!
Its not what you say its what you do that matters!

Darb - aka ssnobben

BGaugler
Joomla! Apprentice
Joomla! Apprentice
Posts: 27
Joined: Mon Jun 20, 2011 1:33 pm

Re: [GSoC 2009] Workflow Extension 1.6

Post by BGaugler » Wed Oct 19, 2011 5:11 pm

@darb,

Is the Joomla workflow plugin still available and functional? Have you installed it before and got it running? Just curious as to the current status. Any information is greatly appreciated.

User avatar
darb
Joomla! Ace
Joomla! Ace
Posts: 1446
Joined: Thu Jul 06, 2006 12:57 pm
Location: Stockholm Sweden
Contact:

Re: [GSoC 2009] Workflow Extension 1.6

Post by darb » Thu Oct 20, 2011 2:19 pm

dont know the status now but it worked for J 1.5 before check the page where all GSOC are downlaodble they are not on the JED
Success in the long run Its not about the code its about the people and community that's make it!
Its not what you say its what you do that matters!

Darb - aka ssnobben


Locked

Return to “Joomla! 1.5 Coding”