[VB.NET 2005] Remoting en CAO's

Pagina: 1
Acties:

  • Rhapsody
  • Registratie: Oktober 2002
  • Nu online

Rhapsody

In Metal We Trust

Topicstarter
Hallo,


Ik heb de volgende situatie:
Er is een server, een client, en een remoteobject (Remote Object 1 voor het gemak)

RemoteObject 1 is een Client Activated Object. (hoewel dit door Ingo Rammer niet wordt aangeraden is dit gewoon de enige mogelijkheid)
Nu kom ik overal tegen dat er op de client een referentie moet zijn naar het remoteobject..... (dit vanwege het feit dat een interface geen constructor kan bevatten)
Dit betekent dat op de client dus ook het RemoteObject aanwezig moet zijn. Dit komt op mij over als een nogal omslachtige manier en iets wat je wellicht helemaal niet wil.....

Zijn er mensen die hier ook tegen aan gelopen zijn? En hoe heb je dat opgelost?
In de search, zowel GoT als Google kwam ik tot op heden niets tegen wat mijn vragen goed heeft beantwoord.

🇪🇺 pro Europa!


  • whoami
  • Registratie: December 2000
  • Laatst online: 29-04 13:16
AFAIK is daar geen oplossing voor.
Ik zie eigenlijk ook het nut niet in van CAO's (that is, ik ben zelf nog nooit in een situatie verzeild geraakt waar het nodig was om daar gebruik van te maken).

Maareh, als je van .NET 2.0 gebruikt maakt, heeft het Indigo framework daar dan geen oplossing voor ?
(heb zelf nog niet echt naar Indigo gekeken).

[ Voor 28% gewijzigd door whoami op 06-10-2005 12:10 ]

https://fgheysels.github.io/


  • Rhapsody
  • Registratie: Oktober 2002
  • Nu online

Rhapsody

In Metal We Trust

Topicstarter
whoami schreef op donderdag 06 oktober 2005 @ 12:09:
AFAIK is daar geen oplossing voor.
Ik zie eigenlijk ook het nut niet in van CAO's (that is, ik ben zelf nog nooit in een situatie verzeild geraakt waar het nodig was om daar gebruik van te maken).

Maareh, als je van .NET 2.0 gebruikt maakt, heeft het Indigo framework daar dan geen oplossing voor ?
(heb zelf nog niet echt naar Indigo gekeken).
Mijns inziens zijn CAO's enkel interessant wanneer je een 'prive instantie' wilt hebben voor je client.
SAO's (Singlecall en Singleton) bieden die functionaliteit niet.

[ Voor 3% gewijzigd door Rhapsody op 06-10-2005 12:18 ]

🇪🇺 pro Europa!


  • whoami
  • Registratie: December 2000
  • Laatst online: 29-04 13:16
Idd, en de vraag die daaruit voortvloeit: waarom zou je dat willen ?

https://fgheysels.github.io/


  • Rhapsody
  • Registratie: Oktober 2002
  • Nu online

Rhapsody

In Metal We Trust

Topicstarter
whoami schreef op donderdag 06 oktober 2005 @ 12:16:
Idd, en de vraag die daaruit voortvloeit: waarom zou je dat willen ?
Dit omdat sommige delen van de te realiseren applicatie een staat moeten bijhouden van de client. hierbij kun je denken aan logininformatie.
Daarnaast moet er gecommuniceerd worden met een andere applicatie waar ook op ingelogd moet worden.

zo dus:
[client] <-----------> [server] <-> [remote object ] <---------------> [ander softwarepakket]

edit:
Maar als ik het dus goed begrijp is er geen andere oplossing?

[ Voor 14% gewijzigd door Rhapsody op 06-10-2005 12:45 ]

🇪🇺 pro Europa!


  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

offtopic:
wat is het verschil met remoting?

ASSUME makes an ASS out of U and ME


  • Rhapsody
  • Registratie: Oktober 2002
  • Nu online

Rhapsody

In Metal We Trust

Topicstarter
HIGHGuY schreef op donderdag 06 oktober 2005 @ 18:20:
offtopic:
wat is het verschil met remoting?
Hoe bedoel je?

Ik heb het over remoting namelijk ;-)

🇪🇺 pro Europa!


  • whoami
  • Registratie: December 2000
  • Laatst online: 29-04 13:16
HIGHGuY schreef op donderdag 06 oktober 2005 @ 18:20:
offtopic:
wat is het verschil met remoting?
In remoting heb je 2 soorten 'remote objects': client activated remoted objects, en server side activated objects.
Zoek anders ff in de MSDN op wat het verschil is tussen beiden.

https://fgheysels.github.io/


  • Rhapsody
  • Registratie: Oktober 2002
  • Nu online

Rhapsody

In Metal We Trust

