Download as pdf
Download as pdf
You are on page 1of 10

1

Mobile agents

Current approaches to distributed computing:


The client-server model ‫عجخ إٌّزششح ؽبٌيب‬ٛ‫أعبٌيت اٌؾ‬
‫د‬ٚ‫ اٌّض‬/ ْٛ‫رط ِؼّبسيخ اٌضث‬ّٛٔ
Code-on-demand
‫االؽزيبعبد اٌّزخظظخ‬
Web services approach ‫ريخ‬ٛ‫ة خذِبد اٌشجىخ اٌؼٕىج‬ٍٛ‫أع‬
Advantages ‫اٌّّيضاد‬
security ِٓ‫األ‬
Disadvantages ‫ة‬ٛ‫اٌؼي‬
network traffic ‫ اٌشجىخ‬ٍٝ‫ي ػ‬ٛ‫ِؼذي اٌذخ‬
latency ‫ي‬ّٛ‫اٌخ‬
overloading of resources ‫ٌخ اٌضائذح ٌٍّظبدس‬ّٛ‫اٌؾ‬

An alternative approach (mobile agents)


An autonomous executing entity that has the ability to migrate from machine to machine in a
heterogeneous network and resume its execution. They can:
1. reduce network traffic
2. overcome network latency
3. make better use of resources
4. execute asynchronously and autonomously
5. adapt dynamically
6. be robust and fault tolerant
)‫أسلوب البديل (وكالء الحركة‬
‫س٘ب‬ٚ‫ د‬ٝ‫رغزّش ف‬ٚ ‫اص‬ٛ‫ اٌشجىخ اٌّزغيشح اٌخ‬ٝ‫ ف‬ٜ‫ أخش‬ٌٝ‫ االٔزمبي ِٓ آٌخ إ‬ٍٝ‫ رّزٍه اٌمذسح ػ‬ٝ‫ٔخ اٌز‬ٕٛ‫ رٍه اٌىي‬ٝ٘ ‫ٔخ اٌزٕفيز اٌّغزمٍخ‬ٕٛ‫إْ وي‬
:ٝ‫َ ثبآلر‬ٛ‫ٔخ اْ رم‬ٕٛ‫رغزطيغ رٍه اٌىي‬ٚ .ٜ‫اٌزٕفيز‬
‫ اٌشجىخ‬ٍٝ‫ي ػ‬ٛ‫ اٌزمٍيً ِٓ ِؼذي اٌذخ‬.1
‫ي اٌشجىخ‬ّٛ‫ خ‬ٍٝ‫ اٌزغٍت ػ‬.2
‫ االعزخذاَ األفؼً ٌٍّظبدس‬.3
ٝ‫اٌزٍمبئ‬ٚ ِٓ‫ اٌزٕفيز اٌالِزضا‬.4
‫ اٌزىيف اٌفؼبي‬.5
ًٍ‫ رؾًّ اٌخ‬.6
Infrastructure requirements
To implement a mobile agent we need:
1) A suitable and transportable language in which the agent’s code will be written,
2) An engine or interpreter for that language,
3) Communication protocols that allow engines on different machines to exchange agents.
Agents
‫متطلبات البنية التحتية‬
Places :ٝ‫ اآلر‬ٌٝ‫ويً اٌؾشوخ ٔؾزبط إ‬ٚ ‫ٌزٕفيز‬
ً‫وي‬ٌٛ‫لبثٍخ ٌٍٕمً ِٓ ؽيش وزبثخ رشِيض ا‬ٚ ‫) ٌغخ ِٕبعجخ‬1
Engine ‫ ِزشعُ ٌزٍه اٌٍغخ‬ٚ‫) ِؾشن أ‬2
.‫ ِخزٍف اٌّبويٕبد‬ٝ‫والء ف‬ٌٛ‫ رغّؼ ٌٍّؾشوبد ثزجبدي ا‬ٝ‫الد)االرظبالد اٌز‬ٛ‫و‬ٛ‫ر‬ٚ‫اػذ(ثش‬ٛ‫) ل‬3
Host
2

Migration

Modes of migration ‫طرق عمل االنتقال‬


