[occi-wg] OCCI MC - State Machine Diagram Please clarify
Sam Johnston
samj at samj.net
Thu May 14 05:40:45 CDT 2009
On Thu, May 14, 2009 at 8:45 AM, Gary Mazz <garymazzaferro at gmail.com> wrote:
> I'm in agreement with Sam on this point.
>
> I have a hard time reconciling the initial state and final state as I'm
> here writing some code.
>
Great, so there's [at least] two of us writing code now - the more the
merrier.
> The initial state is prior to creation (instantiation) of the entity.
> The final state is the state after destruction. The error state also
> leads to a non existence state without a destruction phase.
> Additionally, there is a destroyed state but no instantiate state Once
> destroyed aren't you at the final state, non-existence ? You can't have
> a destroyed state if you don't exist to maintain the state. This state
> table makes sense if you are looking at it from the perspective of a log
> file, but its confusing from the perspective, an object lifecycle
> especially in the case of destroyed without parity to instantiated.
> Trivial as it may appear.
>
> How does restart on error occur in this model ? It appears restart can
> only occur when your active ? When does the active get the start trigger
> or you can't have an inactive event ? Does the active/restart depict
> the life cycle of the object contents ?
>
> How does the state diagram reconcile restart on error and hold on error
> ? Or some other action on error like snapshot?
>
These sound like great examples as to why we shouldn't try to beat reality
into a fixed state diagram (or vice versa), except perhaps at a very high
level (and even then I have my doubts).
> Second, it may not be appropriate for one type of user to gain access to
> details. A customer may only need to know their "service" is stuck in a
> specific state, while an support engineer may see a more detailed view
> of the state and a development engineer may see another more detailed
> view of the state. You may not want the customer to see all the
> underlying details. A service provider may only want customers to see 3
> states; loading running stopped.
>
This is a very good point and something I think is well covered by our
existing (extremely simple) security model: implementors decide what to show
their clients based on who is connected.
This is an example of one of those asynchronous errors not handled by HTTP -
something we're going to have to have a look at in more detail for all
asynchronous actions in due course.
Sam
> Sam Johnston wrote:
> > On Wed, May 13, 2009 at 10:08 PM, Andre Merzky <andre at merzky.net
> > <mailto:andre at merzky.net>> wrote:
> >
> > Quoting [Sam Johnston] (May 13 2009):
> > >
> > >>> That was exactly the point of introducing both together -
> > given that
> > >>> most of the innovation is going to happen server side, clients
> > >>> should be as dumb as possible. That is, it doesn't matter if a
> new
> > >>> state comes along after a client has shipped because it will be
> > >>> advertised as a potential transition (HATEOAS), perhaps even with
> > >>> the expected target state.
> > >>
> > >> I totally agree.
> > >
> > > Great. Anyone doesn't agree with the need for [and proposed
> solution
> > > offering] flexibility in the state model?
> >
> > Yes, me, I don't think HATEOAS should be applied in this
> > context. But I realise/accept that I maybe the only one
> > with that opinion - thats ok. So I'll say it here one last
> > time, for the record, and then will shut up: "a static
> > simple state model allows for very simple clients.
> > Extensions can be defined via substates, or additional
> > transitions."
> >
> >
> > I would counterargue that HATEOAS allows for even simpler clients
> > because they don't have to worry about hardwiring even a simple state
> > model. Using HTTP we can even feed them plain $LANG descriptions of
> > what the transitions and targets are - it doesn't get any easier than
> > that and you don't have to worry about updating clients to implement
> > new goodies.
> >
> > I don't think anyone knows every possible thing that users are going
> > to want to do with the API (I certainly don't have the confidence to
> > say I do anyway) but we may need to revisit this point in the name of
> > interop... Atom categories would be one way to achieve this (e.g.
> > "Cold Reboot" and "Warm Reboot" might go in the "restart" category).
> >
> > Sam
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > occi-wg mailing list
> > occi-wg at ogf.org
> > http://www.ogf.org/mailman/listinfo/occi-wg
> >
>
> _______________________________________________
> occi-wg mailing list
> occi-wg at ogf.org
> http://www.ogf.org/mailman/listinfo/occi-wg
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.ogf.org/pipermail/occi-wg/attachments/20090514/b620325a/attachment.html
More information about the occi-wg
mailing list