WO1999001802A2 - Platform-independent universal data access system and method in a client-server environment - Google Patents

Platform-independent universal data access system and method in a client-server environment

Info

Publication number
WO1999001802A2
WO1999001802A2 PCT/US1998/013794 US9813794W WO9901802A2 WO 1999001802 A2 WO1999001802 A2 WO 1999001802A2 US 9813794 W US9813794 W US 9813794W WO 9901802 A2 WO9901802 A2 WO 9901802A2
Authority
WO
WIPO (PCT)
Prior art keywords
data
pages
book
ana
select
Prior art date
Application number
PCT/US1998/013794
Other languages
French (fr)
Other versions
WO1999001802A3 (en
WO1999001802A9 (en
Inventor
Shaun P. J. Maine
Mark J. Lussier
Andrew G. Stevens
Original Assignee
Sanga International, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sanga International, Inc. filed Critical Sanga International, Inc.
Priority to AU83809/98A priority Critical patent/AU8380998A/en
Publication of WO1999001802A2 publication Critical patent/WO1999001802A2/en
Publication of WO1999001802A3 publication Critical patent/WO1999001802A3/en
Publication of WO1999001802A9 publication Critical patent/WO1999001802A9/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • G06F16/1794Details of file format conversion

Definitions

  • This invention relates generally to client-server software svstems and particularly to data access in a client-server environment.
  • Computer networking technology links multiple computers to enable the transfer of data.
  • the development of computer networking technology was particularly important in the corporate environment where sharing and exchanging information is of particular importance.
  • One network architecture that has developed is the client-server architecture.
  • one or more computers are configured as a "server.”
  • a server stores a set of shared resources such as data (generally organized by storage within the context of a database) and applications.
  • one or more other computers are configured as clients to access the stored data and applications from one or more servers.
  • client computers are based on different hardware platforms and run different operating systems.
  • server computers are just as varied in terms of hardware and operating system environments. For example, it is typical for a company to store human resources information in one type of database, inventory information in another, engineering documents and so on. Further, companies often need to access data stored in other types of data sources (storage vehicles) such as in an electronic mail system, or from a large mainframe data source.
  • Accessing and/or updating data stored in these varied storage systems requires using a data management system tailored for accessing the particular type of stored data or directly invoking the application which stores the data (e.g. an email program, a word processor, the specific database and the like).
  • a data management system tailored for accessing the particular type of stored data or directly invoking the application which stores the data (e.g. an email program, a word processor, the specific database and the like).
  • a user must learn separate interfaces for a variety of software applications in order to access, view and modify data from multiple sources. Additional system complexity is introduced when data access is desired from a variety of computer platforms operating different operating system types. In these cases, conventional data access system and methods are ported for compatibility with more than one type of computer.
  • a computer implemented system and method provides platform independent access to data stored in any one of a variety of data storage mediums such as SQL databases, mainframe databases, mass storage mediums, mediums accessible via a driver, electronic mail systems and the like.
  • the invention includes a client module that provides a desktop operating environment having a desktop window operating "inside" a browser.
  • the desktop window presents one or more books each representing data stored in a corresponding storage medium (e.g., on a particular server computer) and in one or more particular storage formats (e.g., in an SQL database format or in a particular electronic mail format).
  • the books are represented by icons having a user-customized name.
  • the invention also includes a server module in communication with multiple client modules.
  • the server module includes a metadata for accessing data associated with each book.
  • the server module further includes computer instructions that process data requests (access requests) received from the client module by (i) retrieving the metadata associated with the book, (ii) retrieving data corresponding to the metadata; and (iii) sending the retrieved data to the client module.
  • the client module is a browserware application.
  • a browserware application is program code that is stored on a server and is accessed from and run within a browser running on a client computer.
  • a browserware application does not require user installation on the client side, (ii) is hardware and operating system independent on the client side and (iii) allocates a reduced amount of processing to the client computer thus reducing the use of memory and processing resources on the client computer.
  • a book provided by the client module is linked to (assocaited with) to data stored in a data source and to program code for viewing the stored data.
  • information stored in the server module's data object associates the name associated with the book with physical storage information (e.g., metadata) for retrieving the data.
  • Data is then retrieved by processing the physical storage information to determine the location and format of the data being accessed. If the data resides in a database, then the location of the database is retrieved from the data object and an appropriate query is constructed then applied to the database.
  • the client module runs in a browser environment.
  • the browser environment manages the interaction between the client module and the client computer operating system.
  • the client module thus does not require installation on or configuration with the operating system of the client computer.
  • the browser environment is a Java-compliant browser environment and the client module is a Java-applet.
  • retrieved data is presented to a user in accordance with a viewing form and the system additionally includes a scripting module for generating a customized viewing form.
  • the scripting module includes a byte-code generator disposed to generate byte-code in accordance with user specified form layout.
  • the scripting module generates browser-compatible byte-code, the customized form displays data to the user from within the browser environment independent of the computer hardware platform or operating system on which the browser is running.
  • the invention includes a user interface for configuring the server module for accessing data stored in any one of a plurality of storage mediums in any one of a plurality of storage formats.
  • the user interface allows a user to specify physical storage information associated with data stored in one or more storage vehicles and stored in one or more data formats.
  • the invention also includes a processing module in communication with the user interface. The processing module generates a data object using the information received from the user via the user interface. The data object associates the received physical storage information with a name (e.g. a data identifier).
  • FIG. 1 is a functional block diagram of a data access system in accordance with the present invention.
  • Figure 2 is a diagram of the data organization structure of a book provided by the data access system shown in Figure 1.
  • Figure 3 is a flow diagram of object to relational mapping to access data in accordance with the data access system shown in Figure 1.
  • Figure 4 illustrates a desktop window of the desktop client module shown in Figure 1.
  • Figure 5 illustrates a new manager dialog window provided by the data access system shown in Figure 1.
  • FIGS 6A-6C illustrate new book dialog windows provided by the data access system shown in Figure 1.
  • FIG. 1 is a functional block diagram of a data access system 100 in accordance with the present invention.
  • System 100 includes a client computer 101, a server computer 102 and data sources 108 coupled via a computer network 103.
  • Client computer 101 runs a desktop client 105 that provides access to one or more of the data sources included in data sources 108. Access is provided by a data service application 106 running on a server computer 102.
  • Data service application 106 processes data access requests received from desktop client 105 and returns the requested data for presentation to a user from desktop client 105.
  • Desktop client 105 advantageously runs within a browser 104, eliminating the need for customization and configuration of desktop client 105 to a particular hardware configuration or to a particular operating system type.
  • Client computer 101 is a personal computer, a computer workstation of other computer type suitable for running browser 104.
  • Browser 104 is preferably a conventional Java-enabled (Java-compliant) web browser such as Netscape Navigator 3.0 or Microsoft Explorer 3.0.
  • a Java-enabled browser is a browser adapted to run byte-code (written in the Java programming language) within the browser environment.
  • the Java programming language is an object oriented programming language developed by Sun Microsystems and is defined in the Java Language Specification Version 1.0 by James Gosling, Bill Joy and Guy Steele (published by Addison-Wesley, August 1996) and in the Java Virtual Machine by Tim Lindholm and Frank Yellin (published by Addison-Wesley, September 1996), the contents of which are hereby incorporated by reference.
  • browser 104 includes a Java Virtual Machine (JVM) that translates Java byte-code into object code for execution.
  • JVM Java Virtual Machine
  • data access system 100 includes desktop client 105 and an application programming interface (API) 123.
  • Desktop client 105 is a "browserware application” that provides a user with access to one or more of the data sources coupled to server computer 102.
  • a browserware application is program code that is stored on a server and is accessed from and run within a browser running on a client computer.
  • a browserware application (i) does not require user installation on the client side, (ii) is hardware and operating system independent on the client side and (iii) allocates a reduced amount of processing to the client computer thus reducing the use of memory and processing resources on the client computer.
  • desktop client 105 is a set of Java- compatible byte-code instructions forming a Java applet that runs within a Java-compliant browser.
  • Desktop client 105 is identified by a tag. The tag in turn is embedded in a world wide web (Web) page written in hypertext markup language (FiTML).
  • Web world wide web
  • FTML hypertext markup language
  • Desktop client 105 is accessed (e.g., downloaded to the client computer and run within the browser) when the tag contained a Web page is used to activate a link from within browser 104.
  • desktop client 105 When desktop client 105 is running, browser 104 manages the interaction between desktop client 105 and client computer 101 (e.g., browser 104 provides an interface between desktop client 105 and client computer 101 and its operating system). Desktop client 105 therefore runs "within" browser
  • desktop client 105 rather than interfacing directly with the operating system associated with client computer 101.
  • the compatibility of desktop client 105 is therefore advantageously determined by compatibility with browser 104 rather than with the type of hardware or operating system associated with client computer 101. Further, desktop client 105 need not be configured to the particular hardware associated with client computer 101. Thus, desktop client
  • 105 is platform independent and can run the same set of instructions on a variety of computer hardware and operating systems, provided each is running a browser that includes a virtual machine that can execute the client desktop 105 byte-code. This platform and hardware independence eliminates the need for porting code to achieve multiplatform compatibility. Instead, a single version of desktop client 105 will execute on any platform having a Java virtual machine.
  • Server computer 102 is a computer configured to serve multiple client computers 101. For purposes of simplifying Figure 1, the detail of only a single client computer 101 is shown. Client computer 101 is coupled to server computer 102 using network 103.
  • Network 103 is preferably an internal TCP /IP intranet although other networks uses such as the Internet or an extranet are used in accordance with the invention.
  • Server computer 102 runs (executes) a data service application 106.
  • Data service application 106 provides users at various client computers 101 with access to one or more data sources included in data source set 108
  • Data service application 106 includes server side API 124, API proxy 125, forms module 126, view module 127, script module 128, replication module 129, security module 130, script compiler 131, data access module 132 administration ("admin") tool 133, data source interface (DSI) 107 and JDBC 110.
  • Administration tool 133 is a program module that provides for system configuration and for the selection of data sources within data source set 108. Further, administration tool 133 allows a user such as a system administrator) to construct, for each selected data source, an access control list (ACL) specifying which users or user groups, are offered access to the particular data source.
  • ACL access control list
  • Server side API 124 is an application programming interface that processes information communicated to and from various desktop clients 105.
  • API 124 interfaces with API proxy 125.
  • API proxy 125 is a program module that implements a remote method invocation (including object serialization) mechanism. The mechanism processes method calls received from desktop client 105 for remote invocation.
  • Remote invocation means that methods invoked at the client computer 101 side (e.g., by desktop client 105) actually invoke methods on server computer 102 (e.g., on data service application 106).
  • server computer 102 e.g., on data service application 106.
  • View module 127 is a program module that presents a user with a high level representation of data retrieved from a data source (e.g., a database 113).
  • data is presented in a row and column format where, in a design mode, the user selects which fields of a data source are displayed.
  • Form module 126 is a program module that presents information associated with a selected row of data presented by view module 127. Selected information is shown in a customized form. Customized forms include widgets. Widgets are visual components such as buttons which, in conjunction with scripts cause the form to modify the presentation of data and perform presentation related processing.
  • Script 128 is processing module that reads and executes or set of custom scripts (in byte-code) that are associated with the various widgets of a form or view.
  • Script compiler 131 is a processing module that translates user- generated script text into byte-code.
  • Replication module 129 is a processing module that provides functionality for mobile access of data. Replication module 129 copies information from a database, provides for its modification and copies it back into the database without performing an over-write.
  • Security module 130 is a processing module that manages security functions. Security module 130 encrypts data communicated between desktop client 105 and data service application 106. Security module 130 additionally manages user account and password information.
  • Data access module 132 is a data access layer that manages information associated with views, forms, scripts, server names, user names, passwords and the like. Data access module 132 interfaces directly with data source interface (DSI) 132. Data access module 132 translates information between from the format used by API 124 and the format used by DSI 107.
  • DSI data source interface
  • DSI 107 is a set of computer instructions that provide an interface between data service application 106 and data source set 108.
  • Data source set 108 include structured query language (SQL) databases 113, mail system 112, native database 121 and mass storage 134.
  • Mail systems 112 are conventional electronic mail systems including LMAP4 systems 115, POP3 systems 116, MAPI systems 117 and VIM systems 118.
  • Native database 121 is a database native to data access system 100. Native database 121 provides an alternative data storage source and also stores administrative data used by data service application 106.
  • Mass storage data source 134 is a storage device for information with large memory needs such as image and video data.
  • SQL databases 113 are structured query language (SQL) databases, each accessed through a server computer 102.
  • the various data sources included in data source set 108 can each reside on separate computers. It should be understood that the principles of the present invention apply with data sources residing on other computer configurations including where multiple data sources reside on a single computer.
  • Data service application 106 additionally includes Java database connectivity module (JDBC) 110.
  • JDBC 110 is a conventional application programming interface for querying conventional SQL database available from Sun Microsystems.
  • JDBC 110 provides capability to query databases 113 to determine metadata including their connection status (e.g., whether a connection is established) and access, format and syntax information not specifically defined by the SQL.
  • Figure 2 is a diagram of the data organization structure of a book 200 in accordance with the data access system 100.
  • Book 200 is named personal contacts and provides access to information associated with personal contacts stored in a database.
  • Book 200 includes a database identifier 201, a table identifier array 202, a join condition 203, and a plurality of views 204.
  • Database identifier 201 stores information identifying a particular database on a particular server computer.
  • Database identifier 201 is used to construct an address to communicate with the database corresponding to the database identifier.
  • Table identifier 201 is an array of table identifiers that specifies one or more tables in the database.
  • Join condition 203 specifies a particular join function to be used to combine the tables listed by table identifier 201.
  • Views 204 each specify a custom view of the joined data.
  • View 204 includes a search condition 205, a selection (list) of attributes 206, and a plurality of forms 207.
  • Search condition 205 is the equivalent of a where clause in an SQL statement.
  • Selection of attributes is a list of attributes (fields) to be presented in the view.
  • View 204 provides information that is used by service application 106 to construct a request for a database search result. Service application 106 processes the request, queries the selected database and returns the result set in a dynamically created object.
  • Figure 3 is a diagram of a dynamically created result set 300.
  • Result set 300 includes a set of result objects 301.
  • Result objects 301 are each person objects including a set of attributes 302 (fields) associated with data corresponding to the person. Attributes 302 includes, for example, start date, fax number, cell number, work number and home number.
  • Each person object 301 is generated as a result of a database query constructed using a JDBC SQL call 303.
  • the JDBC call 303 performs a table join of the person table 304 and the phone number table 305 associated with the database identified by book 300.
  • the table join is perform using the person ID. as the sole join column.
  • Each returned person object is presented within a view as a row. Further customization and refinement of view data is performed using forms 207.
  • Forms 207 enable selective viewing of data within each view based on column characteristics.
  • data access system 100 is preferably first configured by a system administrator for access by multiple users. These multiple users are each preferably identified by user identifications (I.D.s) and by passwords. Users are preferably organized into "groups" based on characteristics tailored to a particular organization's need. For example, a company might arrange users into the following groups: engineers, sales staff, marketing, finance, test and production. The same company might additionally define a different set of user groups such as: part-time employees and full-time employees.
  • ACL access control list
  • Administration tool 133 includes the program instructions that effect such system configuration. Further description of administrative configuration is described in the Admin and DataSource ACL Manager sections of the user's manual included in this specification.
  • system 100 provides users with access to selected data sources from desktop clients 105.
  • a desktop client 105 is downloaded to a client computer 101 and service application 106 performs an initialization process in accordance with the system configuration.
  • service application 106 polls (using JDBC 110 for queuing database sources) each data source in system 100 to determine whether a current connection can be established.
  • service application 106 queries each connected data source to determine access syntax and format.
  • Service application 106 thus generates and stores metadata for retrieving data stored in the connected data sources.
  • desktop client 105 is copied from (downloaded from) server computer 102 to client computer 101 for execution.
  • the copying and execution of desktop client 105 is initiated from within browser 104.
  • desktop client 105 presents the user with a desktop window.
  • Figure 4 illustrates a desktop window 400 in accordance with the present invention.
  • the desktop window 400 presents a user with the option to select a set of books 402 that are available to the user.
  • a book is representative of an information link to one of the data sources in data source set 108 and the applications used to process such data. Because desktop window 400 is provided by desktop client 105 running within browser 104, the data source set 108 is advantageously accessed without dependence on the hardware platform and operating system included in client computer 101.
  • Desktop window 400 provides access to the data associated with each book 402 (e.g., enables the viewing of data associated with the book). Access is controlled by disabling selected items in a dropdown menu 404 that appears when a user selects a book 402. Selecting the open command from dropdown menu 404 causes a view manager dialog window 500 as shown in Figure 5 to be presented.
  • View manager dialog window 500 is a dialog box that displays a list of available views 501 for a corresponding book 402. Selecting a particular view 501 causes data associated with the corresponding book 402 to be displayed in accordance with the format associated with the selected view 501.
  • Desktop window 400 also includes a status bar that presents operational and status messages along the bottom of desktop window 400.
  • the new book properties window 600 includes a services box 601 that enables a user to select the service (e.g., the server) that contains the data source that the user wants to associate with the book.
  • the desktop client 105 next presents an updated new properties window 602 as shown in Figure 6B.
  • the updated new properties window 602 replaces services box 601 with a datasource box 603.
  • Data source box 603 includes the name of dates sources (e.g., JDBC, MAPI, POP3, Native etc.) that are available from the selected service.
  • desktop client 105 After selecting one of the presented data sources, desktop client 105 presents a set of dialog boxes that enable a user to further specify information for accessing the corresponding data source. For example, if a JDBC data source is selected, the user is presented with a dialog box such as the further updated new book properties window 605 shown in Figure 6C. Further updated window 605 includes a new box 606 titled "driver". The further updated window 605 provides a list of JDBC drives corresponding to configured JDBC drivers for selection. After selecting a driver, desktop client 105 presents either dialog boxes enabling a uses to select a database by name and a table within the selected database. If a user selects an electronic mail data source rather than a JDBC source from updated new properties window 602, desktop client 105 presents a user with a sequence of dialog boxes allowing the user to select the desired mail profile and its location.
  • a dialog box such as the further updated new book properties window 605 shown in Figure 6C.
  • Further updated window 605 includes a new box 606
  • books are added to a desktop window 200 by importing them from a server 102.
  • a users uses a set of dialog boxes to select a server computer 102 and to the select a book on that server.
  • the Pages Desktop client is an applet that gives Java-enabled browsers a window into Sanga Pages applications.
  • Pages Desktop Server The core of Sanga Pages, it allows clients to access "books of information * which represent links to aata sources and the applications reauired to leverage that data.
  • Pages Form Design Gives developers a set of GUI design components to create sophisticated front-ends for custom applications or templates for data viewing.
  • Standard GUI controls include static text boxes, buttons, text fields, scrolling text, check boxes, radial buttons, pull down lists, and regular lists. All controls hove selectable color, fonts and sc ⁇ pts. Also includes variable granularity grids for alignment, group alignment, ana resizing. Includes standard reusable sc ⁇ pts.
  • Pages Script This robust, BASIC-like compiled programming language enables developers to add functionality to forms and create more detailed custom applications. Together with Pages view Design and Pages Form Design this completes the package of platform-independent Java application development tools. Scripting options include decla ⁇ ng variables of different types, executing common looping and conditional expressions, creating extensions into the Sanga
  • Pages API library displaying message boxes, performing field access ana validation, inserting, updating, deleting data database navigation (next, last, previous etc.) syntax checking and error reporting.
  • Pages Security - Administrators can create access control lists and use DES encryption of sessions. Developers can also use wrappers that support Northern Telecom's Entrust for inaust ⁇ al-strength security.
  • Sanga Pages Security can encrypt all data transmitted to and from Sanga Pages clients and SQL databases, provide user-level security, field level security and support digital signatures.
  • Pages Replication - Sanga Pages allows users to copy databases across platforms for efficient distributed-database applications and to update different copies of the same database.
  • Start Pages Desktop Client describes how to start and exit Pages Desktop, and reviews the components of the Pages Desktop wmdow.
  • Pages Server desc ⁇ bes in detail the features and tools available to an aamimstra- tor of Sanga Pages.
  • This manual uses certain conventions, including the typographical conventions in the manual itself, keyboard conventions for using Sanga Pages and the terminology desc ⁇ bing mouse techniques.
  • Select means you inOicate an item by clicking once on the item to move the highlight to the item . For example:
  • Entries in small caps represent specific keys on the keyboard that you press.
  • Monospaced type indicates a command that you type.
  • Menu selections, commands, ana controls in dialog boxes use bold type.
  • a one or two word term identifies cor ⁇ vnonly used actions. In this manual, these terms are used to avoid repeating detailed aesc ⁇ ptions of the action. These Terms are point means you move the mouse pointer on the screen until it rests on the commana or item you want to select click refers to the action of pressing ana releasing the mouse button auicWy
  • the instruction to click something means you use the left button on the mouse, while ⁇ ght-click means you must use the ⁇ ght button double-click means you press the left mouse button twice while on the inaic ⁇ tea object drag means you press and hold the mouse button while moving the mouse
  • Pages Desktop Client will be referred to as Pages Desktop.
  • Pages Desktop uses a tabular layout common to many Winoows applications. This discussion assumes a stanaara installation with a ⁇ efault configuration.
  • the mam portion of the Pages Desktop is the tabbea panel usea to organize the books of a Pages user. Initialty there will be one tab without a title.
  • buttons The Button Bar appea ⁇ ng Oown the left side of the window shows the initial selections available. Under Tabs”. New, Rename, and Delete appear. Under "Books”, the buttons called New, Import ana Arrange appear. Save ana About are the last two buttons.
  • a new DOX will replace the "Services" box called "Pages Data Source” in the box are all the names of the aata souces (i.e.: JDBC. MAPI. POP3. N ⁇ vel available to you from the service you lusts ⁇ tectea. Select the aata source you wish to use for you Book. Then select Open.
  • JDBC a Another new boxwiHrepiace "Pages Data Souce'caHed "Driver”. Select the JDBC driver (these will correspond to the configurea ODBC O ⁇ vers) you wish to use for your Book ana then select Open.
  • POP3 a A new winaow appears called "Connect Information * .
  • Mail (POP3) Server enter the aOOress of the server and then select OK.
  • This feature allows you to import an existing Pages Book into your Desktop.
  • the book you wish to import can exist either on your local service or any other available service in the network.
  • one selection criterion applied to anfrnptoyee aatabase may be: Yearsof service > 5. This wou j return ⁇ view of all emptoyee records in the aatabase with a value in the YearsOfService column greater than five.
  • the selection c ⁇ te ⁇ can be joinea with either AND or OR if AND joins two selection criteria then both must return true for the recora to be Oispi ⁇ yea in me view.
  • OR in the filter list means that a record which matches any of the selection c ⁇ te ⁇ a will be mcluOed in the view.
  • This option allows you to open a previously createa Pages Form for viewing the entries m a Pages Book.
  • This option allows you to create, eait, and delete forms of the Pages Book elements.
  • the User Ust contains all local users managed by this service.
  • the Group Ust contains the aefautt system wide groups as well as any locally defined groups.
  • me Mode menu on me "View Design” win ⁇ ow should have Layout selected.
  • select me Test option unaer me Mode menu on me "View Design” winaow. Testing me view will Orsplay me information of me columns you have selectea from me book.
  • seiectea view wW be deleted. ages view . After confirming tne ⁇ eletion you will return to the "View Manager" winaow wnere you can select Cancel to close the winaow.
  • the text box can be resizea at any time by selecting a resize tab on me text box ana Oragging it to the aesirea size.
  • the font size is automatically set when you create the button. You have the options of making the burton label bold and or italic by selecting the appropriate check box.
  • buttons in me same group at most one of the buttons will be active at one time.
  • the previously selected button is ae- s ⁇ tected. If it is reauired fa several radio buttons to provide toggles where at most one of the buttons can be active at one time, raao buttons shouia be aaaed to groups. In the Group section you must define the group mis raOio button belongs to.
  • Pages Sc ⁇ pt is a Basic-like compitea programming language which enables developers to put inteihgence behind the forms created in Sanga Pages. Not )ust for straight-forward aata access, Pages Sc ⁇ pt can be usea for form routing, data t ⁇ ggers. validation, process automation, ana many other advanced programming applications. Pages Sc ⁇ pt will be familiar to developers who are expenencea with general sc ⁇ pting languages. Furthermae, this chapter is designed fa those readers who have some experience with writing shell sc ⁇ pts.
  • Vanabte - a variable is a named storage location that hdds data that changes; every variable can hdd only one kind of data.
  • VarName is ⁇ name mat you supply When Pages Sc ⁇ pt executes me Oim statement at runtime, it creates a v ⁇ ade in memory ana assigns it me name you grve in me VarName location of the statement.
  • Datatype is one of the two Pages Sc ⁇ pt data types defined in the above table
  • dim A as integer dim C as integer dim D as strmg dim E as string
  • Pages Scnpt initializes with zeroes in me nume ⁇ c va ⁇ ables ana null st ⁇ ngs in the st ⁇ ng va ⁇ ables. Use me “assignment statement” when you want to put o er acta values into va ⁇ ables.
  • VarName is a va ⁇ ade that you have aefinea using me aim statement
  • NetSaies AnnualSales - CostOfSaies
  • Pages Sc ⁇ pt computes me entire result befae it stores mat result in me vanabte at the left of me eauals sign, in me f iowing assignment statement, fa example, is rather lengthy, but Pages Sc ⁇ pt computes me result and stores me value in a vanabte named Celsius.
  • Pages Sc ⁇ pt computes mathematical results in a predetermined ader. Pages Sc ⁇ pt men computes all multidication ana division (working from left to ⁇ ght - befae any addition ana subtraction).
  • Pages Scnpt assigns 13 to Result in the following assignment-
  • Reiationd Operators compae adta values to one another. They test conditions that are either true a false. And thus they only produce true and false answers. In other words, one aata value is either more than another (a true result) a the aata value is not mae than me other (a false result). J ⁇ ges 45
  • bom siOes of a relational operator must have me same aata type or at least compatible aata types In omer woras. you cannot compare a st ⁇ ng to a nume ⁇ c aata type If you try, you will get a Type mismatch e ⁇ or because me aata types Oon't match
  • Pages Sc ⁇ pt supports bom conditional statements ana loops to aetermme the program flow.
  • Blocks consist of one a more Pages Sc ⁇ pt statements
  • the block of statements founO in a contrd structure are bounaea by me start of me structure ana the "enOing" statement. For example, an if statement comdetes with an ena if statement, a a ao while loop enas with a loop statement
  • the Pages Sc ⁇ pt language supports nesting of these program flow structures.
  • the if statement uses relational operators to test Ocrfa values It performs one of two posside code actions, depending on the result of the test. With if statements. Pages Scnpt tests whether to execute blocks of code. The if statement makes Oecisions If a relational test is true, the body of the rt statement executes.
  • the else statement executes cede based on the relational test's false condition
  • the else statement is part of an extended if statement mat specifies the coae mat executes if the relational test is false.
  • Loops are usea when me same set of steps have to be camea out many nmes
  • the do while statement performs flow control based on a relational expressions just as me if statement aoes
  • the relational expression controls me looping statements rather man a single block of cede Many lines of your program will still execute sequentially, but a loop will cause blocks of coae to repeat zero, one or many times
  • the block of cede continues looping as long as the relational test is true. You can put as many lines of cede in me block as long as the block itself somehow changes a vanabte used in the relational test.
  • the block of code will keep repeating as long as the Oo while loop's relation ⁇ l test continues to stay true. Eventually, the relationd test must become fatse - otherwise you w* encounter an mfmrte loop
  • the for loop is sometimes called the "Fa-Next" loop. UnHke the do loops, me for loop repeats for a specified number of times. A fa loop always begins with me fa Statement and ends with the next statement
  • the loop in me fdiowing example comp es me total ot me numoers from l to 1 C
  • ana an exception occurs in me aata mat reauires ana immeaiate termination of the loop.
  • the user can enter zero fa a division's sales value, indicating mat mere is no sales data fd that arvtston.
  • your program might need to aurt the loop at mat pdht because the full aivisiond report information can't be gatherea at me time.
  • Tne exit tor statement automatically terminates me loop. No matter how many iterations are teft in me fa loop, when Pages Sc ⁇ pt encounters an exit fa statement. Pages Sc ⁇ pt immed ⁇ tely aurts the loop ana sends execution down to me statement fdiowing the loop.
  • Block II Code to get a sates value if (sates 0) then exit for // Quit the loop early end if
  • the Screen functions manipulate the aifferent things you see on me screen
  • MessageBoxfmsg returns v d. where msg is the message you wish to Oisplay.
  • msg may be a st ⁇ ng or a number
  • This function puts a box up on me screen with me contents of msg insiae. AOOi- tionally, there will be two buttons with YES ana NO inside Ihe box The user must click on one fa me sc ⁇ pt to proceeO. The function will return a 1 if the user clicks on YES and 0 if me user clicked on NO.
  • ScreenFieldffld returns Strmg where fid is the legitimate ID of an object on the screen.
  • This function returns the contents of the fkJ object If the fid otxect is a hst or a choice, rt will return the chosen element. If there is no answer, the function will return an empty string.
  • setScreenFiei ⁇ (fk ⁇ newv ⁇ lue) returns v ⁇ O wnere fid is me tegrtim ⁇ te ID of an object on me screen. where newvalue is what vdue you wish fid to take on.
  • This function sets me contents of me ftcJ object to me contents of me newvalue va ⁇ ade. To set me list or choice odects, you must use setListElement.
  • the hiaeField function makes the requestea object inviside ana aisabtea. The user cannot see nor act on me screen odect.
  • the showFtekj function makes the object visible ana enabiea.
  • the disadeFielO function makes the reauestea object gray ana dead. The user cannot act upon me screen object.
  • the enabteFtek function redraws the object ana makes it work again.
  • a list screen object may be usea to make multide selections off the list. You must first tell the list object to work in mis manner. A list screen object will only allow one selection by aefault. Calling me setMultipteSetection function with the fid agument as the screen ID will make the list screen object dtow multiple selections. Calling the resetMultipteSetection function with the fid argument as the screen ID will make the list screen object not allow multiple selections.
  • getNumberSetectedffld returns mt where fid is the legitimate ID of an object on the screen.
  • This function will return the number of entries me user has seiectea. This number may be anywhere from 0 to the total number of entnes on me Hst
  • getSetect ⁇ on(fld. setectionNumber) returns mt where fid is me legitimate ID of an object on the screen, where setectionNumber teHs which selection you wish returned
  • DataBaseF ⁇ eia(fia) returns St ⁇ ng where fid is me legitimate ID of a fieia in me aatabase
  • This function sets me contents of me fiekJ in the cu ⁇ ent recora of me aatabase to me contents of the newvalue vanabte. If mere is no such field men me function will do nothing.
  • This function copies me contents of the screen to the aatabase to be saved.
  • This function will remove the cunent recad from me database.
  • This function will get a blank recaa ready to be aadea to the database. You must fdlow mis call with a call to upOate if you wish to permanently aOO mis function to the aatabase.
  • This function changes the current recad of the aatabase by moving the recorO after the current record. All screen fields wiH automatically be changed to reflect this.
  • This function changes the current recaO of the aatabase by moving me recora befae the current record All screen fietOs will automatically be cnangea to reflect this.
  • This function changes me current recora of the aatabase by moving me record to me very end record. All screen fields will automatically be cnangea to reflect mis
  • This function changes the cunent record of the database by moving me recaO to the OesireO position in the database which is specified by the recNumber vanabte. All screen fietOs will automatically be changeO to reflect mis.
  • This function returns a number which represents your position m the aatabase. This number will always be positive unless you are in me miast of aaoing a new recad to me database.
  • This function returns a count of the number of characters in the vanabte str.
  • This function returns ⁇ new st ⁇ ng which is lOentic ⁇ l to me count rightmost characters of me va ⁇ able sir.
  • This function returns a new st ⁇ ng which is lOenfical to me count leftmost characters of me va ⁇ ade sir.
  • This function returns a new st ⁇ ng which is iOentical to me count characters starting at the start character of me va ⁇ able str.
  • This function returns a new st ⁇ ng which is iaentical to wrth str2 aaded on to me end of strl .
  • This function returns a new st ⁇ ng which is the representation of number in st ⁇ ng form.
  • This function returns a number which is the eauivalent of the st ⁇ ng representation.
  • strcmp(strl , str2) returns Integer
  • This function returns a number which is computeO by compa ⁇ ng the string in str 1 wrth the string in str2. If strl is the same as str2. the function returns a 0. If strl is dphabetically earlier than str2, then the function returns a - 1. Otherwise, the function returns a 1.
  • This function returns a new st ⁇ ng which is createa by taking me argument ana converting any lowercase characters to uppercase. Or uppercase to lower for me tolower function.
  • This function returns a new st ⁇ ng which is createa by taking me argument ana removing any leaOing a trailing spaces.
  • This function returns an Integer representing the character at a specrftea position in the strmg.
  • This function computes ana returns me position in me st ⁇ ng of the character argument. If the character is NOT in the stnng, men the function returns - 1
  • This function computes ana returns the position in the st ⁇ ng of the secono st ⁇ ng argument. If me search stnng is NOT in the strmg, then the function returns - 1
  • This function is lOentical to me inaexofstr function wrth me exception mat me searching aces not start wrth me first character but insteaa will start searching at c position in me thira argument.
  • This function computes me absdute value of me argument. That is. it makes me number positive if it is not alreaay so, ana then returns it.
  • This function computes onO returns me smallest whde number mat is larger man me argument.
  • This function computes ana returns the largest whole number mat is smaller man the argument.
  • This function computes ana returns the natural log of the argument.
  • This function computes ana returns the sa ⁇ are root of the argument
  • This function computes ana returns the result of the first number raised to the power of the seconO number.
  • This function copies all aatabase fields into their co ⁇ esponOing fields on me screen
  • This function computes me current aate ana returns it as a st ⁇ ng
  • the Oate is in MM/DD YY format.
  • This function computes the current local time ana returns rt as a stnng.
  • the time is in 24 hour HH MM:SS format.
  • All Client and Service sessions are encrypteO using DES (Data Encryption Stan- OarO) encryption.
  • the Pages Server aaministrator is also able to contra which users and/a groups have access to the aata sources ana what kino of access me user/ group will have.
  • ACL Access Control List
  • User Manager acts as an aaministra ⁇ ve tod fa managing users and groups on the service.
  • the User aropdown menu has five options: Add User..., Add Group.... Delete, Properties, ana Exit. Instructions fa using each of these options to follow.
  • the Data Source ACL Manager proviaes a way to attach an Access Control LIST (ACL) to me aata sources proviaea bv the service
  • ACL Access Control LIST
  • These lists ore usea to ensure me security of me aata sources ana to proviae access only to autho ⁇ zea users
  • To use me Data Source ACL Manager select Data Source ACL Manager from me Admin aropaown menu.
  • the "Data Source ACL Manager" wmaow appears aispiaying a list of conf igurea aata sources ana va ⁇ ous actions mat can oe performed (Add, Delete, Setup, and OK).
  • Data Source List This is a list of Oata sources for which an ACL has previously ceen configureO. Selecting an item in mis list will allow you to erther Delete or Setup me aata source ACL Bom of these options are aesc ⁇ bea below.
  • a new window appears called "Aad Data Source ACL". This window Oisplays a list of all the data sources provided by the service.
  • the configuration of a data source ACL is managed by the "Data Source ACL Setup" winaow. This winaow can be entered by either:
  • the Name of the Data Source is displayed at me top. This value cannot be cnangea as it must match the actual aata source value.
  • a Users list ana a Groups list.
  • the Users list contains all local users managed by this service.
  • the Groups list contains me aefault system wide groups as well as any locally Oefinea groups.
  • ⁇ /henever ⁇ user or group is seiectea tnese cneck boxes will reflect me permission set for mat user/group.
  • aaa box contains a ⁇
  • a remove box is empty
  • a permission simply click on the approp ⁇ ate field ana me value will be toggiea.
  • Selecting me OK button will close the "Data Source ACL Manager” w aow ana return you to me main "Pages Service” winaow.
  • the mird option available in me "Pages Server” window is Options which has mree additional tods for the Pages Server administrator.
  • a new winaow appears called "Available Services”. A list of all me Pages Servers available on your intranet is displayed.