The state full or strong mobility (go) model
An agent’s object state, code, and control state are captured. Execution is allowed to continue
from the exact point at which it was stopped.
More convenient for the end programmer, but more work for the system developer. Routines
to capture state control are required on top of the interpreters.
‫وضع نموذج الحركية (الذهاب) الكاملة أو القوية‬
.‫لف‬ٛ‫ثخ ؽيش رُ اٌز‬ٍٛ‫ يغّؼ ثبٌزٕفيز ٌالعزّشاس ِٓ إٌمطخ اٌّط‬.ُ‫ػغ اٌزؾى‬ٚٚ , ‫اٌشفشح‬ٚ , ً‫وي‬ٌٍٛ ‫ػؼيخ اٌزاريخ‬ٌٛ‫ وً ِٓ ا‬ٍٝ‫يزُ اٌزغٍت ػ‬
ِٓ ً‫ سأط ثشاِظ إٌم‬ٍٝ‫ة ػ‬ٍٛ‫ة ِط‬ٍٛ‫ػغ اٌزغٍت ِط‬ٚ ٝ‫ اْ ّٔطيخ اٌزؾىُ ف‬. ُ‫س إٌظ‬ٛ‫ب اوضش فؼبٌيخ ٌّط‬ٕٙ‫ٌى‬ٚ َ‫رٕبعت اوضش اٌّجشِظ اٌّغزخذ‬
.ٜ‫ اخش‬ٌٝ‫ٌغخ ا‬

The stateless or weak mobility (known entry point) model


