In distributed computing, code mobility is the ability for running programs, code or objects to be migrated (or moved) from one machine or application to another.[1] This is the process of moving mobile code across the nodes of a network as opposed to distributed computation where the data is moved.

It is common practice in distributed systems to require the movement of code or processes between parts of the system, instead of data.[1]

Examples of code mobility include scripts downloaded over a network (for example JavaScript, VBScript), Java applets, ActiveX controls, Flash animations, Shockwave movies (and Xtras), and macros embedded within Microsoft Office documents.[2]

Overview

edit

The purpose of code mobility is to support sophisticated operations. For example, an application can send an object to another machine, and the object can resume executing inside the application on the remote machine with the same state as it had in the originating application.

According to a classification proposed by Fuggetta, Picco and Vigna,[1] code mobility can be either strong or weak: strong code mobility involves moving both the code, data and the execution state from one host to another, notably via a process image (this is important in cases where the running application needs to maintain its state as it migrates from host to host), while weak code mobility involves moving the code and the data only. Therefore, it may be necessary to restart the execution of the program at the destination host.

Several paradigms, or architectural styles, exist within code mobility:[1]

  • Remote evaluation — A client sends code to a remote machine for execution.
  • Code on demand — A client downloads code from a remote machine to execute locally.
  • Mobile agents — Objects or code with the ability to migrate between machines autonomously.

Viruses

edit

Mobile code can also download and execute in the client workstation via email. Mobile code may download via an email attachment (e.g., macro in a Word file) or via an HTML email body (e.g., JavaScript). For example, the ILOVEYOU, TRUELOVE, and AnnaK emails viruses/worms all were implemented as mobile code (VBScript in a .vbs email attachment that executed in Windows Scripting Host). In almost all situations, the user is not aware that mobile code is downloading and executing in their workstation.[citation needed]

Renting code

edit

Mobile code also refers to code "used for rent", a way of making software packages more affordable. i.e. to use on demand. This is specially relevant to the mobile devices being developed which are cellular phones, PDAs, etc. all in one. Instead of installing software packages, they can be "leased" and paid for on a per-usage basis.[citation needed]

See also

edit

References

edit
  1. ^ a b c d Fuggetta, Alfonso; Gian Pietro Picco; Giovanni Vigna (1998). "Understanding Code Mobility". IEEE Transactions on Software Engineering. 24 (5): 342–361. CiteSeerX 10.1.1.20.3442. doi:10.1109/32.685258. ISSN 0098-5589. Retrieved 29 July 2009.
  2. ^ Dr Lawrie Brown. "Mobile Code Security". Australian Defence Force Academy. Archived from the original on 3 April 2012. Retrieved 23 April 2012.

📚 Artikel Terkait di Wikipedia

Code on demand

web page). Code on demand is a specific use of mobile code, within the field of code mobility. The first constraint is that the system must be made up

Jolie (programming language)

types, typed session programming, integration with Java and JavaScript, code mobility, application containment, and web programming. A complete list of the

QR code

two-dimensional code. Several standards cover the encoding of data as QR codes: October 1997 – AIM (Association for Automatic Identification and Mobility) International

List of telephone country codes

country codes are telephone number prefixes for reaching subscribers in foreign countries or areas by international direct dialing (IDD). Country codes are

Siemens Mobility

Siemens Mobility GmbH is a division of Siemens that specializes in rail transport. With its global headquarters in Munich, Siemens Mobility has four core

Motorola Mobility

Motorola Mobility LLC, marketed as Motorola (stylized in all-lowercase as motorola), is an American consumer electronics manufacturer primarily producing

Personal communications service (NANP)

personal mobility, terminal mobility, and service profile management". Personal communications services use a special non-geographic area code of the format

Cross-cutting concern

concerns that tend to be cross-cutting include: Business rules Caching Code mobility Data validation Domain-specific optimizations Environment variables