Abstract

A data access system (100) and method provides platform independent access from a client module (101) to a variety of data sources (108) stored in a variety of data formats on a variety of computer systems, including database sources and electronic mail sources (112). The system includes a desktop client module (104) that is a Java applet (105) that runs within a Java-compliant browser (104) located on a client computer (101). The desktop client module provides access to any one of a plurality of data sources, each represented as a book (200) on the client desktop. Access of the data associated with a book is implemented using a data access service application running on a server computer (102) in communication with the desktop client. The data access service application (106) includes a data source interface (107) that stores metadata associated with each book. Accessed data is presented in a customized viewing format as (127) as specified by various views (204) and forms associated with each book.

Description

PLATFORM-INDEPENDENT UNIVERSAL DATA ACCESS SYSTEM AND METHOD TN A CLIENT-SERVER ENVIRONMENT
BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention relates generally to client-server software svstems and particularly to data access in a client-server environment.
2. Description of the Related Art
In the 1960's and 1970's computing was performed primarilv by large mainframe computers servicing multiple users. Most users accessed the mainframe computer using a "dumb" terminal that had very little memory and computing power other than what was required to interface to the mainframe and to present data received from the mainframe computer to the user. In this scenario, each user was given time shared access to the computing cycles of the mainframe as well as to the programs and data stored centrally on the mainframe.
With the development and proliferation of the personal computer in the 1980's another computing paradigm took hold. In this paradigm, a user worked on a dedicated "personal" computer and accessed a private set of application programs and data stored on the personal computer. Further, with this paradigm, no time sharing of processing cycles was necessary because the personal computer served the single user only.
Another change in the computing paradigm was caused by the development of computer networking technology. Computer networking technology links multiple computers to enable the transfer of data. The development of computer networking technology was particularly important in the corporate environment where sharing and exchanging information is of particular importance. One network architecture that has developed is the client-server architecture. In this architecture, one or more computers are configured as a "server." A server stores a set of shared resources such as data (generally organized by storage within the context of a database) and applications. Further in accordance with this architecture, one or more other computers are configured as clients to access the stored data and applications from one or more servers.
Using this client-server architecture many companies have set up a system where various categories of corporate data are stored on various servers. In many cases, the client computers are based on different hardware platforms and run different operating systems. Further, in many cases, the server computers are just as varied in terms of hardware and operating system environments. For example, it is typical for a company to store human resources information in one type of database, inventory information in another, engineering documents and so on. Further, companies often need to access data stored in other types of data sources (storage vehicles) such as in an electronic mail system, or from a large mainframe data source.
Accessing and/or updating data stored in these varied storage systems requires using a data management system tailored for accessing the particular type of stored data or directly invoking the application which stores the data (e.g. an email program, a word processor, the specific database and the like). Thus a user must learn separate interfaces for a variety of software applications in order to access, view and modify data from multiple sources. Additional system complexity is introduced when data access is desired from a variety of computer platforms operating different operating system types. In these cases, conventional data access system and methods are ported for compatibility with more than one type of computer.
Thus, there is a need for a system and method for accessing data that is stored in a variety of databases, in a variety of formats and on a variety of different types of computers.
SUMMARY OF THE INVENTION
In accordance with the present invention, a computer implemented system and method provides platform independent access to data stored in any one of a variety of data storage mediums such as SQL databases, mainframe databases, mass storage mediums, mediums accessible via a driver, electronic mail systems and the like. The invention includes a client module that provides a desktop operating environment having a desktop window operating "inside" a browser. The desktop window presents one or more books each representing data stored in a corresponding storage medium (e.g., on a particular server computer) and in one or more particular storage formats (e.g., in an SQL database format or in a particular electronic mail format). The books are represented by icons having a user-customized name. The invention also includes a server module in communication with multiple client modules. The server module includes a metadata for accessing data associated with each book. The server module further includes computer instructions that process data requests (access requests) received from the client module by (i) retrieving the metadata associated with the book, (ii) retrieving data corresponding to the metadata; and (iii) sending the retrieved data to the client module. In accordance with the present invention, the client module is a browserware application. A browserware application is program code that is stored on a server and is accessed from and run within a browser running on a client computer. Advantageously, a browserware application (i) does not require user installation on the client side, (ii) is hardware and operating system independent on the client side and (iii) allocates a reduced amount of processing to the client computer thus reducing the use of memory and processing resources on the client computer.
Further in accordance with the present invention, at a book provided by the client module is linked to (assocaited with) to data stored in a data source and to program code for viewing the stored data. Further, information stored in the server module's data object associates the name associated with the book with physical storage information (e.g., metadata) for retrieving the data. Data is then retrieved by processing the physical storage information to determine the location and format of the data being accessed. If the data resides in a database, then the location of the database is retrieved from the data object and an appropriate query is constructed then applied to the database.
Still further in accordance with the present invention, the client module runs in a browser environment. The browser environment manages the interaction between the client module and the client computer operating system. The client module thus does not require installation on or configuration with the operating system of the client computer. Preferably the browser environment is a Java-compliant browser environment and the client module is a Java-applet.
Yet further in accordance with the present invention, retrieved data is presented to a user in accordance with a viewing form and the system additionally includes a scripting module for generating a customized viewing form. The scripting module includes a byte-code generator disposed to generate byte-code in accordance with user specified form layout. Advantageously, because the scripting module generates browser-compatible byte-code, the customized form displays data to the user from within the browser environment independent of the computer hardware platform or operating system on which the browser is running.
Yet still further in accordance with the invention, the invention includes a user interface for configuring the server module for accessing data stored in any one of a plurality of storage mediums in any one of a plurality of storage formats. The user interface allows a user to specify physical storage information associated with data stored in one or more storage vehicles and stored in one or more data formats. The invention also includes a processing module in communication with the user interface. The processing module generates a data object using the information received from the user via the user interface. The data object associates the received physical storage information with a name (e.g. a data identifier).
The features and advantages described in the specification are not all- inclusive, and particularly, many additional features and advantages will be apparent to one of ordinary skill in the art in view of the drawings, specification, and claims hereof. Moreover, it should be noted that the language used in the specification has been principally selected for readability and instructional purposes, and may not have been selected to delineate or circumscribe the inventive subject matter, resort to the claims being necessary to determine such inventive subject matter. BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 is a functional block diagram of a data access system in accordance with the present invention.
Figure 2 is a diagram of the data organization structure of a book provided by the data access system shown in Figure 1.
Figure 3 is a flow diagram of object to relational mapping to access data in accordance with the data access system shown in Figure 1.
Figure 4 illustrates a desktop window of the desktop client module shown in Figure 1.
Figure 5 illustrates a new manager dialog window provided by the data access system shown in Figure 1.
Figures 6A-6C illustrate new book dialog windows provided by the data access system shown in Figure 1.
DESCRIPTION OF THE PREFERRED EMBODIMENTS
The Figures depict a preferred embodiment of the present invention for purposes of illustration only. One skilled in the art will readily recognize from the following discussion that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles of the invention described herein.
Figure 1 is a functional block diagram of a data access system 100 in accordance with the present invention. System 100 includes a client computer 101, a server computer 102 and data sources 108 coupled via a computer network 103. Client computer 101 runs a desktop client 105 that provides access to one or more of the data sources included in data sources 108. Access is provided by a data service application 106 running on a server computer 102. Data service application 106 processes data access requests received from desktop client 105 and returns the requested data for presentation to a user from desktop client 105. Desktop client 105 advantageously runs within a browser 104, eliminating the need for customization and configuration of desktop client 105 to a particular hardware configuration or to a particular operating system type.
Client computer 101 is a personal computer, a computer workstation of other computer type suitable for running browser 104. Browser 104 is preferably a conventional Java-enabled (Java-compliant) web browser such as Netscape Navigator 3.0 or Microsoft Explorer 3.0. A Java-enabled browser is a browser adapted to run byte-code (written in the Java programming language) within the browser environment. The Java programming language is an object oriented programming language developed by Sun Microsystems and is defined in the Java Language Specification Version 1.0 by James Gosling, Bill Joy and Guy Steele (published by Addison-Wesley, August 1996) and in the Java Virtual Machine by Tim Lindholm and Frank Yellin (published by Addison-Wesley, September 1996), the contents of which are hereby incorporated by reference. In particular, browser 104 includes a Java Virtual Machine (JVM) that translates Java byte-code into object code for execution. It should be understood that although a preferred embodiment uses a Java- compliant browser, the principles of the present invention apply to uses of other browser types and uses with other types of byte-code virtual machines.
Referring still to Figure 1, data access system 100 includes desktop client 105 and an application programming interface (API) 123. Desktop client 105 is a "browserware application" that provides a user with access to one or more of the data sources coupled to server computer 102. A browserware application is program code that is stored on a server and is accessed from and run within a browser running on a client computer. Advantageously, a browserware application (i) does not require user installation on the client side, (ii) is hardware and operating system independent on the client side and (iii) allocates a reduced amount of processing to the client computer thus reducing the use of memory and processing resources on the client computer.
In a preferred embodiment, desktop client 105 is a set of Java- compatible byte-code instructions forming a Java applet that runs within a Java-compliant browser. Desktop client 105 is identified by a tag. The tag in turn is embedded in a world wide web (Web) page written in hypertext markup language (FiTML). Desktop client 105 is accessed (e.g., downloaded to the client computer and run within the browser) when the tag contained a Web page is used to activate a link from within browser 104.
When desktop client 105 is running, browser 104 manages the interaction between desktop client 105 and client computer 101 (e.g., browser 104 provides an interface between desktop client 105 and client computer 101 and its operating system). Desktop client 105 therefore runs "within" browser
104 rather than interfacing directly with the operating system associated with client computer 101. The compatibility of desktop client 105 is therefore advantageously determined by compatibility with browser 104 rather than with the type of hardware or operating system associated with client computer 101. Further, desktop client 105 need not be configured to the particular hardware associated with client computer 101. Thus, desktop client
105 is platform independent and can run the same set of instructions on a variety of computer hardware and operating systems, provided each is running a browser that includes a virtual machine that can execute the client desktop 105 byte-code. This platform and hardware independence eliminates the need for porting code to achieve multiplatform compatibility. Instead, a single version of desktop client 105 will execute on any platform having a Java virtual machine.
Server computer 102 is a computer configured to serve multiple client computers 101. For purposes of simplifying Figure 1, the detail of only a single client computer 101 is shown. Client computer 101 is coupled to server computer 102 using network 103. Network 103 is preferably an internal TCP /IP intranet although other networks uses such as the Internet or an extranet are used in accordance with the invention.
Server computer 102 runs (executes) a data service application 106. Data service application 106 provides users at various client computers 101 with access to one or more data sources included in data source set 108 Data service application 106 includes server side API 124, API proxy 125, forms module 126, view module 127, script module 128, replication module 129, security module 130, script compiler 131, data access module 132 administration ("admin") tool 133, data source interface (DSI) 107 and JDBC 110.
Administration tool 133 is a program module that provides for system configuration and for the selection of data sources within data source set 108. Further, administration tool 133 allows a user such as a system administrator) to construct, for each selected data source, an access control list (ACL) specifying which users or user groups, are offered access to the particular data source.
Server side API 124 is an application programming interface that processes information communicated to and from various desktop clients 105. API 124 interfaces with API proxy 125. API proxy 125 is a program module that implements a remote method invocation (including object serialization) mechanism. The mechanism processes method calls received from desktop client 105 for remote invocation. Remote invocation means that methods invoked at the client computer 101 side (e.g., by desktop client 105) actually invoke methods on server computer 102 (e.g., on data service application 106). By remotely executing methods rather than downloading such methods to client computer 101 for execution on client computer 101, the use of client computer resources such as memory and processing power is conserved. API proxy 125 thus advantageously reduces use of resources of client computer 101.
View module 127 is a program module that presents a user with a high level representation of data retrieved from a data source (e.g., a database 113). In one embodiment, data is presented in a row and column format where, in a design mode, the user selects which fields of a data source are displayed. Form module 126 is a program module that presents information associated with a selected row of data presented by view module 127. Selected information is shown in a customized form. Customized forms include widgets. Widgets are visual components such as buttons which, in conjunction with scripts cause the form to modify the presentation of data and perform presentation related processing.
Script 128 is processing module that reads and executes or set of custom scripts (in byte-code) that are associated with the various widgets of a form or view.
Script compiler 131 is a processing module that translates user- generated script text into byte-code.
Replication module 129 is a processing module that provides functionality for mobile access of data. Replication module 129 copies information from a database, provides for its modification and copies it back into the database without performing an over-write. Security module 130 is a processing module that manages security functions. Security module 130 encrypts data communicated between desktop client 105 and data service application 106. Security module 130 additionally manages user account and password information.
Data access module 132 is a data access layer that manages information associated with views, forms, scripts, server names, user names, passwords and the like. Data access module 132 interfaces directly with data source interface (DSI) 132. Data access module 132 translates information between from the format used by API 124 and the format used by DSI 107.
DSI 107 is a set of computer instructions that provide an interface between data service application 106 and data source set 108.
Data source set 108 include structured query language (SQL) databases 113, mail system 112, native database 121 and mass storage 134. Mail systems 112 are conventional electronic mail systems including LMAP4 systems 115, POP3 systems 116, MAPI systems 117 and VIM systems 118. Native database 121 is a database native to data access system 100. Native database 121 provides an alternative data storage source and also stores administrative data used by data service application 106. Mass storage data source 134 is a storage device for information with large memory needs such as image and video data. SQL databases 113 are structured query language (SQL) databases, each accessed through a server computer 102. The various data sources included in data source set 108 can each reside on separate computers. It should be understood that the principles of the present invention apply with data sources residing on other computer configurations including where multiple data sources reside on a single computer.
Data service application 106 additionally includes Java database connectivity module (JDBC) 110. JDBC 110 is a conventional application programming interface for querying conventional SQL database available from Sun Microsystems. JDBC 110 provides capability to query databases 113 to determine metadata including their connection status (e.g., whether a connection is established) and access, format and syntax information not specifically defined by the SQL.
Figure 2 is a diagram of the data organization structure of a book 200 in accordance with the data access system 100. Book 200 is named personal contacts and provides access to information associated with personal contacts stored in a database. Book 200 includes a database identifier 201, a table identifier array 202, a join condition 203, and a plurality of views 204. Database identifier 201 stores information identifying a particular database on a particular server computer. Database identifier 201 is used to construct an address to communicate with the database corresponding to the database identifier. Table identifier 201 is an array of table identifiers that specifies one or more tables in the database. Join condition 203 specifies a particular join function to be used to combine the tables listed by table identifier 201. Views 204 each specify a custom view of the joined data. View 204 includes a search condition 205, a selection (list) of attributes 206, and a plurality of forms 207. Search condition 205 is the equivalent of a where clause in an SQL statement. Selection of attributes is a list of attributes (fields) to be presented in the view. View 204 provides information that is used by service application 106 to construct a request for a database search result. Service application 106 processes the request, queries the selected database and returns the result set in a dynamically created object.
Figure 3 is a diagram of a dynamically created result set 300. Result set 300 includes a set of result objects 301. Result objects 301 are each person objects including a set of attributes 302 (fields) associated with data corresponding to the person. Attributes 302 includes, for example, start date, fax number, cell number, work number and home number. Each person object 301 is generated as a result of a database query constructed using a JDBC SQL call 303. The JDBC call 303 performs a table join of the person table 304 and the phone number table 305 associated with the database identified by book 300. The table join is perform using the person ID. as the sole join column. Each returned person object is presented within a view as a row. Further customization and refinement of view data is performed using forms 207. Forms 207 enable selective viewing of data within each view based on column characteristics.
In operation, data access system 100 is preferably first configured by a system administrator for access by multiple users. These multiple users are each preferably identified by user identifications (I.D.s) and by passwords. Users are preferably organized into "groups" based on characteristics tailored to a particular organization's need. For example, a company might arrange users into the following groups: engineers, sales staff, marketing, finance, test and production. The same company might additionally define a different set of user groups such as: part-time employees and full-time employees.
During configuration, a system administrator selects data sources from data source set 108 and for each selected data source, generates an access control list (ACL) identifying which users or user group are given access to the particular data source. Administration tool 133 includes the program instructions that effect such system configuration. Further description of administrative configuration is described in the Admin and DataSource ACL Manager sections of the user's manual included in this specification.
Once data access system 100 is configured as described above, then system 100 provides users with access to selected data sources from desktop clients 105. On start up, a desktop client 105 is downloaded to a client computer 101 and service application 106 performs an initialization process in accordance with the system configuration. During the initialization process, service application 106 polls (using JDBC 110 for queuing database sources) each data source in system 100 to determine whether a current connection can be established. Provided that a current connection is established, service application 106 queries each connected data source to determine access syntax and format. Service application 106 thus generates and stores metadata for retrieving data stored in the connected data sources.
After startup processing, desktop client 105 is copied from (downloaded from) server computer 102 to client computer 101 for execution. The copying and execution of desktop client 105 is initiated from within browser 104. Upon execution, desktop client 105 presents the user with a desktop window. Figure 4 illustrates a desktop window 400 in accordance with the present invention. The desktop window 400 presents a user with the option to select a set of books 402 that are available to the user. A book is representative of an information link to one of the data sources in data source set 108 and the applications used to process such data. Because desktop window 400 is provided by desktop client 105 running within browser 104, the data source set 108 is advantageously accessed without dependence on the hardware platform and operating system included in client computer 101.
Desktop window 400 provides access to the data associated with each book 402 (e.g., enables the viewing of data associated with the book). Access is controlled by disabling selected items in a dropdown menu 404 that appears when a user selects a book 402. Selecting the open command from dropdown menu 404 causes a view manager dialog window 500 as shown in Figure 5 to be presented. View manager dialog window 500 is a dialog box that displays a list of available views 501 for a corresponding book 402. Selecting a particular view 501 causes data associated with the corresponding book 402 to be displayed in accordance with the format associated with the selected view 501. Desktop window 400 also includes a status bar that presents operational and status messages along the bottom of desktop window 400.
Books are added and deleted by user or system administrators using interfaces presented from desktop client 105. To add (create) a new book, a user selects a "New" command under "Books". This selection causes a new book properties window, 600 as shown in Figure 6A to appear. The new book properties window 600 includes a services box 601 that enables a user to select the service (e.g., the server) that contains the data source that the user wants to associate with the book. After a service is selected, the desktop client 105 next presents an updated new properties window 602 as shown in Figure 6B. The updated new properties window 602 replaces services box 601 with a datasource box 603. Data source box 603 includes the name of dates sources (e.g., JDBC, MAPI, POP3, Native etc.) that are available from the selected service.
After selecting one of the presented data sources, desktop client 105 presents a set of dialog boxes that enable a user to further specify information for accessing the corresponding data source. For example, if a JDBC data source is selected, the user is presented with a dialog box such as the further updated new book properties window 605 shown in Figure 6C. Further updated window 605 includes a new box 606 titled "driver". The further updated window 605 provides a list of JDBC drives corresponding to configured JDBC drivers for selection. After selecting a driver, desktop client 105 presents either dialog boxes enabling a uses to select a database by name and a table within the selected database. If a user selects an electronic mail data source rather than a JDBC source from updated new properties window 602, desktop client 105 presents a user with a sequence of dialog boxes allowing the user to select the desired mail profile and its location.
Alternatively, books are added to a desktop window 200 by importing them from a server 102. To import a book, a users uses a set of dialog boxes to select a server computer 102 and to the select a book on that server.
The following user's manual is illustrative of and further describes system and method of the present invention:
Songa Pages: Version 1.0
Pages Desktop Client - As an implementation of browser/server computing, the Pages Desktop client is an applet that gives Java-enabled browsers a window into Sanga Pages applications.
Pages Desktop Server - The core of Sanga Pages, it allows clients to access "books of information* which represent links to aata sources and the applications reauired to leverage that data.
• Access controlled by user ID/password
• "Book" metaphor for retrieving, storing and viewing Sanga Forms and Views
• Network tools for remote access to personal customized Desktop Client through Internet and access to databases on other servers
• Administrative tools for adding users and groups, broadcasting messages, and more
Pages Form Design - Gives developers a set of GUI design components to create sophisticated front-ends for custom applications or templates for data viewing. Standard GUI controls include static text boxes, buttons, text fields, scrolling text, check boxes, radial buttons, pull down lists, and regular lists. All controls hove selectable color, fonts and scπpts. Also includes variable granularity grids for alignment, group alignment, ana resizing. Includes standard reusable scπpts.
Pages Script - This robust, BASIC-like compiled programming language enables developers to add functionality to forms and create more detailed custom applications. Together with Pages view Design and Pages Form Design this completes the package of platform-independent Java application development tools. Scripting options include declaπng variables of different types, executing common looping and conditional expressions, creating extensions into the Sanga
: Version 1.
Pages API library, displaying message boxes, performing field access ana validation, inserting, updating, deleting data database navigation (next, last, previous etc.) syntax checking and error reporting.
Pages Security - Administrators can create access control lists and use DES encryption of sessions. Developers can also use wrappers that support Northern Telecom's Entrust for inaustπal-strength security. Sanga Pages Security can encrypt all data transmitted to and from Sanga Pages clients and SQL databases, provide user-level security, field level security and support digital signatures.
Pages Mail - This supports and integrates all major protocols (including POP3/ SMTP, MAPI and IMAP4) with attachment support.
Pages Replication - Sanga Pages allows users to copy databases across platforms for efficient distributed-database applications and to update different copies of the same database.
Pages View Design Sanga provides a flexible query tool that enables users to create custom ad hoc views of data. This toot is perfect for managing large amounts of data and letting end-users fitter and present information from SQL databases right from wtthintheir browser. Operands supported inclu e <,>,<>, = and , or, like. Users can specify whteh database fields to view and adjust the order, name, and column width of those fields.
Contents
Sαngα Pages: Version 1.0 /
Introduction 1
Chapter Descriptions 1
Manual Conventions 2
Common Actions 2
Typographical Conventions 3
Mouse Techniaues 3
Starting Pages Desktop Client 5
Pages Desktop Window 6
Quick Start 7 importing Pages Book 7
View the aata in the Pages Book 8
Field Help 10
Creating a New Tab 10 enamngaTab 11
Deleting aTσb 11
Creating a New Book 12
Importing a Book 17
Save 18
///
v Conre
About 18
Working With α Book . . . . ... 18
Design Views • • • 21
Design Forms 21
Rename 21
Copy 22
Replicate .22
Delete . . . . . . . . 22 icon Stick ana Icon Unstick 23
Properties Show 23
Properties ACLs 23
Pages View Design 25
Creσtmg aview 25
EdrtingaView 26
DeletingaView 27
Pages Form Design 29
Creating Forms 29
Creating a Text Label in Form Design 30
Creating a Button 31
Creating Smgte-Lme Text 32
Creating a Scrollable Text Area 34
Creating a Checkbox 35
Creating a Radio Button 36
Creating a Dropdown List 37
Creating a ScroMablθ List 38
Editing Forms 39
Deleting a Form 39
Pages Script 41
UslngVarcbles 41
Pages Script Data Types 41
Assgrw vOues to variables 43 ;onrerτs v
Mαthemαncαl Expressions 4
Moth Operators 43
How to Use Mathematical Operators 4
Relational Operators
Program Flow Statements 46
Conaitional Statements 6
Loop Statements 8
Utility Functions 50
Screen Functions 50
Database Functions . . . 53
Strmg Functions 54
Math Functions 57
Miscellaneous Functions 58
Pages Security 59
Pages Server 61
Action 62
Starting the Server 62
Stopping the Server 62
Starting the Web Server 62
Stopping ihe Web Server 62
Exiting Pages Server 62
Admn 63
Logr 63
UserManoger 63
AddngaUser 64
AddngaGroup 65
Deleting Users or Groups from Pages Server 66
Aamirtstrattng the Properties of Users 66
AarnrTtstratln the Properties of Groups 68
Exiting the User Manager" window 68
Data Source ACL Manager 69 w Conienrs
Aαding α Data Source ACL 69
Deleting Sources from the ACL 70
Setting Up a Data Source ACL 70
Exiting the "Data Source ACL Manager* winaow 72
Options 72
Show Services 72
Current Users 73
Broaacast Massage 73
Introduction
This manual introduces you to Sanga Pages Version 1.0. It contains all the information and instructions you need to use Pages Desktop Client, Pages Server. Pages View Design, Pages Form Desiga Pages Scπpt, and Pages Security.
This manual assumes you are familiar with either Netscape Navigator 2.0 (or better), Microsoft Internet Explorer 3.0 (or better), or other equivalent web browsers capable of running Java applets.
Chapter Descriptions
The following list outlines the chapters in the manual and their contents
"Introduction", which you are currentty reading, introduces the manual and the features of Sanga Pages.
"Starting Pages Desktop Client" describes how to start and exit Pages Desktop, and reviews the components of the Pages Desktop wmdow.
"Quick Start" provides instructions on how to accomplish basic tasksm Pages Desktop.
Pages Desktop Commands* aescπbes m detail the corτvτxιrκisavaιlablθ in Pages Desktop.
"Pages iew Desgn" describes m detaH how to create ana edit a view of a Pages Book. r 2 /nrroducnon
"Pages Form Design* descπbes in aetail how to create ana eart a form usea to examine the fiekJs of a Pages Book.
"Pages Scπpt" descπbes in detail the syntax of the Pages Scπpt language
"Pages Security" explains the secuπty features available in Sanga Pages
"Pages Server" descπbes in detail the features and tools available to an aamimstra- tor of Sanga Pages.
Manual Conventions
This manual uses certain conventions, including the typographical conventions in the manual itself, keyboard conventions for using Sanga Pages and the terminology descπbing mouse techniques.
Common Actions
This manual uses the following terms to mean specific actions:
Select
Select means you inOicate an item by clicking once on the item to move the highlight to the item . For example:
• you select one option button from a group of option buttons:
• you select an item in a drop-down box;
• you select a file name in a dialog box; or
you select a check box.
Choose
Choose means you carry out an action. This means aoubie-clickiπg on an item or pressing ENTER once the item is selected. Choosing an item causes something to happen immediately. For example'
• you choose a command from a menu,
• you choose a commaπa button in a dialog box.
• you choose OK in a dialog box to activate any changes you have maae. or
• you choose CANCEL to close a dialog box without making any changes
Typographical Conventions
This manual uses various typefaces, including;
SMALL CAPS
Entries in small caps represent specific keys on the keyboard that you press.
Graphic symbols or abbreviations may label these keys.
Monospaced
Monospaced type indicates a command that you type.
Italic
Italic type means you replace the text in italics with your own text.
(square brackets)
Items in square brackets are options in commands
Bold
Menu selections, commands, ana controls in dialog boxes use bold type.
Mouse Techniques
A one or two word term identifies corτvnonly used actions. In this manual, these terms are used to avoid repeating detailed aescπptions of the action. These Terms are point means you move the mouse pointer on the screen until it rests on the commana or item you want to select click refers to the action of pressing ana releasing the mouse button auicWy The instruction to click something means you use the left button on the mouse, while πght-click means you must use the πght button double-click means you press the left mouse button twice while on the inaicσtea object drag means you press and hold the mouse button while moving the mouse
Starting Pages Desktop Client
This chapter introduces you to Pages Desktop Client. It descπbes how to start ana exit the application, ana reviews the components of the Pages Desktop winaow For the purposes of this manual. Pages Desktop Client will be referred to as Pages Desktop.
To start Pages Desktop, open your preferred Java-enabled web browser (i.e. Netscape Navigator. Microsoft Internet Explorer, et cetera) ana call up the Pages Desktop site. The Pages Logon wmdow wiH appear asking you for your user id. password, and desktop service. Enter both your user / ana osswordand select the desktop service you wish to use from the dropdown list (the default values to use the local service). Select OK to continue. If you do not wish to log on at this time then either close your web browser or open a new location to end the Logon session.
Figure imgf000029_0001
If you select OK and the use « and password are valid, the Pages Desktop window win appear in the default setting developed by you Sanga Pages administrator. o .rar ng Pcces — Λ w Cient
Pages Desktop Window
Figure imgf000030_0001
Pages Desktop uses a tabular layout common to many Winoows applications. This discussion assumes a stanaara installation with a σefault configuration.
The mam portion of the Pages Desktop is the tabbea panel usea to organize the books of a Pages user. Initialty there will be one tab without a title.
The Button Bar appeaπng Oown the left side of the window shows the initial selections available. Under Tabs". New, Rename, and Delete appear. Under "Books", the buttons called New, Import ana Arrange appear. Save ana About are the last two buttons.
The Status Bar, which gives you operational ana status messages, appears along the bottom of the Pages Desktop winOow.
Quick Start
This chapter gets you started using Pages Desktop for some basic tasks, including viewing data in f orms and entenng data mto forms. These instructions proviae you with the ability to get up ana running with Pages Desktop quickly.
All of the instructions Quick Start assume that your administrator has already set up your desktop, provided you with Pages Books you can import and you are able to Log onto to you Pages Desktop, if you are setting up your own σesktop, please refer to the chapter entitled "Pages Desktop Commands*.
Importing a Pages Book
This wiH show you how to quickly import a Pages Book to get working πght away
1. Cm the mam pages Desktop select the Import button under the "Books* heading. This will bring up the import books dialog winaow.
Figure imgf000031_0001
8 Quick Stcr
2 From the αropdown list of servers (Pages Servers) cnoose tne same one you loggea onto (unless you aaministrator has placed the aefautt books in another location) A list of the Pages Books available for import appears in the selection list
Figure imgf000032_0001
Select a book you wish to import from the list and click on the OK button The dialog window should disappear ana the selected tab in the Pages Desktop shoulO now contain the Pages Book you ιust imported.
View the data in the Pages Book
With the Pages Book you ιust imported, you should be able to use the Views and Forms to inspect the data. To view the Oata a Pages View:
1 Click on the Pages Book to brmg up its dropdown menu.
Figure imgf000032_0002
Figure imgf000033_0001
Select the Open... item. This will bπng up the View Manager aiaiog wiπaow which will aispiσy a list of available Pages Views.
Figure imgf000033_0002
Select the View you wish to use from the list ana click the Open button. This will bπng up a View winOow containing aata from the Pages Book.
Figure imgf000033_0003
To view the aata in a Pages Form:
1. Click on the Pages Book to bring up its dropaown menu
2. Select the New... item This win bring up the Form Manager Okalog winaow which will display a list of available Pages Forms.
Figure imgf000033_0004
■ uιck Start
Select the Form you wish to use from the list αnα click the Open button This will bπng up α Form winαow containing aata from an entry in tne Pages Book.
Figure imgf000034_0001
Field Help
When you place your cursor on a button in Pages Desktop, the help fieta unaer the workspace area will mOicate the function of the button. For example; if you place your cursor on the New button unaemeath "Tabs", you will see the message "Create new workspace" beneath the current workspace.
Creating a New Tab
In the Pages Desktop winOow, click on the New button unaer "Tabs". A new window will appear called "New Tab".
Figure imgf000034_0002
In the text box following Desktop Name, enter the name you want to call the tab. QUICK Src
3. Select the OK button to save the cnosen tab name or Cancel to return τo the Pages Desktop window.
4 If you select OK. a new tab will appear in the Pages Desktop winaow with the name you Uσ^e chosen.
Renaming a Tab
1 In the Pages Desktop winaow, select the tab you wish to rename bv clicking on the fob nqme. This qction will move the tab to the front of the other tabs
2. Click on the Rename button unaer Tab. A new window will appear calleO "Rename Tab".
Figure imgf000035_0001
3. In the text box following New Desktop Name, enter the new tab name.
4. Select the OK button to save the new tab name or Cancel to return to the Pages Desktop winaow.
5. If you select OK, the original tab will appear with the new name you have chosen.
Deleting a Tab
1. the Pages Desktop window, select thetab you wish to delete bycHcWng on the tab name. This action w* move the tab to the front of the other tabs.
Figure imgf000036_0001
2. Click on the Delete button unαer Tabs. A new winaow will acpear callea "Delete Confirmation'. The message the winaow e "Are you sure you want to aeiete this tab?"
Figure imgf000036_0002
3. If you select the No button, the reauest for Oeletion will be canceled ana you will return to the Pages Desktop winaow.
4. If you select the Yes button, the tab selected will be deleted, including the books within the tab.
Creating a New Book
1. In the Pages Desktop winaow, select New unaer "Books*.
2. A new window will appear entitled "New Book Properties". In the "Services' box, select the service that contains the aata source you want this Pages Book to reference. Either Ooubie-cϋck on the selected service name or select Open from the bottom of the window.
Figure imgf000036_0003
QUICK STOΓ 13
A new DOX will replace the "Services" box called "Pages Data Source" in the box are all the names of the aata souces (i.e.: JDBC. MAPI. POP3. Nσπvel available to you from the service you lustsθtectea. Select the aata source you wish to use for you Book. Then select Open.
Figure imgf000037_0001
Depending upon the type of data source you selectea, the remaining dialogs will differ as follows:
JDBC a) Another new boxwiHrepiace "Pages Data Souce'caHed "Driver". Select the JDBC driver (these will correspond to the configurea ODBC Oπvers) you wish to use for your Book ana then select Open.
Figure imgf000037_0002
*^ιCr b) A new winOow appears called "Connect information" . in tne text oox following "User ID", enter you user ia ana then select OK.
Figure imgf000038_0001
c) A new winOow appears reauesting your password. Enter your oσssword in the text box ana then select OK.
Figure imgf000038_0002
d) The next message in the "New Book Properties" window is "Database Name." Select your chosen aatabase ana then click on Open.
Figure imgf000038_0003
e) A new message appears in the New Book Properties" window asking for the "Table Name". Select the table name you wish this book to represent and then select Open.
Figure imgf000038_0004
Figure imgf000039_0001
MAPI α) Another new box will replace "Pages Data Source" called "Profile Name". Select the mail profile you wish to use for your Book ana then select Open.
Figure imgf000039_0002
POP3 a) A new winaow appears called "Connect Information*. In the text box following "Mail (POP3) Server", enter the aOOress of the server and then select OK.
Figure imgf000039_0003
b) A new window appears reauesting the location of your SMTP Server. Enter this mformation in the text box ana then select OK.
Figure imgf000039_0004
jtart
A new winαow appears reauestmg your user name. In the text oox following "User Name*, enter your user ia for the mail server ana then
Figure imgf000040_0001
d) A new winOow appears reauesting your password. Enter your password in the text box ana then select OK.
Figure imgf000040_0002
Native a) Another new box will replace "Pages Data Source" called "DataBase* Select the native aatabase you wish to use for your Book ana then select Open.
Figure imgf000040_0003
Figure imgf000041_0001
A new winαow appears called "Bool Name". Enter a name for your COOK select an icon to represent the book ana then click OK.
Figure imgf000041_0002
The new Pages Book icon labetea with the name you have chosen will appear in the current workspace in Pages Desktop.
Importing a Book
This feature allows you to import an existing Pages Book into your Desktop. The book you wish to import can exist either on your local service or any other available service in the network.
1. Select the Import button under "Books.
2. A new window appears called "Import Books". Select a server (Pages Server) from the aropaown box following the prompt.(msert import 1.bmp)
Figure imgf000041_0003
3. A Kst of aHthe Pages Books avaϋabte in that server will appear in the box unaemeath the Server prompt.
4. Select the book you wish to import to you desktop. Click OK to import the book and return to you mam desktop winaow. The importea book icon will appear in your current workspace. 18 Quick Stcr
5. Select Cancel to return to the main aesktop winaow without importing the book.
Save
If you select the Save button, you will save the format of your aesktop as well as all the books and forms you have created. It is suggested that you save vour aesktop peπodically duπng the time you use it to prevent losing the forms and views.
About
If you select the About button information about product, including the version number will be displayea in a winaow. Click on the OK button to Oismiss the winaow.
Figure imgf000042_0001
Working With a Book
To work with a Pages Book, click once on the book's icon. A arop-down menu will appear with the following choices:
Open
This option aβows you to open a previousty created Pages View of the book. 1. Select Open... from the Book's dropdown menu. 19
A new winαow appears called "View Manager" This will present a IIST cf avaiiabiθ Pages Views for the book.
Figure imgf000043_0001
To select a view either type the name in the text box following the "View Name" prompt or select a view from the list.
Click on the Open button to continue or Cancel to return to the mam Pages Desktop window.
If you selected Open a new winaow appears entitled " iew - WewfVame", where VewrVame matches the one selected in step 3. You cannot edit this view but you can use the Query tool on the aata The Query toot allows you to filter the data of the view by applying a set of selection criteria. With the tool you can filter on a single aatabase field or a combination of up to four. There are three elements to each selection criteria: a) Database Column - this is a list of all columns in the aatabase b) Comparison - the tools for comparison are equals (=), not equals (<>), less than (<), greater than (>) ana like (UKE). c) Value - this is the value to compare against.
For example one selection criterion applied to anfrnptoyee aatabase may be: Yearsof service > 5. This wou j return α view of all emptoyee records in the aatabase with a value in the YearsOfService column greater than five.
The selection cπteπα can be joinea with either AND or OR if AND joins two selection criteria then both must return true for the recora to be Oispiσyea in me view. Using OR in the filter list means that a record which matches any of the selection cπteπa will be mcluOed in the view.
Figure imgf000044_0001
6. Close the window to return to the main Pages Desktop winaow
New
This option allows you to open a previously createa Pages Form for viewing the entries m a Pages Book.
1. Select New... from the Book's Oropoown menu.
2. A new wmOow appears called "Form Manager". This will present a list of available Pages Forms tor the book.
Figure imgf000044_0002
3. To select a form either type the namein the text box following the "Form Name" prompt or select a form from the Hst.
4. Click on the Open button to continue or Cancel to return to the main Pages Desktop winaow. uUICK <: 1
5. If you selecteα Open α new winαow appears eπtmea "Pages Form" *ou cannot eOit the layout of this form but a property creσtea form snouia anow you interaction with the aata.
Figure imgf000045_0001
Design:Views...
This option allows you to create. eOit, ana Oelete views of the Pages Book
1. Select Design and then Views... from the dropdown menu. This will bπng up the "view Manager* winaow usea for working with Pages Views.
For further information on accessing the functionality of the "View Manager" window, please refer to the chapter entitled "Pages View Design".
Design.-Forms...
This option allows you to create, eait, and delete forms of the Pages Book elements.
1. Select Design ana then Forms... from the dropdown menu. This will bπng up the "Form Manager" winaow usea for working with Pages Forms.
For further information on accessing the functionality of the Pages Form Design, please see that chapter.
Rename
This option allows you to rename the Book.
1. Select Rename from the drop-down menu. ck StCTT
A new winaow entitled "Rename Book" appears. In me text box following me message New book name, type in the new name for mis book.
Figure imgf000046_0001
If you are satisfieO with your new name, click OK to return to the main menu You will see mat the new name of the book has replacea e old name unaer the icon.
If you decide not to rename the book, click the Cancel button to return to me mam arop-down menu.
Copy
This option is not part of Sanga Pages version 1.0
Replicate
This option is not part of Sanga Pages version 1.0
Delete
This option allows you to delete the selected Pages Book.
1. Select Delete from the dropdown menu.
2. A confirmation screen will appear askmg you "Are you sure you want to remove the selectea book?"
3. Select Yes to confirm the Oeletion ana the Pages Book will be removea from the Desktop.
4. Select No to cancel the oeletion of the book.
Figure imgf000047_0001
lcon:Stick and lcon:UnStick
These options allow you to share and or move Pages Books Petween me τaos of me Desktop.
1 To share a Pages Book among me tabs of your Desktop, simply select icon and men Stick from me book's aropaown menu. Now if you move among me vaπous tabs of your Desktop you will see book is visible to all of mem
2. If you want to move a Pages Book from one tab to another begin by following me same proceOure in step 1. Now move to me tab where vou wish to move me book to ana select Icon ana men Unstick from me books dropaown menu. Now me book is only visible onthat tab
Properties:Show
This option shows you all the Book's properties (i.e. data souce, driver, user name. et cetera)
1. Select Properties and then Show from the book's aropaown menu.
2. A new winaow appears called "Book Properties". This window contains for motion about the book you have opened mcluOing the name ana the Pages Data Source. C4he forrτκιtion displayed depends on the type of Pages Data Souce the book is linked to.
Figure imgf000047_0002
3. Select OK or Cancel to return to the mam Pages Desktop wmdow.
Properties :ACLs...
This option attows you to create an Access Control List (ACL) for you Pages Book Creating an ACL will ensue that only authorized users can import you book.
Quick Star
1 . Select Properties αnα then ACLs... from me Pooks aropaown menu. A new winaow appears called "Book ACL Properties" .
Figure imgf000048_0001
2. The Name of the book is aisplayea atthe top. This value cannot be changed as it must match me Pages Book name.
3. Below mis are two lists; a User List ana a Group List. The User Ust contains all local users managed by this service. The Group Ust contains the aefautt system wide groups as well as any locally defined groups.
4. Next to these lists are the Pages Permissions which are maaβ up of the following set (Control. Read. Update. Execute. Test for Existence. Delete, Create). Whenever a user or group is selected these check boxes will reflect the permission set for that user/group. To add (box contains a « or remove (box is empty) a permission srmpty cHck on the appropriate fieia and the value will be toggled.
5. Select OK or Cancel to close this window and return to the Pages Desktop
Pages View Design
Creating a View
1 Select Design and then Views... from me Book's dropσdwn menu
2 A new winaow appears called "View Manager"
3 Enter the name of the view you wish to create m the text box following the prompt for View Name.
4 Click on the Create button Two new wmOows. similar to those shown below (viewoesignl .bmpand viewtooisl .bmp), appear entitled "View Tools" ana "View
Figure imgf000049_0001
where wewr ornβB
5 In the "view Tools" winaow, select a field that you want mcluOβa m the view from the Column list
6 The Name of the field will appear in the text box following Label' rn the Properties box. You can change the label of the column the view by aeietmg ihβ σefault name for label ana then entering one of your choice
7 To deploy the selected field in the view you are creating select the Display in view check box. You wΛ nohcethat there is a new column m the "View Design" window whose title matches the label of step 6.
8. Continue to select fields for the view you are aesxjnrg by following steps 5 to 7 Each fieta that is coded when the Dtsptay In view check box sotoctod win appear the "View Design" winaow. Once you have selected art thefieias needed for you view, you may now test the view design. 25" 6 ages We ,
When ααα g fielαs to the view, me Mode menu on me "View Design" winαow should have Layout selected. To test accessing ana disotaving information in your view, select me Test option unaer me Mode menu on me "View Design" winaow. Testing me view will Orsplay me information of me columns you have selectea from me book.
Figure imgf000050_0001
10. To save the current view aesign at any time, select Save unaer the File menu to save the Oesign unaer ifs current name. Select Save As... unaer me File menu to bπng up the "Save As..." Oialog winOow which will allow you to save the aesign with a Oifferent name or overwrite an existing view aesign.
11. To exit the "View Design' window at any time, select Close Editing from me File menu on the "View Design" winaow.
Editing a View
1. Select Design and then Views... from the Book's dropdown menu.
2. A new winaow appears cdled "View Manager*.
3. Select me view mat you wish to eOit. The view name will appear in the text box fdlowing the View Name prompt.
4. Click on the Edit button. Two new windows appear entitled "view Tools* ana "View Design - vrewΛ/ame". where wewrVame is the name you selectea m step 3.
5. In the "view Tools" winaow, select the field that you wish to edit mtheview from the Cdumn list.
Figure imgf000051_0001
6. The name of me field will appear in me text box fdiowing Label in me Prooer ties box You can eOrt the label of the cdumn by aetettng me cuπeπt idbei name and men entering a new name for the cdumn
7 To change me field disDlay of me view, select or ae-seiect me Display in View check box, aepenOing on me seiectea field You will notice me field ana label changes happening concurrently m me "View Design" winaow
8 Continue to eOit the view you are aesigning by fdiowing steps 5 to 7 Once you have finisheO eOiting me columns in your view, return to me "View Design" wmaσw
9. w en editing fielOs in me view, me Mode menu on me "View Design" winaow shoulO have Layout seiectea. To test accessing ana Oisplaying information in your view, select the Test option unaer me Mode menu on me "View Design" wmacw.
10. To save the current view design at any time, select Save unaer me File menu to save the aesign unaer it's current name. Select Save As... unaer me File menu to brmg up the "Save As..." dialog wmaow which will dlow you to save me aesign with a Orff erent name or overwrite an existing view aesign
11. To exit the "View Design" winOow at any time, select Close Editing from me File menu on the "View Design" winaow.
Deleting a View
1. Select Design ana then Views... from the Book's aropaown menu.
2. A new window appears called "View Manager".
3. Select the view that you wish to delete. The view name will appear in the text box following the View Name: prompt
4. Click on the Delete button. A new wmaow will appear called "Delete Confir motion'. The message m the wirxiσw is "Are you sure you wcmt to aelete the seiectea itemr
5. If you select either the No or Cancel button, the request for oeletion will be cancelθd.
6. If you select the Yes button, the seiectea view wW be deleted. ages view . After confirming tne αeletion you will return to the "View Manager" winaow wnere you can select Cancel to close the winaow.
Pages Form Design
Creating Forms
1. Select Design and then Forms... from me Book icon's dropdown menu.
2. A new window appears called "Form Manager " .
3. Enter the name of the form you wish to create in me text box following me prompt for Form Name.
4. Click on e Create button. Two new winaows, similar to mose shown below, appear entitled "Properties" ana "Foπn Design".
Figure imgf000053_0001
-27
Figure imgf000054_0001
m me "Form Design" winαow you can create several different types of ODtecrs i inn v yoouurrf fnorrrmTv
Creating a Text Label in Form Design
1 in me "Form Design" winaow. click on me Create text label button, or select Label from me tools menu.
2. In me "Form Design" winaow again, click ana Crag to create an appropπate- sized text. The text box can be resizea at any time by selecting a resize tab on me text box ana Oragging it to the aesirea size.
3. By Oef ault the word Text will appear in the label box you have created
4. Select me General tab of the "Properties' winaow. The aef ault values of the text label will appear; me Id for me text label will be *tabel#'. Label will contain me actual text tor the label with me default of Text, ana Field will be "(none]".
5. To change the Id of the text label srrnpty enter a different ID insteaO of the default value fdiowing the "Font" label in the "Properties" winaow.
6. To change the text insidθ the label, simply replace Text in me text box following me prompt for Label in the "Properties* winOow.
Figure imgf000054_0002
7. To adjust the font size ana style of the text in the text label, click on the Font tab in the "Properties" wmaow. ;. -OT"
3. In me Font tab, select your chosen font from me aropaown list followirg me Font: prompt.
9. Enter your selected font size in the text Pox following Font Size. You aiso have the option of mak g your font in the text label box bold ana/or italic by selecting me appropπσte check boxes.
10. To adiust me color of me text and me backgrouna of me text box setect me Color tab in me "Properties" winaow.
11. To change the color of the text select me Foreground raaio button Then point ana click your cursor on me seiectea color in the color box You will notice mat me text in me "Form Design" winOow's text label will change to me seiectea cdor.
12. To change the color of the backgrouna of the text label, select me Back ground raOio button in the Cotor tab. Then pomt ana click your cursor on your chosen color in the cdor box You will notice that the backgrouna of the text label in the "Form Design" wmσdw will change to me seiectea cola.
Creating a Button
1. In the Form Design winOow, click on either the Create button tool button, or Button from me Tools dropdown menu.
2. Click ana drag to create an appropriate-sizea button in the "Form Design" window. A three-dimensional button will appear with the default label of Button.
3. In the "Properties' winOow, select the General tab. The default values of me button will appear; Id will be *button#". Label will be Button, ana me Script button will reveal itself to be empty.
4. To change the Id of the Button, simply enter in a different ID of the button rather than the default value.
5. To change the label of the button from the default setting ot Button, simply enter the new button label in the text box following me prompt for Label.
6. To add the scπpt which wHlenable the button to perform its desirea action, either select a aatabase utility routine from the Oropaow^
Script button. ^σσes Form Design
7 A new winαow αooeαrs cαlleα "Scπpt - null" Enter me scπpt coαe which enables me button to perform its aesirea action in me form Rememcer TO enter a carnage return after each line. Please refer to me chapter on Pages Scπpt for aetails on programming in Scπpt.
Figure imgf000056_0001
9 To adiust the font type ana style of the text in me Button, click on the Font tab in the "Properties" wmaow.
10. You can change the font of me button usmg the aropaown box to choose a font.
11 The font size is automatically set when you create the button. You have the options of making the burton label bold and or italic by selecting the appropriate check box.
Note:
Unlike text boxes, you cannot change the cdd of the text of the button label or the button rtself.
Creating Single-Line Text
1 In the "Form Design* window, click on either the Create single-line text tod button or Text Field from the Tods aropaown menu.
2. In the "Form Design" window agam. click and drag to create an appropπate- szea text box. rrr. *e. 33
3. Select the General tab of the "Properties" wmaow. The aetauit values of me text box will appear; la will be *textFieia#" ana Field will be "[none!".
4. To change the Id of me text box simply enter a different ID insteaa of me default value.
5. Select me fieid of me book to be displayea in me text box by encasing one from me Field aropaown list.
Figure imgf000057_0001
7. To aOjust the font size ana style of the text in the text box click on me Font tab in the "Properties" winaow.
8. In me Font tab, select your chosen font from the aropaown Hst fdiowing me Font prompt.
9. Enter your selected font size in the text box following Font Size. You also have the options of making you font in the text box bdd and/or italic by selecting the appropriate check boxes.
10. To adjust me color of the text ana the backgrouna of the text box select me Color tab in the "Properties" winaow.
11. To change the edd of the text setect the Foreground radio button. Then point ana click your cursor on the seiectea color in the color box.
12. To change the color of the background of the text label select the Back ground radio button m the Color tab. Then pdnt ana cUck you cursor on you chosen cold in the color box You will notice that the backgrouna of me text box in the "Form Design" winaow will change to the seiectea color. j- -^σ es Form _ =...
Creating a Scrollable Text Area
} . In me "Form Design" wmaow. click on either the Create scrollable text area tool button or Text Area from tne To s aropaown menu
2. In me "Form Design" winaow again, click ana arag to create an aDprooπate- sizea scrollable text area. In general these areas will be taller men me singie- line text areas so as to aisplay several lines of text at once.
3. Select me General tab of me "Properties" winaow. The aefault values of me text area will appear; Id will be "textArea#" ana Field will be "[none)"
4. To change me Id of the text area, simply enter a Oifferent ID instead of me aefault value.
5. To select a fieia from me book for the text area, choose one from the dropdown list fdiowing Field.
Figure imgf000058_0001
7. To aa just the font size ana style of the text in the text box, click on the Font tab in the "Properties" wmaow.
8. Select your chosen font from the aropaown list following the Font prompt.
9. Enter you selected font size in the text box fdiowing Font Size. You also have the option of making your font in the text box bold and d italic by selecting the appropnate check boxes.
10. To adjust me color of the text ana the backgrouna of the text box. setect the Color tab in the "Properties" window. - — es corr- _^_ r 35
1 1 To change the cdor of the text select me Foreground raaio butror τnen point ana click your cursor on me seiectea color in me color box
12. To change me color of the backgrouna of the scrollade text area select me Background raaio button in me Color tab. Then pant ana click vour cursor on your chosen color in me color box Ybu will notice mat me ackgrouna of the scrollade text area in me "Form Design" winaow will change to me seiectea cola
Creating a Checkbox
1 In me "Form Design" winOow. click on either me Create checkbox tool button a Checkbox from the Tods Oropdown menu.
2. In the "Form Design* wmOow again, click ana Orag to create an appropπate- srzeO checkbox.
3 Select the General tab of the "Properties" wmaow The aefault values of the text box will appear; Id will be *checkBox#", the Label w* be Checkbox, ana Scπpt will be empty.
4 To change the id of me checkbox simply enter a different ID instead of me aefault vdue.
5 To change the Label of the checkbox, replace me original Checkbox label ana enter one of your choice.
6. To aOd the scπpt which will enable the checkbox to perform its desired action. either select a aatabase utility routine from the aropaown list a chck on me Scnpt button.
7 A new wmaow appears called "Scπpt - null" . Enter me scπpt code which enables the checkbox to perform its OesireO action m the form. Rememc to enter a carnage return after each line. Please refer to the chapter on Pages Scπpt fa details on programming m Scnpt.
8. To adiust the font size ana style of the label of the checkbox click on the Font tab m the "Properties" winOow.
9. Setect your chosen font from the aropaown Hst following the Font prompt.
-ages Forr- —
10 Enter your seiectea font size in me text box following Font Size You also have me options of making the font of me checkbox label bdd ana or italic by selecting me appropπσte check boxes.
11 You cannot aaiust me color of me checkbox
Creating a Radio Button
1 In me "Form Design" winaow. click on either the Create radio button tool button or Radio Button from the Tods aropaown menu.
2. In me "Form Design" wmOow again, click and drag to create an appropπσte- sizea radio button including a text label.
3 Select the General tab of the "Properties* wmaow. The aefault values of me raaio button will appear; Id will be *raaioButton#", me Label will be Radio Button, me Group will be empty, ana Scπpt wHI be empty.
4 To change me Id of the radio button, simply enter a different ID insteaO of the aefault value.
5. To change the Label of the raaio button, replace the oπgmal Radio Button label ana enter one of your choice.
6. For any buttons in me same group, at most one of the buttons will be active at one time. When a button is selected, the previously selected button is ae- sβtected. If it is reauired fa several radio buttons to provide toggles where at most one of the buttons can be active at one time, raao buttons shouia be aaaed to groups. In the Group section you must define the group mis raOio button belongs to.
7. To add the scπpt which will enable the radio button to perform its desired action, either setect a database utility routine from the dropadwn list a click on the Scπpt button.
8. A new wmaow appears called "Scπpt - null". Enter the scπpt code which enables ihe radio button to perform its deswed action in the form. Remember to enter a carnage return after each Hne. Please refer to the chapter on Pages Scπpt fa details on programming in Script.
9. To adjust the font size ana style of the text in the label text box. click on the Font tab in the "Properties" wmdow. -'ages Fa „gr 37
10. Setect your cnosen font from me αroc own ust following me Font DΓOΠ-IDT
11 Enter your selected font size in the text box fdiowing Font Size You αiso have me options of making your font in tne text Pox bdO ana/a italic by selecting me appropriate cneck boxes
Note:
You cannot aOiust me color of a raOio button
Creating a Dropdown List
1 In me "Form Design" winOow, click on erther the Create dropdown list tool button a Choice from the Tods aropaown menu
2 in me "Form Design" wmaow again, click ana Crag to create an appropπate- sizea box f a aropaown list.
3 Setect the General tab of the "Properties" winaow The aefault values of me aropaown list will appear; Id will be "choice*" ana the Scπpt will be empty
4 To change the Id of the dropdown list, simply enter a different ID insteaO of the aefault value.
5 To add the scπpt which will enable me aropaown list to perform its desired action, click on the Script button.
6 A new window appears called "Script - null". Enter Ihe scπpt coae which enables the aropaown Hst to perform its aesffβa action in the form. Remem ber to enter a carnage return after each hne. Please refer to the chapter on Pages Scπpt fa details on programming m Scπpt.
7 To aOrust the font size and styte of the text m the dropdown list, click on the Font tab m the "Properties" winOow.
8. Setect your chosen font from the aropaown Hst fdiowing the Font prompt
9. Enter you selected font srze in the text box fdlowmg Font Size. You also have the options of makmg your font in the text box bold and/d italic by selecting the appropπate check boxes.
10. To adiustthe cotor of the text and the background of the text box setect the Color tab in the "Properties" winaow. ^age r. .-*σn
1 1 To change me cdor of me text, setect me Foreground raaio button Then point ana click your cursa on me seiectea cola in me color pox.
12. To change me color of me backgrouna of the text label, select me Back ground radio button in me Cola taύ. Then pant ana click your cursor on your chosen cole ~ me color box. You will notice mat me backgrouna of me aropaown list in me "Form Design" winaow will change to the seiectea color
Creating a Scrollable List
1 In me "Form Design" winOow. click on erther the Create scrollable list tool button or Ust from me Tools aropaown menu.
2. In me Form Design wmOow again, click and drag to create an appropπate- sizeO scrollable list box.
3. Select me General tab of the "Properties* winOow. The aefault values of me scrollable list will appear: Id will be *form#" and Script will be empty.
4. To change the Id of the scrdlabte list, simply enter a Oifferent ID instead of me default value.
5. To add me scπpt which will enable the scrdlabte list to perform its desired action, click on the Script button.
6. A new wmdow appears called "Script - null". Enter the scnpt code which enables the list to perform its aesirea action in the form. Remember to enter a carnage return after each Hne. Please refer to the chapter on Pages Scπpt for aetails on programming m Script.
7 To aOiust the font size ana style of the text aisptayea in me scrdlabte list box, click on the Font tab in the "Properties* winaow.
8. Setect your chosen font fa the text In the scrdlabte list from the dropOown Hst following the Font prompt.
9. Enter your seiectea font size in the text box following Font Size. You also have the options of making your font in the text box bold and a italic by selecting the appropriate check boxes.
10. To aOjust the cola of me text and the backgrouna of the scrollable list box, setect the Color tab in the "Properties* winaow. . __-. -; " Desjgr 39
1 1 To change the cdor of the text setect me Foreground raaio button Then point ana click your cursa ai me seiectea color in me color box.
12. To change me cola of the backgrouna of the scrollable list box select me Background raaio button in me Cola tab. Then pant ana click your cursor on your chosen cola in me color Pox You will notice mat me backgrouna of me scrollable list box in the "Form Design" winaow will change to me seiectea color.
Editing Forms
1. Select Design and then Forms... from me Book icon's aropaown menu
2. A new winOowwiH appear called "Form Manager'. A list of possible Pages Forms to select from ae in the list unOer me prompt for Form Name.
3. Click on me form you wish to eOit. The name of the form you have chosen will appear in the text box following Form Names.
4. Select Edit if you wish to use Pages Form Design to eOit your seiectea form.
5. Two new wmOows will appear called "Properties" ana "Form Design*. Edit me Form using the same Oirecttons as the section on "Creating a New Form"
Deleting a Form
1. Setect Design ana then Forms... from the Book's dropdown menu.
2. A new window appears catted "Form Manager*.
3. Select the form that you wish to delete. The view name will appear in me text box following the Form Name prompt.
4. CUck on the Delete button. A new winaow will appear called "Delete Confirmation*. The message m the wmaow is "Are you sue you want to delete the seiectea rtem
5. If you setect either the No a Cancel button, the request fa Oeletion will be canceled. ■>ages Forrr _ .
6. if you setect the Yes button, me selecteα foπn will ce αefeteα.
7. After confirmmg me Oeletion you wilt return to the "Form Manager" winaow where you can select Cancel to close the winaow.
Pages Script
As aescπbea previously, Pages Scπpt is a Basic-like compitea programming language which enables developers to put inteihgence behind the forms created in Sanga Pages. Not )ust for straight-forward aata access, Pages Scπpt can be usea for form routing, data tπggers. validation, process automation, ana many other advanced programming applications. Pages Scπpt will be familiar to developers who are expenencea with general scπpting languages. Furthermae, this chapter is designed fa those readers who have some experience with writing shell scπpts.
Using Variables
Vanabte - a variable is a named storage location that hdds data that changes; every variable can hdd only one kind of data.
Befae you can use a variable in Pages Script, you must request that me vaπable be created by declaπng the vaπabie first To declare a vanabte means to give me name ana aata type of the vanabte. Once you have aeclarea a vanabte, it always retains its original data type. A Pages Scπpt program has no limit on me number of variables it declares.
Pages Script Data Types integer Numeric values with no decimal pant ot fraction, integer values range from -32,768 to 32.767. jγ srrmg Dσtα that consists of 0 to 2E -ι- 38 characters of aiohanumeπc aata Alphanumeric means mat the aata can be bom aipna betic ana numeric Strmg aata values may also contains special characters such as Λ %@ dim Statements - define vσπabtes dim - short for "dimension" - is a Pages SCΠDT statement mat you write in an application's Scπpt winaow
Using dim, you tell Pages Scπpt: that you have a vaπable. what to name the vaπable, ana what kino of vaπable you want Always use a dim statement to define variables before you use vaπades
Format of me dim Statement m VarName as Dotσ7ype
VarName is α name mat you supply When Pages Scπpt executes me Oim statement at runtime, it creates a vσπade in memory ana assigns it me name you grve in me VarName location of the statement. Datatype is one of the two Pages Scπpt data types defined in the above table
For example, the fdiowing statement defines a vanabte named "ProductTotat" dim ProduCfTotol as integer
From me Oim statement, you know mat the vanabte holds integer data ana that its name is ProOuctTdal.
All Pages Scπpt commσnas ana built-in routines are case insensitive. Atthough you Oo not have to name your variables with an initial capital tetter, most Pages Scnpt programmers do fa the sake of consistency. AOdtttond caps help distinguish indMdual words mside a name (Remember that you cannot use spaces in the name of a vanabte).
Note- Never define two vaπabtes with the same name. Pages Scπpt won't know which one you are refemng to when you try to use one of mem.
Shortcut! - When you neea to Oefine severd vaπσbtes-
Instead of listing each vanabte definition on separate lines Hke mis. dim A as integer dim C as integer dim D as strmg dim E as string
You can comb e variables of me same aata type on one line. Fa example dim A C as integer dim D. E as string .roes Sc 43
Assigning Values to Variables null stπng - a zero-length empty stπng that is often representea as " "
Defining Variables
Pages Scnpt initializes with zeroes in me numeπc vaπables ana null stπngs in the stπng vaπables. Use me "assignment statement" when you want to put o er acta values into vaπables.
Format of me assignment statement- VarName = Expression
The VarName is a vaπade that you have aefinea using me aim statement Expression can be a constant another vaπable, a a mathematical expression Examde: Suppose you need to store a minimum age varue of 18 in an integer vanabte nameO MinAge The fdiowing assignment statement aoes mat MinAge = 18
Mathematical Expressions
Operator - a wad or symbol mat performs aata manipulation ana a comparison
Math Operators
Table of Primary Math Operators
Operator Example Description
Net + Disc. Adds two values Price - 4.00 Subtracts one value from another
Total * Fact Multiplies two values TaxAdjust Divides one value by another s ScriDt ow to Use Mathematical Operators
Suppose mat you wanteO to store the difference between me annual sales (staea in a vaπable nameO AnnuσlSales) ana me cost of sales (staea in a vaπaDie namea CostOfSaies) in a vaπable nameO NetSaies. Assuming mat all mree vaπables hove been aefinea ana inrtializea, me fdiowing assignment statement computes me coπect value for NetSaies
NetSaies = AnnualSales - CostOfSaies
This assignment tells Pages Scπpt to compute the value of me expression ana to store me result in me vanabte nameO NetSaies.
No matter how complex me expression is. Pages Scπpt computes me entire result befae it stores mat result in me vanabte at the left of me eauals sign, in me f iowing assignment statement, fa example, is rather lengthy, but Pages Scπpt computes me result and stores me value in a vanabte named Celsius.
These two lines convert a temperature of 30° Fahrenheit to me correct temperature in Celsius
Fahrenheit = 30
Celsius = (Fahrenheιt-32) *9/5
Combining expression often produces unintended results because Pages Scπpt computes mathematical results in a predetermined ader. Pages Scπpt men computes all multidication ana division (working from left to πght - befae any addition ana subtraction).
Fa example:
Pages Scnpt assigns 13 to Result in the following assignment-
Result = 3 + 5 * 2
It is possibte to ovemde the operat preceOerce by using parenthesis. Pages Scnpt always computes the vdues instae any pair of parentheses befae anything else in the expression, even if it means ignoring operator precedence.
Relational Operators
Reiationd Operators compae adta values to one another. They test conditions that are either true a false. And thus they only produce true and false answers. In other words, one aata value is either more than another (a true result) a the aata value is not mae than me other (a false result). Jσges 45
The Relational Operators
Operator Usage Description
Sales > Goal The greater man operator. Returns true if me value on me left siae of > is numencally or alphabetically greater man me value on me πght. Otherwise, false.
Pay < 2000.00 The less man operator. Returns true if me value on me left siae of < is numencaHy or alphabet! cally less man me πght. Other wise, false.
Age = Umit The eaual to operator (some times calteO the eaual operator) . Returns true if me values on bom sides of = are equal to each other. Otherwise, false.
>= FirstName > = "Mike" The greater man a eaual to operator. Returns true if the value on the left side of > = is numencally a atphaPeticalty greater than a equal to me value on the right. Otherwise, false.
Num < = IblAmtCaption The less than a eaual to opera tor. Returns true if the value on the teft siae of < = is numencally a dphabetically less than a eaud to the value on the right. Otherwise, false.
<> txtAns ext o "Yes" The not eaual to operator. Returns true if the value on the left siae d <> is numerically or σtpnabeticalty unequal to the value on the right. Otherwise, Jσges Sc -
To uπαerstαnd how reiσtioπαl operators work, you must unaerstana how to use tneir true or false results The If statement mtroOucea in the next section explains now you can use true ana false results to make Oecisions in your program
Keep Each Side a Consistent Data Type
The expressions on bom siOes of a relational operator must have me same aata type or at least compatible aata types In omer woras. you cannot compare a stπng to a numeπc aata type If you try, you will get a Type mismatch eπor because me aata types Oon't match
Program Flow Statements
Uke all other programmmg languages. Pages Scπpt supports bom conditional statements ana loops to aetermme the program flow. Pnor to discussing me flow control structures we should mention Blocks. Blocks consist of one a more Pages Scπpt statements The block of statements founO in a contrd structure are bounaea by me start of me structure ana the "enOing" statement. For example, an if statement comdetes with an ena if statement, a a ao while loop enas with a loop statement The Pages Scπpt language supports nesting of these program flow structures.
Conditional Statements
The if... then... else Statement
The if statement uses relational operators to test Ocrfa values It performs one of two posside code actions, depending on the result of the test. With if statements. Pages Scnpt tests whether to execute blocks of code. The if statement makes Oecisions If a relational test is true, the body of the rt statement executes.
One format of if if rekjttonaflest then Block end f ^αoe. _' 47
The end if statement informs Pages Scnpt where me Doσy or me if staTemen' enas Fa example, f state = "New York" ;.-.er. TaxRσte = 0775 ena -f
_ f state = "Massachusetts" t.-er. TaxRate = 06 end i f
The Pody of the if executes only if me relational test is true Otherwise me rest of me program continues as usual
A Shortcut Foim of if calleO the Single-ϋne Format if relationalTest then PSStatement
This format Ooes not reσuire an end if statement because me relational test and body of the if are all in one line
Handling False Conditions
The else statement executes cede based on the relational test's false condition The else statement is part of an extended if statement mat specifies the coae mat executes if the relational test is false.
Format of if Statement with else i f reterhonalTest then
Block else
Block end if
Faexampte if (BankBalcmce < 0) then
MessageBox (OverOrawn") else
MessageBox ("In Credit") end if
If the condition (BankBdance < 0) is true, then Overdrawn is aisptayed: if rt is not. then In Credit ts displayed ages
Loop Statements
Loops are usea when me same set of steps have to be camea out many nmes
The do while... loop
The do while statement performs flow control based on a relational expressions just as me if statement aoes The relational expression controls me looping statements rather man a single block of cede Many lines of your program will still execute sequentially, but a loop will cause blocks of coae to repeat zero, one or many times
Format of the do while... loop:
Do while (reiσttonσl text) Block
Loop
The block of cede continues looping as long as the relational test is true. You can put as many lines of cede in me block as long as the block itself somehow changes a vanabte used in the relational test. The block of code will keep repeating as long as the Oo while loop's relationσl test continues to stay true. Eventually, the relationd test must become fatse - otherwise you w* encounter an mfmrte loop
An example of me use of the do white... loop: answer =""
Do while answer <> "N" && answer <> *Y* Answer = toUpper(lnputBox("Do you want to Oetete this recaO?")) loop
The for... loop
The for loop is sometimes called the "Fa-Next" loop. UnHke the do loops, me for loop repeats for a specified number of times. A fa loop always begins with me fa Statement and ends with the next statement
Format d the fa... loop: or CoυnterVar « SfarrVd/ to EnaVbl [step incrementσlVal]
Block next CounterVal aOCt C- 49
The loop in me fdiowing example comp es me total ot me numoers from l to 1 C
Sum = 0 for Number = 1 to 10
Sum = Sum -"- Number r.ext Number
The Exit For Statement
Sometimes, you'll be processing user input or several data values using looping statements, ana an exception occurs in me aata mat reauires ana immeaiate termination of the loop. For example, you may Pe collecting sales values for a company's 10 sales Orvisions insiOe a For loop that iterates ten times. However, the user can enter zero fa a division's sales value, indicating mat mere is no sales data fd that arvtston. Rather than complete the loop, your program might need to aurt the loop at mat pdht because the full aivisiond report information can't be gatherea at me time.
Tne exit tor statement automatically terminates me loop. No matter how many iterations are teft in me fa loop, when Pages Scπpt encounters an exit fa statement. Pages Scπpt immedσtely aurts the loop ana sends execution down to me statement fdiowing the loop.
Typically, an if statement triggers one of the exit statements like this: for Divisions = 1 to 10
Block II Code to get a sates value if (sates = 0) then exit for // Quit the loop early end if
Block next Divisions
The if ensures that the exit fa executes only under one specific condition ( a missing sates value). Without mat specific conaihon triggeπng the exit fa. me loop cycles namaHy. Theexrtf ccristiuctcan on be usea from with a fa loop ana is σ way of leaving the loop immedately.
50 Pages Scrrc
Utility Functions
There are about 70 utility functions mat are built into Sanga Scnpt These aovtae useful shortcuts ana functionality to me Scπpt user
To use these functions you must type the name in exactly as shown below although me functions are case insensitive These functions can be broken up into apout 5 different groups Database, Screen, Mam. Stπng, Other
Screen Functions
The Screen functions manipulate the aifferent things you see on me screen
MessageBoxfmsg) returns v d. where msg is the message you wish to Oisplay.
This function puts a box up on me screen with me contents of msg mstOe. The scπpt will men WAIT FOR A MOUSE CLICK before proceeOing. The argument msg may be a stπng or a number
ConfιrmMessageBox(msg) returns an integer. where msg is the message you wish to Oisptay
This function puts a box up on me screen with me contents of msg insiae. AOOi- tionally, there will be two buttons with YES ana NO inside Ihe box The user must click on one fa me scπpt to proceeO. The function will return a 1 if the user clicks on YES and 0 if me user clicked on NO.
ScreenFieldffld) returns Strmg where fid is the legitimate ID of an object on the screen.
This function returns the contents of the fkJ object If the fid otxect is a hst or a choice, rt will return the chosen element. If there is no answer, the function will return an empty string.
Figure imgf000075_0001
setScreenFieiα(fkα newvαlue) returns vαO wnere fid is me tegrtimαte ID of an object on me screen. where newvalue is what vdue you wish fid to take on.
This function sets me contents of me ftcJ object to me contents of me newvalue vaπade. To set me list or choice odects, you must use setListElement.
hideFteld(fid), showFteia(fia) bom return voiO where fid is me legitimate ID of an object on me screen.
These affect me reauestea object on the screen. The hiaeField function makes the requestea object inviside ana aisabtea. The user cannot see nor act on me screen odect. The showFtekj function makes the object visible ana enabiea.
disabteFtek-ffla). enablef ield(πd) bom return void where fid is me legitimate ID of an object on the screen.
These affect me reauested object on the screen. The disadeFielO function makes the reauestea object gray ana dead. The user cannot act upon me screen object. The enabteFtek function redraws the object ana makes it work again.
ftetdlsSθtffld). fieidlsRθSθtffld) both rerun int where fid is me legitimate ID of an object on the screen.
These are only to be used on checkboxes ana radio buttons. These two screen element types can be in 1 of 2 states. Either they are ON a OFF. If me reauestea screen object is ON, then me function returns 1 , if me reauestea screen object is OFF, then the function returns 0.
setFieid(f)d), resetFieid(fld). tcggteFteld(fld) dl return void where fid is the legitimate ID d an object on the screen.
These are only to be used on checkboxes ana radio buttons. These two screen etement types can be in 1 of 2 states. Either they are on a off. The setFteia turns the requested object ON. The lesetFieid turns the requested object OFF. The toggteFteld object changes the state from ON to OFF a OFF to ON as the case requires. An object mat is part d a group may not be turned off. You must turn ON a different object in that group.
Figure imgf000076_0001
cieαrustffiα) returns vαO where fid is the legitimate ID of an oPiect on the screen
This function is only to be usea on a chace a list screen obiect This fuπctior takes all the elements or selections off of me aesirea object
addϋstEntry(fld. entry) removeϋstEntryffld. entry) returns void where fid is me legitimate ID of an object on the screen where entry is the Stπng representation of me etement to be affected
These functions are only to be used on a chace or list screen obiect The aaaUstEntry function puts me Stnng vanabte entry onto me ena of me choice or list object This new entry may now be chosen by me user The removeϋstEntry takes me specifiea entry off the list.
setMur pteSelecticns(fld),resetMuttipteSelectK3ns(M return vad where fid is the legitimate ID of an object on the screen
These functions shoulO only be usea on a list screen object. A list screen obiect may be usea to make multide selections off the list. You must first tell the list object to work in mis manner. A list screen object will only allow one selection by aefault. Calling me setMultipteSetection function with the fid agument as the screen ID will make the list screen object dtow multiple selections. Calling the resetMultipteSetection function with the fid argument as the screen ID will make the list screen object not allow multiple selections.
getNumberSetectedffld) returns mt where fid is the legitimate ID of an object on the screen.
This function shouia o ly be usea on a list screen object This function will return the number of entries me user has seiectea. This number may be anywhere from 0 to the total number of entnes on me Hst
getSetectιon(fld. setectionNumber) returns mt where fid is me legitimate ID of an object on the screen, where setectionNumber teHs which selection you wish returned
Thrs furiction should only be usea on a list screen object. Once you know the number of selections the user has chosen via the getNumberSetectea caU. mis function can be usea to get each individud selection, if there are more man one entries seiectea, men you must make muttipte cdts to this function. =cσe∑ Sccr 53
Database functions
DataBaseFιeia(fia) returns Stπng where fid is me legitimate ID of a fieia in me aatabase
This function returns the contents of me field in me current recac of the aataoase If there s no such field a no current record, then the function wirerum en erroty string
setDσtaBaseFieia(f1d, newvdlue) returns vad where fid is me legitimate ID of an obiect on the screen where newvalue is what value you wish fid to take on.
This function sets me contents of me fiekJ in the cuπent recora of me aatabase to me contents of the newvalue vanabte. If mere is no such field men me function will do nothing.
updated returns vaO
This function copies me contents of the screen to the aatabase to be saved.
deleter,) returns void
This function will remove the cunent recad from me database.
addnew() returns void
This function will get a blank recaa ready to be aadea to the database. You must fdlow mis call with a call to upOate if you wish to permanently aOO mis function to the aatabase.
movenextO returns void
This function changes the current recad of the aatabase by moving the recorO after the current record. All screen fields wiH automatically be changed to reflect this.
°ages Ser moveorevfj renjins void
This function changes the current recaO of the aatabase by moving me recora befae the current record All screen fietOs will automatically be cnangea to reflect this.
movefirst() returns void
This function changes me cuπent record of the database by moving me record to me very first recora All screen fields will automatically be cnangea to reflect mis
movelast() returns vad
This function changes me current recora of the aatabase by moving me record to me very end record. All screen fields will automatically be cnangea to reflect mis
moveto(recNumber) returns vaO where recNumber is the number of the new recora you wish to go to
This function changes the cunent record of the database by moving me recaO to the OesireO position in the database which is specified by the recNumber vanabte. All screen fietOs will automatically be changeO to reflect mis.
getcurrecnumO returns mt
This function returns a number which represents your position m the aatabase. This number will always be positive unless you are in me miast of aaoing a new recad to me database.
String Functions
strten(str) returns mt
This function returns a count of the number of characters in the vanabte str.
aOC-- πght(str, count) returns Stπng
This function returns α new stπng which is lOenticαl to me count rightmost characters of me vaπable sir.
leftfstr, count) returns Stπng
This function returns a new stπng which is lOenfical to me count leftmost characters of me vaπade sir.
mιastr(str, start count) returns Stπng
This function returns a new stπng which is iOentical to me count characters starting at the start character of me vaπable str.
concat(stτl , str2) returns String
This function returns a new stπng which is iaentical to wrth str2 aaded on to me end of strl .
ntos(number) returns Strmg
This function returns a new stπng which is the representation of number in stπng form.
ston(str) returns Integer
This function returns a number which is the eauivalent of the stπng representation.
strcmp(strl , str2) returns Integer
This function returns a number which is computeO by compaπng the string in str 1 wrth the string in str2. If strl is the same as str2. the function returns a 0. If strl is dphabetically earlier than str2, then the function returns a - 1. Otherwise, the function returns a 1.
αges _ . smcmpistr, count) returns Stnng
This function is me same as strcmp aPove, wrth the exception mat an uppercase letter is consiaerea to be eaual to me same lowercase letter
touppertstr), tdower(stτ) return Stnng
This function returns a new stπng which is createa by taking me argument ana converting any lowercase characters to uppercase. Or uppercase to lower for me tolower function.
tnm(str) returns Stπng
This function returns a new stπng which is createa by taking me argument ana removing any leaOing a trailing spaces.
charAt(str, position) returns Stπng
This function returns an Integer representing the character at a specrftea position in the strmg.
ιnθexofchr(str, character) returns Integer
This function computes ana returns me position in me stπng of the character argument. If the character is NOT in the stnng, men the function returns - 1
inaexofstrfstrl , searchStrmg) returns Integer
This function computes ana returns the position in the stπng of the secono stπng argument. If me search stnng is NOT in the strmg, then the function returns - 1
riextindexofchrfstr, character, startPosrndn) returns Integer
This function is lOentical to the indexof chr function wrth the exception that the searching does not start wrth the first character but instead wHI start searching at a position the third argument
3σσes Scrcr 57 nextιnαexofstr(slr, character) returns integer
This function is lOentical to me inaexofstr function wrth me exception mat me searching aces not start wrth me first character but insteaa will start searching at c position in me thira argument.
Math Functions
abs(number) returns Floating Pant Number
This function computes me absdute value of me argument. That is. it makes me number positive if it is not alreaay so, ana then returns it.
ceil(number) returns Integer Number
This function computes onO returns me smallest whde number mat is larger man me argument.
floa(number) returns Integer
This function computes ana returns the largest whole number mat is smaller man the argument.
tog(number) returns Floating P nt Number
This function computes ana returns the natural log of the argument.
sarttnumcer) returns Floating Pewit Number
This function computes ana returns the saυare root of the argument
powfnumber, power) returns Floating Point Number
This function computes ana returns the result of the first number raised to the power of the seconO number.
Pages Scnot max(numperl . numoer2) returns Floating Rant Numoer
This function computes αnα returns the larger of the two arguments
mιn(numberl . number2) returns Floating Pant Number
This function computes ana returns me smaller of the two arguments
Miscellaneous Functions
copytoscreen(vaθ) return v O
This function copies all aatabase fields into their coπesponOing fields on me screen
copytobook(vad) return void
This function copies all screen fields mto their corresponOing f letas in me aatabase
getadte(voιd) return Stnng
This function computes me current aate ana returns it as a stπng The Oate is in MM/DD YY format.
gettιme(voιa) return Stnng
This function computes the current local time ana returns rt as a stnng. The time is in 24 hour HH MM:SS format.
Pages Security
All Client and Service sessions are encrypteO using DES (Data Encryption Stan- OarO) encryption. The Pages Server aaministrator is also able to contra which users and/a groups have access to the aata sources ana what kino of access me user/ group will have. For further information on aaministrating an ACL (Access Control List) of me aata source, please refer to the chapter on Pages Server.
"37 °ages Securrtv
Pages Server
To start me Pages Server:
1 Open System CommanO Shell (DOS shell in wιn95, c-shell in UNIX, et cetera)
2. Change to me installation directory of Sanga Pages.
3. Invoke me "Start Server* shell scπpt by enteπng the following:
Star PagesServer
4. A new window will appear caϋed "Pages Server hostname/IP aaaress" This window's menu Par has three options; Action, Admin, and Options. The onlyother features of this winaow is a list where system messages generated andreceivea by mis service are Oisdcryed. Once you have starteO Pages Server, the message "The Server is running...* should be highlighted to indi cote mat it is me most recent system message.
Figure imgf000085_0001
sτ 62 °σσes Server
Action
Starting the Server
1. in me "Pages Server" winaow, select Start from me Action aropaown menu.
2. A message will appear in me System Messages list: "The Server is running..."
Stopping the Server
1. In me "Pages Server" winOow, select Stop from me Action aropaown menu.
2. A message will appear in the System Messages list: "The Server is stopped" .
Starting the Web Server
1. Select Start e Web Server from the Action Oropdown menu.
2. A message will appeain me System Messages Hst: "The Web Server is running...'
Stopping the Web Server
1. Select Stop the Web Server from the Action dropdown menu.
2. A message will appea in me System Messages list: "The Web Server is stoppea."
Exiting Pages Server
1. Select Exit from me Action aropaown menu to shut Oown ana exit from Pages Server.
2. Close the Command Prompt winaow after Pages Server is stopped.
Figure imgf000087_0001
Admin
Login
Login is me only option available in me Admin drooaown menu when vou first start Pages Server Once you have loggea in properly, e omer options will become active
1) Select Login from me Admin aropaown menu
2) The "Pages Root Login" winaow appears on me screen Enter me Pages Rooτ passwora at me text prompt
Figure imgf000087_0002
3) Once you have entereO the passwaO (it will appear in asterisk form), select OK to continue logging into the service a Cancel to return to the "Pages Server* winOow without logging m.
4) if you seiectea OK and me passwora was validated, you will return to me "Pages Service" winOow. Login shouia now have a checkmark in front of rt to inOicate mat you have toggeO on successfully. The other options of me "Pages Server* menuPar will now be available. If there was a dobtem wrth me login (an invalid passwad perhaps), then an error message will be dis dayea in me System Messages hst ana you will be prompteO to try again
User Manager
User Manager acts as an aaministraπve tod fa managing users and groups on the service.
1) Setect User Manager from the Admin dropOown menu.
σσes Server
21 A new winαow appears called "User Manager" All me users on me service are listea by me Username. Full Name, ana me Login status All me groups o rre service are also listeO.
Figure imgf000088_0001
3) The User aropdown menu has five options: Add User..., Add Group.... Delete, Properties, ana Exit. Instructions fa using each of these options to follow.
Adding a User
1) Select Add User... from me User dropdown menu in me "User Manager" wmaow.
2) A new winaow appears called ΑOd User Dialog".
Figure imgf000088_0002
3) To aad another Pages user, enter the user name in the text box fdbwing me prompt fa User Name. It must be at least three characters in length ana should not contain any spaces. °σαes Se've' 65
4) Enter me real name of me user in me text box following me pror-pτ for Real Name
5) Enter me password for me user in the text box following me prompt for Password
6) Select which Groups you want mis user to belong to The user must oeiorg to at least one group
7) You can also set the aate when you want me passwora to expire by enrenng in me number of bays in me box proviaed The numoer must be between 0 and 90
8) Select OK if you want to save me information you have entereO about me user You will return to me "User Manager" winaow where me new user should now appear in me User list.
9) Select Cancel to return to me "User Manager" winaow without saving me entereO information
Adding a Group
1) Select Add Group... from the User Oropdown menu in me "User Manager" winaow.
2) A new winOow appears called Αda Local Group" .
Figure imgf000089_0001
3) Enter the new group name in the text box following the prompt fa Group Name. aoes Server
4) Now you can aaa to or remove Local Users from me Group Memoers ust
5) Select OK to save me information vou have enterea about me group You will return to me "User Manager" winaow wnere me new group snouta now appear in me Group List.
6) Select Cancel to return to me "User Manager" winaow wrfnout saving me enterea information.
Deleting Users or Groups from Pages Server
1 ) In me "User Manager" window, select the User or Group mat you want to delete from me appropπate list.
2) Select Delete from the User OropOown menu.
3) A "Remove Alert! !" winOow appears to tell you that your action will remove me seiectea User/Group.
Figure imgf000090_0001
4) Setect OK to comptete the Oeletion of the User or Group. You will return he "User Manager" wmOow ana you should notice that the User/Group rs no longer in me appropriate Hst
5) Select Cancel to abort the removal of me User/Group from Pages Servers. You will return to the "User Manager* wmaow.
Administrating the Properties of Users
1) Select me User you wish to work on from the Users Hst
2) Setect Properties from the User aropaown menu.
2oσes ≤ ve 67
3) A new winαow appears entrnea "User Properties" as illustratea ceiow
Figure imgf000091_0001
4) As you can see in me Oiagram, User Name cannot be changed However. you can change the real name of me user by enteπng rt in me text box following me prompt fa Real Name.
5) To change the password for the user, enter the new passwaa in the text box fdiowing me Password prompt. The passwaa will, of course, appear in asterisk foπn.
6) To change the expiration Oate fa the passwaa simply enter in me new aσte in the text boxes doviaea. The aate must be between me cuπent bate and December 31 , 1999 (99/12 31 ).
7] To add a remove the user from User's Groups or System Groups, use the tools at the bottom of the winOow. Clicking on a group in me list of User's Groups ana then selecting Remove- > will remove me selected group from mat list ana place it in the System Groups list. Clicking on a group in me list d System Groups ana then selecting Add-> will remove the selected group from mat list ana place rt in the User's Groups list Remember mat a user must belong to at least one group so me User's Groups list cannot be empty.
8) Select OK to save you changes. You will return to the "User Manager" wriadw.
9) Select Cancel to return to me "User Manager" winOow without saving any changes.
Dages Server
Administrating the Properties of Groups
1 ) In me "User Manager" winaow select the Group whose Properties you wisn TO
Figure imgf000092_0001
2) Select Properties from me User aropaown menu
3) A new winaow appears entitled "Local Group Properties" (as ιllustraτea oeiowi
Figure imgf000092_0002
4) As you can see in me Oiagram, mis winOow allows you to aaa ana remove Local Users to me Group where they become Group Members Clicking on a group in me list of Groups Members ana then selecting Remove- > will remove the seiectea group from mat list and place rt in the Local Users list Clicking on a group in me list of Local Users ana then selecting Add-> will remove the selected group from mat list ana place rt in the Groups Members list
5) Select OK to save the changes mat you have maOe ana to return to me "User Manager" wmaow
6) Select Cancel to return to the "User Manager* winaow without saving any changes you have maOe
Exiting the "User Manager" window
Select Exit from me User OropOown menu to close the "User Manager" wmaow ana return to the "Pages Service" winaow
°cxιes Se-ve' 69
Data Source ACL Manager
The Data Source ACL Manager proviaes a way to attach an Access Control LIST (ACL) to me aata sources proviaea bv the service These lists ore usea to ensure me security of me aata sources ana to proviae access only to authoπzea users To use me Data Source ACL Manager, select Data Source ACL Manager from me Admin aropaown menu. The "Data Source ACL Manager" wmaow appears aispiaying a list of conf igurea aata sources ana vaπous actions mat can oe performed (Add, Delete, Setup, and OK).
Figure imgf000093_0001
Data Source List: This is a list of Oata sources for which an ACL has previously ceen configureO. Selecting an item in mis list will allow you to erther Delete or Setup me aata source ACL Bom of these options are aescπbea below.
Adding a Data Source ACL
1. Select the Add button m the "Data Source ACL Manager" w aow.
2. A new window appears called "Aad Data Source ACL". This window Oisplays a list of all the data sources provided by the service.
Figure imgf000093_0002
3. Select the data souce for which you want to aad an ACL ana click OK, or
4. Setect Cancel to return to the "Data Souce ACL Manager* winOow wrthout creating a new ACL. Pages Server
5. if vou seiectea OK in step 3, men me "Data Source ACL Setup" winaow will appear so you can start configuπng a new ACL for me aata source. Please refer to the section on Setting Up a Data Source ACL for information on mis winaow.
Deleting Data Sources from the ACL
l Select me aata source from me list dispiayea in me "Data Source ACL Manager" winaow.
2. Click on me Delete button.
3. A "Remove Alert! !" winaow will appear to warning you mat you are about to remove me aata source ACL.
Figure imgf000094_0001
4. Click OK to continue wrth me Oeletion ana to return to me "Data Source ACL Manager' winaow where you will notice the data source is no longer present in me list.
5. Click Cancel to stop the detetion process. You will return to the "Data Source ACL Manager" window.
Setting Up a Data Source ACL
The configuration of a data source ACL is managed by the "Data Source ACL Setup" winaow. This winaow can be entered by either:
A) Adding a new data source and then setting the initial configuration (described in the previous section). In mis case the blank ACL will be established wrth no permissions set. =cges Ser r
B) Select α ασtα source from me list in tne "Data Source ACL Manager ' winaov. ana clicking on me Setup outton. When enteπng mis way me ACls previous values will be toaaed.
Figure imgf000095_0001
The above illustration displays me Data Source ACL Setup winaow which contains me following areas:
1. The Name of the Data Source is displayed at me top. This value cannot be cnangea as it must match the actual aata source value.
2. Below mis are two lists, a Users list ana a Groups list. The Users list contains all local users managed by this service. The Groups list contains me aefault system wide groups as well as any locally Oefinea groups.
3. Next to these lists are the Pages Permissions which are maOe up of me fdiowing set:
• Control - fa the creator of the Oata source,
• Read - allows read-onty access to me data source.
• Update - allows the user/group to upOσte any changes maOe to me aata source,
• Execute • allow the user/group to execute a file outside of Sanga Pages,
• Test for Existence - determines whether or not the user has access to see aata source,
• Delete - allows me User/Group access to delete a data source, ana
• Create • allow the User/Group access to create a data source.
72 aages Server
Λ/henever α user or group is seiectea tnese cneck boxes will reflect me permission set for mat user/group. To aaa (box contains a ✓ ) a remove (box is empty) a permission simply click on the appropπate field ana me value will be toggiea.
4. Select OK to save me ACL ana return to me "Data Source ACL Manager" winaow. if mis was a new aata source ACL being created men me aata source should now appear in me list of aata sources.
5. Select Cancel to ignore all changes to me aata source ACL ana return to me "Data Source ACL Manager" winaow. if mis was a previously existing aata source ACL men me oπginal ACL will still be intact. If mis was a new ACL men all enterea aata will be lost ana no ACL will be created for me aata source
Exiting the "Data Source ACL Manager" window.
Selecting me OK button will close the "Data Source ACL Manager" w aow ana return you to me main "Pages Service" winaow.
Options
The mird option available in me "Pages Server" window is Options which has mree additional tods for the Pages Server administrator.
Show Services
In me "Pages Server" winOow, setect Show Services from the Options OropOown menu.
A new winaow appears called "Available Services". A list of all me Pages Servers available on your intranet is displayed.
Figure imgf000096_0001
3oαe∑ Se' e' 73
Click OK to return to the "Pages Server" winaow.
Current Users
1) In me "Pages Server" winaow, select Current Users from the Options aropaown menu.
2) A new wmaow appears called "Current Users" A list of all me users currently loggea on me server are aisdσyea.
Figure imgf000097_0001
3) Click OK to return to the 'Pages Server" winaow.
Broadcast Message
The Broadcast Message tod Is useful fa informing omer users on the Server about any changes happening on the Service (i.e. "My server will be stopped in five minutes") a perhaps any social events happening in the company (i.e. "Big party at the FireStation Friaay night at 8 p.m.").
1) in the Pages Server window, setect Broadcast Message from the Options dropdown menu.
2) A new wmdow appears caHea "BroaacastMessage".(insert options3.bmp)
Figure imgf000097_0002
74 Pages Server
3) Enter the message you wish to send in the text box following the Message prompt.
4) Click OK to send the message and to return to the "Pages Services" winaow, or
5) Click Cancel to exit the window without sending a message. You will return to the "Pages Services window"
The foregoing discussion discloses and describes merely exemplary methods and embodiments of the present invention. As will be understood by those familiar with the art, the invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. Accordingly, the disclosure of the present invention is intended to be illustrative, but not limiting, of the scope of the invention, which is set forth in the following claims.

