NetMorph An intuitive mobile object system and its applications Masashi Umezawa Kazuhiro Abe Satoshi...
description
Transcript of NetMorph An intuitive mobile object system and its applications Masashi Umezawa Kazuhiro Abe Satoshi...
NetMorphAn intuitive mobile object system
andits applications
Masashi Umezawa Kazuhiro AbeSatoshi Nishihara Tetsuya Kurihara
September 27, 2002
2
Normal SqueakToys
• MyCar forward by 5MyCar turn by 5
3
Network-enabled SqueakToys (1)
• MyCar forward by 5MyCar turn by 5MyCar warp
4
Network-enabled SqueakToys (2)
• MyCar warp to– somehost– MyCar’s home– MyFriend’s address
5
World Map (1)• Defining relationships between Worlds• Easily editable by NmWorldMapMorph
6
World Map (2)• Implemented as NmWorldMap• Map is served by MapServer (Comanche) or
local file system
7
Warp Mechanism (Steps)1. A Morph detects a display edge.2. The morph searches a destination from the map.3. The morph is serialized.4. The morph is transferred to the destination
( by SOAP*).5. warpingOut event is raised.6. The original morph is dismissed.7. The incoming morph is desterilized.8. The morph appears at the destination.9. warpedIn event is raised.
* We use Masashi Umezawa’s SoapCore
8
Warp Events• warpingOut
– Raised before warp• warpedIn
– Raised after warp
9
Funny Features (1)
• Visual Effects– MyCar effect
• appearImageSquares• curtainFall• poofIn• etc.
• These are fun to use with warp events.
10
Funny Features (2)• Easy Bounce
– MyCar head• up | down | left | right
– It is fun to use with ‘color sees’.
11
Applications• Tennis• Deluxe Tennis
12
Implementation of NetMorph
• Tight Integration with Morphic System – Added some attributes and services Morph
and MorphExtension (no subclassing)– Also added attributes and services to Player– Added some
phrases to Vocabulary
13
NetMorph Attributes• MyCar’s identifier
– World wide unique identifier (a.k.a. UUID)• MyCar’s path
– Records of the locations where the morph has ever visited
• MyCar’s home– Morph’s birthplace (path first)
• MyCar’s address– The current location (path last)
14
NetMorph Services• MyCar warp
– The morph is automatically transferred by screen edge detection
• MyCar warp to abc– The morph is immediately transferred
to a specified destination (abc)
15
Address and Map• NmUrl
– Describes host and port in a URL format• nm://somewhere:37458
• NmWorldMap– A dictionary that keeps World relationships
• Key: a NmUrl • Value: a Point (World’s logical location)
16
Communication between NetMorphs
• MyCar forward by Joystick upDownMyCar turn by Joystick leftRightMyCar warp
• What happens when MyCar goes beyond the screenedge?
17
NetMorph Communication Mechanism
1. When a target morph is away from the local World, its new address is automatically detected.
2. A proxy of the morph is dynamically created in the local World.
3. Messages are delegated to the target morph(remote) by the proxy.
18
Japanese Localization• Compatible with SqueakNihongo*
* SqueakNihongo is based on Yoshiki Ohshima’s MultilingalizedSqueak and enhanced by Kazuhiro Abe
19
Progress*
* This metrics was recorded by Atsushi Aoki’s OOM that ported to Squeak by Satoshi Nishihara
020406080
100120140160180
Classes*10Methods
20
The Next• Performance tuning• More robustness• More applications• Field testing
– By children?• MacOS, Linux support
– Currently NetMorph runs on Windows only!
21
Any Questions?