Return-Path: X-Original-To: apmail-synapse-dev-archive@www.apache.org Delivered-To: apmail-synapse-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 7D4D4109D1 for ; Mon, 19 Aug 2013 21:03:14 +0000 (UTC) Received: (qmail 17353 invoked by uid 500); 19 Aug 2013 21:03:14 -0000 Delivered-To: apmail-synapse-dev-archive@synapse.apache.org Received: (qmail 17308 invoked by uid 500); 19 Aug 2013 21:03:14 -0000 Mailing-List: contact dev-help@synapse.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@synapse.apache.org Delivered-To: mailing list dev@synapse.apache.org Received: (qmail 17301 invoked by uid 99); 19 Aug 2013 21:03:14 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 19 Aug 2013 21:03:14 +0000 X-ASF-Spam-Status: No, hits=1.7 required=5.0 tests=FREEMAIL_ENVFROM_END_DIGIT,HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of mastershield2007@gmail.com designates 209.85.128.181 as permitted sender) Received: from [209.85.128.181] (HELO mail-ve0-f181.google.com) (209.85.128.181) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 19 Aug 2013 21:03:06 +0000 Received: by mail-ve0-f181.google.com with SMTP id jz10so3294486veb.26 for ; Mon, 19 Aug 2013 14:02:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type; bh=1OCSelvLcBA5rKOK+K3J3WwY20gcY37vQ0BFs483EZM=; b=Q0bzt7MNJm5+nQs03ZFYxv6T/ETIhqyGWcnsud1gwcIUDNpdifq5WYyQ3m7URRfxM5 654HD4SvXxlqjD1s/c7wtV7Fs2IR+6LfsltnMQh4Iymxjd5dTL6BV+cGkU2PY+XGiTVg c+OkUKv++fNZtGF41vk8r13AXEPHZeFYL8Dlt0UxugXim9mqwkPG1yt/ORscusyw93Rz 4dZx5ooRgGSlGE6w4yo3i/HvPbTjD63yFd3ACPU8u83ASTY2Kw4gi8LP6J3ZUDbxDnHJ /vfuYvIZRj2h+7S3XAxKrEJsyKhf4zI+7cp9ZCWG7/iGsgkwC9GuZ5WjVq8fenZXgYP0 vuvA== X-Received: by 10.220.91.16 with SMTP id k16mr4925877vcm.21.1376946165977; Mon, 19 Aug 2013 14:02:45 -0700 (PDT) MIME-Version: 1.0 Received: by 10.58.215.165 with HTTP; Mon, 19 Aug 2013 14:02:15 -0700 (PDT) In-Reply-To: References: From: Udayanga Wickramasinghe Date: Mon, 19 Aug 2013 17:02:15 -0400 Message-ID: Subject: Re: Synapse Proxy Services Versioning To: dev@synapse.apache.org Content-Type: multipart/alternative; boundary=047d7b343f1a19178504e4534301 X-Virus-Checked: Checked by ClamAV on apache.org --047d7b343f1a19178504e4534301 Content-Type: text/plain; charset=ISO-8859-1 Hi, sorry for my late reply. +1 for hierarchical services. I think one other alternative is to implement versioned proxy services through 'version' attribute which is how sequences/endpoints are versioned right now. We plan to represent different versions of same service using a unique id (uuid) and register them in 'AxisConfiguration'/SynapseConfig. However this requires a special handler (ie:- Axis2 handler/dispatcher) to convert a name,version pair to the respective uuid and dispatch to the relevant service. ie:- handler will convert /services/TestProxy/1.0.0 to /services/TestProxy_1.0.0_{uuid} Regards Udayanga On Sun, Aug 11, 2013 at 2:46 PM, Hiranya Jayathilaka wrote: > > On Aug 11, 2013, at 4:52 AM, Thilini Gamage wrote: > > Hi all, > > I'm currently working on the GSOC project of 'Versioning of Synapse > Artifact' [1] and up to now I have completed the versioning of Synapse > sequences ( including main sequences) and endpoints. The versioning of > sequence and endpoints is done by generating an unique identifier (based on > artifact name and version) for each versioned artifact and maintaining that > unique identifier in deployment and run time dispatching etc. > > Now I'm looking into proxy services versioning and according to my > understanding the proxy services versioning can to be enabled by building > axis2 service for each versioned proxy. The axis2 service deployment and > dispatching should be done using a generated unique identifier. > > > I think this should be similar to API versioning. APIs use the > VersioningStrategy interface to determine how the version numbers are > associated with individual APIs. The default implementation uses a > URL-based strategy. > > e.g. /context/1.0.0/foo/bar > > You can take a similar approach for proxy services. May be we only need > URL based versioning in the case of proxy services. Since proxy services > deal with SOAP messages, I don't think other options make much sense. So we > probably need something like: > > /services/TestProxy/1.0.0 > > The main problem however is representing different versions of the same > service in the SynapseConfiguration/AxisConfiguration. Axis2 supports > something called hierarchical services (see > https://issues.apache.org/jira/browse/SYNAPSE-914). May be you can try to > leverage that. > > Thanks, > Hiranya > > > > Any comments and suggestions on this? > > [1]-https://issues.apache.org/jira/browse/SYNAPSE-928 > -- > Thilini > Thilini Shanika Gamage > Department of Computer Science and Engineering > University of Moratuwa > > > -- > Hiranya Jayathilaka > Mayhem Lab/RACE Lab; > Dept. of Computer Science, UCSB; http://cs.ucsb.edu > E-mail: hiranya@cs.ucsb.edu ; Mobile: +1 (805) 895-7443 > Blog: http://techfeast-hiranya.**blogspot.com > > -- http://www.udayangawiki.blogspot.com --047d7b343f1a19178504e4534301 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Hi,=A0
sorry for my late rep= ly.=A0
+1 for hierarchical services. I thin= k one other alternative is to implement versioned proxy services through &#= 39;version' attribute which is how sequences/endpoints are versioned ri= ght now. We plan to represent different versions of same service using a un= ique id (uuid) and register them in 'AxisConfiguration'/SynapseConf= ig. However this requires a special handler (ie:- Axis2 handler/dispatcher)= to convert a name,version pair to the respective uuid and dispatch to the = relevant service.

