0% found this document useful (0 votes)
108 views19 pages

Mobile Computing Unit 4 Notes

Mobile agents are software entities that can autonomously migrate across network nodes, enhancing flexibility and efficiency in mobile computing. They are characterized by autonomy, mobility, and adaptability, and are utilized in various applications such as network management, information retrieval, and e-commerce. Despite their advantages, mobile agents face challenges including security concerns, fault tolerance, and interoperability, necessitating robust design and security mechanisms.

Uploaded by

Arpita Agarwal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
108 views19 pages

Mobile Computing Unit 4 Notes

Mobile agents are software entities that can autonomously migrate across network nodes, enhancing flexibility and efficiency in mobile computing. They are characterized by autonomy, mobility, and adaptability, and are utilized in various applications such as network management, information retrieval, and e-commerce. Despite their advantages, mobile agents face challenges including security concerns, fault tolerance, and interoperability, necessitating robust design and security mechanisms.

Uploaded by

Arpita Agarwal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Mobile Agents in Mobile Computing

1. Introduction

In modern computing environments, especially in mobile and distributed systems, the


concept of mobile agents has gained significant importance. A mobile agent is a software
entity that can move across different nodes in a network, carrying both its code and state,
and resume execution at the destination node. This paradigm introduces flexibility,
efficiency, and autonomy in various mobile and distributed computing applications.

With the proliferation of mobile devices and wireless networks, mobile computing systems
increasingly need to support dynamic, adaptive, and resource-efficient behaviors. Mobile
agents address these challenges by offering a mechanism to reduce communication
overhead, adapt to network conditions, and enable asynchronous operations.

2. What is a Mobile Agent?

A mobile agent is a program that can migrate from one host to another in a network
autonomously, continue its execution from the point it left off, and perform tasks on behalf
of a user or another program.

Definition:

“A mobile agent is a process that can transport its code and execution state from one
machine to another in a heterogeneous network and continue execution on the destination
machine.”

Key Characteristics:

• Autonomy: Can act independently and make decisions.

• Mobility: Capable of migrating across networked hosts.

• Interactivity: Can communicate with other agents and systems.

• Adaptability: Can adjust behavior based on the environment.

• Persistence: Can survive system crashes by saving and restoring state.

3. Types of Agents

3.1 Stationary Agents

Remain on a single node and interact with remote systems through messages.

3.2 Mobile Agents


Move between hosts to perform computations closer to the data or resources needed.

4. Working of Mobile Agents

The operation of a mobile agent generally involves the following stages:

1. Creation: An agent is instantiated with code and state.

2. Migration: The agent chooses (or is directed) to move to another host.

3. Execution: The agent resumes execution at the destination.

4. Interaction: It communicates with local or remote resources.

5. Completion: The agent may return results to its origin or terminate.

Migration can be:

• Strong Migration: Transfers both code and execution state (program counter, stack,
etc.).

• Weak Migration: Transfers only the code and data, not the execution state.

Most systems implement weak migration due to complexity and platform dependence of
strong migration.

5. Architecture of Mobile Agent Systems

A mobile agent system typically consists of:

5.1 Agent

The software entity capable of migration and autonomous execution.

5.2 Agent Platform

Provides the runtime environment, supporting services like communication, migration,


security, and resource access.

5.3 Agent Manager

Handles life-cycle management: creation, dispatch, cloning, and termination.

5.4 Communication Manager

Facilitates inter-agent and agent-to-host communication.

5.5 Security Manager

Manages authentication, authorization, and sandboxing to prevent malicious behavior.


6. Applications of Mobile Agents in Mobile Computing

6.1 Network Management

Agents travel to network nodes to gather configuration and performance data, enabling
decentralized monitoring and control.

6.2 Information Retrieval

Agents can search distributed databases or the web, fetching only relevant information,
reducing bandwidth usage.

6.3 E-Commerce and Mobile Payments

Agents act on behalf of users to negotiate prices, compare products, and execute
transactions in online marketplaces.

6.4 Mobile Services

In mobile environments with limited bandwidth, agents can perform computation-heavy


tasks on servers and return results to the mobile device.

6.5 Distributed Systems

In sensor networks or IoT systems, agents can aggregate and process data locally, minimizing
data transmission.

