You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@synapse.apache.org by Vikas <vi...@infravio.com> on 2006/03/16 15:07:46 UTC
IRC-Log (16 - march-2006)
paulfremantle HI
paulfremantle sorry im late
paulfremantle technical problems getting on !
-->| Hariharasudhan (n=hari@220.225.137.194) has joined #apache-synapse
pvikas hi everyone..
Hariharasudhan hi everyone ..
paulfremantle how are you?
Hariharasudhan iam fine thankyou
Soumadeep hi everyone
paulfremantle hi Soumadeep
paulfremantle did you get a chance to look at the code I sent?
Soumadeep Yeah I did... the thing is the lookup is all embedded
paulfremantle explain?
Soumadeep So you see, we need to do all the parsing for each mediator
paulfremantle no
paulfremantle the parsing is done by ADB
paulfremantle the example I sent I coded the XML Helper because ADB wasn't working properly
paulfremantle they have fixed it
Soumadeep ok
paulfremantle so the only requirement is to write beans or schema to describe the data structures
pvikas got a doubt... we need the schemas to generate the classes while doing a bean-mapping?
Soumadeep so the consumer and consumerIdentification classes were generated by adb. right?
paulfremantle no
paulfremantle vikas
paulfremantle there are two ways of using ADB
paulfremantle 1) XSD2Java
paulfremantle which requires a schema
paulfremantle (tho there is a very cool Eclipse tool to create the schema)
paulfremantle or
paulfremantle 2) BeanUtil
paulfremantle which uses reflection to read an XML into an existing Bean
-->| Rajesh_Koilpilla (n=chatzill@220.225.137.194) has joined #apache-synapse
Soumadeep You mean the instance will be created from the xml
paulfremantle yep
Soumadeep and the bean needs to be generated... like it's done in xmlBeans
paulfremantle no
paulfremantle if you use the dynamic one
paulfremantle you can just code some simple javabeans
Soumadeep ok... ok
paulfremantle and serialise/deserialise
paulfremantle i JUST got a note from deepal saying he fixed the BeanUtil
paulfremantle so I'll try it out and send some code through
Soumadeep well, still the problem is the classes that are generated are hard coded..
paulfremantle as long as the bean has getters/setters that match the xml tags
paulfremantle why is that a problem?
Soumadeep we then need to maintain it... in case there is a change in the config file
paulfremantle you have to maintain something
Soumadeep yup
paulfremantle and Java is a good choice.... its easy to see the mapping
Soumadeep 1) maintain the java code 2) also make changes in the mediator - for any change in the config files
paulfremantle but
paulfremantle the point is
paulfremantle if I make a change to the config file now
paulfremantle i dont have any type-safety
paulfremantle under SO
dims waves and says hi
paulfremantle but if instead I change the JavaBean
paulfremantle then my GUI and compiler point out the places where the mediator needs changing
paulfremantle that is a benefit
Soumadeep at the attribute level we have metadata
Soumadeep in So
Soumadeep which is more important in this case as it's all about name-value pair
paulfremantle but i am representing your NV pairs perfectly well
paulfremantle the problem with SO is that everything is a NV pair. You cannot use the full structure of XML
paulfremantle so if I have a unbounded list of serviceIDs
paulfremantle you have to call them
paulfremantle serviceID1
paulfremantle serviceID2
paulfremantle serviceID983
paulfremantle etc
paulfremantle whereas with ADB and pure XML you can simply have a sequence
Soumadeep oh you are talking about the SynapseObject Name...
Soumadeep for that you can auto generate... we gave it a name so that it's user friendly
paulfremantle no this is a serious point.... you cannot have an array in SynapseObject
Soumadeep yes you can
paulfremantle how?
Soumadeep a SynapseObject can have a SynapseObject... at the attribute level we can add an Object Array type
paulfremantle but this is all replicating what is in XML
Soumadeep getObjectArray("listOfIPs");
paulfremantle I strongly believe
paulfremantle that the code model I sent
paulfremantle is more maintainable
paulfremantle simpler
paulfremantle has easier-to-read XML
Soumadeep yeah I get your point....
Soumadeep <Items>
Soumadeep <Item/>
Soumadeep <Item/>
Soumadeep </Items>
paulfremantle and is more appropriate than SO
paulfremantle i am very happy if you want to use SO
paulfremantle as long as it isn't in the core of Synapse
Soumadeep Well, the only reason I proposed So was... to give an user a facility by which they can manipulate config data easily, rather than write utils for every mediator
paulfremantle I understand
paulfremantle but those utils are already written
paulfremantle and if we find bugs in them
paulfremantle the Axis2 team have promised to fix them :p
paulfremantle i think writing JavaBeans to manipulate config data is actually good - it makes it clear to a Java programmer what the config structure is
pvikas [wondering] can i get back object-types from OMElement without writing a new util or can i do a depth first search on it without new UTILS?
paulfremantle Object types.... is BeanUtil
Soumadeep I feel too much flexibility is deterrent
paulfremantle Depth First search - is XPath
Soumadeep The other issues that we might need to focus is management features
Soumadeep Chathura, did share some of his thoughts about the management interface but I had a feeling that he had put admin and management fetaures together
Soumadeep I feel we need to isolate them
Soumadeep Any thoughts?
Soumadeep Have we come to any conclusion about how to instrument management data and the mechanism by which we will propagate transaction events
Soumadeep ?
paulfremantle well firstly
paulfremantle i think we need to have part of this discussion on the axis2 mailing list
paulfremantle i think we ought to instrument axis2 better
paulfremantle but I think we can easily add some instrumentation to our usage of Axis2
paulfremantle so for example
paulfremantle when we make a call to a remote service
paulfremantle i think that could easily be instrumented in Synapse
paulfremantle i personally think we need to put a lot of focus on ws-rm and ws-security
paulfremantle i see a lot of requests for people to use synapse to support those
pvikas they would be QoS modules, part of axis2.. users can leverage their functionalities if they need it, is there anything specific Synapse can do in that field?
paulfremantle yes we need to have mediators that enable and control the underlying modules
paulfremantle so that a synapse config can define the rm considerations for a flow thru synapse for example
Soumadeep Can you give us a scenario in terms of how Transaction events will be sent?
paulfremantle im not sure i understand the question
paulfremantle WS-AT transactions do you mean?
Soumadeep I was under the impression that we will be using JMX notification to send events
paulfremantle oh i see
paulfremantle from a management perspective?
Soumadeep yeah
paulfremantle well im not a JMX guru.... I actually think it might be more useful to have a mediator that can send a message to another SOAP endpoint
paulfremantle for example
paulfremantle <notify>
paulfremantle and have the config for the notify mediator
paulfremantle specify the message and URL to send
paulfremantle what do you think?
Soumadeep Well, I would suggest we should be using some eventing concepts, as it's monitoring related and we need to transport the data as quickly as possible
paulfremantle yes i agree
paulfremantle for example doing a JMS publication would suit a lot of companies
paulfremantle or creating an SNMP event
paulfremantle I personally think JMX is good - but I don't yet see wide adoption for enterprises
Soumadeep SNMP... now more improved to JMS :-)
Soumadeep I mean JMX
paulfremantle but you guys may have seen something different
pvikas once synapse defines a standard way of assimilating and keeping management data, users can define their own mediators to handle them...
paulfremantle yes +1 vikas
pvikas so i think we should concentrate on covering the data and not the mode ???
paulfremantle well.... lets try to do a bit of both
paulfremantle i think we need at least one or two mediators that show how it can be used
Soumadeep Are you all ok with the MIX struct that I sent earlier?
pvikas a sample management_event handling mediator can be provided...
paulfremantle say a SOAP send and a SNMP
Soumadeep We have one in place
paulfremantle yes
paulfremantle cool
Yury hi, I want to make research about load balancing on soap intermediary level. So can you give me any directions?
paulfremantle i think it was pretty good
paulfremantle hi Yury
paulfremantle we are doing some work on that
paulfremantle Soumadeep --- maybe you can tell him about the failover mediator
Soumadeep Let me send the JMX Mediator that we tested at our end .... using the MIX format...
paulfremantle (I have to go --- I have another call starting
paulfremantle yes please
pvikas actually, we have worked a bit on the load-balancing part... but stalled because of the discussion over SO and OMElements...
paulfremantle cool
paulfremantle can someone post the log?
paulfremantle when you guys finish up?
Soumadeep Bye everyone...
pvikas i find it rather tough to work with all the freedom and flexibility that OMelements provide
paulfremantle bye!
<--| paulfremantle has left #apache-synapse
pvikas so Yury.. what exactly are u looking for?
Yury so
Yury i can't find any serious benefits on doing that on soap level
Yury what do you think?
Yury there are a lot hardware solution for that
Soumadeep that depends on what you are trying to achieve
Soumadeep :-)
Yury hm...
Soumadeep Here the concept of load balancing is more of routing to an EPR
Yury so, what i have found is some load balancing strategies
Soumadeep Can you share it with us
pvikas could think of round-robin and performance based... any more?
Yury one sec
Yury RoundRobin â This non-adaptive strategy keeps a list
Yury of locations containing at least one object group member,
Yury and selects members by simply iterating through
Yury that location list.
Yury Random â This non-adaptive strategy keeps a list of
Yury locations where object group members are present and
Yury randomly chooses a location to serve a request.
Yury LeastLoaded â This adaptive strategy allows locations
Yury to continue receiving requests until a threshold value
Yury is reached. Once the threshold value is reached, subsequent
Yury requests are transferred to the location with the
Yury lowest load.
Yury LoadMinimum â This adaptive strategy calculates
Yury the average loads at locations containing object group
Yury members. If the load at a particular location is higher
Yury than the average load and greater than the least loaded
Yury location by a certain migration threshold percentage,
Yury all subsequent requests will be transferred to the least
Yury loaded location.
pvikas oh.. so random is something i missed..
pvikas Yury, are you on the mailing list?
Yury yep
pvikas will be putting in mediators for load-balancing and failover soon... pending a discussion on the xml format..
pvikas maybe you can help us formulate strategies..
Yury ok
pvikas ok.. got to go..BYE
Yury bye
Soumadeep bye guys
|<-- Soumadeep has left irc.freenode.net ("ChatZilla 0.9.61 [Mozilla rv:1.7.2/20040803]")