Ws 03-web technologies

STI Innsbruck
STI InnsbruckSTI Innsbruck
1
© Copyright 2011   Srdjan Komazec
Web Services
Web Technologies
2
Where are we?
# Title
1 Distributed Information Systems
2 Middleware
3 Web Technologies
4 Web Services
5 Basic Web Service Technologies
6 Web 2.0 Services
7 Web Service Security
3
Outline
• Motivation
• Technical solution
– Exchanging Information over the Internet
– Web Technologies for Supporting Remote Clients
– Application Servers
– Web Technologies for Application Integration
• Possible extensions
• Summary
• Resources
4
Motivation
5
Motivation
• Data and services often need to be shared across the boundaries of a
single company or business unit:
– Integration of different branches of the same company.
– Automation of business processes that encompass several companies.
• The Web emerged as a technology for sharing information over the
Internet.
– It quickly became a medium for connecting remote clients and servers across the
Internet.
– More recently (with the advent of Web services) it became a medium for integrating
applications across the Internet.
• This lesson aims at introducing basic Web technologies that are used to
implement “Web” portion of Web services.
6
Technical Solution
Exchanging Information over the Internet
7
Exchanging Information over the Internet
Brief history
• In 1969 ARPA connected four universities in the US, building the
network called ARPANET
– The connected systems were autonomous and heterogeneous.
– First standardization bodies were formed to govern the development of the network.
• One of the most prominent standards developed then is TCP/IP.
• Before the Web there were some other standards
– Simple Mail Transfer Protocol (SMTP) – which is still the way to send e-mail
• Later extended with Multi-purpose Internet Mail Extensions (MIME)
– Telnet protocol
– File Transfer Protocol (FTP)
• Arrived soon after SMTP and Telnet.
• Permitted anonymous file transfers.
– Archie
• Used FTP to create a distributed file system, index FTP archives and search through them.
– Gopher
• Simple client/server system and GUI for or distributing, searching, and retrieving text
documents over the Internet.
• Core Web technologies (HTTP, HTML, Web servers and browsers) are
evolution of those early technologies.
8
• Generic stateless protocol governing file transfer across a network.
• Originally developed by European Laboratory for Particle Physics
(CERN)
– The idea was to enable researchers to share their results and knowledge in a fast,
easy and convenient manner.
• The same team came up with the name World Wide Web
– The idea is today promoted and governed by WWW Consortium (W3C).
• Designed to support hypertext documents
– HTTP supports Hyper Text Markup Language (HTML).
– HTML defines standard set of markups used to render the information for human
consumption.
Exchanging Information over the Internet
Hyper Text Transfer Protocol (HTTP)
9
• HTTP documents are identified by Uniform Resource Identifiers (URIs).
– URIs come in two flavors: Uniform Resource Locators (URLs) and Uniform Resource
Names (URNs).
• URLs are the dominant way to identify documents over the Web.
– In addition to identifying a resource, a URL provides a means to locate it
• A URL defines the name of the protocol (i.e., scheme) which should be
used to access the document, the address of the machine where the
resource is located, and hierarchical description of the resource location
(and more like query string, and anchor).
• Documents can be static or dynamic
– Dynamic documents are partially or in whole generated upon request.
Exchanging Information over the Internet
Hyper Text Transfer Protocol (HTTP)
10
• HTTP underlying mechanism is Client/Server.
• HTTP typically relies on TCP/IP sockets.
• Starting from version 1.1 persistent connections are also supported.
• Most frequently used request methods are
– OPTIONS – sends information about the communication options supported by a
particular server,
– GET – retrieves the specified document,
– POST – appends or attaches the included data to the specified resource,
– PUT – stores the included data at the location specified by the request, and
– DELETE – deletes the resource indicated by the request.
Exchanging Information over the Internet
Hyper Text Transfer Protocol (HTTP)
11
Exchanging Information over the Internet
Hyper Text Transfer Protocol (HTTP) - Example
12
• Proxy (RFC 2616)
– Intermediary program acting both as server and client for the purpose of making
requests on behalf of other clients.
– Potentially processes the URL and content.
• Gateway
– Server acting as intermediary for some other server for the requested resource.
– Acts on behalf of a server.
– Potentially processes the URL and content.
• Tunnel
– An intermediary program which is acting as a blind relay between two connections.
– Used to connect two networks.
– Doesn’t process anything.
• Intermediary systems are enabling integration in the Web environment.
Exchanging Information over the Internet
Hyper Text Transfer Protocol – Intermediary systems
13
Exchanging Information over the Internet
Hyper Text Transfer Protocol – Intermediary systems
HTTP
client
wide
area
network
(Internet)
HTTP
proxy
HTTP
server
HTTP
gateway
firewall
firewall
HTTP tunnel
Copyright Springer Verlag Berlin Heidelberg 2004
14
• No data encryption
– Secure Socket Layer (SSL) developed by Netscape (1996), and its successor
Transport Layer Security (TLS).
• Relies on public key encryption to protect data transferred over TCP/IP.
– Hyper Text Transfer Protocol over TLS/SSL (HTTPS)
• Allows Web server and client to use TLS/SSL to authenticate to each other and establish an
encrypted connection between themselves.
• Protocol is stateless
– Information is not shared across HTTP request/response roundtrips.
– Application developer is responsible for maintaining the relationships (i.e., state).
– HTTP Cookies developed by Netscape (1994).
• Enabling deployment of small data structures on the client machine on behalf of Web server.
• They can maintain state information, can be used for personalization, tracking, session
management.
Exchanging Information over the Internet
Hyper Text Transfer Protocol – Limitations
15
Technical Solution
Web Technologies for Supporting Remote Clients
16
Web Technologies for Supporting Remote Clients
An Example
• Conventional middleware is assuming operation inside of the safe
company boundaries.
• Information systems today are opening for some other users (e.g.
customers)
– Usage of Automatic Teller Machines (ATMs) by banks gives customers easier access
to their accounts.
– Manual work when dealing with customers disappears which reduces costs for banks.
• ATMs are not in a personal possession and they still incur some costs
for customers (they need to travel to use the provided services)
– Once the customer owns its personal ATMs (i.e. client) possibilities are endless –
advanced applications, no usage constrains, etc.
• These are Business-To-Customer (B2C) operations
– Customer is directly accessing company services.
– Without Web technologies it would be quite complex to achieve efficient B2C.
17
Web Technologies for Supporting Remote Clients
Extension of 3-tier architecture
client
client
server
(resource manager)
middleware
wide
area
network
(Internet)
HTTP
client
HTTP
server
Copyright Springer Verlag Berlin Heidelberg 2004
18
• Building sophisticated applications at the client side (i.e. on Web
browser side) is difficult.
• An applet is a Java program which can be embedded in an HTML
document
– Introduced by Sun Microsystems with the first version of Java language (1995).
– The program is executed inside a Java Virtual Machine (JVM) in a controlled manner.
– Client code (Java classes and associated artifacts) is sent to the client.
– Applets turn the Web browser into an application-specific client without complex
(re)configurations and installation procedures.
– Applets are transient
• Their lifetime is associated to the running browser instance.
• Inadequate to support complex client code or frequent interactions.
Web Technologies for Supporting Remote Clients
Java Applets
19
Web Technologies for Supporting Remote Clients
Java Applets
middleware
Web
server
client
browser
Java Virtual Machine
applet
wide
area
network
(Internet)
firewall
server
(resource manager)
Copyright Springer Verlag Berlin Heidelberg 2004
20
• CGI is usually used to enable server to serve content from dynamic
sources (e.g. publishing information from databases).
• It basically enables HTTP server to interface with external applications
(they can serve as “gateways” to the local information system).
– CGI establishes binding between a program and a requested URL.
– Program arguments are sent as part of requested URL.
– CGI programs can be written in various languages.
– A program is started as a separate process and it interacts with the underlying
middleware.
Web Technologies for Supporting Remote Clients
Common Gateway Interface (CGI)
21
Web Technologies for Supporting Remote Clients
Common Gateway Interface (CGI)
middleware
Web
server
browser
wide
area
network
(Internet)
firewall
HTTP GET
request
client
CGI program
server
(resource manager)
Copyright Springer Verlag Berlin Heidelberg 2004
22
• CGI programs involve certain overhead
– Creation of separate processes limits scalability of the system.
• Java servlets use exactly the same idea as CGI scripts but
– Servlets are running as threads of a Java server process.
– They run as a part of the Web server.
– They are invoked directly by embedding servlet-specific information within an HTTP
request.
– This minimizes overhead, reduces memory requirements, and enables persistent
context management in contrast to CGI scripts.
• Session tracking, sharing of DB connections, caching as optimization technique.
• The successor of servlets – Java Server Pages (JSP).
Web Technologies for Supporting Remote Clients
Java Servlets
23
Web Technologies for Supporting Remote Clients
Java Servlets
middleware
browser
wide
area
network
(Internet)
firewall
HTTP GET
request
client
Web server
Java server process
Java thread
server
(resource manager)
Copyright Springer Verlag Berlin Heidelberg 2004
24
Technical Solution
Application Servers
25
Application Servers
Introduction
• Increased usage of the Web as a channel to access information
systems pushed middleware platforms to provide Web access support.
• Application server is a middleware system equipped with Web access
channels to the services implemented using the middleware.
• The implications are following:
– Presentation layer plays more significant role than in conventional middleware
(information is exchanged through documents).
– Presentation layer related to the Web and application layer are getting merged in
order to allow an efficient delivery of content through the Web and to simplify Web
application management.
• Connectivity to the resource management layer is achieved through the
standardized connection architectures and APIs (JDBC, ODBC).
26
Application Servers
Introduction
connection to resource mgmt
layer
presentation layer
resource management layer
application logic layer
client
Web
server
wide
area
network
(Internet)
firewall
HTTP
browser
other protocols
other servers
(email, SOAP,..)
Copyright Springer Verlag Berlin Heidelberg 2004
27
• Conceptually resemble conventional middleware platforms.
– Functionality similar to CORBA, TP monitors, and message brokers.
• Application server vendors are targeting to produce a unique
environment to host all kinds of app logic, Web-based or the other.
• The supporting services (transactions, security and persistence) are
provided in an automatic and transparent manner.
• J2EE application logic support concentrates on
– Enterprise Java Beans (EJB),
– Java Naming and Directory Interface (JNDI), and
– Java Message Service (JMS).
• EJB container hosts EJBs and enables application of logistic services
through the mechanisms of interception.
Application Servers
Support for the Application Logic
28
Application Servers
Support for the Application Logic – J2EE AS architecture
application logic layer
presentation layer
services
(load
balancing,
pooling,
caching,
transaction,
persistence,…)
administration
(management
and
security)
EJB EJB
JDBC
EJB
JNDI
J2CA resource
adapter
J2CA resource
adapter
other
adapters
DBMS applications enterprise system 1 enterprise system 2 enterprise system n
EJB container
JMS
Copyright
Springer
Verlag
Berlin
Heidelberg
2004
29
• Application servers can provide services to simplify the administration
and management of the applications and provide for performance and
high availability
– Caches, loading pools, monitoring, security, object administration, etc.
• Analogous features are provided by CORBA and COM+
– These features lower the total cost of ownership (TCO).
• App servers still cannot match performance of TP Monitors.
Application Servers
Support for the Application Logic
30
• CGI takes black-box approach in implementing the presentation layer of
a Web application.
– Link to middleware platform without requiring changes to it.
– It’s a good solution for legacy applications.
– True integration requires middleware cooperation (middleware should be modified to
provide the necessary support to make its services accessible through the Web).
• Application servers provide more sophisticated implementations which
are making the transition between Web documents and programming
abstractions more efficient, flexible and manageable.
– Variety of presentation features to support delivery of dynamically generated,
personalized content (i.e., documents) to different types of clients: Web browsers,
applications, devices, email-programs, Web service clients.
Application Servers
Support for the Presentation Layer
31
Application Servers
Support for the Presentation Layer
Web server
E-mail server
servers for other
connections (e.g., WAP)
presentation layer
Servlets JSPs
multidevice content delivery
personalization logic
connection to resource mgmt layer
resource management layer
application logic layer
services
(load
balancing,
pooling,
caching,…)
XML
support
Web services
support
administration
(management
and
security)
client
Copyright
Springer
Verlag
Berlin
Heidelberg
2004
32
• Web browsers
– The dynamic components which generate HTML are integrated with the application
logic layer.
– JSP fragments can be easily linked with EJBs through EJB containers.
– Applets may interact with app server through RMI and CORBA/IIOP.
• Devices
– Smaller devices may use XHTML Mobile Profile.
– Dynamic generation of content in different markup languages and automatic
conversion between these languages is also needed.
– Devices may be peculiar and this may impose some problems in terms of information
organization, etc. It may require different presentation (and even application) logic to
be written.
• Email-programs
– App server may support packaging of information which is delivered through SMTP.
• Web service clients
– Require support for SOAP.
• App servers may also offer personalization services
– Supported through the definition of condition/action rules.
Application Servers
Support for the Presentation Layer – Support for clients
33
Technical Solution
Web Technologies for Application Integration
34
Web Technologies for Application Integration
Architectures for WAN integration
• Integrating systems that are separated by a wide area network.
• Almost all combinations between the constituent parts of a 3-tier
architecture are possible.
• The suitable strategy is chosen on top of a number of factors such as
– level of standardization,
– communication protocols, etc.
• Before the pervasive Web only two of the strategies were realistic:
– specialized clients at the level of message exchanges, and
– direct integration of middleware layers (if they are compatible).
35
Web Technologies for Application Integration
Architectures for WAN integration
client
server
(resource manager)
middleware
client
server
(resource manager)
middleware
wide
area
network
(Internet)
Copyright
Springer
Verlag
Berlin
Heidelberg
2004
36
• Conventional middleware is extended to support the Internet as one of
the access channels.
• Different branches of the same company may implement their own
middleware solutions which eventually must communicate to each
other.
• Business-To-Business (B2B) electronic transaction exchanges
– Enable inter-company communication.
– Faster, more cost effective, less error prone, logs data for monitoring and analysis.
• Services must be invoked which reside in the different company
branches.
– Relatively easy to do – CORBA allows this through Internet-wide integration of ORBs
by relying on the General Inter-ORB Protocol (GIOP).
– Call over GIOP is translated to IIOP and then finally to TCP/IP call.
– But ORBs are typically hidden behind firewalls, problem of agreeing upon interface
definitions and data formats exists, directory service is needed to discover objects.
Web Technologies for Application Integration
Middleware Extensions
37
• Firewall is a barrier against unwanted network traffic
– It blocks many communication channels in doing so (almost all forms of
communication employed by conventional EAI products cannot traverse a well-
configured firewall - no usage of RCP, RMI, GIOP/IIOP).
• In traditional middleware this problem never appears.
– Every component in the system trusts and knows every other component.
• The solution is to trick the firewall into believing that traffic is actually
allowed
– Tunneling stands for packaging the hidden protocol into the allowed one.
– It is common to enable tunneling through HTTP or SSH.
– Intermediary must be used to convert original message into HTML or XML, send
document using HTTP, extract the message from one document once it reaches the
recipient.
– Resulting architecture is rather cumbersome as it requires yet additional layer and
introduces another level of indirection.
Web Technologies for Application Integration
Firewalls and tunneling through HTTP
38
Web Technologies for Application Integration
Firewalls and tunneling through HTTP
client
wide
area
network
(Internet)
Web
server
client
Web
server
firewall
firewall
HTTP tunnel
server
(resource manager)
server
(resource manager)
middleware
remote-middleware
protocol
WAN communication
protocol
middleware
remote-middleware
protocol
WAN communication
protocol
Copyright Springer Verlag Berlin Heidelberg 2004
39
• Electronic Data Interchange For Administration, Commerce and Transport
(EDIFACT) is developed under UN and standardized in ISO 9735.
• Identifying common syntax and semantics for the exchanged data between
companies is of primary interest
– Interpretation of received data must be unambiguous.
• In conventional middleware the problem is hidden behind IDLs
– intermediate data representation helps bridging the difference between operating systems
and computer architectures.
• In message-oriented system they are determined by EDIFACT standard
– Provides standard templates for the messages and for the content of the messages.
– A message is encoded in ASCII and handled by converters.
– EDIFACT defines an extensive collection of standardized message types: Quality data,
Purchase Orders, etc.
• EDIFACT facilitates commercial electronic exchanges
– Parsers can be generated to automatically take data from a message and deliver it to the
application logic.
• The downside is that EDIFACT wants to do much, much more that it is
meant – it’s a very complex standard.
Web Technologies for Application Integration
Common Data Representation: EDIFACT
40
• EDIFACT can be used for exchanges that have been standardized.
– Information exchanged over the Web is much more varied and richer for any such a
standardization attempt.
• XML focuses on syntax, rather than semantics of the documents
exchanged.
– Clearly defined structure helps users to understand semantics of the different parts of
the document.
• Tools for parsing and extracting info are standardized.
– Validation is supported through XML Schema and DTD.
• In contrast to EDIFACT XML program needs additional understanding
of how to process the information.
– Standardization bodies can specify XML document types, and define meaning (often
in plain English) which can be exchanged by parties – e.g. RosettaNet.
Web Technologies for Application Integration
Common Data Representation: XML
41
Possible Extensions
42
Possible Extensions
• The Semantic Web
– An extension and evolving development of the World Wide Web.
– Semantics of information and services is precisely defined.
– The data can be “understood” in the process of satisfying requests of people and
machines while processing the Web content.
– The Semantic Web specifications and languages (RDF(S), OWL, RIF, etc.) are built on
top of the Web specifications and languages.
Figure taken from http://en.wikipedia.org/wiki/Semantic_web
43
Summary
44
Summary
• Web technologies enable data and services sharing across the
boundary of a single company
• In a nutshell core Web technologies (HTTP, HTML, URI) enable
document-style information exchange over the Internet
• Various solutions have been introduced on top of the basic Web
technologies in order to
– Support remote clients (Java Servlets and Applets, CGI scripts),
– Extend middleware towards Web (Application Servers),
– Enable Internet-wide application integration (middleware extensions, HTTP
tunneling, common data representation formats).
45
References
46
References
• Mandatory reading
– Gustavo Alonso, Fabio Casati, Harumi Kuno, and Vijay Machiraju. Web Services -
Concepts, Architectures and Applications. Springer-Verlag, 2004. 4th chapter
• Wiki and Web reference
– ARPANET http://en.wikipedia.org/wiki/ARPANET
– TCP/IP http://en.wikipedia.org/wiki/TCP/IP
– SMTP http://en.wikipedia.org/wiki/SMTP
– MIME http://en.wikipedia.org/wiki/MIME
– Telnet http://en.wikipedia.org/wiki/Telnet
– FTP http://en.wikipedia.org/wiki/FTP
– Archie search engine http://en.wikipedia.org/wiki/Archie_search_engine
– Gopher http://en.wikipedia.org/wiki/Gopher_(protocol)
– HTTP http://en.wikipedia.org/wiki/HTTP
– HTML http://en.wikipedia.org/wiki/HTML
– URI http://en.wikipedia.org/wiki/URI
– URL http://en.wikipedia.org/wiki/URL
47
• Wiki and Web reference (cont’d)
– TLS/SSL http://en.wikipedia.org/wiki/Transport_Layer_Security
– HTTPS http://en.wikipedia.org/wiki/HTTPS
– B2C http://en.wikipedia.org/wiki/B2C
– CGI http://en.wikipedia.org/wiki/Common_Gateway_Interface
– JSP http://en.wikipedia.org/wiki/JavaServer_Pages
– Java Servlet http://en.wikipedia.org/wiki/Java_Servlet
– Java Applet http://en.wikipedia.org/wiki/Java_Applet
– J2EE http://en.wikipedia.org/wiki/J2EE
– EJB http://en.wikipedia.org/wiki/EJB
– JNDI http://en.wikipedia.org/wiki/JNDI
– JMS http://en.wikipedia.org/wiki/Java_Message_Service
– XHTML Mobile Profile http://en.wikipedia.org/wiki/XHTML_Mobile_Profile
– B2B http://en.wikipedia.org/wiki/Business-to-business
– EDIFACT http://en.wikipedia.org/wiki/EDIFACT
– XML http://en.wikipedia.org/wiki/XML
– RosettaNet http://en.wikipedia.org/wiki/RosettaNet
References
48
Next Lecture
# Title
1 Distributed Information Systems
2 Middleware
3 Web Technologies
4 Web Services
5 Basic Web Service Technologies
6 Web Service Composition
7 Web 2.0 Services
8 Web Service Security
49
Questions?
1 de 49