6.6 Load Balancing

Agents can monitor server loads and redirect clients or migrate services accordingly.

7. Advantages of Mobile Agents

7.1 Reduced Network Traffic

Instead of transferring large datasets over the network, agents move to the data source,
process the data, and return only the result.

7.2 Asynchronous Execution

Agents can be dispatched and continue operations even if the originating node is offline or
disconnected.

7.3 Dynamic Adaptation

Agents can adapt their behavior based on the host’s capabilities or network conditions.

7.4 Scalability
Distributed nature of agents allows better handling of large-scale systems.

7.5 Platform Independence

Mobile agent systems are usually implemented in platform-neutral languages like Java,
enhancing portability.

8. Challenges and Issues

Despite their benefits, mobile agents face several challenges:

8.1 Security Concerns

• Host security: Agents may be malicious.

• Agent security: Hosts may tamper with agents.

• Data security: Ensuring confidential data is not exposed during transit.

Security mechanisms include:

• Code signing and authentication

• Sandboxing agents

• Encryption and secure protocols

8.2 Fault Tolerance

Agents must handle disconnections, host failures, and crashes gracefully. Logging,
replication, and checkpoints can help.

8.3 Interoperability

Standardization is required to ensure agents can operate across different platforms (e.g.,
FIPA standards).

8.4 Resource Constraints

Mobile devices have limited CPU, memory, and battery life. Efficient agent design is
essential.

8.5 Migration Overhead

Frequent agent migration can introduce latency and overhead, especially in weak network
conditions.

9. Mobile Agent Programming Languages and Platforms


Several platforms support the development and execution of mobile agents:

9.1 Java-based Platforms

• JADE (Java Agent DEvelopment Framework): FIPA-compliant platform widely used in


academia.

• Aglets: Developed by IBM; allows mobile Java agents to travel between hosts.

• Voyager: Java-based object request broker with agent capabilities.

9.2 Other Languages

• Telescript: Developed by General Magic, designed specifically for mobile agents.

• Obliq: Supports distributed scope and object migration.

• Agent Tcl: Supports agent mobility in Tcl scripts.

These platforms offer APIs for agent communication, mobility, and security management.

10. Use Case: Mobile Agent in E-Commerce

Consider a user who wants to find the best price for a flight ticket from several travel sites.
Instead of visiting each site manually:

1. The user’s device dispatches a mobile agent.

2. The agent visits each travel agency’s server.

3. It queries flight availability and price, filters results locally.

4. After gathering data from all sources, it returns to the user with the best options.

This model minimizes bandwidth use and allows operations to proceed even if the user
disconnects temporarily.

11. Future Directions and Research Areas

11.1 Mobile Edge and Fog Computing

Mobile agents can offload computation from constrained devices to edge servers, reducing
latency and bandwidth usage.

11.2 AI-Driven Mobile Agents

Integration with machine learning enables adaptive agents that learn from environment and
user behavior.
11.3 Blockchain for Secure Agent Execution

Blockchain can verify the integrity of agent execution and facilitate trust in hostile or
decentralized environments.

11.4 Mobile Agent Middleware

Improving middleware to abstract complexities of mobility, security, and fault tolerance.

Security Concerns in Mobile Computing

1. Introduction

Mobile computing has revolutionized the way we interact with information and
communicate, offering anytime-anywhere access through smartphones, tablets, laptops,
wearable devices, and IoT-enabled sensors. While this flexibility has enriched our digital
lives, it has also opened the door to a host of security concerns. In mobile computing, the
interaction between users, networks, applications, and devices occurs in a dynamic and
heterogeneous environment, making security both crucial and challenging.

Security in mobile computing refers to the protection of data, devices, and networks from
unauthorized access, data breaches, malware, and other malicious activities. With the
increase in sensitive transactions on mobile devices — from banking to healthcare —
ensuring robust security mechanisms is essential.

2. Why Security is Critical in Mobile Computing

2.1 Ubiquity of Mobile Devices

Mobile devices are ubiquitous and often carry sensitive personal and corporate data. A
breach can lead to financial loss, identity theft, or corporate espionage.

2.2 Insecure Network Environments

Mobile devices often connect to public Wi-Fi networks that lack proper encryption, making
data susceptible to interception.

