473,732 Members | 2,043 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Everything is a distributed object

Hello all,

I've seen various attempts to add distributed computing capabilities on top
of an existing language. For a true distributed system I would expect it to
be possible to instantiate objects of a remote class or to subclass a
remote class and other stuff like this. My impression is that those things
are difficult when built on top of an existing language.

Since the paradigm "everything is an object" pays so well, I thought it
might be less painful to implement a distributed system from ground up,
starting with the paradigm: "everything is a distributed object".

Do you know if such a thing has been attempted with python, i.e. by hacking
the python core and add new capabilities to "object". Or do you think that
this is really a silly idea ?
Oct 10 '06 #1
5 1633
See here:

http://wiki.python.org/moin/DistributedProgramming

-Nick V.

Martin Drautzburg wrote:
Hello all,

I've seen various attempts to add distributed computing capabilities on top
of an existing language. For a true distributed system I would expect it to
be possible to instantiate objects of a remote class or to subclass a
remote class and other stuff like this. My impression is that those things
are difficult when built on top of an existing language.

Since the paradigm "everything is an object" pays so well, I thought it
might be less painful to implement a distributed system from ground up,
starting with the paradigm: "everything is a distributed object".

Do you know if such a thing has been attempted with python, i.e. by hacking
the python core and add new capabilities to "object". Or do you think that
this is really a silly idea ?
Oct 10 '06 #2
"Martin Drautzburg" <Ma************ ***@web.dewrote :
Hello all,

I've seen various attempts to add distributed computing capabilities on top
of an existing language. For a true distributed system I would expect it to
be possible to instantiate objects of a remote class or to subclass a
remote class and other stuff like this. My impression is that those things
are difficult when built on top of an existing language.

Since the paradigm "everything is an object" pays so well, I thought it
might be less painful to implement a distributed system from ground up,
starting with the paradigm: "everything is a distributed object".

Do you know if such a thing has been attempted with python, i.e. by hacking
the python core and add new capabilities to "object". Or do you think that
this is really a silly idea ?
Google for pyro - Hendrik
Oct 10 '06 #3
Martin Drautzburg schrieb:
Hello all,

I've seen various attempts to add distributed computing capabilities on top
of an existing language. For a true distributed system I would expect it to
be possible to instantiate objects of a remote class or to subclass a
remote class and other stuff like this. My impression is that those things
are difficult when built on top of an existing language.

Since the paradigm "everything is an object" pays so well, I thought it
might be less painful to implement a distributed system from ground up,
starting with the paradigm: "everything is a distributed object".

Do you know if such a thing has been attempted with python, i.e. by hacking
the python core and add new capabilities to "object". Or do you think that
this is really a silly idea ?
Pyro is pretty neat in that respect. And besides that, I think it is a
rather silly idea. In such an environment, immediately issues about
concurrency, connection failures and sychronous/asynchronous execution
arise, adding tremendously to the complexity of even the simplest of
tasks. And thus should be kept out of those simple tasks...

A natural integration of concurrency as in erlang, or with pyro, is a
good thing(tm), but not as base principle, IMHO.

Diez
Oct 10 '06 #4
Martin Drautzburg wrote:
Hello all,

I've seen various attempts to add distributed computing capabilities on top
of an existing language. For a true distributed system I would expect it to
be possible to instantiate objects of a remote class or to subclass a
remote class and other stuff like this. My impression is that those things
are difficult when built on top of an existing language.

Since the paradigm "everything is an object" pays so well, I thought it
might be less painful to implement a distributed system from ground up,
starting with the paradigm: "everything is a distributed object".
Unfortunately the overhead of supporting distribution is way too high to
want to invoke it between two objects living in the same process.
Do you know if such a thing has been attempted with python, i.e. by hacking
the python core and add new capabilities to "object". Or do you think that
this is really a silly idea ?
I'd prefer to say "misguided" ;-)

regards
Steve
--
Steve Holden +44 150 684 7255 +1 800 494 3119
Holden Web LLC/Ltd http://www.holdenweb.com
Skype: holdenweb http://holdenweb.blogspot.com
Recent Ramblings http://del.icio.us/steve.holden

Oct 10 '06 #5
Steve Holden wrote:

Unfortunately the overhead of supporting distribution is way too high to
want to invoke it between two objects living in the same process.
Well I was thinking along the lines of "object" and "proxy-object" where a
proxy object is a handle to a remote object. Sending a proxy-object back to
its original site would reconstruct the original object. So other then
checking if an object is a proxy or not there would be no overhead at all
for non-distributed computing.

Other issues that have been mentioned is network latency or network failure.
I can't really see how this is any different to any other kind of
distributed computing. It should all be a matter of which object lives on
which side of the wire. Of course you *can* build incredibly slow system
when everything is a distributed object, but I cannot see why it *has to"
be slow. And isn't premature optimization the root of all evil?

