Web Architectures. Goal of Architecture Design. Architecture Design. Single Server Configuration. All basic components installed on same machine

Similar documents
AURAL INTERFACES TO DATABASES BASED ON VOICEXML

Special Lecture (406) Spoken Language Dialog Systems VoiceXML: Dialogs, Forms and Fields

Web Engineering. Introduction. Husni

Pervasive Web Application Architecture. History Scalability Availability Development Application Architecture

A NOVEL MECHANISM FOR MEDIA RESOURCE CONTROL IN SIP MOBILE NETWORKS

Speech Applications. How do they work?

Introducing Cisco Unified MeetingPlace Web Conferencing

Chapter 10 Web-based Information Systems

Human Interaction Container Paradigm

Test On Line: reusing SAS code in WEB applications Author: Carlo Ramella TXT e-solutions

The SAP Internet Programming Model, Part 1

Java Framework for Database-Centric Web Site Engineering

Web Serving Architectures

White Paper Subcategory. Overview of XML Communication Technologies

13. Databases on the Web

X100 ARCHITECTURE REFERENCES:

SR Telephony Applications. Designing Speech-Only User Interfaces

BlackBerry Enterprise Server for IBM Lotus Domino Version: 5.0. Feature and Technical Overview

VoiceXML. Installation and Configuration Guide. Interactive Intelligence Customer Interaction Center (CIC) Version 2016 R4

VClarity Voice Platform

Back-end Avaya Aura Experience Portal and SIP-enabled Avaya Contact Center Select using a Play and Collect sample application

BlackBerry Enterprise Server for Microsoft Exchange Version: 5.0. Feature and Technical Overview

VMware Mirage Getting Started Guide

SurVo. Stepping Through the Basics. Version 2.0

Oracle9i Application Server Architecture and Com

Introducing Cisco Unified MeetingPlace Web Conferencing

Special Lecture (406) Spoken Language Dialog Systems Introduction to VoiceXML

Computational Web Portals. Tomasz Haupt Mississippi State University

CMPE 151: Network Administration. Servers

About Unified IP IVR. Product names. Summary description of Unified IP IVR. This chapter contains the following:

Abstract. Avaya Solution & Interoperability Test Lab

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

Factsheet of Public Services Infrastructure (PSi) Updated on: 1st Sep 03

Chapter 2 FEATURES AND FACILITIES. SYS-ED/ Computer Education Techniques, Inc.

Policy Settings for Windows Server 2003 (including SP1) and Windows XP (including SP2)

Oracle Application Server Discoverer

Hosted Fax Mail. Blue Platform. User Guide

Qlik Sense Enterprise architecture and scalability

WAP-Speech: Deriving Synergy between WAP and the Spoken Dialog Interface

Introducing the VoiceXML Server

Voice Foundation Classes

A Technical Overview of the Lucent Managed Firewall

ICOM 5016 Database Systems. Database Users. User Interfaces and Tools. Chapter 8: Application Design and Development.

KINGS COLLEGE OF ENGINEERING 1

Version 2.6. SurVo Advanced User s Guide

INTRODUCTION TO VOICEXML FOR DISTRIBUTED WEB-BASED APPLICATIONS

20480C: Programming in HTML5 with JavaScript and CSS3. Course Code: 20480C; Duration: 5 days; Instructor-led. JavaScript code.

Five9 Plus Adapter for Agent Desktop Toolkit

Telephone Interface for Avalanche Warnings based on Information Server for Adaptable Content Delivery

Cisco Unified Customer Voice Portal 9.0

Distributed telecommunications network access using the TMOS IntraWeb Gateway

Oracle E-Business Suite 11i with Cisco ACE Series Application Control Engine Deployment Guide, Version 1.0

Course Content. Outline of Lecture 10. Objectives of Lecture 10 DBMS & WWW. CMPUT 499: DBMS and WWW. Dr. Osmar R. Zaïane. University of Alberta 4

ITM DEVELOPMENT (ITMD)

XML ALONE IS NOT SUFFICIENT FOR EFFECTIVE WEBEDI

As you learned in Chapter 1, the architectural variations you can construct using