2.3 Device Loss or Theft

Physical loss of devices can expose stored data to unauthorized users if not encrypted or
password-protected.

2.4 Unregulated App Ecosystem


Mobile platforms like Android allow third-party applications, some of which may be
malicious or request unnecessary permissions.

3. Categories of Security Threats

Security threats in mobile computing can be broadly classified into:

3.1 Network Security Threats

These arise due to unsecured communication channels.

• Man-in-the-Middle (MitM) Attacks: Attackers intercept data between mobile devices


and servers.

• Eavesdropping: Unauthorized listening to network traffic over Wi-Fi or Bluetooth.

• Wi-Fi Spoofing: Rogue access points mimic legitimate networks to steal data.

3.2 Device-Level Threats

Related to physical or software vulnerabilities of mobile devices.

• Theft or Loss of Device

• Malware Attacks: Mobile Trojans, keyloggers, spyware, or ransomware.

• Jailbreaking or Rooting: Removes OS security constraints, increasing vulnerability.

3.3 Application-Level Threats

Due to flaws in mobile apps or malicious apps.

• Excessive Permissions: Apps may request more access than needed.

• Insecure Data Storage: Poor handling of sensitive data on the device.

• Unvalidated Input: Susceptible to injection attacks or code execution.

3.4 Cloud and Backend Threats

Many mobile apps interact with cloud storage or backend services.

• Data Leakage: Unencrypted or improperly secured cloud APIs.

• Improper Session Management: Leads to session hijacking or impersonation.

4. Common Mobile Security Attacks

4.1 Phishing and SMiShing

• Phishing: Fake emails or websites trick users into revealing credentials.


• SMiShing: Similar tactic using SMS or messaging apps.

4.2 Mobile Ransomware

Encrypts data and demands ransom. Increasingly targeting Android and iOS platforms.

4.3 Drive-by Downloads

Malicious software downloaded without user consent when visiting compromised websites.

4.4 SIM Card Swapping

Attackers socially engineer mobile providers to issue a new SIM with the victim’s number,
gaining control over 2FA codes and calls.

4.5 Side-Channel Attacks

Using information from device sensors (e.g., accelerometer, gyroscope) to infer user
behavior or keystrokes.

5. Security Models and Mechanisms in Mobile Computing

5.1 Authentication and Access Control

Ensures only authorized users access mobile systems.

• Password/PIN/Pattern-based Authentication

• Biometric Authentication: Fingerprint, facial recognition, iris scan.

• Two-Factor Authentication (2FA): Adds another layer of security.

5.2 Encryption

Secures data both at rest and in transit.

• Device Encryption: Encrypts the device’s internal storage (AES-256).

• End-to-End Encryption (E2EE): Used in messaging apps like Signal or WhatsApp.

• VPNs: Encrypt data tunnels over public networks.

5.3 Sandboxing and Application Isolation

Each mobile app runs in its own isolated environment. It prevents malicious apps from
accessing data of other apps or the system.

5.4 Secure Boot and Trusted Execution Environment (TEE)

• Secure Boot: Ensures only trusted OS and firmware are loaded during device startup.

• TEE: Isolated secure area of the processor to execute sensitive operations.


5.5 Mobile Device Management (MDM)

Enterprise-level solution that allows IT departments to monitor, manage, and secure


employee mobile devices.

• Remote Wipe

• Enforced Password Policies

• Geo-Fencing

6. Security in Mobile Operating Systems

6.1 Android

• Open-source, thus more vulnerable if not properly secured.

• Uses SELinux (Security-Enhanced Linux) for mandatory access control.

• Google Play Protect scans apps for malware.

• Developers can use Android Keystore for secure key management.

6.2 iOS

• Closed ecosystem with stricter app vetting.

• Uses Secure Enclave for biometric and cryptographic data.

• System-level sandboxing and app permissions.

7. User-Centric Security Challenges

7.1 Poor Password Hygiene

Users often use weak or repeated passwords, increasing vulnerability.

7.2 Ignoring Updates

Security patches are often ignored or delayed, exposing known vulnerabilities.

7.3 Permission Fatigue

Users blindly accept app permission requests without understanding implications.

7.4 BYOD (Bring Your Own Device)

