Delphi met Sockets versus Java met Corba

Pagina: 1
Acties:

  • Parcye
  • Registratie: Maart 2001
  • Laatst online: 24-08-2017
Voor school moeten we een gedistibueerd systeem ontwikkelen.

School is beetje Java 'blij' en wij Informatica leerlingen neigen toch meer richting Delphi.

Nu weten we dat je in Delphi heel easy met een Client en Server sockter leuke netwerk apps kan maken.

Nu hebben we ook een vak gehad op school waar we met behulp van Corba netwerk apps hebben gemaakt.

We gaan een logistiek systeem nabootsen met onze opdracht.

De vragen zijn:
Wat zijn jullie ervaringen met een gedistribueerd systeem maken in Delphi met Sockets?
Wat zijn jullie ervaringen met een gedistribueerd systeem maken in Java met Corba?
Wat (en waarom) zouden jullie ons aanrade?

"Als je het kan bedenken, kan het gemaakt worden" Parcye - 14 januari 2002


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Je kan java Corba niet met Delphi sockets vergelijken. Sockets zijn wel de meest lage vorm van verbinding, en daar moet je dus overal zelf rekening mee houden. Corba daarin tegen is een veel hogere laag waarin veel meer voor je gedaan worden.

Als je dan iets wilt zeggen, dan moet je zeggen Sockets met taal X, of corba met taal X. Dan heb je tenmisnte een eerlijke vergelijking.

Het ligt er eerlijk gezegd maar net aan wat je wilt. Als student zijnde (waar de jonge onderzoeken nog in verscholen zit) raad ik je natuurlijk aan om met sockets of RMI (java) te gaan werken. Dan weet je tenminste waar je later niet mee wilt werken :) Je leert dan veel meer problemen kennen zoals crashende clients of concurrency problemen of wat voor problemen je allemaal tegen gaat komen als je systemen geschreven in verschillende talen met elkaar laat praten.

Maar als je voor een bedrijf werkt (of je hebt het eigelijk wel een beetje gezien met dat laag bij de vloerse geklungel) dan ga je natuurlijk met een hogere laag werken zoals bv Corba.

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Parcye: Voor school moeten we een gedistibueerd systeem ontwikkelen.
Goede zaak ;) .
Parcye: wij Informatica leerlingen neigen toch meer richting Delphi.
Spreek voor jezelf aub ;) .
Delphi/Sockets, Java/Corba, aanraden
De vergelijking is een beetje vreemd: je koppelt het gebruik van sockets aan Delphi en het gebruik van Corba aan Java. In Java kan je uiteraard ook gewoon een eigen protocol bedenken en over plain sockets gaan communiceren, net zoals dat in Delphi best leuk zal functioneren.

Je keuze is dus niet Delphi of Java, maar een eigen protocol over sockets of Corba. Zelfs dan is de vergelijking eigenlijk nog raar: Corba is behoorlijk 'zwaar'. Het is bedoeld voor gedistribueerde object systemen die je eventueel zou kunnen implementeren in compleet verschillende talen.

Dit kan een zeer eenvoudige manier van werken als je echt met remote objecten wilt gaan werken. De communicatie is dan volledig afgezonderd en je werkt dus gewoon met methode invocaties op normale klassen. Dit zijn dan stubs die de verder communicatie met de remote objecten afhandelen. Dit zorgt er dus voor dat je in je applicatie al by design vrij weinig ziet van het low-level werk. Dit heeft voordelen: tijdsbesparing, abstractie en hergebruik van beschikbare functionaliteit. Dit zorgt weer voor minder kans op fouten.

Zeker in Java is het gebruik van Corba zeer eenvoudig omdat je gewoon RMI over IIOP kunt gebruiken. De RMI notatie is uiterest eenvoudig.

