Hi all,

I am currently working on the project “Versioning support for ESB
artifacts”. I have completed implementing the solution in wso2 synapse and
also done necessary changes in the developer studio as well. According to
the project, proxy service and sequence artifacts will be deployed and
dispatched as follows.

Proxy service deployment

A versioned proxy service should be defined as follows.

<proxy name="testproxy" startOnLoad="true" trace="disable"
transports="https http" version="1.0.0" isDefault=”true”></proxy>

The defined version will be concatenated with the proxy name to generate a
unique id for the proxy service. The proxy service will be deployed using
this unique id.

Eg. testproxy/1.0.0

The isDefault attribute helps the user to name the respective version as
the default version.(See proxy service dispatching for effect of isDefault)

If there is no version attribute defined, the proxy is deployed by its
name. This measure is taken to support backward compatibility.

Proxy service dispatching

A proxy service should be referred in a request as follows.

The following requests are processed and the proxy service is dispatched.


   -

   http://localhost:8280/services/StockQuoteProxy/1.0.0 or
   
http://localhost:8280/services/StockQuoteProxy/1.0.0.StockQuoteProxy/1.0.0HttpSoap11Endpoint


If the request is sent as follows, the proxy service with the respective
version is deployed.


   -

   http://localhost:8280/services/StockQuoteProxy or
   
http://localhost:8280/services/StockQuoteProxy.StockQuoteProxy/HttpSoap11Endpoint


If a service is not found for the above request,

1). If the user have defined a proxy service with the attribute isDefault =
“true” with the name requested, it will be dispatched.

2).If no axis service is found, it will see if there is only one proxy
service containing the name provided. If so it is dispatched.

2). If there are many proxy services with the given name, the service with
the highest version is dispatched.

Serializing an artifact

When serializing an artifact, both name and version can be taken from the
artifact object to create the serialized artifact.

Sequence deployment

Ideally sequence deployment should be as follows.

<sequence name="test" trace="disable" xmlns="http://ws.apache.org/ns/synapse";
version=”1.0.0”> </sequence>

The defined sequence name will be concatenated with the version to create a
unique id.

Eg.test/1.0.0

The deployed sequence will be added to the local registry with this unique
id as the key.

Sequence dispatching

A versioned sequence should be referenced as follows.

<sequence key="test/1.0.0”/>

<target insequence=”testInSeq/1.0.0” outSequence=”testOutSeq/1.0.0”/>

Developer Studio

In the developer studio,


   -

   When creating a proxy service the user can define a version(not a
   mandatory field). If the user is entering a version number, it is validated
   to see if it is in the right format. The user also can tick whether the
   proxy service is a default version.



   -

   When creating a sequence, similarly the version can be provided(not
   mandatory). Also if a version is provided, it is validated whether it is in
   the right format.



   -

   When dragging and dropping available sequences, the version will be
   appended automatically.


Please do reply if there is any feedback.
Thank you,
Amjadh Ifthikar.

-- 
Amjadh Ifthikar
Trainee Software Engineer
WSO2 Inc.
Mobile: +94777459181
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to