Re: [Architecture] [APIM] Workflow for API State change

2016-08-25 Thread Janaka Ranabahu
;>>
>>>>> Hi Chamila,
>>>>>
>>>>> I think its better to draw a diagram including API-M and BPS and
>>>>> describe the parameters passed in-between :)
>>>>>
>>>>> Thanks,
>>>>> NuwanD.
>>>>>
>>>>> On Mon, Aug 22, 2016 at 10:52 AM, Chamila Adhikarinayake <
>>>>> chami...@wso2.com> wrote:
>>>>>
>>>>>> Hi All,
>>>>>>
>>>>>> This feature is to add workflow extension support to API lifecycle
>>>>>> state changes. This feature will be similar to workflow extension support
>>>>>> in API store.
>>>>>>
>>>>>> There will be two workflow extensions provided with this. WS Workflow
>>>>>> Executor and Simple Workflow Executor. Simple Workflow Executor carries 
>>>>>> out
>>>>>> an operation without any intervention by a workflow admin.  WS Workflow
>>>>>> Executor will call external service (In this case service in BPS) for
>>>>>> workflow tasks.
>>>>>>
>>>>>> For this we are planning to introduce BPMN process instead of using
>>>>>> BPEL. A new rest api will be added to publisher rest apis for the BPMN
>>>>>> process to use as the callback service. This new rest api will be 
>>>>>> protected
>>>>>> with a scope for workflow.
>>>>>>
>>>>>> Since the REST api is protected with OAuth tokens, we need a method
>>>>>> to provide Oauth application information to BPS service. Current plan is 
>>>>>> to
>>>>>> generate oauth application from the APIM side using dcr endpoint and pass
>>>>>> the client id and secret to BPS service when invoking the workflow's
>>>>>> execute method. BPMN process will then use these application information 
>>>>>> to
>>>>>> generate token and using that it will invoke the callback rest api to
>>>>>> continue the workflow.
>>>>>>
>>>>>> Lifecycle executor will be called based on the status of the workflow.
>>>>>>
>>>>>> A new UI will be added to Admin Portal to handle human tasks (to
>>>>>> approve or reject)
>>>>>>
>>>>>> Any suggestion is highly appreciated.
>>>>>>
>>>>>> Thanks,
>>>>>> Chamila
>>>>>>
>>>>>> --
>>>>>> Regards,
>>>>>> Chamila Adhikarinayake
>>>>>> Software Engineer
>>>>>> WSO2, Inc.
>>>>>> Mobile - +94712346437
>>>>>> Email  - chami...@wso2.com
>>>>>> Blog  -  http://helpfromadhi.blogspot.com/
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Nuwan Dias
>>>>>
>>>>> Software Architect - WSO2, Inc. http://wso2.com
>>>>> email : nuw...@wso2.com
>>>>> Phone : +94 777 775 729
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Regards,
>>>> Chamila Adhikarinayake
>>>> Software Engineer
>>>> WSO2, Inc.
>>>> Mobile - +94712346437
>>>> Email  - chami...@wso2.com
>>>> Blog  -  http://helpfromadhi.blogspot.com/
>>>>
>>>> ___
>>>> Architecture mailing list
>>>> Architecture@wso2.org
>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>
>>>>
>>>
>>>
>>> --
>>> Jenananthan Yogendran
>>> *Senior Software Engineer,*
>>> *WSO2 inc., http://wso2.com <http://wso2.com>*
>>>
>>>
>>> ___
>>> Architecture mailing list
>>> Architecture@wso2.org
>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>
>>>
>>
>>
>> --
>> Nandika Jayawardana
>> WSO2 Inc ; http://wso2.com
>> lean.enterprise.middleware
>>
>
>
>
> --
> Regards,
> Chamila Adhikarinayake
> Software Engineer
> WSO2, Inc.
> Mobile - +94712346437
> Email  - chami...@wso2.com
> Blog  -  http://helpfromadhi.blogspot.com/
>
> ___
> Architecture mailing list
> Architecture@wso2.org
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>


-- 
*Janaka Ranabahu*
Associate Technical Lead, WSO2 Inc.
http://wso2.com


*E-mail: jan...@wso2.com <http://wso2.com>**M: **+94 718370861*

Lean . Enterprise . Middleware
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Bulk export of APIs via APIM

2016-08-03 Thread Janaka Ranabahu
Hi Thilini,

On Wed, Aug 3, 2016 at 11:40 AM, Janaka Ranabahu <jan...@wso2.com> wrote:

> Hi,
>
> On Wed, Aug 3, 2016 at 9:54 AM, Thilini Cooray <thili...@wso2.com> wrote:
>
>> Hi Janaka,
>>
>>
>> On Tue, Aug 2, 2016 at 5:43 PM, Janaka Ranabahu <jan...@wso2.com> wrote:
>>
>>> Hi Malintha, Kaveesha,
>>>
>>> On Fri, Jul 22, 2016 at 3:29 PM, Malintha Amarasinghe <
>>> malint...@wso2.com> wrote:
>>>
>>>>
>>>>
>>>> On Fri, Jul 22, 2016 at 3:25 PM, Malintha Amarasinghe <
>>>> malint...@wso2.com> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> +1 for this improvement as it will make the developer's life easy when
>>>>> exporting/importing multiple APIs.
>>>>>
>>>>> The option [2] is better in situations like there are many APIs to
>>>>> bulk export so that the it might be difficult for a user to specify each
>>>>> and every APIs to export: what he wants is simply export all the APIs
>>>>> available. The overhead of the API call is not significant IMHO; there 
>>>>> will
>>>>> be only one (or very few) additional calls to getAllAPIs.
>>>>>
>>>>> But as we discussed offline, we can start from step [1], and then
>>>>> improve it by adding step [2].
>>>>>
>>>> Step 1: CSV file with list of API name/version/provider -->  Bulk export
>>>> Step 2: call getAllApis() and get the list of APIs --> Generates the
>>>> CSV file (we can implement this as a different operation and then provide
>>>> the generated CSV file as an input to Step1)
>>>>
>>> ​Do we really have a use-case where a customer has to import/export all
>>> the APis in a environment. ​It is highly unlikely that this would happen.
>>> IMO, we should only support the file based approach. That would be
>>> sufficient for the bulk import/export purposes.
>>>
>>
>> What if a user decides to move from one environment to another (from Dev
>> to QA or on-premise to API Cloud etc.) and wants to move all his deployed
>> APIs to the new environment?
>> If he has a huge number of APIs, IMO it would not be easy to name them
>> one by one on a file. Rather it would be easy if we have an option to
>> export and import as a whole.
>>
> ​Quick clarification. In this scenario, we are only considering the APIs
published by that user right? Not all the APIs in the system is it? Or do
we have to be a admin user who has access to all the APIs?​


>
>> I too agree that this is not a first priority use case for the tool that
>> we need to address, however IMO this is something better to have.
>>
> ​Agreed. Then we do not have to call getAllApis() and create a CSV out of
> that. Just sending a query parameter saying all APIs would be sufficient
> right?
>
> Thanks,
> Janaka​
>
>
>>
>> WDYT?
>>
>> Thanks,
>> ThiliniC.
>>
>>
>>
>>>
>>> Thanks,
>>> Janaka
>>>
>>>>
>>>>
>>>> Regarding the file format I would prefer CSV as it would make it easy
>>>>> to edit if need using existing tools. WDYT?
>>>>>
>>>>> Thanks!
>>>>>
>>>>> On Fri, Jul 22, 2016 at 10:58 AM, Kaveesha Perera <kavee...@wso2.com>
>>>>> wrote:
>>>>>
>>>>>> Hi All,
>>>>>>
>>>>>> I'm planing to improve APIM import/export tool to support bulk import
>>>>>> and bulk export of APIs.
>>>>>>
>>>>>> When considering the bulk export, there it came up to a discussion
>>>>>> point on how to get the API list to be export. Considering several facts,
>>>>>> came up with two suggestions as follows.
>>>>>>
>>>>>> [1]. Asking user to submit a file with explicitly written list of
>>>>>> APIs. (API detail may include name, version and provider)
>>>>>>
>>>>>> [2]. Getting the prevailing list of APIs using getAllAPIs REST API,
>>>>>> save the usable content of resulting string in a separate file, then 
>>>>>> allow
>>>>>> user to edit it such that he can remove the unwanted APIs  from the list,
>>>>>> use it as a input for the bulk export.
>>>>>>
>>>>>> Currently we prefer procedure [1], since t

Re: [Architecture] Bulk export of APIs via APIM

2016-08-03 Thread Janaka Ranabahu
Hi,

On Wed, Aug 3, 2016 at 9:54 AM, Thilini Cooray <thili...@wso2.com> wrote:

> Hi Janaka,
>
>
> On Tue, Aug 2, 2016 at 5:43 PM, Janaka Ranabahu <jan...@wso2.com> wrote:
>
>> Hi Malintha, Kaveesha,
>>
>> On Fri, Jul 22, 2016 at 3:29 PM, Malintha Amarasinghe <malint...@wso2.com
>> > wrote:
>>
>>>
>>>
>>> On Fri, Jul 22, 2016 at 3:25 PM, Malintha Amarasinghe <
>>> malint...@wso2.com> wrote:
>>>
>>>> Hi,
>>>>
>>>> +1 for this improvement as it will make the developer's life easy when
>>>> exporting/importing multiple APIs.
>>>>
>>>> The option [2] is better in situations like there are many APIs to bulk
>>>> export so that the it might be difficult for a user to specify each and
>>>> every APIs to export: what he wants is simply export all the APIs
>>>> available. The overhead of the API call is not significant IMHO; there will
>>>> be only one (or very few) additional calls to getAllAPIs.
>>>>
>>>> But as we discussed offline, we can start from step [1], and then
>>>> improve it by adding step [2].
>>>>
>>> Step 1: CSV file with list of API name/version/provider -->  Bulk export
>>> Step 2: call getAllApis() and get the list of APIs --> Generates the CSV
>>> file (we can implement this as a different operation and then provide the
>>> generated CSV file as an input to Step1)
>>>
>> ​Do we really have a use-case where a customer has to import/export all
>> the APis in a environment. ​It is highly unlikely that this would happen.
>> IMO, we should only support the file based approach. That would be
>> sufficient for the bulk import/export purposes.
>>
>
> What if a user decides to move from one environment to another (from Dev
> to QA or on-premise to API Cloud etc.) and wants to move all his deployed
> APIs to the new environment?
> If he has a huge number of APIs, IMO it would not be easy to name them one
> by one on a file. Rather it would be easy if we have an option to export
> and import as a whole.
>
> I too agree that this is not a first priority use case for the tool that
> we need to address, however IMO this is something better to have.
>
​Agreed. Then we do not have to call getAllApis() and create a CSV out of
that. Just sending a query parameter saying all APIs would be sufficient
right?

Thanks,
Janaka​


>
> WDYT?
>
> Thanks,
> ThiliniC.
>
>
>
>>
>> Thanks,
>> Janaka
>>
>>>
>>>
>>> Regarding the file format I would prefer CSV as it would make it easy to
>>>> edit if need using existing tools. WDYT?
>>>>
>>>> Thanks!
>>>>
>>>> On Fri, Jul 22, 2016 at 10:58 AM, Kaveesha Perera <kavee...@wso2.com>
>>>> wrote:
>>>>
>>>>> Hi All,
>>>>>
>>>>> I'm planing to improve APIM import/export tool to support bulk import
>>>>> and bulk export of APIs.
>>>>>
>>>>> When considering the bulk export, there it came up to a discussion
>>>>> point on how to get the API list to be export. Considering several facts,
>>>>> came up with two suggestions as follows.
>>>>>
>>>>> [1]. Asking user to submit a file with explicitly written list of
>>>>> APIs. (API detail may include name, version and provider)
>>>>>
>>>>> [2]. Getting the prevailing list of APIs using getAllAPIs REST API,
>>>>> save the usable content of resulting string in a separate file, then allow
>>>>> user to edit it such that he can remove the unwanted APIs  from the list,
>>>>> use it as a input for the bulk export.
>>>>>
>>>>> Currently we prefer procedure [1], since the process [2] creates
>>>>> additional overhead due to the REST API call. Still there can be are pros
>>>>> and cons in both the processors. If any opinions on above and any options
>>>>> please do reply.
>>>>>
>>>>> Regards.
>>>>> --
>>>>> Kaveesha Perera
>>>>> Intern - Software Engineering
>>>>>
>>>>> mobile: 0716130471
>>>>>
>>>>> ___
>>>>> Architecture mailing list
>>>>> Architecture@wso2.org
>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>
>>>>>
>