Het gebruiken van een eigen binair of plain-text protocol over sockets is tegenwoordig denk ik niet meer aan te bevelen. Je moet met zo'n oplossing zoveel zelf doen en je kan zo weinig bestaande componenten gebruiken! Als je niet wilt kiezen voor een typisch gedistribueerd object systeem (Corba, RMI, .NET Remoting) kan je dan denk ik nog beter kiezen voor XML gebaseerd communicatie. Dit zorgt ervoor dat je veel bestaande tools kan gebruiken (validatie en parsers bijvoorbeeld) en je abstraheert van irrelevante details. Je krijgt gratis de mogelijkheid dat de onderdelen van je systeem in elke willekeurige taal geschreven kunnen worden.

Je kan een eigen XML formaat bedenken en dit uitwisselen over sockets, maar je zou ook kunnen kiezen voor het gebruik van XML-RPC of SOAP. SOAP is een systeem waar je snel koppijn van krijgt, XML-RPC is een stuk eenvoudiger.

Zelfs als je een eigen XML formaat bedenkt zou ik eigenlijk een bestaand transport protocol gebruiken. HTTP ligt dan voor de hand. Je kan dan op de client en server-side bestaande HTTP implementaties. De server-side zou je kunnen implementeren met Java Servlets als je Java wilt gebruiken.

Veel mogelijkheden dus ;) . Ik hoop dat ik een beetje geschetst hebt waarom je wel of niet voor het een of het ander zou moeten gaan. Als je nog concreet ergens iets over wilt weten moet je daar maar op in gaan: het is lastig om zo even het hele spectrum van gedistribueerde systemen te bespreken.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Alarmnummer: sockets of RMI (java): crashende clients, concurrency problemen ...
... een hogere laag werken zoals bv Corba.
In welk opzicht vind je Corba een fundamenteel hogere laag dan RMI?

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Parcye
  • Registratie: Maart 2001
  • Laatst online: 24-08-2017
Even ter verduideliking, ik wil ze niet vergelijken, maar het is OF Java met Corba OF Delphi met Sockets, vandaar dus....

En als ik over WIJ spreek spreek ik namens MIJN mede informatica studenten in MIJN project groep, sorry je valt daar BUITEN. Even kleine details op de late avond.

Zelf zien we dus geen probleem in het werken op een lager niveau dan met Corba, zeker niet omdat we in onze ogen beter deze opdracht kunnen uitvoeren met onze kennis van Delphi en mindere kennis van hoe vang je alles op bij t missen van een server of clients die in eens weg vallen. Verschillende projecten uit het verleden brachten in Java geen goed einde. Misschien raar maar waar.
Veel mogelijkheden dus . Ik hoop dat ik een beetje geschetst hebt waarom je wel of niet voor het een of het ander zou moeten gaan. Als je nog concreet ergens iets over wilt weten moet je daar maar op in gaan: het is lastig om zo even het hele spectrum van gedistribueerde systemen te bespreken.
Daar zijn WIJ :P inmiddels ook achter

"Als je het kan bedenken, kan het gemaakt worden" Parcye - 14 januari 2002


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

RMI hoort daar idd niet op zijn plaats. RMI en Corba zijn samen idd hogere lagen waarbij je je niet meer bezig hoeft te houden met allerlei zaken als parameter overdracht, aanroepen etc.

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Parcye: En als ik over WIJ spreek spreek ik namens MIJN mede informatica studenten in MIJN project groep, sorry je valt daar BUITEN. Even kleine details op de late avond.
Dank voor de duidelijkheid ;) . Nu weten we allemaal weer waar we staan :*) .

Ik maak een beetje uit je posts op dat je graag in Delphi wilt werken omdat je je daar zo lekker in thuis voelt. Op zich is dat heel begrijpelijk, maar het is wel belangrijk je niet te veel te laten leiden door de kennis die je al bezit. Je zit niet op school om de kennis die je al bezit zo efficient mogelijk in te zetten, maar om nieuwe kennis op te doen. Je moet dus vooral geen vrees hebben voor zaken die je jezelf misschien nog (beter) eigen zou moeten maken.