Recomendados

Ws 05-basic webservicestechnology por
Ws 05-basic webservicestechnologyWs 05-basic webservicestechnology
Ws 05-basic webservicestechnologySTI Innsbruck
86 visualizações60 slides
Ws 06-web 2.0 services por
Ws 06-web 2.0 servicesWs 06-web 2.0 services
Ws 06-web 2.0 servicesSTI Innsbruck
91 visualizações70 slides
Ws 01-distributed informationsystems por
Ws 01-distributed informationsystemsWs 01-distributed informationsystems
Ws 01-distributed informationsystemsSTI Innsbruck
86 visualizações52 slides
Ws 02-middleware por
Ws 02-middlewareWs 02-middleware
Ws 02-middlewareSTI Innsbruck
111 visualizações51 slides
Ws 04-web services por
Ws 04-web servicesWs 04-web services
Ws 04-web servicesSTI Innsbruck
105 visualizações43 slides
Web services por
Web servicesWeb services
Web servicesishmecse13
509 visualizações30 slides

Mais conteúdo relacionado

Mais procurados

Client Server Architecture por
Client Server ArchitectureClient Server Architecture
Client Server Architecturesuks_87
81.3K visualizações65 slides
Cs8591 Computer Networks - UNIT V por
Cs8591 Computer Networks - UNIT VCs8591 Computer Networks - UNIT V
Cs8591 Computer Networks - UNIT Vpkaviya
772 visualizações77 slides
Client Server Network By Usman Ihsan por
Client Server Network By Usman IhsanClient Server Network By Usman Ihsan
Client Server Network By Usman IhsanSubhan_Virk_UAF
1.7K visualizações13 slides
Sws lecture10-handouts por
Sws lecture10-handoutsSws lecture10-handouts
Sws lecture10-handoutsSTI Innsbruck
85 visualizações43 slides
Cis017 6 revision-2015_distributed por
Cis017 6 revision-2015_distributedCis017 6 revision-2015_distributed
Cis017 6 revision-2015_distributedabdullah al-Thani
175 visualizações23 slides
Sw 05-semantic annotation por
Sw 05-semantic annotationSw 05-semantic annotation
Sw 05-semantic annotationSTI Innsbruck
67 visualizações45 slides

