500 likes | 623 Vues
This lecture explores the evolution and significance of web technologies in electronic commerce, focusing on how Java servlets offer a powerful alternative to traditional CGI programming. It covers essential concepts such as client-side and server-side programming, the role of HTTP, and database connectivity through JDBC. Key programming languages like JavaScript and VBScript are highlighted, along with the benefits of using servlets for dynamic web applications. This foundational knowledge is vital for anyone looking to understand or develop e-commerce solutions.
E N D
Electronic Commerce Lecture 8
Needs smartcard currencies e-Consumers Input (CGI) HTTP Internet TCP/IP Web Server Form ??
Clients Servers • Client-Side • Programming • JavaScript • VBScript • Applets • … ??? ??? HTML • Server-Side • Programming • SSI • ASP/JSP • CFML • Servlets • …
Servers • Client-Side • Programming • JavaScript • VBScript • Applets • Server-side programs • Written in Java • http://java.sun.com/products/servlet/ HTML • Server-Side • Programming • SSI • ASP/JSP • CFML • Servlets A Servlet CGI Program CGI Program JVM Web Server
SSInclude Servlets (SSIS) <servlet name=SERVLET_NAME code=SERVLET.CLASS codebase=PATH_TO_YOUR_SERVLET_CLASS INIT_PARAM1=VALUE1 INIT_PARAM2=VALUE2 INIT_PARAM3=VALUE3… > <param name=PARAM1 value=PARAM_VALUE1 param name=PARAM2 value=PARAM_VALUE2… > </servlet>
SSI with Servlets • Include embedding of Servlets in HTML documents • Named Servlets will be invoked in the Server side (if they are not loaded) • Servlets process the SSInclude requests and format necessary information to send along the HTML at the point of invocation.
import java.io.*; import java.sql.*; import javax.servlet.*; import javax.servlet.http.*; public class DBPhoneLookup extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { Connection con = null; Statement stmt = null; ResultSet rs = null; res.setContentType("text/html"); PrintWriter out = res.getWriter(); try { // Load (and therefore register) the Oracle Driver Class.forName("oracle.jdbc.driver.OracleDriver"); // Get a Connection to the database con = DriverManager.getConnection( "jdbc:oracle:thin:dbhost:1528:ORCL", "user", "passwd"); // Create a Statement object stmt = con.createStatement(); // Execute an SQL query, get a ResultSet rs = stmt.executeQuery("SELECT NAME, PHONE FROM EMPLOYEES"); A Sample Servlet
// Display the result set as a list out.println("<HTML><HEAD><TITLE>Phonebook</TITLE></HEAD>"); out.println("<BODY>"); out.println("<UL>"); while(rs.next()) { out.println("<LI>" + rs.getString("name") + " " + rs.getString("phone")); } out.println("</UL>"); out.println("</BODY></HTML>"); } catch(ClassNotFoundException e) { out.println("Couldn't load database driver: " + e.getMessage()); } catch(SQLException e) { out.println("SQLException caught: " + e.getMessage()); } finally { // Always close the database connection. try { if (con != null) con.close(); } catch (SQLException ignored) { } } } }
Why Use servlets Over CGI • Replacement of CGI • Servlets are written in Java • platform independent (write once run everywhere) • Hardware independent (WinNT to Unix) without compiling or changing anything. • Less resources intensive: CGI takes more memory and time
Servlets over CGI • Persistent: They are loaded once, multiple threads of the same servlet will handle multiple client requests. • Fast: Servlets run must faster than CGI scripts written in interpreted languages(Perl). • More powerful database connectivity: JDBC to connect to different Databases. • Extensible: since written in Java, brings all benefits of Java (robust, Object Oriented…)
Client-Side • Programming • JavaScript • VBScript • Applets Servers <html> <body> … <% On Error Resume Next rs.MoveFirst do while Not rs.eof %> ………... <% rs.MoveNext loop%> ………... </body> </html> HTML • Server-Side • Programming • SSI/PHP3 • ASP/JSP • CFML • Servlets
Request example3.asp Open RecordSet & Display Data in HTML Format Establish a Connection with Database Send SQL Statement to database Retrieve Data from Database by using RecordSets Active Server Page Web Browser Web Server Database
Extract Client’s Input (CGI) ODBC-Compliant Server-Side Program • Connect/Open • Extract/Update by SQL • Format
Needs e-consumers VB Perl Java Product Information ?How? Internet TCP/IP Web Server ASP Or CFML Web Data
Web Technology Requests Web Server Web Client Http: Hyper Text Transport Protocol Internet Responses Stateless
Maintain State • Hidden Fields in Forms • SessionID in URL • Cookies Examples: http://lw4fd.law4.hotmail.msn.com/cgi-bin/getmsg?disk=216.33.148.69_d514&login=sungchichu&f=33792&curmbox=ACTIVE&_lang=&msg=MSG949462271.14&start=422884&len=19988 https://ww3.janus.com/cgi-bin/gx.cgi/AppLogic+HomeStaticA?GXHC_gx_session_id_VJ_WEB=70f2fa69ad7e9e69
Client-server computing ODBC- & JDBC- compliant DBMS Static vs Dynamic HTML pages Java COM CORBA Drumbeat 2000 X/Open Informix, Sybase, Oracle CGI programs (Unix shell scripts, C and/or Perl programs) HTTP Applets vs Servlets API ASP vs JSP Lotus Domino, Netscape Enterprise, IIS, … SQL ColdFusion/CFML XML Web-based Enterprise Computing
Needs CRM ??? e-consumers Product Information Internet TCP/IP New Products Web Server Web Data
Customer Relationship Management • Augment quality of products • Maintain customer intimacy • Move from ‘cold’ order taking & bye to partnership throughout the whole buying experience for the customer (deliver, product information, billing, installation, repair/return, renewal) • Competitive advantage and the key core business process
Needs Suppliers EDI e-consumers Product Information Manufacturing Plants Internet TCP/IP Product Development (R&D) Web Server Web Data New Product Data Mining
Chrysler(Source: MIS Quarterly, June 1995) • Established electronic communication with a few suppliers in 1969 • Not adequate • Suppliers did not have current information about Chrysler’s requirements • Assembly plants did not know exactly the shipment content • Keep large safety buffers • Costly emergency deliveries when shortage occurred • 1990: EDI • Over 100$ saved per vehicle • Annual savings amounted to over $220 millions
EDI • EDI uses syntax that is commonly known between the two communicating parties (compressed, predefined, sequenced) • No one existing Internet-based tool could interpret all EDI transmissions • Record keeping includes specific software to be kept along with it • New users of EDI could not expect immediate deployment without specialized software
The Extended Enterprise Value Chain Suppliers Front Office e-Business e-Business e-Commerce Back Office Channel & Customers SCM ERP CRM CRM e-Store
Issues • How to encode information such that all parties involved will be able to use it? • How to establish communication between disparate systems over the Internet (instead of private networks)? • How could the company be reorganized to accept this reverse value chain?
Java & CORBA • Java “Write Once, Run Any” language since its announcement April 1995; a short 4 years and its technology is still in development • CORBA Object-based broker to tie together disparity information systesms; circa 1989;
CORBA • Common Object Request Broker Adapter • Object Management Group (OMG), 1989 • CORBA 1.1 in 1991, CORBA 3 in 1999 • “…allows a distributed, heterogeneous collection of objects to interoperate.” • ORB, IDL, & IIOP (Internet Inter-ORB Protocol)
Client Server Server IDL IDL IDL ORB ORB IIOP IIOP Internet
XML • Extensible ML – again a descendant of SGML or a subset of • Work on draft proposal begins July 1996 by the SGML (Standard General Markup Language) ERB (Editorial Review Board) • XML specification 1.0 in February 1998 (by W3C) • Participation by Microsoft and Netscape to support the new standard began the ascent to popular acceptance
Two Classes of XML Documents • Well-formed: conform to XML standard; there exists a structure of its content • Valid: conform, and adhere to DTD • Validating vs Non-Validating XML processors/parsers
Creating XML Documents • Start- and end-tags • Attribute assignments • Entity references • Comments • Processing instructions • CDATA sections • Document type declarations
Start- and End-Tags • Naming conventions quite like variables in programming language, start with a letter, no spaces, … • Nesting is allowed <district> <building> McDonald’s </building> </district> • Start- and End-Tags are required. • <foo>…</foo> • <foo/> for empty content within a tag
So? • Standardize information storage in vertical markets • Tools can be developed easily • <address> means? • Good for textual data – human-readable form; not good for floating point numbers (12,304,000.93 or 12 5/16)
XML/EDI ..only an estimated 125,000 organizations worldwide have an EDI system. Furthermore, there are only 80,000 EDI enabled businesses in the US. That works out to less than 2% of the 6.2 million businesses registered in the United States. http://www.geocities.com/WallStreet/Floor/5815/executive.htm (15-12-99 13:00)
XML/EDI • New users would adopt XML for interchange of data over the Internet, especially, e-merchants • Tools are readily available to encode the data and interpret the data in XML format • XML-encoded data could be either filtered to store in company specific formats and/or for viewing using common Internet-based tools (soon to be available; even in an email)
Other Standards • http://www.onestandard.com : ?? • http://visualgenomics.com : Bioinformatic Sequence Markup Language (BSML) • http://www.fpml.com : Financial products Markup Language
Data Mining • “Knowledge Discovery in databases” • Find patterns (visiting periods), outliners • Analysis market basket (find i-itemset) • What 2 items appear frequently in a transaction • What sequence of items that were ordered over time • What items were ordered frequently during a time period
Data Mining • Cross Industry Standard Process for Data Mining (CRISP-DM) http://www.ncr.dk/CRISP/ • Consortium of European companies (NCR, Integrated Systems Limited (ISL), Daimler Benz [now DaimlerChrysler?], OHRA Verzekering en Bankk Groep, B.V.) in July 1997 • First model Jan 1999
CRISP-DM • Business Understanding • What does the business need and why do we need the knowledge? Like requirement specification • Data Understanding • Data collection, quality and quantity • Data Preparation • Characteristics of datasets and filtering of data
CRISP-DM • Modeling • Select the modeling technique; neural networks • Evaluation • Outcome versus objectives • Deployment • Accept, implement and fit to other business processes
WAP Forumwww.wapforum.org • Wireless Application Protocol T-Business E-Business Air Space Physical Network Handheld Wireless Device e-consumers m-econsumers
Pre-Wintel World • limited memory (640KB) • restricted CPU (8088) • simple interface (DOS) • low bandwidth (none) • low battery life (laptop?) • high latency (unbearable) • unpredictable availability • unstable transmission • different standards • Wireless World • limited memory • restricted CPU • simple interface • low bandwidth • low battery life • high latency • unpredictable availability • unstable transmission • different standards (GSM)
WAP Forum • Founded in June 1997 by Ericsson, Motorola, Nokia and Phone.com • Now has over 100 members (mid-1999) • Wireless subscribers reach 1 billion by 2004 • Protocol specification brings together existing Web technology in the wireless telecommunication domain
WAP Forum • Accelerate needed infrastructure, network equipment, applications, and contents • Device Independent • Ease of use & pricing structure • WML, WMLScript, WTA (Wireless Telephony Applications), microbrowser, WTLS (WirelessTransport Layer Security)
WAP Programming Model Source: www.wapforum.org
WAP Protocol Stack Source: www.wapforum.org
Mobile Computing • Connected wherever you go • Same environment wherever you are • Same person whatever you use (smart card) • Know wherever you are (location-aware systems) • Any suggestions??
Web Security(based on article by Rubin & Geer, Jr., 9/1999 IEEE Computer) • Web server configuration (Apache) • Misconfigure • Configuration files in server root directory • Access to document tree • Username/Password information • Permissions • Web Server should be run as a genuine user (as ‘www’), but not as nobody.
TCP Layers Application Application Presentation Session Transport host-to-host Transport Network Internet Network Access Data Link Physical Physical
HTTP • Not a protocol for transferring hypertext • But a protocol for transmitting information for making hypertext jumps easy • A stateless protocol • Transaction oriented : TCP connection is established for each transaction and terminated at the end of the transaction
HTTP Key Terms • Cache : stores cacheable responses to reduce same future references • Proxy : an intermediary program that acts on behalf of other clients • Tunnel : an intermediary program that acts as a blind relay between two connections • Connection : A transport layer virtual circuit between two programs