Managing Oracle9iAS Forms Services Using Oracle Enterprise Manager. An Oracle White Paper April 2002

FIREFLY ARCHITECTURE: CO-BROWSING AT SCALE FOR THE ENTERPRISE

Second OMG Workshop on Web Services Modeling. Easy Development of Scalable Web Services Based on Model-Driven Process Management

Back-end Avaya Aura Experience Portal and SIP-enabled Avaya Aura Contact Center using Context Creation

Category: Standards Track October 2009

COURSE DETAILS: CORE AND ADVANCE JAVA Core Java

to-end Solution Using OWB and JDeveloper to Analyze Your Data Warehouse

Extended Search Administration

Meltem Özturan misprivate.boun.edu.tr/ozturan/mis515

Position Statement for Multi-Modal Access

3C05 - Advanced Software Engineering Thursday, April 29, 2004

ATTENDANT USER GUIDE

Version 2.7. Audio File Maintenance Advanced User s Guide

Etanova Enterprise Solutions

Niusha, the first Persian speech-enabled IVR platform

SERIES Q: SWITCHING AND SIGNALLING Signalling requirements and protocols for the NGN Service and session control protocols supplementary services

M.SARAVANA KARTHIKEYAN

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc.

QuickSpecs. Compaq NonStop Transaction Server for Java Solution. Models. Introduction. Creating a state-of-the-art transactional Java environment

Introduction to Information Systems

Active Server Pages Architecture

1 Modular architecture

Unified CVP Architecture Overview

COMPAS ID Author: Jack Barnard TECHNICAL MEMORANDUM

An Approach to VoiceXML Application Modeling

HTTP 1.1 Web Server and Client

Firewalls 1. Firewalls. Alexander Khodenko

Refresher: Lifecycle models. Lecture 22: Moving into Design. Analysis vs. Design. Refresher: different worlds. Analysis vs. Design.

Workspace ONE UEM Certificate Authentication for EAS with ADCS. VMware Workspace ONE UEM 1902

CHAPTER 7 WEB SERVERS AND WEB BROWSERS

Technical Overview. Access control lists define the users, groups, and roles that can access content as well as the operations that can be performed.

More on Testing and Large Scale Web Apps

Web Engineering (CC 552)

System Architecture and Reporting

Coveo Platform 6.5. Microsoft SharePoint Connector Guide

PRIMIX SOLUTIONS. Core Labs. Tapestry : Java Web Components Whitepaper

Getting Started with VMware View View 3.1

06/02/ Local & Metropolitan Area Networks 0. INTRODUCTION. 1. History and Future of TCP/IP ACOE322

CMP 436/774. Introduction to Java Enterprise Edition. Java Enterprise Edition

Distributed Multitiered Application

Oracle Fusion Middleware 11g: Build Applications with ADF I

ER/Studio Enterprise Portal Evaluation Guide. Published: March 6, 2009

Send me up to 5 good questions in your opinion, I ll use top ones Via direct message at slack. Can be a group effort. Try to add some explanation.

Dialog Designer Call Flow Elements

Transcription:

Goal of Architecture Design Web Architectures Performance application must sustain expected workload (max no of concurrent users, no page requests per unit of time, max time for delivering web page to client) Scalability Architecture Design Supporting Multi-Channel Access VoiceXML architecture must be extensible to support workload increases Availability effects of failures should be minimised State Maintenance user interaction state preserved even if appln distributed and failure occurs Security info hosted in data tier and transmitted to users must be protected; users granted access to only that data and services they are entitled to 05.04.2012 3 Architecture Design Single Server Configuration Choice of hardware, network and software components to find a mix that All basic components installed on same machine best meets application requirements respects technical and economic project constraints Web applications rely on many different technical ingredients protocols, languages, software systems, which do not always fit well together and hence this can be a complex task that requires mastery of a large spectrum of problems and solutions Technical objectives include performance, scalability, availability, state preservation, security client (browser) router/firewall Host 1 web server program execution engine database We will examine increasingly sophisticated architectures Intranet 05.04.2012 2 05.04.2012 4 4 1