I believe in a way every distributed system can be seen as a distributed
object system. The main difference is that you have very limited choices
which objects live on which side and what you can send over the wire. In
X11 the DISPLAY is an object that lives on the remote site and you invoke
methods from the client program, which pass literal values, i.e. objects
that can be pickled and whose class is known on the other side. AFAIK fonts
are already a little more complex, because the client does not have to know
what a character looks like, but the Xserver does.

I am kind of confused by the existing tools to program distributed systems
(including pyro), because I find it difficult to figure out how far they
go. I always suspect that they are simply a variation of the "remote adder"
theme, where you can send two numbers and get the sum back.

That would be quite a limited thing IMHO because that would require both
parties to have a common understanding about numbers. While this is
certainly easy to achieve, it leads to a lot of undesired shared knowledge
when things become a little more complex.

So I always wonder

(1) Is it possible to send an object as a parameter?
(2) Can I still do this if the class of this object is only known on one
side of the wire?
(3) Can I instantiate an object of a remote class locally?
(4) Can I subclass a remote class?

I believe pyro can do (1) and none of the rest.



Oct 11 '06 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
2278
by: Constandinos Mavromoustakis | last post by:
CFP: CLADE 2004-Challenges of Large Applications in Distributed Environments ------------------------------------------------- PhD student - Dept.Informatics at Aristotle University of Thessaloniki URL-> http://agent.csd.auth.gr/~cmavrom -------------------------------------------------- -------------------------CLADE 2004--------------------------- Challenges of Large Applications in Distributed Environments June 7th, 2004, Honolulu,...
7
4002
by: J Goldman | last post by:
I'm looking for documentation pointers to learn what I need to put together a distributed database system. I've read through "Oracle 9i Database Administrator's Guide: Distributed Database Concepts" and Oracle Database Concepts: Introduction to the Oracle Server: Distributed Databases Overview", but I don't see how to do what I want. I would like to set up a distributed database system with location transparency and a shared schema...
7
2382
by: Richard Maher | last post by:
Hi, I am seeking the help of volunteers to test some software that I've developed which facilitates distributed two-phase commit transactions, encompassing any resource manager (e.g. SQL/Server or Oracle) controlled by Microsoft's Distributed Transaction Coordinator in a Windows2000 environment, with any resource manager under the control of DECdtm (e.g. Rdb (or Oracle via the XA Veneer)) in a VMS environment.
0
2463
by: DotNetJunkies User | last post by:
I am writing a distributed transaction code. My current scenario include a client database(Suppose client- having 4 main database) which can be installed anywhere which would connect to a public database placed at ISP datacentre(Suppose Server- having 2 database). this server database is added to client as linked server through vb.net interface. i have a transmission routine which transmitts the data from the client to Server and update client...
2
1418
by: tellme | last post by:
Just got my first .NET framework course. A framework also developped by my company. The tech guy got me totally confused: - The UI talks to the controller - the Controler talks to the manager - the manager talks to the Dal factory - the DAL talk to the Impl proxy - the Web service talks to the manager or an other web service - A business object is not a web service ....On top of this nightmare, there is not server for the web service,...
39
2593
by: Steven T. Hatton | last post by:
I came across this while looking for information on C++ and CORBA: http://www.zeroc.com/ice.html. It got me to wondering why I need two different languages in order to write distributed computing apps. In the case of CORBA, that means IDL and C++. In the case of ICE, that means slice and C++. Slice actually looks a lot closer to C++ than does IDL. Nonetheless, I'm wondering if there is some fundamental limitation in C++ which precludes...
1
3007
by: Rhino | last post by:
Is there any way to install the IBM Distributed Debugger V9.2 on Windows XP without first uninstalling DB2? I installed the IBM Distributed Debugger V9.2 on my Windows XP box in the hopes of debugging a Java stored procedure. Well, I never got the debugger to work despite my best efforts - see posts earlier this week - so now I'd like to uninstall the debugger. I looked into this but the README says: 3.1 Uninstalling on Windows
2
3895
by: John Lee | last post by:
Hi, I have few questions related to .NET 2.0 TransactionScope class behavior: 1. Check Transaction.Current.TransactionInformation.DistributedIdentifier to identify if distributed transaction is used - is it accurate way? 2. I have the following code blocks - In code block 1, the first check the DistributedIdentifier is ALL 0s so it
11
1455
by: jason | last post by:
we have developed a .NET class library that defines a family of reusable business objects. the class library is developed in C#, and works quite well. one problem, however, is that as more and more applications are being developed to consume this class library, we are running into deployment and version controll issues. i recall a lot of this kind of thing being solved with distributed application models, such as the EJB...
0
8944
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
8773
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
9445
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
9306
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
0
8186
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
6733
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
4548
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
4805
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
3
2177
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.