際際滷

際際滷Share a Scribd company logo
Multi-Agents based Software
Development of Mobile Application
Using JADE
By
Bu Saw
Dec 4, 2013
Outlines
	

Introduction	

Objective 	

Problem Statement	

Methodology	

Implementation	

Results	

Comparison	

Discussion	

Conclusion	

Recommendation & Future work
Introduction
q奄 Location based mobile application using multi agent
based approach.
q奄 Using JADE-LEAP, software framework, is a part of
the multi agent system to develop mobile application.
q奄 On Android OS using Android SDK
q奄 For agent communication, using FIPA ACL and
Ontology
q奄 Integration with Google Play services such as Google
map.
Objectives
To develop a proof of concept location based social
tracking multi agent system application.
q奄 To develop and implement agent based Android mobile
application using JADE LEAP to be a part of multi agent
system.
q奄 To design a multi agent platform and development
framework for building mobile application across Android
operating system.
q奄 To design agent messages format and ontologies using
FIPA ACL
Problem Statements
q奄 Most of the mobile applications are based on client-
server architecture with server doing all of the hard
work and backend data storage.This has heavy privacy
implications with our private data being stored on the
servers. 	

q奄 Typical mobile application are controlled by server.To
provide users dynamic needs better, multi agent
systems is the best approach to develop mobile
application.	

q奄 Most of the location sharing mobile applications do
not work together each others because they do not
support the any open standard for data.
Agents Communication	

FIPA ACL + Ontology
FIPA ACL
Parameters & Performatives 	

Performatives	

 Function	

request	

 To request an agent to another agent to perform some action. 	

inform	

 The sender informs the receiver that a given proposition is true.	

refuse	

 One agent to state to another agent that it will not perform some
action uses it. 	

con鍖rm 	

 The sender informs the receiver that a given proposition is true,
where the receiver is known to be uncertain about the proposition.	

Parameter	

 Functionalities	

:sender	

 Sender of the message	

:receiver	

 Intended recipient of the message	

:content	

 Content of the message	

:in-reply-to	

 Whether the sender expects a reply and if so, an identi鍖er for the
reply	

:reply-with	

 Reference to the :reply-with parameter
Ontology
To help well-de鍖ned meaning for the message contents
and de鍖ne vocabularies of symbols referring to objects
and relationships in the subject domain.
Ontology Class
Slot name	
  Type	
  Allowed/ Values
classes	
 
Cardinality	
  Default	
 
location	
  Class	
  Location	
  1:1	
 
	
 
Time	
  Class	
  Time	
  1:1	
 
	
 
Slot name	

 Type	

 Allowed/Values
classes	

Cardinality	

 Default	

location name	

 string	

 
	

1:1	

 
	

longitude	

 Floating point	

	
  	
  	
 
Latitude	

 Floating point	

	
  	
  	
 
Arrival
Location
Ontology Class
Slot name	

 Type	

 Allowed/ Values
classes	

Cardinality	

 Default	

Time	

 Integer	

 
	


	


	

Slot name	

 Type	

 Allowed/ Values
classes	

Cardinality	

 Default	

Friend name	

 String	

 AID	

 1	

 
	

Friend Nick
name	

String	

 AID	

 0:1	

 
	

Agent ID	

 Class	

 AID	

 1	

 
	

Time
Friend
Location Update Message Example
12/1/13 10:09 PM!
0!
481!
!
(INFORM!
:sender ( agent-identifier :name busawoo-gmail-
com@192.168.7.120:1099/JADE )!
:receiver (set ( agent-identifier :name busawoo-hotmail-
com@192.168.7.120:1099/JADE ) )!
!
:content ((IsAt (agent-identifier :name busawoo-gmail-
com@192.168.7.120:1099/JADE) (Arrival :location
(Location :locationname AIT :logitude 14.076335 :latitude
100.61456) :time (Time :arrivaltime 1385910564401)))) !
!
:language fipa-sl !
:ontology Location-Ontology !
:conversation-id __location__ )!
!
!
Begin message structure
Communication act type
Message Parameter
Message
Content
Expression
Parameter
Expression
Agent Types and Functionalities
Agent Name	
  AgentType	
  Function	
 
