Home

Rostrum : A shared information space for wired and wireless devices

image

Contents

1. Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 As far the system design is concerned this primary division into four components serves all the purposes outlined above giving a clear and concise role to each one of them What were the alternatives However likely to function a design might look there are aspects of such decisions that might be disregarded or incorrectly evaluated The four way split of the system still seems like a wise decision after a brief tour of the alternatives A two way system is the fundamental part of this system requiring only the receiving Server and sending Client parts to function However there is no compatibility between J2ME and J2SE so either the smaller devices or the bigger ones would have had to be excluded since there could only be one version of the Client side In addition the necessary feature of distributing the application files would have had to be delegated to the Server side adding to its complexity A three way system would either have to exclude a substantial part of the users with either a J2ME or a J2SE device or add the file distributing feature to the Server Either way as explained above the design is less than ideal A third option would be a multi parted system However no complex logical entities exist in the four way division that would benefit from a further partition The most complex entity as displayed further on i
2. THE UNIVERSITY OF BIRMINGHAM School of Computer Science MSc in Computer Science 2002 2003 Rostrum A Shared Information Space for Wireless and Wired Devices by Nickolas Pitsioras ID 490435 22 September 2003 Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 Contents CONTENTS iori eei e it epe i trea tm tnm e teres 1 ABSTRACT T 3 ACKNOWLEDGMENTS erret HERR IER HO couse steseasnsdpesscuotosso its ene iet tete ei neegs 4 INTRODUGTION onere rte eet est e t eei ee etd e Eins 5 BACKGROUND MATERIAL EEE E E EEE E onevectecesevaty shesveeveesees 7 An overview of the technologies used eee eene teen enne enne tente nenne 7 ANALYSIS AND SPECIFICATION peii e eseeeeeeso een E E EET se URS Er EX Ert EEEN ES retenti te ncs 9 Requirements of the SyStem e e te te S et e Eden t e ee esa edle tee aut et det 9 What do they meun uet i et eee ede dette e e t et e db e tette diede Il From specification to design what does it look like eee 14 OVERALE DESIGN trei REESE ET EFC DE Het GERE eene E 15 From specification to design primary design decisions eee eene 15 What were the alternatives eese eese eee ee eeee eee entente es se on nr aE ENESE ESE nene tenen 16 Wh t iS next iua ree REPRE SREE NS GRISE EUN anes XQUR EEN ERR TUN REXRE SUERTE OEE OROT EAA 16 SENDING EN
3. g School of Computer Science 20 7 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 Big Client of x 1 The main text input area This is File where a user writes her Message STE ore caos Input is limited and enforced to a maximum of 60 characters If text S a larger than 60 characters is pasted in the field it will be truncated When the user reaches the end of her text limit a distinctive sound is heard when trying to input more 2 6 The main button bar The _ Check to suggest a position functions are Send Clear Configure Help and Exit respectively 7 A real time counter of characters left in the message 8 11 The list of Topics supported by the Display Server A user chooses her destination Topic by selecting an appropriate button Available choices are General Chat Computer Chat Cinema Chat and Games Chat respectively v Check to suggest a position 12 This options enables users to suggest a X Coordinate Ix Y Coordinate dy set of coordinates that they wish to place their message to This is a mode of posting messages best explained in the Displayer Server chapter For now this option should represent a set of positive x and y coordinates that are sent encapsulated in the Message object The range positive numbers exi
4. Mobile Phones PDAs etc and g School of Computer Science 11 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 one for J2SE enabled devices Laptops PCs etc However the services that both versions provide should be of the same level Given the fact that the Micro edition of Java is only a subset of the Standard edition the final quality of the end products will most probably differ as well 34 Requirement The medium used by the users devices accessing the system can either be wireless or wired transmission This fact is a direct result of the IEEE committee s decision to make 802 11 compatible with Ethernet above the data link layer In particular it should be possible to send an IP packet over the wireless LAN the same way a wired computer sent an IP packet over Ethernet Computer Networks A S Tanenbaum 4 International Edition 2003 p 69 Thus neither the user nor the programmer should be able to differentiate her reaction to different network protocols as these are taken care of by the Java Virtual Machine and the host operating system 4th Requirement The nature of the system is such that it should allow users with different types of devices to be able to access the application files needed to access the system at any time Therefore a facility must exist that gives users the ability to download the files since a network connection is a
5. Pitsioras ID 490435 The MessageMap needs its own initialization phase it is created by the Displayer given the dimensions of the screen grid that it uses to calculate the four quadrants In order to communicate seamlessly with the Displayer a Coordinates filetype is created that is simply a storage of two integers x and y The Displayer in the process of posting a message asks the MessageMap to supply a position on the virtual grid in the form of Coordinates In order to provide a random set of Coordinates every time the Displayer asks for the next position MessageMap keeps four pools of every available set of Coordinates empty positions on the screen There are four Vectors Java filetypes that MessageMap assigns to each quadrant and fills them with the Coordinates that correspond to their position on the screen at the initialization stage When Displayer asks for the next empty position on a certain quadrant MessageMap picks randomly a set of Coordinates from the relevant Vector and removes it from the pool The Coordinates are received by the Displayer a VisualElement is created with an encapsulated Message and is assigned these Coordinates Afterwards the VE is passed back to the MessageMap to store its reference The reverse procedure occurs when a VisualElement is removed the Displayer orders the MessageMap to remove it from its lists of displayed messages and the Coordinates that it occupied are reinserted in the Coo
6. The Air OTA User Initiated Provisioning recommended practice gives the guidelines of how to transfer a MIDlet form a server to a client Those guidelines are currently followed by all concerned parties device manufacturers A small text file called JAD file Java Application Descriptor that gives the target device and user an insight on the application specifics is first downloaded and read Should the device and user decide to install it the JAR files Java Archive containing the application files is downloaded If a problem occurs OTA transfers are Network Operator dependant the user can either download elsewhere and install manually into the phone or other device or she can use the Web Interface 3 Display Server The Display Server is a Java J2SE application with the task of receiving incoming messages and displaying them on the shared medium Sources of incoming messages are i An HTTP POST request from a J2ME application ii A request via a TCP IP Socket from a J2SE application iii A request from the servlet controlling the Web Interface g School of Computer Science 54 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 Major tasks of the Display Server are i Receiving and displaying incoming messages deciding where and how they will be presented ii Uniquely identifying devices using cookies for J2ME devices iii Enforcing the requir
7. connections No solution was found to circumvent this it s hard to outsmart experienced engineers The only viable solution was to use port 80 for incoming HTTP connections made by MicroRostrum which in turn failed miserably g School of Computer Science 45 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 Project Management Building a significant piece of software requires both experience and expertise No matter how good the theoretical background of how a system should be developed is there is always a significant gap between knowing how to do something and actually accomplishing it The timetable for this project was outlined in the project proposal at the beginning and was closely followed given the essential errors at any rate 1 Iteration 2 4Iteration 3Iteration 4 Iteration J2SE Rostrum J2ME 3 Weeks 2 Weeks 2 Weeks 2 Weeks Web Site Testing The proposal suggested a 10 week projected time of development on the table above are the first 9 weeks the last was devoted to complete testing and an extra few days break The important part of the project was the initial three weeks period by the end of which the prototypes were built From there on the development was on the whole according to the project s proposal The only differentiation from the proposal was in the last iteration when some work on the Web Site t
8. core prerequisite at any time The duality of the application files J2ME and J2SE must be enforced here as well in the form of two separate download processes 5 Requirement The mobility of the system on both sending and receiving sides dictates the existence of a set of configuration options The receiving side shouldn t need location specific configuration rather than runtime configuration as the location options are delegated to the sending side Thus the location specifics are manually configured by the user and should form the absolute minimum requirement Other details provided by the user should be optional and assume default values if not explicitly changed g School of Computer Science 12 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 6 Requirement Since the system can form a hub for interaction care should be taken to divide this into groups of similar interests Therefore the visible area of the shared medium can be partitioned accordingly and give the participating users the ability to choose where they would want their short message to be placed This division can enhance the idea of conversation and give users the option to really experience the environment that the system wants to create 7 Requirement This would allow the users of non java enabled devices to be able to access the system via a Web interface or by using small
9. jo to use i fe Emulator ile x fe Emulator File Tools Help File Tools Help etj School of Computer Science 29 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 Rostrum the Display Server What purpose does it serve The Display Server is the exclusive receiving part of the system Its job description as outlined earlier is to receive and display incoming messages This dual activity has an impact on the complexity of its design making it the single most complex component of the system How was it designed The Display Server has to reflect on a number of issues concerning its operation For instance provisions must be made to enable the application to listen to the network for incoming post requests A facility must exist to enable the application to keep track all the aspects of the system and another to provide the care for the visualization part of the incoming messages Thus a three tier system is provided where the three layers of functionality are Network Listeners Accounting and Administration Displaying Elements The three tiers work independently but are interlinked via a GUI This is necessary to allow manual control over some features of the system as will be explained later on Rostrum the Network Listeners The network listeners provide Rostrum s ear to the outside world The unfortunate incompatibilit
10. normal HTTP POST Request will null content that will be received processed and displayed This is how an actual MicroRostrum request looks like g School of Computer Science 27 7 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 HTTP Header HTTP POST REQUEST User Agent MicroRostrum date 2136728939218 content Hi all HTTP Connection to Display Server topic cha 0101101011 user anon HTTP Request Properties HTTP POST Content On the three following screenshots from left to right is how the Help form is visualized first picture and the top and bottom parts of the Configure form second and third respectively The options here are the same as those of the J2SE Client implemented using MIDP s minimal GUI capabilities The last two screenshots show the Post form top and bottom part The message field and topic selections only Chat is visible serve the same purposes as described above Coordinates can be inputted alternatively by scrolling further down the form g School of Computer Science 28 7 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 Emulator C3 x 2 Emulator rf x Emulator cf x File Tools Help File Tools Help File Tools Help i aliens E Welcome fe r oyJstrum Please E oral gender fi read the instructions P
11. technologies used by Rostrum Following that is the Analysis and Specification chapter which include the requirements of the system The Overall Design establishes the need for the division of the system into four components while the following four chapters introduce analyze examine and highlight the various aspects of each component Finally the last chapters include the system testing project management appraisal and conclusions These chapters are followed by three appendices including references and bibliography the original project proposal and a UML sequence diagram of the normal operation of the system g School of Computer Science 6 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 Background Material An overview of the technologies used Inspecting the trends of recent software development one may not fail to notice that a large proportion of the systems being evolved are a fine mixture of diverse technologies Well accepted and widespread technologies such as database connectivity traditional network programming are often combined with newer more advanced ones such as wireless technologies to create software systems that accomplish the goals of the ever changing needs of modern software engineering The need for this diversity seems to derive from the high specialization and capabilities of modern technologies The introduction and ever incr
12. the data necessary to the receiving end During serialization an object s state along with its current values is saved in a form that can be transmitted over a network connection In its saved form the Message object life is as follows read from left to right g School of Computer Science 19 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 Display o M URL port User Details Output Stream Object Message Message Details Object sane Output 01100101 Stream A Message object is constructed from the details gathered by the Client an Object Output Stream OOS is obtained from an Output Stream which is in turn obtained from a Socket created with the Display Server s address and port Using the writeObject method of the OOS the Message object is now a stream of bytes traveling down the network medium whether a wire or ether towards the Display Server where the inverse procedure is waiting to happen Components of the Client Apart from the Message class Client is constituted by another three classes an HTML file and several icons and pictures in jpg and gif format Those classes are used to represent two important windows of Client the configuration and help dialogs A small overview of the functions provided by each window of Client will give its full functionality Numbered bullets help recognize several components
13. the system design should begin The requirements of the system whether user system or non functional derived from the main functionality of the proposed system as stated together with the capabilities and restrictions of the tools used J2ME J2SE The specification of the system will be fashioned after the user and system requirements as they are explained below 1st Requirement The obvious assumption one could make is that this type of system should have a sending end and a receiving end The receiving end is where the user interaction takes place in the form of messages while behind the sending end is obviously the user herself A user s message should be separated from other users messages and the content of the message the text and any other details deemed appropriate should be clearly visible Due to the finite space on which the messages are to be displayed there is a definite tradeoff between message size and visibility versus total number of messages displayed A formula needs to be worked out in order to maintain a reasonable ratio between the two 2nd Requirement This is one of the core assumptions that need to be made in order to maintain high availability levels of the system Every device irrespective of size and native support of some version of the Java platform should be able to access the system This inexorably leads to the development of two different versions of the software needed one for J2ME enabled devices
14. 3 Prentice Hall PTR ejohn W Muchow Core J2ME Technology amp MIDP 2001 Prentice Hall PTR eJames White amp David Hemphill Java 2 Micro Edition Java in Small Things 2002 Manning Publications CO eElliotte Rusty Harold Java I O 1 Edition 1999 O Reilly g School of Computer Science 50 7 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 Appendices g School of Computer Science 51 7 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 Appendix A Project Proposal and Timetable Introduction The evolution of wireless networking technologies has raised consumer expectations to deem powerful ubiquitous mobile computing as a standard Concurrent advancements in mobile devices capabilities have forged a new area of software development aimed specifically at small and portable devices rather than the usual mass of desktop computers The proposed system aims at the majority of all types of small devices capable of simple networking as well as the entirety of the more complex and advanced desktop computers These devices range from Mobile Phones to PDAs Pocket PCs Laptop and Desktop Computers The System The proposed system will aim at providing an open shared space e g a computer screen a TV a projection on a wall that every wireless device can interact with The interaction w
15. D THE J2S E CLIENT 4 52th RR Rm e reper 17 What purpose does it serve etre rad tete reni Ah eei kb rette ne ta Sra idu 17 How was it designed eiie de eite IR Heer e ALIE CH HEU Rei ee ba STES 17 Implementing the Client what does it look like sse 18 Understanding the Client functions eese eese entente nennen trennen rennen enne 18 Components of the Client iere erae snanieevesssactisendopaaceabepsgceandessieedbestasesees 20 MICROROSTRUM THE J2M E CUIENT 5 eerie rp err rte Re et e ERO RR RUE eoe REM g 22 What purpose does it serve uie eerte ti tne tbe then eh hb rb heb Ei Sorata bae eis 22 A necessary overview of the Java 2 Micro Edition J2ME seen 23 How was it designed cene ER EM erre eie petra 24 Implementing MicroRostrum what does it look like esee 25 Understanding MicroRostrum how does it function eese entente 26 ROSTRUM THE DISPLAY SERVER 5 eire teo prenait d 30 What purpose COGS AtServe i seit ette pe t Re cede e er ege EHE dey be ee obe Reines 30 How was it designed iiie eee oe e t Re Pete EU Ere regret Postes babet aper ES 30 Rostrum the Network Listeners eese eee esee eese etn enne tenen nest nene enntet nene enne et nene enn enne 30 Accounting and Administration Program initialization esee eene 32 What is a VisualElement eee ee eee eese eite ente enne ris Soori eiieeii teeth aeta
16. The solution to the network connection problem Since the availability of Sockets is limited the only viable solution had to be found using the single most supported protocol HTTP MIDP version 1 0 has support for HTTP 1 1 which is a strict prerequisite to any mobile device supporting Java Some of the alternatives that were examined included Custom Serialization It is possible to create your own serialization mechanism It would include creation of a Java Interface and implementation of a serialize and a deserialize methods It would introduce unnecessary complexity while being error prone and difficult to handle XML data and SOAP Simple Object Access Protocol A viable solution but more suitable for large scale systems with more complex information It would also require the development of a SOAP Server in the receiving end The solution to this problem was ultimately based on the simplicity of the data that needed to be carried The Message object that is passed on by the Client is essentially a vessel for simple text HTTP can easily handle simple text if it is being transported as a Request Property of the HTTP protocol All information that MicroRostrum wants to send is encapsulated in the header of an HTTP POST Request made to the Display Server A convenient setRequestProperty method of the HttpConnection class sets the values of these properties The information i e user message and details is then sent like a
17. ad to be made during design of Rostrum was about Message size screen area assigned to display it Given that the grid is calculated according to message size and the program should work in all screen dimensions message size was decided to be a constant hard coded into the system because arbitrary behavior would otherwise be experienced A huge message size in a small screen would produce unwanted results What is a VisualElement The visualization of a Message comes in the form of another object a VisualElement VE A VE is the main display element of the system Its job is to visualize a Message here from user James Male It looks rounded based on a simple optical illusion the four corners are individually drawn with the background color which in the case of the Displayer is grey It is as mentioned 120x120 pixels in size and its attributes are same as those of the Message it encapsulates in addition to color and position on the screen eColor in VisualElements These are two color modes that Rostrum uses gender based colors and quadrant based colors Gender based color mode paints the VEs blue if the user has selected Male in his Client configuration or pink if she has selected Female Quadrant based coloring uses a different color for each of the quadrants orange red green and light purple for each of the four quadrants respectively g School of Computer Science 34 University of Birmingham Rostrum A Sh
18. ancy and some way off of being a mature programming platform Sun has released the specification for MIDP 2 0 and CLDC 2 0 with some major improvements but support for them by today s devices is nearly non existent Finally an unsurpassable obstacle that had a major impact on the design and implementation of the system was the existence of firewalls The School of Computer Science s firewall is extremely strict as opposed to the more lenient University of Birmingham firewall and could not be reached by any outside connection g School of Computer Science 49 e University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 References eAndrew S Tanenbaum Computer Networks 4 Edition 2003 Prentice Hall PTR ejohn W Muchow Core J2ME Technology amp MIDP 2001 Prentice Hall PTR eJames White amp David Hemphill Java 2 Micro Edition Java in Small Things 2002 Manning Publications CO eElliotte Rusty Harold Java I O 1 Edition 1999 O Reilly Bibliography elan Sommerville Software Engineering 6 Edition 2001 Addison Wesley eElliotte Rusty Harold Java Network Programming 2 Edition 2000 O Reilly eMarc Loy Robert Eckstein Dave Wood James Elliott amp Brian Cole Java Swing 274 Edition 2002 O Reilly eKim Topley J2ME in a Nutshell 2002 O Reilly eIan Darwin Java Cookbook 2001 O Reilly eAndrew S Tanenbaum Computer Networks 4 Edition 200
19. ared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 ePosition and Information Coordinates Gy 0 0 User Lilian Topic Movies Gender F Date Mon Sep 15 16 40 06 BST 2003 OK If you right click on a VE you can see a dialog with its individual information On the right is seen what this dialog looks like with information about positioning user topic gender date and time of the post The coordinates given correspond to the relative position of the VE in the virtual grid of the screen The dialog is represented by the VisualElementInfo class How does it all work together eThe Displayer The Displayer is a class that has facilities to post Messages remove Messages clear quadrants of Messages count Messages set color mode gender or quadrant based g School of Computer Science 35 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 r 0 str um iolxl All of the above options t can be controlled via the r O S OF oth m second tab of the GUI Servers Visuals Log named Visuals class VisualsController The upper part of the tab visualizes the virtual grid as it was formed by Select a Quadrant to clear Choose message appearance All Gender based colors Quadrant based colors dynamically to fit the the Displayer It changes Ch
20. ava 2 Standard Edition Profile Level J2SE inet na Java 2 Micro Edition J2 ME JJ W Muchow Core J2ME Technology amp MIDP 2001 Prentice Hall The devices targeted by J2ME are very diverse they are also dissimilar in terms of capabilities In order to address these major differences in memory processing power and display Sun introduced the idea of Configurations and Profiles What is a Configuration gt A Configuration defines a Java platform for a broad range of devices A Configuration is closely tied to a Java Virtual Machine JVM In fact a Configuration defines the Java language features and the core Java libraries of the JVM for that particular Configuration J W Muchow Core J2ME Technology amp MIDP 2001 Prentice Hall g School of Computer Science 23 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 Two sets of Configurations exist in the J2ME world eCDC Connected Device Configuration The high end of configurations expects memory from a minimum 512Kb and network connectivity and lightweight user interface support eCLDC Connected Limited Device Configuration For lower end devices such as Mobile Phones with lesser capabilities 128Kb of memory are required with as little as 32Kb for the runtime environment Display area is as small as 96x128 pixels and network connectivity is usually low ban
21. d Edition or Java 2 Micro Edition and network capabilities a facility to access the system 2 1 To provide different versions of the system to match the user s device 2 2 To provide the same level of services across all devices 3 To enable devices to access the system irrespective of the type of connection 3 1 To enable wired and wireless devices alike to access the system 4 To provide a facility to enable users access to the application files they need 4 1 To enable access to all types of devices 5 To make every facility used to access the system configurable by the end user 5 1 To provide a minimum set of configuration options 5 2 To enable users to configure personal details 6 To provide facilities by which the space where short messages are displayed consists of a number of smaller spaces with individual boundaries 6 1 To enable users to manually select which space to display their message g School of Computer Science 10 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 7 To enable users of non Java enabled devices to access the system via WAP and HTTP 8 To provide means of configuring system wide options via a Graphical User Interface GUI What do they mean If we tried to capture the goal of the system in a few words these would be to enable users to interact via text messages on a shared medium This simplification is the base on which
22. d by Displayer and MessageMap All errors that occurred during g School of Computer Science 44 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 development had been fixed and no unexpected results were experienced such as uninitialized variables array boundaries errors etc Only one minor bug was found in Displayer that could not be fixed As mentioned before the VisualElements use an optical illusion to look rounded by painting the edges the same color as the background However if another window dialog etc is active on top of one these edges seem to temporarily lose their initial color resulting in an annoying distortion If the Displayer is suspended and reinstated it causes the VEs to redraw and return to their initial state Network testing The final aspect of the system that needed testing was the networking components The MessageListener responded as intended to erroneous conditions such as absence of a Message class file Generally both servers are instructed to shut down should a network error occurs and add a discrete message in the Log tab for the moderator to restart them Both servers and the system as a whole passed the stress tests conducted that is being persistently bombarded with messages of both types A significant effect on the testing of the program was caused by the existence of two strict firewalls that filtered outside
23. dwidth In order to accommodate a Java Virtual Machine JVM in such a restricted environment Sun developed a lighter version of the JVM known as the K Virtual Machine or KVM To relieve the inflexibility and lack of features of Configurations Sun introduced a set of libraries for particular types of devices called Profiles built on top of Configurations extending them The Mobile Information Device Profile MIDP is most fitted for all mobile devices What is a Profile gt the Mobile Information Device Profile MIDP defines APIs for user interface components input and event handling persistent storage networking and timers taking into consideration the screen and memory limitations of mobile devices J W Muchow Core J2ME Technology amp MIDP 2001 Prentice Hall How was it designed A successful design of MicroRostrum would include as depicted in the requirements an equally satisfactory level of services provided as the J2SE version in conjunction with the usual aims of usability and lightness However several negative aspects of the J2ME development environment have influenced the design and implementation processes g School of Computer Science 24 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 The K Virtual Machine is theoretically built by Sun as a reference Virtual Machine that is suitable for running the J2ME applicat
24. easing adaptation of wireless computing has played a major role in creating needs of connecting existing devices and systems to a new breed of wireless network enabled devices Rostrum uses a variety of technologies to realize its functionalities Being a system based on network connectivity several aspects of network related technologies are used applying to both Local Area Networks and the Internet No intrinsic knowledge of how each functions is required to operate it However a small overview of how Rostrum accomplishes connectivity will be given as a general guide on the principles of the inter system communication e How does Rostrum accomplish connectivity Rostrum requires a device already connected to a Local Area Network or the Internet The end user of the Client part of the application for Personal Computers has to configure it by entering the IP address or the hostname of the Display Server From there on the communication between Client and Server is taken care of by the Client by using Java Sockets g School of Computer Science 7 7 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 What is a Socket gt A socket is an endpoint for communication between two machines Java 2 Platform Std Ed v1 4 1 API The Client version for smaller devices MicroRostrum must use other means for propagating information This is mainly due to the poor i
25. eck displayed messages count current grid of the 0 displayed Eh Sana sens iiis screen Here a screen dimension of 1024x768 was used at program Clear Quadrant Message Coloring startup and the grid Close r o strum created was 8x6 as explained previously Below the grid are the controls that enable the alternative configurations of the Displayer such color mode quadrant clearance and message count In the case of the removal of an individual VE a right click menu option on any of the orange colored cells of the grid class VisualThumbnail enables the moderator to proceed to message removal In order to post a message the Displayer has to create a VE visualized encapsulated Message and position it on the screen The positioning is done using a point on the screen where the top leftmost pixel of the VE will be The point is given as a set of x and y values in pixels starting from the top leftmost area of the screen as x y 0 0 The virtual grid allows great control over the positioning of the elements as to not overlap for example but there must be a g School of Computer Science 36 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 way to convert relative positioning information such as the coordinates used to an actual position on the screen Displayer uses a simple formula to allow this conversion x in pixel
26. ed in the Help section of MicroRostrum how her message is sent is entirely up to the user inputting 1 at either x or y coordinates field cancels coordinates mode while any other legal value activates it The only extra restriction a MicroRostrum user is imposed is not being able to use the character in his message HTTP headers use the character to separate fields it is consequently used in the HTTPListener class too to separate the incoming fields when the HTTP header is parsed Due to the nature of parsing if a user used a anywhere in her message the subsequent characters would be disregarded The limits of input fields are provided as options by the J2ME so no extra checking is necessary No unexpected erroneous situations arose during testing apart from those of the predefined test parameters as shown above nu un Server Testing the Displayer The Displayer testing by itself is nothing more than test of the GUI as it is more complex than those of the Clients The reason for its simplicity is that Clients take a substantial load off by making sure through their checking mechanisms that a Message that leaves them is legal and contains no errors The first part of the test checks the options provided by the Visuals tab in the GUI such as disposing individual messages using the grid clearing quadrants counting messages and changing color mode This is essentially a test of the routines use
27. ed level of security iv Providing an administration interface for setting server parameters v Logging of required actions Project Timetable The system will be scheduled to be built as a 10 week project It will be built in four iterations spread unevenly across the timetable Each iteration will involve the following components 1 J2SE Client development Display Server development 2 Web Server development Web Interface development Web Pages building 3 JAME Client development 4 Testing of each component The first iteration will last three weeks due to the building of the prototypes while the next two will last two weeks each In the last three iterations all components will be refined and time permissive new features will be added In the remaining week full system tests will be conducted components and component relationships are to be tested at each iteration g School of Computer Science 55 7 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 Appendix B Running the Software The sources and binary files of the application are under the directory Dissertation in my home directory msc46nxp There are four directories inside e micro contains the sources JAR and JAD files for the J2ME application The emulator used in the demonstration of the software is Nokia s 63101 emulator from Nokia Developer Suite for J2ME v 1 1 e html contain
28. ed to Mobile Phones Personal Digital Assistants and Personal Computers as workstations The supported versions of Java are Java 2 Standard Edition 1 4 1 and Java 2 Micro Edition 1 0 3 All these devices must be connected to or have immediate to the Internet The users of the system can post their messages in the shared medium where they can be viewed and possibly replied by other users The shared medium is organized in four virtual sections and to each is assigned a Topic where users with similar interests can interact about issues of their common interests The messages posted by the users are visualized as small round edged windows reminiscent of the popular Post It notes g School of Computer Science 5 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 The system assumes that its users have a minimum exposure to how computers work and how computer applications function This paper assumes relatively higher level of understanding how computers function how networks function and possibly a small level of experience with the Java programming language Every aspect of the system is explained in detail in the following chapters using screenshots of the system where necessary All screenshots were taken under the Windows 2000 Professional operating system The structure of this paper is as follows The next chapter contains a small overview of the
29. er devices via a WML interface Unfortunately this feature was never concluded due to time restrictions and wasn t implemented in the final release 8 Requirement An important part of the system given its uplifting nature is the use of Graphical User Interfaces GUIs to enhance the user experience g School of Computer Science 13 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 From specification to design what does it look like So far the requirements of the system evolved have been rectified and important parts have been outlined strongly enough to carry the project forward into the design phase A rough sketch of the system to this point can be used to visualize the achievements Application Files Depot 4 g Receiving End Interact Displayer Get application J2SE Devices Sending End J2ME Devices Sending End This first attempt at prototyping the system will be very helpful in the next stage as it already summarizes the progress into a simple drawing while outlining potential components of the system g School of Computer Science 14 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 The list of user and system requirements is certainly not exhaustive and by all means flawed under the eye of professional scrutiny However its goal is t
30. erver see below via their built in WAP Browser 2 Web Server The Web Server e g a simple Apache Web Server lies in the heart of the system acting as a mediator between the Clients and the Display Server with three major tasks g School of Computer Science 53 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 i Serving the information and help pages of the system in both html and wml format suitable for normal and WAP Browsers accordingly ii Serving the Web Interface of the system for posting messages in both formats as above html and wml iii Serving the application files for both J2ME jar file and J2SE zip or gz to be downloaded by the devices The first task is accomplished by static html and wml Wireless Markup Language pages describing the system and providing extensive help on its features The Web interface is a simple form for posting messages An underlying Java servlet will be responsible for passing the messages to the Display Server The Web Interface will be used as a last resort substitute of the original program designed to provide the core functionality of the system to those devices that cannot or will not install and use the client application for that purpose Finally the most significant task is to provide a means for the potential users to obtain the application files In the case of a J2ME client Sun s Over
31. eue that guarantees sufficient posting space if a quadrant starts filling up MessageMap removes the 4 oldest VEs front of queue and trims the queue New VEs are always added at the back Finally MessageMap assists Displayer into counting the displayed VEs and clearing quadrants Here is how the Rostrum looks with a couple of Messages in each quadrant using quadrant based colors g School of Computer Science 39 e University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 BloodRayne h4x r says you re so lame Evil ne Commando is like SOOO easy A small right click menu is available on the grey Show Config background of the Displayer showing on the left Its I1 4 suspend Displayer options include Show Config Suspend Displayer Exit and Exit The latter understandably exits the program The first brings the GUI of Rostrum back in focus while the second temporarily suspends the Displayer and all the VEs showing the desktop of the operating system Displayer can be reinstated by pressing its button on the GUI g School of Computer Science 40 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 Program Files Depot the Web Site The need for a Web Site The need for a Web Site is supported by the fact that it is the easiest and most prevalent
32. hat was scheduled but not implemented as mentioned was reallocated on the other parts g School of Computer Science 46 7 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 Appraisal and Conclusion Overview If we put Rostrum s proposal and specification side by side we will see that most of the original thoughts about how it should be were in both parts Implementation proved that the initial plans were as usual ambitious The distance between the two is created by real world problems and errors On the whole Rostrum s development can be deemed as successful as far as design versus implementation is concerned Testing proves that Rostrum solidly realizes the features that it promises Ease of use Lightweight application Broad Accessibility Hassle free operation The actual functionality of the system as far as availability of options is concerned proves adequately rich Rostrum the Good Rostrum proves to be stable and efficient in terms of normal and increased operation in terms of Messages Messages are displayed in a vivid environment and the common veneer of the system is that of good natured and entertaining attitude The approach that was chosen points towards younger audiences in places that they meet Anyone can easily imagine the system projected on the wall of the local pub the common room in a School or the cafeter
33. ia However the nature of the system allows it to easily extend and form a common base for every communication need that a shared space can fulfill Instead of a g School of Computer Science 47 7 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 cafeteria it can be used in a conference room to post questions to the speaker or a hospital to be used as notice board Nevertheless while is the idea is significantly extensible it had to be tailored to meet the time limitations and capabilities needed by a novice programmer working on a 10 week project The result is fully operational in its own right and has provided this novice programmer with significant software engineering experience The Bad As much as Rostrum is successful there can be doubt that some elements could be made better extended or even taken off the project Time is always against anyone with a date circled in red in her calendar to a software engineer the definition of a deadline is equivalent to the day one stops adding features to her work new ideas and bugs emerge on a daily basis A few important features that were scheduled and designed never appeared in the final version of Rostrum One of them was the WML page that would allow user of any Mobile Phone to post a message to Rostrum via her WAP browser Engineering implications and time restrictions never allowed it to complete theref
34. ile Phones and Personal Digital Assistants PDAs It has remarkable features given that the target devices are very dissimilar and have minor capabilities and processing power However the devices themselves are limiting the features any g School of Computer Science 8 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 programming platform can provide A comprehensive overview of the J2ME platform is included in the following chapters What is a J2ME Java 2 Micro Edition or J2ME is a development and runtime environment designed to put Java software on consumer electronics and embedded devices J White amp D Hemphill J2ME Java in small things 2002 Manning e How was the Web site developed The Web site exists for providing some important services that complement Rostrum It provides information about the system a user guide a download area where the application files can be downloaded and some screenshots of the different components of the system The Web site is built using plain static HTML pages and can be accessed and viewed by any regular browser Microsoft Internet Explorer Netscape Mozilla Opera etc The download area serves all versions of the system though small devices users will have to manually install the application files An alternative for these users is to use a user initiated Over The Air OTA transaction using a WML
35. ill be in the form of short messages displayed posted in the shared medium where they can be viewed by all These messages will be displayed as separate entities in an appealing graphical environment rather than a simple monotonous list Messages will be displayed pseudo randomly on the graphical environment grouped in regions by topics Ideally the use of smileys may be implemented user could change the appearance of her message based on predefined behaviors The goal of the system is to provide a user friendly interface where no significant computer literacy is required transparency playful nature optional security features strict security is beyond the scope of such a system and above all a plethora of supported devices A negative aspect of the latter assumption is the base on which such a system would work Due to the major differences of the targeted devices capabilities the lowest common denominator must be used to relieve the otherwise overwhelming complexity of device specific context handling However the devices have to be split up into two major categories for each of which a different client application will be built g School of Computer Science 52 7 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 The overall objective is to deliver a message from a user to a shared medium using any device The ways of achieving this is by using a mixtu
36. ing Rostrum The testing components Due to the nature of the system s components development constant informal testing was performed throughout their lifecycle However formal testing of the system as a whole was conducted at the end concentrating along these Clients GUI and input Clients network connections Server GUI and stability Variables boundaries initialization and value errors g School of Computer Science 42 7 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 Clients Testing Most of the errors expected to be caught in the Clients version of the system are user input errors The GUI of both Clients is relatively simple and is proved stable under all circumstances Both being developed early they received thorough testing under normal and abnormal circumstances of operation These are some of the comprehensive error dialogs used to alert the user of an erroneous situation No Server URL found x Invalid Input x Please configure server details first A Please use numbers for coordinates Please do not use negative values as either of the coordinates e An error occured while sending the message Message not sent Please try again later The top left dialog serves as a reminder to users that are trying to Send a message without configuring her details first As mentioned earlier the only true prerequis
37. ions The actual implementation of the Machine is entirely up to the manufacturer of the device This inevitably leads to minor differences in the different KVM implementations as manufacturers might try to optimize the KVM for their particular devices A fair example is the use of Java Sockets on an emulated level of J2ME Using Sun s Studio One Mobile Phone Emulator Socket connections were mostly stable and predictable however using an exact emulator of the popular Nokia 6310i Mobile Phone sockets were not working Given this diversity and the fact that a single application had to be developed to fit it the common denominator had to be chosen In versions of Profiles and Configurations the selected were CLDC 1 0 and MIDP 1 0 currently supported by all Java enabled devices such as Mobile Phones and PDAs MicroRostrum is developed and tested in both an emulated environment and a real one Implementing MicroRostrum what does it look like The selected emulator is Nokia s Emulator for the 6310i phone series picked to match an actual 6310i phone where differences could be easily spotted During the course of testing as explained later on behavior of MicroRostrum on both levels emulated and actual was always identical g School of Computer Science 25 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 Emulator C x This is the initial screen of MicroRos
38. ite for posting a message is to input the correct address of the Server Nevertheless the exactness of the Server s address cannot be checked and it is taken in good faith If it is not correct or a general connection error occurs the bottom right dialog appears Another source of potential erroneous input is the coordinates input fields when user tries to post her message in coordinates mode If the user doesn t use numbers or uses negative numbers as coordinates she gets the top right and bottom left error dialogs respectively All input fields that need limited input such as the main message area limit 60 characters username limit 8 characters x and y fields limit 2 characters are enforcing their limits using a custom KeyListener that counts every inputted key In the case of MicroRostrum same basic rules apply as to user input characters limitation with a few minor differences g School of Computer Science 43 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 Warning Please do not use the configure details first The first screenshot appears if the user tries to Post a message without configuring the Server details an equivalent of the error dialog of the J2SE Client The second screen appears when the connection is erroneous or the server address is incorrect Coordinates mode input format is still checked but as explain
39. link supplied by the web server This way the application files can be downloaded and installed automatically to their device However the success of this method is subject to Network Operator restrictions e g Orange UK would allegedly not allow this sort of transaction two years ago Analysis and Specification Requirements of the system The analysis of how the system should be built was based on extensive research into its more obscure areas On account of having no significant knowledge of g School of Computer Science 9 7 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 the intrinsic capabilities of technologies such as the Java 2 Micro Edition the first few weeks of the analysis phase were consumed discovering these During the initial period of research a set of user requirements was formulated outlining the specifications of the evolved system By the end of the analysis this set of requirements had been enriched to accommodate those capabilities of the tools used that would be incorporated in the system The user requirements definition is as follows User and System Requirements 1 To provide a space where short text messages can be displayed and read 1 1 To provide a facility where text messages can be individually displayed 1 2 To ensure that message text is readable for the given display area 2 To provide every device with Java 2 Standar
40. luable feedback g School of Computer Science 4 7 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 Introduction Software engineering is a perilous venture It involves experience cunning and expertise much like any other practical endeavor only it is aimed at enervating one s intellect rather than one s physique Such is therefore the nature of software engineering that tasks such as scheduling designing and implementing a system may seem daunting to the eye of the novice programmer practical experience is the sole remedy for her unease Rostrum development offered comparable excitement as it scurried from design to specification to implementation The thrust behind the entire system development was the urge to produce a novel application based on newly evolved technologies wireless networking mobile phones applications development Rostrum is a system that provides its users a space where they can interact with each other The interaction is in the form of short text messages that are visualized in a shared medium This shared medium the space the users share could be a computer screen a TV set or a projection on a wall according to what are the requirements of the space the system is ran in Users can access their system using any sort of device has capabilities of running a version of the Java runtime environment These include but are not limit
41. message The default selection is Male Send The right click menu appears over the writing area of the Client CI uf E It has four options all representing existing functions already Configure Exit appearing in buttons as explained earlier MicroRostrum the J2ME Client What purpose does it serve The J2ME Client or MicroRostrum is the version of the Client application developed for platforms such as Mobile Phones and Personal Digital Assistants It uses the Micro edition of Java a relatively new branch of the Java language family that will require further investigation to properly understand the J2ME Client whereabouts in the context of the system g School of Computer Science 22 e University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 A necessary overview of the Java 2 Micro Edition J2ME Java 2 Micro Edition is a platform developed by Sun Microsystems aimed at devices with little processing power small display area and limited memory As the capabilities of these devices are strictly limited the requirements for support of the Standard edition of Java J2SE could not possibly be met Thus J2ME is by default a subset of the J2SE platform surrendering capabilities for the sake of weightlessness A schematic representation of the correlation between the existing platforms of Java will help enlighten the position of J2ME J
42. mplementation of sockets by the manufacturers of small devices that exist today The Micro Edition of the Java programming language J2ME has basic support for sockets as opposed to the Standard Edition J2SE as part of its overall philosophy of procuring an equally lightweight version Thus in order to achieve maximum compatibility and untroubled operation MicroRostrum uses the HTTP protocol to communicate with the Display Server The information sent to the Display Server is embedded in the HTTP header part of the HTTP message that can be safely retrieved and processed Every aspect of how the system works will be thoroughly investigated in the following chapters e How was Rostrum developed Rostrum was developed using the Java 2 Platform Standard Edition v1 4 1 The Java programming language is ideal for developing small and medium sized systems that require networking capabilities Despite the fact that being part compiled and part interpreted makes it somewhat slower than fully compiled languages such as the popular C language its native support of multithreading and its powerful network capabilities combined with modern fast computers provide an attractive development platform e How was MicroRostrum developed MicroRostrum was developed using the Java 2 Micro Edition Platform The choice of the J2ME platform is beyond rationalization it s the sole programming platform for the majority of the small devices such as Mob
43. o state the aspiration of the system as could exist within the real time frame granted for its development Overall Design From specification to design primary design decisions The phase of requirements elicitation for the system helps draw accurate decisions concerning its final design As a rule of thumb software design should never add unnecessary complexity to a system As the idea behind Rostrum is rather easy to grasp all efforts were made into producing an equally easy design solution in terms of comprehension predictability and usability The crude sketch that concludes the specification phase outlines a vital assumption that has to be made The network connectivity required to support the operation of the system in conjunction with the vital exchange of information between a particular component of the system with many others demonstrates the need for a Client Server architecture Another critical decision is the number of independent though interconnected components the system must have An excellent guideline for this derives from the former phase A simple glance at the outline is enough evidence to support the idea of four distinct components 1 A receiving side a Display Server 2 Asending side for Clients using J2SE 3 Another sending side for Clients using J2ME 4 An application files depot that enables users to download them e g a Web Server g School of Computer Science 15 7 University of Birmingham
44. ore removing an important element that would provide universal access to the system from all mobile phones Another feature developed and not implemented due to time limitations was the ability of the J2SE Client user to view the board on her computer A class was designed that took screenshots of the full screen every x seconds and saved them in JPG format but did not appear in the final version as well The absence of any form of security or authentication is due to the fun nature of the application The only abuse of the services provided would be inappropriate language that could only be moderated by filtering incoming messages However censorship and fun generally don t appear in the same sentence g School of Computer Science 48 e University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 And the Ugly One of the major sources of errors misunderstandings and flaws that were experienced in the course of development were the Java 2 Micro Edition language and tools Throughout the time of development J2ME and its various tools proved unreliable and inconsistent The same code would behave differently on a different emulator or not at all Such is the nature of the J2ME language that the same code behaves and looks quite different in various available devices The literature on J2ME is blossoming but the general consensus seems to be that the language is still in its inf
45. pts and forwards messages from all other sources tabs that make up the GUI of Rostrum called Servers The buttons Displayer are disabled by default Processes displays and handles incoming messages and become enabled consecutively upon activation of the Close r o strum previous Server g School of Computer Science 31 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 eThe HTTPListener The HTTPListener works practically the same way with MessageListener only at a single end The idea behind both listeners is that whatever kind of data they receive it is their job to convert it to a legal Message object and pass it on to Displayer The HTTPListener works again as a thread launched by another class the HTTPServer It listens for incoming HTTP POST requests from MicroRostrum When such a requests arrives it parses the header of the HTIP request retrieving all the information that is stored there e g username topic coordinates etc It then constructs a Message object and passes it on Upon successful reception it sends a legal acknowledgment back to the expecting device because HTTP is a request and reply protocol the default HTTP response HTTP 1 0 200 OK as expected by the sending device Accounting and Administration Program initialization Although the Displayer is the driving force of Rostrum its steering is undo
46. rdinates pool Then an order is given to the VE itself to dispose itself g School of Computer Science 38 e University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 r o strum I IxI The last tab in the GUI is the File r 0 t r m Log Here certain classes of 02S tI platform Rostrum can add some 1st Quadrant NE initialized with 12 positions 2nd Quadrant NW initialized with 12 positions 3rd Quadrant SE initialized with 12 positions 4th Quadrant SW initialized with 12 positions 1st Message Vector initialized with 12 spaces comments or error messages of their operation This is what the 2nd Message Vector initialized with 12 spaces Log looks like after the 3rd Message Vector initialized with 12 spaces 4th Message Vector initialized with 12 spaces program is run at a 1024x768 SCREEN METRICS Screan eae 1024 screen prior to launching the Screen Height 768 Screen Resolution 96 Screen Area in Pixels 786432 network listeners The Number of columns 8 MON 7 enber of rows d initialization phase of Maximum number of messages 48 SCREEN METRICS MessageMap and Displayer is visible via the messages Close r o strum A last interesting point of MessageMap is the continuity it provides to message posting The Vectors that are used as references storage for VEs are also used as a qu
47. re of cutting edge technologies with applied ones The application will be based on two flavors of Java J2SE Standard Edition and J2ME Micro Edition Components of the System The common aspect of the targeted devices and also their minimum requirement to use the system will be access to the Internet Apart from older devices nowadays practically every device has Internet access while a subset of them supports the Micro Edition of Java J2ME Based on these assumptions the components of the system are 1 Client Applications In accordance with their level of support for the Java language smaller Java enabled devices Mobile phones PDAs etc will communicate via a JAgME application MIDlet with the Display Server see below using simple HTTP protocol For perceptible compatibility reasons the client MIDlet will be built using CLDC 1 0 Connected Limited Device Configuration and MIDP 1 0 Mobile Information Device Profile currently supported by nearly all target devices A light graphical user interface with some basic options will be used for that reason Devices that support J2SE such as Laptops and Desktop Computers will use a more delicate client application with more options and a better graphical user interface Communication will be done using Peer To Peer architecture with the Display Server TCP IP Sockets Non Java devices should be able to use a limited version of the system via a Web Interface provided by the Web S
48. res will be taken for granted here as they will be thoroughly examined later on Understanding the Client functions The Client exists for the purpose of getting a short text message across a network to the receiving server the Display Server where it will be displayed This introduces the fundamental building block of this system the Message object g School of Computer Science 18 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 eThe Message Object The Message class creates Message objects designed to hold whatever information needs to passed on Some of it is supplied by the user while some is gathered by the Client itself The information encapsulated in a Message object is i the Message content ii the date iii the name of the user username iv the topic one of the four default v the user s gender vi coordinates x and y The Message class creates serializable objects which is necessary for the transmission mechanism used Serialization What is Serialization Object serialization saves an object s state in a sequence of bytes so that the object can be reconstituted from those bytes at a later time Java I O E R Harold O Reilly 1999 The methods of the class are simple get and set methods that allow setting and retrieving the values above eThe network connection The Client uses object serialization to transmit
49. s relative x total number of columns message height and y in pixels relative y total number of rows message width where relative x and y are in the form of e g x y 2 2 of the virtual grid For example a Message that needs to be posted at relative position 2 3 on a 1024x768 screen with a sized 120x120 message will be positioned at x 2 8 120 256 y 3 6 120 378 The top leftmost pixel of the VisualElement will be at 256 378 on the screen The addition of the number of columns rows to the message height width is not absolutely necessary but it allows VEs not to be too close together eThe MessageMap The MessageMap is Displayer s right hand assistant While Displayer is the class that actually positions the VEs physically on the screen it still needs a relative position a set of relative coordinates x and y to do so Thus the job description of the MessageMap includes the following providing a facility to store and retrieve the references to the VisualElements that appear on the screen keeping track of what VE is positioned where supplying the Displayer with coordinates of a random empty spot of screen when requested initializing the four quadrants with their coordinates according to the virtual grid calculated by the Displayer g School of Computer Science 37 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas
50. s instant messaging systems such as ICO MSN Messenger Yahoo Messenger Trillian etc The design of all of the above follows a basic pattern of a small sized Graphical User Interface referred to as GUI from now on that contains most options needed for communication on the main screen The Client was designed to share the same advantages of size and usability The GUI was built for providing users with immediate access to all functions of the Client g School of Computer Science 17 7 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 Implementing the Client what does it look like Big Client nfIx The GUI of the Client is irreversibly File entwined with its functionality AII GB E character ai m functions and options a user might choose to use or alter are displayed as buttons with icons on the main window This is what the application looks like when it is loaded The original size of the window is 270x330 pixels small sized and discrete The em n goal of the Client is to provide an _ Check to suggest a position interface that is easy to understand and can be used by both novice and advanced users immediately Some of the features described are introduced here for the first time and possibly concern or affect the receiving end of the Client s transmissions the Display Server In this case these featu
51. s the Server Its features are essentially broken down in the course of implementing them nevertheless no logical entity can stand out most of these lesser entities are incorporated in the Server itself What is next Establishing the necessity of dividing the system into four fundamental components a discussion follows into the individual design implementation and testing of each Each of the four following chapters is about one of the fundamental components i e the Display Server the J2ME Client the J2SE Client and the Web Server g School of Computer Science 16 e University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 Sending end the J2SE Client What purpose does it serve The J2SE Rostrum Client which will be referred to as Client from now on serves as the sending part for users that have the Java 1 4 1 SDK installed on their system It is the tool that allows users of devices such as personal computers or laptop computers either wired to a network or wireless to access the system i e to send post a message How was it designed A large majority of Internet users have witnessed the evolution and consequent adoption of instant messaging systems A relatively old idea based on the ageing Internet Relay Chat IRC brought to a new level of individual gratification most contemporary users have had an experience with some of the most famou
52. s the sources of the Web Site It can run via the index html file e rostrum client the sources of the J2SE Client Can be run under windows using the BAT file provided Detailed help can be found using Client s Help file e rostrum server the sources of the Server Can be run under windows using the BAT file provided Detailed help can be found in this document in the appropriate chapter g School of Computer Science 56 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 Appendix C A UML Sequence Diagram of how a Message is posted using Rostrum and J2SE Client J2SE Client MessageListener player geMap I Send Message Reconstrudting Message Posting Message What Topic Next Position ndom position Post Here Pig Create and how VisualElement Add VE to list g School of Computer Science 57 University of Birmingham
53. sses nire Qe E RA Pee 51 Appendix A Project Proposal and Timetable eee eese entrent 52 Appendix B Running the Software ssis asien n eiaa N a a teen n R a EE tia 56 Appendix C A UML Sequence Diagram of how a Message is posted using Rostrum and J2SE Client AEAEE EE EEE E E E EE E E 57 g School of Computer Science 2 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 Abstract Rostrum is a system that acts as a stage for people to express their opinion and interact with each other It uses a shared medium that can be as small as a computer screen or as large as a wall projection to visualize short messages posted by its users It uses two versions of a client application and server application Client applications are intended for either users of small devices such as mobile phones that support the Micro Edition of the Java programming language or users of computers whether connected to a network via wires or wirelessly that support the Standard Edition of Java version 1 4 1 Keywords J2ME J2SE networking wireless mobile phones g School of Computer Science 3 7 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 Acknowledgments My gratitude extends to my supervisor Dr Russell Beale for giving me the freedom to pursue my goals in my own way while providing me with va
54. stence and format e g non character input of the coordinates is enforced by the Client Input is also limited and enforced to 2 characters Under the terms they are used they are more than enough g School of Computer Science 21 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 Client Configuration x Enter Server address 127 0 0 1 1 The Configuration appears either by clicking the Configure button or by nodu mE selecting the menu option of the right click anon p menu to be shown There are four Enter Webserver address if known configuration options available http if 3 Choose your gender 1 The Server address field is the only real IA m OK Cancel prerequisite to enable communication with the Server posting The Client cannot enforce its correctness therefore it is up to the user to input the address correctly 2 The username that will appear in the post is by default anon and its length is limited to and enforced eight characters due to the limited display area 3 The Web Server address was meant to be used by a feature that did not find its way into the last version of the Client It does not play any role now 4 The two figures represent the Male Female option that a user can choose The selection of gender might affect the appearance of the
55. te ee iiaeaoee sii 34 How does it all work together eee esee eene nein tree trennen tene 35 PROGRAM FILES DEPOT THE WEB SITE phori venn oboe eur Nure EN EET entente ESEE eTe eu a r SeS 41 Theneed for Web Site aee tT hee e pee eR ER E e EaR 41 What is OTA user initiated Provisioning eese eene nennen ener nein 4I TESTING ROSTRUM e hr tetro EO DIN aa Ix E sven NE EUR ERE EE E E RAE IE E REN Pun 42 The testihg components i eer te ERROR ERR wae e a nee Ee HERR e Rebates o REESE ER RE 42 Clients Testing i sciat p RR a e a d e ee eek teet 43 Server Testing the Displayet saei e epe er e ek te teca ee e ed eia de SE 44 Network testing a cua disait ati 45 PROJECT MANAGEMENT 4 dates eni e D RN Ge HERR UENIRE ENTER co ARI e ER ei RENE un 46 APPRAISAL AND CONCLUSION sists sevice tee teat m ire vea PR re E ep Eee e ty e ER SE RENNES cede 47 g School of Computer Science 1 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 OWE TP VIEW 3 3 Etpe io dE uie o ted no pU gno qeu 47 Rostrum the Good ae itecesiestetiescamesivettes testes E E Pear eet Pene tese ied aee aree o 47 Ihe B dsi oa asap te enit deme esas tea esha best tante 46 And the Ugly e uet da epe dan eode denen eade nena e 49 REFERENCES e EE 50 BIBEIOGRAPHY 4e eeutsaumehntesaumecutetaume teh hes dee Stee OO es Beth aet Eee 50 APPENDICES orena Gr iere ne Pe REED tet Dre i ERE cu
56. trum on the File Tools Help Nokia 6310i emulator The user is presented with three options to Configure Post a Message or Help barely visible here The idea behind MicroRostrum is to provide the same services as its J2SE counterpart as explained earlier This phone represents the minimum configuration a device is expected to possess in terms of screen size color and processing power The application files in a J2ME application using the MIDP profile MIDlet must be archived in a single compressed file Java JAR file to be used by the phone Installation can either be manual or using Over The Air OTA user initiated provisioning More about OTA will be explained in the Web Server chapter MicroRostrum is only 8Kb in total size which satisfies the need for a lightweight application that would not encumber a small device Understanding MicroRostrum how does it function A fundamental difference in the internal functionality of MicroRostrum from the J2SE Client is in the way the Message from a user reaches the Displayer Server The aforementioned faulty implementation of Sockets and the lack of a serialization mechanism in J2ME as opposed to J2SE introduced an extra layer of difficulty since the techniques used in Client could not be applied here g School of Computer Science 26 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 e
57. ubtedly the job of MessageMap The main activity of the Displayer but not its most important is to accept Message objects from the two listeners and display them on screen To do this the Displayer enforces a set of rules that apply to message posting with the help of MessageMap Visually the Displayer is implemented as a full screen non decorated window with the default Java color grey The GUI that controls options of the Servers and the Displayer is examined later on When the Displayer is launched its primary care is to prepare the screen for message display It does that by constructing and fitting a virtual grid to the screen according to its current dimensions The screen is divided into rows and columns according to the size of the messages by default 120x120 pixels thus creating cells big enough for a future message to be displayed For example given screen dimensions of 1024x768 pixels a typical dimension e WL 8 53 8 screen width over message width gives columns g School of Computer Science 32 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 oe 6 4 6 screen height over messages height gives rows 120 So eight columns and six rows are created giving enough space for 48 messages A screen dimension of 1280x1024 would therefore provide an 8x10 grid with support for up to 80 messages according to these rules A simple coordinate s
58. way of deploying information and file download capabilities on a network or the Internet An out of the box version of an open source Web Server such as the world favorite Apache Web Server is enough to handle all the needs of the system A Web Site is used by J2SE enabled users to download the application files and run them on their local system In the case of J2ME users the option are two either download the application files and install them manually on their device or use a practice called Over The Air OTA user initiated provisioning What is OTA user initiated provisioning Sun Microsystems quickly realized that a MIDlet is a difficult application to deploy Manual installation such as mentioned above cannot be done by a novice Mobile Phone user Thus a way must exist to facilitate both novice and advanced users downloading the application to their device This is why OTA transactions came to force Sun published a document called Over The Air User Initiated Provisioning Recommended Practice for the Mobile Information Device Profile http java sun com products midp OTAProvisioning 1 0 pdf that set the guidelines for J2ME developers on how to deploy their applications A typical MIDP application MIDlet is comprised of two parts a JAR file and a JAD file JAR files are archives that contain all the class files and resources of a MIDlet code images sounds etc JAD stands for Java Application Descriptor and is a simple te
59. xt file that holds information about the particular MIDlet such as size location that can be downloaded version author etc In a Mobile Phone a Java Application Manager JAM resides that is responsible for handling and running the Java applications If we follow the OTA practice in a normal scenario a user is clicking on a link that links to a JAD file in the WAP g School of Computer Science 41 7 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 browser of his Mobile Phone The JAD file is downloaded and processed by the JAM e g checking if there is enough space in the device to download the JAR file and should nothing goes wrong the JAR file is downloaded and installed The Web Site comes in force when the JAD file needs to be downloaded However due to firewall restrictions OTA could not even be tested and thus was never fully implemented Another important job of the Web Site was to enable Mobile Phone users with non Java enabled phones to access and post messages via a Java servlet in the form of a WML Wireless Markup Language file Firewall restrictions and trouble developing and testing this component caused its removal from the final version of Rostrum Subsequently with several important components not implemented the Web Site can merely serve as a software depot an extension to the user manual and a gallery of screenshots of the system Test
60. y of the incoming messages format from J2SE Clients and MicroRostrum Clients led to the development of two distinct listeners Thus a MessageListener is created to handle incoming messages from J2SE Clients and an HTTPListener to provide for the MicroRostrum messages g School of Computer Science 30 7 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 eThe MessageListener Both listeners are implemented as different threads of execution to allow constant incoming traffic monitoring The MessageListener class is launched as a thread by another class the MessageServer As mentioned earlier the J2SE Client transmits a serialized Message object as a stream of bytes The job of the MessageListener is to capture this stream of bytes and convert it back to a Message object The saved state of the Message containing all the information necessary is passed on to another very important class the Displayer through its postMessage method 011001011 Conversion Displayer r o strum 5 xf This is the GUI when File Y O S t r first launched class ONS tI platform RosrtumMain There are Servers Visuals Log three buttons to start the Message Server Listens accepts and forwards messages from PC users Message server the Start Message Server HTIP Server and the Displayer respectively HTTP Server It is the first of the three Listens acce
61. ystem is created to guide cells selection interaction and manual posting by the user The coordinates are created according to the Java rules rather than the usual mathematical the top left cell has coordinates 0 0 and the bottom right in the 1024x768 case has 7 5 1024 pixels 0 0 1 0 0 1 768 pixels 7 4 2 6 5 7 5 However this partition is not enough because as mentioned earlier care must be taken by Rostrum to accommodate different areas on the screen where different topics can be held for discussion This leads to a further partition of the screen into four quadrants where each topic can be accommodated Each quadrant is assigned a topic name as shown below that can be used by the users to guide their messages to the topic of their interest Quadrants are handled internally as a I quadrant 2 quadrant subset of the coordinates that are created Chat Computers during startup Quadrants try to cut the screen into four equal parts so a 8x6 grid 3 quadrant 4 quadrant Movies Games as in 1024x768 would provide four quadrants each of size 4x3 g School of Computer Science 33 University of Birmingham Rostrum A Shared Information Space for Wireless and Wired Devices Nickolas Pitsioras ID 490435 Screen and quadrant partitioning are done automatically by the Displayer and MessageMap at program startup One decision that h

Download Pdf Manuals

image

Related Search

Related Contents

Philips Sonicare For Kids Kid-friendly Clean  USER MANUAL - Waismed Ltd.  Parte 1 - NordCap  Miro Displays TD570 User's Manual  Philips Micro SD cards FM08MA45B  www.cbradio.nl: Nederlandse Handleiding President Jackson II ASC  製品安全データシート - クミアイ化学工業株式会社  User Manual  Sony Optiarc AD-7703S  

Copyright © All rights reserved.
Failed to retrieve file