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