1.17k likes | 1.19k Views
Learn about BroadVision—an application development framework for building secure, scalable, and flexible web solutions. Discover components, architecture, and benefits.
E N D
BroadVision 4.0 Ganesh Siddhamalli http://gsspageat.webjump.com
Agenda • Introduction and Overview • BV Component - I • BV Component - II • BV Database • Targeted Content
Pre-requisites • UNIX • C++ • Javascript • Basic OO A & D • Basics of RDBMS • CORBA • Basics of Web Architecture • HTTP • CGI • HTML
What is BV ? • System designed for Rapid Application Development and Real Time operation of large web based business solutions. • High Transaction volumes and can easily integrated with existing systems. • Application Server + Framework + Application Development Environment. • Can Build Applications that are Secure, Powerful, Scalable and Flexible.
What is one-to-one • Marketing Model • 1-1 focuses on the individual and tailors the marketing to individual’s interest and need. • The content displayed to a user can be individualized based on pre-defined rules. • These rules use the user profile or the previous visit history of the user.
BV - Web Apps • Pre-built web application frameworks that can be customized to the needs. • Commerce Web App • Financial Web App • Knowledge Web App • Commerce Web App is the most mature.
BV - Commerce Web • Personalization • Observed Info • Stated Info(Profile) • Transaction Info • Matching • Shopping • Anonymous & Registered • Shopping Cart • Shopping List : Shared, Personal • Search : Parametric, text, category
BV - Commerce Web (..Contd) • Marketing, promotions, incentives • Discussion Groups • Alerts : Web, email & more • Transactions • Order management • Payment Processing • Pricing, shipping, handling, tax • Security • APIs
BV - Commerce Web (..Contd) • Administration/ Tools • Content Administration • Reporting • Rules Administration • Template Creation • User Administration
BV - Financial Web • Core Banking transactions • Bill Payment • Adapter to Checkfree’s remittance Pipeline Processing(RPP) engine for payment processing • Download data into Quicken, spreadsheets • Alerts & Stock Quotes • Customer Service • Financial Server • Sample Application
BV - Financial Web • Core Banking transactions • Bill Payment • Adapter to Checkfree’s remittance Pipeline Processing(RPP) engine for payment processing • Download data into Quicken, spreadsheets • Alerts & Stock Quotes • Customer Service • Financial Server • Sample Application
BV Component Architecture CR CI External Services JS • JavaScript Layer • allows BV components to be used in pages • Component Reference Layer • passes messages between JS Layer and implementation • Component Implementation Layer • does the heavy lifting
Benefits of BV Comp. Arch. • Abstraction • separation between application logic (scripts) and implementation (components) • Portability • scripts are portable across platforms • Performance • can architect distribution of app logic between scripts and components to optimize performance
Benefits of BV Comp. Arch. (..contd) • Productivity • Component developers, script developers and GUI designers can each do their own thing. • Scalability • can add components without distributing existing system
BV Arch - Components • Components are standalone entities • Components may be very light, or may represent an entire vertical slice of your system • Components may run in several different environments … interfaces are key
BV Built-in Components • System • Process • Similar to Application Variable • BV stores the process data • Control Info. • Session • Logging • Logs only BV Logs • Request • Response • Error Handling
BV Built-in Components • Application • Visitor • Will help to log as who, when logs to BV • Content • to create dynamic web pages • Observation • can use 3rd party Report generators • Search • Text, Content-base search • Alert • Email - HTTP Content - MIME type
Script Pre-processor JSP Files Browser Interaction Manager with Embedded Javascript Engine Script Cache HTTP Server • Browser • Visitor Point of Contact with site HTTP Server Shared library of Components Supporting Files & Tools Component Interface File Component Interface Compiler One - to-One Server Dynamic Command Center C++ Component Files C++ Compiler DB
Script Pre-processor JSP Files Browser Interaction Manager with Embedded Javascript Engine Script Cache HTTP Server Shared library of Components Supporting Files & Tools Component Interface File Component Interface Compiler One - to-One Server Dynamic Command Center C++ Component Files C++ Compiler DB • HTTP Server • Site’s connection with WWW • BV adds the interface that forwards visitor request to an IM running on a specific machine.
Script Pre-processor JSP Files Browser Interaction Manager with Embedded Javascript Engine Script Cache HTTP Server Shared library of Components Supporting Files & Tools Component Interface File Component Interface Compiler One - to-One Server Dynamic Command Center C++ Component Files C++ Compiler DB • Dynamic Command Center (DCC) • UI for creating and maintaining Business Rules
Script Pre-processor JSP Files Browser Interaction Manager with Embedded Javascript Engine Script Cache HTTP Server Shared library of Components Supporting Files & Tools Component Interface File Component Interface Compiler One - to-One Server Dynamic Command Center C++ Component Files C++ Compiler DB • JSP Files (Page Scripts) • text file .jsp containing server-side Javascript, HTML, text, Component Reference
Script Pre-processor JSP Files Browser Interaction Manager with Embedded Javascript Engine Script Cache HTTP Server Shared library of Components Supporting Files & Tools Component Interface File Component Interface Compiler One - to-One Server Dynamic Command Center C++ Component Files C++ Compiler DB • Interaction Manager(IM) • Comm. & Process control for handling HTTP requests • Controls processing page scripts • Controls interactions with underlying 1-to-1 servers
Script Pre-processor JSP Files Browser Interaction Manager with Embedded Javascript Engine Script Cache HTTP Server Shared library of Components Supporting Files & Tools Component Interface File Component Interface Compiler One - to-One Server Dynamic Command Center C++ Component Files C++ Compiler DB • Embedded Javascript Engine • NS JS engine embedded directly into the IM
Script Pre-processor JSP Files Browser Interaction Manager with Embedded Javascript Engine Script Cache HTTP Server Shared library of Components Supporting Files & Tools Component Interface File Component Interface Compiler One - to-One Server Dynamic Command Center C++ Component Files C++ Compiler DB • Script Pre-Processor • Converts a Page Script into pure SSJS
Script Pre-processor JSP Files Browser Interaction Manager with Embedded Javascript Engine Script Cache HTTP Server Shared library of Components Supporting Files & Tools Component Interface File Component Interface Compiler One - to-One Server Dynamic Command Center C++ Component Files C++ Compiler DB • Script Cache • Cache of compiled page scripts
Script Pre-processor JSP Files Browser Interaction Manager with Embedded Javascript Engine Script Cache HTTP Server Shared library of Components Supporting Files & Tools Component Interface File Component Interface Compiler One - to-One Server Dynamic Command Center C++ Component Files C++ Compiler DB • Component Interface Files • Defines interface between C++ and Javascript • defines methods & Attr. Accessible from pge scripts • file .jsi
Script Pre-processor JSP Files Browser Interaction Manager with Embedded Javascript Engine Script Cache HTTP Server Shared library of Components Supporting Files & Tools Component Interface File Component Interface Compiler One - to-One Server Dynamic Command Center C++ Component Files C++ Compiler DB • Component interface Compiler • Generates C++ Source code with callbacks of JS engine
Script Pre-processor JSP Files Browser Interaction Manager with Embedded Javascript Engine Script Cache HTTP Server Shared library of Components Supporting Files & Tools Component Interface File Component Interface Compiler One - to-One Server Dynamic Command Center C++ Component Files C++ Compiler DB • C++ Component Files • Javascript - Visible C++
Script Pre-processor JSP Files Browser Interaction Manager with Embedded Javascript Engine Script Cache HTTP Server Shared library of Components Supporting Files & Tools Component Interface File Component Interface Compiler One - to-One Server Dynamic Command Center C++ Component Files C++ Compiler DB • Shared Library of Components • Shared object libraries loaded by IM when it fires up
Flow of the Application • Visitor requests for the Page from the Browser • HTTP server processes request via BV CGI or NSAPI interface, connects to IM • IM gets path from CGI environment and validates it • IM checks script cache for a compiled script • if no script, IM runs pre-processor and caches compiled script
Flow of the Application (..contd) • IM runs compiled script in embedded JS engine • Embedded JS engin processes component invocation • IM sends back result to HTTP server • HTTP server delivers HTML page to server.
Interaction Manager • Manages application requests from site and returns the requested information • Maintains association between visitors and browser requests • Loads and runs scripts • Works with secure HTTP servers to process encrypted information • Maintains conn. between app and BV servers. • Manages caches(profiles, content, categories, scripts)
Interaction Manager (..Contd) • Multi-threaded Process • connection Manager handles multiple, simultaneous tasks • Requests are sent to the connection Manager, which tracks the status of the various engines • IM can run multiple engines to distribute the workload. • It is scalable and is limted only by the hardware of the host machine.
BV Component • What is a BV Component • How to Use BV component • Commonly used BV Components
What is BV Component • BV does everything with SSJS. • All the Javascript components are executed in IM. • The Javascript layer of the BV architecture allows BV components to be used in Javascript scripts.
What is BV Component (..contd) • All the dynamic page scripts utlize Javascript Components exclusively. • All Presentation logic should be performed in the Javascript Layer and not the business logic. • Sorting and searching, you should write in C++ rather than Javascript.
What is BV Component (..contd) • Javascript Componet Prefix • BVI • C++ Components Prefix • BVC
How to use BV Component • Creating BV components is done via the new keyword rather than accessing creator method : • var oContMgr = new BVI_ContentManager(“on_line”); • oCont = oContMgr.contentbyQuery(…);
BVI_Request BVI_Response BVI_Session BVI_Visitor BVI_Properties BVI_Content BVI_ContentList BVI_ContentManager BVI_Category BVI_Multivaluetable Commonly Used Components
BVI_Request • Why Use it ? • Get values sent from client • Get values sent from web server • Encode special characters in URLs • Where to Use it • Whenever the input from the client or web server is required.
BVI_Request (…Contd) • How to Use it • Instantiating a BVI_Request obejct • automatically instantiated by BV once for each JSP • Object Name : Request • Globally vailable within all SSJS functions • Get variables sent from client in <Form> tages or URL arguments • Use .value() or .values() accessor methods • Pass in name as a string • Receive back the value as a string or BVI_StringList • .url_encode() to escape the special characters in url’s before placing on HTML page.
BVI_Request (…Contd) • How to Use it • Examples • var firstname = Request.value(‘first_name’); • var listcolors = Request.values(‘colors’); • Add new ites to Request Object • Request.add_attribute(“tempval”,”5”); • CGI Environment Variables • HTTP_COOKIE, HTTP_HOST • var cookies = request.HTTP_COOKIE; • will return the string and will have to parse the string.
BVI_Response • Mirror image of BVI_Request • Way to communicate back to the client. • Whatever goes into Response buffer gets passed back to the web server and passed back to the client. • Why Use it ? • Send output to client • Redirect page processing flow
BVI_Response (…Contd) • Where to Use it ? • JS routines that directly write output to the output buffer. • The HTML is wrapped up into a Response.write automatically by BV. • Instantiating a BVI_Response Object • automatically instantiated by BV once for each JSP • Object name : Response • Globally available within all SSJS functions
BVI_Response (…Contd) • Send output to the client • Response.write(‘Last Name: ’+lastname); • Redirect Page Processing • .localRedirect() • pass relative file reference • Do not pass any query string parameters • Session and Request objects are preserved • BV processes redirection on server • Use Return() to halt processing of currect page. • Client’s URL doesn’t change. • Response.locatRedirect(‘main/home_page.jsp’);
BVI_Response (…Contd) • Redirect Page Processing • . redirect() • pass full URL : ‘http:[//server]/path/filename?query’ • Results in additional call to serverr by client • Client’s URL changes • Response.redirect(‘http:/bin/my_im/main/home_page.jsp’); • If no server name is used, by default, the browser will use the last referenced server.
BVI_Response (…Contd) • .redirect() and .localRedirect() flush the headers before redirecting • HTTP header can be used to set cookies on the browser. • If you set a cookie on Page ‘A’ then redirec to page ‘B’ the cookie is lost from the HTTP response header.