Chapter 4: Core Web TechnologiesContents - Chapter 1Before and after the webProxyGatewayFirewallTunnelSecure Socket Layer (SSL)Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Enterprise Java Beans (EJB)Slide 16Slide 17Clients supported by an application serverSlide 19Slide 20Slide 21Using integrated platformsSummaryChapter 4:Core Web TechnologiesContents - Chapter 1 Exchanging information over the InternetHTTP, HTMLURI, URIWeb server, web browserWeb services for supporting remote clientsAppletsCommon Gateway Interface (CGI)ServletsApplication serversMiddleware for Web applicationsJ2EEWeb technologies for application integrationMiddleware extensionsFirewalls and tunnelingBefore and after the web Early protocols, applicationsTelnet: to log in to a remote machineSMTP: Simple Mail Transfer ProtocolFTP: File Transfer ProtocolArchie: FTP to create a distributed file systemGopher: GUI for publishing and accessing text files over the InternetWeb technologiesWeb serverWeb browserHTTP: HyperText Transfer ProtocolHTML: HyperText Markup LanguageURI: Uniform Resource IdentifierURL: Uniform Resource LocatorProxyActs as a server and clientCachingBlock undesired sitesLog usageBypass blocksScan outgoing trafficHTTPclientwide area network (Internet)HTTPproxy HTTPserverHTTPgateway frewallfrewallHTTP tunnelGatewayActs as an intermediary for a serverKeeps machines anonymousControls access to the networkPerforms load-balancing, authentication, decryptionHTTPclientwide area network (Internet)HTTPproxy HTTPserverHTTPgateway frewallfrewallHTTP tunnelFirewallBlocks unauthorized access, permits authorized communicationspermit / deny / encrypt / decrypt / proxy all computer traffic between different security domainsHTTPclientwide area network (Internet)HTTPproxy HTTPserverHTTPgateway frewallfrewallHTTP tunnelTunnelActs as a blind relay between two connectionsEncapsulate protocols within HTTP or SSH (Secure Shell) to get through what the firewall would preventHTTPclientwide area network (Internet)HTTPproxy HTTPserverHTTPgateway frewallfrewallHTTP tunnelSecure Socket Layer (SSL)Normally HTTP traffic is not encrypted, it can be “sniffed”SSL uses public key encryptionHTTPS: HyperText Transfer Protocol over Secure sockets layerHTTP “cookies” are used to store data on the client machineHTTPSclientSecure Sockets Layer (SSL)HTTPSserverTCP/IPnetwork layerapplication layerclientclientserver (resource manager)middlewarewide area network (Internet)HTTPclientHTTPserverCopyright Springer Verlag Berlin Heidelberg 2004 A 3-tier architecture on the web“Let’s put an ATM” in every home”Business-to-consumer (B2C) interactionThe web browser is a universal clientmiddlewareWeb server clientbrowserjava virtual machineappletwide area network (Internet)frewallserver (resource manager)Copyright Springer Verlag Berlin Heidelberg 2004 AppletsHTTP is a document exchange protocol, it’s staticApplets are downloadable programsThe server sends the appropriate program each timeThe web browser becomes a universal clientCode must be small for rapid transfermiddlewareWeb server browserwide area network (Internet)frewallHTTP GET requestclientCGI programserver (resource manager)Copyright Springer Verlag Berlin Heidelberg 2004 Common Gateway InterfaceThe CGI program is on the server and it has a URLWhen the URL is accessed, the CGI program is executed and its output is saved as an HTML documentThis saved document is returned to the web browser which then displays itIt is possible to pass parameters to CGI programsmiddlewarebrowserwide area network (Internet)frewallHTTP GET requestclientWeb serverJava server processJava threadserver (resource manager)Copyright Springer Verlag Berlin Heidelberg 2004 ServletsSimilar to CGI, but “lightweight”Run as Java threadsSaves the cost of context switchingMemory efficientCan be statelessconnection to resource mgmt layerpresentation layerresource management layerapplication logic layerclientapplication serverWeb serverwide area network (Internet)frewallHTTPbrowserother protocolsother servers (email, SOAP,..)Copyright Springer Verlag Berlin Heidelberg 2004 Application serversIt’s a middleware platform that provides support for Web accessCovers both the application logic and the presentation layerPrepares, dynamically generates, manages documentsupport for communication and presentationServletsJavaServer Pages (JSP)Enterprise Java Beans (EJB)Java DataBase Connectivity (JDBC)Java Naming and Directory Interface (JNDI)support for the application integrationJava 2 Connector Architecture (J2CA)Java Message Service (JMS)Java transaction API (JTA)Java API for XML Processing (JAXP)JavaMailJava Authentication and Authorization Service (JAAS)support for access to resource managersCopyright Springer Verlag Berlin Heidelberg 2004 J2EE – main componentsEnterprise Java Beans (EJB) Implement the application logicDeliver application specific functionalityThree types of beansSession beans: handle session with a client (stateful/stateless)Entity beans: persistent beans stored in a databaseMessage-driven beans: can create asynchronous interaction with clientsEJB container provides the environment in which the beans are runWeb serverWeb browserHTTP: HyperText Transfer ProtocolHTML: HyperText Markup LanguageURI: Uniform Resource IdentifierURL: Uniform Resource Locatorapplication logic layerpresentation layerservices(load balancing, pooling, caching, transaction, persistence,…)administration(management and security)application serverEJB EJBJDBCEJBJNDIJ2CA resource adapterJ2CA resource adapterother adaptersDBMS applicationsenterprise system 1enterprise system 2enterprise system nEJB containerJMSCopyright Springer Verlag Berlin Heidelberg 2004Web serverE-mail serverservers for other connections (e.g., WAP)presentation layerServlets JSPsmultidevice content deliverypersonalization logicconnection to resource mgmt layerresource management layerapplication logic layerservices(load balancing, pooling, caching,…)XML supportWeb services supportadministration(management and security)application serverclientCopyright Springer Verlag Berlin Heidelberg 2004Clients supported by an application serverWeb browsers requesting HTML pages with or without appletsUse HTTP or
View Full Document