Claims

CLAIMSWhat is claimed is:
1. A system for accessing data stored in a plurality of storage mediums and in a plurality of storage formats, comprising: a client module having browserware application properties and providing a desktop having a plurality of books each associated with data stored in a storage medium; and a server module operatively coupled to the client module, the server module including computer instructions for performing the method comprising: storing information associating the book with metadata for retrieving the data associated with the book; receiving an access request identifying a data source from the client module; retrieving metadata corresponding to the data source; retrieving data corresponding to the metadata; and sending the retrieved data to the client module.
2. The system of claim 1 wherein the client module runs in a browser environment.
3. The system of claim 1 wherein the client module is a platform independent module.
4. The system of claim 1 further comprising a scripting module having a byte- code generator disposed to generate byte-code from a form layout.
5. The system of claim 1 wherein the storage medium arranges data in a row and column format and wherein the book comprises: a data source identifier; a plurality of attributes each identifying a column; a join condition; and view information.
6. The system of claim 5 further comprising a result object for returning the result of a data source query generated from the data source identifier, the plurality of table identifiers and the join condition.
7. The system of claim 6 wherein the result object is presented in accordance with the view information.
8. The system of claim 5 wherein the view information includes a selection of data attributes and a search condition.
9. The system of claim 5 wherein the view information further includes a plurality of forms.
10. A computer implemented method for accessing data stored in a plurality of storage mediums and in a plurality of storage formats, comprising: providing a client module having browserware application properties and having a desktop having a book identifying data stored in a storage medium; providing a server module storing information associating the books with metadata for retrieving the data identified by the book; receiving at the server module a data access request from the client module; retrieving metadata responsive to the access request; and retrieving data stored in accordance with the metadata; sending the retrieved data from the server module to the client module.
11. The method of claim 10 wherein the client module runs in a browser environment.
12. The method of claim 10 wherein the client module is a platform independent module.
13. The method of claim 10 further comprising: providing a form layout interface having user customizable data display attributes; processing the customized form to generate byte-code disposed to display retrieved data in accordance with the customized form.
14. The method of claim 10 further comprising: providing a user interface for identifying a data source; determining the physical storage information associated with the identified data source; generating metadata from the determined physical storage information; and storing the metadata.
15. The method of claim 14 wherein the identified data source identifies data stored in first and second tables in a database and includes a table join condition.
16. The method of claim 14 wherein the identified data source is an electronic mail system.
PCT/US1998/013794 1997-07-01 1998-07-01 Platform-independent universal data access system and method in a client-server environment WO1999001802A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU83809/98A AU8380998A (en) 1997-07-01 1998-07-01 Platform-independent universal data access system and method in a client-server environment

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US88618697A 1997-07-01 1997-07-01
US08/886,186 1997-07-01