In corporate settings, personal devices accessing enterprise networks can be hard to secure
and manage.
8. Emerging Threats and Concerns

8.1 IoT and Wearables

Connected devices like smartwatches or health trackers often lack robust security.

8.2 Mobile Edge Computing

With computation moving closer to the user, securing edge nodes is a growing concern.

8.3 AI-Powered Attacks

Machine learning can be used to automate sophisticated attacks, such as adaptive phishing
or intrusion.

8.4 Mobile Payment Systems

With NFC-based payments (Google Pay, Apple Pay), secure tokenization, and device
authentication are crucial.

9. Best Practices for Mobile Security

For Users:

• Use strong, unique passwords and enable 2FA.

• Avoid connecting to unsecured public Wi-Fi.

• Keep devices and apps updated.

• Install apps only from trusted sources.

• Use mobile security apps and antivirus software.

For Developers:

• Implement secure coding practices.

• Minimize and justify app permissions.

• Encrypt sensitive data before storage or transmission.

• Regularly test applications for vulnerabilities.

• Use secure APIs and avoid hardcoded credentials.

For Organizations:

• Enforce MDM policies and mobile usage guidelines.

• Train employees on mobile security awareness.

• Segment network access based on role and device security level.


• Perform regular audits and penetration testing.

10. Future Trends in Mobile Security

10.1 Zero Trust Security Models

“No implicit trust” approach — verifies every user, device, and network access point.

10.2 Behavioral Biometrics

Analyzes user behavior (typing speed, touch pressure) for continuous authentication.

10.3 Blockchain-based Security

Decentralized identity management and immutable logs can enhance mobile security.

10.4 Post-Quantum Cryptography

Securing mobile communications against quantum computing threats.

Fault Tolerance in Mobile Computing

1. Introduction

Fault tolerance is a critical aspect of designing robust mobile computing systems. As mobile
devices become ubiquitous and central to communication, healthcare, transportation, and
enterprise applications, they must continue to function correctly even when parts of the
system fail. Fault tolerance refers to a system’s ability to continue operating properly in the
event of partial system failures. In the context of mobile computing, this becomes even
more important due to the inherent instability and unpredictability of wireless networks,
hardware limitations, and frequent disconnections.

Mobile computing involves portable computing devices (like smartphones, tablets, laptops)
that rely on wireless networks. The dynamic nature of this environment introduces frequent
disruptions that can degrade system performance or cause failures. Therefore, ensuring fault
tolerance is essential to maintain reliability, availability, and user satisfaction.

2. What is Fault Tolerance?

Definition:

Fault tolerance is the property of a system that enables it to continue operating correctly
even when one or more of its components fail.
A fault-tolerant system does not eliminate faults entirely but manages them so that their
impact is minimized or completely hidden from the user.

3. Types of Faults in Mobile Computing

Understanding the nature of faults is the first step to designing fault-tolerant systems. Faults
in mobile computing can be classified as:

3.1 Hardware Faults

• Device malfunctions (e.g., memory failure, overheating, battery failure)

• Sensor or peripheral failures

• Network interface card damage

3.2 Software Faults

• Bugs in mobile apps or OS

• Memory leaks and crashes

• Data corruption during execution

3.3 Communication Faults

• Signal interference or fading

• Network congestion

• Dropped packets due to handovers in mobile networks

3.4 Power Failures

• Sudden loss of power due to drained batteries

• Inconsistent power supply in remote locations

3.5 Mobility-Induced Faults

• Changing network topologies as devices move

• Frequent disconnections or session losses

• IP address changes during handover

4. Fault Tolerance Strategies in Mobile Computing

To address the above faults, fault tolerance strategies are deployed at different layers —
hardware, software, network, and application.
4.1 Redundancy

Involves duplicating critical system components or data.

• Hardware Redundancy: Multiple sensors or processors ensure if one fails, another


takes over.

• Software Redundancy: Multiple algorithms or copies of data increase system


reliability.

4.2 Checkpointing and Rollback Recovery

Periodically saving the state of an application or system (checkpointing) allows rollback to a


previous state if a failure occurs.

• Local Checkpointing: Performed on the mobile device itself.

• Coordinated Checkpointing: Syncs checkpoints across distributed systems for global


recovery.

4.3 Replication

