Architecture Evaluation

G

Guest

May be the this is not the right group to post this.
But this is the only group which helps me to receive instant and valuable replies.
This is the reason I am posting this here. Excuse me for this.

We have decided a design, I would suggest if some onw help me to evaluate.

We have a windows application which is using webservices.
The client has to export certain files which requires the documents to be generated
first and then put them in xml envelope and send it to respective webservice.
The client should not wait till the document generated. But the system will have provision to show the export successfull or not?

Design -
Client sends a request to the webservice. Webservice puts the request into MSMQ.
Webservice sends the response to client that the request is received.
Now a Windows service is designed on the Server which reads the queue and based on the message fetches the data from database and generates the document.The documents are generated and saved in the database and a message is saved in the MSMQ that the documents are generated for the request of client.

Now Another windows service reads the MSMQ for the the request whose documetns are complete. That service gets the documents from database and sends the documents to another webservice. After successfull upload the windows service updates the database that the export is sucessfull.

Questions-
1. Can we have a alternative to the MSMQ?
2. We want to minimize the hits to the database. hence queing in database will be performance hit as we will have to poll the database or queue in every second(we are expecting lot of request to export) .
3. Having a queue in mdb file or in xml file would be a problem as these have their own limitations?
4. If the document generated happens to be on the client side, it would result lot of hits to webservices to get the data from the database. The data to generate the document can not be fetched in one hit.

Thanks in advance.

dinoo
 
G

Guest

Hi,

The overall design sounds good the Answers to ur Q.

1) I think MSMQ fits nicely here, to let you do the processing of the documents in squential order.

If you want to generate the document at client's end, I am sure you can architect the code in a way that all the data required from the database is clubed and a single request is made to the web service which requests the data from the database and returns a single XML package containing all the required information.
This way there will be only 1 call to the database (hoefully, if you can structure your query that way).
Once the data returns from the web service (calling the database), you can generate the document on the client machine, this will offload some processing to the client which could be a good thing...

Finally the client can submit the compeleted document to the final web service.

On a general note anywhere you find your self needs to make multiple web service calls, its time to step back and see how you can refactor the logic to package the required data in a single call.


--
Regards,
Saurabh Nandu
AksTech Solutions, reflecting your needs...
[ www.AksTech.com ]
[ www.MasterCSharp.com ]
 
A

Alvin Bruney [MVP]

along with the above consideration, i would consider relying heavier on the
MSMQ. instead of polling continuously, set a special message in the queue
tied to a trigger. the trigger fires and completes the task for the specific
messages in the queue.

--
Regards,
Alvin Bruney
[ASP.NET MVP http://mvp.support.microsoft.com/default.aspx]
Got tidbits? Get it here... http://tinyurl.com/27cok
Saurabh Nandu said:
Hi,

The overall design sounds good the Answers to ur Q.

1) I think MSMQ fits nicely here, to let you do the processing of the
documents in squential order.

If you want to generate the document at client's end, I am sure you can
architect the code in a way that all the data required from the database
is clubed and a single request is made to the web service which requests
the data from the database and returns a single XML package containing all
the required information.
This way there will be only 1 call to the database (hoefully, if you can
structure your query that way).
Once the data returns from the web service (calling the database), you can
generate the document on the client machine, this will offload some
processing to the client which could be a good thing...

Finally the client can submit the compeleted document to the final web
service.

On a general note anywhere you find your self needs to make multiple web
service calls, its time to step back and see how you can refactor the
logic to package the required data in a single call.


--
Regards,
Saurabh Nandu
AksTech Solutions, reflecting your needs...
[ www.AksTech.com ]
[ www.MasterCSharp.com ]



dinoo said:
May be the this is not the right group to post this.
But this is the only group which helps me to receive instant and valuable
replies.
This is the reason I am posting this here. Excuse me for this.

We have decided a design, I would suggest if some onw help me to
evaluate.

We have a windows application which is using webservices.
The client has to export certain files which requires the documents to be
generated
first and then put them in xml envelope and send it to respective
webservice.
The client should not wait till the document generated. But the system
will have provision to show the export successfull or not?

Design -
Client sends a request to the webservice. Webservice puts the request
into MSMQ.
Webservice sends the response to client that the request is received.
Now a Windows service is designed on the Server which reads the queue and
based on the message fetches the data from database and generates the
document.The documents are generated and saved in the database and a
message is saved in the MSMQ that the documents are generated for the
request of client.

Now Another windows service reads the MSMQ for the the request whose
documetns are complete. That service gets the documents from database and
sends the documents to another webservice. After successfull upload the
windows service updates the database that the export is sucessfull.

Questions-
1. Can we have a alternative to the MSMQ?
2. We want to minimize the hits to the database. hence queing in database
will be performance hit as we will have to poll the database or queue in
every second(we are expecting lot of request to export) .
3. Having a queue in mdb file or in xml file would be a problem as these
have their own limitations?
4. If the document generated happens to be on the client side, it would
result lot of hits to webservices to get the data from the database. The
data to generate the document can not be fetched in one hit.

Thanks in advance.

dinoo
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,537
Members
45,022
Latest member
MaybelleMa

Latest Threads

Top