The Specification of
Software System of Carry-on:
System Analysis and Design
1.
System Overview
Refer to Shu Lea's proposal in Appendix A
2.
The Software Architecture
This system is desired to run on internet in a distributed manner. It could be carried out by clients/server architecture. It consists of three or two clients. One is responsible for uploading or specifying the contents of the suitcase to the server. The other is for inspecting the contents of the suitcase. The server responses to requests such as uploading or inspection of the contents of the suitcase. It stores the uploaded data from uploading client into its database, retrieves the database and transfers requested data to the inspection or uploading client, and some other necessary operations for keeping the data consistency between the uploading, inspection client and server. Observer could be considered as a special Inspectionclient.
3.
The Processing Pipeline
3.1
Uploadingpipeline
This pipeline could be divided into three (or two) components.
One is for providing tools to allow the user conveniently specify the data
items in the suitcase image (the contents of the suitcase). Its input, output
and logical processing are as follows:
Function
: Specification of
the data items in suitcase
Input: The image of suitcase from the
database of the server
Output:
A description of specification of
data items in the suitcase
Logical Processing: 1)login the database in the
server, ask for the readpermission of server's database, and receive the suitcase image, ID etc from
the server and logout; 2) display the
suitcase image in the canvas of window, specify (or mark) the data items using
rectangles , input the URL description for each specified data item(some
editing tools might also be needed); 3) save them in a temporary buffer or disk
file .
The second is for initialisation of the suitcase data in the database of
server(this one can be carried out as a special case of the third one)
Function
: Initialisation of suitcase data on the server
Input: The suitcase image , suitcase ID
etc for initialisation
Output:
Success or failure
Logical Processing: 1)login the database in the
server, ask for the writepermission of servers database 2) If success, transfer the suitcase image, ID
etc to the server; 3) return success or failure.
The third is for transferring the description specified data items, and
store in the database of the server.
Function
: Transferring the description of specified data
items
Input:
The temporary buffer or the disk file that includes the description
Output:
Success or failure
Logical Processing : 1)login the database in the
server, ask for the writepermission of servers database 2) If success, transfer the data in the
temporary buffer to the server; 3) return success or failure.
3.2 Inspectionpipeline:
The following pipeline is a general one. We can need to discuss how to
get a reasonable simplification of this pipeline.
It also can be divided into three components. The first one is for
browsing all the suitcase images in the database of the server.
Function
: Browsing all
suitcases in the database
Input: Inspectors account, and password
Output:
All the suitcase images of from the server
Logical Processing: 1)login the database in the
server, ask for the readpermission of servers database; 2) Allocate a
suitable buffer to receive all the suitcase images, ID etc from the database(
or page by page); 2) display all the
suitcase images in the buffer to inspector; 3) Scroll them frame by frame .
The second one is for checking the contents of suitcase. It is fired by
mouse click on the suitcase image.
Function
: Inspecting the
data items in the suitcase
Input: The suitcase image, ID and file name
Output:
A randomly packaged data items contained in the suitcase and a window
of URLs
Logical
Processing: 1)Ask
the server transfer all thenecessary
information to the client, and receive and save them in a temporary buffer; 2)
When the inspector click on the rectangle region of a specific data item in
this suitcase image, generate a new position for this data item, and copy
pixels in the rectangles to the new position, and its URL description will
appear in the specified text field of interface window; 2) Save the modified
positions in the temporary buffer, store the URL description of clicked data
items into a disk file and display them in a separate window.
The third one is for transferring the modified positions of data items
back to the database of the server.
Function
: Transferring the modified positions of data
items back to the server.
Input:
The temporary buffer or the disk file which have the description of
modified positions
Output:
Success or failure
Logical Processing: 1)login the database in the
server, ask for the writepermission of servers database 2) If success, transfer the modified positions
to the server; 3) return success or failure.
Annotation: Shu Lea requires that the separate URL window will still be visible after the InspectionClient exited.
4.
The Data-steam, Data Items.
4.1.
The Data steam and Data Items for Uploading
The uploading login data stream=Account + Suitcase ID + Password + {Control Status for synchronization}
The description of Suitcase = Suitcase ID + Suitcase Image+ ID Image +Annotation
The Contained Items= Suitcase ID + DataItem ID + Initial position+ Current Position+ URL Description+ {Control Status for synchronization}
Account= strings of digitals and letters, and its length is less than MAXIMUM_CONSTANT_STRING;
Suitcase ID= Unsigned Integer less than MAXIMUM_PARTICIPANT
Password= strings of digitals and letters, and its length is less than MAXIMUM_CONSTANT_STRING;
Control Status=Read Permission + Write Permission;
Read Permission= True | False;
Write Permission= True | False;
Suitcase Image= Filename + Image Format
ID Image=Filename + Image format
Filename= strings of digitals and letters, and its length is less than MAXIMUM_CONSTANT_STRING;
Image Format = JPEG | BMP // At present, only JPEG are required by Shu Lea.
Annotation = text description if necessary
DataItem ID= Unsigned Integer less than MAXIMUM_ID_NUMBER
Initial Position= Rectangle
Current Position=Rectangle
Rectangle=(2D pixel-based coordinates of starting vertex, 2D pixel based coordinates of ending vertex)
2D Pixel-based coordinates= (x, y) in pixels, and its origin of the coordinate system is located on the top-left of suitcase image.
URL Description= string abiding by the URL convention
4.2. The Data steam and Data Items for inspection
The Inspecting login data stream=Account + Password + {Control Status for
synchronization}
The description of Suitcase = Suitcase ID + Suitcase Image+ ID Image
The Clicked Items= The Contained Items
4.3. The Database and Data Items on the server
The Inspecting login data stream=Account + Password + {Control Status for synchronization}
The uploading login data stream=Account + Suitcase ID + Password + {Control Status for synchronization}
The description of Suitcase = Suitcase ID + Suitcase Image+ ID Image +Annotation
The Contained Items= Suitcase ID + DataItem ID + Initial position+ Current Position+ URL Description+ {Control Status for synchronization}
Security Permission = Read Permission | Write Permission
Synchronization Variables = Suitcase ID | DataItem ID
And some other necessary data items for keeping the consistency of the database.
5.
The Control Stream
5.1
The Control Stream for Uploading
The uploading could be divided into two separate operations. The first is responsible for the initialization of suitcase image, suitcase ID and the ID image etc. Another copes with the specifications of the items contained in a specific suitcase.
5.2
The Control Stream for Inspection
It is assumed that Uploadingare forbidden during Inspection. It is also assumed that a local version of suitcases image could be kept in the clients, as it would reduce the data transfer significantly.
5.3
The Data Management on Server
The data management in server responses to the uploading requests, and stores the uploaded data in the database. It copes with the download all imagesrequests from the inspectionand observer, and it is better to keep a distributed object list to inform Observerclients that which item has been checked and transfer their current positions to Observerclient.
The key implementation issues in servers data management are to keep data consistency and synchronize the data access.
6.
Key Algorithms
6.1 Display_Suitcase
For each suitcase, execute the
following steps recursively,
1) Read the source suitcase image into video buffer;
2) Display the backgroundsuitcase
image in which all items are removed by their initial positions,
3) For each item, copy the pixels of rectangle indicated by
the initial positionfrom the source image and paste them to the current
positionin display canvas.
Annotations:
1) It is assumed that if the suitcase item has not been checked, then its
current positionequals to initial position; 2) the overlay order need Shu
Leas further confirmation when the items occupy the same position. In the
aforementioned algorithm, the overlay order is ignored.
6.2 Inspect_Suitcase
If a mouse click in a suitcase
region, freeze the display, and waiting for further clicking in items region.
Then for each click event occurs in items region, execute the following steps
recursively,
1) fetch the current position of
this item, and calculate a new random position for this item, and refresh the
display of this item;
2) write the URL related to this
item to the text field in a random colour, size and font;
3 ) save this URL in another
separate window
4) inform the server that this item
has been checked, and write its new position back into servers database.
6.3 Specify_Items_in_Suitcase
For a specific suitcase image,
1) input the item Id and URL
description, and check the data format etc.
2) mark the items region in the
suitcase image by rectangles.
3) set specified rectangle as both
items initial positionand current position
4) transfer all items specification
to server, and write them into the database.
7.
Object (Stream) Analysis and Specification
7.1
Suitcase Object and Item Object
DEFINE MAXIMUM_NUMBER_OF_SUITCASE 50
DEFINE MAXIMUM_ITEMS 10
Public class Suitcase extends Applet{
int SuitcasID;
Image SuitcaseSourceImage; // getImage(URL of server or clients SuitcaseSourceImage, SuitcasID.JPEG)
Image IDImage; // getImage(URL of server or client s IDImage, SuitcasID.JPEG);
SuitcaseItem itemArray[MAXIMUM_ITEMS] // Object list of Suitcase Items
Public void Dispay_Suitcase();
Public void Inspect_Suitcase();
Public void Specify_Items_In_Suitcase();
Protected Boolean AddItems(SuitcaseItem Item);
Protected Boolean DeleteItems(SuitcaseItem Item);
Protected Boolean ReplaceItems(SuitcaseItem OldItem, SuitcaseItem NewItem);
Suitcase(int suitcaseID, Image SuitcaseSourceImage , Image IDImage);
}
Public class SuitcaseItem extends Applet{
int ItemID;
Rectangle InitialPosition; // Rectangles are represented as [(x_Sart, y_Start), (x_End, y_End)]
Rectangle CurrentPosition;
Public SuitcaseItem(Int ItemID, Rectangle InitialPosition); // Initialize the Item
Protected PositionModification(Rectangle CurrentPosition); // change its current position
}
7.2 Database on
the Server
If the maximum number of suitcase is restricted to as 50, there are two main approaches to carry out the data management of suitcase.
7.2.1 Stardard I/O Stream /File
The file head is number of inspector,
s The file body is organized as follows:
Inspector1 |
Account1 |
Passwaord1 |
Inspector2 |
Account2 |
Passwaord |
.. |
.. |
The file head is number of uploading persons ,
The file body is organized as follows:
uploading person1 |
Account1 |
Passwaord1 |
uploading personr2 |
Account2 |
Passwaord |
.. |
. |
The file head is number of suitcases ,
The file body is organized as follows:
Suitcase ID1, Number of Items, Suitcase Image file name, ID Image file name Item1, InitialPositin, CurrentPosition, URL1 Item2, InitialPositin, CurrentPosition, URL2 .. ItemN, InitialPositin, CurrentPosition URLN |
Suitcase ID2, Number of Items, Suitcase Image file name, ID Image file name Item1, InitialPositin, CurrentPosition, URL1 Item2, InitialPositin, CurrentPosition, URL2 .. |
7.2.2
Database Tables
7.2.3
Serialization of Suitcase Object
It could also be carried out as serialization of Suitcase Object.
8 The Communication Interface of Clients/Server,
Hardware/Software
The data transfer between Uploadingclient and server is usually based on TCP/IP socket.
The data transfer between Inspectionclient and server is usually based on TCP/IP socket, and the RMI could be used if a distributed list of checked items is maintained in server.
The interface between Hardware(scanning machine) and Software is the JPEG image of the suitcase from the scanning machine
9.
The User Interface
Refer to Shu Leas system web page1 and web page2.
10 Hardware/Software Platform
Hardware: X-ray scanning machine
Software: Java Applet and Netscape
11
Annotations
1) It is a time-critical task. Shu Lea desire that this system can run at the end of July. A general implementation is difficult to achieve this in six weeks. We should find some reasonable simplification approaches for its implementation.
2) The complexity of its implementation is mainly dependent on the control stream. It is still open, and difficult to write something about it now. Such as the multiple inspections or the uploading or inspection happens at the same time.
3) Summary of last discussion (June 15, Monika, Wolfgang,
Shu Lea): a) Shu Lea said that it is acceptable that only one Inspection
client is allowed to run on internet at the same time. Then synchronization of
data access will be simplified; 2) Shu
Lea said we can also assume a MAXIMUM number of suitcases such as 50 (we need
to confirm this with Shu Lea today), then we can carry out the database
managementfunctions by a standard I/O stream(or files), not by a real database system; 3) In order to
reduce the data transfer congestion of images between Inspectionclient and
Server, it is better to let the
inspectionclient keep a local version of servers database. To maintain the
consistency, the system can forbid uploadingduring inspectionor refresh
the local version by timer. 4) Shu Lea requires that the inspectionresult
could be observed by the other user. Does it have meanings if only one
inspectionclient is permitted on the internet?
Project
Proposal for Internationale FrauenuniversitSt IFU, Hanover
CARRY
ON
a participatory workshop/installation/net project
for IFU's summer 2000 program
CARRY
ON is an art project designed to work with students of IFU's summer 2000
program in the area of migration and information.
A
Carry On suitcase for a translocated is compact packaging of self-cherished
possesion and memory -- from passport to family photo, from trashy novel to address book, from
cultural icon to daily necessities. For
a self designated journey (individual mobility) or involuntarily transportation
(collective migration) , we hold tight our Carry On. The Carry On is
managed/manageable information of self continuity and connectivity. We go
through security check with our Carry On.
Items contained are Xrayed and subsequently hand searched and close
examined should suspicion arise. Suggested by
"an increasing de-territorialization and
displacement through collective migrations and increasing individual mobility.
" (Migration.html, IFU), I propose
we 'PACKAGE' our survial Carry On.
This
Carry On is deposited, patrolled and can be retrieved and reprocessed on the
Net. This Carry On package is to be patrolled by net public.
The
projects calls for each participating student to package a suitcase, which
should not exceed total dimensions of
9"x13"x23" (a common airline practice for hand carry luggage).
The packaged suitcases are required to go through security scanning machine
patrol and be shown X ray negative on the scanning monitor. This scanned carry
on images will be fed directly onto the Net - a designated website for Carry ON
project. The net public can examine the scanned suitcases on the net as each suitcase
travels through the conveyer belt of
the scanning machine. The net public can 'inspect' the negative image of
the suitcase content and 'STOP' a suitcase for further item by item hand check
should any suspicion arise on their part. By 'stopping' a suitcase, a link to
the suitcase's contents and infodata (provided also by participating students)
is established. The Net public, acting as inspectors and acting on their own
judgement, can retrieve selective information. A decision can be made by a netuser/inspector
to STOP the suitcase from further distribution if it does contain dangerous
objects.
The
project is mainly net-based. Java Applet programming is requiredfor infodata
management. The hardware technical end of scanning machine monitor to internet image feed is yet to be developed.
CARRY
ON project conceived for IFU by Shu Lea Cheang shulea@earthlink.net
Shu
Lea Cheang is a media/net/film artist. Her cybernetic installation works
include commissions by Walker Art Center (Minneapolis, US), Atopic Site (Tokyo
government, Japan), NTT/InterCommunication Center (Tokyo, Japan), the
Guggenheim Museum (New York, US). Her
work has received fundings from the
Rockerfellor Foundation, AT&T New Art/New Vision, NTT/Nippon Telephone
& Telegraph, The Mondriaan Foundation, The Bohen Foundation and te Dutch
Ministry of Culture among others.