280 likes | 478 Views
Comp2513 E-Commerce Infrastructure 2. Daniel L. Silver, Ph.D. Objectives. To complete an overview of the major architectural components of the Internet that form the infrastructure for E-Commerce References: portions of Sharma Ch.1 and 2, and DDEA Ch.7. Outline. Review of Architectural Map
E N D
Comp2513E-Commerce Infrastructure 2 Daniel L. Silver, Ph.D.
Objectives • To complete an overview of the major architectural components of the Internet that form the infrastructure for E-Commerce • References: portions of Sharma Ch.1 and 2, and DDEA Ch.7 Daniel L. Silver
Outline • Review of Architectural Map • Dynamic Interactive Webpages • Forms and CGI • Java and Applets, JavaScript • Cookies • Servlets and Application Servers • Database and Database Servers • Beyond HTML: XML • Security and Authentication • Electronic Payment Daniel L. Silver
Major Architectural Components of the Web Bank Server Client 1 Dedicated Browser HTTP TCP/IP Server A HTTP Server App. Server Database Server Internet Client 2 Browser prog.cgi URL index.html Server B Bank Server Daniel L. Silver
Dynamic Internet Pages! • HTTP allows client to request a webpage (URL) and server to respond • HTML and browser allows display of data sent from server • How do we move data to the server? • How do we provide program logic at the client? • e.g. Check the postal code: B0P 1XO Daniel L. Silver
Forms and CGI • The HTML <FORM> tag specifies that: • Input data will be received from the keyboard • Data should be processed by a server application if SUBMIT button is pressed • CGI – Common Gateway Interface • Standard for HTTP client-server application communications. It defines how: • A client can request to run an application on a server and use specified input data • A server application can pass the response back to the client • It is NOT a programming language Daniel L. Silver
Forms and CGI • An Example: greeting.html Daniel L. Silver
Java and Applets • Java is an OOP language developed by Sun Microsystems • Platform independent – code is interpreted by a Java Virtual Machine (JVM) • A Java applet is a Java program that is launched by a browser: • HTML page contains reference to an applet • Applet is downloaded from server • Java is executed by JVM assoc. with browser Daniel L. Silver
Java Applet • Advantages: • Client side logic for dynamic content and format of pages • Client side logic for complex algorithms and local data manipulation • An Example: HelloApplet.html Daniel L. Silver
Javascript • Introduced by NetScape • A client-side language • Provides program logic embedded in HTML for generation of dynamic webpages and minor computation • Manipulation of objects in HTML page including the creation and movement of browser windows • Most importantly allows validation of entered FORM data Daniel L. Silver
Web Sessions? • Recall the problem of web sessions being connectionless • TCP/IP is connection oriented but each HTTP request/response uses one such connection and then terminates • State is not maintained from page to page • Each item you order is a separate request • So how does a E-Comm site know how to accumulate orders for you? Daniel L. Silver
Cookies • A Cookie is a small piece of data placed on a client system that is used by the server to identify the client • Client, about to make a request to a server, checks to see if it has an associated cookie • If cookie, then send it with the request • Server checks for cookie in request • If cookie, then pass it to any applications called • Server may create a new cookie and return it with the response to the client • Client receives response and checks for new cookie • If cookie, then it saves it for this server URL Daniel L. Silver
Servlets and Application Servers • Java Applets have three major drawbacks: • Take time to load unto client • May not work as planned (depends on JVM) • Potential security risk for client • Server-side code is preferred for business logic • CGI allows an application to run on server but creates server performance problems: • Each time a separate process must be spawned Daniel L. Silver
Servlets and Application Servers • Servlets overcome this problem • Servlets rely on a Servlet Engine (Application Server) to manage multiple requests for the same application • Tomcat is one of the most common Servlet Engines Daniel L. Silver
JSPs – Java Server Pages • A relatively new Java programming model from SUN that follows IBM’s older net.data and MS’s Active Server Pages • Objective is to separate the application processing code from the HTML presentation code • Easier to build dynamic E-commerce applications without loss of servlet power Daniel L. Silver
Skeleton of a JSP <HTML> <HEAD> <TITLE> HelloJSP1</TITLE> </HEAD> <BODY> <H1>Hello JSP - Example 1 </H1> <BEAN name="textProvider" type="example.Bean.HelloJSP1" scope="request"> </BEAN> <B><%= textProvider.getTextMessage() %></B> </BODY> </HTML> Basic Html Code Java Object Created as a Java Bean Calling a method of the Java Object Daniel L. Silver
Major Architectural Components of the Web Bank Server Client 1 Dedicated Browser HTTP TCP/IP Server A HTTP Server App. Server Database Server Internet Client 2 Browser prog.class URL index.html page.jsp Server B Bank Server Daniel L. Silver
Database and Database Servers • Database - A collection of data, structured in a well defined format, accessed by multiple applications using standard commands, ensures integrity of access • DBMS – Database Management System – facilitates and optimizes database I/O • Database Server – A server that runs a DBMS and can field requests for data I/O Daniel L. Silver
Database and Database Servers • raven.acadiau.ca will be our database server • Our DBMS will be PostgreSQL (Postgres) • Postgres is a relational database – like a set of spreadsheet tables • Used to store all data for products, categories and stores • ODBC – Open Database Connectivity • JDBC – Java Database Connectivity Daniel L. Silver
XML • eXtensible Markup Language • HTML tags such as <B>Silver<\B> tell how to display the word “Silver” (syntax) • But its does not define what it means • XML defines meaning (semantics): <last_name>Silver<\last_name> • And to create structure … <mail_adrs> <fname>Homer<\fname> <lname>Simpson<\lname> <strnum>1234<\strnum> <str>Hickup Lane<\str> <\mail_adrs> Daniel L. Silver
Security and Authentication • HTTP connections can be “sniffed” for their data – just plain ASCII text • Encryption methods encode text to make it unreadable • Public and private keys are used for coding and decoding encrypted messages • Authentication concerns ensuring that a sender is who she says she is Daniel L. Silver
Security and Authentication • Certificate is an entity’s public key plus other identification (name., location) • SSL – Secure Socket Layer • Lies between TCP/IP and HTTP and performs encryption • HTTPS is the HTTP protocol that employs SSL – it will use a separate server port (default = 443) Daniel L. Silver
Security through HTTPS Bank Server Client 1 Dedicated HTTP TCP/IP Browser Server A port = 80 HTTP Server App. Server Database Server HTTPS port = 443 prog.cgi URL index.html Daniel L. Silver
E-Payment • Credit card • Debit card • Micro-payments • Smart card Daniel L. Silver
Major Architectural Components of the Web Bank Server Client 1 Dedicated Browser HTTP TCP/IP Server A HTTP Server App. Server Database Server Internet Client 2 Browser prog.cgi URL index.html Server B Bank Server Daniel L. Silver
Successful E-Commerce Applications • Flexible – ever changing products, technology, business process • Multi-channel interfaces - diversity of user and external application access • Security – a primary concern • Integration – no application is an Island Daniel L. Silver
Summary of Technical Requirements for E-Comm. • Dynamic, personalized web user interfaces • Multi-channel user interface support • Adheres to standard application interfaces • Distributed programming/acrhitectural model • Deployment on distributed components • Distributed transaction support • Asynchronous message communications • Strong security Daniel L. Silver