Single Server Configuration Separate Database Server Configuration... Performance limited by fact that script engine and DBMS both memory and CPU-intensive and hence conflict in terms of use of machine resources Scaling requires adding power to server maximum scalability bound by hardware architecture Security major concern as access to web server also means direct access to database Low cost and simple Only suitable for small, non-critical web applications Provided by many low-end web hosting services May also be used for intranet Physical separation of database and web server permits more adequate choice and configuration of server machines Security significantly improved second firewall can be added to insulate data tier from web tier inner firewall may disallow requests, only allowing database requests to pass Replication and parallelism can be exploited to improve scalability and availability vertical cloning multiple processors/processes dedicated to applns on single server horizontal cloning entire servers replicated 05.04.2012 5 05.04.2012 7 Separate Database Server Configuration Replicated Web Server Configuration web server + engine 1 Host 1 Host 2 client (browser) router/firewall web server program execution engine firewall database server client (browser) S router/ firewall/ load balancer S web server + engine 2 firewall database server Demilitarized Zone (DMZ) Intranet web server + engine 3 (secure) Demilitarized Zone (DMZ) Intranet 05.04.2012 6 05.04.2012 8 2

Replicated Web Server Configuration... Separation of Web Server & Scripting Engine... Router/firewall acts as network dispatcher distributing incoming requests to different web servers to balance workload May further improve security of data transmission by introducing a server for secure which can handle encrypted data having separate S server doesn t slow down normal requests Note that in a replicated web server architecture, it can no longer be assumed that a single server manages user interaction state information load balancer ensures all requests associated with a session are dispatched to same server (sticky sessions) also providing failure-proof session management 05.04.2012 9 To further improve scalability and fault-tolerance, we can separate web server and scripting engines web server receives requests, delivers static HTML documents and routes requests for dynamically generated documents to script engine script engine executes server side programs which may in turn generate requests to database Cloning can be applied separately to web servers and scripting engines normally processing on script engines heavier than server so may require more scripting engines Introduces two levels of load balancing one across servers and one across script engines As ever, increase in communication overheads introduced by separation should be compensated by performance gains 05.04.2012 11 Separation of Web Server and Scripting Engine Application Servers Large-scale web applications for e-business must ensure high levels of availability, security and scalability S web server 1 engine 1 Application servers are software platforms, distinct from the web server, dedicated to the efficient execution of business components Advantages client (browser) router/ firewall/ load balancer S web server 2 engine 2 firewall database server separates business logic into dedicated sub-tier fosters development of re-usable business objects web server 3 (secure) engine 3 objects hosted in application server can be called by page templates in middle tier or by non-web applications distributed across enterprise (enterprise application integration) Demilitarized Zone (DMZ) Intranet 05.04.2012 10 05.04.2012 12 3

Configuration with Application Server Web Interfaces to Databases Intranet/ Extranet (non-) requests After the introduction of the web, it was considered to be useful to provide access to databases through the web client (browser) S router/ firewall/ load balancer S web server 1 web server 2 web server 3 (secure) DMZ1 engine 1 engine 2 engine 3 firewall application server application server application server DMZ2 firewall Intranet database server This could take several forms depending on purpose and technologies Developing web sites where the content was based on database content recognition that many web sites were data intensive and involved publishing database content use of a database to manage content and ensure consistency of not only content but also presentation Database designers and developers being able to access databases through the web using web infrastructure as a way to provide a relatively quick and easy way to develop application interfaces 05.04.2012 13 05.04.2012 15 Review of Technologies through a history of GlobIS Research OMS Contacts Database OMS Web OMS OMS personal web assistant Web-based OMS database developer Client-side databases XIMA 05.04.2012 14 05.04.2012 16 4

OMS Web and OMS OMS Web These were both systems developed to provide generic web browsers for OMS databases required general means of mapping OMS objects to web browser representations objects / HTML associations (links/relationships between objects) Web Browser collections of objects navigation based on selection from collections CGI gateway Web Server associations between objects developed general markup language to represent database objects values metadata general classes for generating HTML from OMS results Java Appln OMS queries/results OMS Database Stored HTML (OMS images/ OMS Web images) difference in terms of architecture 05.04.2012 17 05.04.2012 19 OMS Web OMS General object browser for OMS databases on-line demonstrations generic HTML browser for OMS databases student exercises browsing & querying databases Improved performance established connections rather than server-side caching client-side caching 05.04.2012 18 05.04.2012 20 5

