US20050172018A1 - Integrated customer interface system for communications network management - Google Patents

Integrated customer interface system for communications network management

Info

Publication number
US20050172018A1
US20050172018A1 US10/835,326 US83532604A US2005172018A1 US 20050172018 A1 US20050172018 A1 US 20050172018A1 US 83532604 A US83532604 A US 83532604A US 2005172018 A1 US2005172018 A1 US 2005172018A1
Authority
US
United States
Prior art keywords
client
customer
java
web
browser
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
US10/835,326
Other versions
US7447736B2 (en
Inventor
Carol Devine
Richard Shoulberg
Gerald Shifrin
Robert Pfister
Douglas Fenley
Charles Suscheck
P. Delano
W. Kennington
Andre Brandt
Sajan Pillai
Edward Schwarz
Arieh Shamash
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Verizon Patent and Licensing Inc
Original Assignee
MCI LLC
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 MCI LLC filed Critical MCI LLC
Priority to US10/835,326 priority Critical patent/US7447736B2/en
Publication of US20050172018A1 publication Critical patent/US20050172018A1/en
Application granted granted Critical
Publication of US7447736B2 publication Critical patent/US7447736B2/en
Assigned to MCI, LLC reassignment MCI, LLC MERGER (SEE DOCUMENT FOR DETAILS). Assignors: MCI, INC.
Assigned to VERIZON BUSINESS GLOBAL LLC reassignment VERIZON BUSINESS GLOBAL LLC CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: MCI, LLC
Assigned to MCI, INC. reassignment MCI, INC. MERGER (SEE DOCUMENT FOR DETAILS). Assignors: WORLDCOM, INC.
Assigned to VERIZON PATENT AND LICENSING INC. reassignment VERIZON PATENT AND LICENSING INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MCI COMMUNICATIONS CORPORATION
Assigned to VERIZON PATENT AND LICENSING INC. reassignment VERIZON PATENT AND LICENSING INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: VERIZON BUSINESS GLOBAL LLC
Assigned to VERIZON PATENT AND LICENSING INC. reassignment VERIZON PATENT AND LICENSING INC. CORRECTIVE ASSIGNMENT TO REMOVE THE PATENT NUMBER 5,835,907 PREVIOUSLY RECORDED ON REEL 032725 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Assignors: MCI COMMUNICATIONS CORPORATION
Assigned to VERIZON PATENT AND LICENSING INC. reassignment VERIZON PATENT AND LICENSING INC. CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 032734 FRAME: 0502. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Assignors: VERIZON BUSINESS GLOBAL LLC
Adjusted expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0769Readable error formats, e.g. cross-platform generic formats, human understandable formats
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0781Error filtering or prioritizing based on a policy defined by the user or on a policy defined by a hardware/software module, e.g. according to a severity level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0784Routing of error reports, e.g. with a specific transmission path or data flow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/972Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/14Charging, metering or billing arrangements for data wireline or wireless communications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/14Charging, metering or billing arrangements for data wireline or wireless communications
    • H04L12/1428Invoice generation, e.g. customization, lay-out, database processing, algorithms for calculating the bill or formatting invoices as WWW pages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • H04L41/024Standardisation; Integration using relational databases for representation of network management data, e.g. managing via structured query language [SQL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/18Delegation of network management function, e.g. customer network management [CNM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/06Generation of reports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0811Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0209Architectural arrangements, e.g. perimeter networks or demilitarized zones
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0236Filtering by address, protocol, port number or service, e.g. IP-address or URL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0464Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload using hop-by-hop encryption, i.e. wherein an intermediate entity decrypts the information and re-encrypts it before forwarding it
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1038Load balancing arrangements to avoid a single path through a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/53Network services using third party service providers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/75Indicating network or usage conditions on the user display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/41Billing record details, i.e. parameters, identifiers, structure of call data record [CDR]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/43Billing software details
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/44Augmented, consolidated or itemized billing statement or bill presentation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/49Connection to several service providers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/51Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP for resellers, retailers or service providers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/58Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP based on statistics of usage or network monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/70Administration or customization aspects; Counter-checking correct charges
    • H04M15/745Customizing according to wishes of subscriber, e.g. friends or family
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/80Rating or billing plans; Tariff determination aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/80Rating or billing plans; Tariff determination aspects
    • H04M15/8044Least cost routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/83Notification aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/83Notification aspects
    • H04M15/835Time or frequency of notifications, e.g. Advice of Charge [AoC]
    • H04M15/8351Time or frequency of notifications, e.g. Advice of Charge [AoC] before establishing a communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/83Notification aspects
    • H04M15/84Types of notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information
    • G06F11/327Alarm or error message display
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information
    • G06F11/328Computer systems status display
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/875Monitoring of systems including the internet
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2137Time limited access, e.g. to a computer or data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/142Network analysis or design using statistical or mathematical methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/22Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/28Restricting access to network management systems or functions, e.g. using authorisation function to access network configuration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • H04L43/045Processing captured monitoring data, e.g. for logfile generation for graphical visualisation of monitoring data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/06Generation of reports
    • H04L43/062Generation of reports related to network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2215/00Metering arrangements; Time controlling arrangements; Time indicating arrangements
    • H04M2215/01Details of billing arrangements
    • H04M2215/0104Augmented, consolidated or itemised billing statement, e.g. additional billing information, bill presentation, layout, format, e-mail, fax, printout, itemised bill per service or per account, cumulative billing, consolidated billing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2215/00Metering arrangements; Time controlling arrangements; Time indicating arrangements
    • H04M2215/01Details of billing arrangements
    • H04M2215/0108Customization according to wishes of subscriber, e.g. customer preferences, friends and family, selecting services or billing options, Personal Communication Systems [PCS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2215/00Metering arrangements; Time controlling arrangements; Time indicating arrangements
    • H04M2215/01Details of billing arrangements
    • H04M2215/0152General billing plans, rate plans, e.g. charge rates, numbering plans, rate centers, customer accounts
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2215/00Metering arrangements; Time controlling arrangements; Time indicating arrangements
    • H04M2215/01Details of billing arrangements
    • H04M2215/0164Billing record, e.g. Call Data Record [CDR], Toll Ticket[TT], Automatic Message Accounting [AMA], Call Line Identifier [CLI], details, i.e. parameters, identifiers, structure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2215/00Metering arrangements; Time controlling arrangements; Time indicating arrangements
    • H04M2215/01Details of billing arrangements
    • H04M2215/0168On line or real-time flexible customization or negotiation according to wishes of subscriber
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2215/00Metering arrangements; Time controlling arrangements; Time indicating arrangements
    • H04M2215/01Details of billing arrangements
    • H04M2215/0176Billing arrangements using internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2215/00Metering arrangements; Time controlling arrangements; Time indicating arrangements
    • H04M2215/01Details of billing arrangements
    • H04M2215/018On-line real-time billing, able to see billing information while in communication, e.g. via the internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2215/00Metering arrangements; Time controlling arrangements; Time indicating arrangements
    • H04M2215/01Details of billing arrangements
    • H04M2215/0188Network monitoring; statistics on usage on called/calling number
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2215/00Metering arrangements; Time controlling arrangements; Time indicating arrangements
    • H04M2215/42Least cost routing, i.e. provision for selecting the lowest cost tariff
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2215/00Metering arrangements; Time controlling arrangements; Time indicating arrangements
    • H04M2215/46Connection to several service providers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2215/00Metering arrangements; Time controlling arrangements; Time indicating arrangements
    • H04M2215/54Resellers-retail or service providers billing, e.g. agreements with telephone service operator, activation, charging/recharging of accounts
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2215/00Metering arrangements; Time controlling arrangements; Time indicating arrangements
    • H04M2215/74Rating aspects, e.g. rating parameters or tariff determination apects
    • H04M2215/745Least cost routing, e.g. Automatic or manual, call by call or by preselection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2215/00Metering arrangements; Time controlling arrangements; Time indicating arrangements
    • H04M2215/81Notifying aspects, e.g. notifications or displays to the user
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2215/00Metering arrangements; Time controlling arrangements; Time indicating arrangements
    • H04M2215/81Notifying aspects, e.g. notifications or displays to the user
    • H04M2215/8104Time or frequency of notification
    • H04M2215/8108Time or frequency of notification before establishing a communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2215/00Metering arrangements; Time controlling arrangements; Time indicating arrangements
    • H04M2215/81Notifying aspects, e.g. notifications or displays to the user
    • H04M2215/8129Type of notification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2215/00Metering arrangements; Time controlling arrangements; Time indicating arrangements
    • H04M2215/82Advice-of-Charge [AOC], i.e. notify subscriber of charges/cumulative charge; meter at the substation

Definitions

  • the invention relates to data management and communications, and particularly to providing access to secure data and communication management tools for an enterprise to a plurality of customers over the Internet which is an insecure communications network.
  • the enterprise described is a telecommunications network, and the tools include management and reporting tools to enable the customers of the telecommunication network to manage and obtain reports and data pertaining to their business on the network.
  • This Application Style Guide details the elements comprising today's user interface standards, and explains how they may be best used to create highly usable application interfaces that offer consistent operation across multiple software application suites.
  • Browsers have been developed using the standard interface elements of current GUI environments, but have specialized the ways in which those elements are combined to navigate and view hypertext documents. Browsers provide an environment that tightly and seamlessly integrates multiple unrelated applications and have eliminated many key aspects of the standard GUI desktop metaphor.
  • FEATURE DESKTOP BROWSER Containers Windows Documents Layout Overlapping Windows, Tiled Frames, Flat Layered Navigation Menus, Window Activation, Links, Images, Icons Forward/Backward Buttons, Bookmarks, History Interaction Pop-up Dialogs Forms
  • Web-based applications may be partitioned into four general classes as shown in FIG. 1.
  • Quadrant Application Type Description 1 Marketing Website Provides read-only documents to the public. Informs users about a topic such as a business or specific subject area.
  • Internal Provides read only documents to Collaboration employees. Supports information sharing across an enterprise.
  • 3 Business Support Traditional MIS transaction Systems processing systems built using web technologies. 4 Electronic Extranet applications providing Commerce established customers, business partners, or the general public with secure access to internal processing systems.
  • the web application spaces also differ with respect to network bandwidth constraints as summarized in FIG. 2.
  • Web browsers have been designed for hypertext document navigation and viewing, an application requiring relatively infrequent user interaction.
  • hypertext applications the user retrieves a page, views it for some period of time, and then requests another page some time later.
  • the batched input model works extremely well.
  • Transaction processing and data manipulation systems must support nearly continuous interaction with the user.
  • the batched input model is very slow and inefficient, especially over low bandwidth connections.
  • web-based transaction processing systems require elements of both the desktop- and browser-interface paradigms.
  • GUI toolkits share a common vocabulary of user interface elements.
  • the following table lists the most common ones. (A complete treatment of this subject may be found in any of the several user interface style guides listed in the References section of this document.)
  • ELEMENT DESCRIPTION PURPOSE/USAGE Window Movable, resizable Organize application elements into frame containing screen regions.
  • Dialog A pop-up window Elicit input from the user including field providing form-style entry, confirmation of some action, or for form style input acknowledgment of an alert
  • Push Button Graphical push Used for initiating an action or response button that can be depressed using the keyboard or mouse
  • Radio Button A graphical button Used for selecting from mutually whose selection exclusive alternatives.
  • buttons belonging to the same radio button group Checkbox Box that may be Used for selecting or deselecting one or checked or several options from a group. Should not unchecked be used to initiate an action (Use a push button actions).
  • Scrollbar A graphical slider Used for windows contents horizontally that can be set to or vertically positions along its length.
  • Menu bar A list of options Used to initiate actions presented in a horizontal list Pull down A list of options that Used to present menu “sub-options” Menu are presented in response to a Menu Bar selection List Box Scrollable item list Used for browsing and selecting items Text Read-only text Label input fields or provide other types of read-only text information Text Field Input field accepting Used to accept textual input from user keyboard input Multi-line Input field accepting Used for accepting free form text input Text Field multi-line input such as comments Pop-up Menu An item list that Allows users to select a field entry from pops up over or a list of allowable values drops down beneath an entry field Icon Graphical Provide small, movable representations representation of an of objects object (such as a program or document) Toolbar Row or column of Provide a button-menu of commonly graphic buttons used commands
  • Web browsers created a specialized user interface standard for hypertext navigation. Although no truly new interface elements were introduced by the web browsing paradigm, the navigation paradigm has proven applicable to a wider range of tasks than simple traversal of hyper-linked documents.
  • ELEMENT DESCRIPTION PURPOSE/USAGE Link Specially formatted Initiates retrieval and text display of related page Image Map A “click-able” Pictures can be used as image links
  • Navigation Bar A list of items Navigation menus for a site arranged together in a row or column on a page Forward-Back Buttons included Initiates retrieval of pre- Buttons in the browser's viously displayed pages toolbar according to their original retrieval sequence Frames Tiled Windows Creating separate navigation regions on the display Bookmarks List of pages User maintained list of frequently visited pages History List of pages System maintained list of previously visited pages URL
  • the network Allows users to initiate address name of page retrievals by name a page
  • Websites are typically organized in hierarchies, rooted at the site's “home page.” Site layout is quite similar to the organization of documents or outlines where chapter overviews or headings introduce or summarize sub-sections and document detail.
  • Navigation bars are similarly formatted and located in the same relative position on each page, (e.g., on the top, on the left, or on the bottom), providing the user with a consistent set of links to major sections of the site.
  • Keywords appearing within text should be included as links to detailed information about the keyword. This allows for natural, ad hoc document browsing.
  • Explicit link references e.g., For more information about our professional services click here, is generally discouraged in favor of implicit references, e.g., We provide a variety of professional services.
  • the browser interface has been optimized for user interaction with hypertext documents. As such, it centers about the retrieval and viewing of pages. Simple form input fits well within the browser framework, since forms are little more than pages with input fields, similar to the fill-in-the-blank, paper forms of the physical world.
  • Sophisticated data manipulation applications however do not fit cleanly within the hypertext document model. User interaction cannot always be shoehorned into the page-submission-retrieval model. Data manipulation typically works not at the page-level, but at the much more finely-grained record-level, and complex data manipulation applications do not typically lend themselves readily to the linear navigation models of document browsing. Key browser navigation devices such as forward-back buttons have no place in the context of non-linear, event-handling applications providing ready access to a multitude of operations and data views.
  • Modal interfaces are those that force a user to explicitly switch between single-operation modes.
  • a customer record maintenance system could be designed so that a user must first select an action to be performed such as “add”, “change”, or “delete”. After entering, for instance, “change mode”, the user would specify a customer key, update the desired fields, and then commit the change operation. If the user then wanted to add a new customer record, he would exit “change mode” and enter “add mode”.
  • Modeless interfaces provide access to all operations at all times.
  • the user would instead work within a multi-function environment in which all functions are readily available.
  • a customer record could, for example, be added and immediately changed without having to switch from “add mode” to “change mode”.
  • Modal interfaces are implemented through action-object interfaces.
  • Modeless interfaces are implemented through object-action interfaces.
  • a user first selects some object, and then selects from a set of available actions applicable to the selected object-type.
  • modern word processing programs implement copy and paste via an object-action mechanism: The user selects some text (the object); copies it to the clipboard (the action), selects the insertion point (the object); and pastes text from the clipboard (the action).
  • Early word processors implemented copy with a cumbersome, modal operation. Selecting the copy command would place the user into “copy mode” which would prompt “Copy what?” and “To where?”. In other words, copy was implemented as an action-object operation where the user first selected the operation, copy, and then the object, the source text.
  • Object-action is seen as a far more intuitive analog of real-world object manipulation.
  • you grab a piece of paper the object.
  • You cut the paper the action.
  • You then fold the paper another action on the previously selected object).
  • action-object version of paper cutting you pick up a pair of scissors (enter “cut mode”) and then go looking for paper that needs cutting.
  • Drag-and-drop is a graphical implementation of the object-action interface paradigm. An object is selected, and dragging it to another object invokes an action. Drag-and-drop user interfaces are often referred to as object-oriented interfaces since the act of dropping one object on another effectively invokes a method on the receiving object, with the dropped object supplied as an argument to the method.
  • Pop-up message boxes provide a mechanism for calling the user's attention to some condition, while maintaining the context of the underlying window of operation.
  • Full screen messages effectively “pull the rug out” from under a user, wrenching his attention away from the task at hand, which can be confusing and disruptive to the workflow.
  • Nesting is implemented through mechanisms such as pop-up child windows or cascading menus. Each successive level takes the user to some deeper level of detail. It is generally recommended to design nested interfaces to a maximum of two levels from the top, since users tend to “get lost” at deeper levels, losing track of the navigational flow.
  • Interfaces are made forgiving through support for undo, confirm, and revert operations. Undo reverses the previous operation.
  • Confirm is a request for a user to confirm some action (usually an irreversible one) before its execution.
  • Revert is an operation that discards all changes made since the last save operation (checkpoint).
  • Results of actions should be indicated through a consistent status reporting mechanism such as a log window or status line.
  • a consistent status reporting mechanism such as a log window or status line.
  • selected objects should be indicated through visual highlights. It is especially important to indicate long-running operations through mechanisms such as changing the cursor to an hourglass. Progress of exceptionally long-running operations should be communicated through mechanisms such as progress meters.
  • Application suites can reports or lists thereby be cataloged, indexed and accessed within overview and help documentation, allowing new users to easily locate applications performing a needed function within the background context of the application domain.
  • Summary and detail reports lend themselves naturally to formatting, display, and navigation as hypertext.
  • Forward- Browsing textual Summary and detail reports lend Back reports or lists themselves naturally to formatting, Buttons display, and navigation as hypertext.
  • Frames Providing regions Applications can direct output to the for displaying browser for display hypertext out- put from applications Bookmarks Launching Bookmarks provide user-defined applications shortcuts for initiating applications History Launching System maintained list of shortcuts to applications recently executed applications URL Launching Launching applications by name applications
  • the browser replaces the conventional desktop with a “webtop”, primarily providing application location and launch services, and displaying application-generated textual information such as reports and help. Most other application operations are handled through conventional GUI interface mechanisms, possibly including overlapping windows not contained within the display area of the browser itself.
  • APPLICATION LOCATION USAGE COMMENTS within a Simple, single It may be appropriate Document Page view applications to embed an application within a document page for applications that provide a single, view or editing interface. In separate Complex, multi- Users can benefit great- windows view applications ly from the ability to view and manipulate several data objects simultaneously, and concurrently use the browser without affecting the application's visibility.
  • Interfaces should be designed to provide full underlying product functionality through features of the lowest or perhaps the most common denominator. Interface mechanisms built on non-standard platform functions should be optional product components, and optimally should appear automatically on platforms on which they are supported.
  • Database-type viewing operations are extremely common and so should also be standardized. Specifically, standard mechanisms should be developed to handle:
  • window management schemes provide for different window management schemes.
  • the host windowing environment provides window management functions such as tile and cascade as a means of organizing open windows. These different schemes should be considered when developing systems that will target multiple environments.
  • ENVIRONMENT SCHEME DESCRIPTION MS Windows Multiple Document A top level window contains Interface (MDI) and clips its children Motif “Peers” Each child window comprising an application is rendered as a separate overlapping window on the desktop
  • Geometry refers to the method used to determine the size of a window and relative position of its components.
  • Modern GUI toolkits provide “layout managers” that dynamically position components according to the available screen size. Dynamic layout management should be used as much as possible. It is also important to consider the smallest display resolution necessary to display an application.
  • Internationalization or globalization, is the act of creating a program that can support any written language. On the surface, this sounds straightforward, simply translate the text. In practice, however, it is much more complicated. Languages are complex when you consider that some languages are alphabetic, some are syllabic, and others are ideographic. And the language is just the tip of the iceberg. Internationalization needs to address a wide range of issues, including currency, date, time, and number formatting, and so forth.
  • Character rendering the display of characters on a screen, is a fundamental issue in internationalization, sometimes abbreviated as I18N because it starts with an “I,” is followed by 18 characters and ends with an “N.”
  • I18N In order to translate an application's text into another language, it must be possible to display the characters associated with that language. For example, to display Japanese characters on the screen, a font must be available that includes Japanese characters.
  • the operating system makes fonts available. Whether the operating system is DOS, Windows, OS/2, or Motif is not important at the conceptual level. What is important is that the character exists and can be displayed. In the U.S. and most European countries this is not a problem.
  • the flip side of rendering is the input method.
  • An input method is the means whereby an application user, or localizer, types characters.
  • Each input method requires a different approach.
  • Asian versions of Windows for example, use the mouse, or a keystroke combination, to toggle different input method modes, while composing characters in the actual field being edited. The visual effect is unexpected to a programmer not exposed to the method.
  • DOS/V to support an Asian language
  • the “Alt” key is used to access an input method on the last line on the screen.
  • the “last line” input method is used to compose characters which are then transferred into the current field using “Enter.”
  • supporting multiple input methods within a single set of source code can be difficult and expensive, and isn't generally practical.
  • Unicode support is vital to completely globalize an application. Without a unified character standard, moving data files from one platform to another is difficult. A good example of this difficulty might be moving files for Windows-J Shift-JIS format, to Unix which uses the EUC format.
  • Unicode is a single table of 2 ⁇ circumflex over ( ) ⁇ 16 (or 65,536) members containing the fundamental characters of written languages worldwide. The advantages to this architecture are numerous enough to warrant detailed attention. It is enough here to note that Unicode support is vital to completely globalize an application. Unicode allows a single source code strategy and general operating system independence, which cannot be addressed adequately in any other implementation.
  • the Unicode standard provides a comprehensive character set and sets rules for its use.
  • the character set contains definitions for more than 30,000 characters.
  • the character set is organized as a table of 16-bit values and thus is capable of representing 65,536 characters.
  • the characters represented in the Unicode character set include alphabetic, syllabic, and ideographic characters as well as many mathematical and scientific symbols and dingbats, etc.
  • Unicode takes internationalization to a higher level by providing a standard character set from which a program can obtain character definitions for any of thousands of characters.
  • the Unicode character set contains character definitions for most written characters in most languages, and expansion room for more.
  • the Unicode character set also provides information on how characters should be arranged such as the placement of characters in some languages, such as Thai, that depend on the context of surrounding characters.
  • Internationalization is a two step process: enabling and localization.
  • the programmer adds support for multiple languages and locales at the code level.
  • the localization phase the application get translated, preferably without recompiling the source code.
  • Internationalization is a two step process: enabling and localization.
  • the programmer adds support for multiple languages and locales at the code level.
  • the localization phase the application get translated, preferably without recompiling the source code.
  • GUI Toolkit Reusable view, menu and command objects. Standard third-party GUI classes.
  • This section is intended to outline the most common approach to creating applications that are completely based on HTML and the Web. Typically, these applications are relatively simple, and are intended for information distribution, rather than extensive data manipulation.
  • Web pages can be categorized by purpose. Being responsible to a specific purpose can dictate certain design choices.
  • HTML browsers can be used with some facility to create form-based user interfaces (FUIs! that allow people to choose products to buy, configure computers or search for information, to name only a few uses.
  • Web pages that present these kinds of user interfaces must be easily understood with a minimum of study and documentation. Well done, they can be easily scanned and the expected actions inferred from the layout and controls. Pages tend to be short, uncluttered, and easily navigable.
  • this can a bookstore interface that allows people to search an inventory list and place orders on-line.
  • Information presentation on the web has many guises. If the pages are selling something, then the pages need to present things very succinctly, especially if they are to “hook” a person who may be a reluctant reader. Everything in the pages that require a person to search, navigate or otherwise use their browser's controls will reduce the chances of getting them to read to the end of the pages, and hence the sales pitch. Lots of detail and presenting many branches (which may work well for other types of web information) can confuse and frustrate your audience. This graphical product presentation is easy to scan, and allows easy recognition and evaluation of potential products. (It's also a product line well-suited to this presentation, being hard goods that photograph well, rather than less visually differentiated goods, or worse, services.)
  • the Web site author can assume that many of the site readers will arrive at the site because they need and want the information being presented. In that case, the author can use longer pages, present more detail, and worry less about “channel-switching” behavior on the part of the audience. There's a tension between the amount of “packaging” that is done to the content and the audience's desire to get the information they need as efficiently as possible. What might be a good format for a product advertisement could fail dismally when presenting product documentation because of the frustration incurred when people are forced to navigate and visualize a web of short segments, and are given tantalizing but incomplete glimpses of the answers they need.
  • HotWired's presentation http://www.hotwired.com
  • a popular online magazine approach uses longer pages, and narrower columns. This results in a very readable table-based layout that starts to resemble more familiar, paper-based page design.
  • the Web site author should clearly understand the consequences of designing, implementing, and testing the Web site using only a single browser, or intentionally optimizing the Web site for single browser, without first understanding the type of browser the users are using.
  • the Web site author should not make assumptions about how someone will be viewing the Web pages.
  • a properly designed site should try to accommodate people with a wide range of viewing capabilities, from those with text-only browsers on slow links, to true technoids with fast, 24-bit color displays served by high-bandwidth direct network connections.
  • a common case is using Netscape's ⁇ TABLE> or ⁇ CENTER> constructs, which are currently supported on Microsoft Explorer as well, but are not part of the current HTML standards. The author, however, should be cautious, as there may be many people in the audience who use other browsers.
  • the author should consider creating a second set of documents that don't look as good, but use only standard HTML.
  • the server can then be configured to serve the right document, depending on the user's browser type.
  • the Web site author should weigh the advantages and disadvantages of using a browser-specific technique carefully, and try to make the documents usable and valuable to the broadest number of readers.
  • Frames technology was first introduced in Netscape Navigator v.2.0 (see browser chart in section 4.1.4, below). For the first time, Frames allowed the web site designers to have multiple, independently scrollable and navigable pieces of real estate in the browser window.
  • the analogous GUI transformation was going from a single textual screen to a windowed approach, where separate text applications can run in each text emulator.
  • Frames technology was one of the greatest improvements in the Web, since it completely changed the way users navigated through web sites. It was now possible to have a link in a frame manage the content of a different frame, thereby allowing the perfect navigational bar, similar to the menu bar in a traditional GUI application (after all, the menu bar doesn't go away or get completely regenerated, just because the content of the application window changes!
  • Navigator 2.0 would have returned the user to the search engine results listing page, since that was the last page before the frames interaction began. Logically, however, the back button should return the user to the NL average leaders page, since that is the last impression that the user had. This behavior was changed in revisions after Navigator 2.0. Only then did frames begin to be used all over the Web.
  • the header There are three major frames: The header, the side frame, and the main content frame.
  • the header frame typically contains three major pieces, although the example above only contains two of the following three:
  • the logo is probably the most important element on any page. It should clearly identify who is the author of the page.
  • the global navigation bar is typically placed in the header. This navigation bar serves two purposes: let the user know where in the site they are located, and give the user the ability to jump to other major parts of the current web site.
  • the statistics field is a different color than the rest of the fields, indicating that the current page is part of the statistics application.
  • these elements would represent the top level entries in the menu bar (File, Edit, etc.)
  • buttons could use the same function, but those buttons don't work as expected when a user jumps directly into the middle of the web site, such as when selecting an item from a hotlist, a bookmark list, or a search engine query result list.
  • This particular site does not require the forward/backwards buttons since there is no logical next/previous pages. But a site that has a long, sequential document, for example, should have them.
  • the side frame contains the local navigation bar, that are relevant to the current selection in the header frame. For example, if the current global selection contains several options, they are typically displayed in this frame.
  • This navigation bar also reflects the currently selected option.
  • the current selection is displayed in a different color than the rest.
  • these entries would reflect the actual entries in a given menu (such as for the File menu, the New, Open, Close, etc. options).
  • This frame contains the actual contents of the page, as selected by the navigation bar in the header frame, and the local navigation bar in the side frame.
  • the web is actually a composite of two different philosophies: HTML, which looks different on different browsers, and images, which look almost identical across browsers (color issues aside, see the discussion of colors and color maps in the next section). This dichotomy allowed Web designers to choose what they wanted to be seen exactly the way they envisioned, and what they didn't.
  • Netscape navigator (and many other application programs) has a pre-defined set of colors, or color table that it uses to display images in HTML pages. If a color used in an image is not found in the color table, the software will either substitute a color from the color table which is similar to the color specified in the image, or it will dither the colors to approximate the desired color. A color which is “dithered” will appear to be made up of pixels of two colors, which blend together visually to approximate the desired color.
  • Netscape Navigator (starting with version 2.0), allows a person to set a color policy in their application preferences.
  • the default setting is “automatic.” In this mode, the browser will use an algorithm to decide if colors should be dithered, or if “close” colors should be substituted. In addition, the browser may load a custom color table for a particular image, if that image is the only one on a page. Interestingly enough, Netscape Navigator will not dither colors in background images.
  • Microsoft Explorer does not allow any options with respects to color policy.
  • Microsoft Explorer uses the default Windows color policy, which is to use the closest possible available color.
  • Dithering can reduce the quality and legibility of an image.
  • authors can create images which use the colors specified in the browser's built-in default color table. If this is done, the colors will be rendered without dithering.
  • the PC and Macintosh systems when using 8 bit display hardware, use a 6 ⁇ 6 ⁇ 6 color “cube” for rendering all pictures and images.
  • Each side of the cube uses colors with RBG values of hex 00, 33, 66, 99, CC and FF, for a total of 216 colors.
  • the decimal values for Photoshop and other applications are 0, 51, 102, 153, 204, and 255.
  • the layout style used for the generic page should be used throughout the web site, with the possible exception of the home page, and other key pages within the site (those pages that correspond, for example, to the beginnings of chapters in a book).
  • the site “home page” is typically the first impression the user gets of the web site (that is, unless they entered the site through a different entry point, such as through a bookmark or through the results of a search engine query). As such, the first page gives the user the impression of what the overall site experience would be. For example, what kind of information is available in the web site, how often does the information change, who is presenting the information, etc.
  • Web sites similarly to all well developed applications, should have context sensitive help. That is, every single page in the web site should have a help link that directs the user to the appropriate place in the help hierarchy.
  • the help link could be a simple hyperlink, but is more typically an image of a question mark. This link should be in the same place in all the pages.
  • help information should override the current page, be placed in a separate frame in the page, or be placed in a separate browser window altogether (the ability to automatically launch a brand new navigator window with separate content was first introduced in Netscape Navigator v2.0).
  • help is most useful if it is placed in a different window, so that the user can read the help text while trying to manipulate the application, without having to constantly switch from the application to the help window.
  • help information should minimally be placed in a separate frame, but ideally in a separate browser window.
  • each page in the help system should have a link to the previous logical page, the next logical page, as well as an up navigational button that takes the user to the beginning of the current help section. This allows the user to browse the help pages, rather than just looking for context sensitive help by first finding the appropriate application window, then pressing help.
  • Search engine search result pages also allow users to enter the site in arbitrary places, so in this respect, search engine result pages are very similar to bookmarks.
  • a GET style page is a page that is retrieved via the GET HTTP command.
  • all the information is passed from the client to the server as part of the URL, making URLs extremely long and “ugly”.
  • a typical URL may be:
  • the client is sending two values back to the server, a and b. This information will get stored in the bookmark database, as part of the URL.
  • the server would not have sufficient information to generate the page, and may have to either generate an error, or worse yet, generate a page that is not comprehensible.
  • Netscape enjoyed the freedom associated with a monopoly: They were able to dictate the direction of the web market simply by supporting features in their browser. For example, rather than going through the standards bodies to determine extension to HTML, Netscape decided to implement some nonstandard tags, such as the CENTER and TABLE tags. Also, rather than going through the Internet Engineering Task Force (IETF) before implementing a security protocol, Netscape designed, implemented, and released SSL. Netscape also felt that the web could use a scripting language, so they designed and implemented JavaScript. All of these decisions on Netscape's part have become a de-facto industry standard, because the vast majority of browsers on the web supported them.
  • IETF Internet Engineering Task Force
  • Lynx shown below for comparison sake, is a text only browser available only on UNIX platforms. It is used by a very small percentage of users on the Web, either in situations where graphics are not possible (such as via a text terminal dial-up session), or where connectivity is too slow to contemplate downloading graphics.
  • HTML specifies 6 different heading tags, from H1 to H6.
  • different fonts and font sizes are used for the same tags.
  • Web users can be categorized into three groups: The technoids, who always have the latest and greatest browser on the latest and greatest hardware, those who are technical and can manage to use their own ISP, but don't particularly care about having the latest and greatest browser, and those that depend on commercial online services, such as America Online, CompuServe, or Prodigy, for access.
  • the technoids who always have the latest and greatest browser on the latest and greatest hardware, those who are technical and can manage to use their own ISP, but don't particularly care about having the latest and greatest browser, and those that depend on commercial online services, such as America Online, CompuServe, or Prodigy, for access.
  • the web designer does not have to worry about making the web site look good for this kind of user, since this user will always have a browser that will accept any kind of input.
  • Proxies were seen as the best way to meet the demand on the Internet. However, they introduced a key problem: The cache policy is now determined by the proxy server system administrator, rather than the user.
  • the user has a choice of how often the cache is checked, whether once per session, every time, or never. This policy can be determined by the user.
  • the same sort of policy management scheme exists for the proxy servers, but that is under control of the proxy server system administrator, rather than the user. If the proxy server is configured to check the web server for new updates periodically, rather than for every request, the user could potentially be seeing old information. In other words, proxy servers introduced a document propagation delay to the Web.
  • proxies and other caching servers use the file name as the key into the cache database, if the web site designer were to change the filename of a file, this would force the proxies and browsers to download a new version.
  • the web site author should ensure that only a single copy of each distinct page or image is stored on the site, and referred to in a consistent way. That way, the file or image is only loaded from the web server once, and stored in the web browser cache.
  • the current proposed HTML standard is v3.2. Please consult the World Wide Web Consortium home page, at http://www.w3.org, for up to date information regarding the HTML standards process, as well as the actual standards documents.
  • Microsoft also implemented some proprietary extensions, such as one to allow background music to be played while the page is being viewed.
  • Java is an Industrial Strength, Object Oriented Environment
  • Java is described as a simple, object-oriented, distributed, interpreted, robust, secure, architecture neutral, portable, high-performance, multithreaded, and dynamic language according to the Java Language white paper.
  • Java formerly known as oak, is an object-oriented programming language. It shares many superficial similarities with C, C++, and Objective C (for instance for loops have the same syntax in all four languages); but it is not based on any of those languages.
  • C++++ Java is sometimes referred to as C++++.
  • the language was originally created because C++ proved inadequate for certain tasks. Since the designers were not burdened with compatibility with existing languages, they were able to learn from the experience and mistakes of previous object-oriented languages. They added a few things C++ doesn't have like garbage collection and multithreading; and they threw away C++ features that had proven to be better in theory than in practice like multiple inheritance and operator overloading.
  • Java was designed from the ground up to allow for secure execution of code across a network, even when the source of that code was untrusted and possibly malicious. This required the elimination of more features of C and C++. Most notably there are no pointers in Java. Java programs cannot access arbitrary addresses in memory.
  • Java was designed not only to be cross-platform in source form like C, but also in compiled binary form. Since this is certainly impossible across processor architectures, Java is compiled to an intermediate byte-code which is interpreted on the fly by the Java interpreter. Thus to port Java programs to a new platform all that is needed is a port of the interpreter and a few native code libraries.
  • Java was designed to make it a lot easier to write bugfree code. Shipping C code has, on average, one bug per 55 lines of code. About half of these bugs are related to memory allocation and deallocation. Thus Java has a number of features to make bugs less common:
  • Java At the lowest level the advantage of Java to the web is that it provides a secure, cross-platform way for code to be executed. At a somewhat higher level Java adds several features to existing web sites.
  • Java lets the server draw pictures in a window on the client. In theory this allows a web page to do anything a regular program can do by drawing in a window.
  • CPU intensive cgi-bin scripts place a large load on a server, particularly at busy sites.
  • the sheer number of permutations can tie up even a fast machine for several hours. Publishing this as a cgi-bin would bring my server to its knees, but by publishing it as a Java applet I can distribute the load across all the machines that want to run it.
  • Java allows for more interaction with the user. Java not only allows you to paint arbitrary data on the screen. It also allows you to collect input from the user in the form of mouse clicks, keystrokes and the like. This lets you put almost any application on your web page that doesn't require disk access.
  • Sun has made a Java development kit available for Sparc and X86 Solaris, Windows NT for Intel, Windows 95, MacOS 7.5 on PowerMacs and 68030 (25 MHz and faster) and 68040 Macs.
  • IBM has ported Java to Windows 3.1, OS/2, and AIX. It is working on ports for MVS and OS/400. See http://ncc.hursley.ibm.com/javainfo/hurindex.html.
  • the OSF has ported Java to Unixware, the Bull Estrella or other PowerPC running AIX4.1, X86 running DASCOM OSF/1, the Digital Alpha running Digital UNIX 3.2, the HP700 series running HPUX 10.x, the NCR Globalyst (Pentium) running UNIX SysV, and Sony NEWS (MIPS) running Sony NEWS 6.1.1. See http://www.osf.org/mall/web/JDK/.
  • Javascript is Just a Simple, Scripting Language, not Meant for Serious Applications
  • Javascript is a scripting language developed by Netscape for its browsers in order to augment limitations in the HTML language. This language originally started out named Livescript to fit into Netscape's Live Architecture (e.g. LiveWire, LiveConnect, Live3d, and more . . . ) but was renamed in order to capitalize on Java's popularity. Javascript as a language provides limited interactivity in the browser environment. It provides some string manipulation and comparison capabilities, and some arithmetic functions. Javascript is mainly used to handle field validation in HTML forms.
  • Plugins extend the browser to include additional capabilities such as multimedia. Plugins are dynamic code modules which are native to the specific platform on which the browser runs. They allow existing platform dependent code to integrate with the browsers core functionality to support new data types.
  • plugins reside on the user's local drive and are detected by Navigator when it starts up.
  • Navigator encounters data handled by a plugin (either embedded in an HTML page or in a separate file), it loads the appropriate plugin and gives it access to all or part of a window.
  • the plugin remains active until the associated page or file is closed.
  • MS Internet Explorer 3.0 supports Netscape plugins on the Wintel platform.
  • Plugins are complementary to platform native inter-application architectures such as OLE and OpenDoc, and platform-independent programming languages such as Java. In fact, Netscape through their LiveConnect architecture allows Java applets to access native methods stored in plugins. The reverse interoperability is also true: plugins can also use functionality available in Java classes; in fact, many ISV's are writing the common elements of their plugins in Java (the Koan plugin comes to mind).
  • ActiveX extends Microsoft's existing Object Linking and Embedding (OLE) and Component Object model (COM) technologies to the web. It serves as a component framework. ActiveX ‘controls’ are components that plug into the ActiveX framework. They are embedded into web pages.
  • OLE Object Linking and Embedding
  • COM Component Object model
  • TOG Open Group
  • Important APIs such as database access services or Windows-based ActiveX services are still proprietary.
  • ActiveX is currently only supported in Microsoft's Internet Explorer browser on the Wintel and Mac platforms.
  • the Netscape browser on the Wintel platform has an ActiveX plugin provided by NCompass Labs; however, in order for the ActiveX component to be recognized by Netscape, it must be referenced by a different HTML tag.
  • Netscape uses the ⁇ EMBED> tag whereas Microsoft uses ⁇ OBJECT>. This means that pages with ActiveX components must use both tags to be recognized by both browsers.
  • ActiveX components are used much like plugins in browsers. When the browser hits upon the appropriate data type, it will then load the ActiveX component. If the component is not already installed, the browser asks the user whether to download it.
  • the ActiveX security model is considerably different from the Java model. Java achieves security by restricting the behaviour of applets to a set of safe actions. ActiveX, on the other hand, places no restriction on what a control can do. Instead, each ActiveX control can be digitally “signed” by its author in such a way that the signature cannot be altered or repudiated. The digital signatures can then be certified y a trusted “certifying authority”, such as VeriSign, to create the equivalent of a shrink-wrapped software package.
  • certifying authority such as VeriSign
  • This security model places the responsibility for the computer system's security entirely upon the user.
  • the browser Before Internet Explorer downloads an ActiveX component, the browser presents a dialog box indicated who signed the component, if at all. The user can elect to abort the transfer or may continue.
  • the ActiveX certification process ensures that ActiveX controls are not tampered with by third parties after its publication. However, the certification process does not ensure that a control will be well-behaved.
  • an ActiveX control called Exploder was published to the Internet. This control, which was bully signed and certified, shutdowns any Windows95 machine that downloads it. The shutdown occurs automatically soon after the user views the HTML page that contains the Exploder control. Exploder is relatively benign compared to the possible damage that other more malicious controls may do. These controls may reformat the user's hard disk or plant a virus. In fact, it is possible that an ActiveX control could take some subtle action, such as transmitting confidential confidential information from the user's harddisk, that would escape detection for a long period of time.
  • ActiveX controls are distributed as executable binaries, and must be separately compiled for each target machine and operating system. At this point, ActiveX is only supported on Wintel and Mac platforms. Support for Unix is not available and there has been little news on the progress so far.
  • OLE Custom Controls ActiveX components are generated as large OLE Custom Controls (OCX) files with Internet extensions.
  • OLE 1 OLE Custom Controls
  • DDE Window's dynamic data exchange
  • OLE 2 OLE 2
  • Microsoft decided no longer to attach versions behind it and just incrementally add new functions. They will be simply buried within new releases of Windows or new releases of Microsoft's Visual C++. This means that OLE is no longer a separate product but very much a part of MS Windows.
  • Microsoft introduced custom controls (or OCXs), possibly referred to as OLE 2.1.
  • An OCX is a combination of OLE in-process server and an OLE automation server.
  • OLE In order to support OCXs, it is necessary to have in place several dynamic link libraries (DLL files). This is made worse by all the legacy interfaces it must support due to previous versions.
  • OLE is massive; in order to make it easier for programmers to develop OLE components, Microsoft created a class frameworks called Microsoft Foundation Classses (MFC) in Visual C++2.0. MFC has added another wrinkle to the volume of libraries needed to support OLE containers.
  • MFC Microsoft Foundation Classses
  • MS Internet Explorer indefinitely caches each ActiveX component it encounters.
  • the Java environments allows business applications to be deployed in two different ways, each with advantages and disadvantages.
  • the first business application model, and most common application of Java is as a “Java Applet”.
  • the business application is actually integrated into a web site.
  • Extensions to HTML were made to accommodate integrating a Java Applet into an HTML page.
  • the Java applet is downloaded over the Internet, and executed on the local client.
  • the other model, the Java Application is similar to traditional GUI applications, where the application must already be loaded on the local client.
  • the Java Application is started either via the command line, or via an icon, or menu item.
  • Applets loaded over the network are untrusted.
  • the only way to be sure than an untrusted applet cannot perform any malicious actions e.g. deleting files on the local hard drive, sending out fake email that looks like it came from the browser user, using the browser client as a remote file server, etc.
  • Web browsers carefully restrict what an applet is allowed to do.
  • applets may place slightly different restrictions on applets, and some may even allow the user to relax some of these restrictions, but in general, applets are not allowed to:
  • Plugins as well as ActiveX components, do not have a security model in place. Applets can use LiveWire from Netscape or ActiveX from Microsoft to communicate with the plugin or ActiveX components, and have those components do the tasks that are restricted to the applet.
  • New browsers will have a new security model for signed applets.
  • Signed applets carry an attached digital signature and cryptologic checksum. Using public key encryption technology, this would enable a Web browser to verify that an applet is from the source it claims to be from, and that it has not been modified in transmission. With these guarantees, it is possible to load a trusted applet (one that can run without severe security restrictions) over an untrusted network as long as you trust the source of the applet (i.e. whatever individual, corporation, or certification agency has attached their digital signature to the applet).
  • Java applets actually start when the browser encounters a special HTML tag, APPLET. The browser then begins to download the applet from the web server, and start execution.
  • APPLET a special HTML tag
  • Applications are started directly by the operating system, either by executing a command on the command line, or by double clicking the icon for the application. Applications, however, can be started from the browser, the same way helper applications (such as custom viewers for images) are started. This is accomplished by reserving a mime type for the application, and configuring the browser to start the Java application whenever that mime type is encountered.
  • applets are automatically downloaded from the web server by the browser, whenever the browser encounters a special HTML tag.
  • the browser then caches the Java applets for use the next time the applet is initiated. What happens, however, if the Java applet is updated on the web server? The answer is that the same behavior applies to Java applets as to HTML pages.
  • the browser queries the server for any updates to the applet. If there are any, the new applet is downloaded. If there aren't any changes, the cached applet is used.
  • the Netscape Navigator browser can be configured to check the server every time the applet is loaded, or once per session (for example, if the applet is started multiple times without exiting the browser software), or not at all (in which case the browser always uses the cached version.
  • Microsoft Internet Explorer does not have such options. Rather, it checks every time an applet is started.
  • Java applications are not downloaded from the web server. Rather, they must be present on the local disk before an application can begin. Specifically, the application developer (or, more likely, the system administrator) is responsible for ensuring that the latest and greatest version of the application is distributed to all the users.
  • Marimba, Inc. has a product called Castinet that allows applications to become self updating, similarly to the way Java applets are.
  • the Marimba product queries the “application server” for any updates to the application. If there are any, they are downloaded before the application is started. For more information, see http://www.marimba.com, or the chart comparing different extended GUI components, below.
  • the applet since the applet itself is directly associated with a browser, the applet itself can use part of the browser's screen real estate for its output.
  • the most common example of this is the animation applet, that is embedded as part of the HTML page. However, if the user navigates away from the page where the applet was started, the applet will be stopped. This restriction makes this model useful for applets that are tightly integrated with the web page around them, but not for applets that are intended to be real, long lived applications.
  • An applet first starts in the browser's output window, if nothing more than to provide a mechanism to start the application (via a start button), or to provide the authentication screen, before launching a separate window for the rest of the applet.
  • Java application on the other hand, is not associated with a browser.
  • a Java application must launch its own window.
  • Java Virtual Machine is well implemented across multiple platforms. Applications appear and behave similarly across different machines with the except of the Mac. The JVM on the Mac has not been well implemented and results in applications sometimes appearing differently or running improperly. Apple is currently working on implementing the JVM directly into the MacOS.
  • Java performs at different levels due to the underlying platform and operating system. For example, threaded Java runs a lot more quickly on operating systems that natively supports threads. This has been seen under Solaris on SPARC platform. Solaris natively supports threads and applets with threads run much faster. On the other side, operating systems that do not support threads natively (in the OS) such as Windows have applets running much more slowly as the JVM for Windows has to handle threading by itself without help from the OS.
  • Java compiler When the Java compiler is executed on a Java program (*.java source), it converts the code into Java bytecode and puts it into a class file. This class file can then be interpreted on any machine which has a Java Virtual Machine on it. The Java Virtual Machine processes each of the bytecodes in the class file and executes them. This process is similar to what other interpreted languages do, such as LISP or Smalltalk.
  • JIT Just-in-time compiler
  • JIT promises to speed up Java execution times. Like Java interpreters, JIT compilers convert Java byte code into native on the fly, but they cache the converted code in memory while the program runs. The memory cache enables Java to run faster by the fact that much of the bytecode is repetitive. The JIT compiler can identify which bytecodes it already has compiled previously and runs those directly from cached memory. Moreover, applications running from memory cache always run faster.
  • Java is a dynamic language, thus all the class files cannot be “statically” compiled into machine specific code until they are actually called.
  • the JIT is really just-in-time as it compiles methods on a method by method basis just before they are called. If the same method is called more than once, the JIT'ed code pays off as the method does not need to be recompiled; the native code is simply re-executed from the cache.
  • Java's Abstract Windowing Toolkit is a standard class library that encapsulates basic GUI components.
  • the aim of AWT is to enable applications to appear as native applications creating an intermediate peer service that maps to a corresponding routine in the native operating system's API.
  • Java has a class called Button that display a push button on the screen. Push buttons are common to all GUIs.
  • Java calls the button routine in the Win32 API.
  • Java calls the button routine in the Toolbox.
  • Java may call the routine in Motif. This abstraction gives the Java button that looks like a native button on screen.
  • the Netscape Windowing Internet Foundation Classes (IFC) 1.0 is an all-Java user interface application framekwork. It allows Java applications to be created of independent of operating system-specific windows and user interface protocols.
  • IFC is writen completely in Java and is supposed to run on all Java-enabled platforms including non-Netscape browsers.
  • IFC applications have a distinct look different from Motif, Mac and MS Windows.
  • the IFC library includes window hierarchies, integrated drag and drop, and more.
  • menus can only reside in menubars. Furthermore, menubars can only be attached to separate frames; i.e. menus cannot exist in applets that reside within the browser space-they must be in free-floating “windows”. The next release of AWT will support pop-up menus which are not attached to a menubar and thus are relevant to in-browser applets.
  • AKT Abstract Windowing Toolkit
  • Tear-off menus are implemented under Motif and are menus that, as their name indicates, may be torn off and placed aside for quick access. Tear-off menus have perforated line at the top of the menu. Once torn off, they exist as their own window and behave almost like a freefloating menu pallette. Note that this feature is not supported in menus on Windows 95.
  • Help menus are also support by the AWT. Under Motif, help menus are located in the right and are right-justified on the menubar. Java apps running under Motif also show this behaviour—they show up on the right side of the menu bar. Windows 95 does not right-justify the help menu and instead just places it as the right-most menu and Java taking the look-and-feel of the unerlying operating system shows the same behaviour: the menu in Java on Windows 95 is just the last menu on the menubar but is not right-justified.
  • buttons that just contain a text label.
  • GJT Graphic Java Toolkit
  • the ImageButton essentially displays a image instead of a text label. A more common name for it is the picture button.
  • the StateButton graphically shows the state of something when pressed.
  • a StateButton may depict a wheel. When pressed, the wheel spins while some event triggered by the button is running.
  • Both of these buttons can have additional properties such as being springy or sticky.
  • a springy button pops back up when pressed. Whereas a sticky button stays down the first time you press it and pops up the next time you press it-its behaviour is akin to an on/off switch.
  • the button class provided by AWT is flexible so that it can extended in additional new ways.
  • the examples above are only show a few extensions.
  • the Scrollbar component is used to specify a particular value in a range of values.
  • the orientation can be either vertical or horizontal.
  • Scrollbars can be used in a variety of ways.
  • a free-floating scrollbar can be used as control meter to adjust values up or down.
  • scrollbars have been used with other components for situations in which the particular component does not fit the container. For example, when displaying an image that does not fit the dimensions of the window, the scrollbar is used to move the image so that sections of the image can be broght into view.
  • Scrollbars can appear dynamically as they are needed or the developer can specify that they never appear or are always present.
  • Java is able to natively (within the JDK itself) display both GIFs and JPEGs.
  • Additional image types, such as BMPs, PICTs need outside libraries to provide routines to manipulate them.
  • images While images are being loaded, they can either be presented as partial chunks as it is loading or to wait until the image is loaded completely before displaying it. Depending on how the program is writing, the loading can occur either synchronously or asynchronously. It is possible to load an image and do other things at the same time.
  • Java programs can freely use images as background.
  • the Graphic Java Toolkit by SunSoft Press has a Sprite animation library.
  • fonts are always mapped by Java to fonts that actually exist on the client machine. For example, on a Windows system, Helvetica is mapped to Arial. Other fonts can also be used if they exist on the client machine. Developers can create their own font mappings.
  • FontMetrics allows typesetting to be manipulated. For example, font properties such as ascender, height, descender, leading baseline, and others can be customized.
  • Java defines a number of standard platform-independent cursors that can be specified as the mouse pointer.
  • the pointers are:
  • cursors which are used for resizing and appear depending on which direciton is being resized. These cursors included resizing from the top or NORTH, right or EAST and so on (SOUTH, WEST) and including combinations such as NE for the top right corner.
  • Modal dialogs bring the application to a halt (in terms of user interaction) until some vital question of the moment can be answered, such as whether to cancel a transaction.
  • Modeless dialogs can be left open and answered or manipulated at any time, enabling the user to flit from task to task without being forced to complete any of them.
  • dialog box may not have menus. Some type of nomenclature must be provided such as a title bar. Finally there always must be away to get out of the dialog box. This is traditionally provided by the combo of OK and Cancel buttons.
  • the OK and Cancel buttons are the most common element to appear on dialog boxes. It is important that they be consistently used. In most windowing systems that has meant that they appear at the bottom of the dialog box and a horizontally centered.
  • Layout in Java, as well as other platform neutral GUI applications are essential to the correct behavior of the application. This is because as the application is moved from platform to platform, the screen resolution, font sizes, and window sizes all change dramatically. In Java, the programmer does not specify absolute positions for interface elements. This is very different from Microsoft Windows or Macintosh programming, for example, where the x,y coordinates of each GUI element are hard coded into the source code.
  • Java has a much more general and elegant mechanism.
  • GUI elements When GUI elements are added to a container (such as a dialog box, or a window), the general rules for layout are specified. Rules are specified by first attaching the outer GUI elements to the window borders, then logically attaching GUI elements to one another.
  • buttons For example, assume a dialog box has two buttons, and an input element. Typical rules would be: button a is to be placed immediately to the left of button b. Another rule could be both button a and button b should be placed a certain offset above the bottom border of the window. Yet a third rule could say that the GUI element immediately above the two buttons should expand to fill up the entire window space (presumably, this kind of element would be some sort of input element, such as a text input box, or a list box. Both of these elements would show more information if the window was expanded).
  • the Java environment at run time, would determine the locations of the buttons, based on window size, font sizes, button sizes, and other rules that the environment imposes (for example, window managers in the X11 system typically put a border around the window. The width of the border is determined by the window manager at runtime).
  • the Java color model is similar to the Web browser color model, as described in section 3.10.
  • the java.awt. Color class predefines a number of constant color values.
  • Java supports two different color models, the RGB model and the HSB model.
  • RGB Red, Green, Blue. This is the basic system that most color systems use. To create a custom color, the red, green, and blue components of that color must be specified. Each of these values ranges from 0 to 255, for a total of 256 possibilities. Hence, using this model, it is possible to specify 256 ⁇ 256 ⁇ 256, or 16,777,216, or over 16 million colors.
  • RGB system hue, saturation, and brightness.
  • RGB model hue, saturation, and brightness
  • Colormap hell occurs when an application tries to use more colors than are available in the system. In that case, depending on the system that the application is running on, one of two different scenarios can occur:
  • Java GUI Frameworks PRODUCT DATE COMPANY VENDOR NAME PRICING DESCRIPTION INCORPORATED SIZE Netscape IFC free Drawing/Event framework, April 1994 1500+ http://www.netscape.com Communicator redirecting events to interface objects, Composite components such as Color and Font Choosers, Multifont text, Animation, Transparency, Drag-and-Drop, Object Persistence Marimba Bongo TBD (free Components include Folders, February 20+, but many of them are http://www.netscape.com beta source pages, trees, grids.
  • Marimba also ships the Castinet/Tuner, which allows for automatic software update capability and broadcasting. They have an agreement with Apple, which means it will be included with the next OS release.
  • Shafir provides functionality similar to Netscape's IFC. Shafir has more components than the IFC, but it is doubtful that they can compete with the mindshare accessible to Netscape in future releases.
  • Marimba's product offers a complete packet that is unfortunately too immature to fully endorse. Performance is lacking, and with the imminent release of JDK 1.1 with Java Beans, they will have an uphill battle against much larger and established competitors.
  • Object Share jKit/Grid $145 bytecode jKit/Grid is a table widget Acquired N/A http://www.objectshare.com $495 Source that allows for a limited by Parc- number of component Place in types, supports August 1996 Observable/Observer, supports hierarchy/tree representation.
  • Microline's Component Toolkit is the best performing widget suite currently available. However, the API is awkward, and it lacks support for anything other than iconic images and text in the table/hierarchy widgets.
  • KL Group's LiveTable product supports arbitrary Components. The product is mature and absent of surprises. The widget feels slightly sluggish, but appears to handle large numbers of records just as well as few. # The Outliner widget is new and hasn't been tested yet at the Java Design Center, Sun Microsystems. As a strategic choice, KLG appears very strong.
  • CDROM Code Division Multiple Access
  • the other alternative approach is to use a hierarchical widget, which only stores information about nodes that are expanded.
  • the application retrieves the necessary information back from the server.
  • a third alternative allows the user to specify the subset of information that is needed by typing it in.
  • the application would then query the server for the subset of information that is required. If the size of the result is large, the server could notify the applet, and the user can be prompted with a dialog box. The selections of the user could then be stored in a separate text box. This process would repeat until the user has selected all the items required.
  • the AWT provides facilities to trap keyboard events (including combination of keystrokes such as ALT-X or CONTROL-C). This allows developers to create custom keyboard accelators and mnemonics. A common application of this is to reach menus without having to use the mouse. Users can hit ALT-F to reach the File menu.
  • Accelator keys lets power users to quickly access menu functions without having to move away from the keyboard.
  • accelator keys are very useful, note that accelator keys still have not been standardized across all platforms. For example to quit or exit an application: on the Mac, the keys are Apple-Q; on Windows and some Motif/CDE applications, it is ALT-F4. On OpenLook, it is META-Q.
  • Error messages should be displayed in a dialog box. This way, the users can move the error dialog to the side of the screen and have the opportunity to look both at the area that is causing the problem and error message itself.
  • Java requires each object or class in a program to be stored in a separate file. For typically sized applications, however, this could mean that the applet or application could be composed of thousands of separate files (since those applications are typically composed of thousands of separate objects). Managing and downloading that many separate files has created real problems.
  • Java a ZIP or JAR file, which is a file composed of many separate files, with a header identifying the contents of the file, as well as an optional signature.
  • This has the advantage that the entire Java applet is downloaded all at once, rather than piece meal.
  • the system administrator is responsible for distributing only a single file, rather than a collection of files.
  • Signed ZIP/JAR files allow cryptographic security that the ZIP/JAR file has not been tampered with since it was created. This gives the user of the ZIP/JAR file the confidence that the file that was received, through whatever mechanism (network transport, floppy, etc.), completely intact, and unmodified.
  • ZIP/JAR files also solve some versioning problems. For example, consider this scenario:
  • ZIP/JAR file avoids this problem by encapsulating all the correct classes in a single file.
  • One way to control this scenario is to put a PUBLIC STATIC member in each privileged class that gets loaded on the local disk, which holds the version number for that particular class. That way, the Java applet can query the version of the classes that are loaded locally. If there is a version mismatch, the applet can put up a dialog box stating that the user must download and install a new version of the local files.
  • Java applications do not have the Web browser associated with them.
  • For Java applications like all standard applications available today, would have the online help incorporated directly into the application, or could be dynamically loaded off the local disk at runtime. Either way, the help section takes up local resources.
  • the application would be responsible for incorporating a help file viewer. This can be solved by taking some of the publicly and/or commercially available HTML browser classes and using them. Netscape, for example, has such a class hierarchy in their Internet Foundation Classes product.
  • AWT Using the AWT a developer can custom implement tool tips or a third party library can provide it.
  • Marimba's Bongo library provides a type of ballon help.
  • help message is to provide the help message in the status bar of the browser/application. This automatically occurs when the user moves the cursor over the area in question. For example, when a user moves the mouse pointer over a certain button, the status bar of the browser displays a message explaining what the button is used for. This type of help is limited by the amount of space the status bar is able to provide. Long messages cannot be displayed completely and are cut off.
  • Ballon help has a similar limitation as very long help messages are overwhelming and distracting to the user. There are times the user does not want to see the message.
  • Job scheduling is another requirement of some business applications. Job scheduling allows the user of the application to schedule lengthy tasks, such as spell checking an extremely large document, to periods where the user is not going to be using the client, such as overnight, or during lunch time.
  • Java Applet model does not have direct support for scheduling, or batch processing. However, since Java fully supports multiple threads, writing and running a thread that is simply responsible for waiting until the next scheduled start time, and then starting another thread that is responsible for handling the scheduled task is trivial.
  • the applet in order for the scheduler thread to be running, the applet must first be started. Since applets are started via the web browser, the web browser must first be started, and made to point at a specific page, where the applet resides. This can be done by configuring the system to start the browser at startup, and have the browser's default page be the page where the applet starts. Configuring the system to automatically start whenever the system starts is a system specific task. Under Windows 95 and Macintosh, the browser icon is placed in the Startup folder. Under UNIX, the/etc/rc*/* scripts are modified to automatically start the browser.
  • JDK 1.1 to be FCS by Sun Microsystems in February, 1997, provides a rich set of Internationalization APIs for developing global applications. These APIs are based on the Unicode 2.0 character encoding and include the ability to adapt text, numbers, dates, currency, and user-defined objects to any country's conventions.
  • the Internationalization APIs are concentrated in three packages.
  • the java.text package is new for JDK 1.1 and contains classes and interfaces for handling text in a locale sensitive way.
  • the java.io package contains new classes for importing and exporting non-Unicode character data.
  • the java.util package contains the Locale class and the localization support classes as well as new classes for date and time handling. Some additions and corrections have also been made to classes outside these three packages.
  • JDK 1.1 Internationalization APIs The fundamental objective for the JDK 1.1 Internationalization APIs is to allow developers to easily write global applications and applets. The following are the design goals used to achieve this objective.
  • Java internationalization requires an extensible, object-oriented design that avoids global state.
  • Java must provide multilingual support as well as support for many individual languages.
  • Java programs must function on many different platforms.
  • Unicode enables multilingual programs. Java is unique in programming languages in having chosen Unicode as its primitive built-in character type. JDK 1.1 supports the Unicode Standard, Version 2.0.
  • An API implementation needs to remain backwards compatible. This includes classes, interfaces, and methods that cannot be internationalized because of inherent design limitations. These limitations are noted and alternative classes, interfaces, and methods provided.
  • JDK 1.1 Enabling users of JDK 1.1 to create global programs is the focus of this release. Internationalization and localization of the JDK itself is not a goal for this release; this will be done in a later release.
  • This section aims to discuss some of the issues with regards to performance style and performance tuning.
  • the Internet has posed several performance challenges, as compared with its peers, the intranet and the extranet. These challenges are described here.
  • the network model in its simplest form, can be best understood by categorizing and describing the throughput and latency of the connection between the client and the server infrastructure.
  • latency in telco terms is defined as the amount of time it takes for information sent from end of a circuit to reach the other side. Latency is introduced by a several factors, including:
  • the Internet is High Latency
  • the Internet in general, can be thought of as a high and variable latency network link. The reasons for this are as follows:
  • the Internet has a high, and variable, latency.
  • the latency certainly will change among different connections, and possibly within the same connection.
  • the Extranet/intranet models typically have low latency for the following reasons:
  • the intranet/extranet network model shows that the latency is low.
  • Throughput in telco terms is the amount of bandwidth that can be sent via a given point over a period of time. That is, how much information can be fed into the circuit over a given period of time. This is typically measured in number of bits (or bytes) per second. For example, Ethernet is 10 megabits/second, whereas a T1 circuit is approximately 1.5 megabits/second, and a T3 circuit is 45 megabits/second.
  • the intranets and Extranets typically provide for high bandwidth and throughput, since they are custom networks that are scaled to match the required bandwidth. Extranets are also composed of dedicated links between the client and the server infrastructure, making the model easier to construct.
  • GIF Graphic Interchange Format
  • JPEG Joint Photographic Experts Group
  • the GIF (Graphic Interchange Format) file is a popular image format due to the many available viewers cross all platforms, as well as its compression algorithms.
  • the GIF format was first developed in CompuServe, and patented in 1987. CompuServe redesigned the image format to allow for transparency and interlacing, and repatented the file format in 1989.
  • the GIF standard was popular in the World Wide Web in the beginning, since that was the only file format supported by the original Mosaic browser, as well as the initial Netscape browser.
  • Netscape introduced interlaced GIF graphics as a means of “virtually” speeding the transmission of GIF graphics, where an immediate low-resolution image is loaded with the text content of the page, then the low-resolution proxy is gradually updated in four passes until the full-resolution GIF images is displayed. This gives the user a quick impression of large graphics as they download, and also give the user almost immediate access to text and hypertext links on the page.
  • Netscape has implemented a scheme that allows you to specify a set of smaller, low-resolution graphics to load in quickly when the user first opens a page, but which will later be replaced by high-resolution images. Netscape will load all of the low-resolution graphic “proxies” on the first pass through the page, then make a second pass that replaces the low-resolution proxies with the full-size high-resolution source graphics. By manipulating the Netscape HTML width and height extensions you can “stretch” or scale up the small, low-resolution graphic proxies so that they display at the same screen size as their high-resolution counterparts. This will give the web site users a relatively quick impression of the whole page layout (particularly on pages that contain many large graphics) without forcing them to wait to begin reading or scrolling while all the high-resolution graphics gradually load into the page.
  • HTML IMG tag for a pair of low/high resolution source graphics
  • Netscape also introduced a method for doing animations on the World Wide Web.
  • the GIF standard as documented by CompuServe, allows a series of images to be stored in a single file, with meta data describing the delay, in microseconds, between the images, as well as whether the sequence should be repeated or not.
  • Netscape first implemented Animated GIFS in Navigator v2.0. Since then, Microsoft Explorer has also implemented Animated GIFs.
  • JPEG Joint Photographic Experts Group
  • the JPEG-format files may be transferred to an external application (like JPEGView under Windows95) instead of being displayed as an inlined image within the example page, or may not show up at all.
  • WAV files since they are most common on the Windows platform, are the most popular, but it is very common to include the same sound in several different formats, and allow the user to choose which to download.
  • RealAudio As time went along, another method was introduced that allowed for real time audio that was played as the sound was downloaded.
  • the first such product was called RealAudio.
  • RealAudio There are now several such products, each optimized for different things (there are several bi-directional such products as well, such as the WebPhone). These products are less reliable than their predecessors, since they require consistent bandwidth between the client and the server, but since the human ear is capable of making up for short dropouts, this method has actually gained popularity. The majority of traffic over the Internet backbones is actually RealAudio traffic.
  • the MPEG standard is a standard for encoding video and accompanying audio into a single bit stream, so that it can be stored or transmitted.
  • MPEG is an incredibly complex compression algorithm designed to minimize the amount of bandwidth required to transmit live video and audio.
  • MPEG typically requires specialized hardware support for real time encoding and decoding.
  • Quicktime is a standard developed by Apple Computers for encoding video and accompanying audio into a single bit stream, so that it can be stored or transmitted.
  • Quicktime has several advantages over MPEG:
  • AT&T offers the following network management tool for their high-end customers.
  • AT&T offers more control over their Call Prompter service through RCS.
  • customers have the capability to add and delete layers of their Prompter applications as if they were building blocks.
  • a customer may normally have a single layered prompt structure (Press 1 for Sales, Press 2 for Customer Service); however, under special circumstances, they want to be able to add a second layer under Customer Service (Press 1 for Technical Support, Press 2 for Billing Inquiries, Press 3 for General Comments, etc.).
  • Press 1 for Technical Support, Press 2 for Billing Inquiries, Press 3 for General Comments, etc. We believe that customers can very quickly make these kinds of changes to their prompts with RCS.
  • RCS does not allow customers to change their DNIS digits as can be done through CM. Customer must provide their own personal computer or dumb terminal. Same routing change/install capabilities/parameters as RCS Online. But (unlike RCS) do data entry into your PC off-line, then batch upload to AT&T computer (or download current data in AT&T computer for modification off line at your computer) in very short call.
  • AT&T network holds calls in queue until customer site able to take call; requires Next Available Agent Routing. Can set up to serve single site (fixed queue) or multiple receiving sites (variable queue). You specify how many calls (slots) can be held in queue for each receiving site; beyond that callers get busy signal. You can change number of slots by RCS-Online, RCS-RMI, or Routing on Demand ($50 fee). Other changes require AT&T personnel and fee. When caller put in queue, delay announcement (custom or generic; 4 minutes max; routing information only). Can stay in queue max 30 minutes until completed or caller hangs up. Free “keep holding” announcement played every 30 seconds after initial announcement.
  • TOPMS is a non-tariffed product, and therefore the following information is the latest from competitive sources and is subject to change.
  • AT&T's TOPMS is a real-time system that allows customers to monitor multiple call centers through one central ACCUMASTER Service Workstation.
  • TOPMS can monitor up to 24 ACDs in real time and allows the user to set their own measurement thresholds. Some of the thresholds available are average speed of answer, talk time, average hold time, and number of calls in queue.
  • TOPMS data can be displayed in map-like graphics or in table formats that contain individual centers and/or ACD splits. The customer can monitor multiple centers out of one location.
  • TOPMS allows customers to define thresholds and alarming. This alerting feature provides visual or audible alarms whenever certain performance thresholds are exceeded in any call center or ACD split.
  • TOPMs has a detailed algorithm that makes recommendations on how to shift traffic through percentage allocation and/or staffing adjustments.
  • TOPMS is used by large Call Center customers to help them make 800 load balancing decisions based on real-time information from all ACDs across their network.
  • TOPMS does NOT make the actual routing changes—customers must still make the actual routing change using Call Allocation (percentage routing), Area Code Routing, or Command Routing. They can initiate these changes themselves at their ASW or call AT&T to make the changes.
  • TOPMS requires an Accumaster Services Workstation system. The customer currently may ONLY use the Sunsparc WS.
  • AT&T's 800 ICP combines the routing capability of the AT&T Switched Network with the intelligence of a Host Processor located at the customer premise to route 800 calls on a call-by-call basis.
  • a Host Processor located at the customer premise to route 800 calls on a call-by-call basis.
  • the AT&T network sends a “What do I do with this call?” query to the host processor (known as the CRP—Customer Routing Processor).
  • the CRP tells the AT&T network where to send the call.
  • the information sent from the AT&T network to the CRP can include any or all of the following:
  • the routing intelligence resides on the customer premise, not in the network. Additionally, AT&T is NOT looking at actual ACD statistics, across multiple centers. If that information is needed, it must be provided by the customer into the CRP, along with the routing algorithm that tells AT&T where to route the call.
  • ICP is a Tariffed Product
  • This feature allows a customer to set up and store as many as six routing plans, per 800 number, in the AT&T network. At any given time, one of the plans must be active—actually processing calls—while others are held in reserve. Customers can activate any of the reserve plans by using on the RCS or by calling in to AT&T. A user access code and PIN are required when customer calls in to enhance network security.
  • a customer can design a routing plan for “normal” conditions and others for special situations that arise from time to time—such as an end-of-the-month call surge, a weekday holiday a special promotion period, and others. The customer can then have the appropriate “reserve” plans activated as needed or on some prearranged schedule.
  • the AT&T Customer Direct Platform is targeted to midrange customers and supports five network management applications—Order It!, Manage It!, Control It!, Optimize It!, and Analyze It!. This platform has been designed to help manage all vital corporate network assets: VTNS, Cellular, IntraLata, International and more.
  • the Order It! Application allows customers to electronically submit orders for Virtual On-Net, Switched Access, Cellular, and IntraLata locations to AT&T. It also helps customers to track the status of pending orders.
  • the Manage It! Application is a unified solution for all network configuration information. It provides management of authorization codes, flexible routing, and screening groups. Manage It! Allows customers to complete, accurate and current inventory of their network locations and features.
  • Analyze It! Uses CD-ROM technology to give customers accurate, up-to-date billing records and analysis tools that are easy to access, use and store. Analyze It! Lets customers access and analyze their records, with more than 160 standard reports (as well as the ability to create custom reports and applications).
  • Manage It! Gives customers a complete list of their locations—virtual on-net, dedicated, switched access, even “featureless” switched locations.
  • the application communicates directly with the AT&T Network Service Management System so customers can be sure they are getting an accurate, current picture of their SDI at all times. Any changes and updates entered are typically active within 15 minutes.
  • Manage It! Helps customers to maintain a local database on their PC, including their PBX trunk groups, T1.5 data, account codes, and voice mail data.
  • Manage It! is a unified solution for all network configuration information. It provides management of authorization codes, flexible routing and screening groups. It also allows a customer to view a complete, accurate and current inventory of their network locations and features.
  • Customers can even use the Import/Export capabilities of Manage It! To add large volumes of authorization codes or to move codes from one screening group to another. With Manage It! Customers can even match authorization codes to an employee name or ID code of up to 15 digits. In addition, customers can manage fraud protection and cost containment by regulating calling privileges for on-net, off-net, and international long distance calling.
  • Manage It! Provides access to more than 45 pre-defined reports—and allows customers to download any of their network data to create their own customized SDI reports through the Question Report Writer included in the software.
  • Sprint's Insite product line provides a full complement of Customer Network Management (CNM) capabilities designed to meet customers' changing CNM requirements.
  • CCM Customer Network Management
  • the Insite family of products is composed of Insite Executive, Insite PC, and Insite Agent. Each product line was designed to meet the challenging CNM needs of today's business.
  • Insite Executive is Sprint's evolving, integrated network management platform based on a high-performance workstation. Designed to provide customers with a truly integrated services management system, Insite Executive will manage all Sprint's voice, private line, and packet switched offerings using a single workstation with a consistent graphical user interface.
  • Insite PC provides management of Sprint services via the customer's personal computer. Designed to provide an economical means of managing multiple Sprint services, Insite PC provides network control, operational measurements, administrative maintenance and trouble management functions.
  • Insite Agent provides customers with the ability to monitor the health and performance of their networks.
  • Insite Agents currently operate with the use of the Simple Network Management Protocol (SNMP) in conjunction with the Management Information Base (MIS) browse component of the customer's Network Management Station.
  • SNMP Simple Network Management Protocol
  • MI Management Information Base
  • Call Director is Sprint's routing control service, which runs on Insite Executive. Customers can add, change or delete Enhanced Routing Trees or routing plans in near real-time (within 5 minutes) for their toll free numbers. Customers access Call Director functionality from a Sprint Station or from a customer provided SPARC workstation that utilizes Call Director Software. Customers may create as many routing plans as they wish. Plans may be validated and stored for future activation, as far as two years in advance.
  • Site Routing Processor tells Sprint Network how to route 800 calls to different customer sites real time. call by call. Customers decides and maintains routing tree.
  • CRP can be Sun Workstation to IBM Mainframe.
  • Sprint provides software and link to network. Customer provides the processor (PC, minicomputer or mainframe). Customer installs software and perform any additional programming.
  • NCD processors are in the network. Customers control from their sites (through Insite PC or Executive). Requires X.25 circuits from each ACD to Sprint network. NCD collects real time data from customers ACDs on agent/site availability and routes calls to best site. User gets real time routing without tying up time/money in personnel and equipment.
  • the Insite strategy is to allow customers to more effectively use and leverage Sprint's inherent network capabilities to manage their business. Customers can make decisions based on real network data that can be consolidated across different services and locations.
  • Insite PC Managers offers the following features in a text-based, Windows compatible format:
  • the current MCI ServiceView (MSV) product line provides MCI Business Market customers with Windows based client-server applications for customer network management and call usage analysis. These applications include: Perspective, TrafficView, 800 Network Manager, Outbound Network Manager, Fault Manager, Direct Dispatch, Call Window, and System Administration and were built and deployed between 1994 and 1997.
  • MCI ServiceView PC applications reside on a common platform and use objects to promote common look and feel, there is little cross application interoperability and data sharing. The customer must use the separate applications to gain access to their data. There are additional customer network management applications (e.g.—HyperScope, Call Manager, Portfolio) which are not MSV based and therefore do not share the same PC configuration and communications as the MSV ones.
  • the Next Generation product suite also known as Starbucks, allows MCI to leapfrog the competition by offering a consolidated Web based network management product to the MCI business customer.
  • the Next Generation product suite also known as Starbucks, allows MCI to leapfrog the competition by offering a consolidated Web based network management product to the MCI business customer.
  • web applications may be made available to anyone with Internet access either internally behind a firewall, or externally to anyone on planet Earth.
  • Training & support a critical part of most application deployment is the plan for training and support. Web-based applications can eliminate much or all of this need since they utilize existing client software which users have already installed and learned how to use.
  • NCS MCI Network Computing Services
  • Firewall access to the web server is restricted to authorized customers and staff. Access behind the firewall is not available to external connections. The firewall is integrated with existing firewalls for other external MCI web applications.
  • Front-End Access Security initial user authentication and user access management including user cancellation and password change processing.
  • Secure server communications The application resides on a secure server supporting SSL (Secure Sockets Layer) for encrypted communications between the server and customer.
  • SSL Secure Sockets Layer
  • Digital Certificate validation a 2-way set of services for validating new users against standard Digital Certificates and for guaranteeing our authenticity for users.
  • Automated log monitoring utilities are included to monitor the log for hacking attempts. These are immediately reported to MCI security for follow-up using SNMP.
  • the Next Generation platform is browser-based.
  • the browser is a powerful new interface paradigm for information delivery. Use of this interface where appropriate will leverage customers familiarity with and preference for the browser, and position the software to be delivered over the public internet.
  • the Next Generation Reporting component of the new system unifies the reporting functions of TrafficView, Perspective in all its flavors, Portfolio, NIMS, and HyperScope. This implies consolidated reporting across product lines (as in Portfolio), across customer hierarchies (as in Portfolio and Perspective), and drill up/down do call detail (as in Perspective).
  • Unified Content joins to the goal of New platform/framework for CS products at the junction of a common database.
  • MCI's customers are increasingly connected to the internet in the course of their daily business.
  • Internet availability will allow the Next Generation offering to work within this context, instead of requiring a dedicated dialup connection.
  • the current Service View system is tied to the Microsoft Windows platform.
  • the Next Generation offering should run on whatever platform the customer has in place or at hand.
  • This “Write Once, Run Anywhere” strategy provides advantage in non-Windows environments and insulates the offering from technology and version changes.
  • Priced call detail is currently provided on a monthly basis via the Perspective CD-ROMs. It is the goal of the Next Generation platform to deliver priced call detail on a daily basis for the previous day's call activity.
  • Real-time unpriced call detail is currently provided with 95% of call attempts available within 5 minutes of the call. It is the goal of the next generation platform to deliver detail on 98% of call attempts within 2 minutes of the call.
  • a thin client can be developed that has the following characteristics:
  • Java Using Java, applications can be developed faster, with fewer bugs. Since Java has integrated threading and dynamic memory management (i.e. garbage collection), applications can be developed significantly faster than in C/C++.
  • Java is an industrial strength object oriented language
  • object oriented techniques include:
  • Java applets or more specifically, the necessary sections of Java applets, are automatically downloaded over the World Wide Web. This eliminates the software distribution costs typically associated with current day applications. All MCI has to do to distribute a new version of the applet is to copy it to the web server. Clients will automatically download the newest version the next time the applet is started.
  • Java applet security model assures users that their systems and information are safe from malicious programs and viruses. Java applets are loaded and executed under a security manager which assures that only approved actions can be taken by the applet. This assures users that their data is safe from tampering or disclosure. As customers become more aware of network security, they will demand this level of confidence in the safety of the Next Generation product.
  • MCI has to look for a system that both improves the current capacity, and is scaleable to accommodate all future growth.
  • MCI being a global company with customers all over the world, must ensure that the software written can be customized to local standards. For example, money figures in reports must be represented using the local currency symbol.
  • Java has built in support for Internationalization, which will support automatic formatting of dates, times, time zones, and currencies. Support for multi-language versions of the application also exist.
  • FIG. 1 is a simplified distributed view of the platform components of the present invention, with generic service components shaded.
  • FIG. 2 is a high-level illustration of the present invention illustrating the relationship of client, web-server, dispatch, middle tier services and the messages interfaces therebetween.
  • FIG. 3 is a simplified high-level illustration of the Graphical User Interface class relationships as provided in the present invention.
  • FIG. 4 is a simplified and diagrammatic illustration of the application framework of the present invention.
  • FIG. 5 is a diagrammatic view of the physical, end-to-end architecture of the present invention, beginning with the customer web browser to the enterprise midrange servers and existing mainframe systems.
  • FIG. 6 is a diagrammatic illustration of a 3270 pass-thru architecture used to enable access to legacy systems.
  • FIG. 7 is a diagrammatic illustration of one embodiment of the security infrastructure that combines public key encryption with a digital signature to provide both message security and sender authentication.
  • FIG. 8 is a diagrammatic illustration of another embodiment of the security infrastructure that combines public key encryption with a digital signature to provide both message security and sender authentication.
  • FIG. 9 is a screen print of a representative home web page that may be used in the present invention.
  • FIG. 11 is a simplified high-level illustration of the customer access to the CRISP functionality from a customer's web based front end over modem-POTS, ISDN and FrameRelay links.
  • FIG. 12(a) is an illustration of the current MCI Call Manager product architecture.
  • FIG. 12(b) is an illustration of the new MCI Call Manager as particularly adapted for use with the present invention with web-based client/server functionality.
  • FIG. 13 is a diagrammatic illustration of customer to legacy application communications through the Starbucks dispatcher and application proxies.
  • FIG. 14 is an illustration of the message formats passed between the dispatcher and the proxies at the web-server-dispatcher communications interface.
  • FIG. 15(a) is an illustration of the messages created by the client Java software to be transmitted to the StarWeb server via single or multiple parameters to the POST operation.
  • FIG. 15(b) is an illustration of the Java client message as decoded by an RMI server into Java object method calls.
  • FIG. 16 is a screen capture of the InBox Java applet as launched from the home page of the present invention.
  • FIG. 18 is a web enabled application architecture model used in the present invention.
  • FIG. 19 is a diagrammatic view of the Common Object BackPlane architecture used in the present invention.
  • FIG. 20 is a simplified view of the Common Object Model-View-Controller event processing as enabled in the present invention.
  • FIG. 21 is a simplified view of the Common Object entitlements architecture illustrating user privileges and authorizations to view disparate application reports and to request application services.
  • FIG. 22 is a simplified view of the interaction between security classes in the Common Objects implementation of the present invention.
  • FIG. 23 is a simplified view of the present invention which details the interfaces between the internal and external systems of the present invention, the application GUIs, the application servers, the StarOE server, the universal in-box and integrated messaging systems.
  • FIG. 24 is a diagrammatic view of the StarOE (Order Entry) application architecture.
  • FIG. 26 is a screen capture of a New User Java applet that may be used to add or modify a user for the StarOE (Order Entry) application.
  • FIG. 27 is a set of Java classes for creating messages to be sent tot the StarOE server.
  • FIG. 28 is a high level context diagram of the systems used by StarWRS (web reporting system) of the present invention.
  • FIG. 29 illustrates the next level of logical processing used by the web reporting system illustrated in FIG. 28.
  • FIG. 30 is a graphical representation of the physical databases created for use with the web reporting system of the present invention.
  • FIG. 31 is a graphical illustration of the physical and user determined events that interact with the Java applets of the present invention to drive the web reporting system of the present invention.
  • FIG. 32 illustrates the message interface between the web reporting system of the present invention and the Report Manager Server.
  • FIGS. 33(a) and 33(b) illustrate typical web page screens having a Star WRS applet embedded therein.
  • FIG. 34 is a sample physical data model of a report template screen control object used by the report requester of the present invention.
  • FIG. 35 is a sample physical data model of a metatree hierarchical screen control object used by the report requester of the present invention.
  • FIG. 36 is a diagrammatic illustration of a horizontal scaling paradigm for the Perspective backend server to provide capacity for future growth.
  • FIG. 37 is a diagrammatic illustration of the high level process flow for the 800 network manager system, as adapted for use in the present invention.
  • FIG. 38 is a diagrammatic illustration of the high level process flow for the HyperScope viewing and network reporting system, as adapted for use in the present invention.
  • FIG. 39 is a diagrammatic illustration of the front end of the present invention, illustrating the client system interaction with the call manager data server.
  • FIG. 40 is a diagrammatic illustration of the software architecture for the call manager system illustrated in FIG. 39.
  • FIG. 41 is a diagrammatic illustration of the main GUI objects of the client interface code, resident with the client browser.
  • FIG. 42 is a diagrammatic illustration of the application proxy server of the present invention.

Abstract

A network management system allows a customer of a communications service provider to manage communications services using a web server that communicates with a client web browser. The customer is able to view information associated with various communications systems and services via the client web browser. The customer is also able to submit requests for changes in service to the web server.

Description

    FIELD OF THE INVENTION
  • The invention relates to data management and communications, and particularly to providing access to secure data and communication management tools for an enterprise to a plurality of customers over the Internet which is an insecure communications network. The enterprise described is a telecommunications network, and the tools include management and reporting tools to enable the customers of the telecommunication network to manage and obtain reports and data pertaining to their business on the network.
  • BACKGROUND OF THE INVENTION
  • 1. Introduction
  • Computer user interfaces have undergone dramatic changes over the past forty years, evolving from the simple, line-oriented, prompt-response systems of teletypes, to the forms-based interfaces of dumb terminals, to today's graphics-based, windowing interfaces like Windows 95. The genesis of the modern GUI paradigm in fact dates back some thirty years to work done at the Xerox Palo Alto Research Center which pioneered the usage of the WIMP (Windows, Icons, Menus, and Pointing Devices) interface. The introduction of Apple's Macintosh computer in 1984 brought the WIMP interface to a growing population of personal computer users. The WIMP's evolution from research project to universal standard culminated in 1990 with Microsoft's release of the 3.0 version of Windows. In the many years since its introduction at Xerox PARC, the WIMP interface has been enhanced and refined by decades of human factors engineering, and today's computer users enjoy the benefits of an interface paradigm that has been highly optimized in terms of efficiency, ease-of-use, and intuitive operation.
  • In 1992, CERN's Tim Berners-Lee conceived of combining a hypertext browser that interpreted a page description language retrieved from document servers accessible by name over a simple network protocol, and so created the framework for the Worldwide Web (take a look at his original vision document, dated somewhere around 1991 or 1992, at http://www.w3.org/pub/www/Summary.html). Shortly afterward, Mark Andreeson (who would later found Netscape) created a GUI-based HTTP browser called Mosaic that set the current standard for browser interface design. Prior to Berners-Lee's innovation, data resident on the Internet was accessible only via arcane utilities such as FTP, Gopher, and WAIS, making it inaccessible to most people. Hypertext proved to be the perfect medium for navigating the disparate datastores of the Internet, and for the first time made Internet-based data accessible to casual computer users.
  • While this particular application of hypertext was new, hypertext itself had been around for quite some time. The Mosaic interface was in fact quite similar to interfaces commonly used by on-line help systems and computer-based training (CBT) software. The explosion of websites and Internet users however brought hypertext-based information access to a massively greater audience than ever before, and the web browsing paradigm has proven so usable by novice computer users that many aspects of today's browser-based interfaces are being incorporated into the design of transaction processing and decision support systems.
  • This Application Style Guide details the elements comprising today's user interface standards, and explains how they may be best used to create highly usable application interfaces that offer consistent operation across multiple software application suites.
  • 1.1. User Interfaces and the Web
  • Browsers have been developed using the standard interface elements of current GUI environments, but have specialized the ways in which those elements are combined to navigate and view hypertext documents. Browsers provide an environment that tightly and seamlessly integrates multiple unrelated applications and have eliminated many key aspects of the standard GUI desktop metaphor.
    FEATURE DESKTOP BROWSER
    Containers Windows Documents
    Layout Overlapping Windows, Tiled Frames, Flat
    Layered
    Navigation Menus, Window Activation, Links, Images,
    Icons Forward/Backward Buttons,
    Bookmarks, History
    Interaction Pop-up Dialogs Forms
  • Web-based applications may be partitioned into four general classes as shown in FIG. 1.
    Figure US20050172018A1-20050804-P00001
    Quadrant Application Type Description
    1 Marketing Website Provides read-only documents to
    the public. Informs users about
    a topic such as a business or
    specific subject area.
    2 Internal Provides read only documents to
    Collaboration employees. Supports information
    sharing across an enterprise.
    3 Business Support Traditional MIS transaction
    Systems processing systems built using
    web technologies.
    4 Electronic Extranet applications providing
    Commerce established customers, business
    partners, or the general public
    with secure access to internal
    processing systems.
  • While pure browser-based interfaces are excellent for document retrieval, navigation, and simple forms input, they greatly limit the power and flexibility needed for ease-of-use in transaction processing applications. For complex data entry and editing tasks, simple form entry quickly becomes inefficient and cumbersome to use. For tasks requiring the concurrent manipulation of multiple data views, the flat, document based interface of browsers entails extensive switching between pages, and does not readily support the side-by-side viewing of information gathered from multiple sources. Additionally, form processing is batched, i.e., the user fills out a form and then submits it to a web server for processing. This model does not allow for the far higher, more granular level of interaction required for extensive data manipulation.
  • In addition to user interface requirements, the web application spaces also differ with respect to network bandwidth constraints as summarized in FIG. 2.
    Figure US20050172018A1-20050804-P00002
  • Web browsers have been designed for hypertext document navigation and viewing, an application requiring relatively infrequent user interaction. In hypertext applications, the user retrieves a page, views it for some period of time, and then requests another page some time later. For these types of applications, the batched input model works extremely well. Transaction processing and data manipulation systems must support nearly continuous interaction with the user. For these applications, the batched input model is very slow and inefficient, especially over low bandwidth connections. These applications can provide far speedier and extensive user interaction by integrating local interaction with locally cached data.
  • Finally, it should be noted that a trend is under way to trim down front-end systems into “thin” clients. In the extreme case, the front-end system provides no data manipulation capabilities whatsoever, but simply collects data from the user and forwards it to the back-end for all processing. These systems are quite similar architecturally to the pseudo-conversational programming techniques employed within IBM's CICS transaction processing environment. In pseudo-conversational programming, the completion of form input triggers the execution of a program that processes that input and terminates immediately after sending the next input form to the user. This style of programming has proven to be far more complex than simple “event-driven” programming in which a continuously running program provides continuous interaction with the user. This complexity arises from the necessity of employing complicated schemes to carry data from each user interaction to the next. In event-driven programs, such “state” information is constantly maintained and updated without need to constantly save and restore after each user interaction.
  • In summary then, web-based transaction processing systems require elements of both the desktop- and browser-interface paradigms.
  • 1.2. GUI Toolkits
  • Over the years, the major computing environments have each developed their own user interface standards and software libraries called “toolkits” which allow developers to create applications that conform to these standards, and integrate with the platform's window manager or desktop.
    PLATFORM USER INTERFACE STANDARD AND TOOLKIT
    Unix Motif/Xt
    Windows Windows SDK
    Macintosh Mac Toolkit
    OS/2 Presentation Manager/CUA
    Java AWT
  • Although these standards differ in specific areas of look-and-feel, they each implement essentially the same user interface and interaction model. All employ the same set of standard user interface elements. (In fact the Java AWT API provides an abstraction for this common interface standard and is implemented over each of the native toolkits so that Java applications assume the look and feel of whatever platform they run on).
  • Employing a consistent set of user interface elements across an application suite achieves a very high degree of look-and-feel standardization.
  • 1.3. Standard User Interface Elements
  • As previously mentioned, GUI toolkits share a common vocabulary of user interface elements. The following table lists the most common ones. (A complete treatment of this subject may be found in any of the several user interface style guides listed in the References section of this document.)
    ELEMENT DESCRIPTION PURPOSE/USAGE
    Window Movable, resizable Organize application elements into
    frame containing screen regions. Provide user-controlled
    other UI elements placement of application elements to
    facilitate simultaneous viewing and
    manipulation.
    Dialog A pop-up window Elicit input from the user including field
    providing form-style entry, confirmation of some action, or
    for form style input acknowledgment of an alert
    Push Button Graphical push Used for initiating an action or response
    button that can be
    depressed using the
    keyboard or mouse
    Radio Button A graphical button Used for selecting from mutually
    whose selection exclusive alternatives. Should not be
    automatically de- used to initiate an action (Use a push
    selects any radio button for actions).
    button belonging to
    the same radio
    button group
    Checkbox Box that may be Used for selecting or deselecting one or
    checked or several options from a group. Should not
    unchecked be used to initiate an action (Use a push
    button actions).
    Scrollbar A graphical slider Used for windows contents horizontally
    that can be set to or vertically
    positions along its
    length.
    Menu bar A list of options Used to initiate actions
    presented in a
    horizontal list
    Pull down A list of options that Used to present menu “sub-options”
    Menu are presented in
    response to a Menu
    Bar selection
    List Box Scrollable item list Used for browsing and selecting items
    Text Read-only text Label input fields or provide other types
    of read-only text information
    Text Field Input field accepting Used to accept textual input from user
    keyboard input
    Multi-line Input field accepting Used for accepting free form text input
    Text Field multi-line input such as comments
    Pop-up Menu An item list that Allows users to select a field entry from
    pops up over or a list of allowable values
    drops down beneath
    an entry field
    Icon Graphical Provide small, movable representations
    representation of an of objects
    object (such as a
    program or
    document)
    Toolbar Row or column of Provide a button-menu of commonly
    graphic buttons used commands
  • 1.4. Extended User Interface Elements
  • In addition to the standard user interface elements, several elements have evolved outside of most GUI toolkits and converged on a common model for presentation and usage. Although not included in the primary GUI toolkits, these elements are widely available from third party providers.
    ELEMENT DESCRIPTION PURPOSE/USAGE
    Table Tabular grid displaying Used wen a simple
    columns of data, sometimes list box is
    allowing editing insufficient, e.g.,
    for display of data
    requiring cell or
    column selection or
    formatting, or in-
    cell editing
    Chart Graphical data Charting applications
    representation including
    plots, pies, and bars
    Tree Hierarchical item display Viewing and selecting
    supporting “expand” and items organized into
    “collapse” operations hierarchies
  • 1.5. Web Interface Elements
  • Web browsers created a specialized user interface standard for hypertext navigation. Although no truly new interface elements were introduced by the web browsing paradigm, the navigation paradigm has proven applicable to a wider range of tasks than simple traversal of hyper-linked documents.
    ELEMENT DESCRIPTION PURPOSE/USAGE
    Link Specially formatted Initiates retrieval and
    text display of related page
    Image Map A “click-able” Pictures can be used as
    image links
    Navigation Bar A list of items Navigation menus for a site
    arranged together in
    a row or column on
    a page
    Forward-Back Buttons included Initiates retrieval of pre-
    Buttons in the browser's viously displayed pages
    toolbar according to their original
    retrieval sequence
    Frames Tiled Windows Creating separate navigation
    regions on the display
    Bookmarks List of pages User maintained list of
    frequently visited pages
    History List of pages System maintained list of
    previously visited pages
    URL The network Allows users to initiate
    address name of page retrievals by name
    a page
  • 1.6. Key Website Design Concepts
  • 1.6.1. Site Layout
  • Websites are typically organized in hierarchies, rooted at the site's “home page.” Site layout is quite similar to the organization of documents or outlines where chapter overviews or headings introduce or summarize sub-sections and document detail.
  • 1.6.2. Navigation Bar
  • Navigation bars are similarly formatted and located in the same relative position on each page, (e.g., on the top, on the left, or on the bottom), providing the user with a consistent set of links to major sections of the site.
  • 1.6.3. Hierarchical Navigation Links
  • For hierarchically organized sites, it is useful to consistently provide up, down, previous and next links on each page. Such links are especially useful in situations where a user enters a site in its “middle” as the result of having previously bookmarked a page, or linking to a page via a search engine.
  • 1.6.4. Hypertext Links
  • Keywords appearing within text should be included as links to detailed information about the keyword. This allows for natural, ad hoc document browsing. Explicit link references, e.g., For more information about our professional services click here, is generally discouraged in favor of implicit references, e.g., We provide a variety of professional services.
  • 1.7. Browser Interface Limitations
  • The browser interface has been optimized for user interaction with hypertext documents. As such, it centers about the retrieval and viewing of pages. Simple form input fits well within the browser framework, since forms are little more than pages with input fields, similar to the fill-in-the-blank, paper forms of the physical world.
  • Sophisticated data manipulation applications however do not fit cleanly within the hypertext document model. User interaction cannot always be shoehorned into the page-submission-retrieval model. Data manipulation typically works not at the page-level, but at the much more finely-grained record-level, and complex data manipulation applications do not typically lend themselves readily to the linear navigation models of document browsing. Key browser navigation devices such as forward-back buttons have no place in the context of non-linear, event-handling applications providing ready access to a multitude of operations and data views.
  • 1.8. Key Application Interface Concepts
  • This section describes several of the most fundamental aspects of modern Graphical User Interface design. Good interfaces are:
      • Clear. A clear interface helps prevent user errors, makes important information obvious, and contributes to ease of learning and use.
      • Consistent. A consistent interface allows users to apply previously learned knowledge to new tasks. Effective applications are both consistent within themselves and consistent with one another.
      • Simple. The best interface designs are simple. Simple designs are easy to learn and to use and give the interface a consistent look. A good design requires a good balance between maximizing functionality and maintaining simplicity through progressive disclosure of information.
      • User-Controlled. The user, not the computer, initiates and controls all actions.
      • Direct. Users must see the visible cause-and-effect relationship between the actions they take and the objects on the screen. This allows users to feel that they are in charge of the computer's activities.
      • Forgiving. Users make mistakes. Users' actions should be reversible. A good interface facilitates exploration and trial and error learning.
      • Provide Feedback. Keep the user informed and provide immediate feedback. Also, ensure that feedback is appropriate to the task.
      • Aesthetic. Every visual element that appears on the screen potentially competes for the user's attention. Provide an environment that is pleasant to work in and contributes to the user's understanding of the information presented.
  • 1.8.1. Modal vs. Modeless Interfaces
  • Modal interfaces are those that force a user to explicitly switch between single-operation modes. For example, a customer record maintenance system could be designed so that a user must first select an action to be performed such as “add”, “change”, or “delete”. After entering, for instance, “change mode”, the user would specify a customer key, update the desired fields, and then commit the change operation. If the user then wanted to add a new customer record, he would exit “change mode” and enter “add mode”.
  • Modeless interfaces provide access to all operations at all times. In our example, instead of entering different editing modes, the user would instead work within a multi-function environment in which all functions are readily available. A customer record could, for example, be added and immediately changed without having to switch from “add mode” to “change mode”.
  • It is generally recommended that modeless interfaces be preferred to modal ones.
  • 1.8.2. Object-Action Interface Paradigm
  • Modal interfaces are implemented through action-object interfaces. Modeless interfaces are implemented through object-action interfaces.
  • In the object-action paradigm, a user first selects some object, and then selects from a set of available actions applicable to the selected object-type. For example, modern word processing programs implement copy and paste via an object-action mechanism: The user selects some text (the object); copies it to the clipboard (the action), selects the insertion point (the object); and pastes text from the clipboard (the action). Early word processors implemented copy with a cumbersome, modal operation. Selecting the copy command would place the user into “copy mode” which would prompt “Copy what?” and “To where?”. In other words, copy was implemented as an action-object operation where the user first selected the operation, copy, and then the object, the source text.
  • Object-action is seen as a far more intuitive analog of real-world object manipulation. In the real-world, for instance, you grab a piece of paper (the object). You cut the paper (the action). You then fold the paper (another action on the previously selected object). People don't typically operate modally in the real world. In the modal, action-object version of paper cutting, you pick up a pair of scissors (enter “cut mode”) and then go looking for paper that needs cutting.
  • 1.8.2.1. Drag and Drop
  • Drag-and-drop is a graphical implementation of the object-action interface paradigm. An object is selected, and dragging it to another object invokes an action. Drag-and-drop user interfaces are often referred to as object-oriented interfaces since the act of dropping one object on another effectively invokes a method on the receiving object, with the dropped object supplied as an argument to the method.
  • 1.8.3. Maintaining the Context
  • It is important to maintain a user's sense of continuity when working within a program. Abrupt changes in the flow of an electronic dialog disrupt continuity, impeding user operation of a program. Pop-up message boxes provide a mechanism for calling the user's attention to some condition, while maintaining the context of the underlying window of operation. Full screen messages effectively “pull the rug out” from under a user, wrenching his attention away from the task at hand, which can be confusing and disruptive to the workflow.
  • Another way in which context can be lost is through excessive nesting. Nesting is implemented through mechanisms such as pop-up child windows or cascading menus. Each successive level takes the user to some deeper level of detail. It is generally recommended to design nested interfaces to a maximum of two levels from the top, since users tend to “get lost” at deeper levels, losing track of the navigational flow.
  • 1.8.4. Forgiveness
  • Interfaces are made forgiving through support for undo, confirm, and revert operations. Undo reverses the previous operation. Confirm is a request for a user to confirm some action (usually an irreversible one) before its execution. Revert is an operation that discards all changes made since the last save operation (checkpoint).
  • 1.8.5. Providing Feedback
  • It is important to keep users engaged by an application, and informed about the status of executing operations. Results of actions should be indicated through a consistent status reporting mechanism such as a log window or status line. Currently selected objects should be indicated through visual highlights. It is especially important to indicate long-running operations through mechanisms such as changing the cursor to an hourglass. Progress of exceptionally long-running operations should be communicated through mechanisms such as progress meters.
  • 1.9. Browser/Application Integration: The Webtop
  • The requirements of hypertext document browsing and data manipulation require interface specialization in different areas. The focus of browsers is to provide for easy navigation of hyper-linked pages, while applications provide for the simultaneous viewing and editing of structured information such as record-oriented data. The tremendous success of the browser paradigm however demonstrates that the browser interface is extremely intuitive and easy to use for both advanced and casual computer users. It would seem advantageous then to incorporate into application interfaces the applicable elements of the browser paradigm. The following table describes the incorporation of browser interface elements to application interfaces.
    ELEMENT USAGE COMMENTS
    Link Launching Applications can be launched from
    applications text links mentioning their
    Navigating textual functionality. Application suites can
    reports or lists thereby be cataloged, indexed and
    accessed within overview and help
    documentation, allowing new users to
    easily locate applications performing
    a needed function within the
    background context of the application
    domain.
    Summary and detail reports lend
    themselves naturally to formatting,
    display, and navigation as hypertext.
    Image Map Launching Used like links to launch
    applications applications.
    Navigation Launching Used like links to launch
    Bar applications applications.
    Forward- Browsing textual Summary and detail reports lend
    Back reports or lists themselves naturally to formatting,
    Buttons display, and navigation as hypertext.
    Frames Providing regions Applications can direct output to the
    for displaying browser for display
    hypertext out-
    put from
    applications
    Bookmarks Launching Bookmarks provide user-defined
    applications shortcuts for initiating applications
    History Launching System maintained list of shortcuts to
    applications recently executed applications
    URL Launching Launching applications by name
    applications
  • The browser replaces the conventional desktop with a “webtop”, primarily providing application location and launch services, and displaying application-generated textual information such as reports and help. Most other application operations are handled through conventional GUI interface mechanisms, possibly including overlapping windows not contained within the display area of the browser itself.
    APPLICATION
    LOCATION USAGE COMMENTS
    Within a Simple, single It may be appropriate
    Document Page view applications to embed an application
    within a document page
    for applications that
    provide a single, view
    or editing interface.
    In separate Complex, multi- Users can benefit great-
    windows view applications ly from the ability to
    view and manipulate
    several data objects
    simultaneously, and
    concurrently use the
    browser without affecting
    the application's
    visibility.
  • 1.10. Designing to the Most Common Denominator
  • When designing an interface it is important to consider the display capabilities of the target execution environments. Fortunately, today's lowest common denominator is quite high. Still, innovations are constantly being introduced. The advent of the Web has enabled major software vendors to make major new releases available as frequently as every six months.
  • It makes sense to incorporate non-standard platform features only in cases where significant value is added to the product by doing so, and where it is anticipated that a significant user-base will be enabled with those features within a reasonable time-frame. Interfaces should be designed to provide full underlying product functionality through features of the lowest or perhaps the most common denominator. Interface mechanisms built on non-standard platform functions should be optional product components, and optimally should appear automatically on platforms on which they are supported.
  • 1.11. Implications of Next Generation Access Devices
  • As next generation access devices such as hand-helds and WebTV's become mainstream, it is important to consider whether these devices provide important outlets for deployment. These devices pose serious constraints including:
      • Extremely small displays
      • Little memory
      • No disk drives
      • No mice
  • Capability to be deployed on these devices can necessitate maintaining radically different user interface designs for a single system. As discussed later in this document, it is critical that user interface programs be developed with very clean decoupling of presentation logic from processing logic, so as to allow maximize code reuse across a wide range of presentation formats.
  • Previous discussions have discussed interface elements provided via the windowing system, toolkits, or off-the-shelf class library. Application suites built upon a common set of these interface elements achieve a high degree of consistency. This section discusses consistency achieved by standardizing the specific usage and interaction of lower level elements to produce functionality specific to the application suite or problem domain.
  • 1.11.1. Basic Elements
  • Several key elements are those that identify and display applications domain objects. Some important areas that need to be standardized within and between applications include:
      • Commands—command (action or operation) names should be the identical, e.g., don't label the same function as “change” in one application and “update” in another.
      • Menu Structure—Top-level- and sub-menus should be organized consistently. Commands common to several applications should always be located in the same place. Related, application-specific commands should also be located consistently, by clearly determining the top-level menu structure to be used by all applications, and providing a detailed description of the command types to be organized under each.
      • Field Names—Display fields mapping to the same underlying data object should be identically labeled. This can be accomplished through keeping names consistent with those recorded within a meta-data repository such as a data dictionary.
      • Object Views—Objects aggregated from primitive or component types should also be displayed and modified consistently. For example, if a pop-up window is used to display detailed customer information, the same layout should be used within all applications when displaying customer detail.
      • Object Editors and Wizards—Similar to viewing, identical editors and “wizards” should be used across all applications for updating identical object types.
  • 1.11.2. Complex Elements
  • Other important aspects of application standardization involve standardizing the use of complex interaction elements such as:
      • Charts, Trees, Query Dialogs, Result Tables, Reports
      • Charts—Identical formatting and graphical data interaction should be used for charting displays such as line plots, bar charts, pie charts, and geographic maps.
      • Trees—Identical formatting, expanding and collapsing should be used for hierarchical data displays.
      • Query Dialogs—Standard dialog windows should be used to prompt the user for query criteria such as selection, sorting and filtering.
      • Tables—Standard tabular presentation and interaction should be used for rows of columnar data.
      • Reports—Report generation and viewing should also be handled by standardized interface facilities.
  • 1.11.3. Data Viewing
  • Database-type viewing operations are extremely common and so should also be standardized. Specifically, standard mechanisms should be developed to handle:
      • Selection—Specification of the which columns to display, and the sequence in which to display them.
      • Sort—How to specify the keys and initiate a sort on a tabular display.
      • Filter—Specification of criteria for including or excluding rows from a tabular display.
      • Display Medium—Selecting the display medium, e.g., table or chart.
      • Browse—The mechanisms used to traverse a data series.
      • Edit—How insertions, updates and deletions are performed.
      • Query—How data retrievals are initiated.
  • 1.11.4. Data Navigation
  • Related to data viewing, is how navigating among data objects should be handled. Operations requiring standardization in this area include:
      • Collapse—Hiding data rows subordinate to a summary row.
      • Expand—Displaying detail below a summary row.
      • Aggregate—Specifying the summarized display of a set of detail rows.
      • Drill Down—Open up a new detail view related to a summary view.
      • Detail—Display the extended list of attributes associated with an object.
  • 1.11.5. Window Management
  • Different windowing systems provide for different window management schemes. Generally the host windowing environment provides window management functions such as tile and cascade as a means of organizing open windows. These different schemes should be considered when developing systems that will target multiple environments.
    ENVIRONMENT SCHEME DESCRIPTION
    MS Windows Multiple Document A top level window contains
    Interface (MDI) and clips its children
    Motif “Peers” Each child window
    comprising an application is
    rendered as a separate
    overlapping window on the
    desktop
  • 1.11.6. Geometry
  • Geometry refers to the method used to determine the size of a window and relative position of its components. Modern GUI toolkits provide “layout managers” that dynamically position components according to the available screen size. Dynamic layout management should be used as much as possible. It is also important to consider the smallest display resolution necessary to display an application.
  • 1.12. Application Backplane Services
  • In the “thin client” paradigm, monolithic applications are broken into small applications components loaded as needed by a user. Standard mechanisms should be established to allow seamless integration of small, modular application components.
  • 1.12.1. Application Installation Services
  • 1.12.2. Application Management Services
  • 1.12.3. Inter-Application Communication Services
  • 1.12.4. Component Architectures
  • 1.13. User Customization
  • Users should be entitled to customize the application, at least within reasonable extents. For example, the following customizations would be allowed:
      • Entitlements
      • Stylesheets
      • Font styles, window colors
      • Data Views
      • Selection, sort, filter, aggregation, tabular or chart, detail, browse, edit, query
  • 1.14. Internationalization
  • The ability to write an application that supports more than one human language is essential as computers proliferate into more and more areas of the world. A global marketplace provides obvious new opportunities for growth, and many companies are taking advantage of this potential. Especially alluring is the prospect of existing applications gaining international market share without rewriting them.
  • Unfortunately, internationalizing an existing application is a nontrivial task. Many issues go beyond simply translating the language used in the application. For example, date, time, number and currency formats change; the language may use a different character set; or foreign hardware and operating system platforms may be incompatible with the original application platform. All of these issues, and others, need to be addressed.
  • The most common method for internationalizing software has been to retrofit the application, redesigning and rebuilding much of the application. This is expensive, often costing as much as the original development and resulting in new sets of source code to support. International language versions of an application often ship months or even years after the native language version, thereby missing significant revenue opportunities. Needless to say, developers have been looking for a better method for supporting multiple languages.
  • Internationalization, or globalization, is the act of creating a program that can support any written language. On the surface, this sounds straightforward, simply translate the text. In practice, however, it is much more complicated. Languages are complex when you consider that some languages are alphabetic, some are syllabic, and others are ideographic. And the language is just the tip of the iceberg. Internationalization needs to address a wide range of issues, including currency, date, time, and number formatting, and so forth.
  • 1.14.1. Character Rendering
  • Character rendering, the display of characters on a screen, is a fundamental issue in internationalization, sometimes abbreviated as I18N because it starts with an “I,” is followed by 18 characters and ends with an “N.” In order to translate an application's text into another language, it must be possible to display the characters associated with that language. For example, to display Japanese characters on the screen, a font must be available that includes Japanese characters. Usually, the operating system makes fonts available. Whether the operating system is DOS, Windows, OS/2, or Motif is not important at the conceptual level. What is important is that the character exists and can be displayed. In the U.S. and most European countries this is not a problem. The standard ASCII character set, and its many variants, supported by popular operating systems, generally includes enough characters to support translation into Latin derived languages. However, non-Latin languages such as Asian and Middle-Eastern languages pose difficulties.
  • Fortunately, most of today's major operating system & browser vendors are working to support non-Latin languages. Almost all operating systems & browsers are now available in Japanese, with Microsoft Windows now available in over 20 languages including Japanese, Chinese, Korean, Hebrew, and Arabic. For translators, this means that operating system fonts may now display most international characters. While all of this is promising, many problems still exist. Each language version of the same operating system may pose specific difficulties, and not all operating systems contain the fonts necessary to support all languages. Current operating systems contain little support for displaying multiple languages simultaneously. And support is limited for difficult-to-render languages like Arabic, which has multiple visual presentations for the same character code.
  • 1.14.2. Input Methods
  • The flip side of rendering is the input method. An input method is the means whereby an application user, or localizer, types characters.
  • Obviously, Arabic and Japanese users have a totally different input method for entering their native languages into the computer. Right to left (Middle East) editing, multiple keystroke character entry (Asia), and the combination of keyboard and mouse character entry are good examples of input method complexities often overlooked by American and European application programmers.
  • Each input method requires a different approach. Asian versions of Windows, for example, use the mouse, or a keystroke combination, to toggle different input method modes, while composing characters in the actual field being edited. The visual effect is unexpected to a programmer not exposed to the method. Additionally, when using DOS/V to support an Asian language, the “Alt” key is used to access an input method on the last line on the screen. The “last line” input method is used to compose characters which are then transferred into the current field using “Enter.” Clearly, supporting multiple input methods within a single set of source code can be difficult and expensive, and isn't generally practical.
  • 1.14.3. Character Mapping
  • Different operating systems often use different internal character representations, Unix frequently uses a character representation known as “EUC,” while Japanese Windows uses “Shift-JIS” and Macintosh uses “WorldScript”, which creates obvious difficulties for developers concerned with cross-platform issues as well as internationalization. Unfortunately, the same problems confront single-platform developers, too. Different language versions of the same operating system may also use different internal character representations, Windows offers a good example. Without the use of an internationalization tool, the Japanese Windows version of an application will not run on Chinese Windows, neither version will run on English Windows, and all versions of an application must treat character mapping differently.
  • For the programmer or Web site designer, this poses a great challenge. Ideally, a single character representation supporting all languages would be the most generally applicable at translation time. Since each operating system and language combination supports different character representations, this is usually not possible. The difficulty lies in designing and coding conversion tables to change an application's internal character representation into the representation used by an operating system, especially since this may need to be done differently for each operating system.
  • 1.14.4. Collation Sequences
  • Collation, or sorting of different languages, is another complex yet often overlooked internationalization issue as each individual language sorts itself uniquely.
  • U.S. programmers generally think of text sorting as a simple table-based algorithm. This is not the case in most countries and in most languages. Even in the U.S., telephone directories often sort last names such as “Macfarlane” (all one word) and “Mac Farlane” (two words) together rather than placing the version with the embedded space before the name “Macallister,” as a simple table-based sort might suggest.
  • Outside the U.S. the complexity increases. In Spanish, the letter combinations “ll,” “rr,” and “ch” have been considered as individual characters for the purposes of sorting, while treated separately for the purposes of storing and rendering. In Asian languages the difficulties escalate dramatically. Characters, syllables, and proper names may all create different sorting complications, and often the national standards themselves are unclear.
  • 1.14.5. Character Rendering/Hardware Support
  • When writing an application for international distribution, the programmer must realize that different hardware platforms and operating systems dominate the computing landscape of each locale. Nonstandard hardware, by U.S. and European perception, is the norm in Japan, for example. In Europe, keyboard layouts vary subtly in order to support the unique input needs of individual locales. Due to the huge number of possible combinations and the inaccessibility of translated documentation it is expensive to test the application sufficiently, but must be done in order to fully support all combinations of input and output devices.
  • 1.14.6. Internal Representation and Portability
  • The internal representation of characters is the most critical of all issues in dealing with internationalization. In order to support all language versions and operating system versions of a product with a single set of source code, it is necessary to have a single standard character representation.
  • Unicode support is vital to completely globalize an application. Without a unified character standard, moving data files from one platform to another is difficult. A good example of this difficulty might be moving files for Windows-J Shift-JIS format, to Unix which uses the EUC format.
  • Even though both files contain Japanese language characters, both are incompatible due to their character representation and must be mapped to a new code table before use.
  • The key to avoid these kind of problems is to ensure that all characters and strings are encoded using Unicode. Unicode is a single table of 2{circumflex over ( )}16 (or 65,536) members containing the fundamental characters of written languages worldwide. The advantages to this architecture are numerous enough to warrant detailed attention. It is enough here to note that Unicode support is vital to completely globalize an application. Unicode allows a single source code strategy and general operating system independence, which cannot be addressed adequately in any other implementation.
  • 1.14.7. The Unicode Standard
  • Any internationalization discussion would be incomplete without discussing Unicode. To provide truly international language support, a program must be capable of using the Unicode character set. (A complete description of the Unicode standard can be found in The Unicode Standard, published by The Unicode Consortium. They can be contacted at Unicode, Inc., 1965 Charleston Road, Mountain View, Calif. 94043, at phone number 1-415-961-4189, or unicode-inc@unicode.org.)
  • In 1984, the International Organization for Standardization (ISO) started work on a worldwide character set. ISO published a report in 1991 called the Draft International Standard (DIS) that described the work pertaining to the ISO10646 standard which described the universal character set. This standard was rejected when voted on, however, because another group was completing a standard called Unicode and there was concern that two competing standards would further complicate the issue. Thus, ISO and the Unicode Consortium, a nonprofit organization created to develop and maintain the Unicode standard, joined forces and co-developed a standard. Unicode was modified to be compatible with the 16-bit specifications of ISO10646, ISO10646 also defines a 32-bit standard, but also extends the specification somewhat.
  • The Unicode standard provides a comprehensive character set and sets rules for its use. Currently, the character set contains definitions for more than 30,000 characters. The character set is organized as a table of 16-bit values and thus is capable of representing 65,536 characters. The characters represented in the Unicode character set include alphabetic, syllabic, and ideographic characters as well as many mathematical and scientific symbols and dingbats, etc.
  • Clearly, Unicode takes internationalization to a higher level by providing a standard character set from which a program can obtain character definitions for any of thousands of characters. The Unicode character set contains character definitions for most written characters in most languages, and expansion room for more. The Unicode character set also provides information on how characters should be arranged such as the placement of characters in some languages, such as Thai, that depend on the context of surrounding characters.
  • 1.14.8. Internationalizing an Application
  • Internationalization is a two step process: enabling and localization. In the enabling phase the programmer adds support for multiple languages and locales at the code level. During the localization phase the application get translated, preferably without recompiling the source code.
  • 1.14.8.1. Internationalizing an Application
  • Internationalization is a two step process: enabling and localization. In the enabling phase the programmer adds support for multiple languages and locales at the code level. During the localization phase the application get translated, preferably without recompiling the source code.
  • 1.14.8.2. Localization
  • Localization is the process whereby a program is adapted to use data formats appropriate for a particular locale. This means that the program formats date, time, currency, and number fields, and displays text in a manner consistent local practice. Using one of the examples stated above, a currency-formatted Zinc object might appear as $1,234.50 in the U.S., while appearing as £1.234,50 in the Netherlands.
  • 1.15. Consistency through Inheritance
  • The easiest way to achieve consistency is to require that all developers use the same code base, and derive custom GUI elements directly from common toolkits.
  • GUI Toolkit. Reusable view, menu and command objects. Standard third-party GUI classes.
  • 1. HTML/Web Application Content Guide
  • This section is intended to outline the most common approach to creating applications that are completely based on HTML and the Web. Typically, these applications are relatively simple, and are intended for information distribution, rather than extensive data manipulation.
  • For example, companies typically place the employee handbook on the intranet. Companies typically spend a lot of money printing and distributing the employee handbooks, but these books are used infrequently by the employees. The cost per employee for the paper approach is rather high. This cost is dramatically reduced by placing the employee handbook on the corporate intranet. Not only does this eliminate the printing and distribution costs, this approach also ensures that the employees always have the most up to date information.
  • 1.1. Purpose of the Web Site
  • Early in the process of creating the web pages, the author should spend some time articulating the goals for the documents. Web pages can be categorized by purpose. Being responsible to a specific purpose can dictate certain design choices.
  • 1.1.1. Are the Web Pages Providing a User Interface to a Service?
  • HTML browsers can be used with some facility to create form-based user interfaces (FUIs!) that allow people to choose products to buy, configure computers or search for information, to name only a few uses. Web pages that present these kinds of user interfaces must be easily understood with a minimum of study and documentation. Well done, they can be easily scanned and the expected actions inferred from the layout and controls. Pages tend to be short, uncluttered, and easily navigable.
  • For example, this can a bookstore interface that allows people to search an inventory list and place orders on-line.
  • 1.1.2. Are the Web Pages Trying to Sell Products or Services?
  • Information presentation on the web has many guises. If the pages are selling something, then the pages need to present things very succinctly, especially if they are to “hook” a person who may be a reluctant reader. Everything in the pages that require a person to search, navigate or otherwise use their browser's controls will reduce the chances of getting them to read to the end of the pages, and hence the sales pitch. Lots of detail and presenting many branches (which may work well for other types of web information) can confuse and frustrate your audience. This graphical product presentation is easy to scan, and allows easy recognition and evaluation of potential products. (It's also a product line well-suited to this presentation, being hard goods that photograph well, rather than less visually differentiated goods, or worse, services.)
  • 1.1.3. Are the Web Pages Presenting Information to an Interested Audience?
  • Sometimes, the Web site author can assume that many of the site readers will arrive at the site because they need and want the information being presented. In that case, the author can use longer pages, present more detail, and worry less about “channel-switching” behavior on the part of the audience. There's a tension between the amount of “packaging” that is done to the content and the audience's desire to get the information they need as efficiently as possible. What might be a good format for a product advertisement could fail dismally when presenting product documentation because of the frustration incurred when people are forced to navigate and visualize a web of short segments, and are given tantalizing but incomplete glimpses of the answers they need.
  • For example, much of HotWired's presentation (http://www.hotwired.com), a popular online magazine, approach uses longer pages, and narrower columns. This results in a very readable table-based layout that starts to resemble more familiar, paper-based page design.
  • 1.1.4. Are the Web Pages Providing a Collection of Links?
  • Many of the web pages on the web today are lists of references to other things. This is the easiest kind of web page to create, as it requires the least amount of original content. Many personal “hotlists” are such lists, collections providing references to bits of information that the author found useful, interesting, and/or fun. The most successful of these are those lists that annotate and categorize the items they present, providing value beyond a rote recitation of pointers.
  • The Quality, Guidelines & Standards for Internet Information Resources list from the Australian National University (http://coombs.anu.edu.au/SpecialProj/QLTY/QltyHome.html), is an excellent resource because of its authors have qualified and evaluated many of the resources listed.
  • 1.2. Audience of the Web Site
  • Early in the web site design process, the author of the web site should try to define the audience. The more specifically the web site author can catalogue the needs of the people reading your web pages, the better the site will be able to meet those needs. The following questions should be answered, in detail:
  • 1.2.1. What is the Latency & Bandwidth of their Internet Connection?
  • Generally, the slower the link over which the Web site reader will be retrieving the web pages, the more important it is that you maximize “value” and usable content, and minimize document size and load time. Most of the differences between design for web-based media and design for more common computer and traditional media design revolve around perceived performance, and the ways in which the performance unpredictability of Internet connections will affect the audience's perception of your product quality.
  • The degree to which graphics are used, such as the size of your images and overall pages, and the way in which the information on the Web site is partitioned will be perceived differently depending on the speed and quality of the user's Internet connection.
  • See the discussion regarding choosing the right network model in the Performance section, below.
  • 1.2.2. Who Will be Using Your Pages?
  • The amount of prior knowledge the users of the Web site have of the contents of the Web site, the less background information (such as an extensive online help system, or an extensive dictionary explaining the Web site terminology) is necessary to make the Web site successful.
  • 1.2.3. Answer the Question “What Problem is My Reader Trying to Solve?”
  • Design the contents of the Web site with this question in mind. If the users of the Web site cannot use the application to get their questions and or problems resolved, then the Web site will not be successful.
  • 1.2.4. What Browser are they Using?
  • The Web site author should clearly understand the consequences of designing, implementing, and testing the Web site using only a single browser, or intentionally optimizing the Web site for single browser, without first understanding the type of browser the users are using.
  • Usually, the Web site author should not make assumptions about how someone will be viewing the Web pages. A properly designed site should try to accommodate people with a wide range of viewing capabilities, from those with text-only browsers on slow links, to true technoids with fast, 24-bit color displays served by high-bandwidth direct network connections. There are some cases where the site may need to use the features of a particular browser to present the information well. A common case is using Netscape's <TABLE> or <CENTER> constructs, which are currently supported on Microsoft Explorer as well, but are not part of the current HTML standards. The author, however, should be cautious, as there may be many people in the audience who use other browsers. If the Web site author wants to support all the browsers available, yet retain some of the nonstandard formatting commands, the author should consider creating a second set of documents that don't look as good, but use only standard HTML. The server can then be configured to serve the right document, depending on the user's browser type.
  • The Web site author should weigh the advantages and disadvantages of using a browser-specific technique carefully, and try to make the documents usable and valuable to the broadest number of readers.
  • 1.3. Frames technology
  • Frames technology was first introduced in Netscape Navigator v.2.0 (see browser chart in section 4.1.4, below). For the first time, Frames allowed the web site designers to have multiple, independently scrollable and navigable pieces of real estate in the browser window. The analogous GUI transformation was going from a single textual screen to a windowed approach, where separate text applications can run in each text emulator. Frames technology was one of the greatest improvements in the Web, since it completely changed the way users navigated through web sites. It was now possible to have a link in a frame manage the content of a different frame, thereby allowing the perfect navigational bar, similar to the menu bar in a traditional GUI application (after all, the menu bar doesn't go away or get completely regenerated, just because the content of the application window changes!)
  • 1.3.1. Managing Multiple Frames
  • The only difficulty with the way frames were implemented in the original Netscape browser was the way the forward and back button behavior was implemented. For example, consider the behavior of the original (v2.0) functionality of the back button: Rather than taking the user to the previous impression that the user had of the site (that is, undo the last change, regardless of what frame it occurred in), the back button took the user to the page that referred the user to the page with frames on it. From the user's perspective, that could have been many, many hyperlink references ago.
  • For example, consider this sequence of actions, which refer to the diagram of a typical web page, below:
      • The user uses a search engine to query for “baseball”.
      • A reference to the page below comes up in the search engine results listing.
      • The user clicks on that reference.
      • The user is now interested in comparing National League average leaders to the current screen, so the user hits the “NL” link in the side frame.
      • The main output window changes to NL statistics.
      • Now the user is interested in the hits leaders, so the user hits the “hits” link, in the side frame.
      • The main output window changes to hits leaders statistics.
  • If the user were to hit the back button now, Navigator 2.0 would have returned the user to the search engine results listing page, since that was the last page before the frames interaction began. Logically, however, the back button should return the user to the NL average leaders page, since that is the last impression that the user had. This behavior was changed in revisions after Navigator 2.0. Only then did frames begin to be used all over the Web.
  • 1.4. Generic Page Style Guide
  • The following generic page style has been adopted as more or less as a standard across the web. It was first made popular because Netscape started using it as the generic page on their web site (http://www.netscape.com). The following is a snapshot of such a page, taken from the a sports site (http://www.sportsnation.com/mlb/mlb.html), as seen on a Sun workstation running the Netscape Navigator v3.0 browser:
    Figure US20050172018A1-20050804-P00003
  • There are three major frames: The header, the side frame, and the main content frame.
  • 1.4.1. The Header Frame
  • The header frame typically contains three major pieces, although the example above only contains two of the following three:
  • 1.4.1.1. The Logo
  • The Logo is probably the most important element on any page. It should clearly identify who is the author of the page.
  • 1.4.1.2. The Global Navigation Bar
  • The global navigation bar is typically placed in the header. This navigation bar serves two purposes: let the user know where in the site they are located, and give the user the ability to jump to other major parts of the current web site. In the above example, the statistics field is a different color than the rest of the fields, indicating that the current page is part of the statistics application.
  • If the user wants to jump to a different part of the current web hierarchy, such as the “Injuries” section, they could click on the “Injuries” hyperlink.
  • In a traditional GUI application, these elements would represent the top level entries in the menu bar (File, Edit, etc.)
  • 1.4.1.3. The Forward/Backwards Buttons
  • The above example is missing this element, but, if the site is structured in a such a way where sequential viewing is possible and makes sense, they are typically a part of the header. They allow the user to navigate between the current page, and the previous/next logical pages. The browser forward/back buttons could use the same function, but those buttons don't work as expected when a user jumps directly into the middle of the web site, such as when selecting an item from a hotlist, a bookmark list, or a search engine query result list.
  • This particular site does not require the forward/backwards buttons since there is no logical next/previous pages. But a site that has a long, sequential document, for example, should have them.
  • 1.4.2. The Side Frame
  • The side frame contains the local navigation bar, that are relevant to the current selection in the header frame. For example, if the current global selection contains several options, they are typically displayed in this frame.
  • This navigation bar also reflects the currently selected option. In the above example, the current selection is displayed in a different color than the rest.
  • In the traditional GUI application, these entries would reflect the actual entries in a given menu (such as for the File menu, the New, Open, Close, etc. options).
  • 1.4.3. The Content Frame
  • This frame contains the actual contents of the page, as selected by the navigation bar in the header frame, and the local navigation bar in the side frame.
  • In the traditional GUI application, this would be the main output window, where all the application typically resides.
  • 1.5. Fonts on the Web
  • The web is actually a composite of two different philosophies: HTML, which looks different on different browsers, and images, which look almost identical across browsers (color issues aside, see the discussion of colors and color maps in the next section). This dichotomy allowed Web designers to choose what they wanted to be seen exactly the way they envisioned, and what they didn't.
  • Since different web browsers interpreted different font style, size, and weight differently, designers knew that things that had to be displayed in an exact way (such as corporate logos, for example), had to be rendered as static images. The key to making a web site look good, however, was to keep the number of fonts displayed in all the images on the web site to a minimum, and not try to correlate the fonts in the images with the fonts outside the images (since that kind of effort would fail).
  • 1.6. Colors & Colormaps
  • Netscape navigator (and many other application programs) has a pre-defined set of colors, or color table that it uses to display images in HTML pages. If a color used in an image is not found in the color table, the software will either substitute a color from the color table which is similar to the color specified in the image, or it will dither the colors to approximate the desired color. A color which is “dithered” will appear to be made up of pixels of two colors, which blend together visually to approximate the desired color.
  • Netscape Navigator (starting with version 2.0), allows a person to set a color policy in their application preferences. The default setting is “automatic.” In this mode, the browser will use an algorithm to decide if colors should be dithered, or if “close” colors should be substituted. In addition, the browser may load a custom color table for a particular image, if that image is the only one on a page. Interestingly enough, Netscape Navigator will not dither colors in background images.
  • Microsoft Explorer, on the other hand, does not allow any options with respects to color policy. Microsoft Explorer uses the default Windows color policy, which is to use the closest possible available color.
  • Dithering can reduce the quality and legibility of an image. To avoid dithering, authors can create images which use the colors specified in the browser's built-in default color table. If this is done, the colors will be rendered without dithering.
  • The only problem with this approach is that browsers running on PC/Macintosh platforms use a different default color table than do some UNIX versions of the software. Compounding the problem is that the differing color tables have very few color values in common. If color dithering will be a large page quality issue, then the color table used by the majority of the audience must be used, or server-side automation and scripting can be set up to provide platform-specific images, chosen on the fly based on the version of the browser being used.
  • The next two sections provide images which use the complete default color tables from the PC/Macintosh and UNIX versions of Web browsers.
  • 1.6.1. PC/Macintosh Color Table
  • The PC and Macintosh systems, when using 8 bit display hardware, use a 6×6×6 color “cube” for rendering all pictures and images. This means that the color table contains 216 distinct colors. Each side of the cube uses colors with RBG values of hex 00, 33, 66, 99, CC and FF, for a total of 216 colors. The decimal values for Photoshop and other applications are 0, 51, 102, 153, 204, and 255.
  • 1.6.2. UNIX Color Table
  • Most UNIX systems, or at least those with a 256 color display, use a 5×5×5 color “cube”, for a total of 125 distinct colors used for rendering all pictures and images. The colors in the table use RGB values of hex 00, 40, 80, BF, and FF. The decimal values for Photoshop and other applications are 0, 64, 128, 191 and 255.
  • 1.6.3. Conclusion
  • Dealing with colors in a platform and system independent way is a hard thing to do. Unfortunately, the WWW has yet to mature in this respect. The easiest approach is to determine the target audience, and use that color map. Alternatively, two different sets of images, rendered with the two different color maps described above, can be set up. The server can then be configured to serve one or the other depending on the type of platform being used.
  • For more information, please consult the Color Technology Page, maintained by Charles Poynton at http://www.inforamp.net/-poynton/Poynton-colour.html.
  • 1.7. HTML Layout Styles
  • If a web site were to use different designs for each of the pages in the site, that site would be extremely hard to navigate (unless the web site designer was trying to make a premeditated artistic impression). For example, consider a paper book. Each page has the title of the chapter at the top, the name of the book opposite the chapter title, and the page number on the bottom, with the text of the page in-between. Imagine how disturbing it would be if, in consecutive pages, the three page elements listed above were randomly placed within the page.
  • Similarly, the layout style used for the generic page should be used throughout the web site, with the possible exception of the home page, and other key pages within the site (those pages that correspond, for example, to the beginnings of chapters in a book).
  • 1.8. Home Page Style Guide
  • The site “home page” is typically the first impression the user gets of the web site (that is, unless they entered the site through a different entry point, such as through a bookmark or through the results of a search engine query). As such, the first page gives the user the impression of what the overall site experience would be. For example, what kind of information is available in the web site, how often does the information change, who is presenting the information, etc.
  • The following two points are recommended for all home pages:
      • Must be fast to download
      • Must be fun
  • In addition, all home pages should contain the following:
      • Site Identification
      • A link to a what's new section, so the user can quickly determine what has changed about the site since the last visit.
  • 1.9. Help Page Style Guide
  • Web sites, similarly to all well developed applications, should have context sensitive help. That is, every single page in the web site should have a help link that directs the user to the appropriate place in the help hierarchy. The help link could be a simple hyperlink, but is more typically an image of a question mark. This link should be in the same place in all the pages.
  • 1.9.1. New Browser Window vs. New Page in Current Browser Window
  • One thing to consider when building the help section is whether the help information should override the current page, be placed in a separate frame in the page, or be placed in a separate browser window altogether (the ability to automatically launch a brand new navigator window with separate content was first introduced in Netscape Navigator v2.0).
  • Typically, help is most useful if it is placed in a different window, so that the user can read the help text while trying to manipulate the application, without having to constantly switch from the application to the help window. To that end, help information should minimally be placed in a separate frame, but ideally in a separate browser window.
  • 1.9.2. Should Have “Back” Button that Returns User to the Previously Logical Page
  • Since the user can enter the help system at any given page, it is critical that the help system be self navigating. That is, each page in the help system should have a link to the previous logical page, the next logical page, as well as an up navigational button that takes the user to the beginning of the current help section. This allows the user to browse the help pages, rather than just looking for context sensitive help by first finding the appropriate application window, then pressing help.
  • 1.10. Bookmarking Issues
  • Since the beginning, browsers offered the user to “bookmark” the current page. Effectively, the browser kept a database of pages that were “bookmarked”, and allowed the user to return to that page on the Web simply by selecting an item from a menu, a list box, or a tree widget. For browser users, this was an important element, since it allowed them to keep handy references to frequently used pages, or simply references to section of the web that they wanted to explore in more detail at a later time.
  • Unfortunately for the web designers, this implied that users can enter the Web site at any arbitrary point in the site, that is, whatever page they happened to bookmark previously. This caused several problems:
      • Disruption of typical “beginning to end” flow of traditional applications
        • Typical applications always start at a given point (which is the first screen presented to the user after the application is launched). Web designers, most of whom were application designers in their previous lives, had a hard time grasping the nuances of web design. They had to start considering that the Web site could be entered at any point, rather than at the specific “home page”.
      • Consistent file names to avoid bookmarking “FILE NOT FOUND” errors, even if site changes
        • Site designers had to become conscientious of the fact that file names that contain the HTML pages representing the site are now significant, even outside the site. For example, Web designers at first simply felt that as long as there aren't any “broken links” within the site (that is, links within the site that didn't go to a valid page), that was sufficient. However, this wasn't the case, since bookmarks could have been previously made to a specific file within the site.
      • Authentication/session management issues
        • Web designers had a hard time dealing with authentication issues as well. For example, if a user enters the site through the “home page”, which contains the authentication screen. The user then authenticates themselves to the site, traverses several pages, and then bookmarks a page. Later, if the user then enters the site using that bookmark, the site should request authentication information again, by automatically diverting the user to the home page, then automatically diverting the user back to the bookmarked page. Until web technology matured, however, this was not possible.
        • Today, this is possible using HTTP redirects, which allow a web site to automatically redirect a browser to a different page.
  • Search engine search result pages also allow users to enter the site in arbitrary places, so in this respect, search engine result pages are very similar to bookmarks.
  • 1.10.1. Works with “GET” Style Pages, not with “POST” Style Pages
  • Unfortunately, bookmarks only work with “GET” style pages, not “POST” style pages. A GET style page is a page that is retrieved via the GET HTTP command. In GET style pages, all the information is passed from the client to the server as part of the URL, making URLs extremely long and “ugly”. A typical URL may be:
    • http://www.yoursite.com/your_director/your_page.html?a=2?b=4
  • In this example, the client is sending two values back to the server, a and b. This information will get stored in the bookmark database, as part of the URL.
  • However, these kind of URLs are seen as “ugly”, or “unpure”. Also, some implementations of browsers or proxies have size limitations on URLs, making this method of information transfer restrictive. POST style pages address these issues, by passing additional information from the client to the server as a separate field in the HTTP transaction. This information, however, is not stored in bookmark files.
  • If a user tried to select a POST style page from a bookmarks file, the server would not have sufficient information to generate the page, and may have to either generate an error, or worse yet, generate a page that is not comprehensible.
  • The way to get around this is to allow the user, at arbitrary POST pages, to generate an equivalent GET style page (by encoding all the POST data as part of the URL), and then getting the user to bookmark that page. However, since the size of URLS is restricted, this approach may not always work.
  • 2. Web Browser Guide
  • This section compares the behavior of the different browsers available on the market today, and attempts to quantify and qualify the similarities and differences. A chart comparing the various different browsers used on the market today is in section 4.1.4.
  • 2.1. Browser Feature Comparison
  • 2.1.1. Web Browser Market & Players History
  • When the NCSA first released the Mosaic graphical browser software, little did they know what trends they were starting. That group of programmers split up into two different companies, Spry (who continued developing the Mosaic browser), and Netscape (who continued developing the same code base, but called the browser Navigator). The key difference between the two companies was that Netscape gave their browser software away for free, whereas Spry charged a minimal amount of money for it (approximately $49.95, bundled with Internet in a Box software, which also included PPP dial up software). However, this gave Netscape a key edge, as over 90% of the users on the Internet used the Netscape browser.
  • Given such a huge market share, Netscape enjoyed the freedom associated with a monopoly: They were able to dictate the direction of the web market simply by supporting features in their browser. For example, rather than going through the standards bodies to determine extension to HTML, Netscape decided to implement some nonstandard tags, such as the CENTER and TABLE tags. Also, rather than going through the Internet Engineering Task Force (IETF) before implementing a security protocol, Netscape designed, implemented, and released SSL. Netscape also felt that the web could use a scripting language, so they designed and implemented JavaScript. All of these decisions on Netscape's part have become a de-facto industry standard, because the vast majority of browsers on the web supported them.
  • At some point, however, Microsoft decided to get into the web browser market. Starting with the original code base from NCSA, they adopted the original Mosaic browser into the current day Internet Explorer software. They have also implemented all of Netscape's nonstandard, proprietary extensions (including reverse engineering JavaScript), but also added their own (such as an HTML tag that allows playing background music while a page is being viewed).
  • Although Microsoft and Netscape are by far the two largest browser companies, other companies have tried to implement browsers along the way. Both CompuServe and AOL tried to implement their own browser, but each failed miserably to keep up with the browser market (in addition to continually developing their own products), and have adopted either the Netscape or Microsoft browsers.
  • 2.1.2. Current Day Players
  • Currently, there are two major browsers: Netscape Navigator, and Microsoft Explorer. Different publications have attributed different percentages of the current day market to either of these browsers. Some publications claim that the Netscape browser continues to dominate the browser market, even speculating that 85% of the browsers being used are Netscape browsers. Other publications say that the market is about even, with each side enjoying close to a 50% share.
  • 2.1.3. What Browsers are People Using?
  • It is hard to say what browsers people are using. The only way to measure this is to consider the logs for a given web site, and calculate the frequency of hits per browser. However, this type of approach is biased, since the nature of the site itself may attract a certain group of people who are already biased towards a particular browser.
  • For example, http://www.sun.com receives significantly more hits from Netscape Navigator browsers than any other browser. This site, however, also gets a significant number of hits from UNIX users, who have no choice but to use the Netscape Navigator browser (Microsoft Explorer does not run on the UNIX platform, at least not yet).
  • 2.1.4. High Level Chart that Shows What Browsers (and Revision of Browsers) Support What Features
  • The following chart shows a high level comparison of the various browsers available today. Lynx, shown below for comparison sake, is a text only browser available only on UNIX platforms. It is used by a very small percentage of users on the Web, either in situations where graphics are not possible (such as via a text terminal dial-up session), or where connectivity is too slow to contemplate downloading graphics.
    MICROSOFT
    BROWSER INTERNET NETSCAPE NETSCAPE NETSCAPE
    COMPARISON EXPLORER NAVIGATOR NAVIGATOR NAVIGATOR
    CHART v3.0 v3.0 v2.0 v1.0 MOSAIC 2.0 LYNX
    Scripting JavaScript, JavaScript JavaScript None None None
    Language VBScript
    Security SSL 3.0, 128- SSL 3.0, 128- 64-bit RC4 None None None
    bit RC4 bit RC4 encryption
    encryption, encryption,
    Digital Digital
    certificates, certificates
    Authenticode
    Mail and News Standalone Integrated Integrated None None None
    support
    Interactivity Java, ActiveX Java Java None None None
    Extensions Plug-ins, helper Plug-ins, helper Plug-ins, helper Helper Helper None
    applications applications applications Applications applications
    VRML 1.x Live 3D Direct 3D VRML plug-in VRML helper VRML helper None
    (VRML 2.0), application application
    COSMO
    HTML Support HTML 3.2 and HTML 3.2 and HTML 3.0 and HTML 2.0 and HTML 2.0 HTML
    proprietary proprietary proprietary proprietary 1.0
    HTML HTML HTML HTML
    extensions, extensions extensions extensions
    ActiveX
    Multimedia GIF89a, .jpeg, GIF89a, .jpeg, GIF89a, .jpeg, GIF89a, .jpeg, GIF89a, .jpeg None
    .au, .aiff, .midi, .au, .aiff, .midi, .au, .aiff, .midi, .xbmp
    .wav, .avi, .wav, .avi, .wav, .avi,
    QuickTime, QuickTime, QuickTime,
    MPEG MPEG MPEG
    Shockwave Shockwave Shockwave
    Basic Text/Links Yes Yes Yes Yes Yes Yes
    Static GIF Yes Yes Yes Yes Yes No
    Forms Yes Yes Yes Yes Yes No
    Animated GIF Yes Yes Yes No No No
    Tables Yes Yes Yes No No No
    Frames Yes Yes Yes No No No
    Streaming Audio Yes Yes Helper Helper Helper No
    Application Application Applications
    Platforms Windows 95, Windows 3.1, Windows 3.1, Windows 3.1, Windows 3.1, UNIX
    Windows NT Windows 95, Windows 95, Windows 95, Windows 95,
    Windows NT, Windows NT, Windows NT, Windows NT,
    Macintosh, Macintosh, Macintosh, Macintosh,
    UNIX UNIX UNIX UNIX
    RAM 9 MB 6 MB 2 MB 1 MB 1MB 590k
    Requirements

    Notes:

    Microsoft has announced and released a Macintosh port of the Internet Explorer v3.0 browser in late December, 1996. Also, they announced that a UNIX port of their browser would be available shortly.

    Interestingly enough, the only browser available for Windows 3.1 is the Netscape browser. Java does not run on the Windows 3.1 versions of the Netscape navigator. However, Netscape has announced that Java will be supported on Windows 3.1 in the 4.0 version of their browser, to be available by end of the 1st quarter in 1997 (end of March, 1997).
  • 2.2. What to do to Make Sure that Your Web Site Work Across all Browsers
  • Since different browsers interpret the same HTML commands slightly differently, the web designer is always challenged with making the web site look as good as possible on all the browsers. For example, HTML specifies 6 different heading tags, from H1 to H6. However, on Internet Explorer and Navigator, different fonts and font sizes are used for the same tags.
  • Since the HTML standards bodies move slowly (as standards bodies tend to do), and since the browser market place has become so competitive and fast moving, the latest and greatest browsers are always going to be pushing the envelope of the market, and adding proprietary tags. Such examples are the CENTER and TABLE tags, first implemented by the Netscape Navigator browser. The standards body eventually implemented a mechanism for centering text (as an option to other tags), but did not adopt the CENTER tag as implemented by Netscape. However, since so many people were using the Netscape navigator, the CENTER tag has become a de-facto standard, and is commonly used.
  • Web users, or at least the browser that they used, can be categorized into three groups: The technoids, who always have the latest and greatest browser on the latest and greatest hardware, those who are technical and can manage to use their own ISP, but don't particularly care about having the latest and greatest browser, and those that depend on commercial online services, such as America Online, CompuServe, or Prodigy, for access.
  • 2.2.1. The Technoid: The Ultra-Sophisticated User
  • Typically, the web designer does not have to worry about making the web site look good for this kind of user, since this user will always have a browser that will accept any kind of input.
  • 2.2.2. The in-between User
  • These users can manage on their own, and typically have a reasonable browser, but not necessarily the latest and greatest one. If they find a web site that requires a newer browser, they will be able to download it and install it themselves (or, more likely, request that their system administrator install it for them). So typically, the web designer does not have to worry about this group, either.
  • 2.2.3. The Rest . . .
  • The rest of the users of the Internet depend on commercial service providers, such as America Online, CompuServe, or Prodigy. As early as a year ago, these companies were developing their own browser, rather than licensing browser technology from Netscape or Microsoft. Since their development efforts were concentrated on their main product, little effort was put into the browser, and it showed in terms of features set supported. For example, on the Prodigy browser, the CENTER tag was supported, but it only worked if no other tags (such as a bold tag) followed it, so the designers had to conscientiously put the CENTER tag at the end of the sequence of style formatting tags. AOL & CompuServe's browsers did not even support the CENTER tag.
  • However, especially since America Online claims over 6 million customers alone, these service providers probably represent over 10 million users, which is by far the largest group of the users on the Internet.
  • Web designers, then, were always challenged to make web sites look good on modern browsers, but still look decent on the commercial service provider browsers. Designers approach this two ways:
      • Design a single site that looked OK on all browsers
      • Design multiple versions of the same site. The version that looks best on the browser being viewed is the one that is served. The Web server is configured to dynamically determine the browser type, and serve the correct version.
  • 2.3. Caching Issues
  • As usage over the Internet increased, the load on servers increased as well. Due to the exponential growth of usage on the Internet, server administrators had a hard time matching the demand growth with additional hardware (some of the difficulties were financially driven, such as for educational institutions, which typically have small equipment budgets, others were simply a time issue, such as for large corporations with limited internal resources).
  • This growth issue was resolved in one of two ways:
      • A cache was implemented on the browser side. This was actually done early on, to improve performance of the Internet as a whole. This reduced the number of hits on the servers, as well as the traffic over the Internet.
      • CERN, as well as Netscape, implemented a “Proxy” or caching server. This is a Web server that does not have any local content. Rather, it received queries from Web users, and forwarded them along to the actual web server, then cached the response. That way, any new queries destined to the web server can be served by the proxy server, thereby reducing the load on the web server. Typically, these were installed in large corporations in an effort to reduce the bandwidth on the corporation's link to the Internet. Also, these proxy servers increased the level of security at the corporation, since now only a single server, or computer, needed direct access to the Internet (rather than all computers in the corporation).
  • 2.3.1. Web Server Proxies Introduce Another Layer of Cache Management
  • Proxies were seen as the best way to meet the demand on the Internet. However, they introduced a key problem: The cache policy is now determined by the proxy server system administrator, rather than the user.
  • In the Netscape browser, the user has a choice of how often the cache is checked, whether once per session, every time, or never. This policy can be determined by the user. The same sort of policy management scheme exists for the proxy servers, but that is under control of the proxy server system administrator, rather than the user. If the proxy server is configured to check the web server for new updates periodically, rather than for every request, the user could potentially be seeing old information. In other words, proxy servers introduced a document propagation delay to the Web.
  • 2.3.2. Ensuring that Users Have the Up-to-Date Stuff
  • Fortunately, there are ways around the propagation delays. Since proxies and other caching servers use the file name as the key into the cache database, if the web site designer were to change the filename of a file, this would force the proxies and browsers to download a new version.
  • However, changing file names does have some potentially undesirable effects. For example, bookmarks to the old page will now fail. Also, search engine entries for the old page will now fail as well. See section 3.10 for more details.
  • 2.3.3. Ensuring that File Names are Consistent to Maximize Cache Usefulness
  • To maximize the effectiveness of caching servers, as well as the local browser cache, the web site author should ensure that only a single copy of each distinct page or image is stored on the site, and referred to in a consistent way. That way, the file or image is only loaded from the web server once, and stored in the web browser cache.
  • The most common application of this approach is the corporate logo, which is typically present on every single page. If it were to be loaded separately for each page, the performance of the site would be degraded unnecessarily. Also, all modern browsers allow a given image to be stretched both horizontally and vertically. That way, if the corporate logo is needed in different sizes, the same base image could be used, and expanded or shrunk by the browser as necessary. This is implemented using the WIDTH and HEIGHT arguments to the IMG tag in HTML.
  • 2.4. HTML Issues
  • 2.4.1. What are the Current Day HTML Standards
  • The current proposed HTML standard is v3.2. Please consult the World Wide Web Consortium home page, at http://www.w3.org, for up to date information regarding the HTML standards process, as well as the actual standards documents.
  • 2.4.2. Exceptions to HTML Standards that are Supported by all Major Browsers
  • Since the HTML standards bodies have moved slower than the web browser markets (as standards bodies tend to do), the browser companies have implemented proprietary extensions to HTML in their browsers. Typically, the other browser companies have implemented those extensions as well, for compatibility purposes. For example, Netscape implemented the following tags:
      • TABLE tag
      • CENTER tag
  • Microsoft also implemented some proprietary extensions, such as one to allow background music to be played while the page is being viewed.
  • 2.4.3. What HTML Tags to Avoid
  • The best approach to writing portable HTML is to use the standards, rather than using the proprietary approaches. So, for example, the best way to center text is to use the ALIGN=CENTER argument to the various HTML tags that support it, rather than using the CENTER tag explicitly.
  • 2.4.4. HTML Subset that Works Across all Browsers
  • All current revisions of browser support HTML version 3.2. Please see the browser comparison chart for more details on what browsers support what versions of HTML.
  • 3. Java Style Guide
  • 3.1. Java vs. JavaScript vs. Plugins vs. ActiveX
  • 3.1.1. Java is an Industrial Strength, Object Oriented Environment
  • Java is described as a simple, object-oriented, distributed, interpreted, robust, secure, architecture neutral, portable, high-performance, multithreaded, and dynamic language according to the Java Language white paper.
  • Java, formerly known as oak, is an object-oriented programming language. It shares many superficial similarities with C, C++, and Objective C (for instance for loops have the same syntax in all four languages); but it is not based on any of those languages.
  • Java is sometimes referred to as C++++. The language was originally created because C++ proved inadequate for certain tasks. Since the designers were not burdened with compatibility with existing languages, they were able to learn from the experience and mistakes of previous object-oriented languages. They added a few things C++ doesn't have like garbage collection and multithreading; and they threw away C++ features that had proven to be better in theory than in practice like multiple inheritance and operator overloading.
  • Even more importantly Java was designed from the ground up to allow for secure execution of code across a network, even when the source of that code was untrusted and possibly malicious. This required the elimination of more features of C and C++. Most notably there are no pointers in Java. Java programs cannot access arbitrary addresses in memory.
  • Furthermore Java was designed not only to be cross-platform in source form like C, but also in compiled binary form. Since this is frankly impossible across processor architectures, Java is compiled to an intermediate byte-code which is interpreted on the fly by the Java interpreter. Thus to port Java programs to a new platform all that is needed is a port of the interpreter and a few native code libraries.
  • Finally Java was designed to make it a lot easier to write bugfree code. Shipping C code has, on average, one bug per 55 lines of code. About half of these bugs are related to memory allocation and deallocation. Thus Java has a number of features to make bugs less common:
      • Strong Typing
      • No unsafe constructs
      • The language is small so its easy to become fluent.
      • The language is easy to read and write. Obfuscated Java isn't nearly as common as obfuscated C.
      • There are no undefined or architecture dependent constructs.
      • Java is object oriented so reuse is easy.
      • Java has concurrency.
  • At the lowest level the advantage of Java to the web is that it provides a secure, cross-platform way for code to be executed. At a somewhat higher level Java adds several features to existing web sites.
  • 3.1.1.1. Arbitrary Graphics
  • Java lets the server draw pictures in a window on the client. In theory this allows a web page to do anything a regular program can do by drawing in a window.
  • 3.1.1.2. Arbitrary Data Types
  • In practice rather than using graphics primitives to create your desired web page you'd use a graphics program to draw the page and then write a program that could read and display the file formats of that program. Java lets you write content handlers that display any particular data format. This way you can download your data and your data display program rather than downloading a bitmapped snapshot of the display. People are already using this to add sound and animation to web pages. Rather than having to download a file and spawn an external viewer, the viewer is included with the data; and the data is displayed right on the page.
  • 3.1.1.3. Less Load on the Server
  • CPU intensive cgi-bin scripts place a large load on a server, particularly at busy sites. With Java you can offload the calculations to the client's PC. I've written an applet that calculates all possible ram configurations for a given Mac model. However on models with many memory slots the sheer number of permutations can tie up even a fast machine for several hours. Publishing this as a cgi-bin would bring my server to its knees, but by publishing it as a Java applet I can distribute the load across all the machines that want to run it.
  • 3.1.1.4. More User Interaction
  • Finally Java allows for more interaction with the user. Java not only allows you to paint arbitrary data on the screen. It also allows you to collect input from the user in the form of mouse clicks, keystrokes and the like. This lets you put almost any application on your web page that doesn't require disk access.
  • 3.1.1.5. Availability
  • Sun has made a Java development kit available for Sparc and X86 Solaris, Windows NT for Intel, Windows 95, MacOS 7.5 on PowerMacs and 68030 (25 MHz and faster) and 68040 Macs.
  • An IRIX port has mostly been completed by Simon Leinen. SGI's own port is available at http://www.sgi.com/Products/cosmo/cosmo_instructions.html
  • A Linux port is in fairly good shape. See http://java.blackdown.org/java-linux.html.
  • IBM has ported Java to Windows 3.1, OS/2, and AIX. It is working on ports for MVS and OS/400. See http://ncc.hursley.ibm.com/javainfo/hurindex.html.
  • The OSF has ported Java to Unixware, the Bull Estrella or other PowerPC running AIX4.1, X86 running DASCOM OSF/1, the Digital Alpha running Digital UNIX 3.2, the HP700 series running HPUX 10.x, the NCR Globalyst (Pentium) running UNIX SysV, and Sony NEWS (MIPS) running Sony NEWS 6.1.1. See http://www.osf.org/mall/web/JDK/.
  • Other ports are underway for Nextstep, SunOS 4.1, the Amiga and possibly other platforms.
  • 3.1.2. Javascript is Just a Simple, Scripting Language, not Meant for Serious Applications
  • Javascript is a scripting language developed by Netscape for its browsers in order to augment limitations in the HTML language. This language originally started out named Livescript to fit into Netscape's Live Architecture (e.g. LiveWire, LiveConnect, Live3d, and more . . . ) but was renamed in order to capitalize on Java's popularity. Javascript as a language provides limited interactivity in the browser environment. It provides some string manipulation and comparison capabilities, and some arithmetic functions. Javascript is mainly used to handle field validation in HTML forms.
  • Microsoft reverse engineered Javascript into Jscript for MS Internet Explorer 3.0. At that time, Netscape had not released Javascript into the ECMA standards body.
  • Microsoft has announced in a press release that they are currently working with ECMA to incorporate features from Jscript into the standard scripting language to called ECMAScript. The reason for the name change is due to the fact that the Javascript name is owned by Netscape.
  • 3.1.3. Plugins are Browser/Platform/Version of Browser Specific
  • Plugins extend the browser to include additional capabilities such as multimedia. Plugins are dynamic code modules which are native to the specific platform on which the browser runs. They allow existing platform dependent code to integrate with the browsers core functionality to support new data types.
  • In the Netscape platform, plugins reside on the user's local drive and are detected by Navigator when it starts up. When Navigator encounters data handled by a plugin (either embedded in an HTML page or in a separate file), it loads the appropriate plugin and gives it access to all or part of a window. The plugin remains active until the associated page or file is closed.
  • MS Internet Explorer 3.0 supports Netscape plugins on the Wintel platform.
  • The installation of plugins is still a distinct event. When a browser encounters a data type with which it is not familiar, it cannot automatically install the necessary plugin. The user has to search and find the necessary plugin, download it, and install it. It is essentially the same process as having a helper application.
  • Plugins are complementary to platform native inter-application architectures such as OLE and OpenDoc, and platform-independent programming languages such as Java. In fact, Netscape through their LiveConnect architecture allows Java applets to access native methods stored in plugins. The reverse interoperability is also true: plugins can also use functionality available in Java classes; in fact, many ISV's are writing the common elements of their plugins in Java (the Koan plugin comes to mind).
  • There is no security involved with plugins. Installing plugins is very much like installing software off the Internet or some foreign BBS, users do it at their own risk.
  • 3.1.4. ActiveX is Browser/Platform Specific, and are Huge Applications
  • ActiveX extends Microsoft's existing Object Linking and Embedding (OLE) and Component Object model (COM) technologies to the web. It serves as a component framework. ActiveX ‘controls’ are components that plug into the ActiveX framework. They are embedded into web pages.
  • Microsoft at this time has only turned over parts of ActiveX to The Open Group (TOG), a standards body formed by X/Open and the Open Software Foundation. Important APIs such as database access services or Windows-based ActiveX services are still proprietary.
  • ActiveX is currently only supported in Microsoft's Internet Explorer browser on the Wintel and Mac platforms. The Netscape browser on the Wintel platform has an ActiveX plugin provided by NCompass Labs; however, in order for the ActiveX component to be recognized by Netscape, it must be referenced by a different HTML tag. Netscape uses the <EMBED> tag whereas Microsoft uses <OBJECT>. This means that pages with ActiveX components must use both tags to be recognized by both browsers.
  • ActiveX components are used much like plugins in browsers. When the browser hits upon the appropriate data type, it will then load the ActiveX component. If the component is not already installed, the browser asks the user whether to download it.
  • The ActiveX security model is considerably different from the Java model. Java achieves security by restricting the behaviour of applets to a set of safe actions. ActiveX, on the other hand, places no restriction on what a control can do. Instead, each ActiveX control can be digitally “signed” by its author in such a way that the signature cannot be altered or repudiated. The digital signatures can then be certified y a trusted “certifying authority”, such as VeriSign, to create the equivalent of a shrink-wrapped software package.
  • This security model places the responsibility for the computer system's security entirely upon the user. Before Internet Explorer downloads an ActiveX component, the browser presents a dialog box indicated who signed the component, if at all. The user can elect to abort the transfer or may continue.
  • The ActiveX certification process ensures that ActiveX controls are not tampered with by third parties after its publication. However, the certification process does not ensure that a control will be well-behaved. To illustrate this danger, an ActiveX control called Exploder was published to the Internet. This control, which was bully signed and certified, shutdowns any Windows95 machine that downloads it. The shutdown occurs automatically soon after the user views the HTML page that contains the Exploder control. Exploder is relatively benign compared to the possible damage that other more malicious controls may do. These controls may reformat the user's hard disk or plant a virus. In fact, it is possible that an ActiveX control could take some subtle action, such as transmitting confidential confidential information from the user's harddisk, that would escape detection for a long period of time.
  • Unlike Java, which is a platform-independent programming language, ActiveX controls are distributed as executable binaries, and must be separately compiled for each target machine and operating system. At this point, ActiveX is only supported on Wintel and Mac platforms. Support for Unix is not available and there has been little news on the progress so far.
  • ActiveX components are generated as large OLE Custom Controls (OCX) files with Internet extensions. In order to address the issue of size, it is important to look at the history of OLE. The technology for Object Linking and Embedding is over seven years old. The first incarnation of it, OLE 1, was built upon Window's dynamic data exchange (DDE). It was a very clumsy slow protocol. In 1993, it was revised to OLE 2. At this point, Microsoft decided no longer to attach versions behind it and just incrementally add new functions. They will be simply buried within new releases of Windows or new releases of Microsoft's Visual C++. This means that OLE is no longer a separate product but very much a part of MS Windows. In 1994, Microsoft introduced custom controls (or OCXs), possibly referred to as OLE 2.1.
  • An OCX is a combination of OLE in-process server and an OLE automation server. In order to support OCXs, it is necessary to have in place several dynamic link libraries (DLL files). This is made worse by all the legacy interfaces it must support due to previous versions. OLE is massive; in order to make it easier for programmers to develop OLE components, Microsoft created a class frameworks called Microsoft Foundation Classses (MFC) in Visual C++2.0. MFC has added another wrinkle to the volume of libraries needed to support OLE containers. When writing for the Internet (as in ActiveX), the authors cannot assume that the users already have all these libraries in place; therefore, they compile all the libraries into their ActiveX component resulting in massive file that must be installed on each of the users machine.
  • Note that MS Internet Explorer indefinitely caches each ActiveX component it encounters.
  • 3.2. Java Applet vs. Java Application
  • The Java environments allows business applications to be deployed in two different ways, each with advantages and disadvantages. The first business application model, and most common application of Java, is as a “Java Applet”. In this model, the business application is actually integrated into a web site. Extensions to HTML were made to accommodate integrating a Java Applet into an HTML page. The Java applet is downloaded over the Internet, and executed on the local client. The other model, the Java Application, is similar to traditional GUI applications, where the application must already be loaded on the local client. The Java Application is started either via the command line, or via an icon, or menu item.
  • 3.2.1. Applet Security implications
  • Applets loaded over the network are untrusted. The only way to be sure than an untrusted applet cannot perform any malicious actions (e.g. deleting files on the local hard drive, sending out fake email that looks like it came from the browser user, using the browser client as a remote file server, etc.) is to run it in a very limited environment. For this reason, Web browsers carefully restrict what an applet is allowed to do.
  • 3.2.1.1. What are the Applet Restrictions?
  • Different web browsers may place slightly different restrictions on applets, and some may even allow the user to relax some of these restrictions, but in general, applets are not allowed to:
      • Read files on the local system.
      • Write files to the local system.
      • Delete files on the local system, either by calling the delete method of the File class, or invoking the system's delete or rm command.
      • Rename files on the local system, either by calling the renameTo method of the File class, or by invoking the system's rename or mv command.
      • Create a directory on the local system, either by calling the mkdir method of the File class, or by invoking the system's mkdir command.
      • List directory contents.
      • Check for the existence of a file.
      • Obtain the type, size, or modification time of a file.
      • Create a network connection to any computer other than the one from which the applet itself was loaded.
      • Listen for or accept network connections on any port of the local system.
      • Create a top-level window without a visible warning indicator that the window is “untrusted.” This prevents applets from spoofing other, trusted programs into which users may type sensitive data.
      • Obtain the user's user name or home directory name, or in general, read any of the following system properties: user.name, user.home, user.dir, java.home, java.class.path.
      • Invoke any program on the local system. In other words, an applet cannot call any of the Runtime.exec( ) methods.
      • Make the Java interpreter quit; an applet cannot call System.exit( ) or Runtime.exit( ).
      • Load dynamic libraries on the local system. In other words, an applet cannot call the load( ) or loadLibrary( ) methods of the Runtime or System classes. This prevents the applet from making any system, or native, calls, into untrusted environments.
      • Create or manipulate any thread that is not part of the same ThreadGroup as the applet itself
      • Manipulate any ThreadGroup other than its own.
      • Create a ClassLoader object. This prevents the applet from loading Java code from other, insecure sources.
      • Specify a ContentHandlerFactory, SocketImplFactory, or URLStreamHandlerFactory for the system. These classes control how Java handles networking.
      • Access or load classes in any package other than the standard eight of the Java API: java.applet, java.awt, java.awt.image, java.awt.peer, java.io, java.lang, java.net, java.util.
      • Define classes that are part of packages on the local system.
  • 3.2.1.2. Local Applet Restrictions
  • When an applet is loaded from the local file system, instead of through a network protocol, Web browsers may relax some, or even many, of the above restrictions. The reason for this is that local applets are assumed to be more trustworthy than anonymous applets from the network.
  • 3.2.1.3. How to Get Around them?
  • Obviously, applet restrictions are necessary, but are overly restrictive, at least with respects to modern day applications. Most applications, need, at the very least, import and export local data, as well as print. To accommodate those requirements, the following approaches are possible:
  • 3.2.1.3.1. Class Files on Local Disk
  • Since local applets, or class files, are subject to a more relaxed security model, a hybrid solution can achieve the advantages of network loading and updating, and a relaxed security model. Classes that need access to local data or to the local printer can be given to the user with instructions to install them on the local client, whereas the rest of the applet can be retrieved over the network.
  • 3.2.1.3.2. Plugin/Java Interaction Support
  • Plugins, as well as ActiveX components, do not have a security model in place. Applets can use LiveWire from Netscape or ActiveX from Microsoft to communicate with the plugin or ActiveX components, and have those components do the tasks that are restricted to the applet.
  • 3.2.1.3.3. New Sandbox Security Model for Signed Applets
  • New browsers will have a new security model for signed applets. Signed applets carry an attached digital signature and cryptologic checksum. Using public key encryption technology, this would enable a Web browser to verify that an applet is from the source it claims to be from, and that it has not been modified in transmission. With these guarantees, it is possible to load a trusted applet (one that can run without severe security restrictions) over an untrusted network as long as you trust the source of the applet (i.e. whatever individual, corporation, or certification agency has attached their digital signature to the applet).
  • For more detailed information about this, please consult the following article, at http://www.packet.com/packet/garfinkel/96/53/index2a.html.
  • 3.2.2. Startup Implications
  • Java applets actually start when the browser encounters a special HTML tag, APPLET. The browser then begins to download the applet from the web server, and start execution.
  • Applications, on the other hand, are started directly by the operating system, either by executing a command on the command line, or by double clicking the icon for the application. Applications, however, can be started from the browser, the same way helper applications (such as custom viewers for images) are started. This is accomplished by reserving a mime type for the application, and configuring the browser to start the Java application whenever that mime type is encountered.
  • 3.2.3. Download/Version Control Issues
  • 3.2.3.1. New Versions of Applets are Automatically Downloaded by the Browser
  • As described in the previous section, applets are automatically downloaded from the web server by the browser, whenever the browser encounters a special HTML tag. The browser then caches the Java applets for use the next time the applet is initiated. What happens, however, if the Java applet is updated on the web server? The answer is that the same behavior applies to Java applets as to HTML pages. Before using any page out of the browser cache, the browser (by default) queries the server for any updates to the applet. If there are any, the new applet is downloaded. If there aren't any changes, the cached applet is used. The Netscape Navigator browser can be configured to check the server every time the applet is loaded, or once per session (for example, if the applet is started multiple times without exiting the browser software), or not at all (in which case the browser always uses the cached version. Microsoft Internet Explorer does not have such options. Rather, it checks every time an applet is started.
  • 3.2.3.2. Marimba's Castinet Product Simplifies Application Download
  • Java applications, however, are not downloaded from the web server. Rather, they must be present on the local disk before an application can begin. Specifically, the application developer (or, more likely, the system administrator) is responsible for ensuring that the latest and greatest version of the application is distributed to all the users.
  • Marimba, Inc., has a product called Castinet that allows applications to become self updating, similarly to the way Java applets are. Before an application is started, the Marimba product queries the “application server” for any updates to the application. If there are any, they are downloaded before the application is started. For more information, see http://www.marimba.com, or the chart comparing different extended GUI components, below.
  • 3.2.4. Screen Real Estate
  • In the applet model, since the applet itself is directly associated with a browser, the applet itself can use part of the browser's screen real estate for its output. The most common example of this is the animation applet, that is embedded as part of the HTML page. However, if the user navigates away from the page where the applet was started, the applet will be stopped. This restriction makes this model useful for applets that are tightly integrated with the web page around them, but not for applets that are intended to be real, long lived applications.
  • An applet, however, can use none of the browser's output window, but rather launch its own, independent window. This resembles the typical GUI and Java application models.
  • Typically, these two models are combined. An applet first starts in the browser's output window, if nothing more than to provide a mechanism to start the application (via a start button), or to provide the authentication screen, before launching a separate window for the rest of the applet.
  • A Java application, on the other hand, is not associated with a browser. A Java application must launch its own window.
  • 3.3. Browser Compatibility Issues
  • 3.3.1. What are the Differences Between Java on the Same Browser on Different Platforms?
  • At this point in time, this can only be truly observed with the Netscape Navigator browser. The Mac version of the MS Internet Explorer with Java support is still in beta.
  • The Java Virtual Machine (JVM) is well implemented across multiple platforms. Applications appear and behave similarly across different machines with the except of the Mac. The JVM on the Mac has not been well implemented and results in applications sometimes appearing differently or running improperly. Apple is currently working on implementing the JVM directly into the MacOS.
  • Java performs at different levels due to the underlying platform and operating system. For example, threaded Java runs a lot more quickly on operating systems that natively supports threads. This has been seen under Solaris on SPARC platform. Solaris natively supports threads and applets with threads run much faster. On the other side, operating systems that do not support threads natively (in the OS) such as Windows have applets running much more slowly as the JVM for Windows has to handle threading by itself without help from the OS.
  • 3.3.2. What are the Differences Between Java on the Same Browser on the Same Platform But Different Revisions?
  • Again, at this point in time, the only browser that has Java support in different versions is the Netscape Navigator. Microsoft has only started to support Java in version 3 of Internet Explorer.
  • Different versions of the Netscape Navigator browser (versions 2 and 3) have so far implemented the same Java Virtual Machine (JVM). The differences between have only been in adding security patches and bug fixes, and sub-subreleases of Java (i.e. version 1.X). The early version of Navigator (version 2) supported a beta release of the Java Developers Kit (JDK). The current version (3.01) supports the current release of JDK 1.02.
  • The next versions of both Netscape (Communicator) and MS Internet Explorer (4.0) are both supposed to support the next release of Java (version 1.1). This release is supposed to support the Java Database Coonectivity (JDBC) kit.
  • 3.3.3. What is this JIT Thing I Constantly Read about? Would it Significantly Speed Up My Application?
  • When the Java compiler is executed on a Java program (*.java source), it converts the code into Java bytecode and puts it into a class file. This class file can then be interpreted on any machine which has a Java Virtual Machine on it. The Java Virtual Machine processes each of the bytecodes in the class file and executes them. This process is similar to what other interpreted languages do, such as LISP or Smalltalk.
  • When a Just-in-time compiler (JIT) is present, the Java Virtual Machine does something different. After reading the class file for interpretation, it hands the .class file to the JIT. The JIT will take the bytecodes and compile them into native code for the machine that you are running on. The native code is optimized for the platform it is running on thus it runs faster.
  • JIT promises to speed up Java execution times. Like Java interpreters, JIT compilers convert Java byte code into native on the fly, but they cache the converted code in memory while the program runs. The memory cache enables Java to run faster by the fact that much of the bytecode is repetitive. The JIT compiler can identify which bytecodes it already has compiled previously and runs those directly from cached memory. Moreover, applications running from memory cache always run faster.
  • Java is a dynamic language, thus all the class files cannot be “statically” compiled into machine specific code until they are actually called. Thus the JIT is really just-in-time as it compiles methods on a method by method basis just before they are called. If the same method is called more than once, the JIT'ed code pays off as the method does not need to be recompiled; the native code is simply re-executed from the cache.
  • 3.4. Look & Feel
  • 3.4.1. Native Methods (Standard JDK)
  • Java's Abstract Windowing Toolkit (AWT) is a standard class library that encapsulates basic GUI components. The aim of AWT is to enable applications to appear as native applications creating an intermediate peer service that maps to a corresponding routine in the native operating system's API. For example, Java has a class called Button that display a push button on the screen. Push buttons are common to all GUIs. On a Wintel platform, Java calls the button routine in the Win32 API. On a Mac, Java calls the button routine in the Toolbox. On a Unix system, Java may call the routine in Motif. This abstraction gives the Java button that looks like a native button on screen.
  • 3.4.2. Pure Java Methods (Netscape IFC)
  • The Netscape Windowing Internet Foundation Classes (IFC) 1.0 is an all-Java user interface application framekwork. It allows Java applications to be created of independent of operating system-specific windows and user interface protocols.
  • IFC is writen completely in Java and is supposed to run on all Java-enabled platforms including non-Netscape browsers.
  • Applications created with this library of visual widgets will have the same look-and-feel regardless of the underlying platform. IFC applications have a distinct look different from Motif, Mac and MS Windows.
  • The IFC library includes window hierarchies, integrated drag and drop, and more.
  • 3.5. GUI Components
  • 3.5.1. Menus
  • In release 1.02 of the Abstract Windowing Toolkit (AWT), menus can only reside in menubars. Furthermore, menubars can only be attached to separate frames; i.e. menus cannot exist in applets that reside within the browser space-they must be in free-floating “windows”. The next release of AWT will support pop-up menus which are not attached to a menubar and thus are relevant to in-browser applets.
  • Note that is possible for developers to write their own pop-up menu routines and use AWT graphics primitives to paint the pop-up. However, such a pop-up loses the native look and feel of menus because it is drawn by hand and not by a menu peer (which access the underlying operating system menu call).
  • Tear-off menus are implemented under Motif and are menus that, as their name indicates, may be torn off and placed aside for quick access. Tear-off menus have perforated line at the top of the menu. Once torn off, they exist as their own window and behave almost like a freefloating menu pallette. Note that this feature is not supported in menus on Windows 95.
  • Help menus are also support by the AWT. Under Motif, help menus are located in the right and are right-justified on the menubar. Java apps running under Motif also show this behaviour—they show up on the right side of the menu bar. Windows 95 does not right-justify the help menu and instead just places it as the right-most menu and Java taking the look-and-feel of the unerlying operating system shows the same behaviour: the menu in Java on Windows 95 is just the last menu on the menubar but is not right-justified.
  • Menus under Java also support the following features:
      • toggling of menu options via checked/unchecked options
      • cascading menus
      • dynamically modifying menus
      • enabling/disabling of options
      • separator bars
  • 3.5.2. Buttons
  • The AWT currently only supports plain text buttons. These are buttons that just contain a text label. However, there are a variety of third party libraries that implement different buttons. For example, the Graphic Java Toolkit (GJT) library, published by SunSoft Press, includes two new buttons: ImageButton and StateButton.
  • The ImageButton essentially displays a image instead of a text label. A more common name for it is the picture button.
  • The StateButton graphically shows the state of something when pressed. For example, a StateButton may depict a wheel. When pressed, the wheel spins while some event triggered by the button is running.
  • Both of these buttons can have additional properties such as being springy or sticky. A springy button pops back up when pressed. Whereas a sticky button stays down the first time you press it and pops up the next time you press it-its behaviour is akin to an on/off switch.
  • The button class provided by AWT is flexible so that it can extended in additional new ways. The examples above are only show a few extensions.
  • 3.5.3. Scrollbars
  • The Scrollbar component is used to specify a particular value in a range of values. The orientation can be either vertical or horizontal.
  • Scrollbars can be used in a variety of ways. A free-floating scrollbar can be used as control meter to adjust values up or down. Traditionally scrollbars have been used with other components for situations in which the particular component does not fit the container. For example, when displaying an image that does not fit the dimensions of the window, the scrollbar is used to move the image so that sections of the image can be broght into view. Scrollbars can appear dynamically as they are needed or the developer can specify that they never appear or are always present.
  • 3.5.4. Images
  • Java is able to natively (within the JDK itself) display both GIFs and JPEGs. Additional image types, such as BMPs, PICTs need outside libraries to provide routines to manipulate them.
  • While images are being loaded, they can either be presented as partial chunks as it is loading or to wait until the image is loaded completely before displaying it. Depending on how the program is writing, the loading can occur either synchronously or asynchronously. It is possible to load an image and do other things at the same time.
  • There are a variety of options to manipulate images such as putting it through filters, resizing and more.
  • Java programs can freely use images as background.
  • The Graphic Java Toolkit by SunSoft Press has a Sprite animation library.
  • 3.5.5. Fonts
  • There are five default fonts within Java:
      • Helvetica
      • TimesRoman
      • Courier
      • Dialog
      • Symbol
        and four font styles: plain, bold, italic, and bold italic and a myriad of font sizes and colours.
  • These fonts are always mapped by Java to fonts that actually exist on the client machine. For example, on a Windows system, Helvetica is mapped to Arial. Other fonts can also be used if they exist on the client machine. Developers can create their own font mappings.
  • Java has its own FontMetrics class. Fontmetrics allows typesetting to be manipulated. For example, font properties such as ascender, height, descender, leading baseline, and others can be customized.
  • 3.5.6. Cursors
  • Java defines a number of standard platform-independent cursors that can be specified as the mouse pointer. The pointers are:
      • default arrow pointer
      • crosshair cursor
      • ‘I’ cursor, sometimes referred to as the text cursor or caret cursor
      • watch or wait cursor or hourglass
      • hand pointer
      • multi arrow pointer, also referred to as the moving cursor
  • Additionally there are a number of cursors which are used for resizing and appear depending on which direciton is being resized. These cursors included resizing from the top or NORTH, right or EAST and so on (SOUTH, WEST) and including combinations such as NE for the top right corner.
  • 3.5.7. Dialog Boxes
  • Both modal and modeless dialogs are support in the current AWT implementation. Modal dialogs bring the application to a halt (in terms of user interaction) until some vital question of the moment can be answered, such as whether to cancel a transaction. Modeless dialogs, on the other hand, can be left open and answered or manipulated at any time, enabling the user to flit from task to task without being forced to complete any of them.
  • In order to design a proper dialog box a few rules needs to be followed. A dialog box may not have menus. Some type of nomenclature must be provided such as a title bar. Finally there always must be away to get out of the dialog box. This is traditionally provided by the combo of OK and Cancel buttons.
  • The OK and Cancel buttons are the most common element to appear on dialog boxes. It is important that they be consistently used. In most windowing systems that has meant that they appear at the bottom of the dialog box and a horizontally centered.
  • 3.6. Layout Management—Why it is so Important?
  • Layout in Java, as well as other platform neutral GUI applications (such as X11/Motif), are essential to the correct behavior of the application. This is because as the application is moved from platform to platform, the screen resolution, font sizes, and window sizes all change dramatically. In Java, the programmer does not specify absolute positions for interface elements. This is very different from Microsoft Windows or Macintosh programming, for example, where the x,y coordinates of each GUI element are hard coded into the source code.
  • Java has a much more general and elegant mechanism. When GUI elements are added to a container (such as a dialog box, or a window), the general rules for layout are specified. Rules are specified by first attaching the outer GUI elements to the window borders, then logically attaching GUI elements to one another.
  • For example, assume a dialog box has two buttons, and an input element. Typical rules would be: button a is to be placed immediately to the left of button b. Another rule could be both button a and button b should be placed a certain offset above the bottom border of the window. Yet a third rule could say that the GUI element immediately above the two buttons should expand to fill up the entire window space (presumably, this kind of element would be some sort of input element, such as a text input box, or a list box. Both of these elements would show more information if the window was expanded).
  • Using these kind of rules, the Java environment, at run time, would determine the locations of the buttons, based on window size, font sizes, button sizes, and other rules that the environment imposes (for example, window managers in the X11 system typically put a border around the window. The width of the border is determined by the window manager at runtime).
  • 3.7. Java Color Model
  • The Java color model is similar to the Web browser color model, as described in section 3.10. In addition to the color map colors, the java.awt. Color class predefines a number of constant color values.
  • 3.7.1. List of Predefined Colors
  • The following colors are predefined by Java. These colors are guaranteed to exist across all the platforms, regardless of the color model.
      • black
      • blue
      • cyan
      • darkGray
      • gray
      • green
      • lightGray
      • magent
      • orange
      • pink
      • red
      • white
  • 3.7.2. Advantages of Predefined Colors: Avoid Colormap Hell
  • Although a Java applet or application is by no means restricted by to the predefined colors, sticking to the predefined sections avoids any colormap issues.
  • 3.7.3. Custom Colors: The Road to Colormap Hell
  • If custom colors are desired for a given application, Java supports two different color models, the RGB model and the HSB model.
  • 3.7.3.1. RGB vs. HSB
  • RGB stands for Red, Green, Blue. This is the basic system that most color systems use. To create a custom color, the red, green, and blue components of that color must be specified. Each of these values ranges from 0 to 255, for a total of 256 possibilities. Hence, using this model, it is possible to specify 256×256×256, or 16,777,216, or over 16 million colors.
  • Another system for specifying colors is the HSB system, or hue, saturation, and brightness. Each of these values can range from 0 to 255, for the same number of colors as the RGB model. There are actually algorithms that translate from one color model to the other, so the two systems are actually equivalent. The same colors are produced. The only difference is how the colors are specified.
  • 3.7.3.2. Colormap Hell
  • Colormap hell occurs when an application tries to use more colors than are available in the system. In that case, depending on the system that the application is running on, one of two different scenarios can occur:
      • Not all the colors specified by the Java application are used. Rather, similar colors are aggregated, and a single color is used for the entire group. This creates all sorts of problems if similar colors are used for contrasting items. This is typically the scenario that occurs on a Windows machine.
      • A separate color map is installed for the application than for the rest of the system. The effect is that while the mouse cursor is on top of the application, the custom color map is used, rendering the rest of the screen real estate (out side the application), to be useless, since it is not rendered with the right colors. When the cursor is moved out of the application window, the application itself is rendered with the system colormap, making it useless. This makes sharing information between the application and the rest of the system extremely difficult. This typically occurs on Unix platforms and Macintosh systems.
  • 3.8. Extended GUI Components
  • The following section outlines the various different components that are available on the market today:
    3.8.1. Java GUI Frameworks
    PRODUCT DATE COMPANY
    VENDOR NAME PRICING DESCRIPTION INCORPORATED SIZE
    Netscape IFC free Drawing/Event framework, April 1994 1500+
    http://www.netscape.com Communicator redirecting events to interface
    objects, Composite components
    such as Color and Font Choosers,
    Multifont text, Animation,
    Transparency, Drag-and-Drop,
    Object Persistence
    Marimba Bongo TBD (free Components include Folders, February 20+, but many of them are
    http://www.netscape.com beta source pages, trees, grids. Comes with a 1996 from the original Sun Java
    code avail) GUT builder, which understands Developer Team (such as
    class file organization, allowing Arthur Van Hoff)
    for Java Beans-like property
    introspection to build property
    sheets for designer. Default
    event templates are created.
    Shafir Java $245 bytecode Similar to Netscape's IFC, it 1993 N/A (privately held
    http://www.shafir.com Controls only. includes Drag-and-Drop, Table, company)
    Toolkit $995 Split View widgets, docking,
    (JCT) source code. event framework.

    Notes:

    Netscape will ship the IFC with their communicator (Netscape Navigator successor) product, which is currently in beta in the Windows 95 Environment. For other platforms, it needs to be downloaded as part of the applet or distributed as part of the application.

    Marimba also ships the Castinet/Tuner, which allows for automatic software update capability and broadcasting. They have an agreement with Apple, which means it will be included with the next OS release.

    Shafir provides functionality similar to Netscape's IFC. Shafir has more components than the IFC, but it is doubtful that they can compete with the mindshare accessible to Netscape in future releases.

    Marimba's product offers a complete packet that is unfortunately too immature to fully endorse. Performance is lacking, and with the imminent release of JDK 1.1 with Java Beans, they will have an uphill battle against much larger and established competitors.
  • 3.8.2. Toolkits/Comprehensive Component Libraries
    PRODUCT DATE COMPANY
    VENDOR NAME PRICING DESCRIPTION INCORPORATED SIZE
    Microline MCT (Microline $399 per Standard and IFC January, 1995 N/A
    http://www.mlsoft.com Component developer, compatible classes for
    Toolkit) no runtime. tabbed folders, hierarchical
    view, and grid (table)
    widgets.
    KL Group JClass Pro family LiveTable: JKit/Grid is a table widget 1989 N/A
    http://www.klg.com of products: $399 bytecode, that allows for a limited
    LiveTable/BWT $999 source. number of component types,
    BWT: $145 supports
    bytecode, Observable/;Observer,
    $495 source. supports hierarchy, tree
    representation.
    Object Share jKit/Grid $145 bytecode jKit/Grid is a table widget Acquired N/A
    http://www.objectshare.com $495 Source that allows for a limited by Parc-
    number of component Place in
    types, supports August 1996
    Observable/Observer,
    supports hierarchy/tree
    representation.

    Notes:

    Microline's Component Toolkit is the best performing widget suite currently available. However, the API is awkward, and it lacks support for anything other than iconic images and text in the table/hierarchy widgets.

    KL Group's LiveTable product supports arbitrary Components. The product is mature and absent of surprises. The widget feels slightly sluggish, but appears to handle large numbers of records just as well as few.
    # The Outliner widget is new and hasn't been tested yet at the Java Design Center, Sun Microsystems. As a strategic choice, KLG appears very strong.
  • 3.8.3. Graphing/Charting
    PRODUCT DATE COMPANY
    VENDOR NAME PRICING DESCRIPTION INCORPORATED SIZE
    NetFactory NetCharts $495 bytecode. Barcharts graphs, pie charts, February 1996 N/A
    http://www.netcharts.com Possible runtime strip charts, supporting drill
    of $150 per down.
    server (after 1st
    license, which is
    included in
    developer license)

    Notes:

    NetFactory is the only commercial charting vendor that the Java Design Center, Sun Microsystems is aware of. The product performs well and is extremely comprehensive.
  • 3.8.4. Geographical/Map Widgets
  • While the Java Design Center is not aware of any Java specific Geographical/Map widgets, there are several companies who are making map software available over the web. Here is a list of companies:
      • Vicinity Corporation, http://www.vicinity.com
      • MapQuest Corporation, http://www.mapquest.com
  • These corporation sell geographic information on CDROM, which perhaps can be used to write a Geographical/Map widget.
  • 3.9. Practical Limitations of Java GUI Components—A Guide Line
  • As with all GUI components and GUI systems, there are some practical limitations to Java GUI Components. Specifically, the following issues exist:
      • Content download: how long would it take to download all the entries in the GUI component?
        • If the business application is written as a Java applet, then all the information that is being stored in the GUI applet must be downloaded to the browser over the network. This may or may not be feasible, depending on the network model. See section 6 for an in-depth discussion of the implications of network models. For example, if a list box is to contain 200,000 entries, and each entry is 100 bytes, then the amount of information to be downloaded is 20 megabytes. Even if compressed with a 4:1 compression ratio, this still represents 5 megabytes to download. Over a fast link, this is not an issue, but over a slow, modem connection, this can take over an hour.
      • Usability Issues: can a user really select 4 distinct items from a list box with 200,000 entries?
        • It is extremely hard for a user to select distinct items from a list box with 200,000 entries. Consider how hard it would be to select an item, scroll down 10,000 items, and then select another, only to realize that the shift key was not pressed when the second item was selected, which means that the first item is now deselected? The worst case, of course, is after multiselecting several items, then forgetting the shift key.
      • Memory issues (is there enough memory to hold all the entries in the GUI Component?)
        • This issue, although not directly related to Java, still applies. All applications, whether written in Java or otherwise, need enough memory to hold all the entries in all the GUI components. In the above example, 20 megabytes are needed simply to hold all the components for that one specific list box. Although high end machines have that much memory these days, this is only for one GUI component in a single application. If there are multiple applications running (as is typically the case on a user's workstation), that much memory cannot be dedicated to a single application.
  • 3.9.1. What are the Alternatives?
  • There are alternatives, but sadly there are no direct resolutions to the above problems. The alternatives all involve downloading and storing the information piecemeal, rather than all at ounce. For example, consider the list box: only the information that is currently being displayed needs to be download from the web server. If the user navigates the scroll bar, the applet can go back to the server and retrieve the information necessary. If some clever caching algorithm is used (such as caching the information immediately below what is being displayed, in addition to what is being displayed), then a simple scroll down may not require a query to the server. Another approach is to have a background thread downloading new information while the user is browsing cached information. That way, the program is literally one step ahead of the user.
  • The other alternative approach is to use a hierarchical widget, which only stores information about nodes that are expanded. When the user wants to expand a node, the application retrieves the necessary information back from the server.
  • A third alternative allows the user to specify the subset of information that is needed by typing it in. The application would then query the server for the subset of information that is required. If the size of the result is large, the server could notify the applet, and the user can be prompted with a dialog box. The selections of the user could then be stored in a separate text box. This process would repeat until the user has selected all the items required.
  • All these alternatives assume large number of queries between the client and the server. In order for these alternatives to work well, a network model with low latency is necessary.
  • 3.10. Shortcuts
  • In a Java GUI application, users are able to cycle through visual widgets (such as text fields) through the use of the TAB key. This is a default behaviour; note, however, that this is broken in Windows 95 and Javasoft is working on fixing this.
  • The AWT provides facilities to trap keyboard events (including combination of keystrokes such as ALT-X or CONTROL-C). This allows developers to create custom keyboard accelators and mnemonics. A common application of this is to reach menus without having to use the mouse. Users can hit ALT-F to reach the File menu.
  • Accelator keys lets power users to quickly access menu functions without having to move away from the keyboard.
  • Here are some common accelarators that are common across different platforms (Mac, Windows and Motif):
    Function Key
    Undo Control-Z
    Cut Control-X
    Copy Control-C
    Paste Control-V
    Print Control-P *
  • Although accelator keys are very useful, note that accelator keys still have not been standardized across all platforms. For example to quit or exit an application: on the Mac, the keys are Apple-Q; on Windows and some Motif/CDE applications, it is ALT-F4. On OpenLook, it is META-Q.
      • Earlier on the Mac, Control-P used to set the font to Plain but in the current versions of the Mac interface it is used to for printing.
  • 3.11. Error Messages
  • Error messages should be displayed in a dialog box. This way, the users can move the error dialog to the side of the screen and have the opportunity to look both at the area that is causing the problem and error message itself.
  • A bad way of implementing error messages is in the web/CGI forms interface. After a user has completed a long web form and submits it to CGI, the response page returns with a number of errors. The user is instructed to click an URL or hit the backpage in order to resubmit the form. Oftentimes, the form has been cleared of all contents so the user has to start from scratch. Also at this point, the error message has disappeared so the user has to rely on memory to know what was the problem with his earlier input.
  • 3.12. Delivery Mechanism/File Formats
  • Java requires each object or class in a program to be stored in a separate file. For typically sized applications, however, this could mean that the applet or application could be composed of thousands of separate files (since those applications are typically composed of thousands of separate objects). Managing and downloading that many separate files has created real problems.
  • 3.12.1. Using Standard ZIP/JAR Files
  • To solve this problem, Java a ZIP or JAR file, which is a file composed of many separate files, with a header identifying the contents of the file, as well as an optional signature. This has the advantage that the entire Java applet is downloaded all at once, rather than piece meal. Also, for a Java application, the system administrator is responsible for distributing only a single file, rather than a collection of files.
  • 3.12.2. Signed ZIP/JAR Files
  • Signed ZIP/JAR files allow cryptographic security that the ZIP/JAR file has not been tampered with since it was created. This gives the user of the ZIP/JAR file the confidence that the file that was received, through whatever mechanism (network transport, floppy, etc.), completely intact, and unmodified.
  • 3.12.3. Using ZIP/JAR File to Ensure Version Consistency Across all Class Files
  • ZIP/JAR files also solve some versioning problems. For example, consider this scenario:
      • A Java applet starts to download. The first 10 out of 20 classes manage to download OK.
      • The web server goes down, or network connectivity between the client and the server breaks down.
      • The browser, since it cannot contact the web server, decides to take the last 10 classes out of the cache. Alternatively, if there is a proxy server in between the client and the server, the proxy server may be configured to only check some of the entries in the cache, rather than all the entries.
      • The applet starts running. Some of the class files are out of date, others are fully up to date. The application potentially won't work properly.
  • Using ZIP/JAR file avoids this problem by encapsulating all the correct classes in a single file.
  • 3.12.4. Is it Possible to Have Application in Multiple ZIP/JAR Files???
  • Sometimes, for download time and memory efficiency reasons, it is not desirable to download the entire application at once. For example, consider Microsoft Excel: we can safely assume that a vast majority of the users of Excel do not use most of the features (the 80/20 rule probably applies: 80% of the users use 20% of the functionality) of the product. However, when Excel is installed onto the hard disk or loaded into memory, the entire product is loaded. The majority of the application is not being used, yet it is using up system resources.
  • In the Java model, this could be solved if the application can be divided, by functionality, into separate ZIP/JAR files. That way, when the user starts using an advanced function, the ZIP/JAR file that corresponds to that functionality could then be downloaded.
  • This is NOT possible in today's world, however. The only available options are separate class files (which would address the above problems, since in the Java model, only the necessary class files are downloaded, not all of them, but this approach has other problems as outlined above), or the ZIP/JAR file approach, which would download the entire application.
  • 3.13. Privileged Class Download Management
  • In the hybrid scenario described in section 5.2.1.3.1, a version control issue comes up. What if the interface for the class on the local disk is different than the rest of the application? For example, what if a new application was downloaded for the web server, without the corresponding privileged class files installed on the local disk?
  • One way to control this scenario is to put a PUBLIC STATIC member in each privileged class that gets loaded on the local disk, which holds the version number for that particular class. That way, the Java applet can query the version of the classes that are loaded locally. If there is a version mismatch, the applet can put up a dialog box stating that the user must download and install a new version of the local files.
  • 3.14. Managing Context Sensitive Help
  • All business applications these days must have context sensitive help. It is no longer acceptable to have a help button that simply pops up the user manual, without presenting the appropriate sections that document the specific functionality of that part of the application.
  • 3.14.1. Java Applet Model
  • In the Java applet model, this can be easily implemented by using the browser window as the hypertext documentation viewer: Each component of the application needs to store a URL, which points to the specific documentation for that component back on the web server. When the help button is selected on that particular component, the Java applet redirects the browser window to that URL, which is then loaded from the web server. This model has several advantages:
      • The Help documentation does not have to be distributed with the applet, thereby reducing the size of the applet. Only if help is needed, is it actually downloaded.
      • The documentation developer actually saves money, by not having to redistribute copies of the documentation every time there is a change.
      • The documentation can be dynamically updated, as necessary.
      • The documentation can be created using any system that can publish to HTML. This way, there can be a single source of documentation for both the printed versions and the online help versions.
      • The entire project ends up costing less, since the project does not need to write (or purchase) a hypertext viewer for the help pages.
  • 3.14.2. What to do for Java Applications??
  • Java applications, on the other hand, do not have the Web browser associated with them. For Java applications, like all standard applications available today, would have the online help incorporated directly into the application, or could be dynamically loaded off the local disk at runtime. Either way, the help section takes up local resources. Also, the application would be responsible for incorporating a help file viewer. This can be solved by taking some of the publicly and/or commercially available HTML browser classes and using them. Netscape, for example, has such a class hierarchy in their Internet Foundation Classes product.
  • 3.15. Managing “Tool Tips” or “Balloon Help”
  • Using the AWT a developer can custom implement tool tips or a third party library can provide it. For example, Marimba's Bongo library provides a type of ballon help.
  • With Marimba's library, the user places the mouse pointer over some item in question. A little yellow rectangle with the help message pops up after a prescribed period of inactivity.
  • Another type of help is to provide the help message in the status bar of the browser/application. This automatically occurs when the user moves the cursor over the area in question. For example, when a user moves the mouse pointer over a certain button, the status bar of the browser displays a message explaining what the button is used for. This type of help is limited by the amount of space the status bar is able to provide. Long messages cannot be displayed completely and are cut off.
  • Ballon help has a similar limitation as very long help messages are overwhelming and distracting to the user. There are times the user does not want to see the message.
  • These types of help, despite their limitations, provide application users with a quick way of understanding what something does without having to resort to the manual or the help option.
  • 3.16. Managing Data Export
  • Most business applications need the ability to import and export data in and out of the application. At the very least, most applications need to be able to access the printer, or the printer spool, in order to print documentation. Also, applications typically require the use of local configuration files, for saving user specific information.
  • As per the Java applet model, these things are not possible with a pure Java applet. Several scenarios for overcoming these restrictions are possible, however. See section 5.2.1 for a more detailed discussion.
  • 3.17. Managing Job/Task Scheduling
  • Job scheduling is another requirement of some business applications. Job scheduling allows the user of the application to schedule lengthy tasks, such as spell checking an extremely large document, to periods where the user is not going to be using the client, such as overnight, or during lunch time.
  • The Java Applet model does not have direct support for scheduling, or batch processing. However, since Java fully supports multiple threads, writing and running a thread that is simply responsible for waiting until the next scheduled start time, and then starting another thread that is responsible for handling the scheduled task is trivial.
  • 3.17.1. Task Scheduling in the Java Applet Model
  • The only issue is that in order for the scheduler thread to be running, the applet must first be started. Since applets are started via the web browser, the web browser must first be started, and made to point at a specific page, where the applet resides. This can be done by configuring the system to start the browser at startup, and have the browser's default page be the page where the applet starts. Configuring the system to automatically start whenever the system starts is a system specific task. Under Windows 95 and Macintosh, the browser icon is placed in the Startup folder. Under UNIX, the/etc/rc*/* scripts are modified to automatically start the browser.
  • 3.17.2. Task Scheduling in the Java Application Model
  • Since a Java application is started the same way as any other application on the system, the business application can be started via the system specific startup mechanism, described above.
  • 3.18. Internationalization Using Java
  • The global Internet demands global software; that is, software that can be developed independently of the countries or languages of its users, and then localized for multiple countries or regions. JDK 1.1, to be FCS by Sun Microsystems in February, 1997, provides a rich set of Internationalization APIs for developing global applications. These APIs are based on the Unicode 2.0 character encoding and include the ability to adapt text, numbers, dates, currency, and user-defined objects to any country's conventions.
  • The Internationalization APIs are concentrated in three packages. The java.text package is new for JDK 1.1 and contains classes and interfaces for handling text in a locale sensitive way. The java.io package contains new classes for importing and exporting non-Unicode character data. The java.util package contains the Locale class and the localization support classes as well as new classes for date and time handling. Some additions and corrections have also been made to classes outside these three packages.
  • 3.18.1. Design Goals for JDK 1.1
  • The fundamental objective for the JDK 1.1 Internationalization APIs is to allow developers to easily write global applications and applets. The following are the design goals used to achieve this objective.
  • 3.18.1.1. International by Default
  • Traditionally, internationalization has been a separate process that is optionally performed after normal development. This model does not work for developers writing Internet programs in “Internet Time”. By contrast, Java programs should be internationalized by default. This implies that it should be easier than not to write internationalized Java code.
  • 3.18.1.2. Object-Oriented Design
  • Traditional internationalization support has been procedural in design and has relied on global state to affect locale-dependent operations. Java internationalization requires an extensible, object-oriented design that avoids global state.
  • 3.18.1.3. Multilingual Support
  • Not only is every major language on the planet used on the Internet, but users often need to use combinations of these languages in order to communicate with each other. Java must provide multilingual support as well as support for many individual languages.
  • 3.18.1.4. Platform Independence
  • Java programs must function on many different platforms.
  • Internationalization must always work the same, independent of the platform. Therefore, the Java Internationalization APIs must be platform independent.
  • 3.18.1.5. Support for Unicode
  • Unicode enables multilingual programs. Java is unique in programming languages in having chosen Unicode as its primitive built-in character type. JDK 1.1 supports the Unicode Standard, Version 2.0.
  • 3.18.1.6. Backwards Compatibility
  • An API implementation needs to remain backwards compatible. This includes classes, interfaces, and methods that cannot be internationalized because of inherent design limitations. These limitations are noted and alternative classes, interfaces, and methods provided.
  • 3.18.1.7. Focus on JDK 1.1's Clients
  • Enabling users of JDK 1.1 to create global programs is the focus of this release. Internationalization and localization of the JDK itself is not a goal for this release; this will be done in a later release.
  • For more information, please consult http://www.javasoft.com/products/JDK/1.1/docs/guide/intl/index.html.
  • 4. Performance Style Guide
  • This section aims to discuss some of the issues with regards to performance style and performance tuning.
  • The Internet has posed several performance challenges, as compared with its peers, the intranet and the extranet. These challenges are described here.
  • 4.1. The Network Model
  • Describing and understanding the network model that best describes the network behavior is one of the most important tools need to tune the performance of an application. The network model, in its simplest form, can be best understood by categorizing and describing the throughput and latency of the connection between the client and the server infrastructure.
  • 4.1.1. Latency/Round Trip Timing
  • Typically, latency in telco terms is defined as the amount of time it takes for information sent from end of a circuit to reach the other side. Latency is introduced by a several factors, including:
      • The physical natures of the medium composing the circuit. Typically, electrical signals travel at the speed of light, but are slowed down by various different mediums. Electrical signals in a copper wire travel slower than light signals travel in fiber. Also, the colder the material, the slower the electrical signals travel.
      • The physical length of the circuit. Electrical signals have less latency over a short circuit than they do over a long circuit.
      • The number of “hops” or media transitions that the signals must make. For example, typically, copper is used for short distance transmissions, such as horizontal wiring within a building, and wiring to the desk top. However, fiber is typically used for vertical wiring within a building, or cross country long haul transmissions. At the point where the copper wiring meets the fiber wiring, a slight delay is introduced in the equipment that receives the signals from the copper wiring and retransmits them on the fiber cable. Also, due to physical restrictions, it is sometimes necessary to use “repeaters”, which are pieces of equipment that regenerate the signal and retransmit it over the same kind of medium. For each such hop, a slight latency is introduced.
      • The number of switches that the circuit must traverse. Typically, a telco does not dedicate long haul fiber cables for each circuit, but rather the fiber is shared, in a time multiplexed manner, for many hundreds of circuits. For example, if 1000 circuits share a single fiber cable, then each circuit is given a 1 millisecond time slice, in a round robin fashion. This round robin time sharing is controlled by the switches on either end of the fiber cable. Each of these switches introduces a slight latency delay into the signal. Note that in this model, load, or number of circuits in use, does not affect the performance of a given circuit, since each circuit is guaranteed a certain time slice through the switch infrastructure.
  • For the purposes of client/server type of applications, it is easier to manage latency if it is defined as the round trip time between a client sends a query to the server, and the client receives the response from the server. For the sake of network performance discussions, it is assumed that the server takes no processing time to respond to the query (obviously, this is not true, but server delay is beyond the scope of the style guide, and requires a whole different model to describe and understand).
  • 4.1.1.1. The Internet is High Latency
  • The Internet, in general, can be thought of as a high and variable latency network link. The reasons for this are as follows:
      • A typical “circuit”, or connection, through the Internet is made up of several Telco style circuits (as described in the previous section), with Internet routers connecting each of the Telco circuits. Each of the Telco circuits introduces a latency. Each router also introduces a latency. It is typical for two sites to be separated by as many as 15 to 20 Telco circuits.
      • The Internet router model is different than the Telco model. As described previously, the Telco model is time slicing, or time sharing. The Internet model is a packet switch model, where each router queues packets coming in off of each circuit. Each packet is then examined sequentially, and a decision is made on which circuit to forward the packet. This decision is made on the fly for each packet, thereby introducing a slight delay.
      • Congestion also plays a role in latency over the Internet. As the load increases, the potential for a packet backlog through a router increases. The longer a packet sits in a router queue waiting to be processed, the higher the latency is for that packet.
      • The Internet also has a dynamic routing model, where routes between two sites may change dynamically to accommodate communications outages, as well as congestion. In theory (and in practice), multiple packets from the same source to the same destination can travel through different routes, each with a different latency.
  • In conclusion, the Internet has a high, and variable, latency. The latency certainly will change among different connections, and possibly within the same connection.
  • 4.1.1.2. The Extranet/Intranet is Low Latency
  • The Extranet/intranet models typically have low latency for the following reasons:
      • Intranets are typically composed of high speed, low latency local area networks, rather than long haul, wide area Telco circuits. The intranet is also composed of a few number of local area networks connected together, typically less than 5-7 between two intranet sites. Extranets are typically made of a single Telco circuit, which is then connected to the corporate intranet.
      • Although the same style routers are used on the intranet as on the Internet, since there are fewer networks between the two sites, there would be fewer of them, thereby introducing less latency.
      • Congestion also plays a smaller roll in an intranet/Extranet than on the Internet. Typically, a company has financial interest in using the best possible equipment for internal infrastructure, such as redundant, load balanced routes, making the internal infrastructure that much better.
      • The intranet/extranet, being significantly simpler than the Internet, typically does not use dynamic routing, but rather relies on static routing. This makes the latency on an intranet more stable, since it is purely a function of load and congestion (both of which are controlled, as described in the previous bullet).
  • In conclusion, the intranet/extranet network model shows that the latency is low.
  • 4.1.2. Throughput
  • Throughput in telco terms is the amount of bandwidth that can be sent via a given point over a period of time. That is, how much information can be fed into the circuit over a given period of time. This is typically measured in number of bits (or bytes) per second. For example, Ethernet is 10 megabits/second, whereas a T1 circuit is approximately 1.5 megabits/second, and a T3 circuit is 45 megabits/second.
  • 4.1.2.1. Internet is Variable But Potentially Medium to High Throughput
  • The nature of the Internet makes it difficult to discuss throughput, since each client on the Internet is connected to the next router in the process at different speeds. For example, a person dialed up to the Internet from their home is typically connected either at 14.4 kbits/second, or 28.8 kbits/second, or if they are lucky, they have ISDN service, which allows for 64 kbits/second (or 128 kbits/second depending on the service). They typically connect to infrastructure that is significantly faster than that. On the other hand, a corporate Internet user could be connected via a dedicated circuit ranging from a T1 on the low end, to a T3, or several T3's, on the high end. However, being connected via a high speed link doesn't necessarily guarantee that the total throughput between the client and the server is at that high speed, since all the circuits in between would also have to be at that speed. The circuits in between the client and the server are also shared among all the different clients on the Internet, further clouding the issue. Time of day also plays a role in throughput calculations, since the Internet is more heavily used during certain times of the day than others (for example, Lunch time on the east and west coasts of the United States are when the Internet experiences the heaviest loads).
  • In conclusion, the bandwidth model for the Internet is hard to model correctly, but the total throughput could be high.
  • 4.1.2.2. Intranet/Extranet Allows for Consistently High Throughput
  • The intranets and Extranets typically provide for high bandwidth and throughput, since they are custom networks that are scaled to match the required bandwidth. Extranets are also composed of dedicated links between the client and the server infrastructure, making the model easier to construct.
  • What model is the best? Clearly, the Internet model is the cheapest, since Internet connectivity is a commodity item these days. However, its constantly changing and unpredictable model make it impossible to guarantee service. Therefore, any application that absolutely demands a service lever guarantee cannot rely on the Internet for its communications infrastructure.
  • 4.2 Multimedia Issues
  • In the past, the Internet was purely text based, everything fit nicely into the 80 column, 24 line display. Today, the Internet has become much more multimedia oriented. The World Wide Web now fully supports graphics, animations, audio, and even video.
  • 4.2.1. Graphic File Formats
  • As of today, there are many different graphic file formats, each optimized for a specific function. The two most popular on the World Wide Web today are GIF (Graphic Interchange Format) and JPEG (Joint Photographic Experts Group). GIF was developed by CompuServe for use on their online system during the late 1980's. JPEG was developed later as a way of further compressing images.
  • 4.2.1.1. GIF
  • The GIF (Graphic Interchange Format) file is a popular image format due to the many available viewers cross all platforms, as well as its compression algorithms. The GIF format was first developed in CompuServe, and patented in 1987. CompuServe redesigned the image format to allow for transparency and interlacing, and repatented the file format in 1989. The GIF standard was popular in the World Wide Web in the beginning, since that was the only file format supported by the original Mosaic browser, as well as the initial Netscape browser. However, due to the patent that CompuServe holds over the standard (and the constant threats from CompuServe to actually impose the patent and start charging royalties for the use of the standard), as well as the integrated support of other image formats in all major browsers, the World Wide Web is now moving away from the GIF standard, to the JPEG standard.
  • 4.2.1.2. Interlaced GIF Images
  • Netscape introduced interlaced GIF graphics as a means of “virtually” speeding the transmission of GIF graphics, where an immediate low-resolution image is loaded with the text content of the page, then the low-resolution proxy is gradually updated in four passes until the full-resolution GIF images is displayed. This gives the user a quick impression of large graphics as they download, and also give the user almost immediate access to text and hypertext links on the page.
  • This feature is now supported by Microsoft Explorer as well.
  • 4.2.1.3. Loading Low Res/Hi Res GIF Images
  • Netscape has implemented a scheme that allows you to specify a set of smaller, low-resolution graphics to load in quickly when the user first opens a page, but which will later be replaced by high-resolution images. Netscape will load all of the low-resolution graphic “proxies” on the first pass through the page, then make a second pass that replaces the low-resolution proxies with the full-size high-resolution source graphics. By manipulating the Netscape HTML width and height extensions you can “stretch” or scale up the small, low-resolution graphic proxies so that they display at the same screen size as their high-resolution counterparts. This will give the web site users a relatively quick impression of the whole page layout (particularly on pages that contain many large graphics) without forcing them to wait to begin reading or scrolling while all the high-resolution graphics gradually load into the page.
  • HTML IMG tag for a pair of low/high resolution source graphics:
    • <IMG SRC=“HiRes.GIF” LOWSRC=“LowRes.GIF” WIDTH=475 HEIGHT=387>
  • 4.2.1.4. Animated GIFs
  • Netscape also introduced a method for doing animations on the World Wide Web. The GIF standard, as documented by CompuServe, allows a series of images to be stored in a single file, with meta data describing the delay, in microseconds, between the images, as well as whether the sequence should be repeated or not. Netscape first implemented Animated GIFS in Navigator v2.0. Since then, Microsoft Explorer has also implemented Animated GIFs.
  • Today, it is hard to find a web site that does not take advantage of this simple, yet incredibly useful, feature.
    4.2.1.5. JPEG
    Figure US20050172018A1-20050804-C00001
  • Netscape Navigator, as well as Microsoft Explorer, now supports the industry-standard, publicly available, non-patented JPEG (Joint Photographic Experts Group) compression format for inlined WWW graphics. Given the huge compression ratios that can be achieved with JPEG compression and the recent legal uncertainties raised by CompuServe over the status of the GIF image format, JPEG will likely evolve as the standard for WWW graphics over the next few years. However, many existing browsers (such as Mosaic, and the AOL browser) currently in use do not support inlined images in JPEG format, and this still limits the current utility of the JPEG format for broad use in WWW design.
  • If your WWW viewer does not support inlined JPEG images (like Mosaic1.x) the JPEG-format files may be transferred to an external application (like JPEGView under Windows95) instead of being displayed as an inlined image within the example page, or may not show up at all.
  • For more information, consult the JPEG frequently asked questions page, at http://www.cis.ohio-state.edu/hypertext/faq/usenet/jpeg-faq/top.html.
  • 4.2.2. Audio File Formats
  • 4.2.2.1. WAV Files vs. AU Files vs. RealAudio
  • Currently, there are two classes of audio players on the Web: Those that play in real time (while the sound data is being transmitted over the Internet), and those that wait until the entire audio data is downloaded before starting to play the audio.
  • Initially, when the World Wide Web was in its infancy, only the second model was possible. Audio files were completely downloaded to the client by the Web browser. The audio player software was then directed to play that piece of audio. Naturally, there were many different audio file formats, such as WAV, AIFF, AU, snd, etc. Each format, as with their graphics counterparts, had its advantages and disadvantages with respect to the sampling rate, sample size, and compression algorithms.
  • WAV files, since they are most common on the Windows platform, are the most popular, but it is very common to include the same sound in several different formats, and allow the user to choose which to download.
  • As time went along, another method was introduced that allowed for real time audio that was played as the sound was downloaded. The first such product was called RealAudio. There are now several such products, each optimized for different things (there are several bi-directional such products as well, such as the WebPhone). These products are less reliable than their predecessors, since they require consistent bandwidth between the client and the server, but since the human ear is capable of making up for short dropouts, this method has actually gained popularity. The majority of traffic over the Internet backbones is actually RealAudio traffic.
  • In conclusion: To maximize the likelihood that a given client would be able to play the sound file, several different file formats need to be made available.
  • 4.2.3. Video File Formats
  • Although video is not yet completely ubiquitous on the World Wide Web, the amount of available bandwidth is quickly reaching the point where real time video is possible. Currently, there are two competing standards, MPEG and Quicktime.
  • 4.2.3.1. MPEG
  • The MPEG standard is a standard for encoding video and accompanying audio into a single bit stream, so that it can be stored or transmitted. MPEG is an incredibly complex compression algorithm designed to minimize the amount of bandwidth required to transmit live video and audio. MPEG typically requires specialized hardware support for real time encoding and decoding.
  • For more information, consult ftp://pit-manager.mit.edu/pub/usenet/comp.multimedia/.
  • 4.2.3.2. Quicktime
  • Quicktime is a standard developed by Apple Computers for encoding video and accompanying audio into a single bit stream, so that it can be stored or transmitted. On the World Wide Web, Quicktime has several advantages over MPEG:
      • Apple has distributed free Quicktime viewers on a majority of platforms. This made Quicktime video players available, whereas MPEG players were less available.
      • Quicktime compression algorithms are less complex than MPEG. Therefore, Quicktime can typically be played on less powerful machines than MPEG (which typically required hardware support for decompression).
      • Apple pioneered the creation of Quicktime movies with special hardware and software on the Macintosh platform. Creating Quicktime movies is done via software on typical workstations, whereas MPEG compression typically required more powerful workstations, or hardware support.
    DESCRIPTION OF THE PRIOR ART
  • 1.1.1 AT&T's Competitive Products
  • AT&T offers the following network management tool for their high-end customers.
      • AT&T—Accumaster WorkStation
      • RCS Online
      • RCS-RMI (3270 version)
  • You will find other products compared. Please keep in mind that these products offer only a couple features of 800 Network Manager but warranted being included.
  • Accumaster Services
  • Introduced in 1989. It is a user friendly management tool for monitoring and controlling Inbound and Outbound (SDN) services. It is based on a SUN SPARC station workstation equipped with a variety of software, ranging from expert systems for network planning and configuration to marketing analysis. Word on the street is that AT&T is not marketing the Workstation anymore but is selling the software for use under the Accumaster name. However, there are a lot of workstations still in existence as this product continues to be MCI's main competitor in bids for new business from AT&T.
      • Accumaster has the ability to cut to utilize AT&T's RCS (Routing Control Service) that competes directly with 800 Network Manager.
      • RCS's original 3270 standalone version can still be utilized by customers who desire to work through remote dial-up access or with low end workstation.
      • TOPM's (Telemarketing Operations Performance Management System) Competes in a very small way with 800 Network Manager. TOPMs works in conjunction with ICP. (Intelligent Call Processing)
      • OCDD (On Line Call Detail) competes with TrafficView.
      • OCDD/RT (On Line Call Detail Real Time) competes with TrafficView.
      • OCDM (On Line Call Detail Manager) competes with TrafficView.
      • CAD/R (Call Attempt Data Reports) competes with TrafficView
      • CAD/RT (Call Attempt Data Real Time) competes with TrafficView and a small amount with 800 Network Manager.
      • CTD/R (Customer Traffic Data Reports) Reporting Feature that competes with Fault Manager.
      • CTD/RT (Customer Traffic Data/Real Time) that competes with Fault Manager.
      • Service Monitor that competes with TrafficView.
      • Accumaster Ticket Manager that competes with Direct Dispatch.
        Customers can Monitor Multiple Systems (or Call Centers) Through a Single Workstation.
      • Data downloaded automatically.
      • MS-Windows environment.
      • Software includes utilities that display, and store call detail.
        Hardware/Software Requirements:
      • 386 DX or higher processor
      • MS-Windows 3.1 or later
      • MS-DOS 5.0 or later
      • 100 MB RAM (processing is directly related to RAM. More RAM, the faster the processing of data)
      • 486 Processor
      • 3.5 inch diskette drive
      • 9600 baud modem per host specifications
      • 16 MB RAM (same as above)
      • 240 MB Hard disk or greater
  • 1.1.1 Routing Manager
  • 1.1.1.1.1 Routing Control Service On-Line
      • Redirect 800 numbers as the need arises or store for response to typical network conditions.
      • Dial up and Dedicated Access Supported.
      • Routing Control Services
      • RCS Online lets you add/change/delete 1) all feature pack II or term plan feature package routing features 2) announcement features 3) routing on demand features using your terminal w/no service order process/cost. Conditions:
        You Provide Terminal
    • 1. Changes can be made active within 1 hour or held for activation later Access anytime except maintenance hours
    • 2. AT&T provides validity checks, but you are responsible for screw-ups
    • 3. Can not change text of recorder announcements.
      RCS-RMI—Product Overview
      (AT&T's 3270 Emulation which can be accessed via a dumb terminal or low end PC)
  • AT&T offers more control over their Call Prompter service through RCS. Specifically, customers have the capability to add and delete layers of their Prompter applications as if they were building blocks. For example, a customer may normally have a single layered prompt structure (Press 1 for Sales, Press 2 for Customer Service); however, under special circumstances, they want to be able to add a second layer under Customer Service (Press 1 for Technical Support, Press 2 for Billing Inquiries, Press 3 for General Comments, etc.). We believe that customers can very quickly make these kinds of changes to their prompts with RCS.
  • RCS does not allow customers to change their DNIS digits as can be done through CM. Customer must provide their own personal computer or dumb terminal. Same routing change/install capabilities/parameters as RCS Online. But (unlike RCS) do data entry into your PC off-line, then batch upload to AT&T computer (or download current data in AT&T computer for modification off line at your computer) in very short call.
  • RCS Assurance
  • (for rcs online/rmi users)
  • Get 800 RCS assurance credit equal to monthly charge per billing account (only one credit per account per month) if you can not use RCS online/rmi for more than 1 hour. Assurance does not apply to interruptions due to customer negligence/failure to report problems or allow testing or repairs or failure of non AT&T systems.
  • Routing on Demand—
  • “Poor Mans RCS”. You call AT&T 800 advanced features service center (except during maintenance hours) in St. Louis on 800 #, give id and pin, tell what pre-stored alternate routing plan/s to use. Change effective w/in 5 minutes or can be delayed to specific date/time. Effective until changed again.
  • 1.1.1.2 Next Available Agent Routing
  • Specify Sequence of up to 99 alternate sites (trunk groups) where calls can be routed if primary site busy/already handling MCA (maximum calls allowed). AT&T network hunts through alternate routes in specified order looking for site to take call. Must also specify MCA at each site (max MCA each site is number of receiving lines). Can also reroute calls to announcements, network busy signal, network ringing, or Network Queuing. Can change MCA by RCS Online or RMI free, or Routing on Demand ($50 fee).
  • Network Queuing—
  • AT&T network holds calls in queue until customer site able to take call; requires Next Available Agent Routing. Can set up to serve single site (fixed queue) or multiple receiving sites (variable queue). You specify how many calls (slots) can be held in queue for each receiving site; beyond that callers get busy signal. You can change number of slots by RCS-Online, RCS-RMI, or Routing on Demand ($50 fee). Other changes require AT&T personnel and fee. When caller put in queue, delay announcement (custom or generic; 4 minutes max; routing information only). Can stay in queue max 30 minutes until completed or caller hangs up. Free “keep holding” announcement played every 30 seconds after initial announcement.
  • 1.1.1.3 TOPMS/ICP
  • 1.1.1.3.1 TOPMS Overview
  • TOPMS is a non-tariffed product, and therefore the following information is the latest from competitive sources and is subject to change.
  • AT&T's TOPMS is a real-time system that allows customers to monitor multiple call centers through one central ACCUMASTER Service Workstation. TOPMS can monitor up to 24 ACDs in real time and allows the user to set their own measurement thresholds. Some of the thresholds available are average speed of answer, talk time, average hold time, and number of calls in queue.
  • TOPMS data can be displayed in map-like graphics or in table formats that contain individual centers and/or ACD splits. The customer can monitor multiple centers out of one location.
  • TOPMS allows customers to define thresholds and alarming. This alerting feature provides visual or audible alarms whenever certain performance thresholds are exceeded in any call center or ACD split. In addition to monitoring and alerting capabilities, TOPMs has a detailed algorithm that makes recommendations on how to shift traffic through percentage allocation and/or staffing adjustments.
  • TOPMS is used by large Call Center customers to help them make 800 load balancing decisions based on real-time information from all ACDs across their network. TOPMS does NOT make the actual routing changes—customers must still make the actual routing change using Call Allocation (percentage routing), Area Code Routing, or Command Routing. They can initiate these changes themselves at their ASW or call AT&T to make the changes.
  • TOPMS Conditions
  • TOPMS requires an Accumaster Services Workstation system. The customer currently may ONLY use the Sunsparc WS.
    • 4. TOPMS requires AT&T certified ACD interfaces (at the financial responsibility of the customer).
    • 5. TOPMS recommends having at least one 800 routing feature, such as Call Allocation, Area Code Routing, or Command Routing.
    • 6. TOPMS must be combined with ICP to provide AUTOMATIC routing based on the TOPMS view across multiple ACDs.
    • 7. TOPMS currently only interfaces with AT&T Definity and Rockwell Galaxy. TOPMS PRICING (TOPMS IS A NON-TARIFFED PRODUCT, THE FOLLOWING IS THE LATEST AVAILABLE FROM COMPETITIVE SOURCES AND IS SUBJECT TO CHANGE)
  • 1.1.1.3.2 ICP Overview
  • AT&T's 800 ICP combines the routing capability of the AT&T Switched Network with the intelligence of a Host Processor located at the customer premise to route 800 calls on a call-by-call basis. Whenever an AT&T 800 number is dialed, if there is an ICP “trigger point” in the 800 routing plan, the AT&T network sends a “What do I do with this call?” query to the host processor (known as the CRP—Customer Routing Processor). The CRP then tells the AT&T network where to send the call. The information sent from the AT&T network to the CRP can include any or all of the following:
      • 10-digit ANI
      • the dialed 800 number (or associated DNIS value)
      • up to 15 caller entered digits
  • In other words, the routing intelligence resides on the customer premise, not in the network. Additionally, AT&T is NOT looking at actual ACD statistics, across multiple centers. If that information is needed, it must be provided by the customer into the CRP, along with the routing algorithm that tells AT&T where to route the call.
  • ICP Conditions
  • ICP Pricing (ICP is a Tariffed Product)
  • 1.1.1.4 Select Routing
  • This feature allows a customer to set up and store as many as six routing plans, per 800 number, in the AT&T network. At any given time, one of the plans must be active—actually processing calls—while others are held in reserve. Customers can activate any of the reserve plans by using on the RCS or by calling in to AT&T. A user access code and PIN are required when customer calls in to enhance network security.
  • Customers can also have certain “reserve” plans activated automatically at some prearrange time. They call in to schedule or implement with RCS.
  • Example: A customer can design a routing plan for “normal” conditions and others for special situations that arise from time to time—such as an end-of-the-month call surge, a weekday holiday a special promotion period, and others. The customer can then have the appropriate “reserve” plans activated as needed or on some prearranged schedule.
      • Changes are implemented within 30 minutes.
      • Pricing
      • per month per stored plan.
      • RCS customers get Select Free with up to 15 (including active) Plans. RCS Activation Free.
  • 1.1.1.5 Customer Direct
  • The AT&T Customer Direct Platform is targeted to midrange customers and supports five network management applications—Order It!, Manage It!, Control It!, Optimize It!, and Analyze It!. This platform has been designed to help manage all vital corporate network assets: VTNS, Cellular, IntraLata, International and more.
  • The Order It! Application allows customers to electronically submit orders for Virtual On-Net, Switched Access, Cellular, and IntraLata locations to AT&T. It also helps customers to track the status of pending orders.
  • The Manage It! Application is a unified solution for all network configuration information. It provides management of authorization codes, flexible routing, and screening groups. Manage It! Allows customers to complete, accurate and current inventory of their network locations and features.
  • Control It! Allows customers to monitor network costs, call volume and network integrity. Access to this up-to-date information will help customers minimize expenses and make decisions based on the most current data. This includes cost justification studies to determine if changing a switched access location to dedicated access will generate savings.
  • With the Optimize It! Application customers can improve network productivity through easy access to information on calls completed, line load and traffic trends. Recommendation Reports help identify where dedicated access lines are underutilized and switched access would be more efficient.
  • Analyze It! Uses CD-ROM technology to give customers accurate, up-to-date billing records and analysis tools that are easy to access, use and store. Analyze It! Lets customers access and analyze their records, with more than 160 standard reports (as well as the ability to create custom reports and applications).
  • Manage It! For AT&T Customers Direct allows customers to manage their Toll Free network management features and locations. It operates using a mirror image of their network database, which resides on a PC or server designated by the customer. All modifications are made to this one database and are then uploaded to AT&T to take effect in the customer's network.
  • Although multiple users on a local area network (LAN) can access and read the information provided by Manage It! Only authorized user can make changes to the information. This helps ensure the integrity of the data. Manage It! Is not available to multiple users across a wide area network (WAN). AT&T Customer Direct can currently run on Novell NetWare 4.X LANs and Windows NT.
  • Manage It! Gives customers a complete list of their locations—virtual on-net, dedicated, switched access, even “featureless” switched locations. The application communicates directly with the AT&T Network Service Management System so customers can be sure they are getting an accurate, current picture of their SDI at all times. Any changes and updates entered are typically active within 15 minutes. In addition, Manage It! Helps customers to maintain a local database on their PC, including their PBX trunk groups, T1.5 data, account codes, and voice mail data.
  • 1.1.1.5.1 Manage It!
  • 1.1.1.5.1.1 Competes with 800 Network Manager's Low end Customers
  • Offered on AT&T's Customer Direct Platform that supports five versatile network management applications, Order It!, Manage It!, Control It!, Optimize It! and Analyze It!. Each application offers quick and easy operation in the window environment.
  • Manage It! is a unified solution for all network configuration information. It provides management of authorization codes, flexible routing and screening groups. It also allows a customer to view a complete, accurate and current inventory of their network locations and features.
  • Features:
      • Windows based. All network data is available for viewing on your own PC or laptop.
      • Set limits on calling privileges or update screening groups.
      • Update employee rosters or authorization codes.
      • Design and implement alternate routing arrangements to cover emergencies or office shutdowns.
      • Control fraud—delete authorization codes, move them to different screening groups or block calls to specific countries or locations.
      • Changes are usually activated within 15 minutes.
      • Gives a customer a complete list of locations—virtual on-net, dedicated, switched access, and featureless switched locations.
      • Tied directly to AT&T Network Service Management Systems.
      • Provides access to more than 45 pre-defined reports and allows customization of SDN reports.
  • 1.1.1.5.1.2 Managing Authorization Codes
  • If customers need to update authorization codes whenever employees join or leave the company, Manage It! Gives them an easy way to do it. Customers don't need to maintain a separate database for their on-net or Network Remote Access (NRA) option 1 authorization codes. The application stores the codes and allows customers to add, delete, or change them as needed.
  • Customers can even use the Import/Export capabilities of Manage It! To add large volumes of authorization codes or to move codes from one screening group to another. With Manage It! Customers can even match authorization codes to an employee name or ID code of up to 15 digits. In addition, customers can manage fraud protection and cost containment by regulating calling privileges for on-net, off-net, and international long distance calling.
  • 1.1.1.5.1.3 Standard and Customized Report Options
  • Manage It! Provides access to more than 45 pre-defined reports—and allows customers to download any of their network data to create their own customized SDI reports through the Question Report Writer included in the software.
  • 1.1.2 Sprint's Competitive Products
  • 1.1.2.1 Sprint Insite Product Line
  • Sprint's Insite product line provides a full complement of Customer Network Management (CNM) capabilities designed to meet customers' changing CNM requirements. The Insite family of products is composed of Insite Executive, Insite PC, and Insite Agent. Each product line was designed to meet the challenging CNM needs of today's business.
  • Insite Executive is Sprint's evolving, integrated network management platform based on a high-performance workstation. Designed to provide customers with a truly integrated services management system, Insite Executive will manage all Sprint's voice, private line, and packet switched offerings using a single workstation with a consistent graphical user interface.
  • Insite PC provides management of Sprint services via the customer's personal computer. Designed to provide an economical means of managing multiple Sprint services, Insite PC provides network control, operational measurements, administrative maintenance and trouble management functions.
  • Insite Agent provides customers with the ability to monitor the health and performance of their networks. Insite Agents currently operate with the use of the Simple Network Management Protocol (SNMP) in conjunction with the Management Information Base (MIS) browse component of the customer's Network Management Station.
  • 1.1.2.2 Insite Executive Call Director
  • Call Director is Sprint's routing control service, which runs on Insite Executive. Customers can add, change or delete Enhanced Routing Trees or routing plans in near real-time (within 5 minutes) for their toll free numbers. Customers access Call Director functionality from a Sprint Station or from a customer provided SPARC workstation that utilizes Call Director Software. Customers may create as many routing plans as they wish. Plans may be validated and stored for future activation, as far as two years in advance.
  • Redirect 800 numbers as the need arises or store for response to typical network conditions. Dial up and Dedicated Access Supported.
  • 1.1.2.2.1 Site RP
  • Customer's own on-premise computer (Site Routing Processor) tells Sprint Network how to route 800 calls to different customer sites real time. call by call. Customers decides and maintains routing tree. CRP can be Sun Workstation to IBM Mainframe.
  • Routes calls individually based on customer provided parameters.
  • Sprint provides software and link to network. Customer provides the processor (PC, minicomputer or mainframe). Customer installs software and perform any additional programming.
  • Requires X.25 dedicated data links from CRP to each Sprint CRP (5 circuits total) Sprint buys from Telco and passes to customer as flat $1,155 per month (total 5 circuits).
  • 1.1.2.2.2 Network Call Distributor
  • Provides load balancing throughout the network. NCD processors are in the network. Customers control from their sites (through Insite PC or Executive). Requires X.25 circuits from each ACD to Sprint network. NCD collects real time data from customers ACDs on agent/site availability and routes calls to best site. User gets real time routing without tying up time/money in personnel and equipment.
  • User can change routing logic/parameters by calling Sprint or by logging into Insite or Insite Executive.
  • 1.1.2.3 Sprint's Insite Strategy
  • The Insite strategy is to allow customers to more effectively use and leverage Sprint's inherent network capabilities to manage their business. Customers can make decisions based on real network data that can be consolidated across different services and locations.
  • Insite PC 1.7/Insite PC Managers
  • Insite PC, being re-named Customer Network Manager will initially handle inbound and card traffic. The Toll Free network management capabilities will be released IQ97.
  • Currently, Insite PC Managers offers the following features in a text-based, Windows compatible format:
      • Personal Computer Based. Operates on customers' IBM or IBM-compatible personal computers. It is not necessary to acquire or install new hardware, because Insite PC does not require a dedicated personal computer.
      • Trunk Traffic Data for Dedicated Access Lines. Displays hourly, daily and weekly summaries of trunk group traffic on the network for the same day or historically. Allows customers to determine if their dedicated access lines are trunked properly and to perform traffic analysis.
      • Traffic Alerts. Displays traffic alerts when traffic on customers' trunk groups exceed a preset traffic threshold. The alerts are: Terminating Trunk Overflows, Terminating Calls Completed and Exceed % Occupancy Threshold. Customers will be able to determine their busy trunk groups in near real-time. This can alert customers to the need to perform Toll Free Command Routing or of the need for additional circuits.
      • Authorization Code and FONCARD Maintenance. Displays authorization codes or FONCARD numbers, and allows customers to update the status and the comment fields. Gives customers the convenience of managing their own codes in the even of personnel change.
      • Validate Account Codes. Add, activate or cancel all Validated Account Codes. Customers can also view the associated Validated Account Code list. Customers can manage their own accounting codes with the ability to change these as business dictates.
      • Toll Free Command Routing. Allows customers to activate a preplanned routing tree for Enhanced Routing in near real-time to respond to traffic conditions, emergencies, etc. Toll free Command Routing is an optional feature of Enhanced Routing service. Customers can invoke a preplanned routing set without calling customer service. This added convenience speeds the rerouting of toll-free calls.
      • Trunk Group Information. Displays information such as address, service type and number of circuits for all customers' dedicated trunk groups. Customers can view and verify the accuracy of their trunk group configurations without calling Sprint.
      • Transaction Display. Displays a time-stamped list of all transactions to track Insite PC usage, along with the ID of the user who performed them. Provides customers with a view of all their Insite PC activity for tracking purposes.
      • Bulletin Board. Allows customers to read the update messages sent among their users (corporate messages) and to read Insite PC system-wide bulletins broadcast by the Insite Service Center (critical messages). This simplifies communication and provides a near real-time notification of major network events.
      • Service Type Profile Selections. Allows customers to restrict Insite PC processing to only selected service types in a given session. Users can clean their work space to include only information relevant to their current tasks.
      • Class of Service Selection. This optional feature of VPN service allows more control of the network by defining privileges and restrictions for on-net, off-net and international calling. Customers can change a defined class of screening set for VPN locations and FONCARDs.
      • Security Maintenance. Customers can set up security profiles to allow users access only to the functions they need, preventing unauthorized users from making changes.
      • Trouble Tickets. Allows customers to enter and track trouble tickets for Sprint switched and Clearline services by location. Customers can view trouble ticket for Sprint switched and Clearline services by locations. Customers can view trouble ticket notes to receive updates on the resolution of their troubles.
  • MCI Background
  • The current MCI ServiceView (MSV) product line provides MCI Business Market customers with Windows based client-server applications for customer network management and call usage analysis. These applications include: Perspective, TrafficView, 800 Network Manager, Outbound Network Manager, Fault Manager, Direct Dispatch, Call Window, and System Administration and were built and deployed between 1994 and 1997.
  • Although the MCI ServiceView PC applications reside on a common platform and use objects to promote common look and feel, there is little cross application interoperability and data sharing. The customer must use the separate applications to gain access to their data. There are additional customer network management applications (e.g.—HyperScope, Call Manager, Portfolio) which are not MSV based and therefore do not share the same PC configuration and communications as the MSV ones.
  • SUMMARY OF THE INVENTION
  • The Next Generation product suite, also known as Starbucks, allows MCI to leapfrog the competition by offering a consolidated Web based network management product to the MCI business customer. There are many reasons for providing a web-based solution for these requirements:
  • User access—depending on needs, web applications may be made available to anyone with Internet access either internally behind a firewall, or externally to anyone on planet Earth.
  • Training & support—a critical part of most application deployment is the plan for training and support. Web-based applications can eliminate much or all of this need since they utilize existing client software which users have already installed and learned how to use.
  • Platform independence—a well-designed web application should work with most web browsers on whatever hardware and OS platform the user selects. Additional requirements analysis are not needed to specify the supported user environments. The choice is where it belongs: with the user!
  • Productivity—the development cycle for web applications is shorter than for traditional client-server applications due to improved development environments and the plethora of easy-to-use, high-powered tools.
  • Availability of tools—there are a large and rapidly increasing number of tools available at low or sometimes no cost for implementing sophisticated web applications.
  • Communications problems—the Achilles heel of many applications has traditionally been their connectivity to the user community. Web-based applications shift the burden of connectivity to the user and the Internet provider using standard hardware and software. These issues are resolved before the web application ever hits the street.
  • Installation and configuration—the other main problem area for traditional applications has been the initial setup and installation. Again, the web applications avoid this problem by utilizing existing software and facilities.
  • Minimal client development—since the client side of web applications uses off-the-shelf browsers, development is limited to specifying screen layouts and data presentation using a common interface. In many cases, users can design the screens using standard word-processing and web screen design tools.
  • The main point is that web-based applications allow MCI developers to focus their development on the specific products and services unique to MCI, without wasting development, test, and support energy on other aspects of software delivery.
  • 1.1. MCI Internet Gateway Security Standards
  • All external MCI Web sites must obey the Internet Gateway Security Standards enforced by MCI Network Computing Services (NCS, the owners of Infolink which is the network that all our computer systems use). Placing a web site on the Internet and then allowing our customers to use it to access sensitive MCI account information is a very serious proposition. To do this a certain server architecture must be obeyed to ensure systems security. We will all probably have to architect and assess the cost of our systems around the NCS standards set forth in the NCS document (http://estf.mci.com/estfpage/internet.html).
  • Below is a summary of the basic architecture that all MSV and other web sites that communicate with customers most obey. In a nutshell, no customer may directly connect from their PC to a web site or web page link running on a midrange, DBMS or warehouse server connected on the MCI Intranet. EVERY web site link including presentation pages will run on web servers in the DMZ, and at the same time these web servers will have NO connectivity to any midrange or host server on the MCI Intranet, EXCEPT for special proxies and/or relays that use sophisticated and some what cumbersome security measures to make SPECIFIC secure connections to application hosts on the intranet. This architecture model separates all server processing, data storage and legacy connectivity from any web system that directly interacts with a customer in order to insure MCI systems integrity and security.
    NCS ARCHITECTURE
    LEGACY host1 host2 . . .
    intranet connectivity
    MIDRANGE/ MSV-app-server1 MSV-app-server2 . . .
    DBMS/
    WAREHOUSE
    intranet/DMZ connectivity
    INTRANET MCI Network Security Server, Network Security
    FIREWALL Software (midrange to DMZ sessions originated
    by midrange)
    DMZ
    DMZ MSV-web-server-1 MSV-web-server2 . . .
    Security Proxy Server; Radius Server
    DMZ
    INTERNET firewall devices
    FIREWALL
    Internet
    INTERNET data center router w/DS3 Internet connectivity
    POP
    Internet
    INTERNET customer PC
  • Strong security is an essential characteristic of this application. In support of that the following measures are included:
  • Firewall—access to the web server is restricted to authorized customers and staff. Access behind the firewall is not available to external connections. The firewall is integrated with existing firewalls for other external MCI web applications.
  • Front-End Access Security—initial user authentication and user access management including user cancellation and password change processing.
  • Strong password security—customers will be assigned hard-to-guess passwords. These are long strings of random letters and numbers. Customers may request immediate suspension of a password if they believe it was compromised, but new passwords will only be provided to authorized mail or email addresses. In an emergency, passwords may be delivered by phone to a verifiable and known phone number.
  • Secure server communications—The application resides on a secure server supporting SSL (Secure Sockets Layer) for encrypted communications between the server and customer.
  • Transaction-level security services—library of routines for validating individual transactions against user privilege specifications, the privilege model
  • Digital Certificate validation—a 2-way set of services for validating new users against standard Digital Certificates and for guaranteeing our authenticity for users.
  • Automated log monitoring—utilities are included to monitor the log for hacking attempts. These are immediately reported to MCI security for follow-up using SNMP.
  • Customer Security Guidance—a document will be provided to the customer advising them of suggested customer security precautions.
  • MCI and Customer reporting—usage reports are delivered via e-mail to the customer and MCI account reps.
  • Even though we will take every reasonable security precaution, customers should be advised that it is impossible to guarantee 100% security and that MCI will not be liable for any security breaches.
  • 1.2.1.1. Uniform, Browser-based User Interface
  • The Next Generation platform is browser-based. The browser is a powerful new interface paradigm for information delivery. Use of this interface where appropriate will leverage customers familiarity with and preference for the browser, and position the software to be delivered over the public internet.
  • The set of applications currently lashed together in the Service View platform were separately developed, organized around the specific MCI product offerings which they supported. They use different delivery technologies (e.g., C+/zApp, FoxPro), and different user interface models. To the extent that Next Generation is a more integrated, easier-to-learn, single application, it is vital to unify the use of all the components. This does not imply a critique of any particular existing interface; consistency is the issue.
  • 1.2.1.2. Unified Content
  • 1.2.1.2.1. Consolidated Reporting
  • The Next Generation Reporting component of the new system unifies the reporting functions of TrafficView, Perspective in all its flavors, Portfolio, NIMS, and HyperScope. This implies consolidated reporting across product lines (as in Portfolio), across customer hierarchies (as in Portfolio and Perspective), and drill up/down do call detail (as in Perspective).
  • 1.2.1.2.2. Common Data
  • The goal of Unified Content joins to the goal of New platform/framework for CS products at the junction of a common database. This implies a common CDR format for all billed call data; if possible this could be cross referenced to the RTM format to unite TrafficView analysis with billed call reporting.
  • 1.2.2. Internet Availability
  • Delivery of the Starbucks platform over the internet, as opposed to the existing “extranet” dial-up, allows for authorized customers to manage and analyze their networkMCI service from any browser on any computer anywhere in the world. Realization of this goal represents a significant marketing advantage for the networkMCI services.
  • Moreover, MCI's customers are increasingly connected to the internet in the course of their daily business. Internet availability will allow the Next Generation offering to work within this context, instead of requiring a dedicated dialup connection.
  • 1.2.3. Platform Independence
  • The current Service View system is tied to the Microsoft Windows platform. The Next Generation offering should run on whatever platform the customer has in place or at hand. This “Write Once, Run Anywhere” strategy provides advantage in non-Windows environments and insulates the offering from technology and version changes.
  • 1.2.4. Timelier Data
  • 1.2.4.1. Overnight vs. EOM for Priced Call Info
  • Priced call detail is currently provided on a monthly basis via the Perspective CD-ROMs. It is the goal of the Next Generation platform to deliver priced call detail on a daily basis for the previous day's call activity.
  • 1.2.4.2. 98%/2 Minutes vs. 95/5 for Unpriced Call Info
  • Real-time unpriced call detail is currently provided with 95% of call attempts available within 5 minutes of the call. It is the goal of the next generation platform to deliver detail on 98% of call attempts within 2 minutes of the call.
  • 1.2.5. New Platform/Framework for NetworkMCI Customer Service Applications
  • 1.2.5.1. Web Browser/Java Paradigm for Client
  • There are several objectives by using this new paradigm:
      • Java is an improved language, having been engineered from scratch, rather than having to be backwards compatible to any existing system. Java incorporates threads and dynamic memory management directly into the language, rather than as add-on libraries.
      • The web browser paradigm allows a natural medium (including network connectivity, network protocols, and data interchange protocols) for sharing information and applications.
      • Client can be platform independent
      • Information exchange can be real time, rather than monthly.
  • 1.2.5.2. Thin client
  • Using Java technologies, a thin client can be developed that has the following characteristics:
      • Small memory & CPU footprint: the end user machine requirements can be minimal
      • Heavy duty business object processing and administration is centralized, whereas the interactive GUI is local.
  • 1.2.5.3. Quicker Time-to-Market for New Products
  • Using Java, applications can be developed faster, with fewer bugs. Since Java has integrated threading and dynamic memory management (i.e. garbage collection), applications can be developed significantly faster than in C/C++.
  • 1.2.5.4. Easier Enhancement/Maintenance for Existing Products
  • Since Java is an industrial strength object oriented language, all the usual benefits from object oriented techniques apply. These techniques include:
      • Reusability and extensibility through inheritance and polymorphism
      • Object oriented approaches, such as interfaces and base classes, allow parallel development, since interfaces are preagreed upon in a formal manner.
      • Scoping (data hiding) and parameter overloading improve the readability of the software, allowing new developers to quickly understand the system, and safely make local changes without creating bugs elsewhere.
  • 1.2.5.5. Automated Software Distribution/Installation
  • Java applets, or more specifically, the necessary sections of Java applets, are automatically downloaded over the World Wide Web. This eliminates the software distribution costs typically associated with current day applications. All MCI has to do to distribute a new version of the applet is to copy it to the web server. Clients will automatically download the newest version the next time the applet is started.
  • 1.2.5.6. Secure Environment for Customer Data
  • The Java applet security model assures users that their systems and information are safe from malicious programs and viruses. Java applets are loaded and executed under a security manager which assures that only approved actions can be taken by the applet. This assures users that their data is safe from tampering or disclosure. As customers become more aware of network security, they will demand this level of confidence in the safety of the Next Generation product.
  • 1.2.5.7. Improved Capacity
  • With current systems at their maximum capacity, MCI has to look for a system that both improves the current capacity, and is scaleable to accommodate all future growth.
  • 1.2.5.8. Internationalization
  • MCI, being a global company with customers all over the world, must ensure that the software written can be customized to local standards. For example, money figures in reports must be represented using the local currency symbol.
  • Java has built in support for Internationalization, which will support automatic formatting of dates, times, time zones, and currencies. Support for multi-language versions of the application also exist.
      • ‘on the fly’ language conversions
      • Monthly currency rate tables for ‘on the fly’ monetary conversions. Monetary conversions need to be supported independent of display language.
      • Support for text, dates/times, time zones, currency, addresses, phone numbers.
    DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a simplified distributed view of the platform components of the present invention, with generic service components shaded.
  • FIG. 2 is a high-level illustration of the present invention illustrating the relationship of client, web-server, dispatch, middle tier services and the messages interfaces therebetween.
  • FIG. 3 is a simplified high-level illustration of the Graphical User Interface class relationships as provided in the present invention.
  • FIG. 4 is a simplified and diagrammatic illustration of the application framework of the present invention.
  • FIG. 5 is a diagrammatic view of the physical, end-to-end architecture of the present invention, beginning with the customer web browser to the enterprise midrange servers and existing mainframe systems.
  • FIG. 6 is a diagrammatic illustration of a 3270 pass-thru architecture used to enable access to legacy systems.
  • FIG. 7 is a diagrammatic illustration of one embodiment of the security infrastructure that combines public key encryption with a digital signature to provide both message security and sender authentication.
  • FIG. 8 is a diagrammatic illustration of another embodiment of the security infrastructure that combines public key encryption with a digital signature to provide both message security and sender authentication.
  • FIG. 9 is a screen print of a representative home web page that may be used in the present invention.
  • FIG. 10 is a diagrammatic illustration of the overall CRISP architecture that provides the reporting infrastructure for customers.
  • FIG. 11 is a simplified high-level illustration of the customer access to the CRISP functionality from a customer's web based front end over modem-POTS, ISDN and FrameRelay links.
  • FIG. 12(a) is an illustration of the current MCI Call Manager product architecture.
  • FIG. 12(b) is an illustration of the new MCI Call Manager as particularly adapted for use with the present invention with web-based client/server functionality.
  • FIG. 13 is a diagrammatic illustration of customer to legacy application communications through the Starbucks dispatcher and application proxies.
  • FIG. 14 is an illustration of the message formats passed between the dispatcher and the proxies at the web-server-dispatcher communications interface.
  • FIG. 15(a) is an illustration of the messages created by the client Java software to be transmitted to the StarWeb server via single or multiple parameters to the POST operation.
  • FIG. 15(b) is an illustration of the Java client message as decoded by an RMI server into Java object method calls.
  • FIG. 16 is a screen capture of the InBox Java applet as launched from the home page of the present invention.
  • FIG. 17 is a diagrammatic illustration of the internal Intranet application to horizontal services architecture used in the present invention.
  • FIG. 18 is a web enabled application architecture model used in the present invention.
  • FIG. 19 is a diagrammatic view of the Common Object BackPlane architecture used in the present invention.
  • FIG. 20 is a simplified view of the Common Object Model-View-Controller event processing as enabled in the present invention.
  • FIG. 21 is a simplified view of the Common Object entitlements architecture illustrating user privileges and authorizations to view disparate application reports and to request application services.
  • FIG. 22 is a simplified view of the interaction between security classes in the Common Objects implementation of the present invention.
  • FIG. 23 is a simplified view of the present invention which details the interfaces between the internal and external systems of the present invention, the application GUIs, the application servers, the StarOE server, the universal in-box and integrated messaging systems.
  • FIG. 24 is a diagrammatic view of the StarOE (Order Entry) application architecture.
  • FIG. 25 is a diagrammatic illustration of the StarOE (Order Entry) application architecture illustrating the billing and fulfillment interface.
  • FIG. 26 is a screen capture of a New User Java applet that may be used to add or modify a user for the StarOE (Order Entry) application.
  • FIG. 27 is a set of Java classes for creating messages to be sent tot the StarOE server.
  • FIG. 28 is a high level context diagram of the systems used by StarWRS (web reporting system) of the present invention.
  • FIG. 29 illustrates the next level of logical processing used by the web reporting system illustrated in FIG. 28.
  • FIG. 30 is a graphical representation of the physical databases created for use with the web reporting system of the present invention.
  • FIG. 31 is a graphical illustration of the physical and user determined events that interact with the Java applets of the present invention to drive the web reporting system of the present invention.
  • FIG. 32 illustrates the message interface between the web reporting system of the present invention and the Report Manager Server.
  • FIGS. 33(a) and 33(b) illustrate typical web page screens having a Star WRS applet embedded therein.
  • FIG. 34 is a sample physical data model of a report template screen control object used by the report requester of the present invention.
  • FIG. 35 is a sample physical data model of a metatree hierarchical screen control object used by the report requester of the present invention.
  • FIG. 36 is a diagrammatic illustration of a horizontal scaling paradigm for the Perspective backend server to provide capacity for future growth.
  • FIG. 37 is a diagrammatic illustration of the high level process flow for the 800 network manager system, as adapted for use in the present invention.
  • FIG. 38 is a diagrammatic illustration of the high level process flow for the HyperScope viewing and network reporting system, as adapted for use in the present invention.
  • FIG. 39 is a diagrammatic illustration of the front end of the present invention, illustrating the client system interaction with the call manager data server.
  • FIG. 40 is a diagrammatic illustration of the software architecture for the call manager system illustrated in FIG. 39.
  • FIG. 41 is a diagrammatic illustration of the main GUI objects of the client interface code, resident with the client browser.
  • FIG. 42 is a diagrammatic illustration of the application proxy server of the present invention.
  • Figure US20050172018A1-20050804-P00004
    Figure US20050172018A1-20050804-P00005
    Figure US20050172018A1-20050804-P00006
    Figure US20050172018A1-20050804-P00007
    Figure US20050172018A1-20050804-P00008
    Figure US20050172018A1-20050804-P00009
    Figure US20050172018A1-20050804-P00010
    Figure US20050172018A1-20050804-P00011
    Figure US20050172018A1-20050804-P00012
    Figure US20050172018A1-20050804-P00013
    Figure US20050172018A1-20050804-P00014
    Figure US20050172018A1-20050804-P00015
    Figure US20050172018A1-20050804-P00016
    Figure US20050172018A1-20050804-P00017
    Figure US20050172018A1-20050804-P00018
    Figure US20050172018A1-20050804-P00019
    Figure US20050172018A1-20050804-P00020
    Figure US20050172018A1-20050804-P00021
    Figure US20050172018A1-20050804-P00022
    Figure US20050172018A1-20050804-P00023
    Figure US20050172018A1-20050804-P00024
    Figure US20050172018A1-20050804-P00025
    Figure US20050172018A1-20050804-P00026
    Figure US20050172018A1-20050804-P00027
    Figure US20050172018A1-20050804-P00028
    Figure US20050172018A1-20050804-P00029
    Figure US20050172018A1-20050804-P00030
    Figure US20050172018A1-20050804-P00031
    Figure US20050172018A1-20050804-P00032
    Figure US20050172018A1-20050804-P00033
    Figure US20050172018A1-20050804-P00034
    Figure US20050172018A1-20050804-P00035
    Figure US20050172018A1-20050804-P00036
    Figure US20050172018A1-20050804-P00037
    Figure US20050172018A1-20050804-P00038
    Figure US20050172018A1-20050804-P00039
    Figure US20050172018A1-20050804-P00040
    Figure US20050172018A1-20050804-P00041
    Figure US20050172018A1-20050804-P00042
    Figure US20050172018A1-20050804-P00043
    Figure US20050172018A1-20050804-P00044
    Figure US20050172018A1-20050804-P00045
    Figure US20050172018A1-20050804-P00046
    Figure US20050172018A1-20050804-P00047
    Figure US20050172018A1-20050804-P00048
    Figure US20050172018A1-20050804-P00049
    Figure US20050172018A1-20050804-P00050
    Figure US20050172018A1-20050804-P00051
    Figure US20050172018A1-20050804-P00052
    Figure US20050172018A1-20050804-P00053
    Figure US20050172018A1-20050804-P00054
    Figure US20050172018A1-20050804-P00055
    Figure US20050172018A1-20050804-P00056
    Figure US20050172018A1-20050804-P00057
    Figure US20050172018A1-20050804-P00058
    Figure US20050172018A1-20050804-P00059
    Figure US20050172018A1-20050804-P00060
    Figure US20050172018A1-20050804-P00061
    Figure US20050172018A1-20050804-P00062
    Figure US20050172018A1-20050804-P00063
    Figure US20050172018A1-20050804-P00064
    Figure US20050172018A1-20050804-P00065
    Figure US20050172018A1-20050804-P00066
    Figure US20050172018A1-20050804-P00067
    Figure US20050172018A1-20050804-P00068
    Figure US20050172018A1-20050804-P00069
    Figure US20050172018A1-20050804-P00070
    Figure US20050172018A1-20050804-P00071
    Figure US20050172018A1-20050804-P00072
    Figure US20050172018A1-20050804-P00073
    Figure US20050172018A1-20050804-P00074
    Figure US20050172018A1-20050804-P00075
    Figure US20050172018A1-20050804-P00076
    Figure US20050172018A1-20050804-P00077
    Figure US20050172018A1-20050804-P00078
    Figure US20050172018A1-20050804-P00079
    Figure US20050172018A1-20050804-P00080
    Figure US20050172018A1-20050804-P00081
    Figure US20050172018A1-20050804-P00082
    Figure US20050172018A1-20050804-P00083
    Figure US20050172018A1-20050804-P00084
    Figure US20050172018A1-20050804-P00085
    Figure US20050172018A1-20050804-P00086
    Figure US20050172018A1-20050804-P00087
    Figure US20050172018A1-20050804-P00088
    Figure US20050172018A1-20050804-P00089
    Figure US20050172018A1-20050804-P00090
    Figure US20050172018A1-20050804-P00091
    Figure US20050172018A1-20050804-P00092
    Figure US20050172018A1-20050804-P00093
    Figure US20050172018A1-20050804-P00094
    Figure US20050172018A1-20050804-P00095
    Figure US20050172018A1-20050804-P00096
    Figure US20050172018A1-20050804-P00097
    Figure US20050172018A1-20050804-P00098
    Figure US20050172018A1-20050804-P00099
    Figure US20050172018A1-20050804-P00100
    Figure US20050172018A1-20050804-P00101
    Figure US20050172018A1-20050804-P00102
    Figure US20050172018A1-20050804-P00103
    Figure US20050172018A1-20050804-P00104
    Figure US20050172018A1-20050804-P00105
    Figure US20050172018A1-20050804-P00106
    Figure US20050172018A1-20050804-P00107
    Figure US20050172018A1-20050804-P00108
    Figure US20050172018A1-20050804-P00109
    Figure US20050172018A1-20050804-P00110
    Figure US20050172018A1-20050804-P00111
    Figure US20050172018A1-20050804-P00112
    Figure US20050172018A1-20050804-P00113
    Figure US20050172018A1-20050804-P00114
    Figure US20050172018A1-20050804-P00115
    Figure US20050172018A1-20050804-P00116
    Figure US20050172018A1-20050804-P00117
    Figure US20050172018A1-20050804-P00118
    Figure US20050172018A1-20050804-P00119
    Figure US20050172018A1-20050804-P00120
    Figure US20050172018A1-20050804-P00121
    Figure US20050172018A1-20050804-P00122
    Figure US20050172018A1-20050804-P00123
    Figure US20050172018A1-20050804-P00124
    Figure US20050172018A1-20050804-P00125
    Figure US20050172018A1-20050804-P00126
    Figure US20050172018A1-20050804-P00127
    Figure US20050172018A1-20050804-P00128
    Figure US20050172018A1-20050804-P00129
    Figure US20050172018A1-20050804-P00130
    Figure US20050172018A1-20050804-P00131
    Figure US20050172018A1-20050804-P00132
    Figure US20050172018A1-20050804-P00133
    Figure US20050172018A1-20050804-P00134
    Figure US20050172018A1-20050804-P00135
    Figure US20050172018A1-20050804-P00136
    Figure US20050172018A1-20050804-P00137
    Figure US20050172018A1-20050804-P00138
    Figure US20050172018A1-20050804-P00139
    Figure US20050172018A1-20050804-P00140
    Figure US20050172018A1-20050804-P00141
    Figure US20050172018A1-20050804-P00142
    Figure US20050172018A1-20050804-P00143
    Figure US20050172018A1-20050804-P00144
    Figure US20050172018A1-20050804-P00145
    Figure US20050172018A1-20050804-P00146
    Figure US20050172018A1-20050804-P00147
    Figure US20050172018A1-20050804-P00148
    Figure US20050172018A1-20050804-P00149
    Figure US20050172018A1-20050804-P00150
    Figure US20050172018A1-20050804-P00151
    Figure US20050172018A1-20050804-P00152
    Figure US20050172018A1-20050804-P00153
    Figure US20050172018A1-20050804-P00154
    Figure US20050172018A1-20050804-P00155
    Figure US20050172018A1-20050804-P00156
    Figure US20050172018A1-20050804-P00157
    Figure US20050172018A1-20050804-P00158
    Figure US20050172018A1-20050804-P00159
    Figure US20050172018A1-20050804-P00160
    Figure US20050172018A1-20050804-P00161
    Figure US20050172018A1-20050804-P00162
    Figure US20050172018A1-20050804-P00163
    Figure US20050172018A1-20050804-P00164
    Figure US20050172018A1-20050804-P00165
    Figure US20050172018A1-20050804-P00166
    Figure US20050172018A1-20050804-P00167
    Figure US20050172018A1-20050804-P00168
    Figure US20050172018A1-20050804-P00169
    Figure US20050172018A1-20050804-P00170
    Figure US20050172018A1-20050804-P00171
    Figure US20050172018A1-20050804-P00172
    Figure US20050172018A1-20050804-P00173
    Figure US20050172018A1-20050804-P00174
    Figure US20050172018A1-20050804-P00175
    Figure US20050172018A1-20050804-P00176
    Figure US20050172018A1-20050804-P00177
    Figure US20050172018A1-20050804-P00178
    Figure US20050172018A1-20050804-P00179
    Figure US20050172018A1-20050804-P00180
    Figure US20050172018A1-20050804-P00181
    Figure US20050172018A1-20050804-P00182
    Figure US20050172018A1-20050804-P00183
    Figure US20050172018A1-20050804-P00184
    Figure US20050172018A1-20050804-P00185
    Figure US20050172018A1-20050804-P00186
    Figure US20050172018A1-20050804-P00187
    Figure US20050172018A1-20050804-P00188
    Figure US20050172018A1-20050804-P00189
    Figure US20050172018A1-20050804-P00190
    Figure US20050172018A1-20050804-P00191
    Figure US20050172018A1-20050804-P00192
    Figure US20050172018A1-20050804-P00193
    Figure US20050172018A1-20050804-P00194
    Figure US20050172018A1-20050804-P00195
    Figure US20050172018A1-20050804-P00196
    Figure US20050172018A1-20050804-P00197
    Figure US20050172018A1-20050804-P00198
    Figure US20050172018A1-20050804-P00199
    Figure US20050172018A1-20050804-P00200
    Figure US20050172018A1-20050804-P00201
    Figure US20050172018A1-20050804-P00202
    Figure US20050172018A1-20050804-P00203
    Figure US20050172018A1-20050804-P00204
    Figure US20050172018A1-20050804-P00205
    Figure US20050172018A1-20050804-P00206
    Figure US20050172018A1-20050804-P00207
    Figure US20050172018A1-20050804-P00208
    Figure US20050172018A1-20050804-P00209
    Figure US20050172018A1-20050804-P00210
    Figure US20050172018A1-20050804-P00211
    Figure US20050172018A1-20050804-P00212
    Figure US20050172018A1-20050804-P00213
    Figure US20050172018A1-20050804-P00214
    Figure US20050172018A1-20050804-P00215
    Figure US20050172018A1-20050804-P00216
    Figure US20050172018A1-20050804-P00217
    Figure US20050172018A1-20050804-P00218
    Figure US20050172018A1-20050804-P00219
    Figure US20050172018A1-20050804-P00220
    Figure US20050172018A1-20050804-P00221
    Figure US20050172018A1-20050804-P00222
    Figure US20050172018A1-20050804-P00223
    Figure US20050172018A1-20050804-P00224
    Figure US20050172018A1-20050804-P00225
    Figure US20050172018A1-20050804-P00226
    Figure US20050172018A1-20050804-P00227
    Figure US20050172018A1-20050804-P00228
    Figure US20050172018A1-20050804-P00229
    Figure US20050172018A1-20050804-P00230
    Figure US20050172018A1-20050804-P00231
    Figure US20050172018A1-20050804-P00232
    Figure US20050172018A1-20050804-P00233
    Figure US20050172018A1-20050804-P00234
    Figure US20050172018A1-20050804-P00235
    Figure US20050172018A1-20050804-P00236
    Figure US20050172018A1-20050804-P00237
    Figure US20050172018A1-20050804-P00238
    Figure US20050172018A1-20050804-P00239
    Figure US20050172018A1-20050804-P00240
    Figure US20050172018A1-20050804-P00241
    Figure US20050172018A1-20050804-P00242
    Figure US20050172018A1-20050804-P00243
    Figure US20050172018A1-20050804-P00244
    Figure US20050172018A1-20050804-P00245
    Figure US20050172018A1-20050804-P00246
    Figure US20050172018A1-20050804-P00247
    Figure US20050172018A1-20050804-P00248
    Figure US20050172018A1-20050804-P00249
    Figure US20050172018A1-20050804-P00250
    Figure US20050172018A1-20050804-P00251
    Figure US20050172018A1-20050804-P00252
    Figure US20050172018A1-20050804-P00253
    Figure US20050172018A1-20050804-P00254
    Figure US20050172018A1-20050804-P00255
    Figure US20050172018A1-20050804-P00256
    Figure US20050172018A1-20050804-P00257
    Figure US20050172018A1-20050804-P00258
    Figure US20050172018A1-20050804-P00259
    Figure US20050172018A1-20050804-P00260
    Figure US20050172018A1-20050804-P00261
    Figure US20050172018A1-20050804-P00262
    Figure US20050172018A1-20050804-P00263
    Figure US20050172018A1-20050804-P00264
    Figure US20050172018A1-20050804-P00265
    Figure US20050172018A1-20050804-P00266
    Figure US20050172018A1-20050804-P00267
    Figure US20050172018A1-20050804-P00268
    Figure US20050172018A1-20050804-P00269
    Figure US20050172018A1-20050804-P00270
    Figure US20050172018A1-20050804-P00271
    Figure US20050172018A1-20050804-P00272
    Figure US20050172018A1-20050804-P00273
    Figure US20050172018A1-20050804-P00274
    Figure US20050172018A1-20050804-P00275
    Figure US20050172018A1-20050804-P00276
    Figure US20050172018A1-20050804-P00277
    Figure US20050172018A1-20050804-P00278
    Figure US20050172018A1-20050804-P00279
    Figure US20050172018A1-20050804-P00280
    Figure US20050172018A1-20050804-P00281
    Figure US20050172018A1-20050804-P00282
    Figure US20050172018A1-20050804-P00283
    Figure US20050172018A1-20050804-P00284
    Figure US20050172018A1-20050804-P00285
    Figure US20050172018A1-20050804-P00286
    Figure US20050172018A1-20050804-P00287
    Figure US20050172018A1-20050804-P00288
    Figure US20050172018A1-20050804-P00289
    Figure US20050172018A1-20050804-P00290
    Figure US20050172018A1-20050804-P00291
    Figure US20050172018A1-20050804-P00292
    Figure US20050172018A1-20050804-P00293
    Figure US20050172018A1-20050804-P00294
    Figure US20050172018A1-20050804-P00295
    Figure US20050172018A1-20050804-P00296
    Figure US20050172018A1-20050804-P00297
    Figure US20050172018A1-20050804-P00298
    Figure US20050172018A1-20050804-P00299
    Figure US20050172018A1-20050804-P00300
    Figure US20050172018A1-20050804-P00301
    Figure US20050172018A1-20050804-P00302
    Figure US20050172018A1-20050804-P00303
    Figure US20050172018A1-20050804-P00304
    Figure US20050172018A1-20050804-P00305
    Figure US20050172018A1-20050804-P00306
    Figure US20050172018A1-20050804-P00307
    Figure US20050172018A1-20050804-P00308
    Figure US20050172018A1-20050804-P00309
    Figure US20050172018A1-20050804-P00310
    Figure US20050172018A1-20050804-P00311
    Figure US20050172018A1-20050804-P00312
    Figure US20050172018A1-20050804-P00313
    Figure US20050172018A1-20050804-P00314
    Figure US20050172018A1-20050804-P00315
    Figure US20050172018A1-20050804-P00316
    Figure US20050172018A1-20050804-P00317
    Figure US20050172018A1-20050804-P00318
    Figure US20050172018A1-20050804-P00319
    Figure US20050172018A1-20050804-P00320
    Figure US20050172018A1-20050804-P00321
    Figure US20050172018A1-20050804-P00322
    Figure US20050172018A1-20050804-P00323
    Figure US20050172018A1-20050804-P00324
    Figure US20050172018A1-20050804-P00325
    Figure US20050172018A1-20050804-P00326
    Figure US20050172018A1-20050804-P00327
    Figure US20050172018A1-20050804-P00328
    Figure US20050172018A1-20050804-P00329
    Figure US20050172018A1-20050804-P00330
    Figure US20050172018A1-20050804-P00331
    Figure US20050172018A1-20050804-P00332
    Figure US20050172018A1-20050804-P00333
    Figure US20050172018A1-20050804-P00334
    Figure US20050172018A1-20050804-P00335
    Figure US20050172018A1-20050804-P00336
    Figure US20050172018A1-20050804-P00337
    Figure US20050172018A1-20050804-P00338
    Figure US20050172018A1-20050804-P00339
    Figure US20050172018A1-20050804-P00340
    Figure US20050172018A1-20050804-P00341
    Figure US20050172018A1-20050804-P00342
    Figure US20050172018A1-20050804-P00343
    Figure US20050172018A1-20050804-P00344
    Figure US20050172018A1-20050804-P00345
    Figure US20050172018A1-20050804-P00346
    Figure US20050172018A1-20050804-P00347
    Figure US20050172018A1-20050804-P00348
    Figure US20050172018A1-20050804-P00349
    Figure US20050172018A1-20050804-P00350
    Figure US20050172018A1-20050804-P00351
    Figure US20050172018A1-20050804-P00352
    Figure US20050172018A1-20050804-P00353
    Figure US20050172018A1-20050804-P00354
    Figure US20050172018A1-20050804-P00355
    Figure US20050172018A1-20050804-P00356
    Figure US20050172018A1-20050804-P00357
    Figure US20050172018A1-20050804-P00358
    Figure US20050172018A1-20050804-P00359
    Figure US20050172018A1-20050804-P00360
    Figure US20050172018A1-20050804-P00361
    Figure US20050172018A1-20050804-P00362
    Figure US20050172018A1-20050804-P00363
    Figure US20050172018A1-20050804-P00364
    Figure US20050172018A1-20050804-P00365
    Figure US20050172018A1-20050804-P00366
    Figure US20050172018A1-20050804-P00367
    Figure US20050172018A1-20050804-P00368
    Figure US20050172018A1-20050804-P00369
    Figure US20050172018A1-20050804-P00370
    Figure US20050172018A1-20050804-P00371
    Figure US20050172018A1-20050804-P00372
    Figure US20050172018A1-20050804-P00373
    Figure US20050172018A1-20050804-P00374
    Figure US20050172018A1-20050804-P00375
    Figure US20050172018A1-20050804-P00376
    Figure US20050172018A1-20050804-P00377
    Figure US20050172018A1-20050804-P00378
    Figure US20050172018A1-20050804-P00379
    Figure US20050172018A1-20050804-P00380
    Figure US20050172018A1-20050804-P00381
    Figure US20050172018A1-20050804-P00382
    Figure US20050172018A1-20050804-P00383
    Figure US20050172018A1-20050804-P00384
    Figure US20050172018A1-20050804-P00385
    Figure US20050172018A1-20050804-P00386
    Figure US20050172018A1-20050804-P00387
    Figure US20050172018A1-20050804-P00388
    Figure US20050172018A1-20050804-P00389
    Figure US20050172018A1-20050804-P00390
    Figure US20050172018A1-20050804-P00391
    Figure US20050172018A1-20050804-P00392
    Figure US20050172018A1-20050804-P00393
    Figure US20050172018A1-20050804-P00394
    Figure US20050172018A1-20050804-P00395
    Figure US20050172018A1-20050804-P00396
    Figure US20050172018A1-20050804-P00397
    Figure US20050172018A1-20050804-P00398
    Figure US20050172018A1-20050804-P00399
    Figure US20050172018A1-20050804-P00400
    Figure US20050172018A1-20050804-P00401
    Figure US20050172018A1-20050804-P00402
    Figure US20050172018A1-20050804-P00403
    Figure US20050172018A1-20050804-P00404
    Figure US20050172018A1-20050804-P00405
    Figure US20050172018A1-20050804-P00406
    Figure US20050172018A1-20050804-P00407
    Figure US20050172018A1-20050804-P00408
    Figure US20050172018A1-20050804-P00409
    Figure US20050172018A1-20050804-P00410
    Figure US20050172018A1-20050804-P00411
    Figure US20050172018A1-20050804-P00412
    Figure US20050172018A1-20050804-P00413
    Figure US20050172018A1-20050804-P00414
    Figure US20050172018A1-20050804-P00415
    Figure US20050172018A1-20050804-P00416
    Figure US20050172018A1-20050804-P00417
    Figure US20050172018A1-20050804-P00418
    Figure US20050172018A1-20050804-P00419
    Figure US20050172018A1-20050804-P00420
    Figure US20050172018A1-20050804-P00421
    Figure US20050172018A1-20050804-P00422
    Figure US20050172018A1-20050804-P00423
    Figure US20050172018A1-20050804-P00424
    Figure US20050172018A1-20050804-P00425
    Figure US20050172018A1-20050804-P00426
    Figure US20050172018A1-20050804-P00427
    Figure US20050172018A1-20050804-P00428
    Figure US20050172018A1-20050804-P00429
    Figure US20050172018A1-20050804-P00430
    Figure US20050172018A1-20050804-P00431
    Figure US20050172018A1-20050804-P00432
    Figure US20050172018A1-20050804-P00433
    Figure US20050172018A1-20050804-P00434
    Figure US20050172018A1-20050804-P00435
    Figure US20050172018A1-20050804-P00436
    Figure US20050172018A1-20050804-P00437
    Figure US20050172018A1-20050804-P00438
    Figure US20050172018A1-20050804-P00439
    Figure US20050172018A1-20050804-P00440
    Figure US20050172018A1-20050804-P00441
    Figure US20050172018A1-20050804-P00442
    Figure US20050172018A1-20050804-P00443
    Figure US20050172018A1-20050804-P00444
    Figure US20050172018A1-20050804-P00445
    Figure US20050172018A1-20050804-P00446
    Figure US20050172018A1-20050804-P00447
    Figure US20050172018A1-20050804-P00448
    Figure US20050172018A1-20050804-P00449
    Figure US20050172018A1-20050804-P00450
    Figure US20050172018A1-20050804-P00451
    Figure US20050172018A1-20050804-P00452
    Figure US20050172018A1-20050804-P00453
    Figure US20050172018A1-20050804-P00454
    Figure US20050172018A1-20050804-P00455
    Figure US20050172018A1-20050804-P00456
    Figure US20050172018A1-20050804-P00457
    Figure US20050172018A1-20050804-P00458
    Figure US20050172018A1-20050804-P00459
    Figure US20050172018A1-20050804-P00460
    Figure US20050172018A1-20050804-P00461
    Figure US20050172018A1-20050804-P00462
    Figure US20050172018A1-20050804-P00463
    Figure US20050172018A1-20050804-P00464
    Figure US20050172018A1-20050804-P00465
    Figure US20050172018A1-20050804-P00466
    Figure US20050172018A1-20050804-P00467
    Figure US20050172018A1-20050804-P00468
    Figure US20050172018A1-20050804-P00469
    Figure US20050172018A1-20050804-P00470
    Figure US20050172018A1-20050804-P00471
    Figure US20050172018A1-20050804-P00472
    Figure US20050172018A1-20050804-P00473
    Figure US20050172018A1-20050804-P00474
    Figure US20050172018A1-20050804-P00475
    Figure US20050172018A1-20050804-P00476
    Figure US20050172018A1-20050804-P00477
    Figure US20050172018A1-20050804-P00478
    Figure US20050172018A1-20050804-P00479
    Figure US20050172018A1-20050804-P00480
    Figure US20050172018A1-20050804-P00481
    Figure US20050172018A1-20050804-P00482
    Figure US20050172018A1-20050804-P00483
    Figure US20050172018A1-20050804-P00484
    Figure US20050172018A1-20050804-P00485
    Figure US20050172018A1-20050804-P00486
    Figure US20050172018A1-20050804-P00487
    Figure US20050172018A1-20050804-P00488
    Figure US20050172018A1-20050804-P00489
    Figure US20050172018A1-20050804-P00490
    Figure US20050172018A1-20050804-P00491
    Figure US20050172018A1-20050804-P00492
    Figure US20050172018A1-20050804-P00493
    Figure US20050172018A1-20050804-P00494
    Figure US20050172018A1-20050804-P00495
    Figure US20050172018A1-20050804-P00496
    Figure US20050172018A1-20050804-P00497
    Figure US20050172018A1-20050804-P00498
    Figure US20050172018A1-20050804-P00499
    Figure US20050172018A1-20050804-P00500
    Figure US20050172018A1-20050804-P00501
    Figure US20050172018A1-20050804-P00502
    Figure US20050172018A1-20050804-P00503
    Figure US20050172018A1-20050804-P00504
    Figure US20050172018A1-20050804-P00505
    Figure US20050172018A1-20050804-P00506
    Figure US20050172018A1-20050804-P00507
    Figure US20050172018A1-20050804-P00508
    Figure US20050172018A1-20050804-P00509
    Figure US20050172018A1-20050804-P00510
    Figure US20050172018A1-20050804-P00511
    Figure US20050172018A1-20050804-P00512
    Figure US20050172018A1-20050804-P00513
    Figure US20050172018A1-20050804-P00514
    Figure US20050172018A1-20050804-P00515
    Figure US20050172018A1-20050804-P00516
    Figure US20050172018A1-20050804-P00517
    Figure US20050172018A1-20050804-P00518
    Figure US20050172018A1-20050804-P00519
    Figure US20050172018A1-20050804-P00520
    Figure US20050172018A1-20050804-P00521
    Figure US20050172018A1-20050804-P00522
    Figure US20050172018A1-20050804-P00523
    Figure US20050172018A1-20050804-P00524
    Figure US20050172018A1-20050804-P00525
    Figure US20050172018A1-20050804-P00526
    Figure US20050172018A1-20050804-P00527
    Figure US20050172018A1-20050804-P00528
    Figure US20050172018A1-20050804-P00529
    Figure US20050172018A1-20050804-P00530
    Figure US20050172018A1-20050804-P00531
    Figure US20050172018A1-20050804-P00532
    Figure US20050172018A1-20050804-P00533
    Figure US20050172018A1-20050804-P00534
    Figure US20050172018A1-20050804-P00535
    Figure US20050172018A1-20050804-P00536
    Figure US20050172018A1-20050804-P00537
    Figure US20050172018A1-20050804-P00538
    Figure US20050172018A1-20050804-P00539
    Figure US20050172018A1-20050804-P00540
    Figure US20050172018A1-20050804-P00541
    Figure US20050172018A1-20050804-P00542
    Figure US20050172018A1-20050804-P00543
    Figure US20050172018A1-20050804-P00544
    Figure US20050172018A1-20050804-P00545
    Figure US20050172018A1-20050804-P00546
    Figure US20050172018A1-20050804-P00547
    Figure US20050172018A1-20050804-P00548
    Figure US20050172018A1-20050804-P00549
    Figure US20050172018A1-20050804-P00550
    Figure US20050172018A1-20050804-P00551
    Figure US20050172018A1-20050804-P00552
    Figure US20050172018A1-20050804-P00553
    Figure US20050172018A1-20050804-P00554
    Figure US20050172018A1-20050804-P00555
    Figure US20050172018A1-20050804-P00556
    Figure US20050172018A1-20050804-P00557
    Figure US20050172018A1-20050804-P00558
    Figure US20050172018A1-20050804-P00559
    Figure US20050172018A1-20050804-P00560
    Figure US20050172018A1-20050804-P00561
    Figure US20050172018A1-20050804-P00562
    Figure US20050172018A1-20050804-P00563
    Figure US20050172018A1-20050804-P00564
    Figure US20050172018A1-20050804-P00565
    Figure US20050172018A1-20050804-P00566
    Figure US20050172018A1-20050804-P00567
    Figure US20050172018A1-20050804-P00568
    Figure US20050172018A1-20050804-P00569
    Figure US20050172018A1-20050804-P00570
    Figure US20050172018A1-20050804-P00571
    Figure US20050172018A1-20050804-P00572
    Figure US20050172018A1-20050804-P00573
    Figure US20050172018A1-20050804-P00574
    Figure US20050172018A1-20050804-P00575
    Figure US20050172018A1-20050804-P00576
    Figure US20050172018A1-20050804-P00577
    Figure US20050172018A1-20050804-P00578
    Figure US20050172018A1-20050804-P00579
    Figure US20050172018A1-20050804-P00580
    Figure US20050172018A1-20050804-P00581
    Figure US20050172018A1-20050804-P00582
    Figure US20050172018A1-20050804-P00583
    Figure US20050172018A1-20050804-P00584
    Figure US20050172018A1-20050804-P00585
    Figure US20050172018A1-20050804-P00586
    Figure US20050172018A1-20050804-P00587
    Figure US20050172018A1-20050804-P00588
    Figure US20050172018A1-20050804-P00589
    Figure US20050172018A1-20050804-P00590
    Figure US20050172018A1-20050804-P00591
    Figure US20050172018A1-20050804-P00592
    Figure US20050172018A1-20050804-P00593
    Figure US20050172018A1-20050804-P00594
    Figure US20050172018A1-20050804-P00595
    Figure US20050172018A1-20050804-P00596
    Figure US20050172018A1-20050804-P00597
    Figure US20050172018A1-20050804-P00598
    Figure US20050172018A1-20050804-P00599
    Figure US20050172018A1-20050804-P00600
    Figure US20050172018A1-20050804-P00601
    Figure US20050172018A1-20050804-P00602
    Figure US20050172018A1-20050804-P00603
    Figure US20050172018A1-20050804-P00604
    Figure US20050172018A1-20050804-P00605
    Figure US20050172018A1-20050804-P00606
    Figure US20050172018A1-20050804-P00607
    Figure US20050172018A1-20050804-P00608
    Figure US20050172018A1-20050804-P00609
    Figure US20050172018A1-20050804-P00610
    Figure US20050172018A1-20050804-P00611
    Figure US20050172018A1-20050804-P00612
    Figure US20050172018A1-20050804-P00613
    Figure US20050172018A1-20050804-P00614
    Figure US20050172018A1-20050804-P00615
    Figure US20050172018A1-20050804-P00616
    Figure US20050172018A1-20050804-P00617
    Figure US20050172018A1-20050804-P00618
    Figure US20050172018A1-20050804-P00619
    Figure US20050172018A1-20050804-P00620
    Figure US20050172018A1-20050804-P00621
    Figure US20050172018A1-20050804-P00622
    Figure US20050172018A1-20050804-P00623
    Figure US20050172018A1-20050804-P00624
    Figure US20050172018A1-20050804-P00625
    Figure US20050172018A1-20050804-P00626
    Figure US20050172018A1-20050804-P00627
    Figure US20050172018A1-20050804-P00628
    Figure US20050172018A1-20050804-P00629
    Figure US20050172018A1-20050804-P00630
    Figure US20050172018A1-20050804-P00631
    Figure US20050172018A1-20050804-P00632
    Figure US20050172018A1-20050804-P00633
    Figure US20050172018A1-20050804-P00634
    Figure US20050172018A1-20050804-P00635
    Figure US20050172018A1-20050804-P00636
    Figure US20050172018A1-20050804-P00637
    Figure US20050172018A1-20050804-P00638
    Figure US20050172018A1-20050804-P00639
    Figure US20050172018A1-20050804-P00640
    Figure US20050172018A1-20050804-P00641
    Figure US20050172018A1-20050804-P00642
    Figure US20050172018A1-20050804-P00643
    Figure US20050172018A1-20050804-P00644
    Figure US20050172018A1-20050804-P00645
    Figure US20050172018A1-20050804-P00646
    Figure US20050172018A1-20050804-P00647
    Figure US20050172018A1-20050804-P00648
    Figure US20050172018A1-20050804-P00649
    Figure US20050172018A1-20050804-P00650
    Figure US20050172018A1-20050804-P00651
    Figure US20050172018A1-20050804-P00652
    Figure US20050172018A1-20050804-P00653
    Figure US20050172018A1-20050804-P00654
    Figure US20050172018A1-20050804-P00655
    Figure US20050172018A1-20050804-P00656
    Figure US20050172018A1-20050804-P00657
    Figure US20050172018A1-20050804-P00658
    Figure US20050172018A1-20050804-P00659
    Figure US20050172018A1-20050804-P00660
    Figure US20050172018A1-20050804-P00661
    Figure US20050172018A1-20050804-P00662
    Figure US20050172018A1-20050804-P00663
    Figure US20050172018A1-20050804-P00664
    Figure US20050172018A1-20050804-P00665
    Figure US20050172018A1-20050804-P00666
    Figure US20050172018A1-20050804-P00667
    Figure US20050172018A1-20050804-P00668
    Figure US20050172018A1-20050804-P00669
    Figure US20050172018A1-20050804-P00670
    Figure US20050172018A1-20050804-P00671
    Figure US20050172018A1-20050804-P00672
    Figure US20050172018A1-20050804-P00673
    Figure US20050172018A1-20050804-P00674
    Figure US20050172018A1-20050804-P00675
    Figure US20050172018A1-20050804-P00676
    Figure US20050172018A1-20050804-P00677
    Figure US20050172018A1-20050804-P00678
    Figure US20050172018A1-20050804-P00679
    Figure US20050172018A1-20050804-P00680
    Figure US20050172018A1-20050804-P00681
    Figure US20050172018A1-20050804-P00682
    Figure US20050172018A1-20050804-P00683
    Figure US20050172018A1-20050804-P00684
    Figure US20050172018A1-20050804-P00685
    Figure US20050172018A1-20050804-P00686
    Figure US20050172018A1-20050804-P00687
    Figure US20050172018A1-20050804-P00688
    Figure US20050172018A1-20050804-P00689
    Figure US20050172018A1-20050804-P00690
    Figure US20050172018A1-20050804-P00691
    Figure US20050172018A1-20050804-P00692
    Figure US20050172018A1-20050804-P00693
    Figure US20050172018A1-20050804-P00694
    Figure US20050172018A1-20050804-P00695
    Figure US20050172018A1-20050804-P00696
    Figure US20050172018A1-20050804-P00697
    Figure US20050172018A1-20050804-P00698
    Figure US20050172018A1-20050804-P00699
    Figure US20050172018A1-20050804-P00700
    Figure US20050172018A1-20050804-P00701
    Figure US20050172018A1-20050804-P00702
    Figure US20050172018A1-20050804-P00703
    Figure US20050172018A1-20050804-P00704
    Figure US20050172018A1-20050804-P00705
    Figure US20050172018A1-20050804-P00706
    Figure US20050172018A1-20050804-P00707
    Figure US20050172018A1-20050804-P00708
    Figure US20050172018A1-20050804-P00709
    Figure US20050172018A1-20050804-P00710
    Figure US20050172018A1-20050804-P00711
    Figure US20050172018A1-20050804-P00712
    Figure US20050172018A1-20050804-P00713
    Figure US20050172018A1-20050804-P00714
    Figure US20050172018A1-20050804-P00715
    Figure US20050172018A1-20050804-P00716
    Figure US20050172018A1-20050804-P00717
    Figure US20050172018A1-20050804-P00718
    Figure US20050172018A1-20050804-P00719
    Figure US20050172018A1-20050804-P00720
    Figure US20050172018A1-20050804-P00721
    Figure US20050172018A1-20050804-P00722
    Figure US20050172018A1-20050804-P00723
    Figure US20050172018A1-20050804-P00724
    Figure US20050172018A1-20050804-P00725
    Figure US20050172018A1-20050804-P00726
    Figure US20050172018A1-20050804-P00727
    Figure US20050172018A1-20050804-P00728
    Figure US20050172018A1-20050804-P00729
    Figure US20050172018A1-20050804-P00730
    Figure US20050172018A1-20050804-P00731
    Figure US20050172018A1-20050804-P00732
    Figure US20050172018A1-20050804-P00733
    Figure US20050172018A1-20050804-P00734
    Figure US20050172018A1-20050804-P00735
    Figure US20050172018A1-20050804-P00736
    Figure US20050172018A1-20050804-P00737
    Figure US20050172018A1-20050804-P00738
    Figure US20050172018A1-20050804-P00739
    Figure US20050172018A1-20050804-P00740
    Figure US20050172018A1-20050804-P00741
    Figure US20050172018A1-20050804-P00742
    Figure US20050172018A1-20050804-P00743
    Figure US20050172018A1-20050804-P00744
    Figure US20050172018A1-20050804-P00745

Claims (22)

1. An integrated customer interface system for communications network management, said system comprising:
at least one web server configured to:
manage client sessions over the internet, said session management including at least one of client validation or session encryption and decryption,
provide a client with information regarding the client's 800 number service,
receive commands associated with managing the client's 800 number service from the client via the internet, and
provide the client with network communications and traffic information associated with the client's network communications services; and
at least one dispatch server for communicating with said web server and a plurality of system resources, said dispatch server providing verification of system access.
2. An integrated customer interface system as claimed in claim 1 wherein each of said plurality of system resources includes a proxy server for translating applet instructions to system resource instructions and data, and translating system resource data and communications to applet data for transmission to said web server and a client web browser.
3. (canceled)
4. An integrated customer interface system as claimed in claim 2 wherein said system resources reside on separate resource platforms, and said system provides interoperability to said client web browser for separate resource platforms.
5. An integrated customer interface system as claimed in claim 4 wherein said web server is configured to allow the client to view network communications and traffic of said client on one resource platform and manage client network communications on another resource platform.
6. An integrated customer interface system as claimed in claim 5 wherein separate java applets embedded in a home page of said system provide simultaneous session management for each of said resource platforms.
7. An integrated customer interface system as claimed in claim 1 wherein said dispatch server includes at least one dispatch server and a plurality of proxy servers, with a separate proxy server for each disparate system resource platform utilized by said system.
8. An integrated customer interface system as claimed in claim 7 wherein said system includes a report requester proxy server for translating client web page requests for report information and data into requests for reports and data from a plurality of resource platforms.
9. An integrated customer interface system as claimed in claim 1 wherein each client request received from a web browser is encrypted with a public key and each client request includes a client signature encrypted with the client's private key for client authentication.
10. (canceled)
11. The integrated customer interface system of claim 1, wherein the web server is further configured to:
provide the client an interface for specifying a routing plan.
12. The integrated customer interface system of claim 11, wherein the web server is further configured to:
receive a routing plan number from the client, and
verify that the client has privileges for the received routing plan number.
13. The integrated customer interface system of claim 1, wherein the web server is further configured to:
provide the client an interface for selecting a routing plan,
receive a selected routing plan from the client, and
provide the client at least one of a hierarchical tree representation or a spreadsheet view of the selected routing plan.
14. A method for managing a customer's toll free service, comprising:
providing the customer with a user interface for managing the customer's toll free service;
receiving commands associated with managing the customer's toll free service from the customer via the user interface; and
implement changes to the customer's toll free service based on the received commands.
15. The method of claim 14, wherein the receiving commands comprises receiving a routing plan number.
16. The method of claim 15, wherein the receiving commands further comprises receiving a command for at least one of adding or deleting a termination to a currently implemented routing plan.
17. The method of claim 15, wherein the receiving commands further comprises receiving a command for changing a routing plan to which a working number is routed.
18. The method of claim 14, further comprising:
providing the customer with order information associated with the customer's toll free service.
19. The method of claim 18, further comprising:
receiving a request from the customer to delete an order.
20. The method of claim 18, further comprising:
receiving a query from a customer associated with the order information; and
providing at least one order for display to the customer based on the query.
21. The method of claim 14, further comprising:
receiving a selected routing plan from the customer; and
providing a hierarchical tree representation of the selected routing plan to the customer.
22. The method of claim 14, further comprising:
receiving a selected routing plan from the customer; and
providing a spreadsheet view of the selected routing plan to the customer.
US10/835,326 1997-09-26 2004-04-30 Customer interface system for managing communications services including toll free services Expired - Fee Related US7447736B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/835,326 US7447736B2 (en) 1997-09-26 2004-04-30 Customer interface system for managing communications services including toll free services

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US6065597P 1997-09-26 1997-09-26
US09/160,725 US6763376B1 (en) 1997-09-26 1998-09-25 Integrated customer interface system for communications network management
US10/835,326 US7447736B2 (en) 1997-09-26 2004-04-30 Customer interface system for managing communications services including toll free services

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US09/160,725 Continuation US6763376B1 (en) 1997-09-26 1998-09-25 Integrated customer interface system for communications network management

Publications (2)

Publication Number Publication Date
US20050172018A1 true US20050172018A1 (en) 2005-08-04
US7447736B2 US7447736B2 (en) 2008-11-04

Family

ID=32684430

Family Applications (2)

Application Number Title Priority Date Filing Date
US09/160,725 Expired - Fee Related US6763376B1 (en) 1997-09-26 1998-09-25 Integrated customer interface system for communications network management
US10/835,326 Expired - Fee Related US7447736B2 (en) 1997-09-26 2004-04-30 Customer interface system for managing communications services including toll free services

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US09/160,725 Expired - Fee Related US6763376B1 (en) 1997-09-26 1998-09-25 Integrated customer interface system for communications network management

Country Status (1)

Country Link
US (2) US6763376B1 (en)

Cited By (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020091764A1 (en) * 2000-09-25 2002-07-11 Yale Burton Allen System and method for processing and managing self-directed, customized video streaming data
US20030018714A1 (en) * 2001-07-20 2003-01-23 Dmytro Mikhailov Proactive browser system
US20030193521A1 (en) * 2002-04-10 2003-10-16 International Business Machines Corporation Rapid GUI refacing of a legacy application
US20040010542A1 (en) * 2002-07-11 2004-01-15 Intel Corporation Managed service apparatus, systems, and methods
US20040024866A1 (en) * 2002-07-31 2004-02-05 Murali Sundar Service creator apparatus, systems, and methods
US20040068428A1 (en) * 2002-10-02 2004-04-08 International Business Machines Corporation Management of business process application execution
US20040070622A1 (en) * 2002-10-15 2004-04-15 International Business Machines Corporation Facilitated source to target object editing functions
US20050256902A1 (en) * 2004-05-11 2005-11-17 Matthias Jensen Componentized content delivery
US20060036958A1 (en) * 2004-08-12 2006-02-16 International Business Machines Corporation Method, system and article of manufacture to capture a workflow
US20060069781A1 (en) * 2004-09-08 2006-03-30 Erh-Jen Hou Global internet voice communication system method
US20060069771A1 (en) * 2004-09-29 2006-03-30 International Business Machines Corporation Method, system and program product for decentralized monitoring of server states within a cell of nodes
US20060155569A1 (en) * 2005-01-07 2006-07-13 Lord Judd A Style trend tracking tool
US20060165061A1 (en) * 2005-01-26 2006-07-27 Erh-Jen Hou Global internet voice communication system
US20060271836A1 (en) * 2005-05-31 2006-11-30 Randon Morford Method, graphical interface and computer-readable medium for generating a preview of a reformatted preview segment
US20060271848A1 (en) * 2005-05-31 2006-11-30 Randon Morford Method, graphical interface and computer-readable medium for reformatting data
US20060288294A1 (en) * 2005-05-31 2006-12-21 Bos Carlo J Method, graphical interface and computer-readable medium for forming a batch job
US20070083551A1 (en) * 2005-10-06 2007-04-12 Microsoft Corporation Extensible mechanism for object composition
US20070094376A1 (en) * 2004-05-03 2007-04-26 Ahn Sung J Method and apparatus for managing bookmark information for content stored in a networked media server
US20070130262A1 (en) * 2005-12-06 2007-06-07 Microsoft Corporation Document object model api for mime
US20070162468A1 (en) * 2005-12-30 2007-07-12 Ralf Dentzer Localization layer and method for delivery of change packages
US20070179776A1 (en) * 2006-01-27 2007-08-02 Xerox Corporation Linguistic user interface
US20070192441A1 (en) * 2006-02-11 2007-08-16 Samsung Electronics Co., Ltd. Network system based on remote user interface protocol and method of operating server and client of network system, and computer-readable medium having embodied thereon computer program for executing method of operating server and client of network system
US20070219773A1 (en) * 2006-03-17 2007-09-20 Xerox Corporation Syntactic rule development graphical user interface
US20080091408A1 (en) * 2006-10-06 2008-04-17 Xerox Corporation Navigation system for text
US7386543B1 (en) * 1999-12-15 2008-06-10 Google Inc. System and method for supporting editorial opinion in the ranking of search results
US20080184358A1 (en) * 2007-01-26 2008-07-31 Verdasys, Inc. Ensuring trusted transactions with compromised customer machines
US7414979B1 (en) * 2000-11-29 2008-08-19 Cisco Technology, Inc. Method and apparatus for per session load balancing with improved load sharing in a packet switched network
US20080294423A1 (en) * 2007-05-23 2008-11-27 Xerox Corporation Informing troubleshooting sessions with device data
US20090019118A1 (en) * 2007-07-11 2009-01-15 Jones Doris L System and method for verifying the identity of a chat partner during an instant messaging session
US7587080B1 (en) * 2004-11-04 2009-09-08 Rockwell Automation Technologies, Inc. Image retention user interface
US20090240677A1 (en) * 2008-03-18 2009-09-24 Rajesh Parekh Personalizing Sponsored Search Advertising Layout using User Behavior History
US20100122196A1 (en) * 2008-05-13 2010-05-13 Michael Wetzer Apparatus and methods for interacting with multiple information forms across multiple types of computing devices
US20100138212A1 (en) * 2008-12-03 2010-06-03 Microsoft Corporation Viewing messages and message attachments in different languages
US20100205529A1 (en) * 2009-02-09 2010-08-12 Emma Noya Butin Device, system, and method for creating interactive guidance with execution of operations
US20100205530A1 (en) * 2009-02-09 2010-08-12 Emma Noya Butin Device, system, and method for providing interactive guidance with execution of operations
US7797303B2 (en) 2006-02-15 2010-09-14 Xerox Corporation Natural language processing for developing queries
US20100287515A1 (en) * 2009-05-06 2010-11-11 International Business Machines, Corporation interactive checker in a layout editor
US20100306825A1 (en) * 2009-05-27 2010-12-02 Lucid Ventures, Inc. System and method for facilitating user interaction with a simulated object associated with a physical location
US20100302143A1 (en) * 2009-05-27 2010-12-02 Lucid Ventures, Inc. System and method for control of a simulated object that is associated with a physical location in the real world environment
US7860946B1 (en) * 2007-05-01 2010-12-28 Disintegrated Communication Systems, Llc Systems, methods, and computer-readable media for searching and concomitantly interacting with multiple information content providers, other individuals, relevant communities of individuals, and information provided over a network
US20110004349A1 (en) * 2008-03-14 2011-01-06 Shah Amip J Exergy Based Evaluation Of An Infrastructure
US20110047462A1 (en) * 2009-08-24 2011-02-24 Emma Butin Display-independent computerized guidance
US20110047488A1 (en) * 2009-08-24 2011-02-24 Emma Butin Display-independent recognition of graphical user interface control
US20110047514A1 (en) * 2009-08-24 2011-02-24 Emma Butin Recording display-independent computerized guidance
US20110055047A1 (en) * 2009-05-19 2011-03-03 Fox Brian J Integrated identity and financial fraud protection and proxy services delivery system and method
US20120095842A1 (en) * 2001-06-21 2012-04-19 Fogelson Bruce A Method and system for creating ad-books
US20120109748A1 (en) * 2008-09-30 2012-05-03 Cvon Innovations Ltd System and method for presenting content to consumers
US8751948B2 (en) 2008-05-13 2014-06-10 Cyandia, Inc. Methods, apparatus and systems for providing and monitoring secure information via multiple authorized channels and generating alerts relating to same
US20140185950A1 (en) * 2012-12-28 2014-07-03 Microsoft Corporation Progressive entropy encoding
US8819726B2 (en) 2010-10-14 2014-08-26 Cyandia, Inc. Methods, apparatus, and systems for presenting television programming and related information
US20150019959A1 (en) * 2011-12-31 2015-01-15 Beijing Founder Electronics Co., Ltd Method and apparatus for bidirectional typesetting
US20150026660A1 (en) * 2013-07-16 2015-01-22 Software Ag Methods for building application intelligence into event driven applications through usage learning, and systems supporting such applications
US20150039755A1 (en) * 2009-02-02 2015-02-05 Level 3 Communications, Llc Analysis of network traffic
US9069782B2 (en) 2012-10-01 2015-06-30 The Research Foundation For The State University Of New York System and method for security and privacy aware virtual machine checkpointing
US20150215357A1 (en) * 2012-10-09 2015-07-30 Tencent Technology (Shenzhen) Company Limited Video playing method and apparatus
US20150249720A1 (en) * 2014-03-03 2015-09-03 Airpush, Inc. In-app content channel
CN105224442A (en) * 2015-09-24 2016-01-06 浪潮电子信息产业股份有限公司 A kind of multi-client shared-file system performance test methods
US9654368B2 (en) 2009-02-02 2017-05-16 Level 3 Communications, Llc Network cost analysis
US20170177171A1 (en) * 2015-12-17 2017-06-22 Microsoft Technology Licensing, Llc Web browser extension
US9767271B2 (en) 2010-07-15 2017-09-19 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
US9767284B2 (en) 2012-09-14 2017-09-19 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
WO2017172960A1 (en) * 2016-03-29 2017-10-05 Console Connect Inc. Managing physical network cross-connects in a datacenter
US20170364510A1 (en) * 2016-06-21 2017-12-21 EMC IP Holding Company LLC Method and device for processing a multi-language text
US20180196578A1 (en) * 2015-07-21 2018-07-12 Zte Corporation Method and Device for Identifying Java Window Control
US10083242B2 (en) * 2010-07-30 2018-09-25 International Business Machines Corporation System and method for data-driven web page navigation control
US10127735B2 (en) 2012-05-01 2018-11-13 Augmented Reality Holdings 2, Llc System, method and apparatus of eye tracking or gaze detection applications including facilitating action on or interaction with a simulated object
US10313211B1 (en) * 2015-08-25 2019-06-04 Avi Networks Distributed network service risk monitoring and scoring
US10594562B1 (en) 2015-08-25 2020-03-17 Vmware, Inc. Intelligent autoscale of services
US10693734B2 (en) 2016-03-04 2020-06-23 Vmware, Inc. Traffic pattern detection and presentation in container-based cloud computing architecture
US10712915B2 (en) 2016-06-08 2020-07-14 Alibaba Group Holding Limited Information presentation using a client on a terminal
US10795906B1 (en) * 2017-12-14 2020-10-06 Hostbridge Technology, Llc Transaction tracking
US10931548B1 (en) 2016-03-28 2021-02-23 Vmware, Inc. Collecting health monitoring data pertaining to an application from a selected set of service engines
US10999168B1 (en) 2018-05-30 2021-05-04 Vmware, Inc. User defined custom metrics
US11044180B2 (en) 2018-10-26 2021-06-22 Vmware, Inc. Collecting samples hierarchically in a datacenter
CN113612735A (en) * 2021-07-15 2021-11-05 中国联合网络通信集团有限公司 Secure storage system
US11256912B2 (en) * 2016-11-16 2022-02-22 Switch, Inc. Electronic form identification using spatial information
US11283697B1 (en) 2015-03-24 2022-03-22 Vmware, Inc. Scalable real time metrics management
US11290358B2 (en) 2019-05-30 2022-03-29 Vmware, Inc. Partitioning health monitoring in a global server load balancing system
US20220111852A1 (en) * 2019-02-07 2022-04-14 2 Circle, Inc. Reconstruction and assessment of proficiency in an integrated debrief by a server in a network
US11349726B2 (en) * 2008-01-15 2022-05-31 At&T Mobility Ii Llc Systems and methods for real-time service assurance
US20230031004A1 (en) * 2021-07-30 2023-02-02 Cisco Technology, Inc. Byte code monitoring to avoid certificate-based outages
US11792155B2 (en) 2021-06-14 2023-10-17 Vmware, Inc. Method and apparatus for enhanced client persistence in multi-site GSLB deployments
US11811861B2 (en) 2021-05-17 2023-11-07 Vmware, Inc. Dynamically updating load balancing criteria
US11816143B2 (en) * 2017-07-18 2023-11-14 Ebay Inc. Integrated image system based on image search feature

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6490620B1 (en) * 1997-09-26 2002-12-03 Worldcom, Inc. Integrated proxy interface for web based broadband telecommunications management
US20040193512A1 (en) * 1998-09-24 2004-09-30 Parmeshwar Gobin Web based integrated customer interface for invoice reporting
US20020023207A1 (en) * 1999-01-14 2002-02-21 Olik Zbigniew T. Secure data transfer between a client and a back-end resource via an intermediary
JP2001337872A (en) * 2000-05-29 2001-12-07 Cec:Kk Service provision system
US7155723B2 (en) * 2000-07-19 2006-12-26 Akamai Technologies, Inc. Load balancing service
US20030046394A1 (en) * 2000-11-03 2003-03-06 Steve Goddard System and method for an application space server cluster
US7286994B1 (en) * 2000-12-26 2007-10-23 At&T Bls Intellectual Property, Inc. System for facilitating technician sales referrals
US6983318B2 (en) * 2001-01-22 2006-01-03 International Business Machines Corporation Cache management method and system for storing dynamic contents
US7280087B2 (en) * 2001-04-23 2007-10-09 Gilbarco Inc. Multiple browser interface
US7219137B1 (en) * 2001-06-28 2007-05-15 Bellsouth Intellectual Property Corp Technician wireline and wireless intranet access via systems interface to legacy systems
US8831949B1 (en) 2001-06-28 2014-09-09 At&T Intellectual Property I, L.P. Voice recognition for performing authentication and completing transactions in a systems interface to legacy systems
US7401144B1 (en) 2001-06-28 2008-07-15 At&T Delaware Intellectual Property, Inc. Technician intranet access via systems interface to legacy systems
US7606712B1 (en) * 2001-06-28 2009-10-20 At&T Intellectual Property Ii, L.P. Speech recognition interface for voice actuation of legacy systems
US7149702B1 (en) * 2001-12-31 2006-12-12 Bellsouth Intellectual Property Corp. System and method for document delays associated with a project
US7043606B2 (en) * 2002-10-01 2006-05-09 America Online, Inc. Automatic browser web cache resizing system
US9591468B2 (en) 2003-07-29 2017-03-07 Level 3 Communications, Llc System and method for monitoring communications in a network
US7764670B2 (en) * 2003-07-29 2010-07-27 Level 3 Communications, Llc System and method for monitoring communications in a network
US7996883B2 (en) * 2004-12-09 2011-08-09 International Business Machines Corporation Centralized identity management for delegating resource management in a technology outsourcing environment
WO2006081381A2 (en) 2005-01-26 2006-08-03 Telcordia Technologies, Inc. System and method for authorized digital content distribution
US20060184679A1 (en) * 2005-02-16 2006-08-17 Izdepski Erich J Apparatus and method for subscribing to a web logging service via a dispatch communication system
FR2887356B1 (en) * 2005-06-20 2008-09-05 Richard Thibert AUTONOMOUS ELECTRONIC DEVICE FOR ELECTRONIC COMMERCE SITE
US20070130209A1 (en) * 2005-11-03 2007-06-07 David Marples System and method for generating consumer relational marketing information in a system for the distribution of digital content
US8041770B1 (en) * 2006-07-13 2011-10-18 Avaya Inc. Method of providing instant messaging functionality within an email session
US20090006594A1 (en) * 2007-06-27 2009-01-01 Avigdor Eldar Method and system for remote manageability of networked computers
US8145593B2 (en) 2008-12-11 2012-03-27 Microsoft Corporation Framework for web services exposing line of business applications
US20100153565A1 (en) * 2008-12-11 2010-06-17 Microsoft Corporation Connection management in line-of-business
US9154384B2 (en) * 2012-01-20 2015-10-06 Cisco Technology, Inc. Sentiment based dynamic network management services
CN102970369A (en) * 2012-11-26 2013-03-13 北京奇虎科技有限公司 Downloading browser and method
WO2014107147A1 (en) * 2013-01-03 2014-07-10 Hewlett-Packard Development Company, L.P. Identifying an analysis reporting message in network traffic
US10306467B2 (en) * 2013-04-11 2019-05-28 Uniloc 2017 Llc Shared state among multiple devices
US20150242312A1 (en) * 2013-04-19 2015-08-27 Hitachi, Ltd. Method of managing memory, computer, and recording medium
US20150052459A1 (en) * 2013-08-13 2015-02-19 Unisys Corporation Shortcut command button for a hierarchy tree
US11388082B2 (en) 2013-11-27 2022-07-12 Oracle International Corporation Methods, systems, and computer readable media for diameter routing using software defined network (SDN) functionality
US9762436B2 (en) * 2014-02-25 2017-09-12 Red Hat, Inc. Unified and persistent network configuration
US9654587B2 (en) * 2014-04-16 2017-05-16 Go Daddy Operating Company, LLC System for location-based website hosting optimization
US9553997B2 (en) 2014-11-01 2017-01-24 Somos, Inc. Toll-free telecommunications management platform
US10560583B2 (en) 2014-11-01 2020-02-11 Somos, Inc. Toll-free numbers metadata tagging, analysis and reporting
US9992352B2 (en) 2014-11-01 2018-06-05 Somos, Inc. Toll-free telecommunications and data management platform
US9549066B2 (en) 2014-11-01 2017-01-17 Somos, Inc. Toll-free telecommunications management platform
CA3051556A1 (en) 2018-08-10 2020-02-10 Somos, Inc. Toll-free telecommunications data management interface

Citations (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4817050A (en) * 1985-11-22 1989-03-28 Kabushiki Kaisha Toshiba Database system
US4823373A (en) * 1986-10-16 1989-04-18 Oki Electric Industry Co., Ltd. Line switching control system for mobile communication
US4893248A (en) * 1987-02-06 1990-01-09 Access Corporation Monitoring and reporting system for remote terminals
US5088052A (en) * 1988-07-15 1992-02-11 Digital Equipment Corporation System for graphically representing and manipulating data stored in databases
US5208908A (en) * 1989-10-12 1993-05-04 International Business Machines Corporation Display system having a font cache for the temporary storage of font data
US5223699A (en) * 1990-11-05 1993-06-29 At&T Bell Laboratories Recording and billing system
US5285494A (en) * 1992-07-31 1994-02-08 Pactel Corporation Network management system
US5287270A (en) * 1989-08-14 1994-02-15 Compucom Communications Corp. Billing system
US5313598A (en) * 1989-12-19 1994-05-17 Hitachi, Ltd. Method for changing non-leaf entry in tree structure of OSI directory information by sequentially issuing OSI directory commands for the non-leaf entry and lower entries associated therewith in response to decoded change command
US5315093A (en) * 1992-02-05 1994-05-24 A. C. Nielsen Company Market research method and system for collecting retail store market research data
US5481542A (en) * 1993-11-10 1996-01-02 Scientific-Atlanta, Inc. Interactive information services control system
US5483596A (en) * 1994-01-24 1996-01-09 Paralon Technologies, Inc. Apparatus and method for controlling access to and interconnection of computer system resources
US5490060A (en) * 1988-02-29 1996-02-06 Information Resources, Inc. Passive data collection system for market research data
US5491779A (en) * 1992-04-03 1996-02-13 Bezjian; Richard D. Three dimensional presentation of multiple data sets in unitary format with pie charts
US5491796A (en) * 1992-10-23 1996-02-13 Net Labs, Inc. Apparatus for remotely managing diverse information network resources
US5506893A (en) * 1993-02-19 1996-04-09 At&T Corp. Telecommunication network arrangement for providing real time access to call records
US5526257A (en) * 1994-10-31 1996-06-11 Finlay Fine Jewelry Corporation Product evaluation system
US5530744A (en) * 1994-09-20 1996-06-25 At&T Corp. Method and system for dynamic customized call routing
US5602918A (en) * 1995-12-22 1997-02-11 Virtual Open Network Environment Corp. Application level security system and method
US5610915A (en) * 1994-11-30 1997-03-11 Mci Communications Corporation System and method therefor of viewing call traffic of a telecommunications network
US5621727A (en) * 1994-09-16 1997-04-15 Octel Communications Corporation System and method for private addressing plans using community addressing
US5623601A (en) * 1994-11-18 1997-04-22 Milkway Networks Corporation Apparatus and method for providing a secure gateway for communication and data exchanges between networks
US5630066A (en) * 1994-12-20 1997-05-13 Sun Microsystems, Inc. System and method for locating object view and platform independent object
US5706502A (en) * 1996-03-25 1998-01-06 Sun Microsystems, Inc. Internet-enabled portfolio manager system and method
US5708780A (en) * 1995-06-07 1998-01-13 Open Market, Inc. Internet server access control and monitoring systems
US5710882A (en) * 1995-06-29 1998-01-20 Telefonaktiebolaget Lm Ericsson Method and call set up server for setting up a call using a call handling portion and a connection handling portion to handle the call and the connection, respectively
US5721908A (en) * 1995-06-07 1998-02-24 International Business Machines Corporation Computer network for WWW server data access over internet
US5721913A (en) * 1994-05-05 1998-02-24 Lucent Technologies Inc. Integrated activity management system
US5727129A (en) * 1996-06-04 1998-03-10 International Business Machines Corporation Network system for profiling and actively facilitating user activities
US5734831A (en) * 1996-04-26 1998-03-31 Sun Microsystems, Inc. System for configuring and remotely administering a unix computer over a network
US5734709A (en) * 1992-01-27 1998-03-31 Sprint Communications Co. L.P. System for customer configuration of call routing in a telecommunications network
US5742762A (en) * 1995-05-19 1998-04-21 Telogy Networks, Inc. Network management gateway
US5742763A (en) * 1995-12-29 1998-04-21 At&T Corp. Universal message delivery system for handles identifying network presences
US5742905A (en) * 1994-09-19 1998-04-21 Bell Communications Research, Inc. Personal communications internetworking
US5742768A (en) * 1996-07-16 1998-04-21 Silicon Graphics, Inc. System and method for providing and displaying a web page having an embedded menu
US5745754A (en) * 1995-06-07 1998-04-28 International Business Machines Corporation Sub-agent for fulfilling requests of a web browser using an intelligent agent and providing a report
US5754830A (en) * 1996-04-01 1998-05-19 Openconnect Systems, Incorporated Server and web browser terminal emulator for persistent connection to a legacy host system and method of operation
US5757900A (en) * 1995-06-02 1998-05-26 Bell Communications Research, Inc. System and method for single access database retrievals
US5764756A (en) * 1996-01-11 1998-06-09 U S West, Inc. Networked telephony central offices
US5768501A (en) * 1996-05-28 1998-06-16 Cabletron Systems Method and apparatus for inter-domain alarm correlation
US5774670A (en) * 1995-10-06 1998-06-30 Netscape Communications Corporation Persistent client state in a hypertext transfer protocol based client-server system
US5774660A (en) * 1996-08-05 1998-06-30 Resonate, Inc. World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network
US5862325A (en) * 1996-02-29 1999-01-19 Intermind Corporation Computer-based communication system and method using metadata defining a control structure
US5867495A (en) * 1996-11-18 1999-02-02 Mci Communications Corporations System, method and article of manufacture for communications utilizing calling, plans in a hybrid network
US5870558A (en) * 1996-06-25 1999-02-09 Mciworldcom, Inc. Intranet graphical user interface for SONET network management
US5875236A (en) * 1995-11-21 1999-02-23 At&T Corp Call handling method for credit and fraud management
US5875296A (en) * 1997-01-28 1999-02-23 International Business Machines Corporation Distributed file system web server user authentication with cookies
US5877759A (en) * 1997-03-26 1999-03-02 Netscape Communications Corporation Interface for user/agent interaction
US5881237A (en) * 1996-09-10 1999-03-09 Ganymede Software, Inc. Methods, systems and computer program products for test scenario based communications network performance testing
US5884312A (en) * 1997-02-28 1999-03-16 Electronic Data Systems Corporation System and method for securely accessing information from disparate data sources through a network
US5884032A (en) * 1995-09-25 1999-03-16 The New Brunswick Telephone Company, Limited System for coordinating communications via customer contact channel changing system using call centre for setting up the call between customer and an available help agent
US5883948A (en) * 1995-06-19 1999-03-16 Lucent Technologies Inc. Method for automatic maintenance of a local number portability database
US5892900A (en) * 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US5907681A (en) * 1997-10-20 1999-05-25 International Business Machines Corporation Intelligent method, apparatus and computer program product for automated refreshing of internet web pages
US5909682A (en) * 1996-12-30 1999-06-01 Mci Worldcom, Inc. Real-time device data management for managing access to data in a telecommunication system
US5909679A (en) * 1996-11-08 1999-06-01 At&T Corp Knowledge-based moderator for electronic mail help lists
US5915001A (en) * 1996-11-14 1999-06-22 Vois Corporation System and method for providing and using universally accessible voice and speech data files
US6011844A (en) * 1998-06-19 2000-01-04 Callnet Communications Point-of-presence call center management system
US6012090A (en) * 1997-03-14 2000-01-04 At&T Corp. Client-side parallel requests for network services using group name association
US6014702A (en) * 1997-06-04 2000-01-11 International Business Machines Corporation Host information access via distributed programmed objects
US6014647A (en) * 1997-07-08 2000-01-11 Nizzari; Marcia M. Customer interaction tracking
US6018768A (en) * 1996-03-08 2000-01-25 Actv, Inc. Enhanced video programming system and method for incorporating and displaying retrieved integrated internet information segments
US6021409A (en) * 1996-08-09 2000-02-01 Digital Equipment Corporation Method for parsing, indexing and searching world-wide-web pages
US6023762A (en) * 1997-07-09 2000-02-08 Northern Telecom Limited Multi-view personalized communications agent
US6029182A (en) * 1996-10-04 2000-02-22 Canon Information Systems, Inc. System for generating a custom formatted hypertext document by using a personal profile to retrieve hierarchical documents
US6032184A (en) * 1995-12-29 2000-02-29 Mci Worldcom, Inc. Integrated interface for Web based customer care and trouble management
US6031904A (en) * 1996-10-23 2000-02-29 Nortel Networks Corporation Service order mechanism for telephone subscriber
US6032132A (en) * 1998-06-12 2000-02-29 Csg Systems, Inc. Telecommunications access cost management system
US6041357A (en) * 1997-02-06 2000-03-21 Electric Classified, Inc. Common session token system and protocol
US6044362A (en) * 1997-09-08 2000-03-28 Neely; R. Alan Electronic invoicing and payment system
US6044144A (en) * 1997-02-07 2000-03-28 Mci Communications Corp. Network call parking manager
US6049789A (en) * 1998-06-24 2000-04-11 Mentor Graphics Corporation Software pay per use licensing system
US6049602A (en) * 1997-09-18 2000-04-11 At&T Corp Virtual call center
US6052450A (en) * 1995-07-27 2000-04-18 British Telecommunications Public Limited Company Billing for communications usage
US6058381A (en) * 1996-10-30 2000-05-02 Nelson; Theodor Holm Many-to-many payments system for network content materials
US6058170A (en) * 1997-03-10 2000-05-02 At&T Corp Telephone billing with summary information
US6065002A (en) * 1996-10-31 2000-05-16 Systems And Computer Technology Corporation Simplified interface for relational database access using open database connectivity
US6065116A (en) * 1997-05-07 2000-05-16 Unisys Corporation Method and apparatus for configuring a distributed application program
US6064667A (en) * 1997-02-10 2000-05-16 Genesys Telecommunications Laboratories, Inc. Apparatus and methods enhancing call routing to and within call centers
US6065059A (en) * 1996-12-10 2000-05-16 International Business Machines Corporation Filtered utilization of internet data transfers to reduce delay and increase user control
US6072493A (en) * 1997-03-31 2000-06-06 Bellsouth Corporation System and method for associating services information with selected elements of an organization
US6073122A (en) * 1997-08-15 2000-06-06 Lucent Technologies Inc. Cryptographic method and apparatus for restricting access to transmitted programming content using extended headers
US6073105A (en) * 1997-06-13 2000-06-06 Tele-Publishing, Inc. Interactive personals online network method and apparatus
US6073241A (en) * 1996-08-29 2000-06-06 C/Net, Inc. Apparatus and method for tracking world wide web browser requests across distinct domains using persistent client-side state
US6078891A (en) * 1997-11-24 2000-06-20 Riordan; John Method and system for collecting and processing marketing data
US6078924A (en) * 1998-01-30 2000-06-20 Aeneid Corporation Method and apparatus for performing data collection, interpretation and analysis, in an information platform
US6173311B1 (en) * 1997-02-13 2001-01-09 Pointcast, Inc. Apparatus, method and article of manufacture for servicing client requests on a network
US6182113B1 (en) * 1997-09-16 2001-01-30 International Business Machines Corporation Dynamic multiplexing of hyperlinks and bookmarks
US6205456B1 (en) * 1997-01-17 2001-03-20 Fujitsu Limited Summarization apparatus and method
US6212546B1 (en) * 1998-10-01 2001-04-03 Unisys Corporation Providing a modular gateway architecture which isolates attributes of the client and server systems into independent components
US6212558B1 (en) * 1997-04-25 2001-04-03 Anand K. Antur Method and apparatus for configuring and managing firewalls and security devices
US6212506B1 (en) * 1997-09-16 2001-04-03 Nortel Networks Corporation Per call real time billing display
US20010001014A1 (en) * 1995-04-03 2001-05-10 Akins Glendon L. Source authentication of download information in a conditional access system
US6240450B1 (en) * 1995-10-16 2001-05-29 British Telecommunications Public Limited Company Network data visualization system and method for downloading visualization software to a user station after user authentication
US20010003828A1 (en) * 1997-10-28 2001-06-14 Joe Peterson Client-side system for scheduling delivery of web content and locally managing the web content
US6337858B1 (en) * 1997-10-10 2002-01-08 Nortel Networks Limited Method and apparatus for originating voice calls from a data network
US6377993B1 (en) * 1997-09-26 2002-04-23 Mci Worldcom, Inc. Integrated proxy interface for web based data management reports
US6715080B1 (en) * 1998-10-01 2004-03-30 Unisys Corporation Making CGI variables and cookie information available to an OLTP system

Family Cites Families (142)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4160129A (en) 1977-05-03 1979-07-03 Tdx Systems, Inc. Telephone communications control system having a plurality of remote switching units
US4345315A (en) 1979-01-19 1982-08-17 Msi Data Corporation Customer satisfaction terminal
US5475836A (en) 1987-04-01 1995-12-12 Lotus Development Corporation Interface for providing access to external data sources/sinks
JPS6450688A (en) 1987-08-21 1989-02-27 Hashimoto Corp Method and device for generating individual television program
US4972504A (en) 1988-02-11 1990-11-20 A. C. Nielsen Company Marketing research system and method for obtaining retail data on a real time basis
US5041972A (en) 1988-04-15 1991-08-20 Frost W Alan Method of measuring and evaluating consumer response for the development of consumer products
US5136707A (en) 1988-10-28 1992-08-04 At&T Bell Laboratories Reliable database administration arrangement
US5228076A (en) 1989-06-12 1993-07-13 Emil Hopner High fidelity speech encoding for telecommunications systems
US5131020A (en) 1989-12-29 1992-07-14 Smartroutes Systems Limited Partnership Method of and system for providing continually updated traffic or other information to telephonically and other communications-linked customers
JP2619962B2 (en) 1990-02-28 1997-06-11 株式会社日立製作所 Figure editing method and apparatus
US5222120A (en) 1990-04-23 1993-06-22 Mci Communications Corporation Long distance telephone switching system with enhanced subscriber services
ATE194238T1 (en) 1990-09-17 2000-07-15 Cabletron Systems Inc SYSTEM AND METHOD FOR MODELING A COMPUTER NETWORK
US5245533A (en) 1990-12-18 1993-09-14 A. C. Nielsen Company Marketing research method and system for management of manufacturer's discount coupon offers
US5129152A (en) 1990-12-20 1992-07-14 Hughes Aircraft Company Fast contact measuring machine
US5812654A (en) 1992-01-27 1998-09-22 Sprint Communications Co. L.P. Telecommunications network routing
US5537611A (en) 1992-04-14 1996-07-16 Mci Communications Corporation Network management of special service calls
EP0647381B1 (en) 1992-06-25 1999-05-19 Apropos Technology, Inc. Call distributor
JP3175348B2 (en) 1992-11-06 2001-06-11 キヤノン株式会社 Communication device
US5452446A (en) 1992-11-12 1995-09-19 Spx Corporation Method and apparatus for managing dynamic vehicle data recording data by current time minus latency
US5586260A (en) 1993-02-12 1996-12-17 Digital Equipment Corporation Method and apparatus for authenticating a client to a server in computer systems which support different security mechanisms
US5361259A (en) 1993-02-19 1994-11-01 American Telephone And Telegraph Company Wide area network (WAN)-arrangement
AU674189B2 (en) 1993-02-23 1996-12-12 Moore North America, Inc. A method and system for gathering and analyzing customer and purchasing information
US5666481A (en) 1993-02-26 1997-09-09 Cabletron Systems, Inc. Method and apparatus for resolving faults in communications networks
US5327486A (en) 1993-03-22 1994-07-05 Bell Communications Research, Inc. Method and system for managing telecommunications such as telephone calls
US5369571A (en) 1993-06-21 1994-11-29 Metts; Rodney H. Method and apparatus for acquiring demographic information
US5953389A (en) 1993-11-16 1999-09-14 Bell Atlantic Network Services, Inc. Combination system for provisioning and maintaining telephone network facilities in a public switched telephone network
WO1995015533A1 (en) 1993-11-30 1995-06-08 Burke Raymond R Computer system for allowing a consumer to purchase packaged goods at home
US5548726A (en) 1993-12-17 1996-08-20 Taligeni, Inc. System for activating new service in client server network by reconfiguring the multilayer network protocol stack dynamically within the server node
US5586311A (en) 1994-02-14 1996-12-17 American Airlines, Inc. Object oriented data access and analysis system
US5812533A (en) 1994-02-28 1998-09-22 British Telecommunications Public Limited Company Service provision in communications networks
US5533108A (en) 1994-03-18 1996-07-02 At&T Corp. Method and system for routing phone calls based on voice and data transport capability
US5793762A (en) 1994-04-12 1998-08-11 U S West Technologies, Inc. System and method for providing packet data and voice services to mobile subscribers
US5694546A (en) 1994-05-31 1997-12-02 Reisman; Richard R. System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list
US5566351A (en) 1994-06-20 1996-10-15 International Business Machines Corporation Adaptive polling system by generating sequence of polling signals whose magnitudes are functionally related to the occurrence of the busy signal
US5539734A (en) 1994-07-21 1996-07-23 Newbridge Networks Corporation Method of maintaining PVC status packetized communication system
US5715443A (en) 1994-07-25 1998-02-03 Apple Computer, Inc. Method and apparatus for searching for information in a data processing system and for providing scheduled search reports in a summary format
US5563805A (en) 1994-08-16 1996-10-08 International Business Machines Corporation Multimedia context-sensitive real-time-help mechanism for use in a data processing system
US5778377A (en) 1994-11-04 1998-07-07 International Business Machines Corporation Table driven graphical user interface
US5551025A (en) 1994-11-30 1996-08-27 Mci Communications Corporation Relational database system for storing different types of data
US5689645A (en) 1994-12-01 1997-11-18 Hewlett-Packard Co. Persistence specification system and method for producing persistent and transient submaps in a management station for a data communication network
US5787160A (en) 1994-12-08 1998-07-28 Mci Communications Corporation Intelligent routing of special service calls
US5781632A (en) 1995-02-08 1998-07-14 Odom; Gregory Glen Method and apparatus for secured transmission of confidential data over an unsecured network
US6163597A (en) * 1995-02-10 2000-12-19 Bell Atlantic Network Services, Inc. Method and apparatus for routing calls placed to a virtual telephone number
DE69637799D1 (en) 1995-02-13 2009-02-12 Intertrust Tech Corp Systems and procedures for secure transaction management and electronic legal protection
JP3841366B2 (en) 1995-02-17 2006-11-01 富士通株式会社 Monitoring device load balancing processing system
JPH08235114A (en) 1995-02-28 1996-09-13 Hitachi Ltd Server access method and charge information managing method
US5696906A (en) 1995-03-09 1997-12-09 Continental Cablevision, Inc. Telecommunicaion user account management system and method
US5649182A (en) 1995-03-17 1997-07-15 Reitz; Carl A. Apparatus and method for organizing timeline data
US5825769A (en) 1995-03-17 1998-10-20 Mci Corporation System and method therefor of viewing in real time call traffic of a telecommunications network
US5699403A (en) 1995-04-12 1997-12-16 Lucent Technologies Inc. Network vulnerability management apparatus and method
US5659601A (en) 1995-05-09 1997-08-19 Motorola, Inc. Method of selecting a cost effective service plan
US5650994A (en) 1995-05-16 1997-07-22 Bell Atlantic Network Services, Inc. Operation support system for service creation and network provisioning for video dial tone networks
US5802320A (en) 1995-05-18 1998-09-01 Sun Microsystems, Inc. System for packet filtering of data packets at a computer network interface
US5692030A (en) 1995-05-31 1997-11-25 Mci Communications Corporation Electronic interface for exchange of trouble administration information in telecommunications
US6003030A (en) 1995-06-07 1999-12-14 Intervu, Inc. System and method for optimized storage and retrieval of data on a distributed computer network
US5701451A (en) 1995-06-07 1997-12-23 International Business Machines Corporation Method for fulfilling requests of a web browser
US5793964A (en) 1995-06-07 1998-08-11 International Business Machines Corporation Web browser system
US5826269A (en) 1995-06-21 1998-10-20 Microsoft Corporation Electronic mail interface for a network server
US6115458A (en) 1995-07-14 2000-09-05 American Express Travel Related Services Company, Inc. Method and apparatus for summaries of prepaid instrument transaction activity
US5852812A (en) 1995-08-23 1998-12-22 Microsoft Corporation Billing system for a network
US5657390A (en) 1995-08-25 1997-08-12 Netscape Communications Corporation Secure socket layer application program apparatus and method
US5850517A (en) 1995-08-31 1998-12-15 Oracle Corporation Communication link for client-server having agent which sends plurality of requests independent of client and receives information from the server independent of the server
US5692181A (en) 1995-10-12 1997-11-25 Ncr Corporation System and method for generating reports from a computer database
US5966695A (en) 1995-10-17 1999-10-12 Citibank, N.A. Sales and marketing support system using a graphical query prospect database
US6130933A (en) 1996-02-02 2000-10-10 Genesys Telecommunications Laboratories, Inc. Apparatus and methods for coordinating telephone and data communications
US5826029A (en) 1995-10-31 1998-10-20 International Business Machines Corporation Secured gateway interface
US5699528A (en) 1995-10-31 1997-12-16 Mastercard International, Inc. System and method for bill delivery and payment over a communications network
US5778178A (en) 1995-11-13 1998-07-07 Arunachalam; Lakshmi Method and apparatus for enabling real-time bi-directional transactions on a network
US5790809A (en) 1995-11-17 1998-08-04 Mci Corporation Registry communications middleware
US6161126A (en) 1995-12-13 2000-12-12 Immersion Corporation Implementing force feedback over the World Wide Web and other computer networks
US5852810A (en) 1996-01-29 1998-12-22 Student Housing Network Geographic specific information search system and method
US5781550A (en) 1996-02-02 1998-07-14 Digital Equipment Corporation Transparent and secure network gateway
US5726979A (en) 1996-02-22 1998-03-10 Mci Corporation Network management system
US5991733A (en) 1996-03-22 1999-11-23 Hartford Fire Insurance Company Method and computerized system for managing insurance receivable accounts
US5815665A (en) 1996-04-03 1998-09-29 Microsoft Corporation System and method for providing trusted brokering services over a distributed network
US5848396A (en) 1996-04-26 1998-12-08 Freedom Of Information, Inc. Method and apparatus for determining behavioral profile of a computer user
US5835084A (en) 1996-05-01 1998-11-10 Microsoft Corporation Method and computerized apparatus for distinguishing between read and unread messages listed in a graphical message window
IL126909A0 (en) 1996-05-07 1999-09-22 Webline Communications Corp Method and apparatus for coordinating internet multi-media content with telephone and audio communications
CA2198798C (en) 1996-05-21 2000-05-23 Hosagrahar Visvesvaraya Jagadish System and method for pricing telecommunication transactions
US5784058A (en) 1996-05-28 1998-07-21 Sun Microsystems, Inc. User-controllable persistent browser display pages
US5819225A (en) 1996-05-30 1998-10-06 International Business Machines Corporation Display indications of speech processing states in speech recognition system
US5819271A (en) 1996-06-04 1998-10-06 Multex Systems, Inc. Corporate information communication and delivery system and method including entitlable hypertext links
US5799154A (en) 1996-06-27 1998-08-25 Mci Communications Corporation System and method for the remote monitoring of wireless packet data networks
US6088451A (en) 1996-06-28 2000-07-11 Mci Communications Corporation Security system and method for network element access
US5999972A (en) 1996-07-01 1999-12-07 Sun Microsystems, Inc. System, method and article of manufacture for a distributed computer system framework
US6112242A (en) 1996-07-10 2000-08-29 Uln Corporation System and method for dynamic data interaction in a hypertext data processing system
US5938729A (en) 1996-07-12 1999-08-17 Microsoft Corporation System and method for monitoring server performance at a client computer
US5790780A (en) 1996-07-16 1998-08-04 Electronic Data Systems Corporation Analysis of failures in a computing environment
US6115737A (en) 1996-07-24 2000-09-05 Telcordia Technologies, Inc. System and method for accessing customer contact services over a network
US5790789A (en) 1996-08-02 1998-08-04 Suarez; Larry Method and architecture for the creation, control and deployment of services within a distributed computer environment
US6161128A (en) 1996-08-14 2000-12-12 Telcordia Technologies, Inc. Internet based service control system allows telecommunications subscriber modifies telecommunications services through an internet gateway
US5999965A (en) 1996-08-20 1999-12-07 Netspeak Corporation Automatic call distribution server for computer telephony communications
US6275490B1 (en) * 1996-08-21 2001-08-14 Netspeak Corporation Method and apparatus for establishing communications from browser application
US5845267A (en) 1996-09-06 1998-12-01 At&T Corp System and method for billing for transactions conducted over the internet from within an intranet
US5845067A (en) 1996-09-09 1998-12-01 Porter; Jack Edward Method and apparatus for document management utilizing a messaging system
US5937165A (en) 1996-09-10 1999-08-10 Ganymede Software, Inc Systems, methods and computer program products for applications traffic based communications network performance testing
US5983350A (en) 1996-09-18 1999-11-09 Secure Computing Corporation Secure firewall supporting different levels of authentication based on address or encryption status
US6119109A (en) 1996-09-30 2000-09-12 Digital Vision Laboratories Corporation Information distribution system and billing system used for the information distribution system
US5949976A (en) 1996-09-30 1999-09-07 Mci Communications Corporation Computer performance monitoring and graphing tool
EP2028614A3 (en) 1996-10-09 2010-01-06 Visa International Service Association Electronic statement presentation system
US6091808A (en) 1996-10-17 2000-07-18 Nortel Networks Corporation Methods of and apparatus for providing telephone call control and information
US5796393A (en) 1996-11-08 1998-08-18 Compuserve Incorporated System for intergrating an on-line service community with a foreign service
JPH10198706A (en) 1996-11-15 1998-07-31 Digital Vision Lab:Kk Information retrieval device, and method therefor
US5999525A (en) 1996-11-18 1999-12-07 Mci Communications Corporation Method for video telephony over a hybrid network
US5923016A (en) 1996-12-03 1999-07-13 Carlson Companies, Inc. In-store points redemption system & method
US5848233A (en) 1996-12-09 1998-12-08 Sun Microsystems, Inc. Method and apparatus for dynamic packet filter assignment
US6131095A (en) 1996-12-11 2000-10-10 Hewlett-Packard Company Method of accessing a target entity over a communications network
US6108782A (en) 1996-12-13 2000-08-22 3Com Corporation Distributed remote monitoring (dRMON) for networks
US6131116A (en) 1996-12-13 2000-10-10 Visto Corporation System and method for globally accessing computer services
US6286050B1 (en) 1997-01-27 2001-09-04 Alcatel Usa Sourcing, L.P. System and method for monitoring and management of telecommunications equipment using enhanced internet access
US5991746A (en) 1997-02-05 1999-11-23 General Datacomm, Inc. Billing system utilizing a modified file transfer protocol for collecting non-file MIB tables for billing in an ATM network
US5961602A (en) 1997-02-10 1999-10-05 International Business Machines Corporation Method for optimizing off-peak caching of web data
US6112238A (en) 1997-02-14 2000-08-29 Webtrends Corporation System and method for analyzing remote traffic data in a distributed computing environment
US5844896A (en) 1997-02-26 1998-12-01 U S West, Inc. System and method for routing telephone calls
US6003079A (en) 1997-02-27 1999-12-14 Hewlett Packard Company System and method for continuously measuring quality of service in a federated application environment
US6137869A (en) 1997-09-16 2000-10-24 Bell Atlantic Network Services, Inc. Network session management
US6292481B1 (en) 1997-09-16 2001-09-18 Bell Atlantic Network Services, Inc. Inter-carrier signaling and usage accounting architecture for internet telephony
US6104704A (en) 1997-03-20 2000-08-15 At&T Corp. Methods and apparatus for gathering and processing billing information for internet telephony
US5999973A (en) 1997-03-28 1999-12-07 Telefonaktiebolaget L M Ericsson (Publ) Use of web technology for subscriber management activities
US5982864A (en) 1997-05-01 1999-11-09 At& T Corp Telephone billing with customized billing information
US5805803A (en) 1997-05-13 1998-09-08 Digital Equipment Corporation Secure web tunnel
US6587867B1 (en) * 1997-05-22 2003-07-01 Mci Communications Corporation Internet-based subscriber profile management of a communications system
US5987523A (en) 1997-06-04 1999-11-16 International Business Machines Corporation Applet redirection for controlled access to non-orginating hosts
US5991806A (en) 1997-06-09 1999-11-23 Dell Usa, L.P. Dynamic system control via messaging in a network management system
US5930804A (en) 1997-06-09 1999-07-27 Philips Electronics North America Corporation Web-based biometric authentication system and method
US6105131A (en) 1997-06-13 2000-08-15 International Business Machines Corporation Secure server and method of operation for a distributed information system
US5958016A (en) 1997-07-13 1999-09-28 Bell Atlantic Network Services, Inc. Internet-web link for access to intelligent network service control
US5970467A (en) 1997-07-31 1999-10-19 Enviro Ec Ag Accurate market survey collection method
US6108700A (en) 1997-08-01 2000-08-22 International Business Machines Corporation Application end-to-end response time measurement and decomposition
US5956714A (en) 1997-08-13 1999-09-21 Southwestern Bell Telephone Company Queuing system using a relational database
US6122258A (en) 1997-08-29 2000-09-19 Nortel Networks Corporation Method for creating a numbering plan-independent directory structure for telecommunications applications
US5960411A (en) 1997-09-12 1999-09-28 Amazon.Com, Inc. Method and system for placing a purchase order via a communications network
US5983267A (en) 1997-09-23 1999-11-09 Information Architects Corporation System for indexing and displaying requested data having heterogeneous content and representation
US6041325A (en) 1997-10-09 2000-03-21 Alcatel Usa Sourcing, L.P. System and method for controlling access to a telephony database
US6128624A (en) 1997-11-12 2000-10-03 Ncr Corporation Collection and integration of internet and electronic commerce data in a database during web browsing
US5995948A (en) 1997-11-21 1999-11-30 First Usa Bank, N.A. Correspondence and chargeback workstation
US6134584A (en) 1997-11-21 2000-10-17 International Business Machines Corporation Method for accessing and retrieving information from a source maintained by a network server
US6006265A (en) 1998-04-02 1999-12-21 Hotv, Inc. Hyperlinks resolution at and by a special network server in order to enable diverse sophisticated hyperlinking upon a digital network
US6115693A (en) 1998-04-17 2000-09-05 Andersen Consulting Llp Quality center and method for a virtual sales and service center
US6088796A (en) 1998-08-06 2000-07-11 Cianfrocca; Francis Secure middleware and server control system for querying through a network firewall
US6084953A (en) 1998-08-28 2000-07-04 Axicom Communications Group Inc. Internet assisted return call
US6085171A (en) 1999-02-05 2000-07-04 Excel Communications, Inc. Order entry system for changing communication service

Patent Citations (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4817050A (en) * 1985-11-22 1989-03-28 Kabushiki Kaisha Toshiba Database system
US4823373B1 (en) * 1986-10-16 1999-08-24 Oki Electric Ind Co Ltd Line switching control system for mobile communication
US4823373A (en) * 1986-10-16 1989-04-18 Oki Electric Industry Co., Ltd. Line switching control system for mobile communication
US4893248A (en) * 1987-02-06 1990-01-09 Access Corporation Monitoring and reporting system for remote terminals
US5490060A (en) * 1988-02-29 1996-02-06 Information Resources, Inc. Passive data collection system for market research data
US5088052A (en) * 1988-07-15 1992-02-11 Digital Equipment Corporation System for graphically representing and manipulating data stored in databases
US5287270A (en) * 1989-08-14 1994-02-15 Compucom Communications Corp. Billing system
US5325290A (en) * 1989-08-14 1994-06-28 Compucom Communications Corp. Billing system with data indexing
US5208908A (en) * 1989-10-12 1993-05-04 International Business Machines Corporation Display system having a font cache for the temporary storage of font data
US5313598A (en) * 1989-12-19 1994-05-17 Hitachi, Ltd. Method for changing non-leaf entry in tree structure of OSI directory information by sequentially issuing OSI directory commands for the non-leaf entry and lower entries associated therewith in response to decoded change command
US5223699A (en) * 1990-11-05 1993-06-29 At&T Bell Laboratories Recording and billing system
US5734709A (en) * 1992-01-27 1998-03-31 Sprint Communications Co. L.P. System for customer configuration of call routing in a telecommunications network
US5315093A (en) * 1992-02-05 1994-05-24 A. C. Nielsen Company Market research method and system for collecting retail store market research data
US5491779A (en) * 1992-04-03 1996-02-13 Bezjian; Richard D. Three dimensional presentation of multiple data sets in unitary format with pie charts
US5285494A (en) * 1992-07-31 1994-02-08 Pactel Corporation Network management system
US5491796A (en) * 1992-10-23 1996-02-13 Net Labs, Inc. Apparatus for remotely managing diverse information network resources
US5506893A (en) * 1993-02-19 1996-04-09 At&T Corp. Telecommunication network arrangement for providing real time access to call records
US5481542A (en) * 1993-11-10 1996-01-02 Scientific-Atlanta, Inc. Interactive information services control system
US5483596A (en) * 1994-01-24 1996-01-09 Paralon Technologies, Inc. Apparatus and method for controlling access to and interconnection of computer system resources
US5721913A (en) * 1994-05-05 1998-02-24 Lucent Technologies Inc. Integrated activity management system
US5621727A (en) * 1994-09-16 1997-04-15 Octel Communications Corporation System and method for private addressing plans using community addressing
US5742905A (en) * 1994-09-19 1998-04-21 Bell Communications Research, Inc. Personal communications internetworking
US5530744A (en) * 1994-09-20 1996-06-25 At&T Corp. Method and system for dynamic customized call routing
US5526257A (en) * 1994-10-31 1996-06-11 Finlay Fine Jewelry Corporation Product evaluation system
US5623601A (en) * 1994-11-18 1997-04-22 Milkway Networks Corporation Apparatus and method for providing a secure gateway for communication and data exchanges between networks
US5610915A (en) * 1994-11-30 1997-03-11 Mci Communications Corporation System and method therefor of viewing call traffic of a telecommunications network
US5630066A (en) * 1994-12-20 1997-05-13 Sun Microsystems, Inc. System and method for locating object view and platform independent object
US20010001014A1 (en) * 1995-04-03 2001-05-10 Akins Glendon L. Source authentication of download information in a conditional access system
US5742762A (en) * 1995-05-19 1998-04-21 Telogy Networks, Inc. Network management gateway
US5757900A (en) * 1995-06-02 1998-05-26 Bell Communications Research, Inc. System and method for single access database retrievals
US5721908A (en) * 1995-06-07 1998-02-24 International Business Machines Corporation Computer network for WWW server data access over internet
US5708780A (en) * 1995-06-07 1998-01-13 Open Market, Inc. Internet server access control and monitoring systems
US5745754A (en) * 1995-06-07 1998-04-28 International Business Machines Corporation Sub-agent for fulfilling requests of a web browser using an intelligent agent and providing a report
US5883948A (en) * 1995-06-19 1999-03-16 Lucent Technologies Inc. Method for automatic maintenance of a local number portability database
US5710882A (en) * 1995-06-29 1998-01-20 Telefonaktiebolaget Lm Ericsson Method and call set up server for setting up a call using a call handling portion and a connection handling portion to handle the call and the connection, respectively
US6052450A (en) * 1995-07-27 2000-04-18 British Telecommunications Public Limited Company Billing for communications usage
US5884032A (en) * 1995-09-25 1999-03-16 The New Brunswick Telephone Company, Limited System for coordinating communications via customer contact channel changing system using call centre for setting up the call between customer and an available help agent
US5774670A (en) * 1995-10-06 1998-06-30 Netscape Communications Corporation Persistent client state in a hypertext transfer protocol based client-server system
US6240450B1 (en) * 1995-10-16 2001-05-29 British Telecommunications Public Limited Company Network data visualization system and method for downloading visualization software to a user station after user authentication
US5875236A (en) * 1995-11-21 1999-02-23 At&T Corp Call handling method for credit and fraud management
US5602918A (en) * 1995-12-22 1997-02-11 Virtual Open Network Environment Corp. Application level security system and method
US5742763A (en) * 1995-12-29 1998-04-21 At&T Corp. Universal message delivery system for handles identifying network presences
US6032184A (en) * 1995-12-29 2000-02-29 Mci Worldcom, Inc. Integrated interface for Web based customer care and trouble management
US5764756A (en) * 1996-01-11 1998-06-09 U S West, Inc. Networked telephony central offices
US5862325A (en) * 1996-02-29 1999-01-19 Intermind Corporation Computer-based communication system and method using metadata defining a control structure
US6018768A (en) * 1996-03-08 2000-01-25 Actv, Inc. Enhanced video programming system and method for incorporating and displaying retrieved integrated internet information segments
US5706502A (en) * 1996-03-25 1998-01-06 Sun Microsystems, Inc. Internet-enabled portfolio manager system and method
US5754830A (en) * 1996-04-01 1998-05-19 Openconnect Systems, Incorporated Server and web browser terminal emulator for persistent connection to a legacy host system and method of operation
US5734831A (en) * 1996-04-26 1998-03-31 Sun Microsystems, Inc. System for configuring and remotely administering a unix computer over a network
US5768501A (en) * 1996-05-28 1998-06-16 Cabletron Systems Method and apparatus for inter-domain alarm correlation
US5727129A (en) * 1996-06-04 1998-03-10 International Business Machines Corporation Network system for profiling and actively facilitating user activities
US5870558A (en) * 1996-06-25 1999-02-09 Mciworldcom, Inc. Intranet graphical user interface for SONET network management
US5742768A (en) * 1996-07-16 1998-04-21 Silicon Graphics, Inc. System and method for providing and displaying a web page having an embedded menu
US5774660A (en) * 1996-08-05 1998-06-30 Resonate, Inc. World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network
US6021409A (en) * 1996-08-09 2000-02-01 Digital Equipment Corporation Method for parsing, indexing and searching world-wide-web pages
US6073241A (en) * 1996-08-29 2000-06-06 C/Net, Inc. Apparatus and method for tracking world wide web browser requests across distinct domains using persistent client-side state
US5892900A (en) * 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US5881237A (en) * 1996-09-10 1999-03-09 Ganymede Software, Inc. Methods, systems and computer program products for test scenario based communications network performance testing
US6029182A (en) * 1996-10-04 2000-02-22 Canon Information Systems, Inc. System for generating a custom formatted hypertext document by using a personal profile to retrieve hierarchical documents
US6031904A (en) * 1996-10-23 2000-02-29 Nortel Networks Corporation Service order mechanism for telephone subscriber
US6058381A (en) * 1996-10-30 2000-05-02 Nelson; Theodor Holm Many-to-many payments system for network content materials
US6065002A (en) * 1996-10-31 2000-05-16 Systems And Computer Technology Corporation Simplified interface for relational database access using open database connectivity
US5909679A (en) * 1996-11-08 1999-06-01 At&T Corp Knowledge-based moderator for electronic mail help lists
US5915001A (en) * 1996-11-14 1999-06-22 Vois Corporation System and method for providing and using universally accessible voice and speech data files
US5867495A (en) * 1996-11-18 1999-02-02 Mci Communications Corporations System, method and article of manufacture for communications utilizing calling, plans in a hybrid network
US6065059A (en) * 1996-12-10 2000-05-16 International Business Machines Corporation Filtered utilization of internet data transfers to reduce delay and increase user control
US5909682A (en) * 1996-12-30 1999-06-01 Mci Worldcom, Inc. Real-time device data management for managing access to data in a telecommunication system
US6205456B1 (en) * 1997-01-17 2001-03-20 Fujitsu Limited Summarization apparatus and method
US5875296A (en) * 1997-01-28 1999-02-23 International Business Machines Corporation Distributed file system web server user authentication with cookies
US6041357A (en) * 1997-02-06 2000-03-21 Electric Classified, Inc. Common session token system and protocol
US6044144A (en) * 1997-02-07 2000-03-28 Mci Communications Corp. Network call parking manager
US6064667A (en) * 1997-02-10 2000-05-16 Genesys Telecommunications Laboratories, Inc. Apparatus and methods enhancing call routing to and within call centers
US6173311B1 (en) * 1997-02-13 2001-01-09 Pointcast, Inc. Apparatus, method and article of manufacture for servicing client requests on a network
US5884312A (en) * 1997-02-28 1999-03-16 Electronic Data Systems Corporation System and method for securely accessing information from disparate data sources through a network
US6058170A (en) * 1997-03-10 2000-05-02 At&T Corp Telephone billing with summary information
US6012090A (en) * 1997-03-14 2000-01-04 At&T Corp. Client-side parallel requests for network services using group name association
US5877759A (en) * 1997-03-26 1999-03-02 Netscape Communications Corporation Interface for user/agent interaction
US6072493A (en) * 1997-03-31 2000-06-06 Bellsouth Corporation System and method for associating services information with selected elements of an organization
US6212558B1 (en) * 1997-04-25 2001-04-03 Anand K. Antur Method and apparatus for configuring and managing firewalls and security devices
US6065116A (en) * 1997-05-07 2000-05-16 Unisys Corporation Method and apparatus for configuring a distributed application program
US6014702A (en) * 1997-06-04 2000-01-11 International Business Machines Corporation Host information access via distributed programmed objects
US6073105A (en) * 1997-06-13 2000-06-06 Tele-Publishing, Inc. Interactive personals online network method and apparatus
US6014647A (en) * 1997-07-08 2000-01-11 Nizzari; Marcia M. Customer interaction tracking
US6023762A (en) * 1997-07-09 2000-02-08 Northern Telecom Limited Multi-view personalized communications agent
US6073122A (en) * 1997-08-15 2000-06-06 Lucent Technologies Inc. Cryptographic method and apparatus for restricting access to transmitted programming content using extended headers
US6044362A (en) * 1997-09-08 2000-03-28 Neely; R. Alan Electronic invoicing and payment system
US6182113B1 (en) * 1997-09-16 2001-01-30 International Business Machines Corporation Dynamic multiplexing of hyperlinks and bookmarks
US6212506B1 (en) * 1997-09-16 2001-04-03 Nortel Networks Corporation Per call real time billing display
US6049602A (en) * 1997-09-18 2000-04-11 At&T Corp Virtual call center
US6377993B1 (en) * 1997-09-26 2002-04-23 Mci Worldcom, Inc. Integrated proxy interface for web based data management reports
US6337858B1 (en) * 1997-10-10 2002-01-08 Nortel Networks Limited Method and apparatus for originating voice calls from a data network
US5907681A (en) * 1997-10-20 1999-05-25 International Business Machines Corporation Intelligent method, apparatus and computer program product for automated refreshing of internet web pages
US20010003828A1 (en) * 1997-10-28 2001-06-14 Joe Peterson Client-side system for scheduling delivery of web content and locally managing the web content
US6078891A (en) * 1997-11-24 2000-06-20 Riordan; John Method and system for collecting and processing marketing data
US6078924A (en) * 1998-01-30 2000-06-20 Aeneid Corporation Method and apparatus for performing data collection, interpretation and analysis, in an information platform
US6032132A (en) * 1998-06-12 2000-02-29 Csg Systems, Inc. Telecommunications access cost management system
US6011844A (en) * 1998-06-19 2000-01-04 Callnet Communications Point-of-presence call center management system
US6049789A (en) * 1998-06-24 2000-04-11 Mentor Graphics Corporation Software pay per use licensing system
US6212546B1 (en) * 1998-10-01 2001-04-03 Unisys Corporation Providing a modular gateway architecture which isolates attributes of the client and server systems into independent components
US6715080B1 (en) * 1998-10-01 2004-03-30 Unisys Corporation Making CGI variables and cookie information available to an OLTP system

Cited By (180)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7386543B1 (en) * 1999-12-15 2008-06-10 Google Inc. System and method for supporting editorial opinion in the ranking of search results
US20020091764A1 (en) * 2000-09-25 2002-07-11 Yale Burton Allen System and method for processing and managing self-directed, customized video streaming data
US7414979B1 (en) * 2000-11-29 2008-08-19 Cisco Technology, Inc. Method and apparatus for per session load balancing with improved load sharing in a packet switched network
US20120095842A1 (en) * 2001-06-21 2012-04-19 Fogelson Bruce A Method and system for creating ad-books
US6990534B2 (en) * 2001-07-20 2006-01-24 Flowfinity Wireless, Inc. Method for a proactive browser system for implementing background frame maintenance and asynchronous frame submissions
US20060168101A1 (en) * 2001-07-20 2006-07-27 Dmytro Mikhailov Proactive browser system
US20030018714A1 (en) * 2001-07-20 2003-01-23 Dmytro Mikhailov Proactive browser system
US7483977B2 (en) 2001-07-20 2009-01-27 Flowfinity Wireless, Inc. Reverse posting of variable document parameters to an otherwise static document template displayed on a browser
US20030193521A1 (en) * 2002-04-10 2003-10-16 International Business Machines Corporation Rapid GUI refacing of a legacy application
US7124398B2 (en) * 2002-04-10 2006-10-17 International Business Machines Corporation Rapid GUI refacing of a legacy application
US20040010542A1 (en) * 2002-07-11 2004-01-15 Intel Corporation Managed service apparatus, systems, and methods
US20040024866A1 (en) * 2002-07-31 2004-02-05 Murali Sundar Service creator apparatus, systems, and methods
US7389342B2 (en) * 2002-07-31 2008-06-17 Intel Corporation Service creator apparatus, systems, and methods
US20040068428A1 (en) * 2002-10-02 2004-04-08 International Business Machines Corporation Management of business process application execution
US7293242B2 (en) * 2002-10-15 2007-11-06 International Business Machines Corporation Facilitated source to target object editing functions
US8042057B2 (en) * 2002-10-15 2011-10-18 International Business Machines Corporation Facilitated source to target object editing functions
US20040070622A1 (en) * 2002-10-15 2004-04-15 International Business Machines Corporation Facilitated source to target object editing functions
US20070266333A1 (en) * 2002-10-15 2007-11-15 International Business Machines Corporation Facilitated source to target object editing functions
US20100217829A1 (en) * 2004-05-03 2010-08-26 Sung Joon Ahn Method and apparatus for managing bookmark information for content stored in a networked media server
US8977674B2 (en) * 2004-05-03 2015-03-10 Lg Electronics Inc. Method and apparatus for managing bookmark information for content stored in a networked media server
US20070094376A1 (en) * 2004-05-03 2007-04-26 Ahn Sung J Method and apparatus for managing bookmark information for content stored in a networked media server
US8458288B2 (en) 2004-05-03 2013-06-04 Lg Electronics Inc. Method and apparatus for managing bookmark information for content stored in a networked media server
US8381109B2 (en) 2004-05-03 2013-02-19 Lg Electronics Inc. Method and apparatus for managing bookmark information for content stored in a networked media server
US8380811B2 (en) 2004-05-03 2013-02-19 Lg Electronics Inc. Method and apparatus for managing bookmark information for content stored in a networked media server
US8364779B2 (en) 2004-05-03 2013-01-29 Lg Electronics Inc. Method and apparatus for managing bookmark information for content stored in a networked media server
US8352583B2 (en) 2004-05-03 2013-01-08 Lg Electronics Inc. Method and apparatus for managing bookmark information for content stored in a networked media server
US8275854B2 (en) 2004-05-03 2012-09-25 Lg Electronics Inc. Method and apparatus for managing bookmark information for content stored in a networked media server
US8266244B2 (en) 2004-05-03 2012-09-11 Lg Electronics Inc. Method and apparatus for managing bookmark information for content stored in a networked media server
US8224925B2 (en) 2004-05-03 2012-07-17 Lg Electronics Inc. Method and apparatus for managing bookmark information for content stored in a networked media server
US8214463B2 (en) 2004-05-03 2012-07-03 Lg Electronics Inc. Method and apparatus for managing bookmark information for content stored in a networked media server
US8214519B2 (en) 2004-05-03 2012-07-03 Lg Electronics Inc. Method and apparatus for managing bookmark information for content stored in a networked media server
US8209397B2 (en) 2004-05-03 2012-06-26 Lg Electronics Inc. Method and apparatus for managing bookmark information for content stored in a networked media server
US20100217754A1 (en) * 2004-05-03 2010-08-26 Sung Joon Ahn Method and apparatus for managing bookmark information for content stored in a networked media server
US8549102B2 (en) 2004-05-03 2013-10-01 Lg Electronics Inc. Method and apparatus for managing bookmark information for content stored in a networked media server
US9237031B2 (en) * 2004-05-03 2016-01-12 Lg Electronics Inc. Method and apparatus for managing bookmark information for content stored in a networked media server
US8949314B2 (en) 2004-05-03 2015-02-03 Lg Electronics Inc. Method and apparatus for managing bookmark information for content stored in a networked media server
US8819165B2 (en) * 2004-05-03 2014-08-26 Lg Electronics Inc. Method and apparatus for managing bookmark information for content stored in a networked media server
US20100250667A1 (en) * 2004-05-03 2010-09-30 Sung Joon Ahn Method and apparatus for managing bookmark information for content stored in a networked media server
US20100218079A1 (en) * 2004-05-03 2010-08-26 Sung Joon Ahn Method and apparatus for managing bookmark information for content stored in a networked media server
US20100241735A1 (en) * 2004-05-03 2010-09-23 Sung Joon Ahn Method and apparatus for managing bookmark information for content stored in a networked media server
US20100241706A1 (en) * 2004-05-03 2010-09-23 Sung Joon Ahn Method and apparatus for managing bookmark information for content stored in a networked media server
US20100241702A1 (en) * 2004-05-03 2010-09-23 Sung Joon Ahn Method and apparatus for managing bookmark information for content stored in a networked media server
US20100241704A1 (en) * 2004-05-03 2010-09-23 Sung Joon Ahn Method and apparatus for managing bookmark information for content stored in a networked media server
US8819166B2 (en) * 2004-05-03 2014-08-26 Lg Electronics Inc. Method and apparatus for managing bookmark information for content stored a networked media server
US20100241703A1 (en) * 2004-05-03 2010-09-23 Sung Joon Ahn Method and apparatus for managing bookmark information for content stored in a networked media server
US20100223316A1 (en) * 2004-05-03 2010-09-02 Sung Joon Ahn Method and apparatus for managing bookmark information for content stored in a networked media server
US20100217828A1 (en) * 2004-05-03 2010-08-26 Sung Joon Ahn Method and apparatus for managing bookmark information for content stored in a networked media server
US20100217832A1 (en) * 2004-05-03 2010-08-26 Sung Joon Ahn Method and apparatus for managing bookmark information for content stored in a networked media server
US20100217831A1 (en) * 2004-05-03 2010-08-26 Sung Joon Ahn Method and apparatus for managing bookmark information for content stored in a networked media server
US20100217830A1 (en) * 2004-05-03 2010-08-26 Sung Joon Ahn Method and apparatus for managing bookmark information for content stored in a networked media server
US20100217827A1 (en) * 2004-05-03 2010-08-26 Sung Joon Ahn Method and apparatus for managing bookmark information for content stored in a networked media server
US20100217833A1 (en) * 2004-05-03 2010-08-26 Sung Joon Ahn Method and apparatus for managing bookmark information for content stored in a networked media server
US7587414B2 (en) * 2004-05-11 2009-09-08 Sap Ag Componentized content delivery
US20050256902A1 (en) * 2004-05-11 2005-11-17 Matthias Jensen Componentized content delivery
US20060036958A1 (en) * 2004-08-12 2006-02-16 International Business Machines Corporation Method, system and article of manufacture to capture a workflow
US7594183B2 (en) * 2004-08-12 2009-09-22 International Business Machines Corporation Capturing a workflow
US20060069781A1 (en) * 2004-09-08 2006-03-30 Erh-Jen Hou Global internet voice communication system method
US20060069771A1 (en) * 2004-09-29 2006-03-30 International Business Machines Corporation Method, system and program product for decentralized monitoring of server states within a cell of nodes
US7587080B1 (en) * 2004-11-04 2009-09-08 Rockwell Automation Technologies, Inc. Image retention user interface
US20060155569A1 (en) * 2005-01-07 2006-07-13 Lord Judd A Style trend tracking tool
US20060165061A1 (en) * 2005-01-26 2006-07-27 Erh-Jen Hou Global internet voice communication system
US7466693B2 (en) * 2005-01-26 2008-12-16 Erh-Jen Hou Global internet voice communication system
US8296649B2 (en) 2005-05-31 2012-10-23 Sorenson Media, Inc. Method, graphical interface and computer-readable medium for generating a preview of a reformatted preview segment
US7885979B2 (en) * 2005-05-31 2011-02-08 Sorenson Media, Inc. Method, graphical interface and computer-readable medium for forming a batch job
US20060271848A1 (en) * 2005-05-31 2006-11-30 Randon Morford Method, graphical interface and computer-readable medium for reformatting data
US20060271836A1 (en) * 2005-05-31 2006-11-30 Randon Morford Method, graphical interface and computer-readable medium for generating a preview of a reformatted preview segment
US20060288294A1 (en) * 2005-05-31 2006-12-21 Bos Carlo J Method, graphical interface and computer-readable medium for forming a batch job
US7975219B2 (en) 2005-05-31 2011-07-05 Sorenson Media, Inc. Method, graphical interface and computer-readable medium for reformatting data
US20070083551A1 (en) * 2005-10-06 2007-04-12 Microsoft Corporation Extensible mechanism for object composition
US7779043B2 (en) * 2005-10-06 2010-08-17 Microsoft Corporation Extensible mechanism for object composition
US20120259936A1 (en) * 2005-12-06 2012-10-11 Microsoft Corporation Document object model api for mime
US20070130262A1 (en) * 2005-12-06 2007-06-07 Microsoft Corporation Document object model api for mime
US9071561B2 (en) * 2005-12-06 2015-06-30 Microsoft Technology Licensing, Llc Document object model API for MIME
US9819620B2 (en) 2005-12-06 2017-11-14 Microsoft Technology Licensing, Llc Document object model API for MIME
US20140052800A1 (en) * 2005-12-06 2014-02-20 Microsoft Corporation Document object model api for mime
US8214439B2 (en) * 2005-12-06 2012-07-03 Microsoft Corporation Document object model API for MIME
US8549088B2 (en) * 2005-12-06 2013-10-01 Microsoft Corporation Document object model API for MIME
US20070162468A1 (en) * 2005-12-30 2007-07-12 Ralf Dentzer Localization layer and method for delivery of change packages
US20070179776A1 (en) * 2006-01-27 2007-08-02 Xerox Corporation Linguistic user interface
US8060357B2 (en) 2006-01-27 2011-11-15 Xerox Corporation Linguistic user interface
US20070192441A1 (en) * 2006-02-11 2007-08-16 Samsung Electronics Co., Ltd. Network system based on remote user interface protocol and method of operating server and client of network system, and computer-readable medium having embodied thereon computer program for executing method of operating server and client of network system
US7797303B2 (en) 2006-02-15 2010-09-14 Xerox Corporation Natural language processing for developing queries
US20070219773A1 (en) * 2006-03-17 2007-09-20 Xerox Corporation Syntactic rule development graphical user interface
US7774198B2 (en) 2006-10-06 2010-08-10 Xerox Corporation Navigation system for text
US20080091408A1 (en) * 2006-10-06 2008-04-17 Xerox Corporation Navigation system for text
WO2008094453A1 (en) * 2007-01-26 2008-08-07 Verdasys, Inc. Ensuring trusted transactions with compromised customer machines
US20080184358A1 (en) * 2007-01-26 2008-07-31 Verdasys, Inc. Ensuring trusted transactions with compromised customer machines
US7860946B1 (en) * 2007-05-01 2010-12-28 Disintegrated Communication Systems, Llc Systems, methods, and computer-readable media for searching and concomitantly interacting with multiple information content providers, other individuals, relevant communities of individuals, and information provided over a network
US20080294423A1 (en) * 2007-05-23 2008-11-27 Xerox Corporation Informing troubleshooting sessions with device data
US7890318B2 (en) 2007-05-23 2011-02-15 Xerox Corporation Informing troubleshooting sessions with device data
US8108528B2 (en) * 2007-07-11 2012-01-31 International Business Machines Corporation System and method for verifying the identity of a chat partner during an instant messaging session
US20090019118A1 (en) * 2007-07-11 2009-01-15 Jones Doris L System and method for verifying the identity of a chat partner during an instant messaging session
US11349726B2 (en) * 2008-01-15 2022-05-31 At&T Mobility Ii Llc Systems and methods for real-time service assurance
US8630739B2 (en) * 2008-03-14 2014-01-14 Hewlett-Packard Development Company, L.P. Exergy based evaluation of an infrastructure
US20110004349A1 (en) * 2008-03-14 2011-01-06 Shah Amip J Exergy Based Evaluation Of An Infrastructure
US8762364B2 (en) * 2008-03-18 2014-06-24 Yahoo! Inc. Personalizing sponsored search advertising layout using user behavior history
US20090240677A1 (en) * 2008-03-18 2009-09-24 Rajesh Parekh Personalizing Sponsored Search Advertising Layout using User Behavior History
US20100122196A1 (en) * 2008-05-13 2010-05-13 Michael Wetzer Apparatus and methods for interacting with multiple information forms across multiple types of computing devices
US8751948B2 (en) 2008-05-13 2014-06-10 Cyandia, Inc. Methods, apparatus and systems for providing and monitoring secure information via multiple authorized channels and generating alerts relating to same
US8578285B2 (en) 2008-05-13 2013-11-05 Cyandia, Inc. Methods, apparatus and systems for providing secure information via multiple authorized channels to authenticated users and user devices
US8595641B2 (en) 2008-05-13 2013-11-26 Cyandia, Inc. Methods, apparatus and systems for displaying and/or facilitating interaction with secure information via channel grid framework
US8499250B2 (en) * 2008-05-13 2013-07-30 Cyandia, Inc. Apparatus and methods for interacting with multiple information forms across multiple types of computing devices
US8832576B2 (en) 2008-05-13 2014-09-09 Cyandia, Inc. Methods, apparatus and systems for authenticating users and user devices to receive secure information via multiple authorized channels
US20120109748A1 (en) * 2008-09-30 2012-05-03 Cvon Innovations Ltd System and method for presenting content to consumers
US9824071B2 (en) * 2008-12-03 2017-11-21 Microsoft Technology Licensing, Llc Viewing messages and message attachments in different languages
US20100138212A1 (en) * 2008-12-03 2010-06-03 Microsoft Corporation Viewing messages and message attachments in different languages
US10574557B2 (en) * 2009-02-02 2020-02-25 Level 3 Communications, Llc Analysis of network traffic
US10944662B2 (en) 2009-02-02 2021-03-09 Level 3 Communications, Llc Bypass detection analysis of network traffic to determine transceiving of network traffic via peer networks
US20150039755A1 (en) * 2009-02-02 2015-02-05 Level 3 Communications, Llc Analysis of network traffic
US11206203B2 (en) 2009-02-02 2021-12-21 Level 3 Communications, Llc Bypass detection analysis of secondary network traffic
US9654368B2 (en) 2009-02-02 2017-05-16 Level 3 Communications, Llc Network cost analysis
US20100205529A1 (en) * 2009-02-09 2010-08-12 Emma Noya Butin Device, system, and method for creating interactive guidance with execution of operations
US9569231B2 (en) * 2009-02-09 2017-02-14 Kryon Systems Ltd. Device, system, and method for providing interactive guidance with execution of operations
US20100205530A1 (en) * 2009-02-09 2010-08-12 Emma Noya Butin Device, system, and method for providing interactive guidance with execution of operations
US20100287515A1 (en) * 2009-05-06 2010-11-11 International Business Machines, Corporation interactive checker in a layout editor
US9674295B2 (en) * 2009-05-19 2017-06-06 Virtual World Computing, Llc Methods for establishing and using a transaction-specific, browser-specific debit card
US20110055047A1 (en) * 2009-05-19 2011-03-03 Fox Brian J Integrated identity and financial fraud protection and proxy services delivery system and method
US20150350223A1 (en) * 2009-05-27 2015-12-03 Zambala Lllp System and method for facilitating user interaction with a simulated object associated with a physical location
US20100302143A1 (en) * 2009-05-27 2010-12-02 Lucid Ventures, Inc. System and method for control of a simulated object that is associated with a physical location in the real world environment
US20100306825A1 (en) * 2009-05-27 2010-12-02 Lucid Ventures, Inc. System and method for facilitating user interaction with a simulated object associated with a physical location
US11765175B2 (en) 2009-05-27 2023-09-19 Samsung Electronics Co., Ltd. System and method for facilitating user interaction with a simulated object associated with a physical location
US10855683B2 (en) * 2009-05-27 2020-12-01 Samsung Electronics Co., Ltd. System and method for facilitating user interaction with a simulated object associated with a physical location
US8745494B2 (en) 2009-05-27 2014-06-03 Zambala Lllp System and method for control of a simulated object that is associated with a physical location in the real world environment
US20110047514A1 (en) * 2009-08-24 2011-02-24 Emma Butin Recording display-independent computerized guidance
US9405558B2 (en) 2009-08-24 2016-08-02 Kryon Systems Ltd. Display-independent computerized guidance
US8918739B2 (en) 2009-08-24 2014-12-23 Kryon Systems Ltd. Display-independent recognition of graphical user interface control
US20110047488A1 (en) * 2009-08-24 2011-02-24 Emma Butin Display-independent recognition of graphical user interface control
US9098313B2 (en) 2009-08-24 2015-08-04 Kryon Systems Ltd. Recording display-independent computerized guidance
US20110047462A1 (en) * 2009-08-24 2011-02-24 Emma Butin Display-independent computerized guidance
US9703462B2 (en) 2009-08-24 2017-07-11 Kryon Systems Ltd. Display-independent recognition of graphical user interface control
US9767271B2 (en) 2010-07-15 2017-09-19 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
US10083242B2 (en) * 2010-07-30 2018-09-25 International Business Machines Corporation System and method for data-driven web page navigation control
US8819726B2 (en) 2010-10-14 2014-08-26 Cyandia, Inc. Methods, apparatus, and systems for presenting television programming and related information
US20150019959A1 (en) * 2011-12-31 2015-01-15 Beijing Founder Electronics Co., Ltd Method and apparatus for bidirectional typesetting
US9613005B2 (en) * 2011-12-31 2017-04-04 Peking University Founder Group Co., Ltd. Method and apparatus for bidirectional typesetting
US10388070B2 (en) 2012-05-01 2019-08-20 Samsung Electronics Co., Ltd. System and method for selecting targets in an augmented reality environment
US10127735B2 (en) 2012-05-01 2018-11-13 Augmented Reality Holdings 2, Llc System, method and apparatus of eye tracking or gaze detection applications including facilitating action on or interaction with a simulated object
US10878636B2 (en) 2012-05-01 2020-12-29 Samsung Electronics Co., Ltd. System and method for selecting targets in an augmented reality environment
US11417066B2 (en) 2012-05-01 2022-08-16 Samsung Electronics Co., Ltd. System and method for selecting targets in an augmented reality environment
US9767284B2 (en) 2012-09-14 2017-09-19 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
US9552495B2 (en) 2012-10-01 2017-01-24 The Research Foundation For The State University Of New York System and method for security and privacy aware virtual machine checkpointing
US10324795B2 (en) 2012-10-01 2019-06-18 The Research Foundation for the State University o System and method for security and privacy aware virtual machine checkpointing
US9069782B2 (en) 2012-10-01 2015-06-30 The Research Foundation For The State University Of New York System and method for security and privacy aware virtual machine checkpointing
US20150215357A1 (en) * 2012-10-09 2015-07-30 Tencent Technology (Shenzhen) Company Limited Video playing method and apparatus
US20140185950A1 (en) * 2012-12-28 2014-07-03 Microsoft Corporation Progressive entropy encoding
US20150026660A1 (en) * 2013-07-16 2015-01-22 Software Ag Methods for building application intelligence into event driven applications through usage learning, and systems supporting such applications
US9405531B2 (en) * 2013-07-16 2016-08-02 Software Ag Methods for building application intelligence into event driven applications through usage learning, and systems supporting such applications
US20150249720A1 (en) * 2014-03-03 2015-09-03 Airpush, Inc. In-app content channel
US11283697B1 (en) 2015-03-24 2022-03-22 Vmware, Inc. Scalable real time metrics management
US20180196578A1 (en) * 2015-07-21 2018-07-12 Zte Corporation Method and Device for Identifying Java Window Control
US10594562B1 (en) 2015-08-25 2020-03-17 Vmware, Inc. Intelligent autoscale of services
US11411825B2 (en) 2015-08-25 2022-08-09 Vmware, Inc. In intelligent autoscale of services
US10313211B1 (en) * 2015-08-25 2019-06-04 Avi Networks Distributed network service risk monitoring and scoring
CN105224442A (en) * 2015-09-24 2016-01-06 浪潮电子信息产业股份有限公司 A kind of multi-client shared-file system performance test methods
US10845950B2 (en) * 2015-12-17 2020-11-24 Microsoft Technology Licensing, Llc Web browser extension
US20170177171A1 (en) * 2015-12-17 2017-06-22 Microsoft Technology Licensing, Llc Web browser extension
US10693734B2 (en) 2016-03-04 2020-06-23 Vmware, Inc. Traffic pattern detection and presentation in container-based cloud computing architecture
US10931548B1 (en) 2016-03-28 2021-02-23 Vmware, Inc. Collecting health monitoring data pertaining to an application from a selected set of service engines
US10454808B2 (en) 2016-03-29 2019-10-22 Hong Kong Telecommunications (HTK) Limited Managing physical network cross-connects in a datacenter
WO2017172960A1 (en) * 2016-03-29 2017-10-05 Console Connect Inc. Managing physical network cross-connects in a datacenter
US10712915B2 (en) 2016-06-08 2020-07-14 Alibaba Group Holding Limited Information presentation using a client on a terminal
US10936829B2 (en) * 2016-06-21 2021-03-02 EMC IP Holding Company LLC Method and device for processing a multi-language text
US20170364510A1 (en) * 2016-06-21 2017-12-21 EMC IP Holding Company LLC Method and device for processing a multi-language text
US11763102B2 (en) 2016-06-21 2023-09-19 EMC IP Holding Company, LLC Method and device for processing a multi-language text
US11256912B2 (en) * 2016-11-16 2022-02-22 Switch, Inc. Electronic form identification using spatial information
US11816143B2 (en) * 2017-07-18 2023-11-14 Ebay Inc. Integrated image system based on image search feature
US10795906B1 (en) * 2017-12-14 2020-10-06 Hostbridge Technology, Llc Transaction tracking
US10999168B1 (en) 2018-05-30 2021-05-04 Vmware, Inc. User defined custom metrics
US11171849B2 (en) 2018-10-26 2021-11-09 Vmware, Inc. Collecting samples hierarchically in a datacenter
US11736372B2 (en) 2018-10-26 2023-08-22 Vmware, Inc. Collecting samples hierarchically in a datacenter
US11044180B2 (en) 2018-10-26 2021-06-22 Vmware, Inc. Collecting samples hierarchically in a datacenter
US20220111852A1 (en) * 2019-02-07 2022-04-14 2 Circle, Inc. Reconstruction and assessment of proficiency in an integrated debrief by a server in a network
US11582120B2 (en) 2019-05-30 2023-02-14 Vmware, Inc. Partitioning health monitoring in a global server load balancing system
US11290358B2 (en) 2019-05-30 2022-03-29 Vmware, Inc. Partitioning health monitoring in a global server load balancing system
US11909612B2 (en) 2019-05-30 2024-02-20 VMware LLC Partitioning health monitoring in a global server load balancing system
US11811861B2 (en) 2021-05-17 2023-11-07 Vmware, Inc. Dynamically updating load balancing criteria
US11792155B2 (en) 2021-06-14 2023-10-17 Vmware, Inc. Method and apparatus for enhanced client persistence in multi-site GSLB deployments
US11799824B2 (en) 2021-06-14 2023-10-24 Vmware, Inc. Method and apparatus for enhanced client persistence in multi-site GSLB deployments
CN113612735A (en) * 2021-07-15 2021-11-05 中国联合网络通信集团有限公司 Secure storage system
US20230031004A1 (en) * 2021-07-30 2023-02-02 Cisco Technology, Inc. Byte code monitoring to avoid certificate-based outages

Also Published As

Publication number Publication date
US7447736B2 (en) 2008-11-04
US6763376B1 (en) 2004-07-13

Similar Documents

Publication Publication Date Title
US20050172018A1 (en) Integrated customer interface system for communications network management
US7543299B2 (en) Creating web services programs from other web services programs
US6477665B1 (en) System, method, and article of manufacture for environment services patterns in a netcentic environment
US6332163B1 (en) Method for providing communication services over a computer network system
US6289382B1 (en) System, method and article of manufacture for a globally addressable interface in a communication services patterns environment
US6640249B1 (en) Presentation services patterns in a netcentric environment
US6601234B1 (en) Attribute dictionary in a business logic services environment
US6640238B1 (en) Activity component in a presentation services patterns environment
US6550057B1 (en) Piecemeal retrieval in an information services patterns environment
US6339832B1 (en) Exception response table in environment services patterns
US6636242B2 (en) View configurer in a presentation services patterns environment
US6539396B1 (en) Multi-object identifier system and method for information service pattern environment
US6434628B1 (en) Common interface for handling exception interface name with additional prefix and suffix for handling exceptions in environment services patterns
US6615199B1 (en) Abstraction factory in a base services pattern environment
US6615253B1 (en) Efficient server side data retrieval for execution of client side applications
US6715145B1 (en) Processing pipeline in a base services pattern environment
US6742015B1 (en) Base services patterns in a netcentric environment
US6640244B1 (en) Request batcher in a transaction services patterns environment
US6442748B1 (en) System, method and article of manufacture for a persistent state and persistent object separator in an information services patterns environment
US6529909B1 (en) Method for translating an object attribute converter in an information services patterns environment
US6571282B1 (en) Block-based communication in a communication services patterns environment
US6477580B1 (en) Self-described stream in a communication services patterns environment
US6601192B1 (en) Assertion component in environment services patterns
US6496850B1 (en) Clean-up of orphaned server contexts
US6549949B1 (en) Fixed format stream in a communication services patterns environment

Legal Events

Date Code Title Description
FPAY Fee payment

Year of fee payment: 4

AS Assignment

Owner name: MCI, INC., VIRGINIA

Free format text: MERGER;ASSIGNOR:WORLDCOM, INC.;REEL/FRAME:032632/0446

Effective date: 20040420

Owner name: VERIZON BUSINESS GLOBAL LLC, VIRGINIA

Free format text: CHANGE OF NAME;ASSIGNOR:MCI, LLC;REEL/FRAME:032632/0404

Effective date: 20061120

Owner name: MCI, LLC, VIRGINIA

Free format text: MERGER;ASSIGNOR:MCI, INC.;REEL/FRAME:032632/0244

Effective date: 20060106

AS Assignment

Owner name: VERIZON PATENT AND LICENSING INC., NEW JERSEY

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MCI COMMUNICATIONS CORPORATION;REEL/FRAME:032725/0001

Effective date: 20140409

Owner name: VERIZON PATENT AND LICENSING INC., NEW JERSEY

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:VERIZON BUSINESS GLOBAL LLC;REEL/FRAME:032734/0502

Effective date: 20140409

AS Assignment

Owner name: VERIZON PATENT AND LICENSING INC., NEW JERSEY

Free format text: CORRECTIVE ASSIGNMENT TO REMOVE THE PATENT NUMBER 5,835,907 PREVIOUSLY RECORDED ON REEL 032725 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT;ASSIGNOR:MCI COMMUNICATIONS CORPORATION;REEL/FRAME:033408/0235

Effective date: 20140409

REMI Maintenance fee reminder mailed
LAPS Lapse for failure to pay maintenance fees
STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20161104

AS Assignment

Owner name: VERIZON PATENT AND LICENSING INC., NEW JERSEY

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 032734 FRAME: 0502. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT;ASSIGNOR:VERIZON BUSINESS GLOBAL LLC;REEL/FRAME:044626/0088

Effective date: 20140409