Mais procurados(20)

Client Server Architecture por suks_87
Client Server ArchitectureClient Server Architecture
Client Server Architecture
suks_8781.3K visualizações
Cs8591 Computer Networks - UNIT V por pkaviya
Cs8591 Computer Networks - UNIT VCs8591 Computer Networks - UNIT V
Cs8591 Computer Networks - UNIT V
pkaviya772 visualizações
Client Server Network By Usman Ihsan por Subhan_Virk_UAF
Client Server Network By Usman IhsanClient Server Network By Usman Ihsan
Client Server Network By Usman Ihsan
Subhan_Virk_UAF1.7K visualizações
Sws lecture10-handouts por STI Innsbruck
Sws lecture10-handoutsSws lecture10-handouts
Sws lecture10-handouts
STI Innsbruck85 visualizações
Cis017 6 revision-2015_distributed por abdullah al-Thani
Cis017 6 revision-2015_distributedCis017 6 revision-2015_distributed
Cis017 6 revision-2015_distributed
abdullah al-Thani175 visualizações
Sw 05-semantic annotation por STI Innsbruck
Sw 05-semantic annotationSw 05-semantic annotation
Sw 05-semantic annotation
STI Innsbruck67 visualizações
CS8651 Internet Programming - Basics of HTML, HTML5, CSS por Vigneshkumar Ponnusamy
CS8651   Internet Programming - Basics of HTML, HTML5, CSSCS8651   Internet Programming - Basics of HTML, HTML5, CSS
CS8651 Internet Programming - Basics of HTML, HTML5, CSS
Vigneshkumar Ponnusamy1.6K visualizações
Application Layer Protocols for the IoT por Damien Magoni
Application Layer Protocols for the IoTApplication Layer Protocols for the IoT
Application Layer Protocols for the IoT
Damien Magoni1.2K visualizações
Peer to peer system por Jahanzaib Niazi
Peer to peer systemPeer to peer system
Peer to peer system
Jahanzaib Niazi15.9K visualizações
Project report on mesh hybrid topology network vision por Jignesh Ameta
Project report on mesh hybrid topology network visionProject report on mesh hybrid topology network vision
Project report on mesh hybrid topology network vision
Jignesh Ameta711 visualizações
Html por kousika
HtmlHtml
Html
kousika68 visualizações
Ex 1 chapter04-transport-layer-tony_chen por Đô GiẢn
Ex 1 chapter04-transport-layer-tony_chenEx 1 chapter04-transport-layer-tony_chen
Ex 1 chapter04-transport-layer-tony_chen
Đô GiẢn873 visualizações
Client server technology por Anwar Kamal
Client server technologyClient server technology
Client server technology
Anwar Kamal6.9K visualizações
Client Server Model and Distributed Computing por Abhishek Jaisingh
Client Server Model and Distributed ComputingClient Server Model and Distributed Computing
Client Server Model and Distributed Computing
Abhishek Jaisingh13.6K visualizações
Communication in Distributed Systems por Dilum Bandara
Communication in Distributed SystemsCommunication in Distributed Systems
Communication in Distributed Systems
Dilum Bandara933 visualizações
Kollective_SD_ECDN_WP[1] por Glen Howard
Kollective_SD_ECDN_WP[1]Kollective_SD_ECDN_WP[1]
Kollective_SD_ECDN_WP[1]
Glen Howard377 visualizações
WiFi - IEEE 802.11 por Damien Magoni
WiFi - IEEE 802.11WiFi - IEEE 802.11
WiFi - IEEE 802.11
Damien Magoni230 visualizações
Object and component based middleware for distributed system development por ektabhalwara
Object and component based middleware for distributed system developmentObject and component based middleware for distributed system development
Object and component based middleware for distributed system development
ektabhalwara4.6K visualizações