The agent’s object state and code is captured. The execution in the new machine is continued
from a known entry point.
Commercial Java-based systems use the entry point.
)‫نموذج الحركية الضعيفة او انعدام الوضع (المعروف بنقطة الدخول‬
.‫فخ‬ٚ‫ي اٌّؼش‬ٛ‫ اآلٌخ اٌغذيذح ِٓ ٔمطخ اٌذخ‬ٝ‫ يغزّش اٌزٕفيز ف‬.‫اٌشفشح‬ٚ ً‫وي‬ٌٍٛ ‫ػؼيخ اٌزاريخ‬ٌٛ‫ ا‬ٍٝ‫يزُ اٌزغٍت ػ‬
.‫ي‬ٛ‫رغزخذَ ٔظُ عبفب اٌزغبسيخ ٔمطخ اٌذخ‬
Mobile agent systems
Non-Java mobile agent systems
Telescript
Agent Tcl
D’Agents
Ara
TACOMA
Java-based mobile agent systems
Aglets
Concordia
NOMADS
3

Aglets

Implemented at the IBM Tokyo Research Laboratory.


Aglets do not capture an agent’s control state during migration.
That would require modifications to the standard Java virtual machine. Instead agent execution is
restarted from a known entry point

.ٛ‫وي‬ٛ‫ ثط‬IBM ‫ ِؼبًِ ثؾش ششوخ‬ٝ‫يزُ رٕفيز٘ب ف‬


.‫ويً ػٕذ االٔزمبي‬ٌٛ‫ػغ رؾىُ ا‬ٚ ِٓ ً‫اليخ ال رؼشل‬ٌٛ‫األغطيخ اٌطشفيخ ا‬

.‫فخ‬ٚ‫ي اٌّؼش‬ٛ‫ف يجذأ ِٓ عذيذ ِٓ ٔمطخ اٌذخ‬ٛ‫ويً ع‬ٌٛ‫ثذال ِٓ رٌه فبْ رٕفيز ا‬ٚ .ٍٝ‫ف يزطٍت رؼذيالد ٌّؼيبس آٌخ اٌغبفب اٌفؼ‬ٛ‫٘زا ع‬ٚ

Basic concepts
Aglet: a mobile Java object that visits aglet-enabled hosts in a network.
Proxy: it is a representative of an aglet. It serves as a shield to protect the aglet from direct access
to its public methods.
Context: an aglet’s workplace. It corresponds to a place. Multiple contexts may reside on the same
machine.
Identifier: a unique identifier is assigned to each aglet after initialization.
‫اٌّفب٘يُ األعبعيخ‬

‫ اٌشجىخ‬ٝ‫لف ػٕذ اٌّؼيفبد اٌطشفيخ اٌؼبٍِخ ف‬ٛ‫ يز‬ٝ‫ عغُ عبفب ؽشو‬: )ٝ‫ اٌطشف‬ٝ‫ال‬ٌٛ‫أعٍذ(اٌششيؾ ا‬
.‫فخ‬ٚ‫ي اٌّجبشش ثبٌطشق اٌّؼش‬ٛ‫ (أعٍذ) ِٓ اٌذخ‬ٝ‫ال‬ٌٛ‫ ٌٍطشف ا‬ٝ‫ال‬ٛ‫ يؼًّ و‬ٛ٘ٚ .ٝ‫ اٌطشف‬ٝ‫ال‬ٌٛ‫ ثذيً ا‬ٛ٘ :)ٝ‫ال‬ٌٛ‫ (اٌذسع ا‬ٝ‫وغ‬ٚ‫ثش‬
‫ ٔفظ‬ٝ‫ػخ ِٓ ثيئخ ػًّ اٌجشٔبِظ ف‬ّٛ‫ ِٓ اٌّّىٓ رغىيٓ ِغ‬.ْ‫ب ٌٍّىب‬ٌٙ‫يزُ اسعب‬ٚ .ٝ‫ اٌطشف‬ٝ‫ال‬ٌٛ‫ ِٕطمخ ػًّ ا‬:)‫ٔزىغذ (ثيئخ رفؼيً اٌجشٔبِظ‬ٛ‫و‬
.‫اآلٌخ‬
.‫ ثؼذ اٌجذء ِجبششح‬ٝ‫ال‬ٚ ‫ خبص ٌىً ؽشف‬ٝ‫ يزُ رؾذيذ سِض رؼشيف‬:‫ص اٌزؼشيفيخ‬ِٛ‫اٌش‬

Fundamental Aglet operations

Creation
Cloning
Dispatching
Retraction
Activation and Deactivation
Disposal

Programming model
‫النموذج البرمجى‬
The Aglet programming model is event-based ‫ف‬ٚ‫ رغيش اٌظش‬ٍٝ‫ ػ‬ٝ‫ال‬ٌٛ‫ ٌٍطشف ا‬ٝ‫رط اٌجشِغ‬ٌّٕٛ‫يؼزّذ ا‬
Customized listeners can be used to catch particular ‫سح‬ٚ‫ د‬ٝ‫ رغيشاد خبطخ ف‬ٜ‫يّىٓ اعزخذاَ اٌّغزىشف اٌّؼذَي ٌّؼشفخ ا‬
events in the life cycle of an aglet: .ٝ‫ال‬ٌٛ‫ؽيبح اٌطشف ا‬
Clone listener (clone creation) )‫ْ إٌغخ‬ٛ‫ِغزىشف إٌغخ (ِى‬
Mobility listener (dispatching, retraction, arrival) )‫ي‬ٛ‫ط‬ٌٛ‫ ا‬, ‫ اٌغؾت‬, ‫ِغزىشف اٌؾشويخ (االسعبي‬
Persistence listener (deactivation, activation) )ً‫اٌزؼطي‬ٚ ً‫لف (اٌزشغي‬ٛ‫ِغزىشف اٌز‬
4

General process

A mobile agent that wants to migrate calls the dispatch method


The Aglets system calls the agent’s on Dispatching method which performs application specific
cleanup, kills the agent’s threads, serializes the agent’s code and object state, and sends the agent’s
code and object state to the new machine
On the new machine the system calls the agents on Arrival method which performs application
specific initialization
Finally the agent’s run method is called in order to start the agent’s execution
‫اٌّؼبٌغخ اٌؼبِخ‬

‫ظ االسعبي اٌفؼبي‬ِٕٙ ٝ‫ االٔزمبي يغزذػ‬ٝ‫ يشغت ف‬ٜ‫ اٌز‬ٝ‫ويً اٌؾشو‬ٌٛ‫اْ ا‬


‫ؽذاد اٌّؼبٌغخ‬ٚ ً‫ يؼط‬, ٝ‫َ ثبٔغبص ػٍّيخ رٕظيف ِّيض رطجيم‬ٛ‫ يم‬ٜ‫ظ االسعبي اٌفؼبي اٌز‬ِٕٙ ‫ويً ػٓ ؽشيك‬ٌٛ‫اليخ ا‬ٌٛ‫ ٔظبَ االؽشاف ا‬ٝ‫يغزذػ‬
.‫ذف آلٌخ عذيذح‬ٌٙ‫ػغ ا‬ٚٚ ً‫وي‬ٌٛ‫يشعً شفشح ا‬ٚ ٚ ‫ذف‬ٌٙ‫ػغ ا‬ٚٚ ً‫وي‬ٌٛ‫ يؼغ عٍغٍخ ٌشفشاد ا‬, ً‫وي‬ٌٍٛ ٜ‫اٌظغش‬
.ٝ‫َ ثزفؼيً ِّيض رطجيم‬ٛ‫ رم‬ٝ‫اٌز‬ٚ ‫ذف‬ٌٙ‫ ؽشيمخ االِغبن ثب‬ٍٝ‫ اآلٌخ اٌغذيذح ػ‬ٝ‫والء ف‬ٌٛ‫ إٌظبَ ا‬ٝ‫يغزذػ‬
.ً‫وي‬ٌٛ‫ويً ِٓ اعً اٌجذء ثزٕفيز ا‬ٌٛ‫ة رشغيً ا‬ٍٛ‫ اع‬ٝ‫أخيشا يغزذػ‬ٚ

Communication

Communication between aglets


When an aglet wants to communicate with other aglets, it first has to obtain a proxy
Public methods cannot be accessed directly
Three different types of messages: now-type, future-type, oneway-types
‫اليخ‬ٌٛ‫االرظبي ثيٓ االؽشاف ا‬
ٝ‫وغ‬ٚ‫ ثش‬ٍٝ‫ي ػ‬ٛ‫ال اٌؾظ‬ٚ‫ يغت ػٍيٗ ا‬,ٜ‫اليخ االخش‬ٌٛ‫ ٌالرظبي ثبالؽشاف ا‬ٝ‫ال‬ٌٛ‫ػٕذِب يؾزبط اٌطشف ا‬
.‫ األعبٌيت اٌؼبِخ ِجبششح‬ٍٝ‫ي ػ‬ٛ‫ال يّىٓ اٌذخ‬
.‫ ّٔبرط االسعبي فمؾ‬, ٍٝ‫رط اٌّغزمج‬ٌّٕٛ‫ ا‬, ٌٝ‫رط اٌؾب‬ٌّٕٛ‫ ا‬:ً‫عذ صالصخ ّٔبرط ِخزٍفخ ِٓ اٌشعبئ‬ٛ‫ي‬
Communication between engines
‫االرظبي ثيٓ اٌّؾشوبد‬
The ATP is used in the communication layer
‫ؽخ االرظبي‬ٌٛ ٝ‫ ف‬ATP َ‫رغزخذ‬
The API abstracts the communication between agent systems .ً‫وي‬ٌٛ‫ االرظبي ثيٓ أظّخ ا‬API ً‫يفظ‬
Methods for creating, transferring, tracking and managing agents .‫والء‬ٌٛ‫اداسح ا‬ٚ ‫رمت‬ٚ ً‫ٔم‬ٚ ٓ‫ي‬ٛ‫غيخ ٌزى‬ٌّٕٙ‫ا‬

Security model

The first level of security comes from Java itself. Imported code fragments are subjected into a
series of tests and consistency tests
As the second level the Tahiti (the visual agent manager) implements a configurable security
manager that provides a fairly high degree of security for the hosting computer and its owner and
it enables a number of principals to specify and enforce policies
‫نموذج األمان‬

.‫اخزجبساد اٌضجبد‬ٚ ‫ عٍغٍخ ِٓ االخزجبساد‬ٌٝ‫ب ا‬ٌٙ‫ رُ اعزمجب‬ٝ‫ رؼشع أعضاء اٌشفشح اٌز‬.‫ب‬ٙ‫ي ٌألِبْ ِٓ اٌغبفب ٔفغ‬ٚ‫ األ‬ٜٛ‫ اٌّغز‬ٝ‫يأر‬
ْ‫ة اٌّؼيف ثذسعخ اِب‬ٛ‫يذ اٌؾبع‬ٚ‫َ ثزض‬ٛ‫سٖ يم‬ٚ‫ ثذ‬ٜ‫اٌز‬ٚ ٝ‫ اٌزٕظيج‬ِٕٝ‫) يٕفز اٌّذيش األ‬ٝ‫ويً اٌّشئ‬ٌٛ‫ ( ِذيش ا‬Tahiti ٝٔ‫ اٌضب‬ٜٛ‫ؽجمب ٌٍّغز‬ٚ
.ٓ‫عبئً اٌزأِي‬ٚ ‫يخ عّيغ‬ٛ‫ رم‬ٚ ‫ػخ ِٓ األعبعيبد ٌزّييض‬ّٛ‫يّ ِىٓ ِغ‬ٛٙ‫وزٌه ٌّبٌى‬ٚ ‫ػبٌيخ‬
5

Mobile agent security

Mobile agent security has two aspects:


Protecting the host machine
Protecting the mobile agent

Mobile agents and hosts are vulnerable to a number of threats


Agent to host threats
Agent to agent threats
Host to agent threats

Agent to host threats


‫اقتحام نظام الوكيل للمضيف‬
Masquerade ‫اٌزٕىش‬
Unauthorized access ٗ‫ػ ث‬ّٛ‫ي اٌغيش ِغ‬ٛ‫اٌذخ‬
Tampering ‫اٌؼجش‬
‫لف اٌخذِخ‬ٚ
Denial of service

Agent to agent ‫اقتحام نظام الوكيل للوكيل‬


Masquerade
Unauthorized access ‫اٌزٕىش‬
ٗ‫ػ ث‬ّٛ‫ي اٌغيش ِغ‬ٛ‫اٌذخ‬
Tampering
‫اٌؼجش‬
Denial of service ‫لف اٌخذِخ‬ٚ

Host to agent ‫اقتحام نظام المضيف للوكيل‬

Masquerade ‫اٌزٕىش‬
Tampering ٗ‫ػ ث‬ّٛ‫ي اٌغيش ِغ‬ٛ‫اٌذخ‬
Eavesdropping and traffic analysis ‫ي‬ٛ‫رؾٍيً ِؼذي اٌذخ‬ٚ ‫ اٌّؼبِالد‬ٍٝ‫اٌزغغظ ػ‬
Denial of service ‫لف اٌخذِخ‬ٚ

Security services
‫خدمات األمان‬
Authentication
‫اٌزأوذ ِٓ األطبٌخ‬
User
َ‫اٌّغزخذ‬
Host
‫اٌّؼيف‬
Agent
ً‫وي‬ٌٛ‫ا‬
Code
‫اٌشفشح‬
Access control ‫ي‬ٛ‫ اٌذخ‬ٝ‫اٌزؾىُ ف‬
Integrity ‫اٌغالِخ‬
Confidentiality ‫طيخ‬ٛ‫اٌخظ‬
Nonrepudiation ‫اٌزأوذ ِٓ أطً اٌجيبٔبد‬
Auditing ‫اٌزذليك‬
6

Protecting the host

A number of approaches have been suggested:


Safe code interpretation: use of an interpreted language
Authentication: digital signatures
Authorization: entities can be granted capabilities or access rights
Resource allocation: various mechanisms for resource allocation, including market
mechanisms
Maintaining path histories in order to be able to check the origin of mobile agents
:‫تم اقتراح عدد من الطرق وهى كالتالى‬

‫ استخدام لغة مفسرة‬:‫تفسير شفرة األمان‬


‫ التوقيعات الرقمية‬:‫اثبات الصحة‬
.‫ منح هويات للقدرة على الدخول او حقوق الدخول‬:‫السماح‬
‫ يوجد العديد من التقنيات لتقسيم المصدرو تشتمل على تقنيات السوق‬:‫تقسيم المصدر‬
‫االحتفاظ بتواريخ المسار من أجل القدرة على مراجعة أصل الوكالء الحركيين‬

Protecting the mobile agent

1) Fortress model: agents execute in a safe environment where no untrusted hosts are allowed –
compromises the advantages of mobile agents
2) Sealing and signing intermediate results to prevent tampering
3) Using shared secrets and interlocking
4) The agent’s execution and behaviour is recorded (Execution tracing)
5) Executable encrypted functions can prevent tampering
‫حماية الوكيل الحركى‬

