Thanks Lakmal and Udara. I'll have a look at those info provided.

Roshan Deniyage
Associate Technical Lead
WSO2, Inc: http://wso2.com

Mobile    :  +94 777636406
Twitter    :  *https://twitter.com/roshku <https://twitter.com/roshku>*
LinkedIn :  https://www.linkedin.com/in/roshandeniyage


On Sat, Oct 11, 2014 at 12:32 PM, Udara Liyanage <[email protected]> wrote:

> Hi Roshan,
>
> subscribed-cartridges-info [1] CLI command already retrieve those details. 
> CLI commands get those details from Stratos REST APIs. You can have a look 
> at[2] SubscribedCartridgeInfoCommand.java code how it is implemented.
>
>
> [1]
> https://cwiki.apache.org/confluence/display/STRATOS/4.1.0+Retrieving+Details+of+a+Subscribed+Cartridge+via+CLI
> [2]
> https://github.com/apache/stratos/blob/75d3efbf23d22dc8868f3d8745a9e63a318fd22b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/SubscribedCartridgeInfoCommand.java
>
> On Fri, Oct 10, 2014 at 10:18 AM, Lakmal Warusawithana <[email protected]>
> wrote:
>
>> Hi Roshan,
>>
>> On Thu, Oct 9, 2014 at 10:12 PM, Roshan Deniyage <[email protected]>
>> wrote:
>>
>>> * Adding the missing images.*
>>>
>>> Hi All,
>>>
>>> Currently I’m working with php application type support for wso2
>>> appfactory product. The scenario is as follows,
>>>
>>> Multi-Tenant Cartridge Case
>>>
>>> The existing supported application types (ex: java web application) work
>>> with in-container multi-tenancy support which means those applications run
>>> inside wso2 application server, deployed inside one cartridge instance of
>>> stratos (of course with many for clustering).
>>>
>>> Based on the current “dev setup” and “production deployment”, when new
>>> tenant is created with app factory, relevant tenant is created in the
>>> wso2-as of the shared cartridge instance illustrated as follows.
>>>
>>> The sample is for dev cloud without LB. (same as dev setup). The
>>> cartridge instance could be spawned before tenant is created. Hence, the
>>> “Public IP address” or the “DNS name” is know.
>>> [image: Inline image 1]
>>>
>>> ​
>>>
>>>
>>> Single Tenant Cartridge Case
>>>
>>> But, in the “php application type” case, no multi-tenant cartridges are
>>> there, we have to use single tenant cartridges with “apache http server”.
>>> In this case, Need to spawn a new instance when a new tenant is created.
>>> The workflow would be as follows.
>>>
>>> ​[image: Inline image 2]
>>>
>>>
>>>
>>> Generating Application URL of Single Tenant Application Types
>>>
>>> But the problem in single-tenant case is, the Public IP or the DNS name
>>> of the newly spawned cartridge is unknow. Or in case of clustering, the
>>> Public IP or the DNS name of the LB is unknow. Hence, In order to get the
>>> Public IP of entry point, I propose the following workflow.
>>> ​
>>> [image: Inline image 3]​
>>>
>>>
>>> The purpose of this design is to get the “Public IP of DNS Name” of the
>>> newly spawned cartridge or the LB of the cartridge cluster (If cluster is
>>> present). The logic is as follows,
>>>
>>>    1.
>>>
>>>    When server is started App-Fac’s “StratosMemberActivated Listener”
>>>    is subscribed to topic in active mq.
>>>    2.
>>>
>>>    Tenant user create new single tenant type application.
>>>    3.
>>>
>>>    App-Fac do the necessary logic and then, subscribed to new cartridge
>>>    via stratos controller.
>>>    4.
>>>
>>>    When cartridge is spawning it sends events to topic in active mq and
>>>    when cartridge is activated, it send the “MemberActivated Event” to the
>>>    topic.
>>>    5.
>>>
>>>    App-Fac receives the “MemberActivated Event” and get the “Public IP”
>>>    of the cartridge or the LB.
>>>    6.
>>>
>>>    App-Fac generates the “Application URL” using received public IP and
>>>    store in the registry.
>>>    7.
>>>
>>>    When user request the “Application URL” of the newly created
>>>    application, App-Fac get the url from registry.
>>>
>>>
>>>
>>> In this feature, upto figure :02 is already done and the application url
>>> generation has designed based on the figure: 03.
>>>
>>> NOTE : In order to get the cartridge’s Public IP or DNS name (or LB
>>> Public IP if clustering is present), there are 3 options.
>>>
>>>
>>>    1.
>>>
>>>    Subscribe to topic in stratos and get the relevant information.
>>>    2.
>>>
>>>    Stratos can provide a REST API and app-fac can pool to get the
>>>    information.
>>>    3.
>>>
>>>    Cartridge agent can be modified to send information to provided url
>>>    of app-fac.
>>>
>>>
>>> From above 3 approaches, the first one is selected.
>>>
>>> I expect your valuable comment on this design and approach to generate
>>> url of the applications deployed with single tenant cartridges, Any comment
>>> would be appreciated.
>>>
>>
>>
>> I would like to propose go with option #2. Because this is a valid
>> scenario for external users. Without implementing AppF specific code, you
>> can provide propose enhancement to apache Stratos code based.  Please send
>> a pull request.
>>
>>
>>>
>>> Thanks,
>>>
>>>
>>> Roshan Deniyage
>>> Associate Technical Lead
>>> WSO2, Inc: http://wso2.com
>>>
>>> Mobile    :  +94 777636406
>>> Twitter    :  *https://twitter.com/roshku <https://twitter.com/roshku>*
>>> LinkedIn :  https://www.linkedin.com/in/roshandeniyage
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Architecture mailing list
>>> [email protected]
>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>
>>>
>>
>>
>> --
>> Lakmal Warusawithana
>> Vice President, Apache Stratos
>> Director - Cloud Architecture; WSO2 Inc.
>> Mobile : +94714289692
>> Blog : http://lakmalsview.blogspot.com/
>>
>>
>> _______________________________________________
>> Architecture mailing list
>> [email protected]
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>
>>
>
>
> --
>
> Udara Liyanage
> Software Engineer
> WSO2, Inc.: http://wso2.com
> lean. enterprise. middleware
>
> web: http://udaraliyanage.wordpress.com
> phone: +94 71 443 6897
>
> _______________________________________________
> Architecture mailing list
> [email protected]
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to