Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

which technologies to use for middleware server in .net?

I don't know whether this is a silly question! I searched the web with no useful hits. I am a dot net user (C#).I want to develop a Server, it may be called a middleware server (actually I am not sure), which does the following tasks, I have a server which cannot be modified and many clients that request the server and receive the results. I can modify the clients.Now I want to develop software that receives client requests,check if the server is busy or how many tasks are queued at the server, store the client requests to temporary database if server is busy,fetch requests queued in the temporary database and forward to the server and then receive the results and forward to to clients and the like.The questions are

  1. which technologies are best to use while remaining in dotnet, WCF, Webservives, remoting, or other?

  2. how complex is this task assuming that there are tasks like transaction handling, load balancing, logging, security checking mechanisms and the like?

  3. what things should i read to do these task?

  4. while searching I find such things as middleware in java but not in dotnet. what is the reason?

like image 676
kebede Avatar asked Sep 02 '10 06:09

kebede


1 Answers

Short Answer: From the sounds if it, if you just want to buffer your server from overload, you can get away with handling the request asynchronously. WCF supports MSMQ natively. MSMQ supports DTC so messages can be placed and removed transactionally.

The larger topic of Middleware is quite a 'fuzzy' term (as are terms such as Transactions, ESB, etc). MS do have products in this space. This includes:

  • Queing technologies (Message Oriented Middleware) MSMQ (Alternatives include IBM Websphere MQ, Rabbit MQ etc)
  • XA / ACID / TP Monitors - Microsoft DTC
  • EAI - Microsoft has BizTalk for integration (There are many other vendors here)
  • ESB - Microsoft has BizTalk. You can also look at the MS Managed Service Engine (MSE) for service virtualization. This is defunct
  • For RESTful integration, WebAPI
  • BPM / BPEL - Again, MS have BizTalk. Can also include business level monitoring and reporting
  • Operational aspects - as you've described - management, monitoring, load balancing, throttling, SLA agreements on services etc
  • For Web Services (and WS Extensions), WCF. There are a large number of configuration options here which mostly abstract away the need to change code when between switching protocols.

And this is just scratching the surface :)

like image 73
StuartLC Avatar answered Nov 27 '22 17:11

StuartLC