首页
网站开发
桌面应用
管理软件
微信开发
App开发
嵌入式软件
工具软件
数据采集与分析
其他
首页
>
> 详细
代做program编程、代写Java程序设计
项目预算:
开发周期:
发布时间:
要求地区:
Assignment 2:
Distributed System and Application
2
Project: Distributed Shared White Board
◼ In these slides, we are offering mainly guidelines for satisfactory
work, but be innovative and creative, which will be valued a lot.
◼ Team/Members Size: 1 – Individual (like Assignment 1).
◼ General help: Ask your tutor during/after tutorial session. Also
use “Discussion Board” in LMS.
◼ Marks Allocated: 25
◼ Note: We expect all students to just finish and submit only the
features noted in this specification.
◼ To help you in planning, we propose:
◼ Basic Features (first complete a system with these features as they are
easier to implement)
◼ Advanced Features
3
Shared White Board – Distributed Users
◼ Shared whiteboards allow multiple users to draw simultaneously on a
canvas. There are multiple examples found on the Internet that
support a range of features such as freehand drawing with the
mouse, drawing lines and shapes such as circles and squares that
can be moved and resized, and inserting text.
4
Main Challenges
◼ Dealing with concurrency
◼ Regardless of the technology you use, you will have to ensure that access to
shared resources is properly handled and that simultaneous actions lead to a
reasonable state.
◼ Structuring your application and handling the system state
◼ For example, you can have multiple servers that communicate with each other or
a single central one that manages all the system state.
◼ Dealing with networked communication
◼ You need to decide when/what messages are sent across the network.
◼ You may have to design an exchange protocol that establishes which messages
are sent in which situation and the replies that they should generate.
◼ If you use RMI, then you need to design your remote interface(s) and servants
◼ Implementing the GUI.
◼ The functionality can resemble tools like MS Paint.
◼ You can use any tool/API/library you want.
◼ e.g.: Java2D drawing package
(http://docs.oracle.com/javase/tutorial/2d/index.html)
5
Distributed White Board
◼ Develop a white board that can be shared between multiple users
over the network.
◼ The system must be implemented in Java, but you can choose
the technology (e.g., it can be even Sockets) you want to use to
build your distributed application:
◼ Sockets
◼ TCP or UDP?
◼ Message format and Exchange protocol?
◼ can be XML-based or your own format)
◼ Client can broadcast a message with updates to all other clients, other clients reply acknowledging the
message.
◼ Java RMI?
◼ Remote Objects/Remote Interface?
◼ File or Database for Storage
◼ Please Choose any technology of your choice
◼ Make sure that can achieve the goal when you are choosing “new”
technology (otherwise, stick to what you already know).
6
Requirements 1: Basic Features
◼ Whiteboard – Multiuser system
◼ Multiple users can draw on a shared interactive canvas.
◼ Your system will support a single whiteboard that is shared between all
of the clients.
◼ Key Elements with GUI
◼ Shapes: at least your white board should support for line, circle, oval, and rectangle.
◼ Free draw and erase must be implemented (it will be more convenient if there are
several sizes of eraser)
◼ Text inputting– allow user to type text anywhere inside the white board.
◼ User should be able choose their favourite colour to draw the above features. At least 16
colours should be available.
◼ Of course, you are most welcome to be creative/innovative.
7
Requirements 2: Advanced Features
1. Chat Window (text based): To allow users to
communicate with each other by typing a text.
2. A “File” menu with new, open, save, saveAs and
close should be provided (only the manager can
control this)
3. Allow the manager to kick out a certain
peer/user
8
Guidelines on Usage/Operation
◼ Users must provide a username when joining the whiteboard. There should
be a way of uniquely identifying users, either by enforcing unique usernames
or automatically generating a unique identifier and associating it with each
username.
◼ All the users should see the same image of the whiteboard and should have
the privilege of doing all the drawing operations.
◼ When displaying a whiteboard, the client user interface should show the
usernames of other users who are currently editing the same whiteboard.
◼ Clients may connect and disconnect at any time. When a new client joins the
system, the client should obtain the current state of the whiteboard so that
the same objects are always displayed to every active client.
◼ Only the manager of the whiteboard should be allowed to create a new
whiteboard, open a previously saved one, save the current one, and close
the application.
◼ Users should be able to work on a drawing together in real time, without
appreciable delays between making and observing edits.
9
Proposed Startup/Operational Model
◼ The first user creates a whiteboard and becomes the whiteboard’s
manager
◼ java CreateWhiteBoard
username
◼ Other users can ask to join the whiteboard application any time by
inputting server’s IP address and port number
◼ java JoinWhiteBoard
username
◼ A notification will be delivered to the manager if any peer wants to
join. The peer can join in only after the manager approves
◼ A dialog showing “someone wants to share your whiteboard”.
◼ An online peer list should be maintained and displayed
◼ All the peers will see the identical image of the whiteboard, as well as
have the privilege of doing all the operations.
◼ Online peers can choose to leave whenever they want. The manager
can kick someone out at any time.
◼ When the manager quits, the application will be terminated. All the
peers will get a message notifying them.
10
Guidelines/Suggestions for Implementation
◼ These phases are suggestions for timely progression,
you are most welcome to follow your own approach.
◼ Phase 1 (whiteboard) – (aim to finish within 2 weeks of
announcement)
◼ As a starting point: Single-user standalone whiteboard (OR)
You are most welcome to implement a single user and single
server.
◼ Task A: Implement a client that allows a user to draw all the
expected elements.
◼ Task B: Implement a server so that client and server are able to
communicate entities created in Task A
11
Guidelines/Suggestions for Implementation
◼ Phase 2 (user management skeleton)
◼ Allow the manager to create a whiteboard
◼ Allow other peers to connect and join in by getting approval from
the manager
◼ Allow the manager to choose whether a peer can join in
◼ join in means the peer's name will appear in the user list
◼ Allow the joined peer to choose quit
◼ Allow the manager to close the application, and all peers get
notified
◼ Allow the manager to kick out a certain peer/user
12
Guidelines – Suggestions (You are most
welcome follow your own approach)
◼ Phases 3 (Final)
◼ Integrate the whiteboard with the user
management skeleton (phases 1 and 2)
◼ Design issues:
◼ What communication mechanism will be used?
◼ Socket, RMI, or any other frameworks of your choice.
◼ How to propagate the modification from one peer to
other peers?
◼ You may need an event-based mechanism
◼ How many threads do we need per peer?
◼ At least one for drawing, one for messaging
13
Deliverables and Marks
◼ Report (4 marks)
◼ Code and Demo of Network-based
Distributed Users, Shared Whiteboard:
◼ Basic System (16 marks)
◼ Advanced Features (5 marks)
◼ FAQ (Frequently Asked Question)
◼ Can I submit without competing Advanced Features?
◼ Yes, you can. But you will NOT get associated marks!
◼ NOTE: You are NOT allowed to use ANY code taken from any
existing shared whiteboard implementation. Full design, code,
report has to be Your OWN work. Copying code/content from
other sources carries penalty & disciplinary action as per the
University rules.
14
Final Submission
◼ Report
◼ You should write a report that includes the system architecture,
communication protocols and message formats, design diagrams
(class and interaction), implementation details, new innovations
◼ Don’t document anything you haven’t implemented in the report.
This is misconduct and will result in severe penalties.
◼ You need to submit the following via LMS:
◼ Your report in PDF format only.
◼ The executable jar files used to run your system’s
clients/server(s)
◼ Your source files in a .ZIP or .TAR archive only.
15
Milestone: Demonstration
◼ Demonstrations
◼ You will showcase your system and discuss your design choices
during the demos.
◼ Date and venue will be announced closer to the submission date.
16
Deadline and Penalties
◼ Deadline:
◼ May 17, 2024 (Friday) at 5:00pm
◼ Assignments submitted late will be penalized
in the following way:
◼ 1 day late: -1 mark
◼ 2 days late: -2 marks
◼ 3 days late: -3 marks
◼ 4 days late: -4 marks
◼ etc. (that is, -1 mark for each day delay).
软件开发、广告设计客服
QQ:99515681
邮箱:99515681@qq.com
工作时间:8:00-23:00
微信:codinghelp
热点项目
更多
代做 program、代写 c++设计程...
2024-12-23
comp2012j 代写、代做 java 设...
2024-12-23
代做 data 编程、代写 python/...
2024-12-23
代做en.553.413-613 applied s...
2024-12-23
代做steady-state analvsis代做...
2024-12-23
代写photo essay of a deciduo...
2024-12-23
代写gpa analyzer调试c/c++语言
2024-12-23
代做comp 330 (fall 2024): as...
2024-12-23
代写pstat 160a fall 2024 - a...
2024-12-23
代做pstat 160a: stochastic p...
2024-12-23
代做7ssgn110 environmental d...
2024-12-23
代做compsci 4039 programming...
2024-12-23
代做lab exercise 8: dictiona...
2024-12-23
热点标签
mktg2509
csci 2600
38170
lng302
csse3010
phas3226
77938
arch1162
engn4536/engn6536
acx5903
comp151101
phl245
cse12
comp9312
stat3016/6016
phas0038
comp2140
6qqmb312
xjco3011
rest0005
ematm0051
5qqmn219
lubs5062m
eee8155
cege0100
eap033
artd1109
mat246
etc3430
ecmm462
mis102
inft6800
ddes9903
comp6521
comp9517
comp3331/9331
comp4337
comp6008
comp9414
bu.231.790.81
man00150m
csb352h
math1041
eengm4100
isys1002
08
6057cem
mktg3504
mthm036
mtrx1701
mth3241
eeee3086
cmp-7038b
cmp-7000a
ints4010
econ2151
infs5710
fins5516
fin3309
fins5510
gsoe9340
math2007
math2036
soee5010
mark3088
infs3605
elec9714
comp2271
ma214
comp2211
infs3604
600426
sit254
acct3091
bbt405
msin0116
com107/com113
mark5826
sit120
comp9021
eco2101
eeen40700
cs253
ece3114
ecmm447
chns3000
math377
itd102
comp9444
comp(2041|9044)
econ0060
econ7230
mgt001371
ecs-323
cs6250
mgdi60012
mdia2012
comm221001
comm5000
ma1008
engl642
econ241
com333
math367
mis201
nbs-7041x
meek16104
econ2003
comm1190
mbas902
comp-1027
dpst1091
comp7315
eppd1033
m06
ee3025
msci231
bb113/bbs1063
fc709
comp3425
comp9417
econ42915
cb9101
math1102e
chme0017
fc307
mkt60104
5522usst
litr1-uc6201.200
ee1102
cosc2803
math39512
omp9727
int2067/int5051
bsb151
mgt253
fc021
babs2202
mis2002s
phya21
18-213
cege0012
mdia1002
math38032
mech5125
07
cisc102
mgx3110
cs240
11175
fin3020s
eco3420
ictten622
comp9727
cpt111
de114102d
mgm320h5s
bafi1019
math21112
efim20036
mn-3503
fins5568
110.807
bcpm000028
info6030
bma0092
bcpm0054
math20212
ce335
cs365
cenv6141
ftec5580
math2010
ec3450
comm1170
ecmt1010
csci-ua.0480-003
econ12-200
ib3960
ectb60h3f
cs247—assignment
tk3163
ics3u
ib3j80
comp20008
comp9334
eppd1063
acct2343
cct109
isys1055/3412
math350-real
math2014
eec180
stat141b
econ2101
msinm014/msing014/msing014b
fit2004
comp643
bu1002
cm2030
联系我们
- QQ: 9951568
© 2021
www.rj363.com
软件定制开发网!