axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andreas Veithen <andreas.veit...@gmail.com>
Subject Re: [GSoC Project Proposal] Distributed TCP Monitor
Date Tue, 30 Mar 2010 22:56:56 GMT
I was thinking more about something like ITCAM for SOA.

On Tue, Mar 30, 2010 at 13:40, Sanjiva Weerawarana
<sanjiva@opensource.lk> wrote:
> That runtime monitoring / correlation is what the WSO2 Business Activity
> Monitor does / is for ...
> See: http://wso2.com/products/business-activity-monitor/
> Sanjiva.
>
> On Tue, Mar 30, 2010 at 2:27 PM, Andreas Veithen <andreas.veithen@gmail.com>
> wrote:
>>
>> I was actually referring to scenarios where a service may call other
>> services, which in turn may call again other services. In these
>> scenarios, it is not sufficient to simply collect received/sent
>> messages on different hosts, unless the system is isolated
>> (development environment) or the request rate is sufficiently low so
>> that messages can be correlated based on time. Here is a concrete
>> scenario from a project in my company:
>>
>> - Request comes in on an ESB that does security and validation.
>> - Request is processed by an application server which persists the
>> received information and publishes a JMS message (pub/sub events).
>> - The event is consumed by one or more components that may in turn
>> interact with other services.
>>
>> If you want track this flow, it is not sufficient to intercept the
>> messages on the different hosts: in addition, you need to instrument
>> the services so that the outgoing requests are correlated with the
>> incoming requests (by adding SOAP and/or transport headers). What I
>> would like to be able to do in the above scenario is to enable
>> end-to-end monitoring on a per-message basis: I add a special SOAP or
>> HTTP header to the initial request to enable logging and this
>> information is propagated along the chain. Every service/component
>> then sends a copy of the incoming/outgoing requests/responses to a
>> central place where the sequence of events is reconstructed.
>>
>> One way this could be achieved is with a tool that postprocesses the
>> artifacts from the build process. For each artifact, the tool would
>> disassemble the artifact, instrument the code using a set of AspectJ
>> aspects and reassemble the artifact for deployment. The responsibility
>> of the aspects would be to intercept messages, log them and modify
>> them to ensure proper correlation. Of course this only works if the
>> artifacts are J2EE deployables (WARs or EARs). Note that we already
>> use AspectJ for a similar use case (although at a much smaller scale)
>> in the transport test suites [1]. Interestingly, this approach would
>> allow to cover interactions that are not SOAP based, e.g. one could
>> even intercept the database queries executed during the flow.
>>
>> Andreas
>>
>> [1]
>> https://svn.apache.org/repos/asf/axis/axis2/java/transports/trunk/modules/jms/src/test/java/org/apache/axis2/transport/jms/LogAspect.java
>>
>> On Tue, Mar 30, 2010 at 09:11, Srinath Perera <hemapani@gmail.com> wrote:
>> > Hi Nilupa;
>> >
>> > When we collect messages from a one location by installing proper
>> > handler that will intercept and send messages to to that one location
>> > (this one location can be a single server, pub/sub channel etc). There
>> > is many ways to make sense of those collected messages. What Andreas
>> > mentioned (following complete transaction) is a one possibility.
>> >
>> > I think you should come up with few scenarios on how you would make
>> > sense of the message.
>> >
>> > Thanks
>> > Srinath
>> >
>> > On Sun, Mar 28, 2010 at 9:46 PM, nilupa bandara <nilupas@gmail.com>
>> > wrote:
>> >> Hi,
>> >>
>> >> First let me thank you for commenting.
>> >>
>> >> As far as I understood, what you would like to see from the proposed
>> >> tool is to view set of messages that are exchanged in reponse to a
>> >> particular input message. With the understanding that I am having at
>> >> the momnet, one way to do it is to filter out the central repository
>> >> of messages based on 'To' , 'From' headers and try to contruct the
>> >> message chain from it. We can allow the client GUI wich connects to
>> >> the central repository to provide the paramenters (For instance the
>> >> value of 'To' header) from which an intelligent filtering can be done
>> >> for the set of messages avialable at the central repository.
>> >>
>> >> Perhaps someone has an idea of a better way of doing it and is willing
>> >> to share it with us. It would be really nice to hear from them.
>> >>
>> >> Thanks in advance ..!!
>> >>
>> >> Best Regards,
>> >> Nilupa
>> >>
>> >> On Sat, Mar 27, 2010 at 6:40 PM, Andreas Veithen
>> >> <andreas.veithen@gmail.com> wrote:
>> >>> Personally, I think that the added value of extending the SOAP monitor
>> >>> module to collect messages in a central place is too limited to
>> >>> attract enough interest from the user community, so that it will be
>> >>> difficult to ensure the evolution of such a project in the future.
>> >>> However, what many people are looking for is a tool that allows to
>> >>> track the flow of a message through a distributed system, or more
>> >>> generally to track the sequence of events triggered by a given input
>> >>> message (sort of end-to-end transaction monitoring).
>> >>>
>> >>> On Wed, Mar 24, 2010 at 23:03, nilupa bandara <nilupas@gmail.com>
>> >>> wrote:
>> >>>> Hello,
>> >>>>
>> >>>> I am graduate student at Politecnica de Madrid and I am thinking
of
>> >>>> proposing a GSoC project this summer. I would like to take project
>> >>>> "Distribute TCP Monitor" descried[1] which is very interesting and
>> >>>> also should be helpful to any Java developer using Apache Axis2
Web
>> >>>> services middleware. I will submit more detailed proposal later.
I
>> >>>> would really like to hear any feedback from you. Any suggestions
or
>> >>>> features that you would like to see in a "Distributed TCP Monitor"
>> >>>> are
>> >>>> most welcome.
>> >>>>
>> >>>> Best Regards,
>> >>>> Nilupa Bandara
>> >>>>
>> >>>> [1]
>> >>>>
>> >>>> Distributed TCP monitor
>> >>>>
>> >>>> To use TCP monitor we have to tweak the endpoints, which is bit
hard
>> >>>> sometimes (e.g. two channels Async case for Axis2). We can solve
the
>> >>>> problem by writing a Axis2 module (Handler) that intercept messages
>> >>>> comes in and goes out of a Axis2 server and send to a UI (via a
>> >>>> pub/sub channel or a message Box e.g. ) or record them so user can
>> >>>> pull those messages. Also, we can do something to turn the module
on
>> >>>> and off remotely, so users can have his module deployed, but turn
it
>> >>>> on only when they want to debug the system.
>> >>>>
>> >>>> Then we can take this to next level by adding this module to all
>> >>>> services in a system , configuring modules to send all collected
>> >>>> messages to a pub/sub channel, and subscribing to those messages
via
>> >>>> a
>> >>>> UI, and depicting those messages through a UI. Then users have a
>> >>>> TCPMon for a whole system.
>> >>>>
>> >>>> ---------------------------------------------------------------------
>> >>>> To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
>> >>>> For additional commands, e-mail: java-dev-help@axis.apache.org
>> >>>>
>> >>>>
>> >>>
>> >>> ---------------------------------------------------------------------
>> >>> To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
>> >>> For additional commands, e-mail: java-dev-help@axis.apache.org
>> >>>
>> >>>
>> >>
>> >> ---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
>> >> For additional commands, e-mail: java-dev-help@axis.apache.org
>> >>
>> >>
>> >
>> >
>> >
>> > --
>> > ============================
>> > Srinath Perera, Ph.D.
>> >   WSO2 Inc. http://wso2.com
>> >   Blog: http://srinathsview.blogspot.com/
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
>> > For additional commands, e-mail: java-dev-help@axis.apache.org
>> >
>> >
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
>> For additional commands, e-mail: java-dev-help@axis.apache.org
>>
>
>
>
> --
> Sanjiva Weerawarana, Ph.D.
> Founder, Director & Chief Scientist; Lanka Software Foundation;
> http://www.opensource.lk/
> Founder, Chairman & CEO; WSO2, Inc.; http://www.wso2.com/
> Member; Apache Software Foundation; http://www.apache.org/
> Director; Sahana Software Foundation; http://www.sahanafoundation.org/
> Visiting Lecturer; University of Moratuwa; http://www.cse.mrt.ac.lk/
>
> Blog: http://sanjiva.weerawarana.org/
>

Mime
View raw message