Re: [Architecture] Facilitating Updating API with import/export tool in APIM

2016-08-02 Thread Janaka Ranabahu
On Tue, Aug 2, 2016 at 8:38 PM, Nuwan Dias <nuw...@wso2.com> wrote:

> Yes, +1. I too believe we should continue developing this as a library.
> That would bring out a lot more possibilities on how this library can be
> used instead of limiting it to an API and hence would serve a wider
> audience.
>
​This would not bring more possibilities but limit the possibilities we
have. Import/export should be 2 core functionalists of an API. ​These
operations are heavy ones. Doing that in a client side would add lots of
overhead. We should do this on the server side and get a zip file as in the
previous versions. That way we can minimize the overhead and which is a
more cleaner approach.

>
> The reason we had the import/export functionality as a REST API earlier
> was because we didn't have a nice clean REST API for the publisher and
> store. Now that we have it IMO we should utilize that instead of
> introducing yet another API proxying the publisher API.
> ​
>
​No. What I've asked here is  not to add another layer. If I understand
correctly, developing this as a separate library would be like adding a
abstraction layer for something we do not have OOTB. Instead what I propose
is we add 2 methods to the REST API itself called import and export. I
believe that import and export should be 2 core functionalists of an API
instead of using multiple calls to do that operation.

If you look at other products like G-Reg, their core API has methods called
"dump" and "restore" which does exactly the same. ​


​Thanks,
Janaka​

​
>
>
>
>
> On Tue, Aug 2, 2016 at 7:53 PM, Joseph Fonseka <jos...@wso2.com> wrote:
>
>> Hi Janaka
>>
>> On Tue, Aug 2, 2016 at 4:45 PM, Janaka Ranabahu <jan...@wso2.com> wrote:
>>
>>>
>>>- Creating the archive in the client machine would require multiple
>>>HTTP calls between the client and the server.
>>>- If we are going to support bulk import or export, then the number
>>>of HTTP calls would increase depending on the number of APIs.
>>>
>>> Given the frequency of import/export and the number of APIs in
>> a typical system I do not think we have to worry about number of HTTP calls
>> required to import/export from client side.
>>
>>>
>>>- There should be a native support for Import/Export from the REST
>>>API. Otherwise clients who prefer to write their own tool would be forced
>>>to either use the library we give, or have to use multiple API calls to 
>>> get
>>>the required information.
>>>- Shipping a different library would be problematic for customers
>>>who are trying to automate the import/export(using some tool like Jenkins
>>>or Puppet)
>>>- Shipping a client library would also mean that we are bound to use
>>>Java(or the language that supports that). What if a user want to write a 
>>> C#
>>>tool for this. Then our client library would not help them a lot.
>>>- If some users write tools of their own using the library we give,
>>>if we release a new version on the import/export library, then those 
>>> users
>>>have to rewrite their tools with the new version. That would be a lot of
>>>overhead for the users.
>>>
>>> Therefore my suggestion is that we expose a OAuth2 protected
>>> resource/method to import/export APIs using the REST API. This is exactly
>>> what Sanjeewa has mentioned in his previous reply.
>>>
>>
>> I agree with the above giving a HTTP API will be a more generic solution
>> which can be used in many scenarios. But if we protect it with OAuth using
>> it for day to day will be cumbersome since you have to deal with generating
>> tokens. So if we develop a cli tool which utilize that API we can hide this
>> complexity from the user.
>>
>> IMO we should continue on developing the import/export library which
>> utilize the REST API. Then we have the flexibility of developing the
>> import/export as an API, CLI tool or some other plugin if required.
>>
>> Thanks & Regards
>> Jo
>>
>>
>>>
>>>
>>>>
>>>>>>> Thanks,
>>>>>>> NuwanD.
>>>>>>>
>>>>>>> On Thu, Jul 21, 2016 at 11:31 AM, Sanjeewa Malalgoda <
>>>>>>> sanje...@wso2.com> wrote:
>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Wed, Jul 20, 2016 at 12:33 PM, Rasika Perera <rasi...@wso2.com>
>>>>>>>> wrote:
>

Re: [Architecture] API Manager Config Changes in version 2.0.0

2016-07-13 Thread Janaka Ranabahu
>>>>>> Old Config New Config Description
>>>>>>   The section that
>>>>>> contains the JWT configurations
>>>>>>   Specifies the name of the JWT
>>>>>> header
>>>>>>   Specifies the name of the
>>>>>> class that generates the JWT
>>>>>>
>>>>>>
>>>>>> 3. Changes to Analytics configurations.
>>>>>>
>>>>>> Old Config New Config Description
>>>>>>   The section that contains the
>>>>>> Analytics configurations
>>>>>>
>>>>>> In addition to the above changes, a new section was introduced to
>>>>>> hold OAuth2.0 related API Manager specific configurations. This new 
>>>>>> section
>>>>>> brings together OAuth related configs which were earlier scattered over 
>>>>>> the
>>>>>> api-manager.xml file. This is what it contains now.
>>>>>>
>>>>>> 
>>>>>> 
>>>>>> true
>>>>>> am_application_scope
>>>>>> 
>>>>>> ^device_.*
>>>>>> openid
>>>>>> 
>>>>>> /oauth2/token
>>>>>> 
>>>>>> https://${carbon.local.ip}:${https.nio.port}/revoke
>>>>>> false
>>>>>> 
>>>>>>
>>>>>> Thanks,
>>>>>> NuwanD.
>>>>>>
>>>>>> --
>>>>>> Nuwan Dias
>>>>>>
>>>>>> Technical Lead - WSO2, Inc. http://wso2.com
>>>>>> email : nuw...@wso2.com
>>>>>> Phone : +94 777 775 729
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> *Bhathiya Jayasekara*
>>>>> *Senior Software Engineer,*
>>>>> *WSO2 inc., http://wso2.com <http://wso2.com>*
>>>>>
>>>>> *Phone: +94715478185 <%2B94715478185>*
>>>>> *LinkedIn: http://www.linkedin.com/in/bhathiyaj
>>>>> <http://www.linkedin.com/in/bhathiyaj>*
>>>>> *Twitter: https://twitter.com/bhathiyax
>>>>> <https://twitter.com/bhathiyax>*
>>>>> *Blog: http://movingaheadblog.blogspot.com
>>>>> <http://movingaheadblog.blogspot.com/>*
>>>>>
>>>>> ___
>>>>> Architecture mailing list
>>>>> Architecture@wso2.org
>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Malintha Amarasinghe
>>>> Software Engineer
>>>> *WSO2, Inc. - lean | enterprise | middleware*
>>>> http://wso2.com/
>>>>
>>>> Mobile : +94 712383306
>>>>
>>>> ___
>>>> Architecture mailing list
>>>> Architecture@wso2.org
>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>
>>>>
>>>
>>>
>>> --
>>> Thanks
>>> Abimaran Kugathasan
>>> Senior Software Engineer
>>>
>>> Email : abima...@wso2.com
>>> Mobile : +94 773922820
>>>
>>> <http://stackoverflow.com/users/515034>
>>> <http://lk.linkedin.com/in/abimaran>
>>> <http://www.lkabimaran.blogspot.com/>  <https://github.com/abimarank>
>>> <https://twitter.com/abimaran>
>>>
>>>
>>> ___
>>> Architecture mailing list
>>> Architecture@wso2.org
>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>
>>>
>>
>>
>> --
>> *Susinda Perera*
>> Software Engineer
>> B.Sc.(Eng), M.Sc(Computer Science), AMIE(SL)
>> Mobile:(+94)716049075
>> Blog: susinda.blogspot.com
>> WSO2 Inc. http://wso2.com/
>> Tel : 94 11 214 5345 Fax :94 11 2145300
>>
>>
>> ___
>> Architecture mailing list
>> Architecture@wso2.org
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>
>>
>
>
> --
> Nuwan Dias
>
> Technical Lead - WSO2, Inc. http://wso2.com
> email : nuw...@wso2.com
> Phone : +94 777 775 729
>
> ___
> Architecture mailing list
> Architecture@wso2.org
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>


-- 
*Janaka Ranabahu*
Associate Technical Lead, WSO2 Inc.
http://wso2.com


*E-mail: jan...@wso2.com <http://wso2.com>**M: **+94 718370861*

Lean . Enterprise . Middleware
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Generating a single Event per Message from our Products

2016-03-25 Thread Janaka Ranabahu
Hi Srinath,

On Fri, Mar 25, 2016 at 11:26 AM, Srinath Perera <srin...@wso2.com> wrote:

> As per meeting ( Paricipants: Sanjiva, Shankar, Sumedha, Anjana, Miyuru,
> Seshika, Suho, Nirmal, Nuwan)
>
> Currently we generate several events per message from our products. For
> example, when a message hits APIM, following events will be generated.
>
>
>1. One from HTTP level
>2. 1-2 from authentication and authorization logic
>3. 1 from Throttling
>4. 1 for ESB level stats
>5. 2 for request and response
>
> If APIM is handling 10K TPS, that means DAS is receiving events in about
> 80K TPS. Although data bridge that transfers events are fast, writing to
> Disk ( via RDBMS or Hbase) is a problem. We can scale Hbase. However, that
> will run to a scenario where APIM deployment will need a very large
> deployment of DAS.
>
> We decided to figure out a way to collect all the events and send a single
> event to DAS. Basically idea is to extend the data publisher library such
> that user can keep adding readings to the library, and it will collect the
> readings and send them over as a single event to the server.
>
> However, some flows might terminated in the middle due to failures. There
> are two solutions.
>
>
>1. Get the product to call a flush from a finally block
>2. Get the library to auto flush collected reading every few seconds
>
> I feel #2 is simpler.
>
> Do we have any concerns about going to this model?
>
> Suho, Anjana we need to think how to do this with our stream definition as
> we force you to define the streams before hand.
>
​Can't we write something similar to JDBC batch processing where the code
would only do a publisher.addBatch() or something similar. The data
publisher can be configured to flush the batched requests to DAS when they
hit a certain threshold.

Ex:- We define the batch size as 10(using code or config xml). Then if we
have 5 streams, the publisher would send 5 requests to DAS(for each stream)
instead of 50.

IMO, this would allow us to keep the existing stream definitions and reduce
the number of calls from a server to DAS.

WDYT?

Thanks,
Janaka​

>
> --Srinath
>
>
>
>
>
> --
> 
> Blog: http://srinathsview.blogspot.com twitter:@srinath_perera
> Site: http://home.apache.org/~hemapani/
> Photos: http://www.flickr.com/photos/hemapani/
> Phone: 0772360902
>
> ___
> Architecture mailing list
> Architecture@wso2.org
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>


-- 
*Janaka Ranabahu*
Associate Technical Lead, WSO2 Inc.
http://wso2.com


*E-mail: jan...@wso2.com <http://wso2.com>**M: **+94 718370861*

Lean . Enterprise . Middleware
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [Analytics][APIM] - Implement Geo location graph in Analytics

