DevX Home    Today's Headlines   Articles Archive   Tip Bank   Forums   

Results 1 to 3 of 3

Thread: Question on .NET remoting

  1. #1
    kgoff@worldnet.att.net Guest

    Question on .NET remoting

    I have some questions on the use of Remoting vs Web Services.
    First, here are the general requirements of our architecture for a very
    feature-rich database application.
    We have about 150 users across the country, who all run a feature-rich UI
    using WinForms and Crystal Reports at the local end. The application makes
    pretty extensive use of disconnected recordsets.
    The WinForms send data back and forth to the server through DataSets
    ['retrieve this record', 'retrieve this set of records', 'update this set of
    records', etc.]
    We have a Web Service, running on a Web Server, that serves as a 'service
    requestor'...basically, it receives the request from the remote client and
    calls the appropriate function(s) in the middle tier, and then passes result
    sets back to the end user. It's sort of like a 'traffic cop'.
    The middle-tier logic will likely reside on a different computer than the
    Web Service - that's when things got complicated, and when we realized we
    might need remoting.
    Also, there will be a firewall in front of the Web Server that's running the
    Web Service. Likely, there will also be a firewall between the Web Server
    and the Middle Tier Server.
    Here are my questions...
    1) Which of the two makes more sense:
    a) Get rid of the Web Service, and have the remote client use .NET remoting
    to access the Middle-Tier 'directly' [through an HTTP channel]
    b) Have the remote users access the Web Service, and then have the Web
    Service 'remote' with the middle-tier [using TCP, I guess]
    2) What are the security implications of Web Services vs Remoting?
    3) In the code samples that I've seen for remoting, the TCP channel (or HTTP
    channel) that is used is referenced through 'localhost'. If I want to call a
    DLL/assembly that's on another machine, how would I reference it? (or...just
    by virtue of the fact that the server object is loaded and running, would
    the client 'find' it, or does there need to be another reference?
    I'd greatly appreciate any help on these. Any insights would be very
    helpful.

    Thanks,
    Kevin

  2. #2
    Jason Smith Guest

    Re: Question on .NET remoting

    Here is the scoop. XML Web Services are implemented on the HTTP protocol.
    The major limitation of this is that you can't have your server raise an
    event on a particular client. It's just like web pages. If you need access
    to changing or asynchronous data, you have to poll for it. However, this
    can (usually) be done effectively when you are talking about only 150 users.

    The strength of Web Services is that it is easy to set up, standard, and
    very firewall friendly. It works just like a web page, only for machines
    instead of humans. Remoting can be firewall friendly as well, since you can
    control the port addresses of your services, but it may require some
    additional setup on the part of the administrators to expose the remoting
    service to the rest of the world.

    It sounds like for your application, at least for the world view, Web
    Services will probably do what you want, and they tend to be easier to work
    with than remoting.

    For your internal structure, you can use remoting, or Web Services, or COM+
    (another possibility you should consider). However, since you say there
    will "probably" be a firewall between the outside server and the inside
    server (not sure why this is necessary), you may want to stick with Web
    Services for the middle tier as well. Although, technically, this is now an
    n-tier architecture. You have multiple middle tiers, an inner one and an
    outer one. If you don't need remote events/callbacks anywhere in your
    architecture, Web Services is by far the simplest solution for you. Only
    one technology to learn, and the tools are very easy to work with.

    In regards to #3, with Web Services at least, to run a DLL on another
    machine, you call into a Web Service on that machine which runs the DLL and
    returns the results through the Web Services interface. So you'll be using
    IIS on all the machines to facilitate communication internally, then you'll
    use one of the machines to wrap the whole thing and make it available on the
    internet. Put the firewalls wherever you want to.

    One note of caution. Web Services are function calls, and not secure unless
    you run under HTTPS. If you expose (a) interfaces that can be misused, or
    (b) data that is private, the firewall won't protect you. With Web
    Services, it is totally up to the programmers to provide adequate security.
    You may want to add a security-oriented architecture review to your set of
    tasks!


    Curious, though...what are you doing that requires having two firewalls?
    With only 150 users, you should be able to get away with only half that
    amount of hardware, unless someone is just fanatical about security...

    <kgoff@worldnet.att.net> wrote in message
    news:3df3fbe3@tnews.web.devx.com...
    > I have some questions on the use of Remoting vs Web Services.
    > First, here are the general requirements of our architecture for a very
    > feature-rich database application.
    > We have about 150 users across the country, who all run a feature-rich UI
    > using WinForms and Crystal Reports at the local end. The application

    makes
    > pretty extensive use of disconnected recordsets.
    > The WinForms send data back and forth to the server through DataSets
    > ['retrieve this record', 'retrieve this set of records', 'update this set

    of
    > records', etc.]
    > We have a Web Service, running on a Web Server, that serves as a 'service
    > requestor'...basically, it receives the request from the remote client and
    > calls the appropriate function(s) in the middle tier, and then passes

    result
    > sets back to the end user. It's sort of like a 'traffic cop'.
    > The middle-tier logic will likely reside on a different computer than the
    > Web Service - that's when things got complicated, and when we realized we
    > might need remoting.
    > Also, there will be a firewall in front of the Web Server that's running

    the
    > Web Service. Likely, there will also be a firewall between the Web Server
    > and the Middle Tier Server.
    > Here are my questions...
    > 1) Which of the two makes more sense:
    > a) Get rid of the Web Service, and have the remote client use .NET remotin

    g
    > to access the Middle-Tier 'directly' [through an HTTP channel]
    > b) Have the remote users access the Web Service, and then have the Web
    > Service 'remote' with the middle-tier [using TCP, I guess]
    > 2) What are the security implications of Web Services vs Remoting?
    > 3) In the code samples that I've seen for remoting, the TCP channel (or

    HTTP
    > channel) that is used is referenced through 'localhost'. If I want to call

    a
    > DLL/assembly that's on another machine, how would I reference it?

    (or...just
    > by virtue of the fact that the server object is loaded and running, would
    > the client 'find' it, or does there need to be another reference?
    > I'd greatly appreciate any help on these. Any insights would be very
    > helpful.
    >
    > Thanks,
    > Kevin




  3. #3
    achavez Guest

    Re: Question on .NET remoting


    An interesting article, with code, by Roman Kiss. Demonstrates to use web
    services as the transfer protocol for .NET remoting. That is, remoting through
    a fire wall. Ya!

    http://www.codeproject.com/cs/webser...erinternet.asp

    ................

    kgoff@worldnet.att.net wrote:
    >I have some questions on the use of Remoting vs Web Services.
    >First, here are the general requirements of our architecture for a very
    >feature-rich database application.
    >We have about 150 users across the country, who all run a feature-rich UI
    >using WinForms and Crystal Reports at the local end. The application makes
    >pretty extensive use of disconnected recordsets.
    >The WinForms send data back and forth to the server through DataSets
    >['retrieve this record', 'retrieve this set of records', 'update this set

    of
    >records', etc.]
    >We have a Web Service, running on a Web Server, that serves as a 'service
    >requestor'...basically, it receives the request from the remote client and
    >calls the appropriate function(s) in the middle tier, and then passes result
    >sets back to the end user. It's sort of like a 'traffic cop'.
    >The middle-tier logic will likely reside on a different computer than the
    >Web Service - that's when things got complicated, and when we realized we
    >might need remoting.
    >Also, there will be a firewall in front of the Web Server that's running

    the
    >Web Service. Likely, there will also be a firewall between the Web Server
    >and the Middle Tier Server.
    >Here are my questions...
    >1) Which of the two makes more sense:
    > a) Get rid of the Web Service, and have the remote client use .NET remoting
    > to access the Middle-Tier 'directly' [through an HTTP channel]
    > b) Have the remote users access the Web Service, and then have the Web
    > Service 'remote' with the middle-tier [using TCP, I guess]
    >2) What are the security implications of Web Services vs Remoting?
    >3) In the code samples that I've seen for remoting, the TCP channel (or

    HTTP
    >channel) that is used is referenced through 'localhost'. If I want to call

    a
    >DLL/assembly that's on another machine, how would I reference it? (or...just
    >by virtue of the fact that the server object is loaded and running, would
    >the client 'find' it, or does there need to be another reference?
    >I'd greatly appreciate any help on these. Any insights would be very
    >helpful.
    >
    >Thanks,
    >Kevin



Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center
 
 
FAQ
Latest Articles
Java
.NET
XML
Database
Enterprise
Questions? Contact us.
C++
Web Development
Wireless
Latest Tips
Open Source


   Development Centers

   -- Android Development Center
   -- Cloud Development Project Center
   -- HTML5 Development Center
   -- Windows Mobile Development Center