NetMorph An intuitive mobile object system and its applications Masashi Umezawa Kazuhiro Abe Satoshi...

Preview:

DESCRIPTION

3 Network-enabled SqueakToys (1) MyCar forward by 5 MyCar turn by 5 MyCar warp

Citation preview

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?

Recommended