Similar a Ws 03-web technologies

ch01-Internet & Web Basics &.ppt por
ch01-Internet & Web Basics &.pptch01-Internet & Web Basics &.ppt
ch01-Internet & Web Basics &.pptGmachImen
27 visualizações20 slides
Week two lecture por
Week two lectureWeek two lecture
Week two lectureHarry Essel
356 visualizações34 slides
WEB-DBMS A quick reference por
WEB-DBMS A quick referenceWEB-DBMS A quick reference
WEB-DBMS A quick referenceMarc Dy
4.5K visualizações96 slides
1. web technology basics por
1. web technology basics1. web technology basics
1. web technology basicsJyoti Yadav
327 visualizações66 slides
Introduction to internet technology por
Introduction to internet technologyIntroduction to internet technology
Introduction to internet technologyOnline
17K visualizações41 slides
Web technology-guide por
Web technology-guideWeb technology-guide
Web technology-guideSrihari
102 visualizações14 slides

Similar a Ws 03-web technologies(20)

ch01-Internet & Web Basics &.ppt por GmachImen
ch01-Internet & Web Basics &.pptch01-Internet & Web Basics &.ppt
ch01-Internet & Web Basics &.ppt
GmachImen27 visualizações
Week two lecture por Harry Essel
Week two lectureWeek two lecture
Week two lecture
Harry Essel356 visualizações
WEB-DBMS A quick reference por Marc Dy
WEB-DBMS A quick referenceWEB-DBMS A quick reference
WEB-DBMS A quick reference
Marc Dy4.5K visualizações
1. web technology basics por Jyoti Yadav
1. web technology basics1. web technology basics
1. web technology basics
Jyoti Yadav327 visualizações
Introduction to internet technology por Online
Introduction to internet technologyIntroduction to internet technology
Introduction to internet technology
Online 17K visualizações
Web technology-guide por Srihari
Web technology-guideWeb technology-guide
Web technology-guide
Srihari102 visualizações
An Introduction To World Wide Web por Abhishek Kharbanda
An Introduction To World Wide WebAn Introduction To World Wide Web
An Introduction To World Wide Web
Abhishek Kharbanda110 visualizações
How the internet_works por arun nalam
How the internet_worksHow the internet_works
How the internet_works
arun nalam3K visualizações
Unit Iv por Anshumali Singh
Unit IvUnit Iv
Unit Iv
Anshumali Singh477 visualizações
Unit 1. chapter 5. presentation internet por gabriela-technoteacher
Unit 1. chapter 5. presentation internetUnit 1. chapter 5. presentation internet
Unit 1. chapter 5. presentation internet
gabriela-technoteacher1.3K visualizações
WP Chap 1 & 2.pptx por AnkitaChauhan79
WP Chap 1 & 2.pptxWP Chap 1 & 2.pptx
WP Chap 1 & 2.pptx
AnkitaChauhan7919 visualizações
Module 1 Basic.pptx por reddragon32
Module 1 Basic.pptxModule 1 Basic.pptx
Module 1 Basic.pptx
reddragon3214 visualizações
Unit 1 web technology uptu slide por Abhishek Kesharwani
Unit 1 web technology uptu slideUnit 1 web technology uptu slide
Unit 1 web technology uptu slide
Abhishek Kesharwani828 visualizações
Multimedia- How Internet Works por sambhenilesh
Multimedia- How Internet WorksMultimedia- How Internet Works
Multimedia- How Internet Works
sambhenilesh3.3K visualizações
Microservices por Karol Grzegorczyk
MicroservicesMicroservices
Microservices
Karol Grzegorczyk2.8K visualizações
Www architecture,cgi, client server security, protection por Austina Francis
Www architecture,cgi, client server security, protectionWww architecture,cgi, client server security, protection
Www architecture,cgi, client server security, protection
Austina Francis10.9K visualizações
Internet, Intranet and Extranet por Maryam Fida
Internet, Intranet and Extranet Internet, Intranet and Extranet
Internet, Intranet and Extranet
Maryam Fida655 visualizações
Internet and web by Gulshan K Maheshwari(QAU) por GulshanKumar368
Internet and web by Gulshan  K Maheshwari(QAU)Internet and web by Gulshan  K Maheshwari(QAU)
Internet and web by Gulshan K Maheshwari(QAU)
GulshanKumar36892 visualizações
IT2255 Web Essentials - Unit I Website Basics por pkaviya
IT2255 Web Essentials - Unit I  Website BasicsIT2255 Web Essentials - Unit I  Website Basics
IT2255 Web Essentials - Unit I Website Basics
pkaviya276 visualizações