ie:- handler will convert=A0/services/TestProxy/1.0.0 =A0to =A0=A0/services/TestProxy_1.0.0_{uuid}

Regards
Udayanga=

On Sun, Aug 11, 2013 at 2:46 PM, Hiranya Jayathilaka <= hiranya911@gmail.= com> wrote:

On Aug 11, 2013, at = 4:52 AM, Thilini Gamage <tgtshanika@gmail.com> wrote:

Hi all,

I'm currently working on th= e GSOC project of 'Versioning of Synapse Artifact' [1]=A0and up to = now I have completed the versioning of Synapse sequences ( including main s= equences) and endpoints. The versioning of sequence and endpoints is done b= y generating an unique identifier (based on artifact name and version) for = each versioned artifact and maintaining that unique identifier in deploymen= t and run time dispatching etc.=A0

Now I'm looking into proxy services versioning and = according to my understanding the proxy services versioning can to be enabl= ed by building axis2 service for each versioned proxy. The axis2 service de= ployment and dispatching should be done using a generated unique identifier= .

I think this should be similar= to API versioning. APIs use the VersioningStrategy interface to determine = how the version numbers are associated with individual APIs. The default im= plementation uses a URL-based strategy.

e.g. /context/1.0.0/foo/bar

Yo= u can take a similar approach for proxy services. May be we only need URL b= ased versioning in the case of proxy services. Since proxy services deal wi= th SOAP messages, I don't think other options make much sense. So we pr= obably need something like:

/services/TestProxy/1.0.0

The = main problem however is representing different versions of the same service= in the SynapseConfiguration/AxisConfiguration. Axis2 supports something ca= lled hierarchical services (see https://issues.apache.org/jira/browse/= SYNAPSE-914). May be you can try to leverage that.

Thanks,
Hiranya

=A0

Any comments and suggestions on this?
Thilini=A0
Thi= lini Shanika Gamage
Department of Computer Science and Engineering
University of Moratuwa

--
Hiranya Jayathilaka
Mayhem Lab/RACE Lab;=
Dept. of Computer Science, UCSB;=A0=A0http://cs.ucsb.edu
E-mail:=A0hiranya@cs.ucsb.edu;=A0 Mobile:=A0+1 (805)= 895-7443
Blog:=A0http://techfeast-hiranya.blogspot.com




--
http://www= .udayangawiki.blogspot.com
--047d7b343f1a19178504e4534301--