ٓ‫والء اٌؾشويي‬ٌٛ‫ي ٌّّيضاد ا‬ٛ‫ط‬ٌٍٛ ُٙ‫ق ث‬ٛ‫ص‬ِٛ ‫ ِٓ اٌّؼيفيٓ اٌغيش‬ٜ‫ ثيئخ إِٓخ ؽيش ال يغّؼ أل‬ٝ‫والء ف‬ٌٛ‫ يؼًّ ا‬:ٓ‫رط اٌؾظ‬ّٛٔ )1
‫عيطخ ٌّٕغ اٌؼجش‬ٌٛ‫عيب ا‬ٌٕٛٛ‫ليغ ٔزبئظ اٌزى‬ٛ‫ر‬ٚ ُ‫خز‬ )2
‫ي اصٕيٓ ِٓ اٌّغزخذِيٓ ثٕفظ االشزشان‬ٛ‫ػذَ دخ‬ٚ ‫ِبد اٌّشزشوخ‬ٍٛ‫اعزخذاَ اخفبء اٌّؼ‬ )3
)‫ويً (الزفبء أصش اٌزٕفيز‬ٌٛ‫ن ا‬ٍٛ‫ع‬ٚ ‫رغغيً رٕفيز‬ )4
‫ظبئف اٌزشفيش اٌزٕفيزيخ أْ رّٕغ اٌؼجش‬ٌٛ ٓ‫يّى‬ )5
7

