Hi Gimantha, I used dummy attribute to find it's aggregate value and get distinct values. And it worked for my case.
Another thing Gimantha, It seems /analytics/aggregates API doesn't support pagination. in earlier /analytics/search API we had "start" and "count" attribute to support pagination. Does this features will support in the future? Thanks and Regards. On Tue, Sep 29, 2015 at 4:11 AM, Gimantha Bandara <[email protected]> wrote: > @Rukshan, I think you have to call group by on "api" field also, otherwise > you will loose some api values. As per the current implementation, we group > by the given field and aggregate numeric values. So for the current API to > work properly there should be some numeric values to process. you can use a > dummy field for that and see if it works, but it is unnecessary processing > and useless. > @Anjana In our current implementation, we don't provide a way to group the > records unless we are going to use aggregate functions, but actually one > might want to group by a field without using aggregate functions. We can > change the the API logic so that if the user has not provided the aggregate > function, we will simply group the records by the given field and return a > set of records with the grouped values. WDYT? > > On Mon, Sep 28, 2015 at 3:42 AM, Rukshan Premathunga <[email protected]> > wrote: > >> Hi Gimantha, >> >> i could group by multiple attribute as you explained and it working well. >> >> Other thing is we need group by query to find the distinct attribute of >> the result set. >> >> sql ex: >> select api from myTable group by user. >> >> Here api is not a int value and it is string. So does group by should >> support arithmetic operations at all? >> >> can we have a query to select distinct api group by user? >> >> Thanks and Regards. >> >> >> On Mon, Sep 28, 2015 at 9:00 AM, Gimantha Bandara <[email protected]> >> wrote: >> >>> Hi Rukshan, >>> >>> Can you please explain how the user and the time can be related with the >>> sum of requestCounts? >>> >>> If you want to group by multiple field you can use multi element facet >>> field (In your case your "groupByField" field will have values in the >>> format [<API_NAME>, <API_VERSION>] and set aggregateLevel as 1. By setting >>> aggregateLevel as 1, the records will be grouped at the 2nd element's >>> position (0th based index and 2nd element is api_version, if you set >>> aggregateLevel to 0 then the records will be grouped at api_name's position >>> only. They will not be grouped by api_version) of the facet field. >>> >>> On Fri, Sep 25, 2015 at 12:19 AM, Rukshan Premathunga <[email protected]> >>> wrote: >>> >>>> Hi all, >>>> >>>> With the new changes it is possible to do Aggregate function by >>>> grouping according to this document[1]. >>>> >>>> It was worked well with the given scenarios. But we are facing new >>>> issues with above API because we cannot do aggregate functions, grouping by >>>> multiple Attribute. The next issue is that we cannot define other extra >>>> attribute value we need with Aggregate values. >>>> >>>> Let's consider this example, >>>> >>>> say we have SQL statement like this, >>>> >>>> Select api,Sum(requestCount) from MyTable group by api. >>>> >>>> So the equivalent REST API request is, >>>> >>>> { >>>> "tableName":"MyTable", >>>> "groupByField":"api", >>>> "aggregateFields":[ >>>> { >>>> "fieldName":"requestCount", >>>> "aggregate":"SUM", >>>> "alias":"sum_req" >>>> } >>>> ] >>>> } >>>> >>>> Next consider this SQL query. >>>> >>>> Select api,version,time,user,Sum(requestCount) from MyTable group by >>>> api,version >>>> >>>> Here we need extract attributes time and user. And we group by both api >>>> and version attributes. >>>> But the issue is we cannot request extra attribute time and user with >>>> aggregated value. And not possible to group by multiple attributes. >>>> >>>> I tried with "groupByField":"api,version" but did not work. >>>> >>>> So can you have a looking to the above issue and provide some >>>> suggestions? >>>> >>>> >>>> [1] >>>> https://docs.wso2.com/display/DAS300/Retrieving+Aggregated+Values+of+Given+Records+via+REST+API >>>> >>>> Thanks and Regards. >>>> >>>> On Wed, Aug 5, 2015 at 12:51 PM, Anjana Fernando <[email protected]> >>>> wrote: >>>> >>>>> Hi Rukshan, >>>>> >>>>> Let's have a F2F chat on this and decide what we can do. We need to >>>>> start from the requirements and go from there. >>>>> >>>>> Cheers, >>>>> Anjana. >>>>> >>>>> On Tue, Aug 4, 2015 at 10:21 PM, Rukshan Premathunga <[email protected] >>>>> > wrote: >>>>> >>>>>> Hi all, >>>>>> >>>>>> We are currently working on showing APIM stat data on dashboard, >>>>>> taking summarised data directly from DAS using its REST API. In that >>>>>> case, >>>>>> we are not depend on any other RDBMS to analyse our data. APIM send event >>>>>> stream to DAS and sparkSQL script hosted on DAS run periodically to >>>>>> generate Summarised data.We use DAS REST API to fetch these summarised >>>>>> data >>>>>> to APIM dashboard. >>>>>> >>>>>> But we are facing some difficulties in Memory and Processing >>>>>> performance, >>>>>> >>>>>> - APIM need to do some analytics on Summarised data. But DAS REST >>>>>> API is not capable to do such analytics. >>>>>> - To analyse data, all the records has to fetch from DAS to APIM. >>>>>> - But it could be a network waste and memory overflow. >>>>>> - APIM need extra processing time to analyse data and display on >>>>>> dashboard. >>>>>> >>>>>> Because of the above issues we cannot take the full advantage of the >>>>>> DAS using its REST API. So that we are looking a mechanism to use DAS >>>>>> REST >>>>>> API effectively, such that doing some Analytics on DAS table data using >>>>>> REST API. >>>>>> >>>>>> Can you please suggest a solution or improvement to this scenario? >>>>>> >>>>>> Thanks and Regards. >>>>>> >>>>>> >>>>>> >>>>>> On Wed, Jul 29, 2015 at 1:34 PM, Rukshan Premathunga < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> Hi sll, >>>>>>> >>>>>>> @Gimantha Can you please provide an example or docs for calculate >>>>>>> sum by groups using facet. >>>>>>> >>>>>>> >>>>>>> Thanks and Regards. >>>>>>> >>>>>>> On Tue, Jul 28, 2015 at 4:52 PM, Rukshan Premathunga < >>>>>>> [email protected]> wrote: >>>>>>> >>>>>>>> Hi Joseph, >>>>>>>> >>>>>>>> >>>>>>>> - In APIM store we need 4 types of statistical data. those are, >>>>>>>> - api usage per application >>>>>>>> - top users for application >>>>>>>> - API Usage from Resource Path >>>>>>>> - Faulty Invocations per Application >>>>>>>> >>>>>>>> each of the above scenarios stats are fetched using this query *SELECT >>>>>>>> * FROM `API_REQUEST_SUMMARY` WHERE time BETWEEN "fromDate" AND >>>>>>>> "toDate";* >>>>>>>> >>>>>>>> Using DAS REST api we can fulfill this requirement. >>>>>>>> >>>>>>>> >>>>>>>> - APIM publisher there are 7 scenarios. 4 of them are similar >>>>>>>> to the above query and it is possible with the existing REST API. >>>>>>>> But below >>>>>>>> queries are not simple as above, >>>>>>>> - api usage - *SELECT API, API_VERSION, VERSION, >>>>>>>> APIPUBLISHER, USERID, SUM(TOTAL_REQUEST_COUNT) AS >>>>>>>> TOTAL_REQUEST_COUNT, >>>>>>>> CONTEXT FROM `API_REQUEST_SUMMARY` WHERE time BETWEEN "fromDate" >>>>>>>> AND >>>>>>>> "toDate" GROUP BY API, API_VERSION, USERID, VERSION, >>>>>>>> APIPUBLISHER, CONTEXT >>>>>>>> ORDER BY TOTAL_REQUEST_COUNT DESC;* >>>>>>>> - API Usage by Destination* :- SELECT >>>>>>>> >>>>>>>> api,version,apiPublisher,context,destination,SUM(total_request_count) >>>>>>>> as >>>>>>>> total_request_count FROM `columnFamily` WHERE time BETWEEN >>>>>>>> "fromDate" AND >>>>>>>> "toDate" GROUP BY api,version,apiPublisher,context,destination;* >>>>>>>> - Faulty Invocations:-* SELECT >>>>>>>> api,version,apiPublisher,context,SUM(total_fault_count) as >>>>>>>> total_fault_count FROM `columnFamily` WHERE time BETWEEN >>>>>>>> "fromDate" AND >>>>>>>> "toDate" GROUP BY api,version,apiPublisher,context;* >>>>>>>> >>>>>>>> >>>>>>>> - Above are the Queries currently using. Queries may get >>>>>>>> optimised in future and new stats are yet to added. >>>>>>>> >>>>>>>> >>>>>>>> Thanks and Regards. >>>>>>>> >>>>>>>> >>>>>>>> On Tue, Jul 28, 2015 at 3:34 PM, Joseph Fonseka <[email protected]> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Hi Rukshan >>>>>>>>> >>>>>>>>> Shall we create a list of scenarios of APIM statistical needs then >>>>>>>>> we can cross check each of them with DAS if they can be implemented >>>>>>>>> with >>>>>>>>> the available functionality. >>>>>>>>> >>>>>>>>> Regards >>>>>>>>> Jo >>>>>>>>> >>>>>>>>> On Tue, Jul 28, 2015 at 2:13 PM, Gimantha Bandara < >>>>>>>>> [email protected]> wrote: >>>>>>>>> >>>>>>>>>> Searching and getting summation by grouping is possible. Note: >>>>>>>>>> Even in grouping, if we consider your example, >>>>>>>>>> >>>>>>>>>> SELECT api,version,apiPublisher,context,SUM(total_fault_count) as >>>>>>>>>> total_fault_count FROM `table` WHERE time BETWEEN fromDate AND >>>>>>>>>> toDate >>>>>>>>>> GROUP BY api,version,apiPublisher,context; >>>>>>>>>> >>>>>>>>>> api, version, apiPublisher, context is a multi-field grouping. So >>>>>>>>>> in one "api" value there can be several "versions".. so on. By >>>>>>>>>> simply >>>>>>>>>> using your given SQL query, we can get all the records grouped by >>>>>>>>>> executing >>>>>>>>>> a single query. Since facets are basically designed to implement >>>>>>>>>> drill-down >>>>>>>>>> functionalities, you cannot get SUMs of all the groups at once. You >>>>>>>>>> will >>>>>>>>>> first get SUM (total_fault_count) for all the "apis", then you >>>>>>>>>> drilldown >>>>>>>>>> one more group down (lets say you selected api called "api1", there >>>>>>>>>> you >>>>>>>>>> will have several "versions" under "api1". Now you will see >>>>>>>>>> SUM(total_fault_count) for all the "version" and so on. If you want >>>>>>>>>> to get >>>>>>>>>> the summation by groups for drilldown, then facets can be used. >>>>>>>>>> Facets >>>>>>>>>> features cannot be used to get SUM(total_fault_count) for all the >>>>>>>>>> groupings >>>>>>>>>> at once. You will have to call facet apis multiple times for that. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Tue, Jul 28, 2015 at 1:44 PM, Rukshan Premathunga < >>>>>>>>>> [email protected]> wrote: >>>>>>>>>> >>>>>>>>>>> Hi all, >>>>>>>>>>> >>>>>>>>>>> Thanks for the feedbacks. >>>>>>>>>>> >>>>>>>>>>> We cannot say these queries are bounded. In further these >>>>>>>>>>> queries are tend to be optimised by introducing more constraints. >>>>>>>>>>> Also, is there any possibilities that searching and getting >>>>>>>>>>> Summation by grouping? >>>>>>>>>>> >>>>>>>>>>> Thanks and Regards. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Tue, Jul 28, 2015 at 1:24 PM, Sinthuja Ragendran < >>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>> >>>>>>>>>>>> Hi Gimantha, >>>>>>>>>>>> >>>>>>>>>>>> Thanks for the clarification. >>>>>>>>>>>> >>>>>>>>>>>> AFAIU APIM spark queries will be anyhow executed and summarized >>>>>>>>>>>> into DAS tables, and the above mentioned sample query is something >>>>>>>>>>>> going to >>>>>>>>>>>> be executed against the summarized data dynamically according to >>>>>>>>>>>> user's >>>>>>>>>>>> input. For example, if the use slides the time-range between some >>>>>>>>>>>> values in >>>>>>>>>>>> APIM, the the gadgets in the APIM dashboard needs to be updated >>>>>>>>>>>> with SUM of >>>>>>>>>>>> requests, AVG, etc by filtering the summarized data further for >>>>>>>>>>>> the given >>>>>>>>>>>> time range. I don't think issuing an SparkSQL query dynamically >>>>>>>>>>>> for such >>>>>>>>>>>> dynamic changes is viable solution. >>>>>>>>>>>> >>>>>>>>>>>> Thanks, >>>>>>>>>>>> Sinthuja. >>>>>>>>>>>> >>>>>>>>>>>> On Tue, Jul 28, 2015 at 1:15 PM, Gimantha Bandara < >>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> [Adding Niranda] >>>>>>>>>>>>> >>>>>>>>>>>>> Hi Sinduja/Rukshan, >>>>>>>>>>>>> >>>>>>>>>>>>> Yes this can be achieved using facets, There are several >>>>>>>>>>>>> facets related APIs. One is to get the Facet record count. >>>>>>>>>>>>> Default behavior >>>>>>>>>>>>> is to return the number of matching records given the Facet >>>>>>>>>>>>> array. We can >>>>>>>>>>>>> override the default behavior by defining a score function. So >>>>>>>>>>>>> each record >>>>>>>>>>>>> will represent the value of the score function. So id we query >>>>>>>>>>>>> for the >>>>>>>>>>>>> facet count, it will simply return the sum of score function >>>>>>>>>>>>> values. This >>>>>>>>>>>>> behavior is similar to SUM aggregate. But for Aggregates like AVG >>>>>>>>>>>>> we need >>>>>>>>>>>>> the current number of records to calculate the average. We will >>>>>>>>>>>>> need to >>>>>>>>>>>>> make two REST calls ( to get the record count with default score >>>>>>>>>>>>> function >>>>>>>>>>>>> "1" and to get the SUM another record count with the score >>>>>>>>>>>>> function >>>>>>>>>>>>> "aggregating field") since aggregates like AVG are not supported. >>>>>>>>>>>>> >>>>>>>>>>>>> As Gihan said, I think Spark SQL will more suitable for this >>>>>>>>>>>>> scenario. It support basic aggregates and if a custom function >>>>>>>>>>>>> required, we >>>>>>>>>>>>> can write a UDF. >>>>>>>>>>>>> >>>>>>>>>>>>> Thanks, >>>>>>>>>>>>> >>>>>>>>>>>>> On Tue, Jul 28, 2015 at 11:27 AM, Sinthuja Ragendran < >>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> Hi, >>>>>>>>>>>>>> >>>>>>>>>>>>>> One of the main feature of DAS is being decoupled from >>>>>>>>>>>>>> underline datastore, basically an user should be able to >>>>>>>>>>>>>> configure RDBMS, >>>>>>>>>>>>>> cassandra, Hbase/HDFS datastore, the client applications nor >>>>>>>>>>>>>> analyzation >>>>>>>>>>>>>> scripts are not necessarily need to change. >>>>>>>>>>>>>> >>>>>>>>>>>>>> In APIM 1.9.x and before, we stored the summarized data back >>>>>>>>>>>>>> into RDBMS to be supported with both BAM and DAS. But when we >>>>>>>>>>>>>> are moving >>>>>>>>>>>>>> forward with APIM, IMHO we need to optimize the design based on >>>>>>>>>>>>>> DAS. >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Tue, Jul 28, 2015 at 11:02 AM, Rukshan Premathunga < >>>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> Hi all, >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> We hope to implement a REST API for WSO2 API manager to >>>>>>>>>>>>>>> expose APIM statistic data. For that we evaluated WSO2 DAS REST >>>>>>>>>>>>>>> API to >>>>>>>>>>>>>>> check whether we can use it. >>>>>>>>>>>>>>> Here are the use cases of the APIM REST API and evaluation >>>>>>>>>>>>>>> result of DAS REST API. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> *Motivation*: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Currently we use DAS/BAM to generate summarised data and >>>>>>>>>>>>>>> they are stored in an RDBMS. >>>>>>>>>>>>>>> Next, APIM fetch data from the RDBMS and display it on the >>>>>>>>>>>>>>> dashboard. APIM has implemented Client which fetch the >>>>>>>>>>>>>>> statistic data from >>>>>>>>>>>>>>> the RDBMS, which is used by the UI to show statistics on the >>>>>>>>>>>>>>> dashboard. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> But we have a new requirement to providing these statistics >>>>>>>>>>>>>>> for a bill generating application. Since application is >>>>>>>>>>>>>>> separate, we are >>>>>>>>>>>>>>> facing problems of expose these statistic data to the >>>>>>>>>>>>>>> application. >>>>>>>>>>>>>>> As a solution we suggest implementing REST API, which can be >>>>>>>>>>>>>>> used to support above two scenarios (i.e. Current APIM >>>>>>>>>>>>>>> dashboard and the >>>>>>>>>>>>>>> billing application). >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Other advantages. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> - Implementing stat dashboard using REST API >>>>>>>>>>>>>>> - Client side data processing getting reduced >>>>>>>>>>>>>>> - Possibilities to expose statistic data to others >>>>>>>>>>>>>>> - Possible to implement appropriate security model >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> *DAS REST API* >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> DAS also contain the REST api where we can use it to expose >>>>>>>>>>>>>>> analytics data of the DAS data analytics layer(DAL). Currently >>>>>>>>>>>>>>> we use DAS >>>>>>>>>>>>>>> to generate summarised data of the APIM statistics. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> But summarised data are saved in RDBMS since it was easy to >>>>>>>>>>>>>>> fetch data. But with DAS they have provide the REST API to >>>>>>>>>>>>>>> access DAL data. >>>>>>>>>>>>>>> Because of this if we used DAS rest api, we can generate and >>>>>>>>>>>>>>> store summarized data on DAS without using RDBMS. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> This will reduce the APIM configuration for statistics and >>>>>>>>>>>>>>> central point of DATA storing and processing. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Other advantages. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> - Reduce cost to configure RDBMS >>>>>>>>>>>>>>> - APIM will depend only on DAS >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> *Issues with DAS REST API* >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Even though DAS provide the REST API to fetch DAL data, >>>>>>>>>>>>>>> query on DAL data is limited. It provide search mechanism with >>>>>>>>>>>>>>> apache >>>>>>>>>>>>>>> Lucene, but it is insufficient for APIM requirements. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Here are some query examples we used on mysql. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> SELECT >>>>>>>>>>>>>>> api,version,apiPublisher,context,SUM(total_fault_count) as >>>>>>>>>>>>>>> total_fault_count FROM `table` WHERE time BETWEEN fromDate AND >>>>>>>>>>>>>>> toDate >>>>>>>>>>>>>>> GROUP BY api,version,apiPublisher,context; >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Here there is 3 main sub functions and queries >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> - Time between- searching possible with apache Lucene >>>>>>>>>>>>>>> range search[1] >>>>>>>>>>>>>>> - Sum - Not possible to calculate the summation >>>>>>>>>>>>>>> - Group by - impossible to grouping and make the >>>>>>>>>>>>>>> calculation like SUM, AVG >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>> AFAIR you can use FACET type here which connects necssary >>>>>>>>>>>>>> fields api,version,apiPublisher,context together, and then also >>>>>>>>>>>>>> you can >>>>>>>>>>>>>> pass a function which is applied on the FACET search result. >>>>>>>>>>>>>> @Gimantha, >>>>>>>>>>>>>> please confirm whether it's possible in DAS. - I know we can get >>>>>>>>>>>>>> the total >>>>>>>>>>>>>> rows count of facet search, but I'm not very sure about passing >>>>>>>>>>>>>> the >>>>>>>>>>>>>> operation to be done on the search result. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>> Sinthuja. >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>>> With all of these advantages we hope to use to DAS >>>>>>>>>>>>>>> REST API without implementing APIM own REST API. But to take >>>>>>>>>>>>>>> the advantages >>>>>>>>>>>>>>> of the REST API we have to have a REST API with above queries >>>>>>>>>>>>>>> supported. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Can you please provide a proper way to handle these >>>>>>>>>>>>>>> scenarios? >>>>>>>>>>>>>>> Any suggestions are appreciated. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> [1] >>>>>>>>>>>>>>> https://lucene.apache.org/core/2_9_4/queryparsersyntax.html#Range >>>>>>>>>>>>>>> Searches >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Thanks and Regards. >>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>> Rukshan Chathuranga. >>>>>>>>>>>>>>> Software Engineer. >>>>>>>>>>>>>>> WSO2, Inc. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>> Architecture mailing list >>>>>>>>>>>>>>> [email protected] >>>>>>>>>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> -- >>>>>>>>>>>>>> *Sinthuja Rajendran* >>>>>>>>>>>>>> Associate Technical Lead >>>>>>>>>>>>>> WSO2, Inc.:http://wso2.com >>>>>>>>>>>>>> >>>>>>>>>>>>>> Blog: http://sinthu-rajan.blogspot.com/ >>>>>>>>>>>>>> Mobile: +94774273955 >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> -- >>>>>>>>>>>>> Gimantha Bandara >>>>>>>>>>>>> Software Engineer >>>>>>>>>>>>> WSO2. Inc : http://wso2.com >>>>>>>>>>>>> Mobile : +94714961919 >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> *Sinthuja Rajendran* >>>>>>>>>>>> Associate Technical Lead >>>>>>>>>>>> WSO2, Inc.:http://wso2.com >>>>>>>>>>>> >>>>>>>>>>>> Blog: http://sinthu-rajan.blogspot.com/ >>>>>>>>>>>> Mobile: +94774273955 >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> Rukshan Chathuranga. >>>>>>>>>>> Software Engineer. >>>>>>>>>>> WSO2, Inc. >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> Gimantha Bandara >>>>>>>>>> Software Engineer >>>>>>>>>> WSO2. Inc : http://wso2.com >>>>>>>>>> Mobile : +94714961919 >>>>>>>>>> >>>>>>>>>> _______________________________________________ >>>>>>>>>> Architecture mailing list >>>>>>>>>> [email protected] >>>>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> >>>>>>>>> -- >>>>>>>>> *Joseph Fonseka* >>>>>>>>> WSO2 Inc.; http://wso2.com >>>>>>>>> lean.enterprise.middleware >>>>>>>>> >>>>>>>>> mobile: +94 772 512 430 >>>>>>>>> skype: jpfonseka >>>>>>>>> >>>>>>>>> * <http://lk.linkedin.com/in/rumeshbandara>* >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Rukshan Chathuranga. >>>>>>>> Software Engineer. >>>>>>>> WSO2, Inc. >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Rukshan Chathuranga. >>>>>>> Software Engineer. >>>>>>> WSO2, Inc. >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Rukshan Chathuranga. >>>>>> Software Engineer. >>>>>> WSO2, Inc. >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> *Anjana Fernando* >>>>> Senior Technical Lead >>>>> WSO2 Inc. | http://wso2.com >>>>> lean . enterprise . middleware >>>>> >>>> >>>> >>>> >>>> -- >>>> Rukshan Chathuranga. >>>> Software Engineer. >>>> WSO2, Inc. >>>> >>> >>> >>> >>> -- >>> Gimantha Bandara >>> Software Engineer >>> WSO2. Inc : http://wso2.com >>> Mobile : +94714961919 >>> >> >> >> >> -- >> Rukshan Chathuranga. >> Software Engineer. >> WSO2, Inc. >> > > > > -- > Gimantha Bandara > Software Engineer > WSO2. Inc : http://wso2.com > Mobile : +94714961919 > -- Rukshan Chathuranga. Software Engineer. WSO2, Inc.
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
