the presentation application is made up of two parts : the user mode and the administration mode . each component is discussed separately . to make presentation software flexible , scalable , portable , and easy - to - use , the present invention is preferably implemented using java , jdbc , jsp , and x . 509 certificate security . java is preferred since it is a powerful , object - oriented internet programming language that provides platform - independence . java programs can run on virtually any platform , and most modern internet browsers have the capability to run java programs . the presentation software uses both java applets and java servlets . an applet is a java program that runs in a client &# 39 ; s web browser . a servlet is a java program that runs on a server . applets and servlets can communicate with each other using the http protocol . the presentation software is preferably data - driven , which means that changing a record in the database changes the behavior of the presentation software . this makes the presentation utility very powerful and flexible because it is much easier to change a record in a database than it is to reengineer software , compile it , and test it . preferably , the present invention makes use of the java database connectivity ( jdbc ) facilities for easy implementation with existing database software and make the presentation utility a data - driven product . the jdbc : odbc bridge database driver permits java programs to access any odbc data source . odbc is a technology that allows generic access to dissimilar database systems on a select group of operating system platforms , such as ms windows ™ and some unix platforms . this produces a smooth , seamless way for the client to access the database . this bridge allows the server to form sql statements and send them to the database . sql is a powerful database language that lets the device experts make complex queries of the data in the database and to update the database with new data . with jdbc , the presentation utility can use any sql database , from a personal computer size database to an enterprise - wide database . preferably , the presentation software also uses java server pages , or jsp . jsp allows java code to be included as part of html pages on a server . this adds power and flexibility to the system because html content can be dynamically generated and instantly updated . the java code in the html page does not need to be compiled ahead of time . as stated above , the present presentation software also preferably utilizes x . 509 certificate security , which is a security protocol developed for internet applications which uses public key cryptography . this security protocol lets the customer be sure of the source of the internet software he or she has downloaded from the internet before he or she runs it on his or her computer . certificate authorities issue x . 509 certificates to specific companies , after carefully reviewing the credentials of the company . the x . 509 certificate can be used to create a digital signature of the software code . the customer &# 39 ; s browser has a mechanism to automatically verify this signature . once the customer is sure that the software is from the specific company , assuming that he or she trusts that all software from that specific company , he or she will grant the privileges the software requests . with reference to fig1 several devices are shown accessing the internet 21 . server 17 is shown coupled to the internet 21 by means of some internet access device 22 . server 17 has direct access to database 19 . several computing devices may gain access to server 17 via the internet 21 . computer 23 has access to the internet by means of a modem or other internet access device . laptop computer 27 has wireless access to the internet 21 by means of radio access device 25 . both computer 23 and laptop computer 27 have respective projectors 15 and 13 to respective communication ports , not shown . projector 11 , however , incorporates network access circuitry and is shown to have access to the internet without the need of an associated external computer . preferably , each of computing devices 11 , 23 and 27 include an internet browser utility for navigating the internet 21 and accessing server 17 . a user , or client , uses any of computing devices 11 , 23 and 27 to log onto server 17 and gain access to database 19 . in order to log onto server 17 , however , several criteria should be met . preferably , server 17 maintains a first record of all authorized users , and associated user passwords . to log on , a user must provide a correct userid and password . additionally , server 17 preferably also maintains a second record of predefined periphery devices , such as specific projector models . when a personal computer , such ass desktop computer 23 and laptop computer 27 , attempt to log onto server 17 , server 17 will request information of all periphery devices coupled to computers 23 and 27 . desktop computer 23 would respond to this request by sending an identification sequence identifying projector 15 , and laptop computer would respond by sending an identification sequence identifying projector 13 . the respective identification sequences are provided by respective projectors 15 and 13 , themselves . if the received identification sequences does not match any of the predefined periphery devices stored in the second record , server 17 will deny access to the corresponding computing device regardless of whether a proper userid and password was supplied . in the case of projector 11 , a presentation player , written in java , is incorporated into its firmware . since the present system is network - based , projector 11 is all that is needed . a small version of the java virtual machine incorporated into its firmware can support the accessing of a presentation file from server 17 . with reference to fig2 some of the relevant components of projectors in accord with the present system are shown . some , or part , of these components may be integrated into any of projectors 11 - 15 , but fig2 illustrates the interrelation of stand - alone projector 11 with server 17 . in this exemplary representation , server 17 is shown to incorporate the network access functionality previously provided by device 22 in fig1 . in fig2 a stand - alone projector , such as projector 11 , is shown to incorporate a network interface component 37 for accessing the internet 21 . network interface 37 is coupled to a processing unit 31 , which may be implemented as a cpu , fpga , or any other data processing mechanism . as , shown , a stand - alone projector preferably includes an lcd panel 35 for providing a user interface . lcd panel 35 provides an access means for a user to interact directly with the projector , and indirectly with server 17 through the projector . processing unit 31 is coupled to memory 33 , which is divided into four functional sections 41 - 47 . the functional sections 41 - 47 may be integrated into a single re - programmable , nonvolatile memory , such as a flash memory . alternatively , functional sections 41 - 47 may be divided into multiple memory modules : in which case it is preferable that at least sections 41 and 45 be reprogrammable , nonvolatile memories . section 41 holds the driver , which controls the basic input / output functions for the projector . preferably , this section would also hold the java engine used by processing unit 31 to run a slide player software . section 43 holds the slide player software , and processing unit 31 uses this section to edit or run a presentation obtained from server 17 . as explained earlier , section 41 is reprogrammable , nonvolatile memory , meaning that the driver information may be updated to provided added or smoother functionality to the projector . therefore , each driver in section 41 is associated with a corresponding driver id , which is stored in section 45 . also , the projector maintains a hardware id identifying it for comparison with the aforementioned second record listing used by server 17 to authenticate a periphery device . all projectors 11 - 15 would incorporate a similar hardware id memory section . in practice , a user would submit his / her userid and password to server 17 through lcd panel 35 . before allowing access to the user , however , server 17 would request the hardware id of the projector , which would respond by transmitting the hardware id from section 47 . if server 17 matches the received hardware id , as well as the userid and password submitted by the user , then the projector , and thereby the user , is granted access . in an alternate embodiment , server 17 also maintains driver information for at least some of the periphery devices stored in its second record list of approved periphery devices . in this case , server 17 may also request the driver id of the periphery device &# 39 ; s current driver . the periphery device would respond by transmitting the driver id from section 45 . using the received hardware id and driver id , server 17 can determine if the periphery device has the most current driver . if server 17 determines that the driver needs to be updated , a new driver and corresponding new driver id will be transmitted for storing into respective section 41 and 47 . as stated above , the projector components shown in fig2 are characteristic of a stand - alone projector , such as projector 11 , but some of these components are common to periphery projectors 13 and 15 . for example , periphery projectors 13 and 15 may not require network interface 37 or lcd panel 35 since internet access and a user interface if provided via their respective external computers 27 and 23 . however , it is preferred that periphery projectors 13 and 15 include at least hardware id section 47 for identification by server 17 . driver section 41 , slide player section 43 , and driver id section 45 may be stored in an appropriate storage device , such as a hard drive , of external computers 23 and 27 and serve a similar function . that is , driver 41 controls the input / output communication interaction with an external computer and its associated periphery projector , or other periphery device , and driver id 45 is used to identify the driver version stored in the external computer . the driver may than be updated by server 17 by comparing the driver id provided by the external computer , with the hardware id provided by the periphery device , i . e . projector . returning to fig1 the user interface is similar for both periphery projectors 13 and 15 , and for stand - alone projector 11 . the following describes the software interface , and uses terms common to modern menu driven applications , such as “ menu ”, “ menu item ”, “ dialog box ”, “ tools ”, “ icon ”, “ edit ” option button , “ click on ”, “ ok ” option button , “ next ” link , “ previous ” link , etc , and are considered within the understanding of a person versed in the art . the user &# 39 ; s first task is to point his or her browser to the appropriate web site , i . e . server 17 . from here , he or she may choose to navigate to the presentation utility area . the first page the user will see is the login page . after logging in , the user will see a list of all her presentations . from here , she can create a new presentation , edit an existing presentation , or delete a presentation . the user will also see how much space she has remaining on the server . to create a new presentation , the user first clicks on , i . e . selects , the link labeled “ add new presentation .” the user should enter a name for the presentation in the appropriate text area and click ok . the newly created presentation should appear in the presentation list . the user is now ready to edit the newly created presentation . the user should click on the “ edit ” link for the desired presentation . this will show a presentation editor . for new presentations , a select slide template dialog box will appear so that the user can select a template for the first slide . in the presentation edit mode , a toolbar appears . below the toolbar is the client area . the client area contains a preview of the current slide . initially , it shows the first slide of the presentation , which is blank for a new presentation . the user can advance to the next slide or go back to the previous slide by clicking on buttons marked with arrows located below the preview area . to the left of the client area is preferably a menu applet . this applet shows the steps involved in creating a presentation , such as choosing a color scheme , selecting a slide template , attaching an image to an image component , editing an image , printing the presentation , and getting help . the steps are organized into groups . to move to the next group , the user can click on the “ next ” link . to go back to the previous group , the user can click on the “ previous ” link . a “ select template ” menu item will show a “ select slide template ” dialog box . this dialog box will allow the user to preview slide templates organized into categories . one of the templates shall be blank ( no components ). available templates are controlled in an administration mode . when the user has made her selection , she should click an ok option . a “ choose color scheme ” menu item will show the “ choose color scheme ” dialog box . this dialog box will allow the user to preview several color schemes . the user may apply the color scheme to the current slide or to all slides in the presentation . when the user has made her selection , she should click ok . available color schemes are controlled in the administration mode . text and the borders of components must appear in contrast to the background color . for example , black text on a blue background is not very readable . yellow text on a white background is not readable either . when the slide is printed , the text and borders of the components must appear black , and the background must appear white . a “ select background color ” menu item will show a “ select background color ” dialog box . this dialog box will allow the user to choose a background color for the slide using a “ color picker ”. the user will have the option of applying the background color to the current slide or to all the slides in the presentation . when the user has made her selection , she should click ok . an “ about ” menu item will show information about the presentation utilities in the slide preview client area . an “ attach image ” menu item will allow the user to attach an image to one or more image components in the slide . if more than one image component exists in the slide , a “ select image ” dialog box will appear before a “ get image ” dialog box appears . an image component does not contain a picture until the user attaches a picture . before a picture is attached , the image component area is white , with a light gray border and “ photo ” in light gray text in the middle of the component area . after the picture is attached , the image component client area contains the picture . to attach an image to a slide , there must be an image component already in the slide . in the “ get image ” dialog box , images can be imported from the internet or from a local file . to import an image from a local file , click on a “ from file ” tool ( with the folder icon ). this will bring up a file dialog box . to import an image from the internet , one may click on a “ from url ” tool ( with the computer icon ). this will bring up a “ get image from url ” dialog box . one may then enter the internet address for the image and click the ok button . while the image is loading , a progress meter in the lower right hand corner of the “ get image ” dialog box will display the progress of the loading of the image . status messages are displayed in the lower left hand corner of the “ get image ” dialog box . after the image is loaded , it will be displayed in the “ get image ” dialog box . the user should use the rubber rectangle to select the region of the image she desires . after selecting the desired region , the user should click on the “ ok ” tool . the user can zoom in and zoom out by clicking on appropriate “ zoom ” tools ( tools identified by magnifying lens icons ). after the user clicks ok , the image component in the slide preview should contain the selected region of the image . a “ touch image ” menu item will allow the user to adjust an image in the slide . if more than one image component exists in the slide , a “ select image ” dialog box will appear before the “ adjust image ” dialog box appears . the “ adjust image ” dialog box will contain the image . the user can zoom in and zoom out by clicking on the “ zoom ” tools . when the user is finished making changes to the image , she should click on the “ close ” tool . this tool has a drawing of a yellow door , and it is the leftmost tool . while the program is processing the image , a progress meter in the lower right hand corner of the “ adjust image ” dialog box will display the progress of the image processing . the user can flip the image horizontally and vertically . the user can also rotate the image 90 ° clockwise , 90 ° counterclockwise , and 180 °. the user can change the saturation , brightness , contrast , and rgb balance of the image . the user can also sharpen the image . a “ print ” menu item will show a “ print preview ” dialog box . the user can zoom in and out by clicking on buttons labeled “ zoom in ” and zoom out .” the zoom ratio is displayed in the lower right hand corner . the user can select the paper size from the pull down menu . when the user is ready to print , she should click on a button labeled “ print .” this will bring up a print dialog . when the user is done printing , she should click a button labeled “ close .” a “ help ” menu item will show online help for the presentation utilities . the following table describes some additional tools currently envisioned for the presentation editor : the user can save her work by clicking on the “ save ” tool . this will save the current presentation to server 17 , and thereby to database 19 . the user can load a different project by clicking on the “ load ” tool . there are preferably three views available . “ slide view ” lets the user view and edit individual slides . “ thumbnail view ” lets the user preview thumbnails of all the slides . in “ thumbnail view ,” double clicking on a thumbnail causes the program to change to “ slide view ” for the slide that corresponds to that thumbnail . “ slide show view ” launches the java presentation player . any keystroke or mouse click advances the show by one tick . each tick of the slide show causes one more component to be displayed based on its sequence number . after all the components of a slide are displayed , the screen is cleared before the first component of the next slide is displayed . the “ insert slide ” tool inserts a new slide after the current slide . a “ select slide template ” dialog box will appear so that the user can select a template for the new slide . the “ delete slide ” tool deletes the current slide . the “ hide slide ” tool omits the current slide from the slide show . for each slide , each component shall have a sequence order . the sequence number of the object shall be based on the order in which the object was added to the slide . the sequence order determines the order in which the components will be displayed during the slide show . the user will be able to change the order of any particular component by using a pull down menu in the component &# 39 ; s property dialog box . to select a component , click on the “ select ” tool in the toolbar . next , click over the component you want to select . the component is selected when nine small squares that mark the component &# 39 ; s boundary appear . to select multiple objects , using the “ select ” tool , click and drag to enclose the rectangle around the desired group of objects , and then release the mouse . when a component is in the selected state , the user can move it by dragging it . the user can also resize it . when the cursor is over one of the corner squares , she can resize the component both horizontally and vertically . when the cursor is over one of the middle four squares , she can resize the component either vertically or horizontally . double clicking on a component brings up that component &# 39 ; s property dialog . the user can change the properties of the component by using the component dialog . an alternative to double clicking is to select the component using the “ select ” tool and then click on the “ properties ” tool . every component has a name , and the user can see the name in the component &# 39 ; s property dialog . the user can delete a component by selecting the component and then pressing the “ delete ” key on her keyboard . an alternative to using the “ delete ” key is to use the “ delete ” tool . the user can insert a component by clicking on the tool that corresponds to the component she wishes to insert . then , the user must click and drag on the slide preview area to define the boundaries of the component . after the user releases the mouse button , the new component &# 39 ; s property dialog will appear , and the user will be able to edit the properties of the new component . inserting a polygon object is a little bit different from the other objects . the user must first select the “ polygon ” tool . then , the user clicks the mouse one or more times to define the vertices of the polygon . the user defines the last vertex of the polygon by double clicking . the “ text area property ” dialog box will have a button that allows the user to add bullets to the text component . users will be able to add shapes to their presentations , such as arrows and flow chart symbols by clicking on the “ clip art ” tool . the “ clip art browser ” will allow the user to select from a number of shapes organized into categories . the user can add audio to the current slide by clicking using the “ audio ” tool . click and drag to add an audio component to the slide . this will show the “ audio ” dialog box , which has buttons for play , record , stop , and pause . the “ record ” button will record sound from the audio input device . as an alternative , a “ from file ” button will allow the user to select an audio file . this will show a file dialog box . after the sound file is loaded , the “ play ” button will play the sound . audio components appear on the slide preview as an audio symbol enclosed in a rectangle . the java presentation player will treat the audio component like any other component . when it is the audio component &# 39 ; s turn to be shown during the slide show , the sound will be played . for each slide , each component has a z - order , which describes the layering of components . the user can bring a component to the top by selecting it and then clicking on the “ bring to top ” tool . the user can send a component to the bottom by selecting the component and then clicking on the “ send to bottom ” tool . the user can flip a selected component horizontally and vertically with the flip tools . using the rotate tools , the user can rotate a selected component 90 ° clockwise , 90 ° counterclockwise , and 180 °. there are several tools for changing the alignment , grouping , or distribution of an object or group of objects . the “ group ” tool groups multiple selected objects together . the “ ungroup ” tool ungroups a previously grouped object . the align left ”, “ align center ”, align right ”, align top ”, align middle ”, and “ align bottom ” tools align multiple selected objects . the “ distribute horizontally ” and “ distribute vertically ” tools space multiple selected objects apart evenly . the grid feature allows more accurate mouse inputs . the user can turn on the grid by clicking on the “ toggle grid ” tool . the user can show the grid by clicking on the “ show grid ” tool . the user can change the grid spacing by clicking on the “ grid properties ” tool . this will show the “ grid options ” dialog box . the user should select the grid spacing from the list box and click ok . the administration mode of the presentation system allows select individuals , acting as administrators , to instantly update the user database from any computer in the world with a standard web browser and a connection to the internet . one or more administrators with a userid and password can access administration mode of server 17 . these administrators would be employees of the organization maintaining the presentation software on server 17 . the user interface for the administration mode is as follows . only an authorized administrator with a userid and password can access the administration mode . the first thing the administrator must do is access the login page and enter his or her userid and password . every user is assigned a user class . different classes of users have different storage limits on the server for their presentations . the class assigned to a particular user depends on things such as whether the user purchased a specific periphery device , or projector , or other hardware . after logging in , the administrator should click on the appropriate link to get to the user class list . the administrator can add a new user class by clicking a link under a user class list labeled “ add new user class .” the administrator should enter the name of the class in the appropriate text area and enter a storage limit for that class using a pull down menu . when the administrator has finished , he should click ok . after logging in , the administrator should click on an appropriate link to get to a user list . the user list shows the full name and userid of every user , sorted by class and then alphabetically by last name . the current storage in use and storage limits are also displayed . under the user list , the administrator can click the link labeled “ add new user .” the administrator must enter the user &# 39 ; s full name and assign the user a userid and password in appropriate text areas . the administrator must also select a user class from the user class pull down menu . for each entry in the user list , there are two operations : edit and delete . the administrator can edit the settings of an individual user by clicking on the edit link for that user . the administrator can delete a user by clicking on the delete link for that user . the administrator can add and remove slide templates from database 19 . these slide templates contain components arranged in a typical way . this makes it easier for the user to create presentations . one of the templates should be blank , in case the user doesn &# 39 ; t like any of the templates . the text components should contain default text or no text at all . the administrator may create new slide templates . to create a new slide template , the administrator must first create a slide template size by clicking on a “ create new template size ” option under a template size list . the administrtor then enters a name , description , width , and height in appropriate fields , and clicks an “ add ” option . to create a new page layout for the newly created template size , the administrator clicks a link “ page layout list ” in the template size list , and selects a “ create new page layout ” under the page layout list . the administrator should also select a paper size and click “ add ”. from the page layout list , the administrator may edit the page layout by clicking “ edit layout ” for the paper size just selected . this will show a page layout editor . on can then use the fixed ratio rectangle tool to determine how this template will print . the fixed ratio rectangle property dialog box lets the administrator specify a precise x , y , width , and height . the administrator should also create a template category . to accomplish this , the administrator selects “ add new category ” under the template category list , enters a category name and description , and clicks “ add ”. to create a new template , the administrator selects “ list templates ” in the category list for the category to which the administrator wishes to add the new template . under the template list , one clicks “ create new template ,” enters a name and description , selects a layout from the pull down menu , and clicks “ add .” one may edit a newly created template , by clicking an “ edit contents ” option . this will show a template editor . on may use the template editor to edit the template , and click “ save ” when done . the administrator must export the templates using an export function , so that they will be available to the users . the administrator can control the available color schemes available to users by using a color scheme administration area . to create a new color scheme , the administrator clicks “ add new color scheme ” from the color scheme list , enters a name and description in the appropriate text areas , and clicks “ add ”. to edit a created color scheme , one clicks on the edit link that corresponds to the color scheme that one wants to edit . this will show a color scheme editor , which permits one to assign color options to specific slide components . the administrator must export the color schemes so that they are available to the users . the present system also allows server 17 to collect valuable , real - time statistics about the behavior of its clients online , i . e . users , at no additional cost . to view these statistics , an administrator should click on the user statistics link after logging in . while users create and edit presentations , the presentation utility server 17 can automatically collect information about the user . for example , the server can determine the customer &# 39 ; s username , ip address , hostname , and language . this information can be stored in database 19 and later accessed in administration mode . the data can be displayed in table format . the system can keep track of the number of times each user has accessed the presentation utilities . each time the user accesses the presentation utilities , the access counter for that user is incremented by one . the list can be displayed in sorted order from the most active users to the least active users . server 17 may also collect information about the most popular slide templates and color schemes . the number of times each template or color scheme is accessed can be displayed in sorted order . the number of times each template has been printed can also be displayed in sorted order . the most popular templates and color schemes might be expanded , while the less popular templates and color schemes could be eliminated .