Mobile User Agent	
  Intentional agent	
  Review and receive data	
 
Interface Agent	
  Reactive agent	
  IHM (interface home
machine) interface	
 
Administrator Agent 	
  Intentional agent	
  Supervision of MAS system
platform	
 
Location Subscription
Manager Agent	
 
Reactive agent	
  Keeps record of all the
mobile user agents on the
MAS platform.	
 
Message Broker Agent	
  Intentional agent
	
 
Supervision
Sending and receiving
message between agents 	
 
Localization Agent	
  Adaptive agent	
  Geographical localization of
the mobile agent
Activity
Main Window Activity	

 Home Page of app. 	

LoginActivity	

 User has to login to enter the app. It needs username and
password. It is for security of user.	

RequestActivity	

 User can request friend to view friends location on app.	

MapViewActivity 	

 User can view the location of himself and his friends location.Also
user can know how many kilor meters far from he and his friend
location. 	

InviteActiviy	

 User can invite his friends on app. But user should know his friend
email address. 	

ViewActivity	

 User can view lists of his friends who are friends on app. User has
authorization to remove their friends and also user can notify their
friends location. 	

FrienddetailActivity 	

 User can see not only the friends lists but also the detail of friends
information. In the same way, User can set noti鍖cation of their
friends and can remove their friends. 	

SharelocationActivity	

 User can share their location. 	

SigninActivity	

 User are already member of app. User need to sign in only using his
email address and password to enter the app. 	

SingUpAcitiviy	

 If user are new user for this app. User has to sing up 鍖rst as user of
app. 	

LogoutActivity	

 User can logout after using the app.
System Architecture
User Agent
LocationAgent 360 app
Client
Android Application GUI
Main Container
AMS
Message Broker
Agent
DF
Agent
Platform
Admin GUI
ACC
Use-case diagram
Network/Internet
OS Kernel Linux Kernel
OS Window/Mac/Linux
JAVA SE
JADE Main Container
AMS DF
ACC
Android RT
Dalvik VM
Media
Framework
Surface
Manager
Free Type
Open GL/
ES
SSL
SQLite
SGL
WebKit
Libc
Android RT
Core Libraries
Application Framework
Activity M Window P Content P
View
System
Package
M
Notification
M
Location
M
Tel
M
Resource
M
Application Logic
JADE LEAP Container
User Agent
GUI
Development Tools
則р JADE 4.3 ( the latest version) 	

則р JADE-LEAP Add-on for Dalvik virtual machine	

則р Android development tools (SDK) 	

則р SQLite	

則р The Eclipse integrating development environment	

則р To debug and manage agent, our use JADE remote agent
management GUI.
Ontology Design and Implementation
Ontology Design and Implementation
Android Developer Tools
Android SDT with Eclipse
Executing Agent container
JADE Main Container running
Agent Management
System
Directory Facilitator
Location Manager
Agent
Remote agent management
Results
LocationAgent 360
Sing up page
Main Page  Home Page of App
Invite Friend menu
MapView menu
Share Location
View Friends Menu
Request Location
Setting Menu
Logout Menu
LocationAgent 360
q奄 LocationAgent 360 is a free smartphone app based
on agent technology
JADE-LEAP+ Android SDK = Agent based application
LocationAgent 360
q奄 To keep families and close friends connected stay in sync
throughout their busy day.
q奄 We can see where our family and friends are on a private
map, stay in touch with group get help in an emergency.
LocationAgent 360
q奄 We can know when our friends are on their way so that we
can know who are running late.
AIT200 m
q奄 We can notify our location and our friend location so that we
can know easily what time our friend arrive home and leave
from home.
q奄 Using LocationAgent360 is not only sharing location each
other but also save for emergency case and time consuming.
Comparison
Life 360	
  FindMyFriend	
  LocationAgent 360	
 
Android app	
  iOS app
	
 
Agent based android
app	
 
Android 2.1 or later

iOS 5.0 or later	
 
iOS 5.0 or later	
  Android 2.3 or later
	
 
Sign in with Google account	
  Sign in with Apple ID
(Need to have Apple ID)
	
 
Sign in with any email
like Gmail, Hotmail,
yahoo mail and etc.	
 