Topicstarter
whoami schreef op donderdag 06 oktober 2005 @ 19:33:
[...]


In remoting heb je 2 soorten 'remote objects': client activated remoted objects, en server side activated objects.
Zoek anders ff in de MSDN op wat het verschil is tussen beiden.
Maar om ff terug te komen, ik kan dus nergens ook maar iets vinden als oplossing... Het ziet er dus naar uit dat het niet mogelijk is en dat je dus toch het remote object bij de client moet zetten.

🇪🇺 pro Europa!


  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

toen ik voor whoami op MSDN zocht was dit het artikel dat meteen boven kwam:
http://msdn.microsoft.com.../html/ImpBrokerClient.asp

is dit niet wat je eigenlijk zoekt? een SAO factory, die CAO objects voor je maakt die jij dan via een interface kan aansturen?

ASSUME makes an ASS out of U and ME


  • Rhapsody
  • Registratie: Oktober 2002
  • Nu online

Rhapsody

In Metal We Trust

Topicstarter
HIGHGuY schreef op vrijdag 07 oktober 2005 @ 11:13:
toen ik voor whoami op MSDN zocht was dit het artikel dat meteen boven kwam:
http://msdn.microsoft.com.../html/ImpBrokerClient.asp

is dit niet wat je eigenlijk zoekt? een SAO factory, die CAO objects voor je maakt die jij dan via een interface kan aansturen?
Ik ben er even naar aan het kijken of het is wat ik zoek. Op het eerste gezicht komt het op mij over als een SAO Singleton implementatie. Maar ik ken het broker pattern niet zo goed.

Bij SAO's heb ik al een interface bij de client staan zodat het object zelf niet aanwezig hoeft te zijn op de client.
Bij CAO's echter moet dat wel, omdat de client moet weten wat voor instanties hij kan maken via remoting. Een interface is dan niet voldoende omdat deze geen constructor kan bevatten.

[ Voor 21% gewijzigd door Rhapsody op 07-10-2005 12:05 ]

🇪🇺 pro Europa!


  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

Rhapsody schreef op vrijdag 07 oktober 2005 @ 12:03:
[...]

Ik ben er even naar aan het kijken of het is wat ik zoek. Op het eerste gezicht komt het op mij over als een SAO Singleton implementatie. Maar ik ken het broker pattern niet zo goed.

Bij SAO's heb ik al een interface bij de client staan zodat het object zelf niet aanwezig hoeft te zijn op de client.
Bij CAO's echter moet dat wel, omdat de client moet weten wat voor instanties hij kan maken via remoting. Een interface is dan niet voldoende omdat deze geen constructor kan bevatten.
Je kunt het idd als singleton class implementeren maar ook als een Factory.
C#:
1
2
3
4
5
6
7
8
9
10
11
class MyObjectFactory : IMyFactory, MarshalByRefObject
{
   public IMyObject CreateObject()
   {
     return new MyObject();
   }
}
class MyObject : IMyObject, MarshalByRefObject
{
  // alle zooi
}

en op de client enkel en alleen:
C#:
1
2
3
4
5
6
7
8
interface IMyFactory
{
   IMyObject CreateObject();
}
interface IMyObject
{
  //alle zooi
}


dus het komt erop neer dat je de constructor vervangt door een klass die de gepaste constructor voor jouw oproept en de klasse returnt

ASSUME makes an ASS out of U and ME


  • Rhapsody
  • Registratie: Oktober 2002
  • Nu online

Rhapsody

In Metal We Trust

Topicstarter
Aha ok, dank je wel voor je uitleg.

Dus als ik het goed begrijp regelt die factory nu dus de instanties voor de clients. Een soort imitatie -CAO zeg maar :)

[ Voor 64% gewijzigd door Rhapsody op 07-10-2005 21:19 ]

🇪🇺 pro Europa!


  • whoami
  • Registratie: December 2000
  • Laatst online: 29-04 13:16
Je factory is dus remoted en returned een remoted object voor jou; echter, is het dan client-activated ?

https://fgheysels.github.io/


  • Rhapsody
  • Registratie: Oktober 2002
  • Nu online

Rhapsody

In Metal We Trust

Topicstarter
whoami schreef op vrijdag 07 oktober 2005 @ 21:22:
Je factory is dus remoted en returned een remoted object voor jou; echter, is het dan client-activated ?
In principe kun je dat wel zo implementeren. Je roept een functie aan van de factory class welke daarna een instantie voor jou aanmaakt.
Doordat het MyObject overerft van MarshalByRefObject krijg je die fijn terug.
Dus theoretisch is het een unieke instantie voor de client.

Tenminste als ik het goed begrijp...

* Rhapsody zit nu half met zijn hoofd in het Italiaans en voor de andere helft in .NET....

🇪🇺 pro Europa!

Pagina: 1