I'm trying to understand what is the difference between remote and distributed objects. I know this might be a simple concept and I'm probably too dumb to understand but can someone explain in layman's terms what they are or a very simple programming example(does remote mean local or private variables?, Is it similar to making something serializable?) or even better if they can provide an analogy (if any). Thank you so much!
Analogy for remote and distributed objects
206 Views Asked by ShippyDippy At
1
There are 1 best solutions below
Related Questions in JAVA
- I need the BIRT.war that is compatible with Java 17 and Tomcat 10
- Creating global Class holder
- No method found for class java.lang.String in Kafka
- Issue edit a jtable with a pictures
- getting error when trying to launch kotlin jar file that use supabase "java.lang.NoClassDefFoundError"
- Does the && (logical AND) operator have a higher precedence than || (logical OR) operator in Java?
- Mixed color rendering in a JTable
- HTTPS configuration in Spring Boot, server returning timeout
- How to use Layout to create textfields which dont increase in size?
- Function for making the code wait in javafx
- How to create beans of the same class for multiple template parameters in Spring
- How could you print a specific String from an array with the values of an array from a double array on the same line, using iteration to print all?
- org.telegram.telegrambots.meta.exceptions.TelegramApiException: Bot token and username can't be empty
- Accessing Secret Variables in Classic Pipelines through Java app in Azure DevOps
- Postgres && statement Error in Mybatis Mapper?
Related Questions in RMI
- Can't connect to java rmi server(which is in aws) from my local machine
- WebSphere Liberty BASE Remote EJB call failed in JDK 17
- RMI in java 17 WAR project. How do I fix this error?
- RMI Test Passes in Isolation but Fails with UnmarshalException When Run with Other Tests
- Error java.net.SocketException: Socket is closed when closing AS400 Secure RPC session
- Java RMI Server Registry-Lookup Message exchange
- Error unmarshalling arguments using JavaRMI
- Java multiclient server with RMI
- Using rmic gives me error, when trying to create stub and skeleton for Remote Method Invocation
- Weblogic remote EJB call is not doing fail-over out of the box and throwing UnknownHostException for one bad host
- Make a callback with JAVA RMI
- JAVA RMI problems on eclipse
- Why does this Hello RMI example work for me or root but not for other users?
- Connect4 Multiplayer With Java RMI
- How to completely disable the JMX interface for java applications
Related Questions in REMOTEOBJECT
- QtRemoteObjects: get signal on host when remote node/replica disconnects
- Analogy for remote and distributed objects
- Returning Qt RemoteObjects from RemoteObject method calls
- JSONObjects not working with osgi registration, not as function argument, neaither as return
- QtRemoteObject receive signal in Host when Replicas are connected/disconnected
- QtRemoteObjects SSL transport
- QRemoteObjectNode::remoteObjectAdded signal does not fire
- Remote object implementation with RabbitMQ
- org.omg.CORBA.MARSHAL: WARNING: 00810057: Could not load class
- maximum Thread count in RMI server side
- Pyro4 Encoding in JSON/Base64
- RemoteObject class aliases within ActionScript Worker
- Visualforce RemoteObjectModels Query filtering using "OR"
- How can i remove the remote object from the RMI runtime
- Flex - 'Cannot create class of type' error RemoteObject
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Same thing.
Object-oriented programming (OOP) defines a paradigm where objects message one another (or invoke methods on one another, whichever way you want to define it).
Distributed objects means technology that gives the objects the freedom to live in separate spaces, able to message one another across processes or even across machines. To quote Wikipedia:
The goal of distributed objects is to let them interoperate in the same manner whether living together in one process on one machine, or whether living separately. See also, Remote object communication on Wikipedia. Java provides a Java-centric distributed objects technology called Java Remote Method Invocation (RMI); see Wikipedia. CORBA is similar, a standardized approach to distributed objects that works across programming languages and platforms, in contrast to RMI being Java-specific.
The word “remote” in this context would merely emphasize or clarify that a particular object is not on the same machine, so access requires network access. And network access means slower speeds, more latency, and higher risk of failure.
You asked:
No, totally different.
Unfortunately, the information technology industry frequently recycles words, using the same words in different ways for different meanings. Context is everything.
You asked:
Serialization as a general term is about writing the data stored within an object (its “state”) to some external format (binary or textual) that can be consumed by other software at some other place or time. Such communication of state is needed when sending an object as the message between distributed objects.
Java Serialization is the name of a specific technology implementation and format for serializing Java objects. The purpose might for communication between distributed objects, but not necessarily. You could also use Java Serialization as a way of writing back-ups to disk, as one example.
Java Serialization is used in some technologies for communicating between distributed objects. But there are other ways to communicate the state of an object.
Be aware that Java Serialization has some serious security implications, FYI, and may be considered harmful where used in untrusted scenarios.
You asked:
I can give you an example. Suppose you build and deploy a system for your company that handles order fulfillment and logistics. Your system has modules, one module for invoicing, and one module for shipping.
Eventually your system grows to the point of burdening your server hardware. And your shipping info module has grown in sophistication to the point that you want to leverage it for use with other systems, and/or provide your customers with access to it.
So you decide to break out the shipping module to run on its own, on a separate machine in a different part of your network. But you want to maintain the same paradigm of object calls between your original invoicing system and your now-separate shipping system. So you decide to use RMI to hook the two systems together in a way that works the same as when they lived together in the same space. Very little of your original code need be changed.
Distributed objects have been declining in popularity, as Web Services technologies have met some of the same needs. However, distributed objects technologies solved decades ago some problems (security, discovery, and more) that were later encountered by the Web Services world, with solutions being reinvented all over again. So distributed objects are still viable in some scenarios, and should not be dismissed out of hand.