dotgnu-visionaries
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Visionaries] Local RPC


From: Dean Michael Berris
Subject: Re: [Visionaries] Local RPC
Date: Thu, 15 May 2003 18:50:52 +0800
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3) Gecko/20030313

hi peter,

Peter Minten wrote:
Hi folks,

I've been thinking about a way to connect WebScheme and C# code. A fast approach
would be direct C type calls. Disadvantage is that a lot of type checking and
conversion has to be done. A flexible approach would be XML-RPC, but that's even
slower.


i think here we have to strike a balance between flexibility and efficiency. something very flexible (like XML) at most times would be very ineefficient. take for example, if a new language with new data types would be adopted into the DotGNU system, would the specification for the inter-language function call binary protocol have to comply with the new data types? does the language have to adapt to the fairly rigid and efficient structure of a binary protocol defined? how about backward compatibility?

these IMHO are issues that may easily addressed with the use of XML and well defined and carefully structured DTD's for the sake of compliance and correctness of transactions between any two parties.

I believe a mix form can be used for languages on one box to communicate. The
basic idea is that XML-RPC is pretty good, but the XML needs to be replaced by a
binary protocol (can be parsed faster). Another idea is that for every object
that cannot be easily translated tickets are used.


i would like to agree, but however again i point out the tradeoff between flexibility and efficiency. would you sacrifice any of the two for the other? maybe in situations when a broader spectrum of tools would want to communicate with one another, a standard way of communication must be defined. this has already been done for us by XML, offering a framework for structured communication to be possible between seemingly different parties.

i mean, in a broader sense, what if DotGNU adapted pascal or delphi into the framework, would the specifications for the binary format change to take into consideration the quirks of the pascal boolean, or the objects defined in delphi?


The details of the system have to be worked out, but I'm confident that this
will make inter language calls much easier.


i also think it would, however a sacrifice for flexibility is very evident. what if bit fields were being send between two languages? if app A coded in language A created a bit field which is part of an object, which is needed by another app B coded in language C, how will the binary protocol make it happen?

although this is a special case i may say, more metadata and language specific conversion information would be squeezed into XML which gives it the flexibility to be able to handle the job in a more standard way.

i am currently working on a middleman server called XML Generic Object Server (xmlgos) -- which was and is still hosted in sourceforge, but is still in an alpha non-working state -- which specifically caters to these instances.

basically, xmlgos will sit as 1) a repository of xml documents in transit, 2) a persistent object storage for applications, and 3) as a communication medium for a wide range of applications. what it would basically do is/are: - accept data feeds from client and coat them in XML, using administrator exported "handler DTD's" and "conversion DTD's".
        - (initially) host static non-rpc'ing XML documents :: like a webserver
- handle tunneling capabilities where direct feeds from app A to app B will be handled through "channels". all data transmitted, will be coated or wrapped in XML, and would be parsed/interpreted/executed on the recieving ends. (of course encryption need not be mentioned... ;-) )

interfacing the xmlgos is trough 2 ways -- interactive sessions (to cater to scripting languages) and an API which will be developed in languages that will be making use of the functionality offered by xmlgos.

i am currenlty figuring out the security model, the authentication method, as well as on how to use SSL in the correct way. i've pretty much figured out the protocol to be used, as well as very crude DTD's.

if anybody wants to help out or just get more details, i'd love to put what i have in mind on the list.

have a nice one everyone! =)

oh, and BTW, it's really not just for local RPC. i was initially thinking of it as a webservice, but then i figured it would be more efficient if it was run as a standalone server open to all the applications (not only DotGNU apps) on the local machine and the network.

--
-=[mikhail]=-

aka Dean Michael C. Berris
home +63 49 5680142
work +63 49 5680024
http://free.net.ph/Members/mikhailberis
pgp key ID = 0xF9501761

-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d- s:+ a--- C++ UL++ P+ L+++ E- W+ N* o K w--
O---- M- V-- PS+ PE Y+ PGP++ t+ 5 X+ R+ tv+ b++ DI+ D+
G e h! r+ y+
------END GEEK CODE BLOCK------




reply via email to

[Prev in Thread] Current Thread [Next in Thread]