Mais de STI Innsbruck

Lecture5a por
Lecture5aLecture5a
Lecture5aSTI Innsbruck
135 visualizações49 slides
Lecture5 por
Lecture5Lecture5
Lecture5STI Innsbruck
72 visualizações27 slides
Lecture4a por
Lecture4aLecture4a
Lecture4aSTI Innsbruck
87 visualizações15 slides
Lecture4 por
Lecture4Lecture4
Lecture4STI Innsbruck
67 visualizações21 slides
Lecture3 por
Lecture3Lecture3
Lecture3STI Innsbruck
71 visualizações47 slides
Lecture2 por
Lecture2Lecture2
Lecture2STI Innsbruck
57 visualizações26 slides

Mais de STI Innsbruck(20)

Lecture5a por STI Innsbruck
Lecture5aLecture5a
Lecture5a
STI Innsbruck135 visualizações
Lecture5 por STI Innsbruck
Lecture5Lecture5
Lecture5
STI Innsbruck72 visualizações
Lecture4a por STI Innsbruck
Lecture4aLecture4a
Lecture4a
STI Innsbruck87 visualizações
Lecture4 por STI Innsbruck
Lecture4Lecture4
Lecture4
STI Innsbruck67 visualizações
Lecture3 por STI Innsbruck
Lecture3Lecture3
Lecture3
STI Innsbruck71 visualizações
Lecture2 por STI Innsbruck
Lecture2Lecture2
Lecture2
STI Innsbruck57 visualizações
Lecture1 por STI Innsbruck
Lecture1Lecture1
Lecture1
STI Innsbruck55 visualizações
01 introduction por STI Innsbruck
01 introduction01 introduction
01 introduction
STI Innsbruck196 visualizações
11 -web_application_development_process_and_project_management_ por STI Innsbruck
11  -web_application_development_process_and_project_management_11  -web_application_development_process_and_project_management_
11 -web_application_development_process_and_project_management_
STI Innsbruck101 visualizações
10 -web_mashups por STI Innsbruck
10  -web_mashups10  -web_mashups
10 -web_mashups
STI Innsbruck86 visualizações
09 -web_technologies_iii por STI Innsbruck
09  -web_technologies_iii09  -web_technologies_iii
09 -web_technologies_iii
STI Innsbruck77 visualizações
08 -web_technologies_ii por STI Innsbruck
08  -web_technologies_ii08  -web_technologies_ii
08 -web_technologies_ii
STI Innsbruck66 visualizações
07 -web_technologies_i por STI Innsbruck
07  -web_technologies_i07  -web_technologies_i
07 -web_technologies_i
STI Innsbruck85 visualizações
06 testing and-usability_on_the_web por STI Innsbruck
06 testing and-usability_on_the_web06 testing and-usability_on_the_web
06 testing and-usability_on_the_web
STI Innsbruck68 visualizações
05 web architectures por STI Innsbruck
05 web architectures05 web architectures
05 web architectures
STI Innsbruck79 visualizações
04b design review por STI Innsbruck
04b design review04b design review
04b design review
STI Innsbruck68 visualizações
04a developing applications-with_web_ml por STI Innsbruck
04a developing applications-with_web_ml04a developing applications-with_web_ml
04a developing applications-with_web_ml
STI Innsbruck57 visualizações
03 web modeling por STI Innsbruck
03 web modeling03 web modeling
03 web modeling
STI Innsbruck279 visualizações
02 requirements por STI Innsbruck
02 requirements02 requirements
02 requirements
STI Innsbruck71 visualizações
Sws exercise12 por STI Innsbruck
Sws exercise12Sws exercise12
Sws exercise12
STI Innsbruck15 visualizações

Último

Parts of Speech (1).pptx por
Parts of Speech (1).pptxParts of Speech (1).pptx
Parts of Speech (1).pptxmhkpreet001
46 visualizações20 slides
Monthly Information Session for MV Asterix (November) por
Monthly Information Session for MV Asterix (November)Monthly Information Session for MV Asterix (November)
Monthly Information Session for MV Asterix (November)Esquimalt MFRC
107 visualizações26 slides
BUSINESS ETHICS MODULE 1 UNIT I_A.pdf por
BUSINESS ETHICS MODULE 1 UNIT I_A.pdfBUSINESS ETHICS MODULE 1 UNIT I_A.pdf
BUSINESS ETHICS MODULE 1 UNIT I_A.pdfDr Vijay Vishwakarma
40 visualizações25 slides
MUET Newsletter Vol-IX, Issue-III, 2023 por
MUET Newsletter Vol-IX, Issue-III, 2023MUET Newsletter Vol-IX, Issue-III, 2023
MUET Newsletter Vol-IX, Issue-III, 2023Mehran University of Engineering & Technology, Jamshoro
139 visualizações16 slides
CUNY IT Picciano.pptx por
CUNY IT Picciano.pptxCUNY IT Picciano.pptx
CUNY IT Picciano.pptxapicciano
64 visualizações17 slides
UNIDAD 3 6º C.MEDIO.pptx por
UNIDAD 3 6º C.MEDIO.pptxUNIDAD 3 6º C.MEDIO.pptx
UNIDAD 3 6º C.MEDIO.pptxMarcosRodriguezUcedo
146 visualizações32 slides

Último(20)

