OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

sca-c-cpp message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: [OASIS Issue Tracker] Updated: (SCACANDCPP-1) Preserving state in passivated Conversational scopes


     [ http://tools.oasis-open.org/issues/browse/SCACANDCPP-1?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Bryan Aupperle updated SCACANDCPP-1:
------------------------------------

          Component/s: C++ Specification
    Affects Version/s: Version 1.1

> Preserving state in passivated Conversational scopes
> ----------------------------------------------------
>
>                 Key: SCACANDCPP-1
>                 URL: http://tools.oasis-open.org/issues/browse/SCACANDCPP-1
>             Project: OASIS Service Component Architecture / C and C++ (SCA-C-C++) TC
>          Issue Type: Bug
>          Components: C++ Specification
>    Affects Versions: Version 1.1
>            Reporter: Bryan Aupperle
>
> Originally CCPP-25
> TARGET: C++ C&I Spec
> DESCRIPTION: Section 2.3.4 of the C++ spec discusses the possibility of
> passivating a service implementation instance in a long-running
> conversation, however it doesn't define how implementation state should
> be preserved.
> PROPOSAL:
> The following is an initial take at replacing/clarifying the last
> sentence of the first paragraph of section 2.3.4:
> "If this occurs, the runtime MUST provide a mechanism for preserving
> instance state information. An SCA runtime MUST NOT passivate an
> implementation instance if it cannot preserve implementation state."
> Does that help to clarify the expected behavior? This still leaves us
> with the responsibility for writing conformance tests for this scenario,
> which may be difficult.
> An alternative might be to wash our hands of passivating implementation
> instances (replacing the last two sentences).
> "This specification does not define a mechanism for passivating
> long-running conversational implementation instances. An implementation
> MAY provide a mechanism for passivating implementation instances."
> A third option might be to define in the C++ API a mechanism to allow
> users to preserve state. One approach would be to provide a simple API
> that a service implementor could derive from and implement in order to
> provide persistence/restoration capabilities on their implementations.
> class PersistableService {
>   virtual ~PersistableService();
>   /**
>    * Returns a string containing the serialized state associated
>    * with this service.
>    */
>   virtual std::string persistState(void) = 0;
>   /**
>    * Reads the state information for this service from the
>    * serialized state information in \a state.
>    */
>   virtual void restoreState(const std::string& state) = 0;
> };
> Alternatively we could add additional annotations to allow the user to
> identify their own persist/restore methods (we'd still probably need to
> specify the return type/parameters of the methods).
> This would restrict how a runtime could support passivating a service
> (by requiring this mechanism), but it will also ensure that there's a
> portable mechanism for persisting user state across runtime
> implementations.
> Raised to the OASIS Service Component Architecture / C and C++ (SCA-C-C++) TC in the e-mail at http://lists.oasis-open.org/archives/sca-c-cpp/200711/msg00025.html

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://tools.oasis-open.org/issues/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]