OMS Personal Assistant Improved performance for regular users Installed local personal assistant User access profiles Persistent client cache Prefetching of objects Disconnected access to objects 05.04.2012 21 05.04.2012 23 Client-Side Processing Personal Assistant Cache Structure Java Applet Application Logic Personal Assistant Cache Persistent Client Cache Web Browser Socket Streams / Session Cache query results images Short-Term Cache Standardised Protocols Web Server Personal Cache query results images Explicit User Specified Objects JDBC Driver Customised Protocols Database Logic Database Prefetching Cache query results images User Profile & Predictive Cache 05.04.2012 22 05.04.2012 24 6

Prefetching Cache Statistics OMS Web Browser LRUB-Cache (fixed size)...... query 1 query 2 query n 1 Front End Agent Memory Cache statistic next query 1 statistic next query 1 statistic next query 1 2 Personal Assistant 3 Client Cache next query 2 next query 2 next query 2 next query 3.... next query 3.... next query 3.... LRUB-Cache (fixed size) Server Database Agent Global Cache next query n next query n next query n OMS Database 05.04.2012 25 05.04.2012 27 Personal Assistant Administration Tools From Personal Assistant to Web Proxy Server The basic prefetching cache mechanisms could also be applied to general web caching and a proxy server was developed based on these mechanisms cache statistic records information about page accesses given one request proxy can predict the next most likely requests proxy already sends requests for these objects thereby prefetching pages fully dynamic requires no analysis of HTML pages fetch size of 3 works reasonably well 05.04.2012 26 05.04.2012 28 7

OMS Developer Tool Web Database Components Support the design & prototyping of databases on the web extend protocols for all OMS languages AQL, DDL, DML, OPL, API re-implementation of graphical editors in Java Swing web-based presentation editor Development process initially use default presentation provided by generic browser then refine it by graphically changing Web Browser Java Applet Database Components Web Server Client Technical challenges browser interaction security restrictions browser incompatibilities dynamic, temporary nature of client-server relationship view on objects (remove certain labels/attributes) layout of objects presentation of objects (colours/fonts) Database Server 05.04.2012 29 05.04.2012 31 Web Scientific Information Systems Data collection, analysis & processing support application experts rather than computer experts data validation tools investigative querying integration of analysis tools Applications medical quality management regional avalanche forecasting analysis of land-mine data 05.04.2012 30 05.04.2012 32 8

Intelligent Querying Interfaces Initial Version Query formulation without Information States Blackboard knowledge of database technologies knowledge of database structures knowledge of data encodings Client-Side Processing Very High Communication Costs Metadata driven querying metadatabase of application and database concepts Server-Side Processing Server query construction driven by interaction with metadatabase MDDQL Interpreter and Transformer Metadata Application Data 05.04.2012 33 05.04.2012 35 Later Version Information States Blackboard Client-Side Processing MDDQL Interpreter and Transformer Metadata OMS Java Lightweight Mobile Database Server-Side Processing Server Application Data 05.04.2012 34 05.04.2012 36 9

XIMA Framework for Multi-Channel Access Why Voice Interfaces? Trend for ubiquitous information services, but small screens, keyboards etc are clumsy to use HTML Browser WML Browser VoiceXML Browser Necessity of hand-free interfaces e.g. driving, machine operation Main Entry Servlet Delegation HTML Servlet WML Servlet VoiceXML Servlet XML + XSLT Response Interfaces for visually impaired users Access by normal phones requires no new devices or installation effort XML Server Builds XML based on JDOM Improvements in speech recognition and text-to-speech synthesis make voice interfaces feasible OMS Java API OMS Java Workspace 05.04.2012 37 05.04.2012 39 Adding voice interfaces to XIMA VoiceXML Application of XML (Standard VoiceXML 2.0) HTML Browser WML Browser VoiceXML Browser generating VoiceXML from XML using XSLT Designed for creating audio dialogs Facilitates the development of interactive voice response applications Main Entry Servlet Based on web technologies Delegation HTML Servlet WML Servlet VoiceXML Servlet XML + XSLT Response Can share information infrastructure of visual interfaces Can develop more flexible and user friendly call services XML Server Builds XML based on JDOM Various VoiceXML outsourcers (voice portals) will host the speech processing system and telephony equipment OMS Java API OMS Java Workspace 05.04.2012 38 05.04.2012 40 10