Parts of Speech (1).pptx por mhkpreet001
Parts of Speech (1).pptxParts of Speech (1).pptx
Parts of Speech (1).pptx
mhkpreet00146 visualizações
Monthly Information Session for MV Asterix (November) por Esquimalt MFRC
Monthly Information Session for MV Asterix (November)Monthly Information Session for MV Asterix (November)
Monthly Information Session for MV Asterix (November)
Esquimalt MFRC107 visualizações
BUSINESS ETHICS MODULE 1 UNIT I_A.pdf por Dr Vijay Vishwakarma
BUSINESS ETHICS MODULE 1 UNIT I_A.pdfBUSINESS ETHICS MODULE 1 UNIT I_A.pdf
BUSINESS ETHICS MODULE 1 UNIT I_A.pdf
Dr Vijay Vishwakarma40 visualizações
CUNY IT Picciano.pptx por apicciano
CUNY IT Picciano.pptxCUNY IT Picciano.pptx
CUNY IT Picciano.pptx
apicciano64 visualizações
UNIDAD 3 6º C.MEDIO.pptx por MarcosRodriguezUcedo
UNIDAD 3 6º C.MEDIO.pptxUNIDAD 3 6º C.MEDIO.pptx
UNIDAD 3 6º C.MEDIO.pptx
MarcosRodriguezUcedo146 visualizações
PRELIMS ANSWER.pptx por souravkrpodder
PRELIMS ANSWER.pptxPRELIMS ANSWER.pptx
PRELIMS ANSWER.pptx
souravkrpodder50 visualizações
Nelson_RecordStore.pdf por BrynNelson5
Nelson_RecordStore.pdfNelson_RecordStore.pdf
Nelson_RecordStore.pdf
BrynNelson546 visualizações
Berry country.pdf por MariaKenney3
Berry country.pdfBerry country.pdf
Berry country.pdf
MariaKenney375 visualizações
Guess Papers ADC 1, Karachi University por Khalid Aziz
Guess Papers ADC 1, Karachi UniversityGuess Papers ADC 1, Karachi University
Guess Papers ADC 1, Karachi University
Khalid Aziz99 visualizações
JQUERY.pdf por ArthyR3
JQUERY.pdfJQUERY.pdf
JQUERY.pdf
ArthyR3105 visualizações
ICS3211_lecture 09_2023.pdf por Vanessa Camilleri
ICS3211_lecture 09_2023.pdfICS3211_lecture 09_2023.pdf
ICS3211_lecture 09_2023.pdf
Vanessa Camilleri141 visualizações
The Future of Micro-credentials: Is Small Really Beautiful? por Mark Brown
The Future of Micro-credentials:  Is Small Really Beautiful?The Future of Micro-credentials:  Is Small Really Beautiful?
The Future of Micro-credentials: Is Small Really Beautiful?
Mark Brown75 visualizações
Class 9 lesson plans por TARIQ KHAN
Class 9 lesson plansClass 9 lesson plans
Class 9 lesson plans
TARIQ KHAN82 visualizações
EILO EXCURSION PROGRAMME 2023 por info33492
EILO EXCURSION PROGRAMME 2023EILO EXCURSION PROGRAMME 2023
EILO EXCURSION PROGRAMME 2023
info33492202 visualizações
Retail Store Scavenger Hunt.pptx por jmurphy154
Retail Store Scavenger Hunt.pptxRetail Store Scavenger Hunt.pptx
Retail Store Scavenger Hunt.pptx
jmurphy15452 visualizações
NodeJS and ExpressJS.pdf por ArthyR3
NodeJS and ExpressJS.pdfNodeJS and ExpressJS.pdf
NodeJS and ExpressJS.pdf
ArthyR348 visualizações
Java Simplified: Understanding Programming Basics por Akshaj Vadakkath Joshy
Java Simplified: Understanding Programming BasicsJava Simplified: Understanding Programming Basics
Java Simplified: Understanding Programming Basics
Akshaj Vadakkath Joshy653 visualizações
Jibachha publishing Textbook.docx por DrJibachhaSahVetphys
Jibachha publishing Textbook.docxJibachha publishing Textbook.docx
Jibachha publishing Textbook.docx
DrJibachhaSahVetphys54 visualizações