Client-Server based system	
  Client-Server based system
	
 
Intelligent multi agent
system	
 
Every information is stored
in their server.	
 
Save iCloud your data	
  Store information in
mobile devices such as
SQLite. 	
 
Provide one language	
  Provide 31 languages 	
  Provide one language	
 
Closed system	
  Closed system	
  Open system	
 
則р Free
則р Commercial (premium
app) Work only in USA	
 
Free
	
 
Free
Comparison
Life 360	
  FindMyFriend	
  LocationAgent 360	
 
Only work between
life360 Client 	
 
Only work between
FindMyFriend Client	
 
Interpretabilities
(Work on any FIPA
complaint agent system and
the only requirement is the
other agent can understand
ACL messages and ontology) 	
 
Property for developer	
  Property for developer	
  Extendable for developer 	
 
-	
  -	
  Limited features available 	
 
Provide Androids and
iOS. Not Symbian OS and
Window OS.	
 
Provide only iOS devices
Such as iPhone, iPod, iPad
and etc. Not provide
other OS like android,
window etc.	
 
Provide Android OS. Not
provide iOS and Window etc.	
 
	
  Not working after iOS 7
update	
 
	
 
Server control 	
  Server control	
  JADE main container
coordinate. Automous /
proactive / reactive/dynamic
Discussion
q奄 JADE platform supports efficient and transparent messaging
over different platforms (JavaSE, JavaME, .NET,ANDROID). 
q奄 It supports semantic rich communication via implementation
of FIPA ACL specifications for performatives, protocols and
ontologies.The use of ontologies in communication messages
allows extension of application features.
q奄 JADE multiagent platform has Peer-to-Peer abilities and like
others P2P system. It needs some coordinator agents (eg. DF,
AMS ).
q奄 There is no dependence on proprietary commercial services
like GoogleHangoutService.
Limitation
q奄 Need Google(Gmail) account and have to register as
Google developer to use officially Google service and
Google map
q奄 To check all of the validity emails , we can use Oauth or
OpenID, open standards for all email servers.
q奄 Limited features implementation.
q奄 Currently only implemented on Android OS.
Conclusion
q奄 Develop and implement agent message format and
ontologies to be used in LocationAgent 360.	

q奄 This application enables location based distributed multi-
agent systems in which personal agents running on mobile
deices can communicate with other agents to share
location without the need for a centralized server
orchestrating every interaction.	

q奄 The application design merges multiagent-based JADE-LEAP
platform with latest Android Application Code and Google
Play API (for location detection and map services). 	

q奄 It is a good proof of concept and a starting point to develop
more sophisticated applications based on mobile user
agents that learn about user preferences and negotiate with
other agents to offer more services in different
environments, different agents and their respective
behaviors.
Recommendation  Future Work
q奄 Implement and develop agent based mobile application run
on different operation system such as Window, Symbian OS
and even MIDP enable feature phones (eg. Nokia Asha
phones).
q奄 The ontology designed in this research is limited to location
sharing and notification features with some social abilities.
Ontology can be extended to further support more use
cases and add features by integrating with all other available
data and information.
Thank you very much!!
QUESTIONS  ANSWERS!!

More Related Content

