TCS -TR-A-06-10

TCS Technical Report

A Framework of Programmable Multicast
Applications Using Flexcast and Java AppletbyShin-ichi Minato, Hirokazu Takahashi,
Takeru Inoue, Hiroshi Tohjo, and Kan Toyoshima

Division of Computer Science
Report Series A
January 15, 2006

Hokkaido University
Graduate School ofInformation Science and Technology
Email:

minato@ist.hokudai.ac.jp

Phone:+81-011-706-7682

Fax:+81-011-706-7682

A Framework of Programmable Multicast Applications
Using Flexcast and Java Applet
Shin-ichi Minato

Hirokazu Takahashi

Division of Computer Science, Hokkaido University
North 14, West 9, Sapporo, 060-0814 JapanNTT Network Innovation Laboratories
1-1 Hikarinooka, Yokosuka-shi, 239-0846 Japan

Takeru Inoue

Hiroshi Tohjo

NTT Network Innovation Laboratories
1-1 Hikarinooka, Yokosuka-shi, 239-0846 JapanNTT Network Innovation Laboratories
3-9-11 Midori-Cho, Musashino-Shi, 180-8585 JapanKan Toyoshima
NTT Network Innovation Laboratories
1-1 Hikarinooka, Yokosuka-shi, 239-0846 Japan

January 15, 2006
(Abstract) As broadband Internet access is morecommonly provided, streaming applications gain
popularity and wide-area multicast technology will
be more important. Recently, a new overlay multicast protocol, “Flexcast” has been proposed torealize the wide-area multi-point contents delivery.
Flexcast provides the multicast function in a higher
layer than the IP routing; Flexcast streaming packets are forwarded between routers by using unicast.
Therefore, Flexcast can work well even if the legacy
routers remain in the Internet. In addition, Flexcast features that an eﬃcient delivery tree is autonomously constructed and maintained. Flexcast
is a promising technology to realize wide-area multicasting in a reasonable cost on the Internet.

practical applications; however, all of those are limited to use unicast communications. Our work is
the ﬁrst practical approach to develop the multicast streaming software with Java Applet. Since
Applets are distributed among clients on demand,
they are kept up-to-date without any explicit synchronizing mechanism. The service providers do
not need to distribute the application programs
to all users beforehand, and it is anytime possible to update or modify their programs. They candesign and customize their original service freely,
not restricted by the speciﬁcations of a commercial
streaming player which is dominant in the market.
This paper describes the structure of our application framework. The experimental results conﬁrm the feasibility of our method.

While Flexcast addresses the multicast routing
problem, there is another diﬃcult problem in distributing multicast application programs. In thestreaming applications, the software must be consistent among all servers and clients. However, especially when uncountable many (or public) users
are targeted, it is hard to distribute the application
programs to all prospective users, and also quite
diﬃcult to keep uncountable servers and clients upto-date. In this paper, we propose a new frameworkof programmable multicast applications based on
Flexcast protocol and Java Applet. Currently, JavaApplet technology is widely utilized for various

1

Introduction

The Internet access is one of the universal services
today, and many people enjoy WWW (World WideWeb) and E-mail services. In the beginning, the Internet was used for delivering a small capacity contents such as text data and still pictures, but the
recent progress of broadband access technologies of
ADSL and FTTH enable us to deal with the broadband streaming contents in a feasible costs. In the1

2

Shin-ichi Minato, Hirokazu Takahashi, Takeru Inoue, Hiroshi Tohjo, and Kan Toyoshimanear future, the Internet will commonly be used
for delivering live movies of various events, such asmusic concerts, sports athletic meets, lecture meetings and the ceremonies, sending to multiple destinations simultaneously.
However, most of multi-point contents delivery
systems available today are based on unicast communications, and they have a problem that thetraﬃc increases in proportion to the number of destinations. As the contents become more wideband,
this problem will be more serious in the near future. Although IP Multicast[1] technologies havebeen studied for long time, there are still technicaland economical problems, and usually they are notoperated in the public wide-area networks beyondrouter segments. Consequently, we cannot readily
use the multi-point contents delivery in the current
Internet.
The authors and colleagues have been
proposed a new overlay multicast protocol“Flexcast”[9][10][4][5], that addresses the abovementioned problem.
Flexcast provides themulticast function in a higher layer than the IP
routing, and the communication between routers
is done by the unicast. Therefore, we can start themulticast service without waiting for deployment
to all the routers in the network. In addition, theFlexcast does not need manual conﬁguration of
the delivery tree beforehand. It features that aneﬃcient delivery tree is autonomously constructed
and maintained. Thus, Flexcast is a promisingtechnology to realize the service of “anytime, anywhere, and anyone’s broadcasting” in a reasonable
cost on the Internet.
By the way, the wide-area multi-point contents
delivery technology has not only the problem of
network routing, but also another important problem on the application programs in the server andclient hosts. That is, when we use the original application program of multicast service, it is diﬃcult
to distribute and install the program for uncountable many (or public) users, and also diﬃcult tomaintain the program to be the latest version ateach user’s host. One realistic solution is to use
a commercial Web browser or a media player thathave a dominant market share. However, in thiscase, we lose the initiative of developing the mul-ticast applications freely, because it is strongly restricted by the speciﬁcation of the commercial software.
To solve the problem above-mentioned, we
propose the method of using Flexcast and JavaApplet[6] for the multicasting application program.
Currently, Java Applet technology is widely utilized for various practical applications, however, allof those are limited to use one-to-one communications. Our work is the ﬁrst practical approach todevelop the multicast streaming software with JavaApplet. In our method, the service providers do notneed to standardize the receiver program, and noneed of prior distribution for all prospective users.
Using this programmable applications framework,
we can easily develop and operate various types ofmulti-point contents delivery services in a less initial cost.
In the following sections of this paper, we ﬁrst
describe the Flexcast protocol and current problem
in Section 2. We then show the method for programmable application framework based on JavaApplet in Section 3. In Section 4, we show a prototype implementation and its evaluation to conﬁrm
the practicality of our method.

2

Flexcast: autonomous widearea multicasting method

For avoiding traﬃc congestion in multi-point contents delivery systems, multicast communication
techniques have been studied for long time. In general, multicast technology constructs a tree delivery route, and the delivery packets are duplicatedin the branching nodes. In this way, the network
traﬃc and transmission server load can greatly be
reduced[7].
Despite such a great advantage, the multicast
techniques have been used mainy in a local network
closed in one laboratory or oﬃce, and also usedin some ﬁxed/closed wide-area networks, such as
MBone[3], isolated from the public Internet. Currently, the IP Multicast protocol[1] is adopted as
IETF standard and known most widely. However, the IP Multicast cannot start delivering until
all the routers in the delivery network can handle

A Framework of Programmable Multicast Applications Using Flexcast and Java Applet

IP Multicast protocols, because those multicasting
functions are implemented in the network routing
layer. In addition, there are many versions andparameter settings in the IP Multicast protocols,
but the router products sometimes support them
diﬀerently. We need a special attention to operate
IP Multicast service in wide-area network beyond
the router segment. Therefore, the IP Multicast
is basically not operated in the public wide-area
network which consists of a number of network
providers with diﬀerent operation policies. Currently, IP Multicast is hardly used for multi-point
contents delivery service in the Internet.
The authors and colleagues have been proposeda new multicast protocol “Flexcast”[9][10][4][5],that addresses the above problem. Flexcast provides the multicast function in a higher layer
than the routing, and the communication between
routers is done by the unicast. Therefore, we canstart the multicast service without waiting for deployment to all the routers in the network. The
outline of Flexcast technology is shown as follows.

2.1

Flexcast Protocol

Figure 1 shows a basic procedure of the multi-point
contents delivery using Flexcast.

3• Flexcast splitters, that serve the function toaggregate the Flexcast ﬂows, are properly arranged in the network. We do not have to
make all the routers in the network are Flexcast splitters. The Flexcast works well whenlegacy routers exist in the network. Even
if there are no Flexcast splitters in the network, it works as just one-to-multi-point unicast transmission. There are more Flexcast
splitters in the network, more chance to aggregate the traﬃc.
Next, we show the basic operation of ﬂow aggregation in Flexcast splitters1 , with Fig. 2. The
client (receiver) hosts C1, C2, and C3 periodicallysend the request packets toward the server host S.
The request packet is transported in usual unicast
routing. When a Flexcast splitter B exists on thisroute, the request packets are intercepted by the
splitter B, and the source IP addresses C1 and C2
in the request packets are recorded in the delivery table of the splitter B. Then, the splitter B
becomes a new request client periodically sending
packets toward the server S. That is, B becomes a
proxy of C1 and C2.

• The user, who wants to transmit Flexcast contents, opens the (global) IP address of theserver host to the public.

Similarly, the Flexcast splitter A on the routefrom B to S also intercepts the request packets from
B and C3 and records the source IP address in thedelivery table. Then, the splitter A becomes a new
proxy sending periodical packets toward the server
S.

• The user, who wants to receive Flexcast contents, sends request signals toward the IP address of the Flexcast server. The request is a
simple UDP packet with the port number peculiar to Flexcast protocol, and unicasted tothe server periodically (for instance, once persecond).

The server S receives the request packets only
from A, and the server S transmits contents delivery packet to A. The splitter A duplicates andrelays the delivery packet from S toward B and C3,
which recorded in the delivery table of A. The splitter B also duplicates the delivery packets from A
and relays them to C1 and C2.

• When the request packet is received, the Flexcast server transmits the contents delivery
packets in unicast of UDP packets toward theIP address and the port number of the sourceof request. When the reception of the request
packets stops for a certain period (for instance,
ﬁve seconds), the Flexcast server recognizes
the session closed and stops the data transmission.

As the result of the above procedure, the clients
C1 C2, and C3 do not know the existence of the
splitter A and B, and it seems to directly communicate with the server S in one-to-one manner.
1

In the current version of Flexcast protocol[4][5] developed in NTT laboratories, IP Multicast (IGMPv2 and v3
conforming) is locally used at a server and a client host, andthe UDP unicast is used in the wide-area network beyond therouter segments. Therefore, there is a somewhat diﬀerent indetail point though the basic principle is the same.

4Shin-ichi Minato, Hirokazu Takahashi, Takeru Inoue, Hiroshi Tohjo, and Kan Toyoshima

Figure 1: Multi-point contents delivery based on Flexcast.

Figure 2: Basic operation of Flexcast splitters.

Moreover, the contents packets are only simply delivered from server S to the other host who sends
the request. Namely, Flexcast is transparent2 forthe client and the server hosts. Therefore, we do
not have to make any conﬁguration the adjacentrouter or client/server hosts when we introduce theFlexcast splitters in the IP network. It makes easy
to gradually deploy the Flexcast splitters in the
network. We can start the Flexcast service without
waiting the complete deployment of the splitters forthe entire network. In addition, the Flexcast has
an excellent feature that the optimal delivery tree
is constructed (and updated) autonomously only2
In the current version of Flexcast implementation[4][5],in order to facilitate the wide-area network operation andmanagement, the source IP address in the IP header of delivery packet is not always the server S, but the address ofactual source host (a Flexcast splitter) is recorded. The IP
address of the server S is recorded in the ”Flexcast header,”which is designed in the UDP payload. So, strictly speaking,it is not transparent in IP layer.

using the request packets, even if the number andlocations of the client hosts cannot be estimatedbeforehand.
Consequently, Flexcast is considered as apromising technology that realize ”anytime, anywhere, and anyone’s broadcasting” on the Internetwith a reasonable cost.

2.2

Problem on distribution and maintenance of application programs

Flexcast is a very simple, light protocol based on
UDP packets, and it is independent of the higher
application layer. This means that the application
program can be designed freely. However, there isa diﬃcult problem in actual situations.
In general, the multi-point contents delivery service requires the application programs in the server
and the client hosts, respectively, which are cor-

A Framework of Programmable Multicast Applications Using Flexcast and Java Applet

responding to each other correctly. Namely, it isnecessary to standardize the program beforehand
when a lot of receivers are expected, and need to
distribute the program for all the receivers before
starting the service. However, especially in public/open community service, it is hard to surely
distribute the program for all prospective users andto ask everyone to install the program properly.
Moreover, sometimes we need to bug correction orversion up to improve the receiving program, andthis is also diﬃcult work.
When we assume the users who are not familiar
with software installation and maintenance, a realistic solution would be to use a Web browser anda media player which are the most dominant commercial software products in the market. Recently
in Japan, the market share of Windows PC is overwhelming for broadband access terminals, hence
Internet Explorer and Windows Media Player isthe most popular streaming contents receiver insuch environment. However, the data format for
Windows Media Player is not oﬃcially opened for
public, and thus it is hard to add some originalfunctions to the receiving program. Moreover, evenif we could know the data format and could modify or improve the functions of the player, we will
always be afraid that the program suddenly be introuble because the data format may often be modiﬁed or improved by an initiative of the software
makers. This means that the dominant commercial
software requires a hidden signiﬁcant cost to keep
the correctness of the application programs, and it
is more severe problem in multi-point (public) contents delivery services, comparing to the ordinary
one-to-one communications.
After all, the most important problem for multicasting service providers is that they cannot design
or customize the applications freely because the internal data format and behavior of the commercial
software is closed and they are not programmable.
To address such a problem, we propose a framework of designing multicast applications using a
programming language. This method does not require the standardization of application software,and no need to distribute the programs for all users
before starting service.

3

5

Programmableapplication
framework based on Java Applet

In this section, we ﬁrst brieﬂy explain Java Applet and why we chose Java Applet as a programming language together with the Flexcast. We thendescribe the detailed techniques to implement theserver and receiver programs in our framework.

3.1

Java Applet

Java[6] is a programming language published fromSun Microsystems Co. in 1994. The semantics ofthis language is deﬁned on the Java virtual machine(JavaVM). A Java source program is ﬁrst compiled
into JavaVM machine language codes, and they
are executed by a JavaVM emulator running on
the target machine. This mechanism provides highcompatibility between diﬀerent platforms. As the
spread of WWW in the latter half of the 1990’s,
Java language becomes popular and widely used.
A number of multimedia libraries, such as sending/receiving Web contents including image andvoice data, have been developed in Java language,
and opened to the public.
Java Applet is a limited class of Java language,
assuming to be performed by a Java processing system built in a Web browser. An applet program isdownloaded from the Web server to client PC, andimmediately executed by a Java processor in a Web
browser system. The output of execution is displayed in the browser screen. Java Applet featuresthat we can easily implement active animation programs and interactive contents running on a Web
browser with the key board and mouse device input. At the time of Java Applet published, thetechnology was novel and attractive, and various
applets have been developed.
Recently, we also have Java Servlet technology,
which is working at server side, and the Servlets are
more often used instead of Applets. If we consider
one-to-one unicast applications, the data processing can be located at whichever, the server side or
the client side. In this case, it is more simple way to
put the program at the server side only. However,6Shin-ichi Minato, Hirokazu Takahashi, Takeru Inoue, Hiroshi Tohjo, and Kan Toyoshima

if we consider the multi-point contents delivery systems, we do need an intelligent receiving programat each leaf of the delivery tree, and Java Applet
technology is useful. Actually, the Java Applets are
now widely used in cellular phones, which have arestricted communication bandwidth.

communication port directly, various libraries on
image and voice processing are provided, and working on more than one major platforms.

For using Java Applet, a JavaVM module should
be installed in the Web browser properly. Currently, the JavaVM can be build in the most of popular browsers, such as Internet Explorer, Netscape,and Mozilla(Firefox), on either of Windows, Mac,and Linux OS. One problem is that JavaVM might
not be installed at the time of purchase of PC3 .
If we transmit the contents for public, each user
should install the JavaVM properly in one’s own
PC, and the installation problem still remains.
However, the JavaVM installation is required only
once after obtaining a new PC, and the users do notneed to install or update applications every time on
speciﬁcation change or version up. It greatly reduces the user’s labor costs. Currently, the speciﬁcation of JavaVM is enough stable, and the updateof JavaVM itself is rarely needed.

Currently, Java Applet technology is widely utilized for various practical applications, for instance,“i-appli”[2] for mobile Internet is one of the mostsuccessful service. However, all of those are limited
to use unicast communications. There has not been
any practical result of using multicast with JavaApplet. Java Applet has a strict security restriction that the client host cannot access any remote
host except only the server host which provides theApplet program4 . Conventional IP multicast uses
a special ”class-D” address, called a group address,
for the destination of IP packets. Since the groupaddress is diﬀerent from the server address, JavaApplet cannot open a communication port for themulticast server.

Besides Java Applet, Flash and JavaScript arealso widely used in recent Web contents, and they
can be used for designing programmable functions.
So we consider the possibility of those technologies
to be alternative solutions for our purpose. Unfortunately, both Flash and JavaScript basically use
the communication facilities of the Web browser,
and cannot operate the communication port directly. Therefore, they can use only HTTP communications with TCP port. TCP is limited to be
used in one-to-one unicast communications since
the both ends corporate each other for packet resending and rate control. This makes diﬃcult touse TCP for multicast communication. We consider that Java Applet would be the current best
option for our purpose, because it can operate UDP
3

Before October 2004, Internet Explorer was equippedwith ”Microsoft JavaVM” in default setting, and there wasa problem that Sun’s oﬃcial JavaVM and Microsoft’s one
are not completely compatible. As a result of the lawsuit of
the two companies, Microsoft JavaVM is abolished, and theuser oneself should install Sun’s JavaVM after obtaining a
new PC. This installation is a little hard work for beginners,
however, some maker’s PCs are equipped with a JavaVM
installer to make easy for beginners.

3.2

Combination with Flexcast

When we use Flexcast, the protocol is transparent for the server and client host as shown in Fig. 2,
and the client host seems to access the server with
one-to-one unicast communication. This meansthat Java Applet can access a multicast-type contents server without violating the security restriction, provided that the Applet program is downloaded from the Flexcast server5 .
Figure 3 shows a basic architecture of our system. In the server host, the Web server process(Apache etc.) is running as well as the Flexcast
server process. The Web server contains a Web
page (HTML ﬁle) of the service entry, and has
opened the Web page’s URI to the public as an
identiﬁer of the contents. A Java applet program
for the Flexcast receiver is embedded in the Web
page.
The user who wants to start Flexcast contents
receiving, at ﬁrst accesses the URI of the entry Web
4
The special certiﬁed remote host can be accessed exceptionally, but this procedure is also hard for beginners as wellas installing a new software.
5
As mentioned in the footnote of Section 2, the current
implementation[4][5] of Flexcast splitter is not completelytransparent. It is not diﬃcult to address this problem, andnear future, our Flexcast splitter will support the transparent mode.

7

A Framework of Programmable Multicast Applications Using Flexcast and Java Applet

but a general Java application. (We may use anyother programming language such as C, Perl, but
it would be easier to use the same language for thepair of server and client.) In the Flexcast server
program, the delivery data is divided into a limited size of the UDP packets according to the speciﬁcation of the client program, and they are sent
in a prescribed transfer rate toward the source IP
address of the periodic request packets. When therequest packets are lost for a certain time period,
the session is automatically closed.

Figure 3: Flexcast contents delivery system using
Java Applet.

page by a Web browser. Then, the Applet programof the Flexcast receiver is downloaded, and it isexecuted on JavaVM immediately. The Applet isprogrammed to send Flexcast request packets toward the server, and to receive the delivery packet
returned from the server, and then restore and display the contents to the Web browser screen. In
the network between the Flexcast server and client
hosts, we can insert any number of Flexcast splitters. The splitters aggregate the request ﬂows andsplit the delivery ﬂows autonomously, and as theresult, an eﬃcient multi-point delivery tree is generated in the network.

3.3

Design of Applet programs for Flexcast

The Flexcast client (receiver) program is describedin Java Applet. It is composed of the thread that
periodically sends the request packets toward theFlexcast server, the thread that receives the delivery packets from the server, and that restoresand displays the contents to the screen according
to the applications. On the other hand, the Flexcast server program is not written in Java Applet

In the Flexcast server/client programs, the basic UDP packets are handled completely based on
the Flexcast protocol, but we can freely design thehigher layers as far as Java language allows, suchas the speciﬁcations of presentation or application
layers processed after receiving Flexcast delivery
packets. For example, we may describe an Applet
program that handles a JPEG image ﬁle with anumber of UDP packet sequence, and receiving theimage ﬁles in a few frame/sec to be shown on thescreen in real time. In this way, we can serve a simple live movie multicast application. As anotherexample, if the program receives an image ﬁle every ﬁve or ten seconds and updates the screen immediately, it will be used for delivering the lectureslides to multiple classrooms. Moreover, if we add
the function of playing the sound, the program canalso be used for an emergency system to show theevacuation route with an alarm sound.
These examples show that we can freely program various multi-point contents delivery services
using Java Applet. We do not have to standardize
and distribute the receiver program to the users before starting the service, since the program is provided to the client hosts automatically as a JavaApplet. Therefore, even when uncountable manyusers are targeted, it is anytime possible to update
or modify the service, only considering the contents
server’s schedule.

4

Implementation
mental result

andexperi-To evaluate validity of our framework of multicasting applications, we implemented a prototype

8

Shin-ichi Minato, Hirokazu Takahashi, Takeru Inoue, Hiroshi Tohjo, and Kan Toyoshima

Figure 4: An example of screen shot of a client (receiver) host.

system and conducted experiments to conﬁrm theoperations. For the Flexcast server, we used a
Pentium-4 PC (800MHz, 512MB, 100Base-T Ethernet) with SuSE Linux 9 and Java SDK 1.4.2. On
the other hand, we prepared two diﬀerent PCs as
receivers, Pentium 1.2GHz with Windows XP Pro
SP2, and Pentium-4 800MHz with SuSE Linux 9.
We tested more than one Web browsers on eachplatform, Internet Explorer Ver. 6.0 and Netscape
7.1 on the Windows PC, and Mozilla 1.6.74 andKonqueror 3.2.1 on Linux PC, respectively. We
used Java plug-in Version 1.4.2 06 both in Windows PC and Linux PC.
In this experiment, we implemented a multicasting application that the Flexcast server transmits
JPEG image ﬁles periodically in a certain ﬁxed
time interval, and the receiver repeats drawing of
the recent image on the Web browser when the image ﬁle is delivered. In the Flexcast server, theimage ﬁle are divided into multiple UDP packets
each of which is up to 1kByte length, and a sequence number is stamped on each packet. In thereceivers, the image ﬁles are reconstructed from the
UDP packet sequence. Our receiver program candetect a packet loss based on the sequence numbers, and the erroneous image ﬁles are automatically skipped without drawing on the screen. In
addition, our Flexcast server program controls thepeak rate by inserting an interval at least 10msec
between two consecutive UDP packets. The server
program can deliver more than one streaming fromone server, namely, more than one Flexcast Applets
can be embedded in one Web page and simultaneously activated.
In this framework, we can freely specify the sizeof images and frequency of image update by theserver-side application program. This framework
can be used for various applications, for instance,
live transmission of monitor camera pictures, lecture note delivery, and real time advertisementbanners in the Web pages. The server programis written in 250 lines of Java code, and receiver
program is 190 lines of Java Applet code.
We conducted an experiment of putting one
Flexcast server in a LAN, and two diﬀerent streaming contents are simultaneously transmitted fromthe same server. Those two contents are received

A Framework of Programmable Multicast Applications Using Flexcast and Java Applet

by multiple receivers located in the same LAN. The
speciﬁcations of the two streaming contents are as
follows.
• Simple movie delivery program that transmits
JPEG images of a live camera, 4 frames/sec(320 × 240 pixels, 7.8kByte/frame in average).
Data transmission rate is about 250kbps in average.
• Lecture note delivery program that transmits JPEG images of PowerPoint slides, oneframe in every six seconds (800 × 554 pixels,
67kByte/frame in average).Data transmission
rate is about 90kbps in average, and 800kbps
in the peak rate (When the lecturer proceeds
the next slide).
We tried to transmit the above two diﬀerent
contents simultaneously, and total ten ﬂows of
streaming are delivered to the Web browsers running on three client hosts. In this case, we conﬁrmed that the performance of Java Applet is sufﬁcient, and no problem to use heterogeneous Web
browsers and OS. Figure 4 shows an example of thescreen shot of receiving host.
Next we checked the delay time between the image update on the server and its reﬂection on aclient host. It was about 0.1 second for the live
camera image application, and 0.3 to 1 second forthe lecture slide application. This delay time ismainly caused by constructing the image from thefragmented UDP packet sequence at the receiver
host, and we have to wait to receive all parts of
one image before update the screen. Thus, this
delay is almost irrelevant to the performance of interpreting Java code. To reduce the delay, we must
increase the peak transmission rate.
Flexcast protocol is based on simple UDP
packet communication without error correction andrate control. Thus, if a packet is lost in the network, we just skip an image frame, not re-sending
the lost packet. This is a natural way since there
may be many receivers working simultaneously inthe network, therefore the server cannot wait orre-send only for one receiver’s error, In such cases,
we usually apply FEC (Forward Error Correction)

9

technology[8]. There are many type of FEC methods according to the property of contents, andsometimes needs tuning adaptively to the real contents. Our programmable application framework
will be useful for implementing such error correction techniques in multi-point contents delivery services.
Finally we note that, in the above experiment,
we conﬁrmed the basic operations of Flexcast andJava Applet, between the server and the clients located in the same LAN without being relayed by
Flexcast splitters. We also conducted additional
experiment to insert a Flexcast splitter between
the server and clients, and have conﬁrmed thatthe delivery table in the Flexcast splitter is correctly constructed based on the request packets
from the Java Applet program, and delivery packets from the Flexcast server are properly relayed tothe client hosts. It means that the Flexcast splitter is working correctly cooperating with Flexcast
Applet programs.

5

Conclusion

We presented a new method for multi-point contents delivery applications based on Flexcast andJava Applet. In our method, the service provider
does not need to standardize the program, and noneed of prior distribution for all prospective users.
Even if uncountable many users are targeted, it
is anytime possible to update or modify the service, only considering the contents server’s schedule. Moreover, the service provider can design andcustomize the application program freely, not restricted by the interface of commercial software
which has a dominant share in the market. We candesign the multicast applications with not only simple movie format but also more sophisticated andcomplex presentations. For example, e-learningtechnology is recently emerging, and lecture notedelivery on the Internet[8][11] is one of the attractive multicast application. Our programmable application framework can ﬂexibly support the various display formats, image size and quality, update
timing, combination with voice and text, etc., according to the preference of the lecturer.

10

Shin-ichi Minato, Hirokazu Takahashi, Takeru Inoue, Hiroshi Tohjo, and Kan Toyoshima

As a long-term future work, our method can beapplied to the super-parallel large area distributed
data processing. In this system, the primitive data
is reported to the server using the Flexcast request
packets, and Flexcast splitters aggregate the primitive data, and then the Flexcast server feedbacks
the computation results to every host by Flexcast
delivery packets. Our programmable application
framework will be a key technique in such a massively parallel computation system.

References[1] Stephen Deering: “Multicast routing in internetworks and extended LANs,” Proc. of SIGCOMM’ 88, Aug. 1988.
[2] “DoJa: Technology for Creating i-appli, imode Java Applications,”
http://www.doja-developer.net/[3] Hans Eriksson: “MBONE: The Multicast
Backbone,” Commun. ACM, vol.37, no. 8,
pp.54-60, Aug. 1994.
[4] T. Inoue, S. Tani, K. Ishimaru, S. Minato,
and T. Miyazaki, “Wide-Area Multicasting
based on Flexcast: Toward the Ubiquitous
Network,” Proc. of APSITT’ 03, Nov. 2003.
[5] T. Inoue, S. Tani, H. Takahashi, S. Minato, T. Miyazaki, and K. Toyoshima, “Design and Implementation of Advanced Multicast Router Based on Cluster Computing,” In
Proc. of IEEE The 11th International Conference on Parallel and Distributed Systems(ICPADS-2005), July 2005.
[6] “Java 2 SDK, Standard Edition Document,”
http://java.sun.com/j2se/1.4.2/docs/[7] G. Phillips, S. Shenker, and H. Tangmunarunkit, ”Scaling of Multicast Trees: Comments on the Chuang-Sirbu scaling law,” Proc.
of SIGCOMM’99, August 1999.
[8] H. Takahashi, T. Inoue, H. Thojo,
K. Toyoshima, and S. Minato: “A Studyon IP Distance Education System Using Flexcast,” Technical Report of IEICE, IN2005-50,
pp. 127-13, July 2005. (In Japanese)[9] S. Tani, T. Miyazaki, and N. Takahashi,”Adaptive Stream Multicast Based on IP Unicast and Dynamic Commercial Attachment
Mechanism: an Active Network Implementation,” Proc. of IWAN2001, Sep. 2001.
[10] S. Tani, T. Inoue, S. Minato, H. Takahashi,
S. Kotabe, and T. Miyazaki: “Global MultiPoint Streaming Experiments Based on the
Flexcast Protocol,” NTT Technical Review,Vol. 1, No. 5, pp. 24–30, Aug. 2003.
[11] P. Ziewer and H. Seidl:”Transparent
teleteaching,” In Proc. of ASCILITE-2002,
Dec. 2002.