Issues on mobile agents


Technical issues
1. Current mobile agents do not bring about significant benefits
2. As they are written in interpreted languages, they are slow
3. Starting an execution environment and inserting an agent involves an overhead – thus higher
loads in transporting and executing them locally
4. To recover from failure during migration additional support is required
5. Appropriate naming and location services are required
6. Security
7. Lack of standardization
‫بعض األمور الهامة على الوكالء الحركيين‬

‫ِغبئً فٕيخ‬

‫ائذ ِّيضح‬ٛ‫ْ ف‬ٛ‫ْ اٌؾبٌي‬ٛ‫والء اٌؾشوي‬ٌٛ‫ال يمذَ ا‬ )1


‫غشح‬َ ‫ُ ثٍغبد ِف‬ٙ‫ء ٔظشا ٌىزبثز‬ٝ‫ا ِٓ اٌجط‬ٛٔ‫يؼب‬ )2
.‫رٕفيز٘ب ِؾٍيب‬ٚ ‫ب‬ٍٙ‫ ٔم‬ٝ‫ويً ثبعزخذاَ شفشاد اػبفيخ يغجت اؽّبي صيبدح ف‬ٌٛ‫ادخبي ا‬ٚ ‫ثذايخ ثيئخ رٕفيز‬ )3
.‫ يؾذس خالي ػٍّيخ االٔزمبي‬ٜ‫ إلطالػ اٌخًٍ اٌز‬ٝ‫ دػُ اػبف‬ٌٝ‫رؾزبط ا‬ )4
‫ػغ إٌّبعت‬ٌٛ‫خذِبد اخزيبس ا‬ٚ ‫رزطٍت رغّغخ ِخظظخ‬ )5
ِٓ‫األ‬ )6
‫ٔمض اٌميبعيخ‬ )7
Nontechnical issues
Lack of a killer application
The advantages of mobile agents are modest when applications are considered in isolation

