Hi Luciano,

I kept the @Scope default (@Scope was not present, so I think it’s STATELESS).

My aim is building a SOA based system, so I want to use binding.ws for BPM easy 
to use.

All the SCA service are in the same app, how can I expose them as web services 
but SCA service call each other by local call.

P/S: I attached my composite file for further information.

Thanks you & Best regards

 

From: Luciano Resende [mailto:[email protected]] 
Sent: Tuesday, August 21, 2012 8:59 AM
To: [email protected]
Subject: Re: Tuscany SCA 2.0 web application performance is terrible

 

 

On Mon, Aug 20, 2012 at 6:46 PM, binhnt22 <[email protected]> wrote:

Hi Raymond,

 

Thank you for your concern. Here is the information:

I’m building a demo just to test performance among SCA, BPM and our legacy 
code. In order to decide to use SCA or not for our next-gen enterprise system.

1.       I have a Stock Transfer web application which does the following 
things:

-          Subtract the quantity of products from the source stock (Stock table)

-          Add the quantity of products into the target stock (Stock table)

-          Create an importing product order if the product in the source stock 
is too low (StockOrder table)

-          Change the sale quota of the show that manages the target stock. 
(ShopQuota table)

-          Generate a stock transfer transaction (StockTrans table)

The legacy code(java), SCA service (2.0) and JBpm (5.1) process is a part of 
the web application (struts2 + tiles). The database is Oracle 10g. The web 
server is apache-tomcat-7.0.27

 

a)      The legacy code is very simple, uses hibernate + c3p0, call all the 
work in a sequence order.

b)      The SCA: the web application has only one web.composite, contains 4 
Component for each work (work 1st and 2nd is the same)

Each component was implemented by a java class which call the correlative 
legacy code.

Each one expose a web service for JBpm through binding.ws

c)      The BPM: create 4 handlers to manipulate 4 web service above, the 
handlers use HttpClient (apache common-httpclient) to acquire the fastest way 
when call web service

 

2.       Except the database server, the web server and test environment are on 
one PC. The database server is in the same Local network with the PC.

3.       I kept the default Tomcat configuration. (CATALINA_OPTS=”-Xms128m 
–Xmx512m –XX:MaxPermSize=256m”

 

I know placing both Web server and Test environment in a PC is not ok. But at 
least the SCA should be as good as the legacy code (slower 15-30%), but it took 
2-4 times.

        
Concurrent request

10

20

50


Web

Min (ms)

215

215

537


Max (ms)

283

1880

3972


Avg (ms)

259

753

2486


Error (%)

0%

0%

0%


SCA

Min

356

528

1940


Max

870

3726

15136


Avg

656

2932

8520


Error (%)

0%

0%

0%


BPM

Min

529

724

2694


Max

1954

3268

11889


Avg

1304

2509

10229


Error (%)

0%

0%

0%

 

Could you please share one of your system architecture which use Tuscany 
heavily without performance issues? That would be a great help.

.

Best regards

 

 

Is your component defined as @Scope composite (a.k.a. singleton)

What if you try a different binding (e.g. REST, JSON-RPC or RMI) ?  




 

-- 
Luciano Resende
http://people.apache.org/~lresende
http://twitter.com/lresende1975
http://lresende.blogspot.com/

Attachment: web.composite
Description: Binary data

Reply via email to