Maintaining multiple copies of data or services across devices or servers.

• Ensures high availability even if some nodes fail.

• Mobile cloud computing uses replication across edge servers to improve fault
tolerance.

4.4 Error Detection and Correction

Uses mechanisms like:

• Checksums and parity bits for data integrity in transmission

• Error-Correcting Codes (ECC) for memory protection

• Watchdog timers to detect software hangs

4.5 Failover Systems

Automatic switching to a backup system when the primary system fails. For example:

• Switching between mobile networks (4G to Wi-Fi)

• Switching to backup servers or applications

4.6 Adaptive Resource Management

Monitoring resource usage and reallocating dynamically in case of overload or failure.

• Load balancing
• Battery-aware computing (shifts workload when battery is low)

5. Fault Tolerance in Mobile Network Architectures

5.1 Cellular Networks

• Base stations hand off mobile devices during movement to maintain session
continuity.

• Soft handoffs ensure connection is maintained with multiple base stations


temporarily.

5.2 Ad Hoc and MANETs (Mobile Ad Hoc Networks)

• Use dynamic routing protocols (AODV, DSR) that reroute around failed nodes.

• Employ self-healing mechanisms for broken routes.

5.3 Mobile Cloud and Edge Computing

• Offloads processing to cloud or edge servers, reducing the impact of mobile device
failures.

• Cloud platforms maintain service continuity through redundancy and elastic scaling.

6. Fault Tolerance in Applications

Applications on mobile devices need to be fault-resilient:

• Data Syncing Apps: Must handle offline data storage and synchronize when
reconnected.

• Streaming Apps: Use buffering, error concealment, and adaptive bitrate streaming.

• Banking Apps: Employ transactional integrity and rollback mechanisms for fault
resilience.

7. Challenges in Fault Tolerance for Mobile Computing

7.1 Resource Constraints

Mobile devices have limited CPU, memory, and battery, making traditional fault tolerance
(like frequent checkpointing) expensive.

7.2 Network Instability

Unreliable wireless networks make real-time synchronization and fault recovery difficult.
7.3 Security vs. Fault Tolerance Trade-off

Encryption, while enhancing security, can interfere with performance and error detection.

7.4 Heterogeneity

Diverse operating systems, hardware configurations, and network protocols complicate fault
management.

8. Case Study: Fault Tolerance in Mobile Health Monitoring

In mobile health (mHealth) systems:

• Sensors on wearable devices collect vital data.

• Data is transmitted to cloud servers for analysis.

• Faults like battery failure, disconnection, or data corruption can be life-threatening.

Fault tolerance measures:

• Local data caching when offline

• Data replication on cloud

• Alert systems if data is not received within a time threshold

9. Future Directions

• AI-Driven Fault Prediction: Machine learning models can predict and prevent failures
before they occur.

• Blockchain for Fault-Tolerant Logging: Immutable distributed logs for traceability and
recovery.

• Context-Aware Fault Recovery: Systems that adapt based on user location, network
conditions, and device state.

Transaction Processing in Mobile Computing Environment

1. Introduction

Transaction processing is a fundamental component in the domain of computer systems,


enabling reliable and consistent data manipulation, especially in systems involving
databases. In traditional environments, transactions follow strict ACID (Atomicity,
Consistency, Isolation, Durability) properties. However, with the rise of mobile computing,
where mobile devices are used for critical operations in banking, healthcare, retail, and
enterprise resource planning, transaction processing must adapt to the constraints of
mobility, such as intermittent connectivity, low bandwidth, limited processing power, and
frequent disconnections.

This necessitates a new set of protocols and models that are optimized for the Mobile
Computing Environment (MCE) while still maintaining data integrity and reliability. This
document aims to provide a detailed understanding of the challenges, models, and
techniques used for transaction processing in mobile environments.

2. What is Transaction Processing?

A transaction is a sequence of operations performed as a single logical unit of work. These


operations must either all succeed or all fail. Transaction processing ensures that even in the
presence of failures, the system’s state remains consistent.

ACID Properties:

• Atomicity: All operations in a transaction are completed; if not, none are.

• Consistency: The database remains in a consistent state before and after the
transaction.

• Isolation: Concurrent transactions do not interfere with each other.