Ws 03-web technologies

  • 2. 2 Where are we? # Title 1 Distributed Information Systems 2 Middleware 3 Web Technologies 4 Web Services 5 Basic Web Service Technologies 6 Web 2.0 Services 7 Web Service Security
  • 3. 3 Outline • Motivation • Technical solution – Exchanging Information over the Internet – Web Technologies for Supporting Remote Clients – Application Servers – Web Technologies for Application Integration • Possible extensions • Summary • Resources
  • 5. 5 Motivation • Data and services often need to be shared across the boundaries of a single company or business unit: – Integration of different branches of the same company. – Automation of business processes that encompass several companies. • The Web emerged as a technology for sharing information over the Internet. – It quickly became a medium for connecting remote clients and servers across the Internet. – More recently (with the advent of Web services) it became a medium for integrating applications across the Internet. • This lesson aims at introducing basic Web technologies that are used to implement “Web” portion of Web services.
  • 7. 7 Exchanging Information over the Internet Brief history • In 1969 ARPA connected four universities in the US, building the network called ARPANET – The connected systems were autonomous and heterogeneous. – First standardization bodies were formed to govern the development of the network. • One of the most prominent standards developed then is TCP/IP. • Before the Web there were some other standards – Simple Mail Transfer Protocol (SMTP) – which is still the way to send e-mail • Later extended with Multi-purpose Internet Mail Extensions (MIME) – Telnet protocol – File Transfer Protocol (FTP) • Arrived soon after SMTP and Telnet. • Permitted anonymous file transfers. – Archie • Used FTP to create a distributed file system, index FTP archives and search through them. – Gopher • Simple client/server system and GUI for or distributing, searching, and retrieving text documents over the Internet. • Core Web technologies (HTTP, HTML, Web servers and browsers) are evolution of those early technologies.
  • 8. 8 • Generic stateless protocol governing file transfer across a network. • Originally developed by European Laboratory for Particle Physics (CERN) – The idea was to enable researchers to share their results and knowledge in a fast, easy and convenient manner. • The same team came up with the name World Wide Web – The idea is today promoted and governed by WWW Consortium (W3C). • Designed to support hypertext documents – HTTP supports Hyper Text Markup Language (HTML). – HTML defines standard set of markups used to render the information for human consumption. Exchanging Information over the Internet Hyper Text Transfer Protocol (HTTP)
  • 9. 9 • HTTP documents are identified by Uniform Resource Identifiers (URIs). – URIs come in two flavors: Uniform Resource Locators (URLs) and Uniform Resource Names (URNs). • URLs are the dominant way to identify documents over the Web. – In addition to identifying a resource, a URL provides a means to locate it • A URL defines the name of the protocol (i.e., scheme) which should be used to access the document, the address of the machine where the resource is located, and hierarchical description of the resource location (and more like query string, and anchor). • Documents can be static or dynamic – Dynamic documents are partially or in whole generated upon request. Exchanging Information over the Internet Hyper Text Transfer Protocol (HTTP)
  • 10. 10 • HTTP underlying mechanism is Client/Server. • HTTP typically relies on TCP/IP sockets. • Starting from version 1.1 persistent connections are also supported. • Most frequently used request methods are – OPTIONS – sends information about the communication options supported by a particular server, – GET – retrieves the specified document, – POST – appends or attaches the included data to the specified resource, – PUT – stores the included data at the location specified by the request, and – DELETE – deletes the resource indicated by the request. Exchanging Information over the Internet Hyper Text Transfer Protocol (HTTP)
  • 11. 11 Exchanging Information over the Internet Hyper Text Transfer Protocol (HTTP) - Example
  • 12. 12 • Proxy (RFC 2616) – Intermediary program acting both as server and client for the purpose of making requests on behalf of other clients. – Potentially processes the URL and content. • Gateway – Server acting as intermediary for some other server for the requested resource. – Acts on behalf of a server. – Potentially processes the URL and content. • Tunnel – An intermediary program which is acting as a blind relay between two connections. – Used to connect two networks. – Doesn’t process anything. • Intermediary systems are enabling integration in the Web environment. Exchanging Information over the Internet Hyper Text Transfer Protocol – Intermediary systems
  • 13. 13 Exchanging Information over the Internet Hyper Text Transfer Protocol – Intermediary systems HTTP client wide area network (Internet) HTTP proxy HTTP server HTTP gateway firewall firewall HTTP tunnel Copyright Springer Verlag Berlin Heidelberg 2004
  • 14. 14 • No data encryption – Secure Socket Layer (SSL) developed by Netscape (1996), and its successor Transport Layer Security (TLS). • Relies on public key encryption to protect data transferred over TCP/IP. – Hyper Text Transfer Protocol over TLS/SSL (HTTPS) • Allows Web server and client to use TLS/SSL to authenticate to each other and establish an encrypted connection between themselves. • Protocol is stateless – Information is not shared across HTTP request/response roundtrips. – Application developer is responsible for maintaining the relationships (i.e., state). – HTTP Cookies developed by Netscape (1994). • Enabling deployment of small data structures on the client machine on behalf of Web server. • They can maintain state information, can be used for personalization, tracking, session management. Exchanging Information over the Internet Hyper Text Transfer Protocol – Limitations
  • 15. 15 Technical Solution Web Technologies for Supporting Remote Clients
  • 16. 16 Web Technologies for Supporting Remote Clients An Example • Conventional middleware is assuming operation inside of the safe company boundaries. • Information systems today are opening for some other users (e.g. customers) – Usage of Automatic Teller Machines (ATMs) by banks gives customers easier access to their accounts. – Manual work when dealing with customers disappears which reduces costs for banks. • ATMs are not in a personal possession and they still incur some costs for customers (they need to travel to use the provided services) – Once the customer owns its personal ATMs (i.e. client) possibilities are endless – advanced applications, no usage constrains, etc. • These are Business-To-Customer (B2C) operations – Customer is directly accessing company services. – Without Web technologies it would be quite complex to achieve efficient B2C.
  • 17. 17 Web Technologies for Supporting Remote Clients Extension of 3-tier architecture client client server (resource manager) middleware wide area network (Internet) HTTP client HTTP server Copyright Springer Verlag Berlin Heidelberg 2004
  • 18. 18 • Building sophisticated applications at the client side (i.e. on Web browser side) is difficult. • An applet is a Java program which can be embedded in an HTML document – Introduced by Sun Microsystems with the first version of Java language (1995). – The program is executed inside a Java Virtual Machine (JVM) in a controlled manner. – Client code (Java classes and associated artifacts) is sent to the client. – Applets turn the Web browser into an application-specific client without complex (re)configurations and installation procedures. – Applets are transient • Their lifetime is associated to the running browser instance. • Inadequate to support complex client code or frequent interactions. Web Technologies for Supporting Remote Clients Java Applets
  • 19. 19 Web Technologies for Supporting Remote Clients Java Applets middleware Web server client browser Java Virtual Machine applet wide area network (Internet) firewall server (resource manager) Copyright Springer Verlag Berlin Heidelberg 2004
  • 20. 20 • CGI is usually used to enable server to serve content from dynamic sources (e.g. publishing information from databases). • It basically enables HTTP server to interface with external applications (they can serve as “gateways” to the local information system). – CGI establishes binding between a program and a requested URL. – Program arguments are sent as part of requested URL. – CGI programs can be written in various languages. – A program is started as a separate process and it interacts with the underlying middleware. Web Technologies for Supporting Remote Clients Common Gateway Interface (CGI)
  • 21. 21 Web Technologies for Supporting Remote Clients Common Gateway Interface (CGI) middleware Web server browser wide area network (Internet) firewall HTTP GET request client CGI program server (resource manager) Copyright Springer Verlag Berlin Heidelberg 2004
  • 22. 22 • CGI programs involve certain overhead – Creation of separate processes limits scalability of the system. • Java servlets use exactly the same idea as CGI scripts but – Servlets are running as threads of a Java server process. – They run as a part of the Web server. – They are invoked directly by embedding servlet-specific information within an HTTP request. – This minimizes overhead, reduces memory requirements, and enables persistent context management in contrast to CGI scripts. • Session tracking, sharing of DB connections, caching as optimization technique. • The successor of servlets – Java Server Pages (JSP). Web Technologies for Supporting Remote Clients Java Servlets
  • 23. 23 Web Technologies for Supporting Remote Clients Java Servlets middleware browser wide area network (Internet) firewall HTTP GET request client Web server Java server process Java thread server (resource manager) Copyright Springer Verlag Berlin Heidelberg 2004
  • 25. 25 Application Servers Introduction • Increased usage of the Web as a channel to access information systems pushed middleware platforms to provide Web access support. • Application server is a middleware system equipped with Web access channels to the services implemented using the middleware. • The implications are following: – Presentation layer plays more significant role than in conventional middleware (information is exchanged through documents). – Presentation layer related to the Web and application layer are getting merged in order to allow an efficient delivery of content through the Web and to simplify Web application management. • Connectivity to the resource management layer is achieved through the standardized connection architectures and APIs (JDBC, ODBC).
  • 26. 26 Application Servers Introduction connection to resource mgmt layer presentation layer resource management layer application logic layer client Web server wide area network (Internet) firewall HTTP browser other protocols other servers (email, SOAP,..) Copyright Springer Verlag Berlin Heidelberg 2004
  • 27. 27 • Conceptually resemble conventional middleware platforms. – Functionality similar to CORBA, TP monitors, and message brokers. • Application server vendors are targeting to produce a unique environment to host all kinds of app logic, Web-based or the other. • The supporting services (transactions, security and persistence) are provided in an automatic and transparent manner. • J2EE application logic support concentrates on – Enterprise Java Beans (EJB), – Java Naming and Directory Interface (JNDI), and – Java Message Service (JMS). • EJB container hosts EJBs and enables application of logistic services through the mechanisms of interception. Application Servers Support for the Application Logic
  • 28. 28 Application Servers Support for the Application Logic – J2EE AS architecture application logic layer presentation layer services (load balancing, pooling, caching, transaction, persistence,…) administration (management and security) EJB EJB JDBC EJB JNDI J2CA resource adapter J2CA resource adapter other adapters DBMS applications enterprise system 1 enterprise system 2 enterprise system n EJB container JMS Copyright Springer Verlag Berlin Heidelberg 2004
  • 29. 29 • Application servers can provide services to simplify the administration and management of the applications and provide for performance and high availability – Caches, loading pools, monitoring, security, object administration, etc. • Analogous features are provided by CORBA and COM+ – These features lower the total cost of ownership (TCO). • App servers still cannot match performance of TP Monitors. Application Servers Support for the Application Logic
  • 30. 30 • CGI takes black-box approach in implementing the presentation layer of a Web application. – Link to middleware platform without requiring changes to it. – It’s a good solution for legacy applications. – True integration requires middleware cooperation (middleware should be modified to provide the necessary support to make its services accessible through the Web). • Application servers provide more sophisticated implementations which are making the transition between Web documents and programming abstractions more efficient, flexible and manageable. – Variety of presentation features to support delivery of dynamically generated, personalized content (i.e., documents) to different types of clients: Web browsers, applications, devices, email-programs, Web service clients. Application Servers Support for the Presentation Layer
  • 31. 31 Application Servers Support for the Presentation Layer Web server E-mail server servers for other connections (e.g., WAP) presentation layer Servlets JSPs multidevice content delivery personalization logic connection to resource mgmt layer resource management layer application logic layer services (load balancing, pooling, caching,…) XML support Web services support administration (management and security) client Copyright Springer Verlag Berlin Heidelberg 2004
  • 32. 32 • Web browsers – The dynamic components which generate HTML are integrated with the application logic layer. – JSP fragments can be easily linked with EJBs through EJB containers. – Applets may interact with app server through RMI and CORBA/IIOP. • Devices – Smaller devices may use XHTML Mobile Profile. – Dynamic generation of content in different markup languages and automatic conversion between these languages is also needed. – Devices may be peculiar and this may impose some problems in terms of information organization, etc. It may require different presentation (and even application) logic to be written. • Email-programs – App server may support packaging of information which is delivered through SMTP. • Web service clients – Require support for SOAP. • App servers may also offer personalization services – Supported through the definition of condition/action rules. Application Servers Support for the Presentation Layer – Support for clients
  • 33. 33 Technical Solution Web Technologies for Application Integration
  • 34. 34 Web Technologies for Application Integration Architectures for WAN integration • Integrating systems that are separated by a wide area network. • Almost all combinations between the constituent parts of a 3-tier architecture are possible. • The suitable strategy is chosen on top of a number of factors such as – level of standardization, – communication protocols, etc. • Before the pervasive Web only two of the strategies were realistic: – specialized clients at the level of message exchanges, and – direct integration of middleware layers (if they are compatible).
  • 35. 35 Web Technologies for Application Integration Architectures for WAN integration client server (resource manager) middleware client server (resource manager) middleware wide area network (Internet) Copyright Springer Verlag Berlin Heidelberg 2004
  • 36. 36 • Conventional middleware is extended to support the Internet as one of the access channels. • Different branches of the same company may implement their own middleware solutions which eventually must communicate to each other. • Business-To-Business (B2B) electronic transaction exchanges – Enable inter-company communication. – Faster, more cost effective, less error prone, logs data for monitoring and analysis. • Services must be invoked which reside in the different company branches. – Relatively easy to do – CORBA allows this through Internet-wide integration of ORBs by relying on the General Inter-ORB Protocol (GIOP). – Call over GIOP is translated to IIOP and then finally to TCP/IP call. – But ORBs are typically hidden behind firewalls, problem of agreeing upon interface definitions and data formats exists, directory service is needed to discover objects. Web Technologies for Application Integration Middleware Extensions
  • 37. 37 • Firewall is a barrier against unwanted network traffic – It blocks many communication channels in doing so (almost all forms of communication employed by conventional EAI products cannot traverse a well- configured firewall - no usage of RCP, RMI, GIOP/IIOP). • In traditional middleware this problem never appears. – Every component in the system trusts and knows every other component. • The solution is to trick the firewall into believing that traffic is actually allowed – Tunneling stands for packaging the hidden protocol into the allowed one. – It is common to enable tunneling through HTTP or SSH. – Intermediary must be used to convert original message into HTML or XML, send document using HTTP, extract the message from one document once it reaches the recipient. – Resulting architecture is rather cumbersome as it requires yet additional layer and introduces another level of indirection. Web Technologies for Application Integration Firewalls and tunneling through HTTP
  • 38. 38 Web Technologies for Application Integration Firewalls and tunneling through HTTP client wide area network (Internet) Web server client Web server firewall firewall HTTP tunnel server (resource manager) server (resource manager) middleware remote-middleware protocol WAN communication protocol middleware remote-middleware protocol WAN communication protocol Copyright Springer Verlag Berlin Heidelberg 2004
  • 39. 39 • Electronic Data Interchange For Administration, Commerce and Transport (EDIFACT) is developed under UN and standardized in ISO 9735. • Identifying common syntax and semantics for the exchanged data between companies is of primary interest – Interpretation of received data must be unambiguous. • In conventional middleware the problem is hidden behind IDLs – intermediate data representation helps bridging the difference between operating systems and computer architectures. • In message-oriented system they are determined by EDIFACT standard – Provides standard templates for the messages and for the content of the messages. – A message is encoded in ASCII and handled by converters. – EDIFACT defines an extensive collection of standardized message types: Quality data, Purchase Orders, etc. • EDIFACT facilitates commercial electronic exchanges – Parsers can be generated to automatically take data from a message and deliver it to the application logic. • The downside is that EDIFACT wants to do much, much more that it is meant – it’s a very complex standard. Web Technologies for Application Integration Common Data Representation: EDIFACT
  • 40. 40 • EDIFACT can be used for exchanges that have been standardized. – Information exchanged over the Web is much more varied and richer for any such a standardization attempt. • XML focuses on syntax, rather than semantics of the documents exchanged. – Clearly defined structure helps users to understand semantics of the different parts of the document. • Tools for parsing and extracting info are standardized. – Validation is supported through XML Schema and DTD. • In contrast to EDIFACT XML program needs additional understanding of how to process the information. – Standardization bodies can specify XML document types, and define meaning (often in plain English) which can be exchanged by parties – e.g. RosettaNet. Web Technologies for Application Integration Common Data Representation: XML
  • 42. 42 Possible Extensions • The Semantic Web – An extension and evolving development of the World Wide Web. – Semantics of information and services is precisely defined. – The data can be “understood” in the process of satisfying requests of people and machines while processing the Web content. – The Semantic Web specifications and languages (RDF(S), OWL, RIF, etc.) are built on top of the Web specifications and languages. Figure taken from http://en.wikipedia.org/wiki/Semantic_web
  • 44. 44 Summary • Web technologies enable data and services sharing across the boundary of a single company • In a nutshell core Web technologies (HTTP, HTML, URI) enable document-style information exchange over the Internet • Various solutions have been introduced on top of the basic Web technologies in order to – Support remote clients (Java Servlets and Applets, CGI scripts), – Extend middleware towards Web (Application Servers), – Enable Internet-wide application integration (middleware extensions, HTTP tunneling, common data representation formats).
  • 46. 46 References • Mandatory reading – Gustavo Alonso, Fabio Casati, Harumi Kuno, and Vijay Machiraju. Web Services - Concepts, Architectures and Applications. Springer-Verlag, 2004. 4th chapter • Wiki and Web reference – ARPANET http://en.wikipedia.org/wiki/ARPANET – TCP/IP http://en.wikipedia.org/wiki/TCP/IP – SMTP http://en.wikipedia.org/wiki/SMTP – MIME http://en.wikipedia.org/wiki/MIME – Telnet http://en.wikipedia.org/wiki/Telnet – FTP http://en.wikipedia.org/wiki/FTP – Archie search engine http://en.wikipedia.org/wiki/Archie_search_engine – Gopher http://en.wikipedia.org/wiki/Gopher_(protocol) – HTTP http://en.wikipedia.org/wiki/HTTP – HTML http://en.wikipedia.org/wiki/HTML – URI http://en.wikipedia.org/wiki/URI – URL http://en.wikipedia.org/wiki/URL
  • 47. 47 • Wiki and Web reference (cont’d) – TLS/SSL http://en.wikipedia.org/wiki/Transport_Layer_Security – HTTPS http://en.wikipedia.org/wiki/HTTPS – B2C http://en.wikipedia.org/wiki/B2C – CGI http://en.wikipedia.org/wiki/Common_Gateway_Interface – JSP http://en.wikipedia.org/wiki/JavaServer_Pages – Java Servlet http://en.wikipedia.org/wiki/Java_Servlet – Java Applet http://en.wikipedia.org/wiki/Java_Applet – J2EE http://en.wikipedia.org/wiki/J2EE – EJB http://en.wikipedia.org/wiki/EJB – JNDI http://en.wikipedia.org/wiki/JNDI – JMS http://en.wikipedia.org/wiki/Java_Message_Service – XHTML Mobile Profile http://en.wikipedia.org/wiki/XHTML_Mobile_Profile – B2B http://en.wikipedia.org/wiki/Business-to-business – EDIFACT http://en.wikipedia.org/wiki/EDIFACT – XML http://en.wikipedia.org/wiki/XML – RosettaNet http://en.wikipedia.org/wiki/RosettaNet References
  • 48. 48 Next Lecture # Title 1 Distributed Information Systems 2 Middleware 3 Web Technologies 4 Web Services 5 Basic Web Service Technologies 6 Web Service Composition 7 Web 2.0 Services 8 Web Service Security