[prev in list] [next in list] [prev in thread] [next in thread] 

List:       wsas-java-dev
Subject:    Re: [Carbon-dev] [Stratos-dev]  [Update] JVM Autoscaler
From:       Nirmal Fernando <nirmal () wso2 ! com>
Date:       2012-02-29 6:16:02
Message-ID: CAJ+w7Fkx90QDQeKyMfJgdfXCr3-o9xpjXssCOVK3BOEbFXU-+Q () mail ! gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


On Wed, Feb 29, 2012 at 11:10 AM, Dileepa Jayakody <dileepa@wso2.com> wrote:

> Hi,
> 
> 
> On Wed, Feb 29, 2012 at 10:57 AM, Nirmal Fernando <nirmal@wso2.com> wrote:
> 
> > Hi,
> > 
> > I have few other concerns to get clarified and few thoughts.
> > 
> > 1. Original design was to spawn EC2 instances after the number of live
> > instances exceed a threshold value (eg: 25). What if we spawn an EC2
> > instance only if we failed to spawn a JVM instance in any Agent? As far as
> > I see, the latter may be bit inefficient but cost effective (since we're
> > not spawning an EC2 instance when we can spawn a JVM instance).
> > 
> > 2. What's the standard way of specifying Agent's working directory? I
> > thought of adding it to the autoscaler_agent_config.xml. Please see [a].
> > 
> > 3. How to specify the path to the "autoscaler_agent_config.xml"?
> > Currently it is hard coded.
> > 
> > 4. How to let AutoscalerService know the EPR of the
> > AgentManagementService? Currently it is hard coded. Is it good to assume
> > that both autoscaler service and agent management service are hosted in one
> > location, and deriving the EPR of the AgentManagementService?
> > 
> > 5. Agent should be smart enough to decide whether it can spawn a new JVM
> > instance, i.e. whether it has the minimum required memory etc. available.
> > What about using Dileepa's boot-up validator component for this purpose?
> > 
> > Are you looking at total RAM or free RAM for this purpose?
> 

Agent should satisfy all the minimum requirements needed for a server
start-up.


> I think OperatingSystemMXBean:
> http://www.docjar.com/docs/api/com/sun/management/OperatingSystemMXBean.htmlwould \
> be helpful to you for this requirement. 

Thanks for the pointer!