• Durability: Once committed, a transaction remains in the system even after failure.

In mobile environments, adhering strictly to ACID can be challenging due to disconnections,


variable network latency, and limited resources.

3. Mobile Computing Environment: Characteristics and Challenges

3.1 Characteristics

• Mobility: Devices are constantly moving, changing their network context.

• Disconnections: Devices may disconnect voluntarily (to save power) or involuntarily


(due to signal loss).

• Limited Resources: Battery life, storage, and processing power are limited.

• Heterogeneity: Devices and networks differ widely in capabilities.

• Variable Bandwidth: Mobile networks can fluctuate in speed and reliability.

3.2 Challenges for Transaction Processing


• Disrupted Communication: Makes it difficult to guarantee atomicity and durability.

• Latency: Increased response time affects isolation and consistency.

• Limited Device Capability: Complex transaction processing is hard to manage locally.

• Concurrency Control: Handling concurrent access without robust coordination is


difficult.

4. Transaction Models in Mobile Computing

Several models have been proposed to adapt transaction processing to mobile


environments. These aim to balance reliability and efficiency with the constraints of mobile
systems.

4.1 Pre-Write (Tentative Transaction) Model

• Transactions are initiated on the mobile host (MH) and executed locally.

• Results are stored as tentative and not committed immediately.

• On reconnection, the results are validated and finalized at the fixed host (server).

• Reduces the need for constant connectivity.

4.2 Kangaroo Transaction Model

• Breaks a transaction into sub-transactions that can be executed across different


hosts (mobile or fixed).

• The Joey transaction (on mobile device) hops with the user and communicates with
mother transactions (on fixed hosts).

• Improves performance by decentralizing execution.

4.3 Moflex Transaction Model

• Supports flexibility and partial execution.

• Used when it's acceptable that some sub-transactions may fail (e.g., querying nearby
restaurants).

• Prioritizes speed and availability over full consistency.

4.4 Clustering Model

• Mobile hosts form a cluster with one acting as a coordinator.

• Transactions are distributed and synchronized within the cluster.

• Effective in localized collaborative applications.


5. Transaction Processing Architecture in Mobile Environment

5.1 Mobile Host (MH)

• The end-user device where the transaction is initiated.

• May execute parts of the transaction and cache results.

5.2 Fixed Host (FH)

• Generally a server or database server in the wired network.

• Responsible for committing and validating the transaction.

5.3 Base Station (BS)

• Acts as a bridge between mobile and fixed networks.

• Can temporarily cache data or queue transactions.

5.4 Transaction Coordinator (TC)

• Manages execution, rollback, commit, and recovery of transactions.

• May reside in the FH or BS, depending on architecture.

6. Commit Protocols for Mobile Transactions

6.1 Traditional Two-Phase Commit (2PC)

• Phase 1: Prepare — TC asks all participants to prepare for commit.

• Phase 2: Commit — If all agree, TC sends commit message.

Drawback: Not suitable for mobile environments due to prolonged locking, network
dependence, and high message overhead.

6.2 Optimistic Commit Protocol

• Assumes transactions will succeed and commits locally.

• On reconnection, resolves conflicts.

• Reduces locking and waiting time, but may result in more rollbacks.

6.3 Timeout-Based Commit

• Transactions commit locally if the fixed host doesn't respond within a specified
timeout.

• Enhances availability but may compromise consistency.


7. Concurrency Control in Mobile Transaction Processing

7.1 Locking Mechanisms

• Not preferred in mobile environments due to high communication overhead and


potential deadlocks.

7.2 Optimistic Concurrency Control (OCC)

• Transactions execute without locking.

• Conflicts are detected during commit phase.

• Suitable for applications with low contention.

7.3 Timestamp Ordering

• Transactions are ordered using timestamps.

• Avoids locking and is effective in loosely connected systems.

8. Recovery and Fault Tolerance

8.1 Logging

• Transactions are logged either at the mobile host or base station.

• On crash or disconnection, logs are used to rollback or redo transactions.

8.2 Checkpointing

• Saves system state periodically.

• Helps in recovery after failures without reprocessing the entire transaction.

8.3 Disconnected Operation

• Allows transactions to be executed while offline.

• Results are merged and validated upon reconnection.

You might also like