Sæll,
Heh.. ég sé að ég fékk furðulegt svar á móti furðulegu svari :) Ég held það sé ekki neitt við TCP, HTTP eða SOAP sem ég er að misskilja, ég skil mjög vel hvað þetta er. Að vísu skal ég viðurkenna að ég hef ekki notað SOAP mikið ennþá eins og er nema nokkur test til að serializa stök af klösum yfir netið (í raun marshalla by value, en meira um það aðeins neðar).
Remoting er hægt að nota t.d. í distributed lausnir. Áður fyrr notuðu menn t.d. COM+/DCOM í svona lausnir en með .NET hefurðu kost á nokkrum öðrum leiðum, t.d. Web services, hlaða inn assemblies yfir netið og svo remoting, sem þú getur valið á milli eftir eðli verksins, t.d. þarf að taka tillit til öryggishamla, keyrsluumhverfis og hvernig clientinn er (er þetta t.d. Linux vél sem þarf að nota hlutinn?)
Tökum smá dæmi um remoting. Við erum með klasa sem sér um samskipti við gagnagrunn og keyrir á einum application server (mjög algengt dæmi). Með remoting geturðu kallað á þennan klasa og búið til stak af honum á remote tölvunni (marshal by reference), eða jafnvel stofnað stakið útfrá remote klasanum á client vélinni (marshal by value.. þá er stakið stofnað á remote vélinni, serializað, sent yfir og deserializað í minni á client vélinni). Að vísu væri ekki mikið vit í að nota marshal by value í þessu tilfelli þar sem við viljum aðgangsstýra með application serverinum… tja, nema láta token/leyfi fylgja með klasanum sem er sendur yfir :)
Þetta er hægt að gera á tvo vegu sem endurspegla einmitt tvær standard leiðir sem þú notar til að serializa objecta í .NET, sem binary eða sem XML. Hægt er að opna TCP channel (á hvaða porti sem er), og er þá binary straumur notaður, eða hægt er að nota SOAP sem notar þá XML serialization.
Það sem ég var að tala um í mínu fyrra svari sem kost við SOAP köll yfir HTTP.. well, smá dæmi:
Þú ert með client forrit sem þarf að keyra á vél sem er á innraneti fyrirtækis A. Þetta client forrit þarf að hafa samband við einhvern hlut á server í fyrirtæki B til að lesa og skrifa gögn í. Fyrirtæki A er með vænissjúkan kerfisstjóra sem lokar á alla traffík hjá tölvum fyrirtækisins útá Internetið nema á port 80 (póstur er á innanhús server sem má nota port útá Internetið til póstflutnings) þannig að öll samskipti þurfa að fara í gegnum port 80. Jújú, þú getur alveg sett upp custom forrit á application server í fyrirtæki B sem hlustar á porti 80, en afhverju ekki nota það sem þér stendur til boða og í staðinn fyrir að skrifa þinn eigin server hugbúnað? Og hvað gerist ef þú þarf að gera annað forrit? þá er fyrra forritið þegar að nota port 80 :(
Þú gætir leyst þetta með því að búa til Web Service sem póstar öllum köllum yfir netið með HTTP. Fyrirspurnin er send inná vefþjónin sem gögn yfir HTTP, og svarinu er einnig skilað til baka með HTTP.
Það sem er líka gott við þessa aðferð er að það er búið að staðla þessa hluti (reyndar enn verið að bæta við fleiri stöðlum) og því hægt að nota yfir mismunandi platform, það er t.d ekkert því til fyrirstöðu að Windows vél nýti sér Web Service sem er að keyra á Tomcat á AS400 vél.
Ég vona að þetta útkljái þann misskilning sem var í gangi og fræddi þig aðeins meira um .NET í leiðinni :) Vissirðu annars að stór hluti af .NET frameworkinu og grunnklösunum verður fljótlega gefið út af Microsoft sem open source (project codename Rotor) :)
<br><br>-
Skarsnik