> 
> > [a]
> > <!--
> > This file should specify all the Agent related configuration details.
> > -->
> > <agentConfig>
> > 
> > <!-- This points to the place where helper services such as
> > AgentManagementService
> > and AutoscalerService hosted. -->
> > <autoscalerHost url="http://localhost:8080/axis2/services/"/>
> > 
> > <!-- Following element should points to the working directory of this
> > Agent. This is the directory
> > where Agent will copy the extratcted carbon-home directories when a
> > new instance is spawned.-->
> > <workingDir path="/home/nirmal/Documents/autoscaler/work/"/>
> > 
> > <!--
> > image element contains the details of the image.
> > Each image element should have two attributes.
> > 1. path: path to the image.
> > 2. domain: domain this particular image belongs to.
> > -->
> > <image
> > path="/home/nirmal/Documents/autoscaler/wso2as-4.1.0-SNAPSHOT.zip"
> > domain="wso2.as.domain"/>
> > <image path="/home/nirmal/Desktop/wso2cep-4.1.0-SNAPSHOT.zip"
> > domain="wso2.cep.domain"/>
> > 
> > </agentConfig>
> > 
> > 
> > 
> > 
> > On Mon, Feb 27, 2012 at 9:56 AM, Nirmal Fernando <nirmal@wso2.com> wrote:
> > 
> > > Hi,
> > > 
> > > Please find the sequence type of diagram of starting instance scenario,
> > > attached herewith.
> > > 
> > > On Wed, Feb 22, 2012 at 12:36 PM, Afkham Azeez <azeez@wso2.com> wrote:
> > > 
> > > > 
> > > > 
> > > > On Wed, Feb 22, 2012 at 9:50 AM, Selvaratnam Uthaiyashankar <
> > > > shankar@wso2.com> wrote:
> > > > 
> > > > > On Wed, Feb 22, 2012 at 8:27 AM, Nirmal Fernando <nirmal@wso2.com>
> > > > > wrote:
> > > > > > Hi Shankar,
> > > > > > 
> > > > > > On Wed, Feb 22, 2012 at 8:12 AM, Selvaratnam Uthaiyashankar
> > > > > > <shankar@wso2.com> wrote:
> > > > > > > 
> > > > > > > Hi Nirmal,
> > > > > > > 
> > > > > > > On Tue, Feb 21, 2012 at 11:04 AM, Nirmal Fernando <nirmal@wso2.com>
> > > > > wrote:
> > > > > > > > 
> > > > > > > > 
> > > > > > > > On Tue, Feb 21, 2012 at 10:18 AM, Nirmal Fernando <
> > > > > nirmal@wso2.com>
> > > > > > > > wrote:
> > > > > > > > > 
> > > > > > > > > Hi All,
> > > > > > > > > 
> > > > > > > > > I need your views on following.
> > > > > > > > > 
> > > > > > > > > In the Agent side we need to have a configuration file (say
> > > > > > > > > instances_config.xml) which specifies the paths and names of the
> > > > > > > > > instances
> > > > > > > > > belong to domains.
> > > > > > > > > 
> > > > > > > > > I thought to have following structure:
> > > > > > > > > 
> > > > > > > > Value of the path attribute should change like this:
> > > > > > > > 
> > > > > > > > > 
> > > > > > > > > <domain name="wso2.as.domain">
> > > > > > > > > <instance name="wso2as-4.1.0-SNAPSHOT"
> > > > > > > > > 
> > > > > path="/home/nirmal/Desktop/wso2as-4.1.0-SNAPSHOT/bin/wso2server.sh"/>
> > > > > > > > > <instance name="wso2as-4.1.0-SNAPSHOT"
> > > > > > > > > 
> > > > > path="/home/nirmal/Temp/wso2as-4.1.0-SNAPSHOT/bin/wso2server.sh"/>
> > > > > > > > > 
> > > > > > > > > .....
> > > > > > > > > </domain>
> > > > > > > > > <domain name="wso2.bps.domain">
> > > > > > > > > <instance name="wso2bps-4.1.0-SNAPSHOT"
> > > > > > > > > 
> > > > > path="/home/nirmal/Desktop/wso2bps-4.1.0-SNAPSHOT/bin/wso2server.sh"/>
> > > > > > > > > <instance name="wso2bps-4.1.0-SNAPSHOT"
> > > > > > > > > 
> > > > > path="/home/nirmal/Temp/wso2bps-4.1.0-SNAPSHOT/bin/wso2server.sh"/>
> > > > > > > > > 
> > > > > > > > > .....
> > > > > > > > > </domain>
> > > > > > > 
> > > > > > > 
> > > > > > > What are these two instances? Why they should be in the
> > > > > configuration
> > > > > > > file? If they are the paths of instances that can be started, then
> > > > > if
> > > > > > > I want to start a third instance what should I do?
> > > > > > 
> > > > > > 
> > > > > > Agents should know the instances that it can spawn. Thus, each Agent
> > > > > machine
> > > > > > has a configuration file which points to those instances. An Agent
> > > > > can only
> > > > > > spawn instances it has.
> > > > > > 
> > > > > > This configuration file will be loaded each time an Agent get
> > > > > registered. So
> > > > > > if you want to add a new instance, you can unregister the Agent,
> > > > > edit the
> > > > > > configuration file and re-register. Then the Agent Service will
> > > > > locate the
> > > > > > newly added instance and list it as an instance that can be spawned.
> > > > > 
> > > > > This might become a maintanance problem. Suppose I have a machine
> > > > > which can run 5 instance of stratos service. This service can be ESB,
> > > > > AppServer, GS, MS, Manager, .... We have 13 service, so I have to give
> > > > > 13 * 5 configuration.
> > > > > 
> > > > > I would like to give the location of binary pack location for 13
> > > > > services, and when an instance is required, agent can copy the pack
> > > > > into its "working directory" and run it. So, actual instance location
> > > > > is not needed and will be handled by agent. This is the normal way
> > > > > most of the software work (e.g. eucalyptus). In this method, the
> > > > > configuration for all JVM autoscale agent will be same. (can copy the
> > > > > binary pack in same location, working directory can be same location).
> > > > > Based on the request, Agent will copy and start the "instace"
> > > > > dynamically.
> > > > > 
> > > > 
> > > > Yes, that is how it should be done. It is basically like providing the
> > > > image ID. External invokers will simply ask for an instance of a particular
> > > > binary pack to be started. They don't specify the actual instance.
> > > > 
> > > > > 
> > > > > WDYT?
> > > > > 
> > > > > Shankar
> > > > > 
> > > > > 
> > > > > > 
> > > > > > WDYT?
> > > > > > 
> > > > > > > 
> > > > > > > 
> > > > > > > Shankar
> > > > > > > 
> > > > > > > 
> > > > > > > > > .....
> > > > > > > > > 
> > > > > > > > > WDYT?
> > > > > > > > > 
> > > > > > > > > PS: It is my understanding that the autoscaler component passes
> > > > > the
> > > > > > > > > 'domain name' to the "Autoscaler Service", when it wants to
> > > > > scale.
> > > > > > > > > 
> > > > > > > > > 
> > > > > > > > > 
> > > > > > > > > 
> > > > > > > > > On Mon, Feb 20, 2012 at 9:31 PM, Selvaratnam Uthaiyashankar
> > > > > > > > > <shankar@wso2.com> wrote:
> > > > > > > > > > 
> > > > > > > > > > On Mon, Feb 20, 2012 at 8:17 PM, Nirmal Fernando <
> > > > > nirmal@wso2.com>
> > > > > > > > > > wrote:
> > > > > > > > > > > Hi Shankar,
> > > > > > > > > > > 
> > > > > > > > > > > On Mon, Feb 20, 2012 at 5:34 PM, Selvaratnam Uthaiyashankar
> > > > > > > > > > > <shankar@wso2.com> wrote:
> > > > > > > > > > > > 
> > > > > > > > > > > > Hi Nirmal,
> > > > > > > > > > > > 
> > > > > > > > > > > > Good progress!. we can do a review on the work already done.
> > > > > > > > > > > 
> > > > > > > > > > > 
> > > > > > > > > > > Thanks, will arrange a review this week.
> > > > > > > > > > > 
> > > > > > > > > > > > 
> > > > > > > > > > > > 
> > > > > > > > > > > > Did you try the agent in windows?
> > > > > > > > > > > 
> > > > > > > > > > > 
> > > > > > > > > > > No, I didn't!
> > > > > > > > > > > 
> > > > > > > > > > > > 
> > > > > > > > > > > > Is it using any native code?
> > > > > > > > > > > 
> > > > > > > > > > > 
> > > > > > > > > > > It needs to use native code in cases like spawning a new JVM
> > > > > (in
> > > > > > > > > > > Ubuntu
> > > > > > > > > > > we
> > > > > > > > > > > need /bin/sh to run the script 'wso2server.sh' in windows we
> > > > > need to
> > > > > > > > > > > run the
> > > > > > > > > > > batch file.
> > > > > > > > > > > But I believe this can be handled within the code it self by
> > > > > > > > > > > checking
> > > > > > > > > > > the OS
> > > > > > > > > > > name and execute appropriate commands!
> > > > > > > > > > > 
> > > > > > > > > > > > 
> > > > > > > > > > > > 
> > > > > > > > > > > > See some comments below.
> > > > > > > > > > > > 
> > > > > > > > > > > > On Sat, Feb 18, 2012 at 11:10 PM, Nirmal Fernando <
> > > > > nirmal@wso2.com>
> > > > > > > > > > > > wrote:
> > > > > > > > > > > > > Hi All,
> > > > > > > > > > > > > 
> > > > > > > > > > > > > I've started to implement 'new autoscaler architecture'
> > > > > [1] on
> > > > > > > > > > > > > February
> > > > > > > > > > > > > 8th.
> > > > > > > > > > > > > After having a discussion with Azeez, we came up with three
> > > > > > > > > > > > > milestones
> > > > > > > > > > > > > for
> > > > > > > > > > > > > the first iteration.
> > > > > > > > > > > > > 
> > > > > > > > > > > > > 
> > > > > > > > > > > > > 
> > > > > > > > > > > > > 
> > > > > ---------------------------------------------------------------------------- \
> > > > > ---------------------------------------------------------------------------------------------------------------------------------------
> > > > > 
> > > > > > > > > > > > > 
> > > > > > > > > > > > > M1: Make a WS call spawns a new JVM instance & make the new
> > > > > > > > > > > > > instance
> > > > > > > > > > > > > joins
> > > > > > > > > > > > > the cluster with hard coded Agents.
> > > > > > > > > > > > > 
> > > > > > > > > > > > > M2: Finish Agent registration related parts and spawn a new
> > > > > > > > > > > > > instance
> > > > > > > > > > > > > in
> > > > > > > > > > > > > a
> > > > > > > > > > > > > selected Agent.
> > > > > > > > > > > > > 
> > > > > > > > > > > > > M3: Let current autoscaler component calls
> > > > > 'AutoscalerService'
> > > > > > > > > > > > > and
> > > > > > > > > > > > > spawns a
> > > > > > > > > > > > > new JVM instance in a selected Agent. Also applying WS
> > > > > security.
> > > > > > > > > > > > > 
> > > > > > > > > > > > > 
> > > > > > > > > > > > > 
> > > > > > > > > > > > > 
> > > > > > > > > > > > > 
> > > > > ---------------------------------------------------------------------------- \
> > > > > ---------------------------------------------------------------------------------------------------------------------------------------
> > > > > 
> > > > > > > > > > > > > 
> > > > > > > > > > > > > I've attached set of images which depicts different stages
> > > > > of new
> > > > > > > > > > > > > architecture. Reading order of images is as follows:
> > > > > > > > > > > > > 
> > > > > > > > > > > > > agent-reg --> autoscaler --> spawn --> cluster
> > > > > > > > > > > > > 
> > > > > > > > > > > > > 
> > > > > > > > > > > > > M1 is already finished.
> > > > > > > > > > > > > 
> > > > > > > > > > > > > I've almost done the Agent registration (M2) aspect.
> > > > > > > > > > > > > 
> > > > > > > > > > > > > What it does now?
> > > > > > > > > > > > > 
> > > > > > > > > > > > > AgentManagementService and AutoscalerService should be
> > > > > deployed
> > > > > > > > > > > > > in
> > > > > > > > > > > > > the
> > > > > > > > > > > > > back-end server. (say: IP is 192.168.1.2)
> > > > > > > > > > > > > 
> > > > > > > > > > > > > AgentService should be deployed in machines (i.e. where
> > > > > new JVM
> > > > > > > > > > > > > instances
> > > > > > > > > > > > > will be spawned). (say: IP is 192.168.1.3)
> > > > > > > > > > > > > 
> > > > > > > > > > > > > AgentService do a web service call (eg:  curl -X GET
> > > > > > > > > > > > > http://localhost:8080/axis2/services/AgentService/agent)
> > > > > to
> > > > > > > > > > > > > AgentManagementService and get registered. Then
> > > > > > > > > > > > > AgentManagementService
> > > > > > > > > > > > > stores the URL (eg:
> > > > > > > > > > > > > http://192.168.1.3:8080/axis2/services/AgentService/) of
> > > > > > > > > > > > > that particular request.
> > > > > > > > > > > > > 
> > > > > > > > > > > > > When autoscaler API (implementing this is M3) wanted to
> > > > > spawn a
> > > > > > > > > > > > > new
> > > > > > > > > > > > > instance
> > > > > > > > > > > > > (JVM or EC2 or anything else), it should call
> > > > > AutoscalerService
> > > > > > > > > > > > > (eg:
> > > > > > > > > > > > > curl
> > > > > > > > > > > > > --data "instanceName=as" -X POST
> > > > > > > > > > > > > 
> > > > > > > > > > > > > 
> > > > > http://192.168.1.2:8080/axis2/services/AutoscalerService/instance).
> > > > > > > > > > > > > Then
> > > > > > > > > > > > > AutoscalerService decides which kind of instance to spawn.
> > > > > > > > > > > > > 
> > > > > > > > > > > > > If AutoscalerService decides to spawn a JVM instance, it
> > > > > creates
> > > > > > > > > > > > > a
> > > > > > > > > > > > > new
> > > > > > > > > > > > > JVMAdaptor instance. JVMAdaptor then calls (eg: curl -X GET
> > > > > > > > > > > > > 
> > > > > > > > > > > > > 
> > > > > http://192.168.1.2:8080/axis2/services/AgentManagementService/agent)
> > > > > > > > > > > > > AgentManagementService in order to pick an Agent.
> > > > > > > > > > > > > AgentManagementService
> > > > > > > > > > > > > picks an Agent in a round robin manner and sends back that
> > > > > > > > > > > > > Agent's
> > > > > > > > > > > > > EPR
> > > > > > > > > > > > > (http://192.168.1.3:8080/axis2/services/AgentService/) to
> > > > > > > > > > > > > JVMAdaptor.
> > > > > > > > > > > > > Then
> > > > > > > > > > > > > JVMAdaptor does a web service call to that particular
> > > > > > > > > > > > > AgentService
> > > > > > > > > > > > > and
> > > > > > > > > > > > > asked
> > > > > > > > > > > > > it to spawn the requested instance (instance is yet hard
> > > > > coded).
> > > > > > > > > > > > > 
> > > > > > > > > > > > > Spawned instance then joins the cluster.
> > > > > > > > > > > > > 
> > > > > > > > > > > > > 
> > > > > > > > > > > > > Current observations:
> > > > > > > > > > > > > 
> > > > > > > > > > > > > Currently starting instance aspect is done.
> > > > > > > > > > > > > 
> > > > > > > > > > > > > I've tested this using 2 machines, and starting instance
> > > > > works
> > > > > > > > > > > > > fine.
> > > > > > > > > > > > > 
> > > > > > > > > > > > > It is observed that the spawned JVM instances get killed
> > > > > when you
> > > > > > > > > > > > > issue
> > > > > > > > > > > > > 'ctrl+c' in the terminal where axis2 running. But when I
> > > > > killed
> > > > > > > > > > > > > axis2server.sh process only, the new JAVA process wasn't
> > > > > get
> > > > > > > > > > > > > killed.
> > > > > > > > > > > > > To
> > > > > > > > > > > > > avoid process get killing when issue ctrl+c, we might need
> > > > > to
> > > > > > > > > > > > > handle
> > > > > > > > > > > > > SIGINT
> > > > > > > > > > > > > [2]. Can't we be happy with the fact that it doesn't get
> > > > > killed
> > > > > > > > > > > > > after
> > > > > > > > > > > > > killing axis2server.sh?
> > > > > > > > > > > > 
> > > > > > > > > > > > JVMs (which were created) should live even if  you kill the
> > > > > agent.
> > > > > > > > > > > > 
> > > > > > > > > > > 
> > > > > > > > > > > Yes, but the problem is how you kill! If you use kill -9 and
> > > > > kills
> > > > > > > > > > > Axis2
> > > > > > > > > > > related process (Axis2 is where Agent Service is deployed),
> > > > > spawned
> > > > > > > > > > > JVM
> > > > > > > > > > > instances aren't get killed.
> > > > > > > > > > > Anyway will research a bit more, I understand that spawned
> > > > > instance
> > > > > > > > > > > should
> > > > > > > > > > > never get killed, unless it is asked to!
> > > > > > > > > > > 
> > > > > > > > > > > > 
> > > > > > > > > > > > > 
> > > > > > > > > > > > > 
> > > > > > > > > > > > > Work to be done:
> > > > > > > > > > > > > 
> > > > > > > > > > > > > Terminating and finding instance aspects should be
> > > > > addressed.
> > > > > > > > > > > > 
> > > > > > > > > > > > You have to keep track of which JVMs/VMs created by the
> > > > > autoscaler.
> > > > > > > > > > > > Otherwise you will not be able to stop them when you want to
> > > > > scale
> > > > > > > > > > > > down. I believe, this information should be stored/kept with
> > > > > > > > > > > > "autoscaler service".
> > > > > > > > > > > 
> > > > > > > > > > > 
> > > > > > > > > > > I have started to implement this part today! According to the
> > > > > design
> > > > > > > > > > > 'Autoscaler Service' is only responsible for
> > > > > > > > > > > deciding the type of instance it should be spawned. That is a
> > > > > JVM
> > > > > > > > > > > instance
> > > > > > > > > > > or an EC2 instance or something else. Thus, it keeps track of
> > > > > > > > > > > the type of instance spawned.
> > > > > > > > > > > 
> > > > > > > > > > > It is JVM Adaptor which keeps track of instances spawned in
> > > > > each
> > > > > > > > > > > Agent.
> > > > > > > > > > 
> > > > > > > > > > +1. It should be JVM adapter for JVM instances and EC2 adapter
> > > > > for EC2
> > > > > > > > > > instance, etc.
> > > > > > > > > > 
> > > > > > > > > > Shankar
> > > > > > > > > > 
> > > > > > > > > > 
> > > > > > > > > > > 
> > > > > > > > > > > And it is respective Agent Service that kills an instance,
> > > > > upon a
> > > > > > > > > > > request!
> > > > > > > > > > > 
> > > > > > > > > > > 
> > > > > > > > > > > > 
> > > > > > > > > > > > 
> > > > > > > > > > > > > The 'sad side' (when things go wrong) should be addressed.
> > > > > > > > > > > > > AgentServices should know EPR of AgentManagementService
> > > > > (this is
> > > > > > > > > > > > > hard
> > > > > > > > > > > > > coded
> > > > > > > > > > > > > now). Should read from a config file?
> > > > > > > > > > > > 
> > > > > > > > > > > > +1 fore reading from config file.
> > > > > > > > > > > 
> > > > > > > > > > > 
> > > > > > > > > > > Great!
> > > > > > > > > > > 
> > > > > > > > > > > > 
> > > > > > > > > > > > 
> > > > > > > > > > > > 
> > > > > > > > > > > > > JVMAdaptor should keep a map of Agent EPR to AgentService
> > > > > client,
> > > > > > > > > > > > > to
> > > > > > > > > > > > > avoid
> > > > > > > > > > > > > creating multiple clients to access the same Agent.
> > > > > > > > > > > > > AgentService should keep a count of spawned instances and
> > > > > get
> > > > > > > > > > > > > itself
> > > > > > > > > > > > > unregistered if it can't handle any new instances
> > > > > (threshold
> > > > > > > > > > > > > value
> > > > > > > > > > > > > should be
> > > > > > > > > > > > > decided). And when it feels (another threshold) that it can
> > > > > > > > > > > > > handle
> > > > > > > > > > > > > new
> > > > > > > > > > > > > instances it should register again.
> > > > > > > > > > > > > Autoscaler API should be designed.
> > > > > > > > > > > > > Should port EC2 client to EC2Adaptor.
> > > > > > > > > > > > > Should test the whole scenario.
> > > > > > > > > > > > > 
> > > > > > > > > > > > > 
> > > > > > > > > > > > > I appreciate your comments/thoughts on above facts.
> > > > > > > > > > > > > 
> > > > > > > > > > > > > 
> > > > > > > > > > > > > [1]
> > > > > > > > > > > > > 
> > > > > > > > > > > > > 
> > > > > > > > > > > > > 
> > > > > http://mail.wso2.org/mailarchive/architecture/2011-October/006414.html
> > > > > > > > > > > > > 
> > > > > > > > > > > > > [2] http://www.cons.org/cracauer/sigint.html
> > > > > > > > > > > > > 
> > > > > > > > > > > > > 
> > > > > > > > > > > > > 
> > > > > > > > > > > > > --
> > > > > > > > > > > > > 
> > > > > > > > > > > > > Thanks & regards,
> > > > > > > > > > > > > Nirmal
> > > > > > > > > > > > > 
> > > > > > > > > > > > > Software Engineer- Platform Technologies Team, WSO2 Inc.
> > > > > > > > > > > > > Mobile: +94715779733
> > > > > > > > > > > > > Blog: http://nirmalfdo.blogspot.com/
> > > > > > > > > > > > 
> > > > > > > > > > > > 
> > > > > > > > > > > > 
> > > > > > > > > > > > --
> > > > > > > > > > > > S.Uthaiyashankar
> > > > > > > > > > > > Senior Architect & Senior Manager
> > > > > > > > > > > > WSO2 Inc.
> > > > > > > > > > > > http://wso2.com/ - "lean . enterprise . middleware"
> > > > > > > > > > > > 
> > > > > > > > > > > > Phone: +94 714897591
> > > > > > > > > > > 
> > > > > > > > > > > 
> > > > > > > > > > > 
> > > > > > > > > > > 
> > > > > > > > > > > --
> > > > > > > > > > > 
> > > > > > > > > > > Thanks & regards,
> > > > > > > > > > > Nirmal
> > > > > > > > > > > 
> > > > > > > > > > > Software Engineer- Platform Technologies Team, WSO2 Inc.
> > > > > > > > > > > Mobile: +94715779733
> > > > > > > > > > > Blog: http://nirmalfdo.blogspot.com/
> > > > > > > > > > 
> > > > > > > > > > 
> > > > > > > > > > 
> > > > > > > > > > --
> > > > > > > > > > S.Uthaiyashankar
> > > > > > > > > > Senior Architect & Senior Manager
> > > > > > > > > > WSO2 Inc.
> > > > > > > > > > http://wso2.com/ - "lean . enterprise . middleware"
> > > > > > > > > > 
> > > > > > > > > > Phone: +94 714897591
> > > > > > > > > 
> > > > > > > > > 
> > > > > > > > > 
> > > > > > > > > 
> > > > > > > > > --
> > > > > > > > > 
> > > > > > > > > Thanks & regards,
> > > > > > > > > Nirmal
> > > > > > > > > 
> > > > > > > > > Software Engineer- Platform Technologies Team, WSO2 Inc.
> > > > > > > > > Mobile: +94715779733
> > > > > > > > > Blog: http://nirmalfdo.blogspot.com/
> > > > > > > > 
> > > > > > > > 
> > > > > > > > 
> > > > > > > > 
> > > > > > > > --
> > > > > > > > 
> > > > > > > > Thanks & regards,
> > > > > > > > Nirmal
> > > > > > > > 
> > > > > > > > Software Engineer- Platform Technologies Team, WSO2 Inc.
> > > > > > > > Mobile: +94715779733
> > > > > > > > Blog: http://nirmalfdo.blogspot.com/
> > > > > > > 
> > > > > > > 
> > > > > > > 
> > > > > > > --
> > > > > > > S.Uthaiyashankar
> > > > > > > Senior Architect & Senior Manager
> > > > > > > WSO2 Inc.
> > > > > > > http://wso2.com/ - "lean . enterprise . middleware"
> > > > > > > 
> > > > > > > Phone: +94 714897591
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > --
> > > > > > 
> > > > > > Thanks & regards,
> > > > > > Nirmal
> > > > > > 
> > > > > > Software Engineer- Platform Technologies Team, WSO2 Inc.
> > > > > > Mobile: +94715779733
> > > > > > Blog: http://nirmalfdo.blogspot.com/
> > > > > 
> > > > > 
> > > > > 
> > > > > --
> > > > > S.Uthaiyashankar
> > > > > Senior Architect & Senior Manager
> > > > > WSO2 Inc.
> > > > > http://wso2.com/ - "lean . enterprise . middleware"
> > > > > 
> > > > > Phone: +94 714897591
> > > > > 
> > > > 
> > > > 
> > > > 
> > > > --
> > > > *Afkham Azeez*
> > > > Director of Architecture; WSO2, Inc.; http://wso2.com
> > > > Member; Apache Software Foundation; http://www.apache.org/
> > > > * <http://www.apache.org/>**
> > > > email: **azeez@wso2.com* <azeez@wso2.com>* cell: +94 77 3320919
> > > > blog: **http://blog.afkham.org* <http://blog.afkham.org>*
> > > > twitter: **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez>
> > > > *
> > > > linked-in: **http://lk.linkedin.com/in/afkhamazeez*
> > > > *
> > > > *
> > > > *Lean . Enterprise . Middleware*
> > > > 
> > > > 
> > > 
> > > 
> > > --
> > > 
> > > Thanks & regards,
> > > Nirmal
> > > 
> > > Software Engineer- Platform Technologies Team, WSO2 Inc.
> > > Mobile: +94715779733
> > > Blog: http://nirmalfdo.blogspot.com/
> > > 
> > 
> > 
> > 
> > --
> > 
> > Thanks & regards,
> > Nirmal
> > 
> > Software Engineer- Platform Technologies Team, WSO2 Inc.
> > Mobile: +94715779733
> > Blog: http://nirmalfdo.blogspot.com/
> > 
> > _______________________________________________
> > Carbon-dev mailing list
> > Carbon-dev@wso2.org
> > http://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
> > 
> > 
> Thanks,
> Dileepa
> 
> --
> Dileepa Jayakody,
> Software Engineer, WSO2 Inc.
> 
> Lean . Enterprise . Middleware
> 
> Mobile : +94777-857616
> 
> 
> _______________________________________________
> Stratos-dev mailing list
> Stratos-dev@wso2.org
> https://wso2.org/cgi-bin/mailman/listinfo/stratos-dev
> 
> 


-- 

Thanks & regards,
Nirmal

Software Engineer- Platform Technologies Team, WSO2 Inc.
Mobile: +94715779733
Blog: http://nirmalfdo.blogspot.com/


[Attachment #5 (text/html)]

<br><br><div class="gmail_quote">On Wed, Feb 29, 2012 at 11:10 AM, Dileepa Jayakody \
<span dir="ltr">&lt;<a href="mailto:dileepa@wso2.com" \
target="_blank">dileepa@wso2.com</a>&gt;</span> wrote:<br><blockquote \
class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex">


Hi,<br><br><br><div class="gmail_quote"><div>On Wed, Feb 29, 2012 at 10:57 AM, Nirmal \
Fernando <span dir="ltr">&lt;<a href="mailto:nirmal@wso2.com" \
target="_blank">nirmal@wso2.com</a>&gt;</span> wrote:<br></div> <blockquote \
class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex"> Hi,<br><br><div>I have few other concerns to get clarified \
and few thoughts.<br><br>1. Original design was to spawn EC2 instances after the \
number of live instances exceed a threshold value (eg: 25). What if we spawn an EC2 \
instance only if we failed to spawn a JVM instance in any Agent? As far as I see, the \
latter may be bit inefficient but cost effective (since we&#39;re not spawning an EC2 \
instance when we can spawn a JVM instance). <br>





<br>2. What&#39;s the standard way of specifying Agent&#39;s working directory? I \
thought of adding it to the autoscaler_agent_config.xml. Please see [a].<br><br>3. \
How to specify the path to the &quot;autoscaler_agent_config.xml&quot;? Currently it \
is hard coded.<br>




<br>4. How to let AutoscalerService know the EPR of the AgentManagementService? \
Currently it is hard coded. Is it good to assume that both autoscaler service and \
agent management service are hosted in one location, and deriving the EPR of the \
AgentManagementService?<br>




<br>5. Agent should be smart enough to decide whether it can spawn a new JVM \
instance, i.e. whether it has the minimum required memory etc. available. What about \
using Dileepa&#39;s boot-up validator component for this purpose?<br>




<br></div></blockquote><div>Are you looking at total RAM or free RAM for this \
purpose?<br></div></div></blockquote><div><br>Agent should satisfy all the minimum \
requirements needed for a server start-up. <br> </div><blockquote class="gmail_quote" \
style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid \
rgb(204,204,204);padding-left:1ex">


<div class="gmail_quote"><div>I think <span>OperatingSystemMXBean: <a \
href="http://www.docjar.com/docs/api/com/sun/management/OperatingSystemMXBean.html" \
target="_blank">http://www.docjar.com/docs/api/com/sun/management/OperatingSystemMXBean.html</a> \
would be helpful to you for this requirement.</span></div>


</div></blockquote><div><br>Thanks for the pointer! <br> </div><blockquote \
class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid \
rgb(204,204,204);padding-left:1ex">

<div class="gmail_quote"><div> </div>
<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid \
rgb(204,204,204);padding-left:1ex"><div><div><br>[a]<br>&lt;!-- <br>This file should \
specify all the Agent related configuration details.<br>


--&gt;<br>
&lt;agentConfig&gt;<br><br>    &lt;!-- This points to the place where helper services \
such as AgentManagementService <br>  and AutoscalerService hosted. --&gt;<br>    \
&lt;autoscalerHost url=&quot;<a href="http://localhost:8080/axis2/services/" \
target="_blank">http://localhost:8080/axis2/services/</a>&quot;/&gt;<br><br>    \
&lt;!-- Following element should points to the working directory of this Agent. This \
is the directory <br>




    where Agent will copy the extratcted carbon-home directories when a new instance \
is spawned.--&gt;<br>    &lt;workingDir \
path=&quot;/home/nirmal/Documents/autoscaler/work/&quot;/&gt;<br><br>    &lt;!--<br>  \
image element contains the details of the image.<br>




    Each image element should have two attributes.<br>        1. path: path to the \
image.<br>        2. domain: domain this particular image belongs to.<br>    \
--&gt;<br>    &lt;image \
path=&quot;/home/nirmal/Documents/autoscaler/wso2as-4.1.0-SNAPSHOT.zip&quot; \
domain=&quot;wso2.as.domain&quot;/&gt;<br>




    &lt;image path=&quot;/home/nirmal/Desktop/wso2cep-4.1.0-SNAPSHOT.zip&quot; \
domain=&quot;wso2.cep.domain&quot;/&gt;<br><br>&lt;/agentConfig&gt;<div><div></div><div><br><br><br><br><div \
class="gmail_quote">On Mon, Feb 27, 2012 at 9:56 AM, Nirmal Fernando <span \
dir="ltr">&lt;<a href="mailto:nirmal@wso2.com" \
target="_blank">nirmal@wso2.com</a>&gt;</span> wrote:<br>





<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex">Hi,<br><br>Please find the sequence type of diagram of \
starting instance scenario, attached herewith. <br><div> <div><br><div \
class="gmail_quote">On Wed, Feb 22, 2012 at 12:36 PM, Afkham Azeez <span \
dir="ltr">&lt;<a href="mailto:azeez@wso2.com" \
target="_blank">azeez@wso2.com</a>&gt;</span> wrote:<br> <blockquote \
class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex"><br><br><div class="gmail_quote"><div><div>On Wed, Feb 22, \
2012 at 9:50 AM, Selvaratnam Uthaiyashankar <span dir="ltr">&lt;<a \
href="mailto:shankar@wso2.com" target="_blank">shankar@wso2.com</a>&gt;</span> \
wrote:<br>






<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex">

<div><div></div><div>On Wed, Feb 22, 2012 at 8:27 AM, Nirmal Fernando &lt;<a \
href="mailto:nirmal@wso2.com" target="_blank">nirmal@wso2.com</a>&gt; wrote:<br> &gt; \
Hi Shankar,<br> &gt;<br>
&gt; On Wed, Feb 22, 2012 at 8:12 AM, Selvaratnam Uthaiyashankar<br>
&gt; &lt;<a href="mailto:shankar@wso2.com" target="_blank">shankar@wso2.com</a>&gt; \
wrote:<br> &gt;&gt;<br>
&gt;&gt; Hi Nirmal,<br>
&gt;&gt;<br>
&gt;&gt; On Tue, Feb 21, 2012 at 11:04 AM, Nirmal Fernando &lt;<a \
href="mailto:nirmal@wso2.com" target="_blank">nirmal@wso2.com</a>&gt; wrote:<br> \
&gt;&gt; &gt;<br> &gt;&gt; &gt;<br>
&gt;&gt; &gt; On Tue, Feb 21, 2012 at 10:18 AM, Nirmal Fernando &lt;<a \
href="mailto:nirmal@wso2.com" target="_blank">nirmal@wso2.com</a>&gt;<br> &gt;&gt; \
&gt; wrote:<br> &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Hi All,<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; I need your views on following.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; In the Agent side we need to have a configuration file (say<br>
&gt;&gt; &gt;&gt; instances_config.xml) which specifies the paths and names of \
the<br> &gt;&gt; &gt;&gt; instances<br>
&gt;&gt; &gt;&gt; belong to domains.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; I thought to have following structure:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt; Value of the path attribute should change like this:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &lt;domain name=&quot;wso2.as.domain&quot;&gt;<br>
&gt;&gt; &gt;&gt;    &lt;instance name=&quot;wso2as-4.1.0-SNAPSHOT&quot;<br>
&gt;&gt; &gt;&gt; path=&quot;/home/nirmal/Desktop/wso2as-4.1.0-SNAPSHOT/bin/wso2server.sh&quot;/&gt;<br>
 &gt;&gt; &gt;&gt;    &lt;instance name=&quot;wso2as-4.1.0-SNAPSHOT&quot;<br>
&gt;&gt; &gt;&gt; path=&quot;/home/nirmal/Temp/wso2as-4.1.0-SNAPSHOT/bin/wso2server.sh&quot;/&gt;<br>
 &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;    .....<br>
&gt;&gt; &gt;&gt; &lt;/domain&gt;<br>
&gt;&gt; &gt;&gt; &lt;domain name=&quot;wso2.bps.domain&quot;&gt;<br>
&gt;&gt; &gt;&gt;    &lt;instance name=&quot;wso2bps-4.1.0-SNAPSHOT&quot;<br>
&gt;&gt; &gt;&gt; path=&quot;/home/nirmal/Desktop/wso2bps-4.1.0-SNAPSHOT/bin/wso2server.sh&quot;/&gt;<br>
 &gt;&gt; &gt;&gt;    &lt;instance name=&quot;wso2bps-4.1.0-SNAPSHOT&quot;<br>
&gt;&gt; &gt;&gt; path=&quot;/home/nirmal/Temp/wso2bps-4.1.0-SNAPSHOT/bin/wso2server.sh&quot;/&gt;<br>
 &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;    .....<br>
&gt;&gt; &gt;&gt; &lt;/domain&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; What are these two instances? Why they should be in the configuration<br>
&gt;&gt; file? If they are the paths of instances that can be started, then if<br>
&gt;&gt; I want to start a third instance what should I do?<br>
&gt;<br>
&gt;<br>
&gt; Agents should know the instances that it can spawn. Thus, each Agent machine<br>
&gt; has a configuration file which points to those instances. An Agent can only<br>
&gt; spawn instances it has.<br>
&gt;<br>
&gt; This configuration file will be loaded each time an Agent get registered. So<br>
&gt; if you want to add a new instance, you can unregister the Agent, edit the<br>
&gt; configuration file and re-register. Then the Agent Service will locate the<br>
&gt; newly added instance and list it as an instance that can be spawned.<br>
<br>
</div></div>This might become a maintanance problem. Suppose I have a machine<br>
which can run 5 instance of stratos service. This service can be ESB,<br>
AppServer, GS, MS, Manager, .... We have 13 service, so I have to give<br>
13 * 5 configuration.<br>
<br>
I would like to give the location of binary pack location for 13<br>
services, and when an instance is required, agent can copy the pack<br>
into its &quot;working directory&quot; and run it. So, actual instance location<br>
is not needed and will be handled by agent. This is the normal way<br>
most of the software work (e.g. eucalyptus). In this method, the<br>
configuration for all JVM autoscale agent will be same. (can copy the<br>
binary pack in same location, working directory can be same location).<br>
Based on the request, Agent will copy and start the &quot;instace&quot;<br>
dynamically.<br></blockquote><div><br></div></div></div><div>Yes, that is how it \
should be done. It is basically like providing the image ID. External invokers will \
simply ask for an instance of a particular binary pack to be started. They don&#39;t \
specify the actual instance. </div>






<div><div>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex"> <br>
WDYT?<br>
<br>
Shankar<br>
<div><div></div><div><br>
<br>
&gt;<br>
&gt; WDYT?<br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Shankar<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; &gt;&gt; .....<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; WDYT?<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; PS: It is my understanding that the autoscaler component passes \
the<br> &gt;&gt; &gt;&gt; &#39;domain name&#39; to the &quot;Autoscaler \
Service&quot;, when it wants to scale.<br> &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; On Mon, Feb 20, 2012 at 9:31 PM, Selvaratnam Uthaiyashankar<br>
&gt;&gt; &gt;&gt; &lt;<a href="mailto:shankar@wso2.com" \
target="_blank">shankar@wso2.com</a>&gt; wrote:<br> &gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; On Mon, Feb 20, 2012 at 8:17 PM, Nirmal Fernando &lt;<a \
href="mailto:nirmal@wso2.com" target="_blank">nirmal@wso2.com</a>&gt;<br> &gt;&gt; \
&gt;&gt;&gt; wrote:<br> &gt;&gt; &gt;&gt;&gt; &gt; Hi Shankar,<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt; On Mon, Feb 20, 2012 at 5:34 PM, Selvaratnam \
Uthaiyashankar<br> &gt;&gt; &gt;&gt;&gt; &gt; &lt;<a href="mailto:shankar@wso2.com" \
target="_blank">shankar@wso2.com</a>&gt; wrote:<br> &gt;&gt; &gt;&gt;&gt; \
&gt;&gt;<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; Hi Nirmal,<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; Good progress!. we can do a review on the work already \
done.<br> &gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt; Thanks, will arrange a review this week.<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; Did you try the agent in windows?<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt; No, I didn&#39;t!<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; Is it using any native code?<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt; It needs to use native code in cases like spawning a new \
JVM (in<br> &gt;&gt; &gt;&gt;&gt; &gt; Ubuntu<br>
&gt;&gt; &gt;&gt;&gt; &gt; we<br>
&gt;&gt; &gt;&gt;&gt; &gt; need /bin/sh to run the script &#39;wso2server.sh&#39; in \
windows we need to<br> &gt;&gt; &gt;&gt;&gt; &gt; run the<br>
&gt;&gt; &gt;&gt;&gt; &gt; batch file.<br>
&gt;&gt; &gt;&gt;&gt; &gt; But I believe this can be handled within the code it self \
by<br> &gt;&gt; &gt;&gt;&gt; &gt; checking<br>
&gt;&gt; &gt;&gt;&gt; &gt; the OS<br>
&gt;&gt; &gt;&gt;&gt; &gt; name and execute appropriate commands!<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; See some comments below.<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; On Sat, Feb 18, 2012 at 11:10 PM, Nirmal Fernando \
&lt;<a href="mailto:nirmal@wso2.com" target="_blank">nirmal@wso2.com</a>&gt;<br> \
&gt;&gt; &gt;&gt;&gt; &gt;&gt; wrote:<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Hi \
All,<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; I&#39;ve started to implement &#39;new autoscaler \
architecture&#39; [1] on<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; February<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; 8th.<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; After having a discussion with Azeez, we came up \
with three<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; milestones<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; for<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; the first iteration.<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; \
-------------------------------------------------------------------------------------- \
-----------------------------------------------------------------------------------------------------------------------------<br>










&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; M1: Make a WS call spawns a new JVM instance \
&amp; make the new<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; instance<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; joins<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; the cluster with hard coded Agents.<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; M2: Finish Agent registration related parts and \
spawn a new<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; instance<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; in<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; a<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; selected Agent.<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; M3: Let current autoscaler component calls \
&#39;AutoscalerService&#39;<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; and<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; spawns a<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; new JVM instance in a selected Agent. Also \
applying WS security.<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; \
-------------------------------------------------------------------------------------- \
-----------------------------------------------------------------------------------------------------------------------------<br>










&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; I&#39;ve attached set of images which depicts \
different stages of new<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; architecture. Reading \
order of images is as follows:<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; agent-reg --&gt; autoscaler --&gt; spawn --&gt; \
cluster<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; M1 is already finished.<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; I&#39;ve almost done the Agent registration (M2) \
aspect.<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; What it does now?<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; AgentManagementService and AutoscalerService \
should be deployed<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; in<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; the<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; back-end server. (say: IP is 192.168.1.2)<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; AgentService should be deployed in machines (i.e. \
where new JVM<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; instances<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; will be spawned). (say: IP is 192.168.1.3)<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; AgentService do a web service call (eg:  curl -X \
GET<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; <a \
href="http://localhost:8080/axis2/services/AgentService/agent" \
target="_blank">http://localhost:8080/axis2/services/AgentService/agent</a>) to<br> \
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; AgentManagementService and get registered. \
Then<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; AgentManagementService<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; stores the URL (eg:<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; <a \
href="http://192.168.1.3:8080/axis2/services/AgentService/" \
target="_blank">http://192.168.1.3:8080/axis2/services/AgentService/</a>) of<br> \
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; that particular request.<br> &gt;&gt; \
&gt;&gt;&gt; &gt;&gt; &gt;<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; When autoscaler \
API (implementing this is M3) wanted to spawn a<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; \
&gt; new<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; instance<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; (JVM or EC2 or anything else), it should call \
AutoscalerService<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; (eg:<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; curl<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; --data &quot;instanceName=as&quot; -X POST<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; <a \
href="http://192.168.1.2:8080/axis2/services/AutoscalerService/instance" \
target="_blank">http://192.168.1.2:8080/axis2/services/AutoscalerService/instance</a>).<br>
 &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Then<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; AutoscalerService decides which kind of instance \
to spawn.<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; If AutoscalerService decides to spawn a JVM \
instance, it creates<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; a<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; new<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; JVMAdaptor instance. JVMAdaptor then calls (eg: \
curl -X GET<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; <a \
href="http://192.168.1.2:8080/axis2/services/AgentManagementService/agent" \
target="_blank">http://192.168.1.2:8080/axis2/services/AgentManagementService/agent</a>)<br>
 &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; AgentManagementService in order to pick an \
Agent.<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; AgentManagementService<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; picks an Agent in a round robin manner and sends \
back that<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Agent&#39;s<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; EPR<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; (<a \
href="http://192.168.1.3:8080/axis2/services/AgentService/" \
target="_blank">http://192.168.1.3:8080/axis2/services/AgentService/</a>) to<br> \
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; JVMAdaptor.<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; \
&gt; Then<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; JVMAdaptor does a web service call \
to that particular<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; AgentService<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; and<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; asked<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; it to spawn the requested instance (instance is \
yet hard coded).<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Spawned instance then joins the cluster.<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Current observations:<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Currently starting instance aspect is done.<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; I&#39;ve tested this using 2 machines, and \
starting instance works<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; fine.<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; It is observed that the spawned JVM instances get \
killed when you<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; issue<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; &#39;ctrl+c&#39; in the terminal where axis2 \
running. But when I killed<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; axis2server.sh \
process only, the new JAVA process wasn&#39;t get<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; \
&gt; killed.<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; To<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; avoid process get killing when issue ctrl+c, we \
might need to<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; handle<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; SIGINT<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; [2]. Can&#39;t we be happy with the fact that it \
doesn&#39;t get killed<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; after<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; killing axis2server.sh?<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; JVMs (which were created) should live even if  you \
kill the agent.<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt; Yes, but the problem is how you kill! If you use kill -9 \
and kills<br> &gt;&gt; &gt;&gt;&gt; &gt; Axis2<br>
&gt;&gt; &gt;&gt;&gt; &gt; related process (Axis2 is where Agent Service is \
deployed), spawned<br> &gt;&gt; &gt;&gt;&gt; &gt; JVM<br>
&gt;&gt; &gt;&gt;&gt; &gt; instances aren&#39;t get killed.<br>
&gt;&gt; &gt;&gt;&gt; &gt; Anyway will research a bit more, I understand that spawned \
instance<br> &gt;&gt; &gt;&gt;&gt; &gt; should<br>
&gt;&gt; &gt;&gt;&gt; &gt; never get killed, unless it is asked to!<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Work to be done:<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Terminating and finding instance aspects should \
be addressed.<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; You have to keep track of which JVMs/VMs created by \
the autoscaler.<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; Otherwise you will not be able to \
stop them when you want to scale<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; down. I believe, \
this information should be stored/kept with<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; \
&quot;autoscaler service&quot;.<br> &gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt; I have started to implement this part today! According to \
the design<br> &gt;&gt; &gt;&gt;&gt; &gt; &#39;Autoscaler Service&#39; is only \
responsible for<br> &gt;&gt; &gt;&gt;&gt; &gt; deciding the type of instance it \
should be spawned. That is a JVM<br> &gt;&gt; &gt;&gt;&gt; &gt; instance<br>
&gt;&gt; &gt;&gt;&gt; &gt; or an EC2 instance or something else. Thus, it keeps track \
of<br> &gt;&gt; &gt;&gt;&gt; &gt; the type of instance spawned.<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt; It is JVM Adaptor which keeps track of instances spawned \
in each<br> &gt;&gt; &gt;&gt;&gt; &gt; Agent.<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; +1. It should be JVM adapter for JVM instances and EC2 adapter \
for EC2<br> &gt;&gt; &gt;&gt;&gt; instance, etc.<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; Shankar<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt; And it is respective Agent Service that kills an instance, \
upon a<br> &gt;&gt; &gt;&gt;&gt; &gt; request!<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; The &#39;sad side&#39; (when things go wrong) \
should be addressed.<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; AgentServices should \
know EPR of AgentManagementService (this is<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; \
hard<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; coded<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; now). Should read from a config file?<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; +1 fore reading from config file.<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt; Great!<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; JVMAdaptor should keep a map of Agent EPR to \
AgentService client,<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; to<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; avoid<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; creating multiple clients to access the same \
Agent.<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; AgentService should keep a count of \
spawned instances and get<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; itself<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; unregistered if it can&#39;t handle any new \
instances (threshold<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; value<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; should be<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; decided). And when it feels (another threshold) \
that it can<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; handle<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; new<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; instances it should register again.<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Autoscaler API should be designed.<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Should port EC2 client to EC2Adaptor.<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Should test the whole scenario.<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; I appreciate your comments/thoughts on above \
facts.<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; [1]<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; <a \
href="http://mail.wso2.org/mailarchive/architecture/2011-October/006414.html" \
target="_blank">http://mail.wso2.org/mailarchive/architecture/2011-October/006414.html</a><br>
 &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; [2] <a \
href="http://www.cons.org/cracauer/sigint.html" \
target="_blank">http://www.cons.org/cracauer/sigint.html</a><br> &gt;&gt; \
&gt;&gt;&gt; &gt;&gt; &gt;<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; --<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Thanks &amp; regards,<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Nirmal<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Software Engineer- Platform Technologies Team, \
WSO2 Inc.<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Mobile: <a \
href="tel:%2B94715779733" value="+94715779733" target="_blank">+94715779733</a><br> \
&gt;&gt; &gt;&gt;&gt; &gt;&gt; &gt; Blog: <a href="http://nirmalfdo.blogspot.com/" \
target="_blank">http://nirmalfdo.blogspot.com/</a><br> &gt;&gt; &gt;&gt;&gt; \
&gt;&gt;<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; --<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; S.Uthaiyashankar<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; Senior Architect &amp; Senior Manager<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; WSO2 Inc.<br>
&gt;&gt; &gt;&gt;&gt; &gt;&gt; <a href="http://wso2.com/" \
target="_blank">http://wso2.com/</a> - &quot;lean . enterprise . middleware&quot;<br> \
&gt;&gt; &gt;&gt;&gt; &gt;&gt;<br> &gt;&gt; &gt;&gt;&gt; &gt;&gt; Phone: <a \
href="tel:%2B94%20714897591" value="+94714897591" target="_blank">+94 \
714897591</a><br> &gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt; --<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt; Thanks &amp; regards,<br>
&gt;&gt; &gt;&gt;&gt; &gt; Nirmal<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt; Software Engineer- Platform Technologies Team, WSO2 \
Inc.<br> &gt;&gt; &gt;&gt;&gt; &gt; Mobile: <a href="tel:%2B94715779733" \
value="+94715779733" target="_blank">+94715779733</a><br> &gt;&gt; &gt;&gt;&gt; &gt; \
Blog: <a href="http://nirmalfdo.blogspot.com/" \
target="_blank">http://nirmalfdo.blogspot.com/</a><br> &gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; --<br>
&gt;&gt; &gt;&gt;&gt; S.Uthaiyashankar<br>
&gt;&gt; &gt;&gt;&gt; Senior Architect &amp; Senior Manager<br>
&gt;&gt; &gt;&gt;&gt; WSO2 Inc.<br>
&gt;&gt; &gt;&gt;&gt; <a href="http://wso2.com/" target="_blank">http://wso2.com/</a> \
- &quot;lean . enterprise . middleware&quot;<br> &gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; Phone: <a href="tel:%2B94%20714897591" value="+94714897591" \
target="_blank">+94 714897591</a><br> &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; --<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Thanks &amp; regards,<br>
&gt;&gt; &gt;&gt; Nirmal<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Software Engineer- Platform Technologies Team, WSO2 Inc.<br>
&gt;&gt; &gt;&gt; Mobile: <a href="tel:%2B94715779733" value="+94715779733" \
target="_blank">+94715779733</a><br> &gt;&gt; &gt;&gt; Blog: <a \
href="http://nirmalfdo.blogspot.com/" \
target="_blank">http://nirmalfdo.blogspot.com/</a><br> &gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; --<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Thanks &amp; regards,<br>
&gt;&gt; &gt; Nirmal<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Software Engineer- Platform Technologies Team, WSO2 Inc.<br>
&gt;&gt; &gt; Mobile: <a href="tel:%2B94715779733" value="+94715779733" \
target="_blank">+94715779733</a><br> &gt;&gt; &gt; Blog: <a \
href="http://nirmalfdo.blogspot.com/" \
target="_blank">http://nirmalfdo.blogspot.com/</a><br> &gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt; S.Uthaiyashankar<br>
&gt;&gt; Senior Architect &amp; Senior Manager<br>
&gt;&gt; WSO2 Inc.<br>
&gt;&gt; <a href="http://wso2.com/" target="_blank">http://wso2.com/</a> - &quot;lean \
. enterprise . middleware&quot;<br> &gt;&gt;<br>
&gt;&gt; Phone: <a href="tel:%2B94%20714897591" value="+94714897591" \
target="_blank">+94 714897591</a><br> &gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt;<br>
&gt; Thanks &amp; regards,<br>
&gt; Nirmal<br>
&gt;<br>
&gt; Software Engineer- Platform Technologies Team, WSO2 Inc.<br>
&gt; Mobile: <a href="tel:%2B94715779733" value="+94715779733" \
target="_blank">+94715779733</a><br> &gt; Blog: <a \
href="http://nirmalfdo.blogspot.com/" \
target="_blank">http://nirmalfdo.blogspot.com/</a><br> <br>
<br>
<br>
--<br>
S.Uthaiyashankar<br>
Senior Architect &amp; Senior Manager<br>
WSO2 Inc.<br>
<a href="http://wso2.com/" target="_blank">http://wso2.com/</a> - &quot;lean . \
enterprise . middleware&quot;<br> <br>
Phone: <a href="tel:%2B94%20714897591" value="+94714897591" target="_blank">+94 \
714897591</a><br> </div></div></blockquote></div></div></div><span><font \
color="#888888"><br><br clear="all"><div><br></div>-- <br><b>Afkham \
Azeez</b><br><font face="verdana, sans-serif"><span style="font-size:x-small"><span \
style="font-family:arial;font-size:small"><font face="verdana, sans-serif"><span \
style="font-size:x-small">Director of Architecture</span></font>; <span \
style="font-size:x-small">WSO2, Inc.; </span><a href="http://wso2.com/" \
target="_blank"><span \
style="font-size:x-small">http://wso2.com</span></a></span></span></font><span \
style="font-size:x-small"><br>








<span style="font-size:small"><span style="font-size:x-small">Member; Apache Software \
Foundation; </span><span style="font-size:x-small"><a href="http://www.apache.org/" \
target="_blank">http://www.apache.org/</a></span></span><br>








</span><div><i><span style="font-size:x-small"><a href="http://www.apache.org/" \
target="_blank"></a></span></i><i><span style="font-size:x-small"><br>email: \
</span></i><a href="mailto:azeez@wso2.com" target="_blank"><i><span \
style="font-size:x-small">azeez@wso2.com</span></i></a><i><span \
style="font-size:x-small"> cell: <a href="tel:%2B94%2077%203320919" \
value="+94773320919" target="_blank">+94 77 3320919</a><br>








blog: </span></i><a href="http://blog.afkham.org" target="_blank"><i><span \
style="font-size:x-small">http://blog.afkham.org</span></i></a><i><span \
style="font-size:x-small"><br>twitter: </span></i><a \
href="http://twitter.com/afkham_azeez" target="_blank"><i><span \
style="font-size:x-small">http://twitter.com/afkham_azeez</span></i></a><i><span \
style="font-size:x-small"><br>








linked-in: </span></i><i><span style="font-size:x-small"><a \
href="http://lk.linkedin.com/in/afkhamazeez" \
target="_blank">http://lk.linkedin.com/in/afkhamazeez</a></span></i><br><div></div><div><i><br></i></div><div><i><span \
style="font-style:normal"><span style="font-size:x-small">Lean . Enterprise . \
Middleware</span></span></i></div>








</div><br>
</font></span></blockquote></div><br><br clear="all"><br>-- <br><br>Thanks &amp; \
regards,<br>Nirmal<br><br>Software Engineer- Platform Technologies Team, WSO2 \
Inc.<br>Mobile: <a href="tel:%2B94715779733" value="+94715779733" \
target="_blank">+94715779733</a><br>





Blog: <a href="http://nirmalfdo.blogspot.com/" \
target="_blank">http://nirmalfdo.blogspot.com/</a><br>

</div></div></blockquote></div><br><br clear="all"><br>-- <br><br>Thanks &amp; \
regards,<br>Nirmal<br><br>Software Engineer- Platform Technologies Team, WSO2 \
Inc.<br>Mobile: <a href="tel:%2B94715779733" value="+94715779733" \
target="_blank">+94715779733</a><br>




Blog: <a href="http://nirmalfdo.blogspot.com/" \
target="_blank">http://nirmalfdo.blogspot.com/</a><br>

</div></div><br></div></div><div>_______________________________________________<br>
Carbon-dev mailing list<br>
<a href="mailto:Carbon-dev@wso2.org" target="_blank">Carbon-dev@wso2.org</a><br>
<a href="http://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev" \
target="_blank">http://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev</a><br> \
<br></div></blockquote></div><br>Thanks,<br>Dileepa<br clear="all"><br>-- <br>Dileepa \
Jayakody,<br>Software Engineer, WSO2 Inc.<div><br>Lean . Enterprise . \
Middleware<br><br></div>Mobile : <a href="tel:%2B94777-857616" value="+94777857616" \
target="_blank">+94777-857616</a><br>


<br>
<br>_______________________________________________<br>
Stratos-dev mailing list<br>
<a href="mailto:Stratos-dev@wso2.org" target="_blank">Stratos-dev@wso2.org</a><br>
<a href="https://wso2.org/cgi-bin/mailman/listinfo/stratos-dev" \
target="_blank">https://wso2.org/cgi-bin/mailman/listinfo/stratos-dev</a><br> \
<br></blockquote></div><br><br clear="all"><br>-- <br><br>Thanks &amp; \
regards,<br>Nirmal<br><br>Software Engineer- Platform Technologies Team, WSO2 \
Inc.<br>Mobile: <a href="tel:%2B94715779733" value="+94715779733" \
target="_blank">+94715779733</a><br>

Blog: <a href="http://nirmalfdo.blogspot.com/" \
target="_blank">http://nirmalfdo.blogspot.com/</a><br>



_______________________________________________
Carbon-dev mailing list
Carbon-dev@wso2.org
http://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic