Web Service or Remoting

  • Thread starter Thread starter Raju Joseph
  • Start date Start date
R

Raju Joseph

Hi All,

I am just trying to get an opinion here. I know this is always a tough
choice to make.

We are in the process of converting our VB6 based Healthcare Information
System (a full-fledged package) to .NET. Our clients have been asking for
lot of new stuff namely being able to send patient information to devices,
being able to fix appointments online, etc.

Now, with the core architecture, we would like to stick with either
web-service or remoting.

Could someone provide some insight.

Our clients could have a group of hospitals that needs to communicate with
each other. We need to send patient information to hand-held devices used by
doctors. Also, need provision for online appointments.

Thank You

Raju
 
Raju,

My opinion is very simple in that Web Service.

It is so easy to handle and opens everything for you.

(although you need of course the right security around it, before it is
opened for the whole world)

Just my opinion

Cor
 
Hi Raju,

Ok at first you are the only one here that knows the business requirements,
so you need to decide.

Web Services are great for interoperability but lousy at speed.
Remoting great for speed but not to great at interop.

I can only speak in general, when you've got control of both systems Client
and Server and speed is an issue use Remoting.
If speed is not an issue (like communicating with pda's) or you haven't got
control over the client side code, use web services.
A third option would be use messaging, if you need reliable data exchange.
 
I'd say that now (in .net FW 2.0) WS is totaly overcome Remoting, due
to binary serialisation data in WS

Remoting greats for speed only in 2 cases:
a) single call
b) tcp/binary transport
In other cases WS wins. (see articles in MS:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwebsrv/html/asmxremotesperf.asp)

Moreover, we should take into account declarativness of WS. For the
long life projects future perspective of WS is more clear. It conforms
with WinFX (indigo), and extends very simply by attibutes. If remoting
beats WS somewhere, WS saves time in supporting declarativeness and
thus wins
 
Well i do not concure with that

Remoting also provides 2 way messaging how would you do that with a
webservice ( wich has a challenge response architecture ) ??

Remoting is in 1.1 FW much faster as a webservice , i would recomend a
webservice if it needs to support non .Net clients ( although you can then
not use complex datatypes it is still possible to easy support legacy apps )

the below results comes from the link you provided


Calls per Second
(rounded) Enterprise Services ASP.NET Web services .NET Remoting TCP
Binary

Test 1: Storing orders
a) Serialized Data
b) DataSet
73
35
63
34
72
34
Test 2: Retrieving products
a) Serialized Data
b) DataSet
147
39
93
39
149
39
Test 3: Retrieving customer
a) Serialized Data
b) DataSet
618
90
289
83
682
91


am i reading something wrong here ???? seems to me that remoting is
pretty much faster

Test Avg. Calls/Second Std. Deviation
Enterprise Services 73 0.39
Enterprise Services (auth) 73 0.34
Remoting TCP/Binary 72 2.71
Remoting HTTP/Binary 68 0.86
Remoting HTTP/Binary (IIS) 66 0.31
ASP.NET Web services 63 2.71
Remoting HTTP/Binary (IIS) Password 63 0.39
Remoting TCP/SOAP 56 1.97
Remoting HTTP/SOAP 53 0.57
Remoting HTTP/Binary (IIS) Integrated 51 0.28
Remoting HTTP/SOAP (IIS) 50 0.16
ASP.NET Web services - Integrated 50 0.30
Remoting HTTP/SOAP (IIS) Password 49 0.29
Remoting HTTP/SOAP (IIS) Integrated 40 0.84

Store Order as DataSet
Test Avg. Calls/Second Std. Deviation
Enterprise Services 35 0.54
Enterprise Services (auth) 35 0.51
ASP.NET Web services 34 0.43
Remoting TCP/Binary 34 0.85
Remoting HTTP/Binary 32 0.77
Remoting HTTP/Binary (IIS) 32 1.10
Remoting TCP/SOAP 32 0.77
Remoting HTTP/Binary (IIS) Password 31 1.47
Remoting HTTP/SOAP 30 0.68
Remoting HTTP/SOAP (IIS) 30 0.48
Remoting HTTP/SOAP (IIS) Password 30 0.46
ASP.NET Web services - Integrated 29 0.37
Remoting HTTP/Binary (IIS) Integrated 28 0.37
Remoting HTTP/SOAP (IIS) Integrated 26 0.31

Load Products as Objects
Test Avg. Calls/Second Std. Deviation
Remoting TCP/Binary 149 3.05
Enterprise Services 147 2.29
Enterprise Services (auth) 146 2.49
Remoting HTTP/Binary 118 2.13
Remoting HTTP/Binary (IIS) 114 0.63
Remoting HTTP/Binary (IIS) Password 106 1.19
ASP.NET Web services 93 1.04
Remoting HTTP/Binary (IIS) Integrated 76 0.81
ASP.NET Web services - Integrated 67 0.35
Remoting TCP/SOAP 33 0.34
Remoting HTTP/SOAP 30 0.32
Remoting HTTP/SOAP (IIS) 30 0.25
Remoting HTTP/SOAP (IIS) Password 29 0.16
Remoting HTTP/SOAP (IIS) Integrated 26 0.14

Load Products as DataSet
Test Avg. Calls/Second Std. Deviation
ASP.NET Web services 39 0.12
Enterprise Services 39 0.26
Enterprise Services (auth) 39 0.21
Remoting TCP/Binary 39 1.16
Remoting HTTP/Binary (IIS) 36 0.24
Remoting HTTP/Binary 35 1.10
Remoting HTTP/Binary (IIS) Password 35 0.17
ASP.NET Web services - Integrated 33 0.09
Remoting HTTP/Binary (IIS) Integrated 31 0.21
Remoting TCP/SOAP 30 1.27
Remoting HTTP/SOAP (IIS) 29 0.12
Remoting HTTP/SOAP 28 1.07
Remoting HTTP/SOAP (IIS) Password 28 0.06
Remoting HTTP/SOAP (IIS) Integrated 25 0.08

Load Customer as Object
Test Avg. Calls/Second Std. Deviation
Remoting TCP/Binary 682 12.32
Enterprise Services 618 13.78
Enterprise Services (auth) 616 7.76
Remoting HTTP/Binary 406 7.84
Remoting TCP/SOAP 359 11.62
Remoting HTTP/Binary (IIS) 324 4.26
ASP.NET Web services 289 2.68
Remoting HTTP/SOAP 267 6.18
Remoting HTTP/Binary (IIS) Password 261 2.39
Remoting HTTP/SOAP (IIS) 214 2.84
Remoting HTTP/SOAP (IIS) Password 186 0.81
Remoting HTTP/Binary (IIS) Integrated 134 0.95
ASP.NET Web services - Integrated 130 0.67
Remoting HTTP/SOAP (IIS) Integrated 112 0.55

Load Customer as DataSet
Test Avg. Calls/Second Std. Deviation
Remoting TCP/Binary 91 2.69
Enterprise Services 90 0.30
Enterprise Services (auth) 90 0.26
ASP.NET Web services 83 0.24
Remoting HTTP/Binary 80 0.67
Remoting TCP/SOAP 78 1.04
Remoting HTTP/Binary (IIS) 78 0.22
Remoting HTTP/Binary (IIS) Password 75 0.26
Remoting HTTP/SOAP 71 0.92
Remoting HTTP/SOAP (IIS) 67 0.34
Remoting HTTP/SOAP (IIS) Password 64 0.20
ASP.NET Web services - Integrated 62 0.14
Remoting HTTP/Binary (IIS) Integrated 59 0.15
Remoting HTTP/SOAP (IIS) Integrated 52 0.13

Empty Message, Cross-Process
Test Avg. Calls/Second Std. Deviation
Enterprise Services 14687 52.66
Enterprise Services (auth) 12293 31.71
Remoting TCP/Binary 3538 38.87
Remoting HTTP/Binary 1069 8.05
Remoting TCP/SOAP 1075 11.87
Remoting HTTP/SOAP 612 7.88
Remoting HTTP/Binary (IIS) 589 1.83
ASP.NET Web services 517 1.44
Remoting HTTP/Binary (IIS) Integrated 451 1.19
Remoting HTTP/Binary (IIS) Password 421 0.90
Remoting HTTP/SOAP (IIS) 406 1.76
ASP.NET Web services - Integrated 403 0.76
Remoting HTTP/SOAP (IIS) Integrated 336 0.57
Remoting HTTP/SOAP (IIS) Password 321 0.37

Empty Message. Cross-Machine
Test Avg. Calls/Second Std. Deviation
Enterprise Services (auth) 3068 25.35
Enterprise Services 3048 38.24
Remoting TCP/Binary 2609 77.28
Remoting TCP/SOAP 760 31.65
Remoting HTTP/Binary 704 8.00
Remoting HTTP/Binary (IIS) 479 2.60
Remoting HTTP/SOAP 413 10.63
ASP.NET Web services 399 2.00
Remoting HTTP/Binary (IIS) Password 351 1.98
Remoting HTTP/SOAP (IIS) 309 1.38
Remoting HTTP/SOAP (IIS) Password 252 1.25
Remoting HTTP/Binary (IIS) Integrated 156 0.52
ASP.NET Web services - Integrated 150 0.57
Remoting HTTP/SOAP (IIS) Integrated 133 0.28



Seems to me that if you use a Intranet / corporate LAN you are much better
of using remoting

plus the fact that remoting does not need IIS you can use your own
application host ( easier to deploy to end user )
remoting also runs on Win XP Home and i think i can think of manny other
benefits

regards

Michel Posseth
 
Michel,

In our experiences, we have also found .NET remoting to much superior
to webservices (in terms of speed) especially as you start adding
security and more advanced features of webservices.

We actually have a performance whitepaper, that compares webservice
speed to one of our products for accessing a J2EE server. (not
directly applicable here, but interesting)

http://j-integra.intrinsyc.com/whitepaper/

Cheers,
Adam Cooper
 
Remoting is quicker than web services and should be the preferred infrastructure for distributed applications within an intranet environment which does not require inter-op across different platforms/applications.

WebServices, if your application is going to have public functional interfaces and be accessible over the internet. The best part is that WebServices are Indigo compatible and you won't have much problems moving to the Indigo scheme of things once it's available.

I am surprised that Enterprise Services does not figure in your list, that too is Indigo friendly and comparable to remoting when it comes to performance (I guess).

HTH, Metallikanz!

PS: Please don't "cross post" questions against multiple groups, it really does put off people answering your question.
 
Hi Raju,

Sounds as if you're about to develop an interesting application! Could you
supply additional information about the infrastructure your application is
supposed to operate in and name concrete devices?

Best regards,
Paul Gielens

Visit my blog @ http://weblogs.asp.net/pgielens/
###
 
Hi Paul,

Thanks boss. I am hoping you could give me some directions also.

We have a complete package written in VB6 for Healthcare. The package
basically takes care of everything to do with a hospital operation which
includes various service modules (Registration, Appointments...). Now, we
are moving everything to .NET based. To be specific, VB.NET.

There are lot of reason behind this, the main ones being

1. Demand for our package to work against different databases. Right now, we
support only Oracle and SQL Server 2000. There are demands for MySql and IBM
DB2.

2. Facility to fix appointments over the internet with doctors.

3. Provide patient information and test results to doctors on their PDAs
(Smart Devices).

4. Be able to integrate difference hospitals within a certain coverage to
provide services, that may not be available at a particular location. This
includes being able to transfer patient information between hospitals (for a
fee, ofcourse)

I have decided to go with web services as a means of communication. As of
now, the whole architecture is a 5-Tier architecture. I am in the process of
laying out some frameworks as a base for the system. Currently working on
designing a common database access layer for the application to talk to the
database (can be Oracle, SQL Server, MySql...)

I want to implement MVC but do not have enough notes as to how to go about
it, when it comes to web services.

If you have any ideas or suggestions, please kindly let me know.

I read Rocky's book and have been using his architectures for a while now. I
will be using the same here also.

Thanks

Raju
 
Back
Top