‫ِغبئً غيش فٕيخ‬


‫بِخ‬ٌٙ‫ٔمض اٌجشاِظ ا‬
ٜ‫ب ثّؼضي ػٓ اٌزطجيمبد األخش‬ّٙ‫اػؼخ ػٕذِب يزُ رميي‬ٛ‫والء اٌؾشوييٓ ِز‬ٌٛ‫رؼزجش ِّيضاد ا‬
Potential applications
Electronic marketplaces
Mobile devices such as mobile phones and PDAs
‫اٌزطجيمبد اٌّؾزٍّخ‬
‫ٔيخ‬ٚ‫اق االٌىزش‬ٛ‫األع‬
PDA ٚ ‫ارف إٌمبٌخ‬ٌٛٙ‫ضح اٌّزٕمٍخ ِضً ا‬ٙ‫األع‬

Mobile agent

Mobile agent is a distributed computing paradigm.


It has become viable, with recent technologies such as those provided by Java.
It has great potential for network applications.
It has not been widely deployed.
‫عجخ ِٕزشش‬ٛ‫رط ؽ‬ّٛٔ ٛ٘ ٝ‫ويً اٌؾشو‬ٌٛ‫ا‬
‫د٘ب اٌغبفب‬ٚ‫ رض‬ٝ‫عيب اٌؾذيضخ ِضً رٍه اٌز‬ٌٕٛٛ‫يخ ثفؼً اٌزى‬ٛ‫أطجؼ اوضش ؽي‬
‫ رطجيمبد اٌشجىبد‬ٝ‫ح ػظيّخ ف‬ٛ‫ٌٗ ل‬
‫اعغ‬ٚ ٛ‫ ٔؾ‬ٍٝ‫غيش ِٕزشش ػ‬
8