Publications (3)

Publication Number Publication Date
WO1999001802A2 true WO1999001802A2 (en) 1999-01-14
WO1999001802A3 WO1999001802A3 (en) 1999-04-22
WO1999001802A9 WO1999001802A9 (en) 1999-05-20

Family

ID=25388562

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1998/013794 WO1999001802A2 (en) 1997-07-01 1998-07-01 Platform-independent universal data access system and method in a client-server environment

Country Status (2)

Country Link
AU (1) AU8380998A (en)
WO (1) WO1999001802A2 (en)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001055945A2 (en) * 2000-01-31 2001-08-02 E-Steel Corporation System and method for uploading product data to a commodity exchange server
EP1179789A2 (en) * 2000-08-11 2002-02-13 International Business Machines Corporation Method and system for accessing information on a network
WO2002065278A2 (en) * 2001-02-12 2002-08-22 Lto Limited A presentation server which enables a client device to run a network based application
EP1567928A2 (en) * 2002-09-03 2005-08-31 X1 Technologies LLC Apparatus and methods for locating data
EP1672526A2 (en) * 2004-12-20 2006-06-21 Microsoft Corporation File formats, methods, and computer program products for representing documents
US7673235B2 (en) 2004-09-30 2010-03-02 Microsoft Corporation Method and apparatus for utilizing an object model to manage document parts for use in an electronic document
US7752632B2 (en) 2004-12-21 2010-07-06 Microsoft Corporation Method and system for exposing nested data in a computer-generated document in a transparent manner
US7770180B2 (en) 2004-12-21 2010-08-03 Microsoft Corporation Exposing embedded data in a computer-generated document
US7810106B2 (en) 2005-06-23 2010-10-05 Microsoft Corporation Uniform access to entities in registered data store services
US8365254B2 (en) 2005-06-23 2013-01-29 Microsoft Corporation Unified authorization for heterogeneous applications
US8856093B2 (en) 2002-09-03 2014-10-07 William Gross Methods and systems for search indexing
US9659058B2 (en) 2013-03-22 2017-05-23 X1 Discovery, Inc. Methods and systems for federation of results from search indexing
US20170289289A1 (en) * 2000-10-20 2017-10-05 Jonathan Wu Real-time information feed
US9880983B2 (en) 2013-06-04 2018-01-30 X1 Discovery, Inc. Methods and systems for uniquely identifying digital content for eDiscovery
US10346550B1 (en) 2014-08-28 2019-07-09 X1 Discovery, Inc. Methods and systems for searching and indexing virtual environments

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544322A (en) * 1994-05-09 1996-08-06 International Business Machines Corporation System and method for policy-based inter-realm authentication within a distributed processing system
US5630066A (en) * 1994-12-20 1997-05-13 Sun Microsystems, Inc. System and method for locating object view and platform independent object
US5740430A (en) * 1995-11-06 1998-04-14 C/Net, Inc. Method and apparatus for server-independent caching of dynamically-generated customized pages
US5754857A (en) * 1995-12-08 1998-05-19 Sun Microsystems, Inc. Distributed asynchronous workflow on the net
US5757925A (en) * 1996-07-23 1998-05-26 Faybishenko; Yaroslav Secure platform independent cross-platform remote execution computer system and method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544322A (en) * 1994-05-09 1996-08-06 International Business Machines Corporation System and method for policy-based inter-realm authentication within a distributed processing system
US5630066A (en) * 1994-12-20 1997-05-13 Sun Microsystems, Inc. System and method for locating object view and platform independent object
US5740430A (en) * 1995-11-06 1998-04-14 C/Net, Inc. Method and apparatus for server-independent caching of dynamically-generated customized pages
US5754857A (en) * 1995-12-08 1998-05-19 Sun Microsystems, Inc. Distributed asynchronous workflow on the net
US5757925A (en) * 1996-07-23 1998-05-26 Faybishenko; Yaroslav Secure platform independent cross-platform remote execution computer system and method

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001055945A3 (en) * 2000-01-31 2003-01-03 Steel Corp E System and method for uploading product data to a commodity exchange server
WO2001055945A2 (en) * 2000-01-31 2001-08-02 E-Steel Corporation System and method for uploading product data to a commodity exchange server
US7529750B2 (en) 2000-08-11 2009-05-05 International Business Machines Corporation Accessing information on a network
EP1179789A2 (en) * 2000-08-11 2002-02-13 International Business Machines Corporation Method and system for accessing information on a network
EP1179789A3 (en) * 2000-08-11 2005-11-23 International Business Machines Corporation Method and system for accessing information on a network
US20170289289A1 (en) * 2000-10-20 2017-10-05 Jonathan Wu Real-time information feed
US10142431B2 (en) * 2000-10-20 2018-11-27 Jonathan Wu Real-time information feed
WO2002065278A2 (en) * 2001-02-12 2002-08-22 Lto Limited A presentation server which enables a client device to run a network based application
WO2002065278A3 (en) * 2001-02-12 2004-01-08 Lto Ltd A presentation server which enables a client device to run a network based application
US7424510B2 (en) 2002-09-03 2008-09-09 X1 Technologies, Inc. Methods and systems for Web-based incremental searches
US8856093B2 (en) 2002-09-03 2014-10-07 William Gross Methods and systems for search indexing
US7496559B2 (en) 2002-09-03 2009-02-24 X1 Technologies, Inc. Apparatus and methods for locating data
EP1567928A4 (en) * 2002-09-03 2008-04-30 X1 Technologies Llc Apparatus and methods for locating data
US10552490B2 (en) 2002-09-03 2020-02-04 Future Search Holdings, Inc. Methods and systems for search indexing
US8019741B2 (en) 2002-09-03 2011-09-13 X1 Technologies, Inc. Apparatus and methods for locating data
EP1567928A2 (en) * 2002-09-03 2005-08-31 X1 Technologies LLC Apparatus and methods for locating data
US8498977B2 (en) 2002-09-03 2013-07-30 William Gross Methods and systems for search indexing
US7673235B2 (en) 2004-09-30 2010-03-02 Microsoft Corporation Method and apparatus for utilizing an object model to manage document parts for use in an electronic document
EP1672526A3 (en) * 2004-12-20 2008-01-16 Microsoft Corporation File formats, methods, and computer program products for representing documents
EP1672526A2 (en) * 2004-12-20 2006-06-21 Microsoft Corporation File formats, methods, and computer program products for representing documents
US7752632B2 (en) 2004-12-21 2010-07-06 Microsoft Corporation Method and system for exposing nested data in a computer-generated document in a transparent manner
US7770180B2 (en) 2004-12-21 2010-08-03 Microsoft Corporation Exposing embedded data in a computer-generated document
US8365254B2 (en) 2005-06-23 2013-01-29 Microsoft Corporation Unified authorization for heterogeneous applications
US7810106B2 (en) 2005-06-23 2010-10-05 Microsoft Corporation Uniform access to entities in registered data store services
US9659058B2 (en) 2013-03-22 2017-05-23 X1 Discovery, Inc. Methods and systems for federation of results from search indexing
US9880983B2 (en) 2013-06-04 2018-01-30 X1 Discovery, Inc. Methods and systems for uniquely identifying digital content for eDiscovery
US10346550B1 (en) 2014-08-28 2019-07-09 X1 Discovery, Inc. Methods and systems for searching and indexing virtual environments
US11238022B1 (en) 2014-08-28 2022-02-01 X1 Discovery, Inc. Methods and systems for searching and indexing virtual environments

