Object communication is the exchange of information, commands, and data between entities, but its specific meaning and implementation differ vastly depending on the context.
It has two primary interpretations: one in computer science, specifically in object-oriented programming (OOP) and distributed systems, and another in the fields of special education and human-computer interaction, where physical objects or their representations are used as a means of communication.
Object communication in computer science
In computer science, object communication is a core concept of object-oriented programming (OOP) and is fundamental to the operation of modern applications, especially in distributed systems.
The message-passing model
Object communication in OOP is typically achieved through message passing, a model in which objects send and receive messages to invoke behaviors or share data.
- How it works: When one object needs another object to perform a task, it sends a "message," which is essentially a method call. The receiving object then executes the corresponding method and can return a value.
- Encapsulation and security: This process adheres to the principle of encapsulation, where an object's internal data is hidden. Other objects can only interact with it through a predefined public interface of methods, ensuring data integrity and security.
- Abstraction: Objects only expose the necessary public mechanisms for communication, hiding unnecessary and complex internal implementation details.
- Polymorphism: The message-passing model allows for polymorphism, where different objects can respond to the same message (method call) in their own unique way, depending on their class.
**Example of message passing:**A Car object might send a startEngine message to its Engine object. The Engine object then executes its startEngine method. The Car doesn't need to know the internal mechanics of how the engine starts; it simply sends the message.
Distributed object communication
In distributed systems, objects are spread across different address spaces, such as multiple computers on a network. Communication is managed by techniques like Remote Method Invocation (RMI).
- Remote Method Invocation (RMI): RMI allows a program to invoke methods on a remote object as if it were a local object, abstracting the complexities of network communication.
- Stubs and skeletons: This is enabled by "stub" and "skeleton" objects.
- Stub (Client-side): Acts as a proxy for the remote object. It marshals (packs) the method call and its parameters into a message and sends it across the network.
- Skeleton (Server-side): Receives the message, unmarshals (unpacks) the arguments, and dispatches the request to the actual remote object.
- Protocols and mechanisms: Distributed object communication relies on various protocols and mechanisms, including the Common Object Request Broker Architecture (CORBA), Distributed Component Object Model (DCOM), and protocols used in web services like SOAP and REST.
Types of message passing
- Synchronous: The sender waits for a response from the receiver before continuing its own execution.
- Asynchronous: The sender sends a message and continues its own execution without waiting for a response. The message is typically placed in a queue for the receiver to process later.
Object communication in special education
For individuals with severe communication impairments, such as those who are deaf-blind, object communication is a system that uses real, tangible objects to represent people, places, or activities. This is a form of Augmentative and Alternative Communication (AAC).
Core concepts
- Concrete representation: This system uses concrete objects, rather than abstract pictures or words, to give a tangible, meaningful cue about an upcoming activity or choice.
- Consistency: The key to success is using the same object consistently for the same activity across all settings. This allows the individual to form an association.
- Sensory input: Because the user has limited vision and/or hearing, the system relies on the sense of touch. The object is chosen based on its tactual characteristics.
- Receptive and expressive: It can be used both receptively (providing information) and expressively (the individual making a choice).
Implementation and process
- Object calendars: Objects can be used in a schedule or calendar system to provide an overview of the day's events. For example, a student might interact with a calendar box containing objects representing each upcoming activity in sequence.
- Establishing meaning: To establish a connection, the individual is presented with the object before the activity. For example, a spoon is given to a child right before lunch.
- Expanding the system: As the individual learns the meaning of a few objects, more can be added over time.
- Expressing choices: Once the system is understood, objects can be used for making choices. The individual may indicate their preference by pointing to, touching, or picking up the desired object.
Object communication in human-computer interaction (HCI)
In HCI, object communication refers to how humans interact with and through objects, both physical and digital, to convey information.
Object language and cues
- Communicative placement: The placement of objects can communicate information. For example, a hat on a chair signals that the seat is taken, even without a verbal or written message.
- Impression management: In a professional setting, the objects in a person's office, such as diplomas, decor, and technology, can communicate information about their personality and competence.
- Promotional items: Businesses use promotional items like branded pens or mugs to communicate their brand values and promote customer loyalty.
Visual communication
- Visual aids: Physical objects, like models, can be used to explain complex concepts or show an ideal final product, enhancing understanding.
Summary of key distinctions
| Feature | Computer Science/OOP | Special Education/HCI |
|---|---|---|
| Objects | Programmatic data structures with associated methods and state. | Tangible, real-world items (spoon, blanket, etc.) or their representations. |
| Communication | Messages are sent via method calls, invoking behavior on another object. | Meaning is conveyed by interacting with, giving, or receiving a physical object. |
| Purpose | To enable modular, scalable, and secure software development. | To facilitate understanding and expression for individuals with sensory or cognitive impairments. |
| Mechanism | Code-based message passing, often handled by language runtimes or network protocols (e.g., RMI). | Sensory interaction (primarily touch) with a consistent, meaningful object. |