Mobile (transportable) agents


)‫الوكالء الحركيين (قابل للنقل‬
An agent is “an independent software program which runs on behalf of a network user”.
A mobile agent is a program which, once it is launched by a user, can travel from node to node
autonomously, and can continue to function even if the user is disconnected from the network.

‫َ ثبٌزشغيً ثذال ِٓ ِغزخذَ اٌشجىخ‬ٛ‫ ِغزمً يم‬ٝٔٚ‫ ثشٔبِظ اٌىزش‬ٛ٘ ً‫وي‬ٌٛ‫ا‬


‫ ثؼذ‬ٝ‫ ػٍّٗ ؽز‬ٝ‫يّىٕٗ االعزّشاس ف‬ٚ ٍٗ‫سح رٍمبئيخ ثّغشد رشغي‬ٛ‫ ؽشف ثظ‬ٌٝ‫ ثشٔبِظ يغزطيغ اٌزٕمً ِٓ ؽشف ا‬ٛ٘ ٝ‫ويً اٌؾشو‬ٌٛ‫ا‬
‫ اٌّغزخذَ ارظبٌٗ ثبٌشجىخ‬ٕٝٙ‫اْ ي‬

user
...
‫المستخدم‬

‫خادم الملف‬ File server

Agent server

‫خادم الوكيل‬
‫خادم قواعد البيانات‬ Database server
A mobile agent performs work ‫يقوم الوكيل الحركى بآداء‬
Agent
Agent
on behalf of a user as it ‫العمل بدال من المستخدم حيث‬
Server
Server
travels to multiple locations ‫يقوم بالنتقال الى العديد من‬
‫خادم الوكيل‬
.‫االماكن على الشبكة‬
on the network.

user
...
Advantages of Mobile Agents
They allow efficient and economical use of communication channels
File server which may have low
bandwidth, high latency, and may be error-prone.
They enable the use of portable, low-cost, personal communications devices to perform complex
Agent server
tasks even when the device is disconnected from the network.
They allow asynchronous operations and true decentralization

Database server
‫مميزات الوكالء الحركيين‬
Agent
‫سثّب وضيشح‬ٚ ٌٝ‫ي ػب‬ّٛ‫خ‬ٚ ‫ِٓ عؼخ ٔمً اٌجيبٔبد‬Agent
‫ب ِؼذي ِٕخفغ‬ٙ‫ ٌذي‬ٝ‫اد االرظبي اٌز‬ٕٛ‫اٌفؼبي ٌم‬ٚ ٜ‫يغّؼ ثبالعزخذاَ االلزظبد‬
Server
Server
‫األخطبء‬
‫ْ اٌشخض غيش‬ٛ‫ ػٕذِب يى‬ٝ‫بَ اٌّؼمذح ؽز‬ٌّٙ‫إٌّخفؼخ اٌزىبٌيف آلداء ا‬ٚ ًّ‫ضح ا الرظبالد اٌشخظيخ اٌمبثٍخ ٌٍؾ‬ٙ‫يّ ِىٓ ِٓ اعزخذاَ أع‬
.‫ِزظال ثبٌشجىخ‬
‫اٌالِشوضيخ اٌؾميميخ‬ٚ ‫يغّؼ ثبٌؼٍّيبد اٌزطجيميخ اٌغيش ِزضإِخ‬
9

The mobile agent paradigm vs. the client-server paradigm


‫المضيف العميل‬
client host server host ‫المضيف الخادم‬

...
data
communication ‫بيانات االتصال‬
The client-server paradigm
‫نموذج الخادم العميل‬
‫المضيف أ‬ hostB ‫المضيف ب‬
host A
agent
transportation ‫وكيل النقل‬

The mobile agent paradigm

‫نموذج الوكيل الحركى‬

Basic Architecture

An agent server process runs on each participating host.


Participating hosts are networked through links that can be low-bandwidth and unreliable.
An agent is a serializable object whose execution state can be frozen for transportation and
reconstituted upon arrival at a remote site.

‫البنية األساسية‬

‫ وً اشزشان ٌٍّؼيف‬ٝ‫ويً ف‬ٌٛ‫يزُ رشغيً ِؼبٌغخ اٌخبدَ ا‬


.‫غيش إِٓخ‬ٚ ‫اثؾ راد ِؼذي ٔمً ثيبٔبد ِٕخفغ‬ٚ‫اؽذح ِٓ خالي س‬ٚ ‫ شجىخ‬ٝ‫يزُ اٌشثؾ ثيٓ اٌّؼيفيٓ اٌّشزشويٓ ف‬
‫ي ٌّىبْ آخش‬ٛ‫ط‬ٌٛ‫يؼبد رٕظيجٗ ػٓ ثؼذ ػٕذ ا‬ٚ ‫ػغ رٕفيز االٔزمبي‬ٚ ِٓ ٗ‫ ِزغٍغً ؽيش يّىٓ ِٕؼ‬ٛ‫ ٔؾ‬ٍٝ‫ وبئٓ يٕزشش ػ‬ٛ٘ ً‫وي‬ٌٛ‫ا‬

mobile agent

agent
server

agent server
host
10

What’s in the Agent?

An agent is an object, hence it contains state data and methods.


Among the instance data is an itinerary of the sites to be visited, which may be dynamically
constructed or adjusted.
Other data may include an agent ID or other authentication data.
The agent’s behavior at each stop can be pre-programmed and dynamically adjusted.
‫ماهو الوكيل؟‬

.‫غيخ‬ٌّٕٙ‫ا‬ٚ ‫ ثيبٔبد اٌؾبٌخ‬ٍٝ‫ ػ‬ٜٛ‫ وبئٓ يؾز‬ٛ٘ ً‫وي‬ٌٛ‫ا‬


.‫ االٔشبء ثفؼبٌيخ‬ٚ‫ب اٌزؼذيً ا‬ٌٙ‫الغ يزُ ِٓ خال‬ٌٍّٛ ً‫ ثّضبثخ دٌي‬ٝ٘ ْٛ‫ػخ وّضبي رى‬ٛ‫ػ‬ٌّٛ‫اٌجيبٔبد ا‬
.ٜ‫ثيبٔبد اصجبد األطً األخش‬ٚ ID ً‫وي‬ٌٛ‫ ا‬ٍٝ‫ ػ‬ٜ‫ اٌجيبٔبد األخش‬ٜٛ‫سثّب رؾز‬
.‫لف‬ٛ‫ويً ثفؼبٌيخ ػٕذ وً ر‬ٌٛ‫ن ا‬ٍٛ‫ رؼذيً ع‬ٚ‫يّىٓ اػبدح ثشِغخ ا‬

Mobile agent applications ‫تطبيقات الوكيل الحركى‬

Information retriever ‫ِبد‬ٍٛ‫إعزشعبع اٌّؼ‬


Monitoring ‫اٌّشالجخ‬
‫ غشف اعزّبػبد‬/ ٝ‫ق افزشاػ‬ٛ‫ع‬
Virtual market-place/ meeting room
‫ثشاِظ ِغبٔيخ‬
Shareware

Security in Mobile Agent Systems


Security concern is the primary deterrent of deploying the mobile-agent technology.
There are concerns for both the agent hosts and the mobile agents.
Agent host concerns:
Malicious/unauthorized agents can misuse/destroy system resources.
Agent concerns:
Malicious hosts can destroy or alter an agent’s logic, e.g.,Mobile agent’s route can be
altered.
Measures:
Authentication – an agent must authenticate itself to the host, and an agent server must
authenticate itself to the agent.
Encryption – an agent encrypts its sensitive data.
Resource access – a host enforces strict access control to its resources.
‫األمن فى أنظمة الوكيل الحركى‬
ٝ‫ويً اٌؾشو‬ٌٛ‫عيب ا‬ٌٕٛٛ‫ إلٔزشبس رى‬ٝ‫ اٌشادع األعبع‬ٛ٘ ِٕٝ‫اٌمٍك األ‬
.ٓ‫والء اٌؾشويي‬ٌٛ‫ا‬ٚ ً‫وي‬ٌٛ‫ اٌّمٍمخ ٌىً ِٓ ِؼيفبد ا‬ٝ‫اؽ‬ٌٕٛ‫عذ اٌؼذيذ ِٓ ا‬ٛ‫ي‬
ً‫وي‬ٌٛ‫ اٌمٍك ِٓ ِؼيف ا‬ٝ‫اؽ‬ٛٔ
َ‫ رذِيش ِظبدس إٌظب‬/ ٌُٙ ‫ػ‬ّٛ‫والء اٌغيش ِغ‬ٌٛ‫ يّىٓ اعبءح اعزخذاَ ا‬/ ‫ػبس‬
ً‫وي‬ٌٛ‫ اٌمٍك ِٓ ا‬ٝ‫اؽ‬ٛٔ
ٝ‫ يّىٓ رغييش ِغٍه اٌؼّيً اٌؾشو‬:‫ ِضبي‬,ً‫وي‬ٌٛ‫ رغييش ِٕطميخ ا‬ٚ‫يّىٓ ٌٍّؼيفيٓ اٌؼبسيٓ رذِيش ا‬
‫اٌميبعبد‬
ٗ‫ويً اصجبد طؾخ ِظذسٖ ثٕفغ‬ٌٛ‫ خبدَ ا‬ٍٝ‫يغت ػ‬ٚ , ‫ويً يغت اْ يضجذ طؾخ ِظذسٖ ٌٍّؼيف‬ٌٛ‫أطبٌخ – اْ ا‬ٚ ‫اصجبد طؾخ‬
.ً‫وي‬ٌٍٛ
‫ويً ثيبٔبرٗ اٌؾغبعخ‬ٌٛ‫رشفيش اٌجيبٔبد – يشفش ا‬
.ٖ‫ي ٌّظبدس‬ٛ‫ اٌذخ‬ٝ‫ اٌزؾىُ اٌظبسَ ف‬ٍٝ‫ي اٌّظذس – يؤوذ اٌّؼيف ػ‬ٛ‫دخ‬

You might also like