2016-03-20 Thread Janaka Ranabahu
espect to the long
>>>>> value for the given ip which between this above long values. Hope you will
>>>>> got this idea on our approach. Is there any way to do bit wise operation 
>>>>> in
>>>>> order to get the network_cidr value ? .
>>>>>
>>>>
>>> Can't we do it by keeping the network IP and the subnet as two columns
>>> and the geoname_id as the third. Say for example, if 192.168.0.0/20 is
>>> the cidr, for IPv4 routing what is usually done is we get the IP as int,
>>> then do a bitwise AND with the subnet mask (e.g. if subnet mask is 20, that
>>> would mean 20 bits with value 1 and remaining 12 bits of value 0, i.e.
>>>    0) and check whether that returns the
>>> network IP.
>>>
>>> You might find more info here [1]. I think there should be libraries
>>> that wrap this operation. But if performance is a concern and we need to
>>> keep the cache search implementation very lean, we can implement it
>>> ourselves.
>>>
>>> WDYT?
>>>
>>> [1]
>>> http://stackoverflow.com/questions/4209760/validate-an-ip-address-with-mask
>>>
>>> Thanks,
>>> Lasantha
>>>
>>>
>>>>> Thanks
>>>>> Tharindu
>>>>>
>>>>> On Mon, Mar 7, 2016 at 12:05 AM, Lasantha Fernando <lasan...@wso2.com>
>>>>> wrote:
>>>>>
>>>>>> Hi all,
>>>>>>
>>>>>> I think what Sachith suggests also makes sense. But am also rooting
>>>>>> for the in-memory cache implementation suggested by Sanjeewa with
>>>>>> ip-netmask approach.
>>>>>>
>>>>>> Please find my comments inline.
>>>>>>
>>>>>> On 5 March 2016 at 23:50, Sachith Withana <sach...@wso2.com> wrote:
>>>>>>
>>>>>>> Hi all,
>>>>>>>
>>>>>>> From what I understand/was told, this happens once a day ( or
>>>>>>> relatively infrequently), and you wanna avoid searching through all the 
>>>>>>> geo
>>>>>>> data per ip ( since you are grouping the requests by IP).
>>>>>>>
>>>>>>> IF that's the case, it would be better to use a separate DB table to
>>>>>>> cache these data ( IP, geoID ..etc) with the IP being the primary key (
>>>>>>> which would improve the lookup time), and even though there will be 
>>>>>>> cache
>>>>>>> misses, it would eventually reduce the (#cacheMisses/ Hits).
>>>>>>>
>>>>>>> Having a DB cache would be better since you do want to persist these
>>>>>>> data to be used over time.
>>>>>>>
>>>>>>> BTW in a cache miss, if we can figure out a way to limit the search
>>>>>>> range on the original table or at least stop the search once a match is
>>>>>>> found, it would greatly improve the cache miss time as well.
>>>>>>>
>>>>>>> That's my two cents.
>>>>>>>
>>>>>>> Cheers,
>>>>>>> Sachith
>>>>>>>
>>>>>>> On Sun, Mar 6, 2016 at 8:24 AM, Janaka Ranabahu <jan...@wso2.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hi Sanjeewa,
>>>>>>>>
>>>>>>>> On Sun, Mar 6, 2016 at 7:25 AM, Sanjeewa Malalgoda <
>>>>>>>> sanje...@wso2.com> wrote:
>>>>>>>>
>>>>>>>>> Implementing cache is better than having another table mapping
>>>>>>>>> IMO. What if we query database and keep IP range and network name in 
>>>>>>>>> memory.
>>>>>>>>> Then we may do quick search on network name and then based on that
>>>>>>>>> rest can load some other way.
>>>>>>>>> WDYT?
>>>>>>>>>
>>>>>>>> ​We thought of having an in memory cache but we faced several
>>>>>>>> issues along the way. Let me explain the situation as it is per now.​
>>>>>>>>
>>>>>>>> The Max-Mind DB has the IP addresses with the IP and the netmask.
>>>>>>>> Ex: 192.168.0.0/20
>>>>

[Architecture] [AS 6.0.0] HTTP Monitoring dashboard - Why are we parsing the User-Agent header in the event builder?

2016-03-08 Thread Janaka Ranabahu
Hi App Server team,

According to the code in [1], the user-agent string is parsed and some of
the information are extracted from the user-agent at event publishing time.
Could you guys please clarify why you guys haven't published the whole
user-agent string to DAS and use a UDF to extract the corresponding data at
data summarization time?

There are several concerns I see in the current approach.
1. This will add additional overhead to the server when processing each
request as it has to process the user-agent string to filter out these data.
2. We are currently limiting the information that can be extracted from the
user-agent at the data publishing time. If we publish the whole user-agent
string, then the users have the option of coming up with a new analytics
script to extract any data from the user-agent.
3. If we encounter a bug/limitation or upgrade/replace in the user-agent
processing library, then we have to change/update the event publisher code.
Having a user defined function in DAS to extract the information from the
user-agent would address this scenario as we do not have to do any changes
to the data publishers.
4. We need to parse the user-agent from all the places where we publish the
HTTP data. Based on the current plans, if we are going to integrate the
HTTP Monitoring dashboard to API Manager, then from the API Manager side,
we also have to parse the user-agent and extract the data from the gateway
nodes before publishing the data.

Therefore I see that the better approach would be to publish the whole
user-agent string and extract data from DAS data summarization time.

WDYT?

Thanks,
Janaka

[1]
https://github.com/wso2/product-as/blob/wso2as-6.0.0/modules/http-statistics-monitoring/src/main/java/org/wso2/appserver/monitoring/utils/EventBuilder.java

-- 
*Janaka Ranabahu*
Associate Technical Lead, WSO2 Inc.
http://wso2.com


*E-mail: jan...@wso2.com <http://wso2.com>**M: **+94 718370861*

Lean . Enterprise . Middleware
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [Analytics][APIM] - Implement Geo location graph in Analytics

2016-03-05 Thread Janaka Ranabahu
to give us the most suitable way of doing this solution?.
>>
>> [1] - Implementing Geographical based Analytics in API Manager mail
>> thread.
>>
>> [2] - http://dev.maxmind.com/geoip/geoip2/geolite2/
>>
>>
>> *Thanks*
>>
>> *Tharindu Dharmarathna*
>> Associate Software Engineer
>> WSO2 Inc.; http://wso2.com
>> lean.enterprise.middleware
>>
>> mobile: *+94779109091 <%2B94779109091>*
>>
>
>
>
> --
>
> *Sanjeewa Malalgoda*
> WSO2 Inc.
> Mobile : +94713068779
>
> <http://sanjeewamalalgoda.blogspot.com/>blog
> :http://sanjeewamalalgoda.blogspot.com/
> <http://sanjeewamalalgoda.blogspot.com/>
>
>
>


-- 
*Janaka Ranabahu*
Associate Technical Lead, WSO2 Inc.
http://wso2.com


*E-mail: jan...@wso2.com <http://wso2.com>**M: **+94 718370861*

Lean . Enterprise . Middleware
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [API Analytics] Health Monitoring

2016-03-03 Thread Janaka Ranabahu
Hi Maheshakya,

On Thu, Mar 3, 2016 at 4:30 PM, Maheshakya Wijewardena <mahesha...@wso2.com>
wrote:

> Hi,
>
> Due to the potential security issues and complexity issues arose in the
> discussions  among APIM analytics team members, we have decided to get rid
> of the separate Java client for API health monitoring. Instead, this will
> be implemented as CEP execution plans like other APIM analytics tasks. The
> following information will be extracted from the APIM event streams.
>
​I believe we agreed not to call this API Health monitoring as we can not
guarantee the health of the API using only these values. Instead we opted
to call this as something like API Availability.

Lets finalize a new name for this as well. IMO, we should be calling this
as "API Availability".
WDYT?

Thanks,
Janaka  ​


>
>1. API request count frequency.
>2. API response time
>3. API response error codes
>
> The criteria to categorize healthy/unhealthy scenario is as follows:
>
>1. If the API request count frequency gets lower than the 90th
>percentile of the overall, that API is not healthy within the given period
>of time.
>2. If the API response times get higher than 90th percentile of the
>overall, that API is not healthy within the given period of time.
>3. If the API response contains error codes (given in configuration,
>eg: 5xx, 4xx, that API is not healthy within the given period of time.
>
> If an API is stated as no healthy, the reason will be provided (one or
> more of the above three).
>
> Best regards.
>
> On Tue, Mar 1, 2016 at 10:07 AM, Maheshakya Wijewardena <
> mahesha...@wso2.com> wrote:
>
>> Hi,
>>
>> We have decided not to include the HTTP methods that affects the backends
>> of APIs, such as POST, DELETE since the health checker should not cause any
>> differences in the backend.
>>
>> Best regards.
>>
>> On Tue, Feb 23, 2016 at 10:53 AM, Maheshakya Wijewardena <
>> mahesha...@wso2.com> wrote:
>>
>>> Hi,
>>>
>>> We have discussed (APIM team and analytics team) and came to a decision
>>> to implement the health monitor for APIM as a separate Java client. The
>>> following diagram depicts the architecture of the health monitor.
>>>
>>>
>>> ​
>>>
>>>- Health checker incorporates the full life cycle of an API,
>>>therefore it is located outside the firewall and can be viewed by the 
>>> admin
>>>of the APIM.
>>>- This client consumes quota from the whole API, therefore the
>>>client needs to manage it.
>>>- This Java client will ping (call API methods from the client) the
>>>APIs periodically (hourly, daily, weekly) and tracks the status codes of
>>>the responses.
>>>- For each API, there will be a separate thread spawned and that
>>>thread will keep track of that API.
>>>- This information will be published to DAS inside the firewall
>>>using HTTPS protocal.
>>>- Based on the status code, a status will be reported as one of the
>>>following (These are to be decided):
>>>   1. Healthy - 2xx
>>>   2. Some problems occurred during the time period - 4xx
>>>   3. Failures reported - 5xx
>>>-  Following configuration information will be given the the health
>>>monitor using a yaml file:
>>>   - APIM credentials:
>>>  - APIM username
>>>  - APIM password
>>>   - APIM configuration info:
>>>  - APIM host
>>>  - APIM port
>>>  - Application name
>>>  - Application tier
>>>  - Application key type
>>>  - Application key validity time (default -1, infinitely valid)
>>>  - Information of APIs:
>>> - API name
>>> - API url
>>> - API version
>>> - API provider
>>> - API tier
>>> - API parameters (if available)
>>> - API payload (if available)
>>>  - DAS creadentials:
>>>  - DAS username
>>>  - DAS password
>>>   - DAS configuration info:
>>>  - DAS receiver url
>>>   - An email notification can be configured to be sent when a
>>>failure is reported for an API.
>>>
>>> WDYT?
>>>
>>> Best regards.
>>>
>>> References:
>>>
>>> [1] API metrics: http://apimetrics.io/check-api-health/
>>> --
>>> Pruthuvi Maheshakya Wijewardena
>>> mahesha...@wso2.com
>>> +94711228855
>>>
>>>
>>>
>>
>>
>> --
>> Pruthuvi Maheshakya Wijewardena
>> mahesha...@wso2.com
>> +94711228855
>>
>>
>>
>
>
> --
> Pruthuvi Maheshakya Wijewardena
> mahesha...@wso2.com
> +94711228855
>
>
>


-- 
*Janaka Ranabahu*
Associate Technical Lead, WSO2 Inc.
http://wso2.com


*E-mail: jan...@wso2.com <http://wso2.com>**M: **+94 718370861*

Lean . Enterprise . Middleware
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] APIM Subscriber Notification

2016-02-10 Thread Janaka Ranabahu
Hi Jo,

On Wed, Feb 10, 2016 at 8:34 AM, Joseph Fonseka <jos...@wso2.com> wrote:

> Hi Sam
>
> Few thought related to notification.
>
> 1. As I see notification can be a more generic use case not specific to
> notifying new API versions.
> Ex. Notify when a new API is added.
>
​Is this really needed? IMO, we should not do this.

The reason is that, IMO, all the users will not have a need to know about
the new APIs that are added. Even if we allow them to choose whether to get
notifications on new APIs, it is not useful practically.
​Users will subscribe and use APIs based on their use-case and for an end
user, having a new API will not make them change their use-case and
re-implement what they have done. If a user needs a new API and a set of
new features, he/she would come to the store and search for a particular
API that matches their needs.

  Notify when subscription is blocked.
>
​IMO, this is also not practical. If we are to do this, then we need to
have a mechanism of determining when to send an alert to the and to whom
should we send the alert saying that their subscription is blocked.
Currently if the ​subscription is blocked, then we anyhow send that in the
response message.

Thanks,
Janaka

>   Notify throttling limit reach.
>   Notify when action related to workflow is performed.
>  etc..
> Thus when developing the notification component we should keep provision
> to support above.
>
> 2. As Amila pointed out we should provide an option to enable / disable
> notifications based on subscriber preference.
>
> Thanks & Regards
> Jo
>
>
>
>
>
> On Wed, Feb 10, 2016 at 2:00 AM, Amila De Silva <ami...@wso2.com> wrote:
>
>> Hi Sam,
>>
>> Will the notification be pushed to all the Subscribers of an API, or does
>> the Subscriber have an option to select for which APIs they should be
>> receiving notifications for?
>>
>> On Tue, Feb 9, 2016 at 7:26 PM, Sam Sivayogam <s...@wso2.com> wrote:
>>
>>> Hi All,
>>>
>>> Currently in APIM when a publisher makes a new version of an existing
>>> api there is no OTB solution to notify the existing subscibers.
>>>
>>> Since there is requirement for this, we planned to introuduce a
>>> Notification Feature in the coming APIM release. This Feature will help the
>>> publishers to send a notification message to the existing subscribers; when
>>> they are making a new copy of an existing API. since most users prefer
>>> notifications to be sent through email, we will provide a default
>>> implementation which will notify the subscribers through email.
>>>
>>> What we are planning to do
>>>
>>> 1. Create a EmailNotifier class which will send notification emails to
>>> the existing subscribers.
>>> 2. Provide a Notifier interface which will help the publishers to create
>>> their own Notification implementations according to their requirements such
>>> as SMSNotification.
>>> 3. Create a admin dashboard page to add email configurations, these
>>> configurations will be saved in a registry and will be used by EmailNotifier
>>> 4. Add an option to select the Notify subscribers in the API copying page
>>> 5. Planning to Implement the EmailNotifier class using JAVA Mail API[1]
>>>
>>> Any suggestions and thoughts are highly appreciated.
>>>
>>> [1] http://www.oracle.com/technetwork/java/faq-135477.html#1
>>>
>>> --
>>> *Sam Sivayogam*
>>>
>>> Software Engineer
>>> Mobile  : +94 772 906 439
>>> Office   : +94 112 145 345
>>> *WSO2, Inc. :** wso2.com <http://wso2.com/>*
>>> lean.enterprise.middleware.
>>>
>>
>>
>>
>> --
>> *Amila De Silva*
>>
>> WSO2 Inc.
>> mobile :(+94) 775119302
>>
>>
>
>
> --
>
> --
> *Joseph Fonseka*
> WSO2 Inc.; http://wso2.com
> lean.enterprise.middleware
>
> mobile: +94 772 512 430
> skype: jpfonseka
>
> * <http://lk.linkedin.com/in/rumeshbandara>*
>
>


-- 
*Janaka Ranabahu*
Associate Technical Lead, WSO2 Inc.
http://wso2.com


*E-mail: jan...@wso2.com <http://wso2.com>**M: **+94 718370861*

Lean . Enterprise . Middleware
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Meeting Note : Implement a Pluggable Version Strategy feature in APIManager

2015-03-19 Thread Janaka Ranabahu
 attribute to RXT to store context template (This is
used to display the context template in UI when editing the API)

 I think that the second option is better than adding new columns to the
 tables.

 Please share your suggestions or thoughts on this.




 Thanks

 *Dinesh J. Weerakkody*
 Software Engineer
 WSO2 Inc.
 lean | enterprise | middleware
 M : +94 727 361788 | E : dine...@wso2.com | W : www.wso2.com

 On Tue, Dec 23, 2014 at 5:43 PM, Dinesh J Weerakkody dine...@wso2.com
 wrote:

 *Participants*
 APIM Team : Sumedha, Nuwan, Sanjeewa, Jo, Roshan, Lakshman, Dinesh
 ESB Team : Kasun

 *Redmine*
 https://redmine.wso2.com/issues/153

 We have discussed the following options as solutions to implement a
 pluggable version strategy for APIM manager product.

 *Option 1 : include version to context path*
 We allow users to define API context as a template in API create UI.
 Context = /api/{uri.var.version}/anytext
 Version = 1.0.0

 Then we generate the context path based on a the template when
 creating the synapse xml and use default version-type (empty).

 *Current version*
 api xmlns=http://ws.apache.org/ns/synapse;
 name=admin-API
 context=/api”
 version=1.0.0
 *version-type=url*

 *Proposed version*
 api xmlns=http://ws.apache.org/ns/synapse;
 name=admin-API
 *context=/api/1.0.0*
 version=1.0.0

 Please note that version appended to context while version tag keeping
 as it is. If user does not include the {uri.var.version}, current process
 will be used.

 Ex:
 context=/1.0.0/api
 context=/gov/1.0.0/api
 context=/gov/1.0.0/api2

 *Option 2 : Match APIs based on configured context pattern*
 api xmlns=http://ws.apache.org/ns/synapse;
 name=admin-API
 context-pattern=”{uri.var.context}/{uri.var.version}”
 context=/api”
 version=1.0.0
 version-type=url

 Ex:
 {uri.var.version}/{uri.var.context}= http://localhost:8280/1.0.0/api
 {uri.var.context}/{uri.var.version}= http://localhost:8280/api/1.0.0/

 In synapse level we have to uniquely identify a API with the context
 and version. With second option, it will be difficult and can be lead to
 conflicts If user define an API with context=”1.0.0” version=”api” while
 having an API with context=”api” version=”1.0.0”. So we have decided to
 drop the second option and throughly test the first option.

 Please share your suggestions or thoughts on this.


 Thanks

 *Dinesh J. Weerakkody*
 Software Engineer
 WSO2 Inc.
 lean | enterprise | middleware
 M : +94 727 361788 | E : dine...@wso2.com | W : www.wso2.com





 --
 Nuwan Dias

 Associate Tech Lead - WSO2, Inc. http://wso2.com
 email : nuw...@wso2.com
 Phone : +94 777 775 729






-- 
*Janaka Ranabahu*
Senior Software Engineer; WSO2 Inc.; http://wso2.com


*E-mail: jan...@wso2.com http://wso2.com**M: **+94 718370861
%2B94%20718370861*

Lean . Enterprise . Middleware
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [Dev][G-Reg]Copy to new version functionality in G-Reg

2014-12-17 Thread Janaka Ranabahu
/architecture



-- 
*Janaka Ranabahu*
Senior Software Engineer; WSO2 Inc.; http://wso2.com


*E-mail: jan...@wso2.com http://wso2.com**M: **+94 718370861*

Lean . Enterprise . Middleware
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Moving deployment section from configuration xml and Facilitate AppFactory users to deploy apps with their custom app types if its not already available

2014-12-03 Thread Janaka Ranabahu
. If it is one to
 many there will be same deployer mentioned in several app types.

 Should we focus on that feature here. If it is to implement many to
 many relationship then we are doing that feature now.


 You are correct in saying we need to concentrate on this current
 feature only. But since we are going to be doing refactoring anyway I
 propose to separate out Runtime concept gradually. There is no harm in
 adding a new meta data object saying Runtime. It can only do us good. Less
 refactoring in the future.

 Could you tell me why we need to add cartridge.xml to *.apptype
 archive itself? I prefer to keep it separate as a part of PaaS. And use
 Runtime object to refer to it. I don't want CartridgeInfo objects being
 used all over in our code. Rather I prefer to see Runtime being used
 because AppFactory and Stratos can evolve fairly independently.

 thanks,
 dimuthu



 Right now it is 1 to 1 relationship. In future it is 1 to n
 relationship. So if we keep it in a separate XML the work we have to do 
 is
 simply externalise the deployment xmls to support the below scenario.

 For example consider app creation page.

 There is a Application Type drop down. In future we are going to
 have Runtimes drop down. So if we have deployment as a separate 
 concept
 in the architecture it is going to be much better.

 thanks,
 dimuthu



 Look forward your views in this.

 Thanks  Regards,
 S.A.Rajeevan
 Software Engineer WSO2 Inc
 E-Mail: rajeev...@wso2.com | Mobile : +94776411636




 --
 Dimuthu Leelarathne
 Architect  Product Lead of App Factory

 WSO2, Inc. (http://wso2.com)
 email: dimut...@wso2.com
 Mobile : 0773661935

 Lean . Enterprise . Middleware


 Thanks  Regards
 Danushka Fernando
 Software Engineer
 WSO2 inc. http://wso2.com/
 Mobile : +94716332729




 --
 Dimuthu Leelarathne
 Architect  Product Lead of App Factory

 WSO2, Inc. (http://wso2.com)
 email: dimut...@wso2.com
 Mobile : 0773661935

 Lean . Enterprise . Middleware





 --
 Dimuthu Leelarathne
 Architect  Product Lead of App Factory

 WSO2, Inc. (http://wso2.com)
 email: dimut...@wso2.com
 Mobile : 0773661935

 Lean . Enterprise . Middleware






-- 
*Janaka Ranabahu*
Senior Software Engineer; WSO2 Inc.; http://wso2.com


*E-mail: jan...@wso2.com http://wso2.com**M: **+94 718370861*

Lean . Enterprise . Middleware
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Moving deployment section from configuration xml and Facilitate AppFactory users to deploy apps with their custom app types if its not already available

2014-12-03 Thread Janaka Ranabahu
Hi Dimuthu,

On Thu, Dec 4, 2014 at 10:42 AM, Dimuthu Leelarathne dimut...@wso2.com
wrote:

 Hi Guys,

 Please start with why. Lets do minimal to achieve why with most
 healthiest way. Why we need to do this is to external parties to add
 interpreter based languages and their cartridges. We do not need a new
 deployer type right now. I proposed a new Runtime object only because we
 need to minimise the refactoring in the future. I don't think we need a
 deployer IMO.

​Maybe I raised my question in a wrong manner.​

​I'm not talking about introducing a new deployer. Please see my comments
below.​
Also  please let me know whether I'm raising a invalid question.


 thanks,
 dimuthu

 On Thu, Dec 4, 2014 at 10:06 AM, Janaka Ranabahu jan...@wso2.com wrote:

 Hi Rajeevan,

 Could you explain a bit more on how we are going to relate the lifecycle
 stage with the runtime? If you look at the appfactory.xml, you might have
 noticed that the Deployer information is defined for each lifecycle stage.
 So with this new runtime.xml, how are we going to address that? Does the
 runtime.xml contains all configurations or are we going to have different
 sub directories and have a runtime.xml in each of them for each lifecycle
 environment?

 Thanks,
 Janaka

 On Wed, Dec 3, 2014 at 2:17 PM, Danushka Fernando danush...@wso2.com
 wrote:

 Hi Dimuthu and All

 We decided to go with a separate file for this runtime configs. So we
 will deploy this file to a different location with a different axis2
 deployer. And we will mention in the apptype.xml which runtime to be used.

 WDYT?

 Thanks  Regards
 Danushka Fernando
 Software Engineer
 WSO2 inc. http://wso2.com/
 Mobile : +94716332729

 On Wed, Dec 3, 2014 at 11:49 AM, Aiyadurai Rajeevan rajeev...@wso2.com
 wrote:

 Hi Dimuthu,

 Thanks for the suggestion. So, As a conclusion I will go ahead with the
 implementation as having a runtime.xml for the whole below peroperties and
 populate a map from there.

 ​The following section maps directly with the existing Deployer
section in the appfactory.xml​ which we already defines for each stage.

 Runtime

 Runtimeappserver/Runtime


 ClassNameorg.wso2.carbon.appfactory.jenkins.deploy.JenkinsArtifactDeployer/ClassName

  Endpointhttps://sc.s2.AF_HOST:9463/services//Endpoint

 ​This endpoint​

​is different from one environment to another even for a single runtime.​

 RepositoryProvider


 ProviderClassorg.wso2.carbon.appfactory.s4.integration.GITBlitBasedGITRepositoryProvider/ProviderClass

 BaseURLhttps://gitblit.s2.wso2.com:8444//BaseURL

 URLPattern{@stage}/as/URLPattern

 ​This URL pattern also different from one environment to another even
for a single runtime.

​Previously we had 3 such configurations which defines these changing
properties of a runtime environment. My question is, if we are defining a
runtime of a new apptype​ how are we going to map the lifecycle stages of
that apptype with the runtime?

Thanks,
Janaka

AdminUserNameadmin/AdminUserName

 AdminPasswordadmin/AdminPassword

 /RepositoryProvider

 AliasPrefixas/AliasPrefix

 CartridgeTypePrefixas/CartridgeTypePrefix

 DeploymentPolicyaf-deployment/DeploymentPolicy

 AutoscalePolicyeconomy/AutoscalePolicy

 RepoURL/RepoURL

 DataCartridgeType/DataCartridgeType

 DataCartridgeAlias/DataCartridgeAlias

 SubscribeOnDeploymentfalse/SubscribeOnDeployment

 /Runtime



 Thanks  Regards,
 S.A.Rajeevan
 Software Engineer WSO2 Inc
 E-Mail: rajeev...@wso2.com | Mobile : +94776411636

 On Wed, Dec 3, 2014 at 11:03 AM, Dimuthu Leelarathne dimut...@wso2.com
  wrote:

 HI Rajeevan,

 No GUI please. We are changing the whole user story here.

 thanks,
 dimuthu


 On Wed, Dec 3, 2014 at 10:54 AM, Aiyadurai Rajeevan 
 rajeev...@wso2.com wrote:

 Hi Dimuthu/All,

 In addition to this mail conversation we had discussed this in an
 internal forum, Here is the update of thatdiscussion

 As of today We are using appfactory.xml file for the runtime
 configurations the below fraction is the the configuration properties.

 ApplicationType name=*

  ClassName
 org.wso2.carbon.appfactory.jenkins.deploy.JenkinsArtifactDeployer
 /ClassName

 Endpointhttps://sc.s2.AF_HOST:9463/services//Endpoint

 RepositoryProvider

  Property name=Class


 org.wso2.carbon.appfactory.s4.integration.GITBlitBasedGITRepositoryProvider\

  /Property

  Property name=BaseURLhttps://gitblit.s2.wso2.com:8444/
 /Property

   Property name=URLPattern{@stage}/as/Property

 Property name=AdminUserNameadmin/Property

  Property name=AdminPasswordadmin/Property

 /RepositoryProvider

 Properties

 Property name=aliasasdev/Property

 Property name=cartridgeTypeasdev/Property

 Property name=deploymentPolicyaf-deployment
 /Property

 Property name=autoscalePolicyeconomy/Property

 Property name=repoURL

Re: [Architecture] Remove multiple backend calls that happens when loading resource overview page

2014-11-03 Thread Janaka Ranabahu
Hi Amalka,

Previously we had database users and database template creation capability
from the databases/datasources page. Where are these operations now? Are
they with the newly added 'Databases' page? I'm unable to locate them in
the attached screenshots.

Thanks,
Janaka

On Wed, Oct 15, 2014 at 8:46 AM, Amalka Subasinghe ama...@wso2.com wrote:

 Hi,

 Currently when loading App Factory resources overview page, it do multiple
 backend calls to load the various information;
 to reduce backend calls we are planning to do the following as an initial
 step.

 1. Move Resources - databases section to new tab called 'Databases' and
 change the layout of it
 2. Load Resources page only from App Factory database


 Thanks
 Amalka


 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




-- 
*Janaka Ranabahu*
Senior Software Engineer; WSO2 Inc.; http://wso2.com


*E-mail: jan...@wso2.com http://wso2.com**M: **+94 718370861*

Lean . Enterprise . Middleware
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Remove multiple backend calls that happens when loading resource overview page

2014-11-03 Thread Janaka Ranabahu
Hi Amalka,

On Tue, Nov 4, 2014 at 8:13 AM, Amalka Subasinghe ama...@wso2.com wrote:

 Hi Janaka,

 According to the new changes, when creating a database, it will create
 default user and template. If user want to create his own user and
 template, he can go for 'advanced options'.

So that mean that we do not have a way to add a user/template before adding
a database right?
Also with this changes, can I edit/remove any of my existing
templates/users? I see no way of doing that with the new set of UIs.

Thanks,
Janaka


 Thanks
 Amalka

 On Tue, Nov 4, 2014 at 8:03 AM, Janaka Ranabahu jan...@wso2.com wrote:

 Hi Amalka,

 Previously we had database users and database template creation
 capability from the databases/datasources page. Where are these operations
 now? Are they with the newly added 'Databases' page? I'm unable to locate
 them in the attached screenshots.

 Thanks,
 Janaka

 On Wed, Oct 15, 2014 at 8:46 AM, Amalka Subasinghe ama...@wso2.com
 wrote:

 Hi,

 Currently when loading App Factory resources overview page, it do
 multiple backend calls to load the various information;
 to reduce backend calls we are planning to do the following as an
 initial step.

 1. Move Resources - databases section to new tab called 'Databases' and
 change the layout of it
 2. Load Resources page only from App Factory database


 Thanks
 Amalka


 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




 --
 *Janaka Ranabahu*
 Senior Software Engineer; WSO2 Inc.; http://wso2.com


 *E-mail: jan...@wso2.com http://wso2.com**M: **+94 718370861
 %2B94%20718370861*

 Lean . Enterprise . Middleware

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




 --

 Amalka Subasinghe

 WSO2 Inc.
 Mobile: +94 77 9401267

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




-- 
*Janaka Ranabahu*
Senior Software Engineer; WSO2 Inc.; http://wso2.com


*E-mail: jan...@wso2.com http://wso2.com**M: **+94 718370861*

Lean . Enterprise . Middleware
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] G-Reg vs ES for artefacts

2014-03-10 Thread Janaka Ranabahu
Hi Guys,

Will these limitations get fixed in the upcoming release? If so do we have
a timeline for that?

Thanks,
Janaka


On Sat, Mar 8, 2014 at 10:43 AM, Chandana Napagoda chand...@wso2.comwrote:

 Hi Samisa

 In addition to above issue, ES is still not supporting all the RXT
 configuration elements(ex: unbounded table option) which are currently
 supported by G-Reg. We have reported JIRAs to get those added to coming up
 releases.

 Regards,
 Chandana


 On Mar 8, 2014 7:09 AM, Janaka Ranabahu jan...@wso2.com wrote:

 Hi Samisa,

 IMO, it should be ES. But the current ES architecture does not pick new
 RXT types automatically and some configurations to jaggery config files are
 required to show the new asset in both Store and Publisher[1]. Until we
 have a more flexible way of generating the Store and Publisher UI, I
 believe we have to stick with G-Reg.

 Thanks,
 Janaka

 [1] https://docs.wso2.org/display/ES100/Adding+a+New+Asset+Type


 On Fri, Mar 7, 2014 at 8:08 PM, Samisa Abeysinghe sam...@wso2.comwrote:

 We used to position G-Reg as a store of anything with RXT.

 Now what ES is there, and is more capable, do we propose the users use
 ES or G-Reg RXT like use cases?

 Thanks,
 Samisa...


 Samisa Abeysinghe

 Vice President Developer Evangelism

 WSO2 Inc.
 http://wso2.com


 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




 --
 *Janaka Ranabahu*
 Senior Software Engineer; WSO2 Inc.; http://wso2.com


 * E-mail: jan...@wso2.com http://wso2.com**M: **+94 718370861
 %2B94%20718370861*

 Lean . Enterprise . Middleware

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




-- 
*Janaka Ranabahu*
Senior Software Engineer; WSO2 Inc.; http://wso2.com


* E-mail: jan...@wso2.com http://wso2.com**M: **+94 718370861*

Lean . Enterprise . Middleware
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Improve G-Reg default lifecycle to Enterprise level

2014-03-07 Thread Janaka Ranabahu
Hi Isabelle,

This is something that should be part of Governance 2.0. I was not aware
that Governance 2.0 was in route before C5 time frame and sorry for the
confusion.

Also this requirement is not about adding more states to the lifecycle. I
haven't done a full analysis of the real world scenarios but it seems to me
that we need to add validations(and may be transitions UIs and Executors)
depending on the model we go with.

One such example is that, if our lifecycle model has a check item called
Architecture document attached, then we should have a validation step to
verify that.
Therefore to fulfill this requirement we might need to introduce new asset
types and lifecycle extensions.

Thanks,
Janaka


On Mon, Mar 3, 2014 at 5:26 AM, Isabelle Mauny isabe...@wso2.com wrote:

 How is that related to C5 ?? C5 is a research project at this point..
 Coming up with a more representative LC as default can be done now, based
 on our extensive experience with customers...

 Isabelle.

 --
 Isabelle Mauny
 Director, Product Management; WSO2, Inc.;  http://wso2.com/
 email: isabe...@wso2.com isabe...@wso2.com - mobile: +34 616050684


 On Mon, Mar 3, 2014 at 5:07 AM, Janaka Ranabahu jan...@wso2.com wrote:

 Hi G-Reg team,

 The default G-Reg lifecycle needs to be improved to Enterprise level.
  The current one we have only has 3 lifecycle states which does not have
 cover the full SDLC. Also we do not have a good set of check items in each
 state.

 Could we take some of the real world samples which are been widely used
 and model our default lifecyle based on those. That would improve the user
 experience a lot.

 Also do you guys have any plans to improve this with C5?

 WDYT?

 Thanks,
 Janaka

 --
 *Janaka Ranabahu*
 Senior Software Engineer; WSO2 Inc.; http://wso2.com


 * E-mail: jan...@wso2.com http://wso2.com**M: **+94 718370861
 %2B94%20718370861*

 Lean . Enterprise . Middleware

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture



 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




-- 
*Janaka Ranabahu*
Senior Software Engineer; WSO2 Inc.; http://wso2.com


* E-mail: jan...@wso2.com http://wso2.com**M: **+94 718370861*

Lean . Enterprise . Middleware
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [G-Reg] What is the purpose of allowing users to modify a lifecycle that is already in use

2014-03-02 Thread Janaka Ranabahu
On Sun, Mar 2, 2014 at 11:26 PM, Eranda Sooriyabandara era...@wso2.comwrote:

 Hi Janaka,


 On Mon, Feb 24, 2014 at 7:19 PM, Janaka Ranabahu jan...@wso2.com wrote:

 Hi Subash,


 On Fri, Feb 21, 2014 at 5:43 PM, Subash Chaturanga sub...@wso2.comwrote:

 HI Janaka,
 In  a Prod or non Prod env ithere can be a use case that at a given
 point of time, governance master needs to refactor the LC config (some
 config change as Ajith mentioned) and reflect the changes on all associated
 100s of services. So I believe this feature is a useful one (may be in a
 new form like refactor).

 But the current behavior of G-Reg is not to update the existing
 artifacts. Is that a design decision?


 WDYM by not allow to update?

If you modify a check item name in a state, none of the existing resources
in that state does not reflect that change.

Thanks,
Janaka


 thanks
 Eranda




 Thanks,
 Janaka


 Vendors like WSRR have the capability to maintain versions of the same
 LC, which is a good feature to have for GReg as well, where it will allows
 users to create versions of LC for those major/minor changes and it will
 avoid  those inconsistencies.




 On Sat, Feb 22, 2014 at 3:51 AM, Janaka Ranabahu jan...@wso2.comwrote:

 Hi Ajith,

 Please see my concerns inline.


 On Fri, Feb 21, 2014 at 4:33 PM, Ajith Vitharana aji...@wso2.comwrote:

 Hi Janaka,

 First ***ServiceLifeCycle is already in use and your changes may
 affect existing usage * is sufficient warning. Because we can't add
 lengthy descriptions in small UI box.
 Practically, do we change the *LC state id* having large number of
 artifacts in a production system ?.

 What happens if some user do so? This may not happen in a production
 instance. But in a developer environment this is something very likely to
 happen.


 Renaming the  existing *LC state id* is only one use case.

 yes it is only one possibility. It is the first one I tried and it
 created couple of inconsistent behaviors. Also we can not limit users to
 not to change the state id. It is one possibility that we have allowed.

 Following are are the valid points of allowing to update the existing
 LC configuration.

 1. Add new state to existing configurations.

 2. Add/update executors, validators, transition UI ..etc.

 These 2 are not likely scenarios for a already defined LC. If there is
 a requirement for a new state, that indicates that the organization process
 has changed. Then what we need is a new version of the LC and not to modify
 the current one.

 3. Add/Update the parameters.
 4 Add/update the check Items ..etc

 This will not work for the existing resources. I tried this and it was
 not reflected immediately. So that is why I raised the concern that by
 allowing this, there can be resources in the same state but with different
 check items.

 So IMO we should not allow to modify a LC if it is already in use. By
 not allowing, we can enforce the users to have a naming conversion for the
 LC, which is version aware and there is very limited opportunity for
 inconsistent behavior.

 WDYT?

 Thanks,
 Janaka


 Thanks.
 Ajith.



 On Sat, Feb 22, 2014 at 2:16 AM, Janaka Ranabahu jan...@wso2.comwrote:

 Hi,

 I have noticed that we allow users to modify a lifecycle that is
 already assigned to resources. Did we do a complete analysis of the
 situations that could come by allowing this behavior?

 I have noticed the following inconsistent behavior due to this.

 When saving the lifecycle configuration, it only gives a warning
 saying* ServiceLifeCycle is already in use and your changes may
 affect existing usage. Are you sure you want to save these Lifecycle
 changes?* There is no descriptive explanation about what is the
 impact of the change. It happens to be that, if you rename a state, and 
 if
 there were resources on that state, the lifecycle portlet disappear from
 the UI. There is no way to remove, add or do any action on the lifecycle
 for that resource and that resource is completely unusable(from LC point 
 of
 view) from that point onward.

 Also we do not update the existing resources with the change. If we
 add a new check item or change a check item of an existing state, that
 change is not reflected for the resources that are already associated 
 with
 the lifecycle. Because of that, G-Reg began to have resources with the 
 same
 lifecycle, but with different behaviors.

 Therefore, I'm wondering what is the purpose of modifying a lifecycle
 which is already in use. IMO, this had introduced a inconsistent behavior
 and had not solve anything. The real problem comes when there is a high
 number of resources that is associated with the lifecycle.

 Thanks,
 Janaka

 --
 *Janaka Ranabahu*
 Senior Software Engineer; WSO2 Inc.; http://wso2.com


 * E-mail: jan...@wso2.com http://wso2.com**M: **+94 718370861
 %2B94%20718370861*

 Lean . Enterprise . Middleware




 --
 Ajith Vitharana.
 WSO2 Inc. - http://wso2.org
 Email  :  aji...@wso2.com
 Mobile : +94772217350

Re: [Architecture] [G-Reg] What is the purpose of allowing users to modify a lifecycle that is already in use

2014-02-24 Thread Janaka Ranabahu
Hi Subash,


On Fri, Feb 21, 2014 at 5:43 PM, Subash Chaturanga sub...@wso2.com wrote:

 HI Janaka,
 In  a Prod or non Prod env ithere can be a use case that at a given point
 of time, governance master needs to refactor the LC config (some config
 change as Ajith mentioned) and reflect the changes on all associated 100s
 of services. So I believe this feature is a useful one (may be in a new
 form like refactor).

But the current behavior of G-Reg is not to update the existing artifacts.
Is that a design decision?

Thanks,
Janaka


 Vendors like WSRR have the capability to maintain versions of the same LC,
 which is a good feature to have for GReg as well, where it will allows
 users to create versions of LC for those major/minor changes and it will
 avoid  those inconsistencies.




 On Sat, Feb 22, 2014 at 3:51 AM, Janaka Ranabahu jan...@wso2.com wrote:

 Hi Ajith,

 Please see my concerns inline.


 On Fri, Feb 21, 2014 at 4:33 PM, Ajith Vitharana aji...@wso2.com wrote:

 Hi Janaka,

 First ***ServiceLifeCycle is already in use and your changes may
 affect existing usage * is sufficient warning. Because we can't add
 lengthy descriptions in small UI box.
 Practically, do we change the *LC state id* having large number of
 artifacts in a production system ?.

 What happens if some user do so? This may not happen in a production
 instance. But in a developer environment this is something very likely to
 happen.


 Renaming the  existing *LC state id* is only one use case.

 yes it is only one possibility. It is the first one I tried and it
 created couple of inconsistent behaviors. Also we can not limit users to
 not to change the state id. It is one possibility that we have allowed.

 Following are are the valid points of allowing to update the existing LC
 configuration.

 1. Add new state to existing configurations.

 2. Add/update executors, validators, transition UI ..etc.

 These 2 are not likely scenarios for a already defined LC. If there is a
 requirement for a new state, that indicates that the organization process
 has changed. Then what we need is a new version of the LC and not to modify
 the current one.

 3. Add/Update the parameters.
 4 Add/update the check Items ..etc

 This will not work for the existing resources. I tried this and it was
 not reflected immediately. So that is why I raised the concern that by
 allowing this, there can be resources in the same state but with different
 check items.

 So IMO we should not allow to modify a LC if it is already in use. By not
 allowing, we can enforce the users to have a naming conversion for the LC,
 which is version aware and there is very limited opportunity for
 inconsistent behavior.

 WDYT?

 Thanks,
 Janaka


 Thanks.
 Ajith.



 On Sat, Feb 22, 2014 at 2:16 AM, Janaka Ranabahu jan...@wso2.comwrote:

 Hi,

 I have noticed that we allow users to modify a lifecycle that is
 already assigned to resources. Did we do a complete analysis of the
 situations that could come by allowing this behavior?

 I have noticed the following inconsistent behavior due to this.

 When saving the lifecycle configuration, it only gives a warning saying*
 ServiceLifeCycle is already in use and your changes may affect existing
 usage. Are you sure you want to save these Lifecycle changes?* There
 is no descriptive explanation about what is the impact of the change. It
 happens to be that, if you rename a state, and if there were resources on
 that state, the lifecycle portlet disappear from the UI. There is no way to
 remove, add or do any action on the lifecycle for that resource and that
 resource is completely unusable(from LC point of view) from that point
 onward.

 Also we do not update the existing resources with the change. If we add
 a new check item or change a check item of an existing state, that change
 is not reflected for the resources that are already associated with the
 lifecycle. Because of that, G-Reg began to have resources with the same
 lifecycle, but with different behaviors.

 Therefore, I'm wondering what is the purpose of modifying a lifecycle
 which is already in use. IMO, this had introduced a inconsistent behavior
 and had not solve anything. The real problem comes when there is a high
 number of resources that is associated with the lifecycle.

 Thanks,
 Janaka

 --
 *Janaka Ranabahu*
 Senior Software Engineer; WSO2 Inc.; http://wso2.com


 * E-mail: jan...@wso2.com http://wso2.com**M: **+94 718370861
 %2B94%20718370861*

 Lean . Enterprise . Middleware




 --
 Ajith Vitharana.
 WSO2 Inc. - http://wso2.org
 Email  :  aji...@wso2.com
 Mobile : +94772217350




 --
 *Janaka Ranabahu*
 Senior Software Engineer; WSO2 Inc.; http://wso2.com


 * E-mail: jan...@wso2.com http://wso2.com**M: **+94 718370861
 %2B94%20718370861*

 Lean . Enterprise . Middleware




 --
 Thanks
 /subash

 *Subash Chaturanga*
 Senior Software Engineer :Integration TG; WSO2 Inc. http://wso2.com

 email: sub...@wso2.com
 blog:  http://subashsdm.blogspot.com

[Architecture] [G-Reg] What is the purpose of allowing users to modify a lifecycle that is already in use

2014-02-21 Thread Janaka Ranabahu
Hi,

I have noticed that we allow users to modify a lifecycle that is already
assigned to resources. Did we do a complete analysis of the situations that
could come by allowing this behavior?

I have noticed the following inconsistent behavior due to this.

When saving the lifecycle configuration, it only gives a warning saying*
ServiceLifeCycle is already in use and your changes may affect existing
usage. Are you sure you want to save these Lifecycle changes?* There is no
descriptive explanation about what is the impact of the change. It happens
to be that, if you rename a state, and if there were resources on that
state, the lifecycle portlet disappear from the UI. There is no way to
remove, add or do any action on the lifecycle for that resource and that
resource is completely unusable(from LC point of view) from that point
onward.

Also we do not update the existing resources with the change. If we add a
new check item or change a check item of an existing state, that change is
not reflected for the resources that are already associated with the
lifecycle. Because of that, G-Reg began to have resources with the same
lifecycle, but with different behaviors.

Therefore, I'm wondering what is the purpose of modifying a lifecycle which
is already in use. IMO, this had introduced a inconsistent behavior and had
not solve anything. The real problem comes when there is a high number of
resources that is associated with the lifecycle.

Thanks,
Janaka

-- 
*Janaka Ranabahu*
Senior Software Engineer; WSO2 Inc.; http://wso2.com


* E-mail: jan...@wso2.com http://wso2.com**M: **+94 718370861*

Lean . Enterprise . Middleware
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [AppFactory] Create AppFactory applications from already existing application binaries

2014-01-06 Thread Janaka Ranabahu
Hi Shamika,


On Mon, Jan 6, 2014 at 4:43 PM, Shamika Ariyawansa sham...@wso2.com wrote:

 Hi All,

 New feature that is going to be introduced to AppFactory is creating a new
 application by uploading exiting binary file of an application. e.g WAR

 *User Scenario*

 1. User logs on to the system, goes to the application creation page.
 2. In there user provides basic information related to the application,
 such as name, key, description then he/she would be able to create the
 application by choosing one of the following options,

  a. Create the application from the scratch by selecting the repository
 type and application type which maps with existing functionality. *OR*
  b. Create the application by uploading the binary file and selecting the
 binary file type. By doing so the application will be created as
 non build-able application.

Can we improve this so that a user can create an application pointing to a
existing source code so that AF can clone that instead of the default
template?

Thanks,
Janaka


 3. In Repos and Builds page user will be able to see the
 uploaded application and he/she will be able to do following operations
 from there,
   a. Delete the existing application.
   b. Upload new version of the same application. - Provides a way to
 upload new binary file.
   c. Test the application by deploying to Dev cloud.

 Note that for applications created like this, source repository paths,
 build options and not shown to the users.

 4. From Life Cycle Management page user will be able to Promote and Demote
 the application through different life cycles.

 *Solution*

 So far in AppFactory we maintain two logical types of application flows.
 Buildable and non-Buildable. Buildabale applications are mainly handled
 and deployed by the buildserver (Jenkins) whereas non-Buildable are
 maintained and deployed by the AppFactory itself.
 uploading existing application functionality will
 be implemented considering Non-Buildable application flow as follows.

 [image: Inline image 2]

 Further App Creation, Build and Repos and other UIs will
 be changed accordingly.


 Regards,
 --
 Shamika Ariyawansa
 Senior Software Engineer
 WSO2, Inc.; http://wso2.com

 LK -  +94 7639629 Ext 5999
 US - +1 408 754 7388 Ext 51732
 Mob:+ 94 772929486

 *twitter: 
 **https://twitter.com/Amila_Shamika*https://twitter.com/Amila_Shamika
 * linked-in: *http://www.linkedin.com/pub/dir/Shamika/Ariyawansa

 *Lean . Enterprise . Middleware*

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




-- 
*Janaka Ranabahu*
Senior Software Engineer; WSO2 Inc.; http://wso2.com


* E-mail: jan...@wso2.com http://wso2.com**M: **+94 718370861*

Lean . Enterprise . Middleware
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [AppFactory] Create AppFactory applications from already existing application binaries

2014-01-06 Thread Janaka Ranabahu
Hi Manjula,


On Tue, Jan 7, 2014 at 11:05 AM, Manjula Rathnayake manju...@wso2.comwrote:

 Hi Janaka,


 On Tue, Jan 7, 2014 at 10:41 AM, Janaka Ranabahu jan...@wso2.com wrote:

 Hi Manjula,

 While I completely agree that this feature is something different from
 what I've stated, I'm trying to understand the usability of this feature.
 From what I've gathered so far from this discussion is that, we do not
 allow code modifications, versions and build for these kinds of
 applications. So basically this feature is only there to deploy, test and
 govern a pre-built artifact. But then, we loose many powerful development
 features that are provided by AppFactory.

 With this feature, the source code management, versioning and build(which
 are three important features of AF) is happening out of AppFactory and they
 have to manage them separately. But instead, what we need to do is to
 promote AppFactory for developers so that developers would be attracted to
 it. IMO, having a feature to create applications from an existing repo is
 more important in that context.

 I understand your point, but uploading a war file(or any deployable
 artifact) is the feature we implement here. There might be situations where
 users do not need to share their source code into our source repository.
 They just need to maintain binary artifacts within appfactory. But the
 feature you mentioned is a valid feature we can provide and can be
 implemented separately.


Understood.

I have few more points to clarify.

Now when a user creates such application project do we allow him to upload
the same binary to the same version of that application. Say that the user
found a bug in the uploaded application. What is the procedure of fixing
the bug and testing it using AF. Does he need to create a new version to
upload the new artifact or can he simply replace the existing artifact in
current version?

How can this help to enforce the governance best practices of an
application? Eg:- when an application version in promoted to the production
environment, how do we guarantee that there will be no commits and builds
on that version? Even though that we can stop deployment from AF side,
there is no guarantee that the original source is in the same state.

Do we rename the binary to AppFactory default format when creating these
types of applications? Otherwise default applications in AF will have one
format(applicaiton_key-version) where this would have something else. Also
If not, how does features like log download(which needs to find the
application name to download logs) will work?

Do we allow developers to be invited into these types of applications? If
so what are the functionality available to them? Is it only deployment and
developer testing or do we allow a developer to upload a new binary/new
version of the artifact?

Thanks,
Janaka


 thank you.


 WDYT?

 On Mon, Jan 6, 2014 at 7:24 PM, Manjula Rathnayake manju...@wso2.comwrote:

 Hi all,


 On Mon, Jan 6, 2014 at 6:48 PM, Ashansa Perera asha...@wso2.com wrote:

 As I feel creating an application pointing to an existing code base is
 different than allowing to upload an artifact and create an application,
 since this will not include any source code management. So we should
 consider those as two different use cases.
 IMO we can relate the use case that Janaka has mentioned to our main
 flow of application creation where we can provide the option of
- creating an application pointing to an existing source code ( so
 AF can clone that and create application)
- creating an application with default template

 +1, this feature is about uploading a war file and no source code is
 involved.


 Also, is this only about war files or do we support all the applications
 types of AF and are we going to support other app types like aar and car?

 Thanks,
 Janaka

 thank you.



 On Mon, Jan 6, 2014 at 5:45 PM, Harsha Thirimanna hars...@wso2.comwrote:

 Hi Janaka,

 +1 for that.

 There will some work to do this. Because

 1. we should process the pom file of that external repository and
 change artifactId, groupId to our one.
 2. we have to have credentials to access external repository.

  thanks



 *Harsha Thirimanna*

 Senior Software Engineer; WSO2, Inc.; http://wso2.com
 * http://www.apache.org/*
 * email: **hars...@wso2.com* az...@wso2.com* cell: +94 71 5186770*
 * twitter: **http://twitter.com/ http://twitter.com/afkham_azeez*
 *harshathirimann linked-in: **http:
 http://lk.linkedin.com/in/afkhamazeez**//www.linkedin.com/pub/harsha-thirimanna/10/ab8/122
 http://www.linkedin.com/pub/harsha-thirimanna/10/ab8/122*

  *Lean . Enterprise . Middleware*



 On Mon, Jan 6, 2014 at 5:28 PM, Janaka Ranabahu jan...@wso2.comwrote:

 Hi Shamika,


 On Mon, Jan 6, 2014 at 4:43 PM, Shamika Ariyawansa 
 sham...@wso2.comwrote:

 Hi All,

 New feature that is going to be introduced to AppFactory is creating
 a new application by uploading exiting binary file of an application. 
 e.g
 WAR

Re: [Architecture] [AppFactory] Create AppFactory applications from already existing application binaries

2014-01-06 Thread Janaka Ranabahu
Hi Manjula,

Thanks for the clarifications. Seems good.

Thanks,
Janaka


On Tue, Jan 7, 2014 at 11:54 AM, Manjula Rathnayake manju...@wso2.comwrote:

 Hi Janaka,


 On Tue, Jan 7, 2014 at 11:33 AM, Janaka Ranabahu jan...@wso2.com wrote:

 Hi Manjula,


 On Tue, Jan 7, 2014 at 11:05 AM, Manjula Rathnayake manju...@wso2.comwrote:

 Hi Janaka,


 On Tue, Jan 7, 2014 at 10:41 AM, Janaka Ranabahu jan...@wso2.comwrote:

 Hi Manjula,

 While I completely agree that this feature is something different from
 what I've stated, I'm trying to understand the usability of this feature.
 From what I've gathered so far from this discussion is that, we do not
 allow code modifications, versions and build for these kinds of
 applications. So basically this feature is only there to deploy, test and
 govern a pre-built artifact. But then, we loose many powerful development
 features that are provided by AppFactory.

 With this feature, the source code management, versioning and
 build(which are three important features of AF) is happening out of
 AppFactory and they have to manage them separately. But instead, what we
 need to do is to promote AppFactory for developers so that developers would
 be attracted to it. IMO, having a feature to create applications from an
 existing repo is more important in that context.

 I understand your point, but uploading a war file(or any deployable
 artifact) is the feature we implement here. There might be situations where
 users do not need to share their source code into our source repository.
 They just need to maintain binary artifacts within appfactory. But the
 feature you mentioned is a valid feature we can provide and can be
 implemented separately.


 Understood.

 I have few more points to clarify.

 Now when a user creates such application project do we allow him to
 upload the same binary to the same version of that application. Say that
 the user found a bug in the uploaded application. What is the procedure of
 fixing the bug and testing it using AF. Does he need to create a new
 version to upload the new artifact or can he simply replace the existing
 artifact in current version?

 If it is development stage, it can be replaced with new binary file. But
 if it is in other stages, it has to follow application life cycle. They can
 use issue tracker to report bugs and demote on testing stage or even in
 production stage. As per the diagram, initial development stage artifacts
 are stored in gitblit.


 How can this help to enforce the governance best practices of an
 application? Eg:- when an application version in promoted to the production
 environment, how do we guarantee that there will be no commits and builds
 on that version? Even though that we can stop deployment from AF side,
 there is no guarantee that the original source is in the same state.

 Yes, If someone manage their source code outside of AF, we can not do
 anything on that. But still they can use application life cycle flow, issue
 tracking, user management, log viewers like features.


 Do we rename the binary to AppFactory default format when creating these
 types of applications? Otherwise default applications in AF will have one
 format(applicaiton_key-version) where this would have something else. Also
 If not, how does features like log download(which needs to find the
 application name to download logs) will work?

 This is a limitation in appfactory. However we have decided to enforce
 this as artifact name matters in many places of appfactory(security, logs,
 deployment,etc). So we have to rename the binary.


 Do we allow developers to be invited into these types of applications? If
 so what are the functionality available to them? Is it only deployment and
 developer testing or do we allow a developer to upload a new binary/new
 version of the artifact?

 Application upload is done by app owners but we can allow developers as
 well in any case if appfactory users need to do so, as it is configurable.

 This is a feature to bring current existing applications into AppFactory
 and manage application life cycle. When they need to bring the source code,
 AF can provide a link to add source. In that case, we can commit the
 initial code and change the application type to default source code based
 application types. As you mentioned, some part of governance story is
 missing due to the fact that source code control is not done via AppFactory.

 thank you.


 Thanks,
 Janaka


 thank you.


 WDYT?

 On Mon, Jan 6, 2014 at 7:24 PM, Manjula Rathnayake 
 manju...@wso2.comwrote:

 Hi all,


 On Mon, Jan 6, 2014 at 6:48 PM, Ashansa Perera asha...@wso2.comwrote:

 As I feel creating an application pointing to an existing code base
 is different than allowing to upload an artifact and create an 
 application,
 since this will not include any source code management. So we should
 consider those as two different use cases.
 IMO we can relate the use case that Janaka has mentioned to our main
 flow

Re: [Architecture] Resilient application creation process

2014-01-05 Thread Janaka Ranabahu
Hi Manjula,


On Mon, Jan 6, 2014 at 10:24 AM, Manjula Rathnayake manju...@wso2.comwrote:

 Hi all,

 Another option is to retry to create the application even after failed.
 There we create the application again and again until it get created. If it
 fails, users should be able to role back. In this process, for example, if
 application rxt adding process succeeds but creating git repo fails, we
 should be able to create git repo and continue without trying to add the
 rxt.

If I understood you correctly, then what we need to do is to retry the
failed process/action a number of times. But that can not guarantee whether
the app creation would complete successfully. Say that the git repo
creation(or any other task) failed due to a network error or some other
serious issue. Then retrying will not solve the issue. IMO, what we need in
the first place is the rollback functionality and as an improvement we can
do the retry logic.

WDYT?

Thanks,
Janaka


 thank you.


 On Mon, Jan 6, 2014 at 10:06 AM, Ashansa Perera asha...@wso2.com wrote:

 Hi all,

 To make the application creation process resilient we discussed to
 implement a rollback mechanism so that if any resource/infrastructure
 creation failed while creating the application we can rollback the app
 creation. With this we would be able to reuse the same application key and
 utilize the resources.
 Another suggestion was to ping the external servers before starting
 application creation process, but since pinging servers cannot guarantee 
 anything
 as server can fail in between, we will be going ahead with the rollback
 application creation.

 --
 Thanks  Regards,

 Ashansa Perera
 Software Engineer
 WSO2, Inc

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




 --
 Manjula Rathnayaka
 Software Engineer
 WSO2, Inc.
 Mobile:+94 77 743 1987

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




-- 
*Janaka Ranabahu*
Senior Software Engineer; WSO2 Inc.; http://wso2.com


* E-mail: jan...@wso2.com http://wso2.com**M: **+94 718370861*

Lean . Enterprise . Middleware
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [App Factory] Per Developer Repos

2014-01-05 Thread Janaka Ranabahu
 *Manisha Eleperuma*
 Software Engineer
 WSO2, Inc.: http://wso2.com
 lean.enterprise.middleware

 *blog:  http://manisha-eleperuma.blogspot.com/
 http://manisha-eleperuma.blogspot.com/*
 *mobile:  +94 71 8279777 %2B94%2071%208279777*

   --
 You received this message because you are subscribed to the Google
 Groups WSO2 Engineering Group group.
 To unsubscribe from this group and stop receiving emails from it, send
 an email to engineering-group+unsubscr...@wso2.com.
 For more options, visit
 https://groups.google.com/a/wso2.com/groups/opt_out.



 --
 S.Uthaiyashankar
 VP Engineering
 WSO2 Inc.
 http://wso2.com/ - lean . enterprise . middleware

 Phone: +94 714897591

  --
 You received this message because you are subscribed to the Google
 Groups WSO2 Engineering Group group.
 To unsubscribe from this group and stop receiving emails from it, send
 an email to engineering-group+unsubscr...@wso2.com.
 For more options, visit
 https://groups.google.com/a/wso2.com/groups/opt_out.




 --
 Shiroshica Kulatilake

 Architect,
 WSO2, Inc. http://wso2.com/
 Phone: +94 776523867




 --
 Dimuthu Leelarathne
 Architect  Product Lead of App Factory

 WSO2, Inc. (http://wso2.com)
 email: dimut...@wso2.com
 Mobile : 0773661935

 Lean . Enterprise . Middleware




 --
 ~Regards
 *Manisha Eleperuma*
 Software Engineer
 WSO2, Inc.: http://wso2.com
 lean.enterprise.middleware

 *blog:  http://manisha-eleperuma.blogspot.com/
 http://manisha-eleperuma.blogspot.com/*
 *mobile:  +94 71 8279777 %2B94%2071%208279777*


 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




-- 
*Janaka Ranabahu*
Senior Software Engineer; WSO2 Inc.; http://wso2.com


* E-mail: jan...@wso2.com http://wso2.com**M: **+94 718370861*

Lean . Enterprise . Middleware
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Fwd: [AppFactory] We should have a XSD to the appfactory configuration file.

2013-12-16 Thread Janaka Ranabahu
Hi Harsha,

I would not like to take this as an immediate action item that we must do.
IMO, we should give more priority to cleaning up the Appfactory.xml and
making it simpler and cleaner as possible. That is when we can focus on the
XSD to validate the config.

WDYT?

Thanks,
Janaka


On Mon, Dec 16, 2013 at 7:30 AM, Harsha Thirimanna hars...@wso2.com wrote:

 Hi Eranda,

 We were rapidly changing with this config things. So we didn't care about
 that previously. But now it is stable and should be validate using XSD with
 jaxb.

 Thanks
 On Dec 16, 2013 12:24 AM, Eranda Sooriyabandara era...@wso2.com wrote:

 How are you validating the app-factory configuration now? What is the end
 result of misconfiguration?

 thanks
 Eranda


 On Fri, Dec 6, 2013 at 8:40 AM, Harsha Thirimanna hars...@wso2.comwrote:

 -- Forwarded message --
 From: Harsha Thirimanna hars...@wso2.com
 Date: Dec 6, 2013 12:23 AM
 Subject: Fwd: [AppFactory] We should have a XSD to the appfactory
 configuration file.
 To: Dimuthu Leelarathne dimut...@wso2.com, Janaka Ranabahu 
 jan...@wso2.com, Ramith Jayasinghe ram...@wso2.com, Ajanthan
 Balachandran ajant...@wso2.com, Ranga Siriwardena ra...@wso2.com,
 Danushka Fernando danush...@wso2.com
 Cc:



 *Harsha Thirimanna*
 Senior Software Engineer; WSO2, Inc.; http://wso2.com
 * http://www.apache.org/*
 * email: **hars...@wso2.com* az...@wso2.com* cell: +94 71 5186770*
 * twitter: **http://twitter.com/ http://twitter.com/afkham_azeez*
 *harshathirimann linked-in: **http:
 http://lk.linkedin.com/in/afkhamazeez**//www.linkedin.com/pub/harsha-thirimanna/10/ab8/122
 http://www.linkedin.com/pub/harsha-thirimanna/10/ab8/122*

  *Lean . Enterprise . Middleware*



 -- Forwarded message --
 From: Harsha Thirimanna hars...@wso2.com
 Date: Thu, Dec 5, 2013 at 11:12 PM
 Subject: [AppFactory] We should have a XSD to the appfactory
 configuration file.
 To: strategy-group strategy-gr...@wso2.com



 $subject.

 WDYT ?

 *Harsha Thirimanna*
 Senior Software Engineer; WSO2, Inc.; http://wso2.com
 * http://www.apache.org/*
 * email: **hars...@wso2.com* az...@wso2.com* cell: +94 71 5186770*
 * twitter: **http://twitter.com/ http://twitter.com/afkham_azeez*
 *harshathirimann linked-in: **http:
 http://lk.linkedin.com/in/afkhamazeez**//www.linkedin.com/pub/harsha-thirimanna/10/ab8/122
 http://www.linkedin.com/pub/harsha-thirimanna/10/ab8/122*

  *Lean . Enterprise . Middleware*



 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




 --

 *Eranda Sooriyabandara*Senior Software Engineer;
 Integration Technologies Team;
 WSO2 Inc.; http://wso2.com
 Lean . Enterprise . Middleware

 E-mail: eranda AT wso2.com
 Mobile: +94 716 472 816
 Linked-In: http://www.linkedin.com/in/erandasooriyabandara
 Blog: http://emsooriyabandara.blogspot.com/





 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




-- 
*Janaka Ranabahu*
Senior Software Engineer; WSO2 Inc.; http://wso2.com


* E-mail: jan...@wso2.com http://wso2.com**M: **+94 718370861*

Lean . Enterprise . Middleware
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [Appfactory] Tenant Isolation in Jenkins

2013-07-28 Thread Janaka Ranabahu
Hi Shamika,


On Wed, Jul 24, 2013 at 5:20 PM, Ajanthan Balachandran ajant...@wso2.comwrote:




 On Wed, Jul 24, 2013 at 4:34 PM, Shamika Ariyawansa sham...@wso2.comwrote:

 HI,

 As we discussed so fa,r we tried/trying following approaches for the
 $subject.

 1. Deploying Jenkins web app in AS per tenant. - Solution was not
 scalable due to the size of the Jenkins Web-app (61MB - without plugins)
 and its not practicable to deploy this as the tenant count gets increased.

 If the content of the war duplicated for tenants you can put the common
 libs into $CARBON_HOME/repository/components/lib(in parent classloader) and
 make minimal war file that contains tenant specific stuffs.

How will this handle the load of a build job? Say that each of these
Jenkins server instances can run a number of build jobs(more than 1 build
per tenant). How can we handle the concurrent build load?


 2. Use one Jenkins server and make it possible to make it multi-tenant
 by introducing a role-based plugin (an extension to Role-Strategy Plugin).

 Here all the tenants related jobs are stored in one space
 (no operation between tenant) and the multi-tenancy is achieved by having a
 filtering mechanism based on the logged users tenant. Problem here is
 everything will be done in one workspace so it will be difficult to manage
 when the the tenant count gets increased with the job count.

 Jenkins has lots of extension points. Can we have a concept of
folders/collections in Jenkins jobs? If so we can group jobs by tenant.
This could be done as a part of the Role-Strategy plugin.


 3. Patch the Jenkins to set the JENKINS_HOME directory on the fly so
 that separate HOME directory will be used for the different tenants.

 By looking at the Jenkins code we found that the Jenkins Home is set to a
 singleton class (jenkins.model.Jenkins) and the whole system uses that
 class to obtain JENKINS HOME. As a solution we can update this class to
 return JENKINS_HOME based on logged users tenant.

 Main risk for this is that in the  in above class has a public variable
 to store the JENKINS_HOME (variable - root). Also there is also an
 encapsulated method to get this too.( getRootDir() ). We are not sure the
 how the other plugins have referred this. I am trying to do an hard-coded
 test whether this works or not?

 This will not work unless you reload all the configurations from disk
 after returning the JENKINS_HOME.In jenkins on start up all the config
 files are loaded from disk(job configs also).We change JENKINS_HOME at the
 middle  but still in the memory there are configs(job configs) from
 previous JENKINS_HOME.

We should be able to work with an existing Jenkins deployment without doing
any modifications to the code. If this can be done through a plugin, then I
guess it is fine. Otherwise I'm -1 for this.

Thanks,
Janaka


 WDYT?

 --
 Shamika Ariyawansa
 Senior Software Engineer

 Mob:+ 94 772929486




 --
 ajanthan
 --
 Ajanthan Balachandiran
 Senior Software Engineer;
 Solutions Technologies Team ;WSO2, Inc.;  http://wso2.com/

 email: ajanthan http://goog_595075977@wso2.com; cell: +94775581497
 blog: http://bkayts.blogspot.com/

 Lean . Enterprise . Middleware

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




-- 
*Janaka Ranabahu*
Senior Software Engineer; WSO2 Inc.; http://wso2.com*

E-mail: jan...@wso2.com
**M: **+94 718370861**

*Lean . Enterprise . Middleware
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [Appfactory] Tenant Isolation in Jenkins

2013-07-28 Thread Janaka Ranabahu
Hi,


On Mon, Jul 29, 2013 at 10:53 AM, Harsha Thirimanna hars...@wso2.comwrote:




 *Harsha Thirimanna*
 Senior Software Engineer; WSO2, Inc.; http://wso2.com
 * http://www.apache.org/**
 email: **hars...@wso2.com* az...@wso2.com* cell: +94 71 5186770**
 twitter: **http://twitter.com/ http://twitter.com/afkham_azeez**
 harshathirimann
 linked-in: **http: http://lk.linkedin.com/in/afkhamazeez**//
 www.linkedin.com/pub/harsha-thirimanna/10/ab8/122*
 *
 *
 *Lean . Enterprise . Middleware*
 *
 *


 On Mon, Jul 29, 2013 at 1:07 AM, Janaka Ranabahu jan...@wso2.com wrote:

 Hi Shamika,


 On Wed, Jul 24, 2013 at 5:20 PM, Ajanthan Balachandran ajant...@wso2.com
  wrote:




 On Wed, Jul 24, 2013 at 4:34 PM, Shamika Ariyawansa sham...@wso2.comwrote:

 HI,

 As we discussed so fa,r we tried/trying following approaches for the
 $subject.

 1. Deploying Jenkins web app in AS per tenant. - Solution was not
 scalable due to the size of the Jenkins Web-app (61MB - without plugins)
 and its not practicable to deploy this as the tenant count gets increased.

 If the content of the war duplicated for tenants you can put the common
 libs into $CARBON_HOME/repository/components/lib(in parent classloader) and
 make minimal war file that contains tenant specific stuffs.

 How will this handle the load of a build job? Say that each of these
 Jenkins server instances can run a number of build jobs(more than 1 build
 per tenant). How can we handle the concurrent build load?


 As ajanthan said , if we can deploy jenkins instance for every tenant
  then we can maintain multiple slave node to every master node to handle
 the load. This point was mentioned that with previous email thread by
 ajanthan.

Does this means that we have multiple slave nodes that is been used by
every master(of each tenant)? Or do we spawn a number of slaves for every
tenant? Ideally what we need to do is to spawn a Jenkins slave on demand.

Thanks,
Janaka


 Subject : [Architecture] [Appfactory] Tenant Isolation for Jenkins.


 2. Use one Jenkins server and make it possible to make it multi-tenant
 by introducing a role-based plugin (an extension to Role-Strategy Plugin).

 Here all the tenants related jobs are stored in one space
 (no operation between tenant) and the multi-tenancy is achieved by having a
 filtering mechanism based on the logged users tenant. Problem here is
 everything will be done in one workspace so it will be difficult to manage
 when the the tenant count gets increased with the job count.

 Jenkins has lots of extension points. Can we have a concept of
 folders/collections in Jenkins jobs? If so we can group jobs by tenant.
 This could be done as a part of the Role-Strategy plugin.


 3. Patch the Jenkins to set the JENKINS_HOME directory on the fly so
 that separate HOME directory will be used for the different tenants.

 By looking at the Jenkins code we found that the Jenkins Home is set to
 a singleton class (jenkins.model.Jenkins) and the whole system uses that
 class to obtain JENKINS HOME. As a solution we can update this class to
 return JENKINS_HOME based on logged users tenant.

 Main risk for this is that in the  in above class has a public variable
 to store the JENKINS_HOME (variable - root). Also there is also an
 encapsulated method to get this too.( getRootDir() ). We are not sure the
 how the other plugins have referred this. I am trying to do an hard-coded
 test whether this works or not?

 This will not work unless you reload all the configurations from disk
 after returning the JENKINS_HOME.In jenkins on start up all the config
 files are loaded from disk(job configs also).We change JENKINS_HOME at the
 middle  but still in the memory there are configs(job configs) from
 previous JENKINS_HOME.

 We should be able to work with an existing Jenkins deployment without
 doing any modifications to the code. If this can be done through a plugin,
 then I guess it is fine. Otherwise I'm -1 for this.

 Thanks,
 Janaka


 WDYT?

 --
 Shamika Ariyawansa
 Senior Software Engineer

 Mob:+ 94 772929486




 --
 ajanthan
 --
 Ajanthan Balachandiran
 Senior Software Engineer;
 Solutions Technologies Team ;WSO2, Inc.;  http://wso2.com/

 email: ajanthan http://goog_595075977@wso2.com; cell: +94775581497
 blog: http://bkayts.blogspot.com/

 Lean . Enterprise . Middleware

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




 --
 *Janaka Ranabahu*
 Senior Software Engineer; WSO2 Inc.; http://wso2.com*

 E-mail: jan...@wso2.com
 **M: **+94 718370861*
 *

 *Lean . Enterprise . Middleware


 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture



 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




-- 
*Janaka

Re: [Architecture] G-Reg Lifecycle, BPEL Integration

2013-05-31 Thread Janaka Ranabahu
Hi Pulasthi, Senaka,

Why are we saying BPEL Integration? BPEL process is also exposed as a
service. So shouldn't this be generic to any service call? From what I see,
what you should have is a executor that can do a web service call. The
parameters of the service call can be taken from either a G-Reg resource or
from the LC configuration or can be passed from the UI it self. I don't see
a point in limiting that to only BPEL.

Please correct me if I'm wrong.

Thanks,
Janaka


On Fri, May 31, 2013 at 4:16 PM, Eranda Sooriyabandara era...@wso2.comwrote:

 Hi Pulasthi,

 Please find the comments inline.

 On Fri, May 31, 2013 at 10:00 AM, Pulasthi Supun pulas...@wso2.comwrote:

 Hi All

 I am working on the $subject. The aim of this feature is make it possible
 to invoke BPEL processes during Lifecycle state transition in G-Reg for
 example with this feature it will be possible to call an BPEL process when
 a Promote is done.

 This is achieved via a transitions executor and the BPEL process will be
 invoked through an web web-service call. following is an sample Lifecycle
 configuration

 data name=transitionExecution
  execution forEvent=Promote

 class=org.wso2.carbon.governance.registry.extensions.executors.BpelExecutor
  parameter name=bpel.epr
 value=
 http://10.200.3.107:9763/services/AdderProcess.AdderProcesshttpAdderProcessBindingEndpoint/;
 /
  parameter name=bpel.payload
 p:AdderProcessRequest xmlns:p=http://wso2.org/bps/sample;
  x xmlns=http://wso2.org/bps/sample
 /_system/governance/{@resourcePath}/{@xvalue}/x
  y xmlns=http://wso2.org/bps/sample
 /_system/governance/{@resourcePath}/{@yvalue}/y
  /p:AdderProcessRequest
 /parameter
 /execution
 /data



 +1 for this approach.




 The transition execution needs to be provided with the following details


- End Point Reference of the BPEL

 The End point can either be given directly or trough an
 property or artifact attribute
Ex. parameter name=bpel.epr
 value=/_system/governance/{@resourcePath}/{@epr}/

- The Payload that needed to invoke the BPEL process.

   The values of the payload can be--
 Nuwan Dias

 Member, Management Committee - Solutions Technology Group
 Senior Software Engineer - WSO2, Inc. http://wso2.com
 email : nuw...@wso2.com
 Phone : +94 777 775 729 defined either directly or trough an property or
 artifact attribute
  Ex.
 data name=transitionExecution
 execution forEvent=Promote

 class=org.wso2.carbon.governance.registry.extensions.executors.BpelExecutor
  parameter name=bpel.epr
 value=/_system/governance/{@resourcePath}/{@epr}/
  parameter name=bpel.payload
 p:AdderProcessRequest xmlns:p=http://wso2.org/bps/sample;
  x xmlns=http://wso2.org/bps/sample
 /_system/governance/{@resourcePath}/{@xvalue}/x
  y xmlns=http://wso2.org/bps/sample;6/y
  /p:AdderProcessRequest
 /parameter
 /execution
 /data

- Optional - Define whether the BPEL process to be called in
an synchronous or asynchronous manner by default synchronous approach is
used

In the asynchronous mode no response will be saved

- Optional - Define the location to store the response
- Optional - Define whether the response should be saved as an
property or artifact attribute
- Optional - Define the name of the property or attribute to store
the response


 What you mean by a response of a business process? Can you please give an
 example use case for a process sending a response.

 Also if we can go further, we may able to show the current Activity name
 executing in the process. When we fully support business process
 visualization in G-Reg we may able to use that information for visualizing
 the current state of the process instance in G-Reg.





 Any feedback and comments are welcome


 thanks
 Eranda

 --
 *Eranda Sooriyabandara
 *Software Engineer;
 Integration Technologies Team;
 WSO2 Inc.; http://wso2.com
  Lean . Enterprise . Middleware

 E-mail: eranda AT wso2.com
 Mobile: +94 716 472 816
 Linked-In: http://www.linkedin.com/in/erandasooriyabandara
 Blog: http://emsooriyabandara.blogspot.com/



 *
 *

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




-- 
*Janaka Ranabahu*
Member - Solutions Management Committee;
Senior Software Engineer; WSO2 Inc.; http://wso2.com*

E-mail: jan...@wso2.com
**M: **+94 718370861**

*Lean . Enterprise . Middleware
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture