This document proposes and outlines bot computing, which uses bots controlled by wiki pages to perform massively parallel computing. Bots read from and write to dynamic wiki pages to collaborate on tasks. The author describes how wiki pages function as the architecture for bot computing programs and data. An experimental implementation is shown using PukiWiki and Java bots. As a proof of concept, bots collaborate via wiki pages to solve a parallel dynamic programming problem to find a minimal path. While high availability and security need improvement, bot computing has potential for beneficial large-scale collaborative computing applications.
Dev Dives: Streamline document processing with UiPath Studio Web
Bot Computing for Parallel Tasks Using Wiki Collaboration
1. Bot Computing
using the Power of Wiki Collaboration
Takashi Yamanoue
Fukuyama University
IIAI ESKM 2019@Toyama Japan, July 7
2. Contents
• Introduction
• Outline of Bot Computing
• Experimental Implementation
• Application to Parallel Computing
• Related Work
• Concluding Remarks
#eskm2019
3. I. INTRODUCTION
• Many Network Managers and Security Managers
– Encounter problems with Malicious Botnet
この写真 の作成者 不明な作成者 は CC BY-NC-ND のライセンスを許諾されて
います
こ
の
写
真
の
作
成
者
不
4. I. INTRODUCTION
• A (Malicious) Botnet is a massively parallel network
– It can spread many spam mails
– It can carry out DDoS attacks
この写真 の作成者 不明な作成者 は CC BY-NC のライセンスを許諾されていま
す
この写真 の作成者 不明な作成者 は CC BY-SA-NC のライセンスを許諾され
ています
5. I. INTRODUCTION
• A (Malicious) Botnet is
persistent.
– Even if security managers find
some of the bots in a botnet
and remove them from the
network,
– The botnet continues to
perform malicious activities.
6. I. INTRODUCTION
• However, a Botnet could be useful,
– If we used the
• massively parallel and
• Persistent features
– For beneficial purpose
#eskm2019
7. • A wiki [16] page is a website that allows the
easy creation and editing of any number of
interlinked webpages via a web browser, and
can be used as a means of effective
collaboration and information sharing.
• Wikipedia [17] is a well-known wiki site.
I. INTRODUCTION
#eskm2019
8. • If a Wiki is friendly to people, it must also be
friendly to machines.
• If a machine can read and write data on a
Wiki page automatically, people can obtain
much more beneficial information. People can
also easily control machines through the Wiki
page.
• Not only machine-to-people and people-to-
machine communication but also machine-
to-machine communication must be achieved
easily. If such communication can be
achieved, the Wiki can be much more useful.
#eskm2018
1. Introduction (7/10)
9. I. INTRODUCTION
• A bot of this paper, which is the main
component of bot computing of this paper,
– is a machine that can be
controlled by commands and
a program in a Wiki page.
– In this paper, we discuss what
bots can do for us.
Wiki
10. II. OUTLINE OF BOT COMPUTING
A. What is Bot Computing
• A remote-controlled computer or program is a bot
• We define bot computing as computing by bots.
• Bot computing is parallel computing.
この写真 の作成者 不明な作成者 は CC BY-SA のライセンスを許諾されています
11. II. OUTLINE OF BOT COMPUTING
A. What is Bot Computing
• Bots collaboratively perform good
actions or bad actions on the Internet.
• Bots are also able to perform some
physical actions if they are
equipped with sensors or actuators.
Wiki
この写真 の作
成者 不明な作
成者 は CC
BY-SA のライ
センスを許諾さ
この写真 の作成
者 不明な作成者
12. II. OUTLINE OF BOT COMPUTING
B. Wiki Page-type Architecture
• Godel Number
– Algorithm and Data in the Number
• Universal Turing Machine
– Algorithm and Data on a tape
• Von Newman architecture
– Program and Data on a Memory
• Bot computing uses Wiki page-type architecture
– Programs and Data on Wiki Pages
13. II. OUTLINE OF BOT COMPUTING
C. Collaborative Computing
• A Wiki network
– is usually used for collaborative
work. Many previous Wiki pages
of the Wiki network are static
and updated by people.
#eskm2019
14. II. OUTLINE OF BOT COMPUTING
C. Collaborative Computing
• Our bot computing enhances collaboration of the Wiki
network by introducing a dynamic feature to
Wiki pages.
• If the user A owns A’s Wiki page (Wiki-A) and A’s bot is
controlled by Wiki-A, then Wiki-A can be a dynamic Wiki page
that collects information from other Wiki pages, analyzes the
information, and writes back the results of the analysis to
Wiki-A. If another user B owns B’s Wiki page and B’s bot is
controlled by Wiki-B, then Wiki-B also can be another dynamic
Wiki page which collects information from Wiki-A and other
Wiki pages, analyzes the information, and writes back the
results of the analysis to Wiki-B, and so on (Fig. 1).
• data flow computing.
• a service-oriented architecture
(SOA) [10].
15. II. OUTLINE OF BOT COMPUTING
D. Behavior of a Bot
This Fig. shows…
PS. It is possible
that both the user of
the Wiki page and
the bot update the
Wiki page
simultaneously.
However,
fortunately, Wiki
software is usually
equipped with a
mutual exclusion
function for multiple
updating.
16. II. OUTLINE OF BOT COMPUTING
E. Class Pages and Object Page
• Bot computing is also object-
oriented computing [11].
• an object is the combination of a Wiki
page and a bot, and a class is the
commands and the program which is
written on the Wiki page.
Bot computing is also object-oriented computing [11]. In our bot computing, an object is the combination of a Wiki page and a bot, and a class is the commands and the program which is written on the Wiki page.
17. • Some bots in bot computing use the
same commands and the same program.
• It is annoying to write the same
commands and the same program to
each Wiki page, so, as in object-oriented
programming, bot computing might have
a class page for sharing common
commands and common programs
among the Wiki pages of such objects.
• We call a Wiki page of objects an
object page. An object page uses
the “include” command for a class page
when sharing the common class among
object pages.
18. II. OUTLINE OF BOT COMPUTING
F. High Availability
• Malicious botnets are
persistent.
• Just like a malicious botnet,
our bot computing has a high
availability feature by
introducing crossover
including to Wiki pages and
crossover execution to bots.
19. III. EXPERIMENTAL
IMPLEMENTATION
• We used PukiWiki [12] for the Wiki software and Java for the bots.
• We have written an API for reading and writing Web pages of
PukiWiki, and the bots use the API.
• Bots can run on various kinds of platforms, including Raspberry Pi.
この写真 の作成者 不明な作成者 は CC BY-NC のライセンスを許諾さ
れています
20. III. EXPERIMENTAL
IMPLEMENTATION
• We assume that PukiWiki servers of the environment are placed on
the Internet.
• In addition, a bot can run in a LAN which is separated from the
PukiWiki server by a NAT or NAPT router.
24. III. EXPERIMENTAL IMPLEMENTATION
B. Embedded Functions
• ex(<object>,<command>)
– example:
page=ex(“connector”, “getpage http://www.page.ex/”)
• getResultPart(<page>)
– Extract the part of the Page after the “result:” in the page.
27. IV. APPLICATION TO
PARALLEL COMPUTING
• We show an experiment
to solve the minimal path problem
– by parallel dynamic programming as an example of
our bot computing.
28. IV. APPLICATION TO PARALLEL COMPUTING
A. Describing Node and Arc
Information in an Object Page
• We assigned a pair of an object
page and a bot to each node.
• We denoted arcs, which point to
a node, in the object page
assigned to the node.
• The labels of the nodes are also
denoted in the object page.
29. IV. APPLICATION TO PARALLEL COMPUTING
A. Describing Node and Arc
Information in an Object Page
• Node-4 before execution
• objectPage http://bot-4-1.org/index.php?Object or http://bot-4-2.org/index.php?Object
• device dev-4-1 or dev-4-2 start after no write for 10 min.
• include http://bot.org/index.php?DP or http://bot2.org/index.php?DP
• result:
• kind="nodeInfo",nodeName="4", startNode="1", selectedNode=0, val=0, path=""
• kind="preNode",No=1,url="http://bot-2-1.org/index.php?Object",
url2="http://bot-2-2.org/index.php?Object", arcVal=2,val=0,path=""
• kind="preNode",No=2,url="http://bot-3-1.org/index.php?Object",
url2="http://bot-3-2.org/index.php?Object", arcVal=3,val=0,path=""
• currentDevice="dev-4-1", Date=2016/5/27/ 22:10:40
30. IV. APPLICATION TO PARALLEL COMPUTING
A. Describing Node and Arc
Information in an Object Page
• kind="nodeInfo",nodeName=<node name>,
startNode=<start-node>,
selectedNode=<number>, val=<val>, path=<path>
• Node-4 (Before Execution)
kind="nodeInfo",nodeName="node-4", startNode="node-1",
selectedNode=0,val=0, path=""
31. IV. APPLICATION TO PARALLEL COMPUTING
A. Describing Node and Arc
Information in an Object Page
• kind="preNode",No=1,url=<previous-node-1-1>,
url2=<previous-node-1-2>,
arcVal=<arcVal-1>,val=<val-1>,path=<path-1>
…
• Node-4 (Before Execution)
kind="preNode",No=1,url=“...node-2",url2=“...",
arcVal=2,val=0,path=""
kind="preNode",No=2,url=“...node-3",url2=“...",
arcVal=3,val=0,path=""
33. • Node-4 after execution
kind="nodeInfo",nodeName="node-4", startNode="node-1",
selectedNode=1, val=4, path= “node-1 – node-2 – node-4“
kind="preNode",No=1,url=“...node-2",url2=“...",
arcVal=2, val=4,path= “node-1 – node-2"
kind="preNode",No=2,url=“...node-3",url2=“...",
arcVal=3, val=5, path= “node-1 – node-3"
IV. APPLICATION TO PARALLEL COMPUTING
B. Describing the Class Page
34. IV. APPLICATION TO PARALLEL COMPUTING
C. Measuring Time for Solving
Minimal Path
• Theoretical value
T=Na(TI/2+TX)
Na : Number of the paths of the minimal path
TI : Interval time between reading the Object Page.
TX: Time between when the page has read and
when the execution has done.
35. IV. APPLICATION TO PARALLEL COMPUTING
C. Measuring Time for Solving
Minimal Path
(a) Minimal path=1-2-4 (b) Minimal path=1-3-6-8-4
Arc number=2 Arc number=4
36. IV. APPLICATION TO PARALLEL COMPUTING
C. Measuring Time for Solving
Minimal Path
( c ) minimal Path =1-3-4-8-10-12-14-17-19
Arc number =8
37. IV. APPLICATION TO PARALLEL COMPUTING
C. Measuring Time for Solving
Minimal Path
38. IV. APPLICATION TO PARALLEL COMPUTING
C. Measuring Time for Solving
Minimal Path
Not yet to know
When the minimal
path have found
However, at least,
With-in the repetition
of node number.
39. V. RELATED WORK
• Malicious Botnet … vs. beneficial bot
• Fog computing … no remote control feature
• Softwarization of IoT…SDN vs. Wiki page of Bot computing
• Javelin … Need Java-enabled Web
• WIKI API … APIs for various Wiki Software
• Galaxy Wiki …Writing a wiki page is writing source code
– Vs. Wiki servers and bots are separated in Bot computing.
40. V. RELATED WORK
• VRRP
– High availability of
• router. vs. general purpose computing
• SETI@Home
– Pioneer of massively parallel computing by volunteer computing
– No inter-node communication. No general purpose computing
vs. inter-node communication, general purpose computing.
41. V. RELATED WORK
• Parallel Dynamic Programming
– Speed Up efficiency was important previously.
42. VI. CONCLUDING REMARKS
• the concept of bot computing
– using the power of Wiki collaboration and
• an experimental implementation of its running environment.
• bot computing can
– be used for beneficial purposes
– enhance the power and availability of the computing.
– also be used to enhance people’s collaboration by introducing
dynamic Web pages to previously static Wiki networks.
43. VI. CONCLUDING REMARKS
• Showed
– Parallel dynamic programming for solving a minimal path problem
as an example.
• Currently
– …have only basic authentication
– Have not yet inspected high availability feature
• In the future,
– enhance the security