HI Lahiru,

As I understood, SM sends the details to the CC via service call or event
based, then CC update the topology and publish topology events.


On Mon, Jul 7, 2014 at 6:09 PM, Lahiru Sandaruwan <lahi...@wso2.com> wrote:

>
>
>
> On Sun, Jul 6, 2014 at 9:39 PM, Isuru Haththotuwa <isu...@apache.org>
> wrote:
>
>> Hi Imesh,
>>
>> Yes, completely agree. Should have the proper documentation for this.
>> Will do that once we have the basic version of this feature done.
>>
>> Hi Lahiru,
>>
>> On Sun, Jul 6, 2014 at 7:50 PM, Lahiru Sandaruwan <lahi...@wso2.com>
>> wrote:
>>
>>> Hi Isuru,
>>>
>>> Any reason why we use MB for subscription event? We can use direct
>>> service call to CC IMO.
>>>
>> That is one option. But its different from the invocation we do through
>> the CC to spawn instances each individual service, since now there is a
>> startup order and a kill order, etc. Therefore, we need to have a
>> 'Composite Application Monitor' in Autoscaler, which will do the spinning
>> up, termination of instances in the particular order. For this, its easier
>> if we send an event from SM, so that the Autoscaler and any interested
>> party can act upon it.
>>
>> Furthermore, if we use CC's API, there will be several object conversions
>> as follows:
>>
>> JSON bean -> CC's API object -> Messaging Component Application object
>> (for the event)
>>
>>  However, if we directly send the event from the SM itself, there will be
>> only one conversion:
>>
>> JSON bean -> Messaging Component Application object (for the event)
>>
>> Since Composite Application is a complex structure, with nested groups
>> etc., it will be better if we can reduce the conversions between these
>> objects. Considering all these, IMHO its better if SM sends the Composite
>> Application Deployed event itself.
>>
>
> Thanks for the clarification Isuru.
>
> But aren't we publishing all the topology related events from CC?  Does
> this event use a different topic?
>
>>
>>
>>> Thanks.
>>>
>>>
>>>  On Mon, Jun 2, 2014 at 10:52 AM, Isuru Haththotuwa <isu...@apache.org>
>>> wrote:
>>>
>>>> Hi Devs,
>>>>
>>>> This is an addition to the discussion happened in the thread [1]. I
>>>> have included a very basic sequence diagram to show the flow of how Service
>>>> Grouping would happen for the initial implementation.
>>>>
>>>> ​
>>>>  composite_app_1.png
>>>> <https://docs.google.com/a/wso2.com/file/d/0B4pCC9A49FwCRDhqQ0JDRl9tQjA/edit?usp=drive_web>
>>>> ​
>>>> Short description of the flow:.
>>>>
>>>> 1, 2 & 3. Deploy Components' Definitions that would be included in the
>>>> top level Composite Application. Typically, a component would map to a
>>>> single cartridge. For sample JSON definitions of a component, please refer
>>>> [1].
>>>>
>>>> 4. Deploy a Group Definition, which would logically group the relevant
>>>> components. This would include information on the Startup Order of each
>>>> component, and how to handle the termination/error situations as well (Kill
>>>> Behavior).
>>>>
>>>> 5. Deploy a Nested Group Definition, which would contain one/more of
>>>> Components and Groups.
>>>>
>>>> 6. Deploy the Composite Application Definition. This would map to the
>>>> operation 'Subscription' which we have currently, when spinning up a single
>>>> cartridge instance. As per the discussion that took place in the above
>>>> mentioned thread, this was decided to be called the 'Composite
>>>> Application Definition' deployment, rather than a Subscription.
>>>>
>>>> For the initial version, we can restrict this Composite Application
>>>> Definition only to contain information for each group/component, such as
>>>> aliases, git repositories and relevant info as required, etc., and not
>>>> allow further grouping at this level.
>>>>
>>>> A typical basic Composite Application Definition, in JSON format,
>>>> would be as follows:
>>>>
>>>> {
>>>>   "name": "group2",
>>>>   "alias": "<group2_alias>",
>>>>   "components": [
>>>>     {
>>>>       "name": "component2",
>>>>       "alias": "<component2_alias>",
>>>>       "repoUrRL": "<repo_url>"
>>>>     }
>>>>   ],
>>>>   "groups": [
>>>>     {
>>>>       "name": "group1",
>>>>       "alias": "group1_alias",
>>>>       "components": [
>>>>         {
>>>>           "name": "component1",
>>>>           "alias": "<component1_alias>",
>>>>           "xxx": "<xxx>"
>>>>         },
>>>>         {
>>>>           "name": "component3",
>>>>           "alias": "<component3_alias>",
>>>>           "yyy": "<yyy>"
>>>>         }
>>>>       ]
>>>>     }
>>>>   ]
>>>> }
>>>>
>>>> More information is available in the above mentioned mail thread and in
>>>> [2]. Please share your feedback on this.
>>>>
>>>>
>>>> [1]. [Discuss] Grouping of services (cartridges)
>>>> [2].
>>>> https://docs.google.com/a/wso2.com/document/d/1qnArxF8obhbjMLUbPAENQMn94fPSd3AVqO41mxhnJXE/edit#
>>>>
>>>
>>>
>>>
>>> --
>>> --
>>> Lahiru Sandaruwan
>>> Committer and PMC member, Apache Stratos,
>>> Senior Software Engineer,
>>> WSO2 Inc., http://wso2.com
>>> lean.enterprise.middleware
>>>
>>> email: lahi...@wso2.com cell: (+94) 773 325 954
>>> blog: http://lahiruwrites.blogspot.com/
>>> twitter: http://twitter.com/lahirus
>>> linked-in:
>>> http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146
>>>
>>> --
>>> <http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146>
>>> Thanks and Regards,
>>>
>>> Isuru H.
>>> <http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146>
>>> +94 716 358 048
>>> <http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146>*
>>> <http://wso2.com/>*
>>>
>>>
>>> * <http://wso2.com/>*
>>>
>>>
>>>
>>>
>
>
> --
> --
> Lahiru Sandaruwan
> Committer and PMC member, Apache Stratos,
> Senior Software Engineer,
> WSO2 Inc., http://wso2.com
> lean.enterprise.middleware
>
> email: lahi...@wso2.com cell: (+94) 773 325 954
> blog: http://lahiruwrites.blogspot.com/
> twitter: http://twitter.com/lahirus
> linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146
>
>


-- 

Udara Liyanage
Software Engineer
WSO2, Inc.: http://wso2.com
lean. enterprise. middleware

web: http://udaraliyanage.wordpress.com
phone: +94 71 443 6897

Reply via email to