<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="hu">
	<id>https://vik.wiki/index.php?action=history&amp;feed=atom&amp;title=Integr%C3%A1lt_inform%C3%A1ci%C3%B3s_rendszerek_%E2%80%94_Remoting_labor</id>
	<title>Integrált információs rendszerek — Remoting labor - Laptörténet</title>
	<link rel="self" type="application/atom+xml" href="https://vik.wiki/index.php?action=history&amp;feed=atom&amp;title=Integr%C3%A1lt_inform%C3%A1ci%C3%B3s_rendszerek_%E2%80%94_Remoting_labor"/>
	<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=Integr%C3%A1lt_inform%C3%A1ci%C3%B3s_rendszerek_%E2%80%94_Remoting_labor&amp;action=history"/>
	<updated>2026-05-16T16:13:33Z</updated>
	<subtitle>Az oldal laptörténete a wikiben</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://vik.wiki/index.php?title=Integr%C3%A1lt_inform%C3%A1ci%C3%B3s_rendszerek_%E2%80%94_Remoting_labor&amp;diff=139134&amp;oldid=prev</id>
		<title>Unknown user: Új oldal, tartalma: „{{GlobalTemplate|Infoszak|IIRLaborRemoting2006}}    Erdélyi Tibor &amp;mdash; tibi@aut.bme.hu   __TOC__ A laboron egy chat rendszert valósítottunk meg. A {{InLineFileLin…”</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=Integr%C3%A1lt_inform%C3%A1ci%C3%B3s_rendszerek_%E2%80%94_Remoting_labor&amp;diff=139134&amp;oldid=prev"/>
		<updated>2012-10-21T20:33:56Z</updated>

		<summary type="html">&lt;p&gt;Új oldal, tartalma: „{{GlobalTemplate|Infoszak|IIRLaborRemoting2006}}    Erdélyi Tibor — tibi@aut.bme.hu   __TOC__ A laboron egy chat rendszert valósítottunk meg. A {{InLineFileLin…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Új lap&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{GlobalTemplate|Infoszak|IIRLaborRemoting2006}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Erdélyi Tibor &amp;amp;mdash; tibi@aut.bme.hu &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
A laboron egy chat rendszert valósítottunk meg. A {{InLineFileLink|Infoszak|IIRLaborRemoting2006|iirlabor-remoting.zip|mellékelt projekt}} futtatásához .NET 2.0 (Visual Studio 2005) szükséges. Ugyanezt a chat szervert és klienst megírtuk egyszer az [[ElosztottLaborRemoting|Elosztott rendszerek laboron]] Visual Studio 2003 alatt.&lt;br /&gt;
&lt;br /&gt;
==Remoting alapok==&lt;br /&gt;
&lt;br /&gt;
A .NET alkalmazások külön AppDomain-ben futnak. Az AppDomain  biztosítja a felügyelt futtatáshoz szükséges környezetet. Az AppDomainek közötti áthívás Remoting segítségével oldható meg. A csatornában szállított adat lehet bináris, XML vagy egyedi módon sorosítva. A csatorna típusa lehet TCP, HTTP vagy .NET 2.0-ban lokális gépen a jóval hatékonyabb IPC is.&lt;br /&gt;
&lt;br /&gt;
A Remotingot támogató osztályok a MarshalByReference vagy MarshalByValue osztályból származnak le. A MarshalByReference azt jelenti, hogy a másik oldalon nem másolat keletkezik az objektumból, hanem csak egy Proxy objektum, ami eltakarja a távoli hívásokat.&lt;br /&gt;
&lt;br /&gt;
A hívás módja lehet:&lt;br /&gt;
* _Single Call_: minden híváshoz létrejön egy példány, a kiszolgálás után megszűnik. Állapotmentes objektum, jól skálázható.&lt;br /&gt;
* _Singleton_: első hívás alkalmával létrejön az objektum, és ő szolgálja ki az összes kérést. A garbage collector nem tudja, hogy van-e rá távoli referencia, ezért a MarshalByRefObject InitializeLifetimeService metódusát kell felüldefiniálni az életciklus kezeléshez. Ha a metódus null-lal tér vissza, az objektum az alkalmazás lelövéséig élni fog.&lt;br /&gt;
&lt;br /&gt;
==Szerver konfigurálása==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;App.Config&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* =mode=&amp;quot;Singleton&amp;quot;=: egy szerver példány szolgálja ki a klienseket&lt;br /&gt;
* =type=&amp;quot;ChatServer.Server, ChatServer&amp;quot;=: teljesen specifikált típus nevet vár. Saját típusnál &amp;#039;&amp;#039;névtér.típus, assembly név&amp;#039;&amp;#039; formátumú, beépített típusokra a következő módon kérhető le: &amp;lt;br&amp;gt; =Console.WriteLine(typeof(int).AssemblyQualifiedName);=&lt;br /&gt;
* =channel ref=&amp;quot;tcp&amp;quot;=, =port=&amp;quot;9000&amp;quot;=: a szolgáltatás tcp protokollon, a 9000-es porton keresztül lesz elérhető&lt;br /&gt;
* =formatter ref=&amp;quot;binary&amp;quot;=: az objektumokat binárisan sorosítsa&lt;br /&gt;
* =formatter typeFilterLevel=&amp;quot;Full&amp;quot;=: mindent sorosítson (pl. event-eket is)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;configuration&amp;amp;gt;&lt;br /&gt;
	&amp;amp;lt;system.runtime.remoting&amp;amp;gt;&lt;br /&gt;
		&amp;amp;lt;application&amp;amp;gt;&lt;br /&gt;
			&amp;amp;lt;service&amp;amp;gt;&lt;br /&gt;
				&amp;amp;lt;wellknown mode=&amp;quot;Singleton&amp;quot; type=&amp;quot;ChatServer.Server, ChatServer&amp;quot; objectUri=&amp;quot;ChatServer&amp;quot;/&amp;amp;gt;&lt;br /&gt;
			&amp;amp;lt;/service&amp;amp;gt;&lt;br /&gt;
			&amp;amp;lt;channels&amp;amp;gt;&lt;br /&gt;
				&amp;amp;lt;channel ref=&amp;quot;tcp&amp;quot; port=&amp;quot;9000&amp;quot;&amp;amp;gt;&lt;br /&gt;
					&amp;amp;lt;serverProviders&amp;amp;gt;&lt;br /&gt;
						&amp;amp;lt;formatter ref=&amp;quot;binary&amp;quot; typeFilterLevel=&amp;quot;Full&amp;quot;/&amp;amp;gt;&lt;br /&gt;
					&amp;amp;lt;/serverProviders&amp;amp;gt;&lt;br /&gt;
				&amp;amp;lt;/channel&amp;amp;gt;&lt;br /&gt;
			&amp;amp;lt;/channels&amp;amp;gt;&lt;br /&gt;
		&amp;amp;lt;/application&amp;amp;gt;&lt;br /&gt;
	&amp;amp;lt;/system.runtime.remoting&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/configuration&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fordításkor az App.Config átmásolódik a bin/debug könytvárba és átneveződik az alkalmazás nevére, ezért a Remoting inicializálásakor a következőképpen kell betölteni: &amp;lt;br&amp;gt;&lt;br /&gt;
=RemotingConfiguration.Configure(&amp;quot;ChatServer.exe.config&amp;quot;, false);=&lt;br /&gt;
&lt;br /&gt;
==Kliens konfigurálása==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;App.Config&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* =url=&amp;quot;tcp://localhost:9000/ChatServer&amp;quot;=: a szerver címe&lt;br /&gt;
* =type=&amp;quot;Common.ServerObj, Common&amp;quot;=: a szerverrel közösen használt objektum típusa&lt;br /&gt;
* =channel ref=&amp;quot;tcp&amp;quot;=, =port=&amp;quot;0&amp;quot;=: a kliens figyelje a szerver válaszát&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;configuration&amp;amp;gt;&lt;br /&gt;
	&amp;amp;lt;system.runtime.remoting&amp;amp;gt;&lt;br /&gt;
		&amp;amp;lt;application&amp;amp;gt;&lt;br /&gt;
			&amp;amp;lt;client&amp;amp;gt;&lt;br /&gt;
				&amp;amp;lt;wellknown url=&amp;quot;tcp://localhost:9000/ChatServer&amp;quot; type=&amp;quot;Common.ServerObj, Common&amp;quot;/&amp;amp;gt;&lt;br /&gt;
			&amp;amp;lt;/client&amp;amp;gt;&lt;br /&gt;
			&amp;amp;lt;channels&amp;amp;gt;&lt;br /&gt;
				&amp;amp;lt;channel ref=&amp;quot;tcp&amp;quot; port=&amp;quot;0&amp;quot;/&amp;amp;gt;&lt;br /&gt;
			&amp;amp;lt;/channels&amp;amp;gt;&lt;br /&gt;
		&amp;amp;lt;/application&amp;amp;gt;&lt;br /&gt;
	&amp;amp;lt;/system.runtime.remoting&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/configuration&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Indítás==&lt;br /&gt;
&lt;br /&gt;
A teszteléshez egy szervert és legalább két klienst érdemes indítani. A Solution / Set Startup Project menüpontban beállítható, hogy mindkettőből induljon egy-egy példány, de a második klienst csak parancssorból vagy a ChatClient / Debug / Start new instance menüponttal lehet elindítani.&lt;br /&gt;
&lt;br /&gt;
-- [[PallosPeter|Peti]] - 2006.11.09.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Infoszak]]&lt;/div&gt;</summary>
		<author><name>Unknown user</name></author>
	</entry>
</feed>