Also Published As

Publication number Publication date
AU8380998A (en) 1999-01-25
WO1999001802A3 (en) 1999-04-22
WO1999001802A9 (en) 1999-05-20

Similar Documents

Publication Publication Date Title
US7379977B2 (en) System and method for display of multiple electronic pages
US6513158B1 (en) Method and apparatus for running multiple java applications simultaneously
US7299422B2 (en) System and method for transferring personalization information among computer systems
JP5305581B2 (en) Method, portal, and computer program for exchanging portlet configuration data
AU768423B2 (en) Method and system for database-driven, scalable web page development, deployment-download, and execution
US10474477B2 (en) Collaborative and non-collaborative workspace application container with application persistence
US6996780B2 (en) Method and system for creating a place type to be used as a template for other places
AU2014202725B2 (en) Methods and apparatus for translating forms to native mobile applications
WO1999001802A2 (en) Platform-independent universal data access system and method in a client-server environment
US20150074541A1 (en) Desktop and mobile device integration
US20130346872A1 (en) Input method editor application platform
US20090259514A1 (en) Idea page system and method
US20060010422A1 (en) Common user interface development toolkit for a system administration program
US20020149618A1 (en) Method and system for creating a theme of a place to be used as a template for other places
US5729745A (en) Methods and apparatus for creating a base class for manipulating external data connections in a computer generated document
WO1998047068A2 (en) Method and apparatus for binding user interface objects to application objects
US20100257474A1 (en) Method enabling a computer apparatus run by an operating system to execute software modules
WO2007056656A2 (en) Methods and apparatus for processing business objects, electronic forms, and workflows
US11036354B2 (en) Integrating desktop and mobile devices
US20060271854A1 (en) Computer application with integrated information management
US20070100848A1 (en) Node index
WO2001029643A1 (en) Method and system for encapsulating an application program
Andrienko et al. Thematic mapping in the Internet: exploring Census data with Descartes
EP0520922A2 (en) Method and apparatus for accessing location information
KR100428869B1 (en) The Site Management System Using A Intuitive User Interface And A On-line Service Marketing System Using The System

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GE GH GM GW HR HU ID IL IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG US UZ VN YU ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW SD SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN ML MR NE SN TD TG

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
AK Designated states

Kind code of ref document: A3

Designated state(s): AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GE GH GM GW HR HU ID IL IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG US UZ VN YU ZW

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): GH GM KE LS MW SD SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
AK Designated states

Kind code of ref document: C2

Designated state(s): AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GE GH GM GW HR HU ID IL IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG US UZ VN YU ZW

AL Designated countries for regional patents

Kind code of ref document: C2

Designated state(s): GH GM KE LS MW SD SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN ML MR NE SN TD TG

COP Corrected version of pamphlet

Free format text: PAGES 1/6-6/6, DRAWINGS, REPLACED BY NEW PAGES 1/6-6/6

NENP Non-entry into the national phase

Ref country code: KR

NENP Non-entry into the national phase

Ref country code: JP

Ref document number: 1999507380

Format of ref document f/p: F

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

NENP Non-entry into the national phase

Ref country code: CA

122 Ep: pct application non-entry in european phase