Misschien is het dus juist goed om voor iets te kiezen waar je nog niet zoveel vanaf weet. Dat sluit Delphi overigens niet uit: je zou bijvoorbeeld met XML over HTTP hele aardige dingen kunnen doen in Delphi :*) . Nog leuker zou het misschien zijn om het voordeel van XML (of Corba) te benutten en het systeem in verschillende talen te schrijven. Delphi en Java dus bijvoorbeeld.

Het lijkt me trouwens ook sterk dat je in Delphi geen gebruik kan maken van Corba :) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Parcye
  • Registratie: Maart 2001
  • Laatst online: 24-08-2017
In Delphi kun je WEL gebruik maken van Corba

En we hebben in onze opleiding alleen maar java java java gehad behalve in het eerste jaar, beetje C(++) en Delphi en daarom wil ik wel weer eens af van Java.

En zoals ik zei, Corba is niet nieuw, is uitgebreid behandeld in een vak maar gewoon niet met 'jahoe' beloond... overigens zonder moeite het vak gehaald.

Het is zo school schoteld dus WEER java voor met Corba... gezien de korte tijd die we hebben om te onder zoeken willen we niet gaan kijken hoe Corba in Delphi moet... en willen we dus gaan voor een van de twee bekende opties.

De voorkeur gaat idd uit naar Delphi, zo helt onze groep nu eenmaal (100% voor Delphi) maar er zijn ook mogelijk dingen die wij over het hoofd zien en die komen misschien in deze topic aan het licht. Waardoor we denken : maar dat kunnen we NOOIT oplossen... dat voorkomen we met Corba....

Maar eerst is het tijd om te slapen anders hebben ze morgen bij een ander vak niets aan me ;)

"Als je het kan bedenken, kan het gemaakt worden" Parcye - 14 januari 2002


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Parcye: In Delphi kun je WEL gebruik maken van Corba
Dat was ook de kern van mijn opmerking :+ .
daarom wil ik wel weer eens af van Java.
C# ? :P

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Delphi kan idd CORBA aan, maar ook vergelijkbare mechanismen zoals COM en SOAP. De meeste SOAP implementaties is niets anders als XML berichten over HTTP. Daarnaast is het natuurlijk heel goed mogelijk sockets te gebruiken, zoals al deze bovenstaande overgens ook doen. Als je Delphi + Sockets wil doen zou ik ook voor XML berichten oversturen gaan. Dat lijkt dan weer zo erg op SOAP dat ik niet inzie waarom je dat niet meteen zou gebruiken. Wat je over het hoofd zou zien bij Delphi + Sockets? Dat het zo veel werk is voordat je iets vergelijkbaars als CORBA gemaakt hebt dat het bijna niet de moeite waard is. Tenzij het over een zeer beperkte interface en gegevens gaat.

We adore chaos because we like to restore order - M.C. Escher


  • Schmoove
  • Registratie: Juli 2001
  • Laatst online: 20-08 11:58
Ik zou zeggen pak Delphi met Corba.... maar goed dat wil je blijkbaar niet.
Het klinkt wel heel er naar een opleiding aan de Fontys (java, java, java). ;)

  • Parcye
  • Registratie: Maart 2001
  • Laatst online: 24-08-2017
Nou, het is het Fontys...

Voor onze opdracht kunnen we zeker Delphi met Corba gebruiken. Alleen zal daar dus een onderzoek naar gedaan moeten worden. Inmiddels staat eigenlijk vast dat het Delphi wordt.

Op het moment hebben we het volgende idee :
Aan de hand van tekst messages die we overzenden weten we wat nodig is en wat niet.
Een bericht zal bestaan uit 'commando' 'actie nummer' 'parameters'.

Als een verbinding verbreekt van client naar server wordt er gezocht naar een andere server en die server ziet dan, 'jij zegt geen hoi en begint gewoon te sturen' en dan weet die server dat hij van een andere afkomt en kan er dus gevraagd worden voor alle berichten horend bij dat 'actie nummer' Omdat de servers van elkaar weten wat er aan data beschikbaar was kan het proces daar snel herhaald worden.

Zo onze eigen oplossing dus....

"Als je het kan bedenken, kan het gemaakt worden" Parcye - 14 januari 2002

Pagina: 1