Ok so we redid everything in parallel. Too bad anyway I will continue
and my changes are in my clone.
I will update the booklet once I get it.

Stef

On Sun, Jan 21, 2018 at 6:05 PM, Cédrick Béler <cdric...@gmail.com> wrote:
>
> HI cedrick
>
>
> I tried to start a booklet with Stephane but it is too complicated right
> now. Stephane started a simpler version.
>
>
> For now saving and loading is not important. :)
>
>
> Yes
>
>
>
> I put below a summary of the reflexion/discussion I had with Max.
>
>
> Thanks.
> Now you should publish your code.
> I would have preferred to work from a working code. Because now it is
> like poking in the dark.
>
> Cedrick what did you get running?
>
>
> Actually, I got the workflow working and the tests as you. And then I was
> able to run some examples (as I tried to wrote in the booklet).
>
> I just din’t know yet how to publish on GitHub and friends… I discussed with
> Max about then… I’m learned a bit after how to use these tools especially
> for the booklet as we chatted….
> Then end of the semester….  No time…. Should be better soon.
>
> So sorry for that :)
>
> I join the last pdf I had…. Fuzzy (especially since I tried to include
> automatically classes comments)  but there are details of installation and
> what I could make work:
>
>
> - rethink persistence (process definition and orchestration, realization)
>
> => persistance is essential and was central to Aare. Beside removing
> Omnibase references (and implication of WfManagedObject), some of the
> application features were very dependant on the persistence (like logging,
> tracing process evolution). All of these features are to be thing again
> considering as much as possible a loosely coupled solution. A general
> purpose storage solution like Voyage could be used. At first, in image
> storage will be used to focus on the running aspects of the library.
> - rethink interaction
> => Designing a general interaction sub-system is probably the more
> challenging tasks. Aare was web based. We want workflow to be UI agnostic.
> Moreover, we want to associate  ,
> remove Magritte (replace UI or build an independant system based on
> Annoucement for instance)
>
>
>
> Yes I agree. Now I would like to be able to
> - define a super simple workflow: I picked sequence: start -> task1 -> task2
>
>
> Done in WfWorkflowLibrary (with convenience method). An example in 2.4
>
>
>
>
> - execute it and script it resolution.
>
>
> See 2.5.
>
> My way of running them and where I stopped and is a bit stuck.
>
> To me we need now to design an interaction model (based on Annoucement ?)
>
>
>
> Running a workflow.
>
> Once a workflow is defined, to be executed, he calls the method #executeIn-
> newFrame. This method instanciate and populate the worklist (WfWorklist)
> that keep track of the state of the running workflow.
>
>       workflow := WfWorkflowLibrary simpleBranch.
>       frame := workflow executeInNewFrame.
>
> To see running activitions (activities that are started but not completed
> yet):
>
>       frame worklist running.
>
> Once a activation is over, it has to be completed by sending the message
> #completed. For now, there are only manual completions but we could imag-
> ine in the future automatic or semi-atomatic completion based on extrenal
> interaction or if delegated to a program for instance.
>
>       anActivation := frame worklist any.
>       anActivation complete. "complete mannully one activation"
>       "or"
>       frame complete: anActivation.
>
> The workflow is running until there are no possible (accessible) activation
> left. This state is called implicit termination and can be checked with:
>
>       frame isCompleted.
>
> Here is the code of the WfFrame»>completeAll
>
>       WfFrame>>>completeAll
>         [self workList allRunning isEmpty] whileFalse:
>
>           [self completeActivation: self workList allRunning first].
>
>
>
>
>
> I would like to understand the difference between frame and activation.
>
>
> The frame is the container of the workflow resolution, the « manager » … A
> workflow runs in a frame (subworkflows in subframes)…
>
> Activations are when a step (one activity defined in a workflow) is
> activated (we are starting for real to do the activity).
>
>
>
> WfWorkflowManager managers workflow definitions
>
> (static) and activations (dynamic).
> WfFrame is also a part of the dynamic side, connecting activations to a
> workflow.
> Workflows are hierarchical, i.e. a step can have a sub workflow (see
> WfWorkflowLibrary>>simpleSubflow)
>
>
> Yes for now I do not want to understand this part.
>
>
> You have too to get the workflow running I think.
>
>
>
>
> 3)
>
> Going back to activations, here is my current understanding.
>
> Once a step is activated (all condition on Edges leading to are true - to
> evaluate outgoing conditions of a step, the step execution has to be
> complete first) , we get an activation instance (I’m not 100% sure how
> completion of an activity and outgoing conditions are managed).
>
> As far as I understand, a step can always be activated (e.g. manually).
> However, activating a step propagates the values of conditions on the edges
> to the next steps and their activations ("dead" or "alive"). Hence, an
> activation responds to #isAlive with true if at leat one incoming token was
> true ("alive") (see WfStep>>continueInFrame:fromStep:alive: and
> WfActivation>>isAlive). The conditions are evaluated once #complete is sent
> to the activation.
> Activation instances are created by two ways (slightly different for the
> start step), but generally they are created when a step receives tokens from
> the outgoing edges of an upstream activation (see
> WfStep>>continueInFrame:fromStep:alive:).
>
>
> Activations are central.
>
>
>
> On the exemple of BLActivationHistoryItem that you gave, I’m not sure if
> it’s an activation of a history item stored in the history (subclasss of
> WfHistory?).
>
> My idea was that it should represent a record for an activation (there might
> be multiple records for a single activation). So "HistoryItem" would be the
> general description of a record, of which "ActivationHistoryItem" is a
> special case for activations (I hope that makes sense).
>
>
> 4)
> Moreover I don’t see clearly the difference with a scheduler and a BP engine
> (they are at least really complementary). Do you see any ressemblance
> between Activation and ScheduledJob ?
>
> I actually would like to have a (simple) scheduler with the BP engine :)
>
> Well, it's certainly a matter of point of view. I would argue that an
> activation is something close to a "job". A "scheduled job" would be a more
> specific case of a "job", a job that is in a queue. An activation has no
> notion of scheduling but simply represents the idea of what happens when
> traversal between two nodes occurs. A scheduler would be one way of managing
> activations (WfWorklist seems pretty close to a scheduler, holding running
> and completed activations).
>
>
>
> Too subtle for me.
>
>
> For now, the are no real workflow engine. More a state machine providing
> access to activable steps (and running one… hence remaining ones).
>
> I/We will need a scheduler (even simple ones).
>
> Max explains below:
>
>
>
> To me the scheduler right now is not really existing besides having a list
> of simultaneous/parralelized steps to realize (activated or not). Activated
> means currently being done.
>
> You're right, I think. The application that Workflow was designed for
> required manual interaction, hence there was no need for other methods of
> scheduling (e.g. by time or event).
>
>
>
> This activation role is about logging and interacting with responsible
> users. But it is more than that. It’s the actual job being done.
>
> Yes.
>
>
>
> 5)
>
> Concerning run time modification of a process. Is it true that we can modify
> a currently executed workflow (steps that are not yet activated ?) ? I think
> that is possible (an cool). When activated, it shouldn’t. Would you think it
> would be interesting to allow activations to be suspended/resume (frozen),
> cancelled ?
>
> The history of workflows consists of copies. The steps of a workflow
> reference the workflow they belong to. Therefore, while it is possible to
> modify a workflow, modifications do not impact running workflows, as the
> steps of that workflow continue to reference the previous version. The model
> suggests that it is ok to create a new version of a workflow but not to
> modify existing workflows.
>
>
> For now I would like to get a workflow running without modifying it
>
>
> Sure. But again an interesting decision to have first.
>
> To me, what more interesting is to be able :
> - to cancel a task (an activation actually),
> - change dynamically the remaining workflow (to adapt)…
> - eventually suspend/resume (nice to time track but I also thin it’s not
> hard to have)
>
> I know the second point seems too early but again this is important to
> consider now.
>
> Designs decisions of Aare leaves some room to build more (and constrain its
> use).
>
>
> […]
>
> DomBuilder is a small package for wrapping XML-Parser. I'll publish it so
> you can use it.
>
>
> Cedric did you got this package?
>
>
> No but I didn’t ask either. It’s possible to ask Max. But I think first, as
> you, we need to be able to run a process.
>
>
>
> The XML-Parser package has been significantly modified and
>
> is now named XMLParser (you can find it in the catalog). You should make the
> changes necessary to use the current incarnation of XMLParser (decide for
> yourself whether you still need DomBuilder or not).
>
>
> But this is not really important.
>
>
>
> Yep.
>
> Cheers,
>
> Cédrick
>
>

Reply via email to