Research Final Defense slides.

  • 1. Multi-Agents based Software Development of Mobile Application Using JADE By Bu Saw Dec 4, 2013
  • 3. Introduction q奄 Location based mobile application using multi agent based approach. q奄 Using JADE-LEAP, software framework, is a part of the multi agent system to develop mobile application. q奄 On Android OS using Android SDK q奄 For agent communication, using FIPA ACL and Ontology q奄 Integration with Google Play services such as Google map.
  • 4. Objectives To develop a proof of concept location based social tracking multi agent system application. q奄 To develop and implement agent based Android mobile application using JADE LEAP to be a part of multi agent system. q奄 To design a multi agent platform and development framework for building mobile application across Android operating system. q奄 To design agent messages format and ontologies using FIPA ACL
  • 5. Problem Statements q奄 Most of the mobile applications are based on client- server architecture with server doing all of the hard work and backend data storage.This has heavy privacy implications with our private data being stored on the servers. q奄 Typical mobile application are controlled by server.To provide users dynamic needs better, multi agent systems is the best approach to develop mobile application. q奄 Most of the location sharing mobile applications do not work together each others because they do not support the any open standard for data.
  • 7. FIPA ACL Parameters & Performatives Performatives Function request To request an agent to another agent to perform some action. inform The sender informs the receiver that a given proposition is true. refuse One agent to state to another agent that it will not perform some action uses it. con鍖rm The sender informs the receiver that a given proposition is true, where the receiver is known to be uncertain about the proposition. Parameter Functionalities :sender Sender of the message :receiver Intended recipient of the message :content Content of the message :in-reply-to Whether the sender expects a reply and if so, an identi鍖er for the reply :reply-with Reference to the :reply-with parameter
  • 8. Ontology To help well-de鍖ned meaning for the message contents and de鍖ne vocabularies of symbols referring to objects and relationships in the subject domain.
  • 9. Ontology Class Slot name Type Allowed/ Values classes Cardinality Default location Class Location 1:1 Time Class Time 1:1 Slot name Type Allowed/Values classes Cardinality Default location name string 1:1 longitude Floating point Latitude Floating point Arrival Location
  • 10. Ontology Class Slot name Type Allowed/ Values classes Cardinality Default Time Integer Slot name Type Allowed/ Values classes Cardinality Default Friend name String AID 1 Friend Nick name String AID 0:1 Agent ID Class AID 1 Time Friend
  • 11. Location Update Message Example 12/1/13 10:09 PM! 0! 481! ! (INFORM! :sender ( agent-identifier :name busawoo-gmail- com@192.168.7.120:1099/JADE )! :receiver (set ( agent-identifier :name busawoo-hotmail- com@192.168.7.120:1099/JADE ) )! ! :content ((IsAt (agent-identifier :name busawoo-gmail- com@192.168.7.120:1099/JADE) (Arrival :location (Location :locationname AIT :logitude 14.076335 :latitude 100.61456) :time (Time :arrivaltime 1385910564401)))) ! ! :language fipa-sl ! :ontology Location-Ontology ! :conversation-id __location__ )! ! ! Begin message structure Communication act type Message Parameter Message Content Expression Parameter Expression
  • 12. Agent Types and Functionalities Agent Name AgentType Function Mobile User Agent Intentional agent Review and receive data Interface Agent Reactive agent IHM (interface home machine) interface Administrator Agent Intentional agent Supervision of MAS system platform Location Subscription Manager Agent Reactive agent Keeps record of all the mobile user agents on the MAS platform. Message Broker Agent Intentional agent Supervision Sending and receiving message between agents Localization Agent Adaptive agent Geographical localization of the mobile agent
  • 13. Activity Main Window Activity Home Page of app. LoginActivity User has to login to enter the app. It needs username and password. It is for security of user. RequestActivity User can request friend to view friends location on app. MapViewActivity User can view the location of himself and his friends location.Also user can know how many kilor meters far from he and his friend location. InviteActiviy User can invite his friends on app. But user should know his friend email address. ViewActivity User can view lists of his friends who are friends on app. User has authorization to remove their friends and also user can notify their friends location. FrienddetailActivity User can see not only the friends lists but also the detail of friends information. In the same way, User can set noti鍖cation of their friends and can remove their friends. SharelocationActivity User can share their location. SigninActivity User are already member of app. User need to sign in only using his email address and password to enter the app. SingUpAcitiviy If user are new user for this app. User has to sing up 鍖rst as user of app. LogoutActivity User can logout after using the app.
  • 14. System Architecture User Agent LocationAgent 360 app Client Android Application GUI Main Container AMS Message Broker Agent DF Agent Platform Admin GUI ACC
  • 16. Network/Internet OS Kernel Linux Kernel OS Window/Mac/Linux JAVA SE JADE Main Container AMS DF ACC Android RT Dalvik VM Media Framework Surface Manager Free Type Open GL/ ES SSL SQLite SGL WebKit Libc Android RT Core Libraries Application Framework Activity M Window P Content P View System Package M Notification M Location M Tel M Resource M Application Logic JADE LEAP Container User Agent GUI
  • 17. Development Tools 則р JADE 4.3 ( the latest version) 則р JADE-LEAP Add-on for Dalvik virtual machine 則р Android development tools (SDK) 則р SQLite 則р The Eclipse integrating development environment 則р To debug and manage agent, our use JADE remote agent management GUI.
  • 18. Ontology Design and Implementation
  • 19. Ontology Design and Implementation
  • 21. Android SDT with Eclipse
  • 23. JADE Main Container running Agent Management System Directory Facilitator Location Manager Agent Remote agent management
  • 27. Main Page Home Page of App
  • 35. LocationAgent 360 q奄 LocationAgent 360 is a free smartphone app based on agent technology JADE-LEAP+ Android SDK = Agent based application
  • 36. LocationAgent 360 q奄 To keep families and close friends connected stay in sync throughout their busy day. q奄 We can see where our family and friends are on a private map, stay in touch with group get help in an emergency.
  • 37. LocationAgent 360 q奄 We can know when our friends are on their way so that we can know who are running late. AIT200 m q奄 We can notify our location and our friend location so that we can know easily what time our friend arrive home and leave from home. q奄 Using LocationAgent360 is not only sharing location each other but also save for emergency case and time consuming.
  • 38. Comparison Life 360 FindMyFriend LocationAgent 360 Android app iOS app Agent based android app Android 2.1 or later iOS 5.0 or later iOS 5.0 or later Android 2.3 or later Sign in with Google account Sign in with Apple ID (Need to have Apple ID) Sign in with any email like Gmail, Hotmail, yahoo mail and etc. Client-Server based system Client-Server based system Intelligent multi agent system Every information is stored in their server. Save iCloud your data Store information in mobile devices such as SQLite. Provide one language Provide 31 languages Provide one language Closed system Closed system Open system 則р Free 則р Commercial (premium app) Work only in USA Free Free
  • 39. Comparison Life 360 FindMyFriend LocationAgent 360 Only work between life360 Client Only work between FindMyFriend Client Interpretabilities (Work on any FIPA complaint agent system and the only requirement is the other agent can understand ACL messages and ontology) Property for developer Property for developer Extendable for developer - - Limited features available Provide Androids and iOS. Not Symbian OS and Window OS. Provide only iOS devices Such as iPhone, iPod, iPad and etc. Not provide other OS like android, window etc. Provide Android OS. Not provide iOS and Window etc. Not working after iOS 7 update Server control Server control JADE main container coordinate. Automous / proactive / reactive/dynamic
  • 40. Discussion q奄 JADE platform supports efficient and transparent messaging over different platforms (JavaSE, JavaME, .NET,ANDROID). q奄 It supports semantic rich communication via implementation of FIPA ACL specifications for performatives, protocols and ontologies.The use of ontologies in communication messages allows extension of application features. q奄 JADE multiagent platform has Peer-to-Peer abilities and like others P2P system. It needs some coordinator agents (eg. DF, AMS ). q奄 There is no dependence on proprietary commercial services like GoogleHangoutService.
  • 41. Limitation q奄 Need Google(Gmail) account and have to register as Google developer to use officially Google service and Google map q奄 To check all of the validity emails , we can use Oauth or OpenID, open standards for all email servers. q奄 Limited features implementation. q奄 Currently only implemented on Android OS.
  • 42. Conclusion q奄 Develop and implement agent message format and ontologies to be used in LocationAgent 360. q奄 This application enables location based distributed multi- agent systems in which personal agents running on mobile deices can communicate with other agents to share location without the need for a centralized server orchestrating every interaction. q奄 The application design merges multiagent-based JADE-LEAP platform with latest Android Application Code and Google Play API (for location detection and map services). q奄 It is a good proof of concept and a starting point to develop more sophisticated applications based on mobile user agents that learn about user preferences and negotiate with other agents to offer more services in different environments, different agents and their respective behaviors.
  • 43. Recommendation Future Work q奄 Implement and develop agent based mobile application run on different operation system such as Window, Symbian OS and even MIDP enable feature phones (eg. Nokia Asha phones). q奄 The ontology designed in this research is limited to location sharing and notification features with some social abilities. Ontology can be extended to further support more use cases and add features by integrating with all other available data and information.
  • 44. Thank you very much!!