Scope of VoiceXML Basic Concepts Output synthesised speech (TTS) audio files Input Recognition & recording of spoken input recognition of Dual Tone Multifrequency (DTMF) input Telephony features (e.g. call transfer, disconnect) dialog conversational state each dialog is either a form or a menu form interaction that collects values for field item variables menu presents user with a choice of options transition to next dialog based on choice 05.04.2012 41 05.04.2012 43 Voice Components Example dialogue 1 Voice Infrastructure is often provided by Voice Portals. If only voice output is needed, servers can used that only provide Text-to-Speech Welcome to the weather information service. What state? Help Please say the state for which you want the weather. California Voice Input Speech Speech Recogniser Converts voice input into text Text Language Analyser Extracts meaning from text Meaning VoiceXML Scope Application Server Gets data (text) from database Text Speech Synthesiser Generates speech output Voice Output Speech What city? Globis I did not understand what you said. What city? Los Angeles Speech model Grammar Application database Pronounciation rules The conditions in Los Angeles California are sunny and clear. 05.04.2012 42 05.04.2012 44 11

Forms Prompt counts <form id="weather_info"> <block> Welcome to the weather information service </block> <field name="state"> <prompt> What state? </prompt> <grammar src="state.gram" /> <catch event="help"> Please say the state for which you want the weather. </catch> </field> <field name="city"> <prompt> What city? </prompt> <grammar src="city.gram" /> </field> <block> <submit next="/servlet/weather" namelist="city state" /> </block> </form> <form id="get_card_info"> <block> We now need your credit card type. </block> <field name="card_type"> <prompt count="1"> What kind of credit card do you have? </prompt> <prompt count="2"> Type of card? </prompt> <grammar> visa {visa} master [card] {mastercard} amex {amex} american [express] {amex} </grammar> <help> Please say Visa, Mastercard or American Express. </help> </field> </form> 05.04.2012 45 05.04.2012 47 Example dialogue 2 We now need your credit card type. What kind of credit card do you have? blabla I did not understand what you said. Type of card? Help Please say Visa, Master card or American Express. Eh, Amex What is your card number? collections The database contains the following # collections Choose a collection Collection 'name' contains #M Would you like to list the members or go back? Collection 'name' contains the following # members Choose one of the members The database contains #Collections #Associations Would you like to go to the collections, to the associations, directly to an object or back to the main menu? associations The database contains the following # associations Choose an association Association 'name' contains #A Would you like to list the members or go back? Association 'name' contains the following # associations Choose a 'domaintype' or a 'rangetype' or say back objects Object 'oid' is dressed with type 'type' and currently viewed as type 'type'. It contains #Attr, #Links, #Methods The object contains the following # attributes Would you like to hear the attributes, the links or the methods, change the type or go back? You can choose among the following links Choose a link or say back You can choose among the following methods Choose a method or say back The result of the method is Result The database contains #Objects Choose an object or say back You can view the object as the following types Choose one of the types or say back 05.04.2012 46 05.04.2012 48 12

Design Phase Liberal yes/no grammar Define the required functionality User analysis motivation, expertise High level decisions full-duplex (barge-in) simple grammars (dynamic) synthesised speech (TTS) and pre-recorded speech a yes/no response may allow for yes/yeah/sure/ok/correct/right yes, that's right/ yes it is/ yes I do /... no/nope/incorrect/wrong no way/ no it isn't/ no it's not/ no I don't... Information flow Dialog design 05.04.2012 49 05.04.2012 51 Comments to Design Recognition problems elimination of similar sounding words from the grammar Next Lecture addition of optional words to the grammar (e.g. "please") Sufficient help functionality consider introduction of prompt-specific help instead of always active command list Web 2.0 Immediate feedback after input has been processed ("OK" prompt) 05.04.2012 50 13