Web -Services-Intro_2009-12-03.ppt - Google Code

Document Sample
 Web -Services-Intro_2009-12-03.ppt - Google Code Powered By Docstoc
					Web Services
Kas ir Web servisi?
Eksistē daudz dažādas definīcijas…

“A software system designed to support
interoperable Machine to Machine
interaction over a network“

            “Web based application that uses open,
            XML-based standards and transport
            protocols to exchange data with clients”
W3C definīcija
 A Web service is a software application
    identified by a URI,
    whose interfaces and binding are
 capable of being defined, described and
 discovered by XML artifacts and
    supports direct interactions with other
 software applications
    using XML based messages
    via internet-based protocols
Citiem vārdiem...
• Web serviss ir programmatūra, kas ir
  identificējama tīmeklī pēc URI, kurai klienti
  piekļūst izmantojot uz XML balstītu protokolu
  (SOAP), kurš tiek izmantots virs Internet
  protokola (HTTP)
• Klienti piekļūst Web servisa programmai caur tas
  interfeisiem un saistībām (bindings), kuri ir
  definēti izmantojot XML artefaktus (WSDL)
No biznesa skatiena...
•       Web Services: A distributed or virtual applications or
        processes that use the Internet to link activities or
        software components.
•       A travel Web site that:
          •     takes a reservation from a customer,
          •     sends a message to a hotel application, accessed via
                the Web, to determine if a room is available,
          •     books it,
          •     tells the customer he or she has a reservation
        is an example of a Web Services application.
    “Business Process Trends”
Web servisu raksturojums
•   XML based everywhere
•   Message-based
•   Platform and programming language independent
•   Could be dynamically located
•   Could be dynamically assembled or aggregated
•   Accessed over the Internet
•   Loose coupling between invoker and service
•   Based on industry standards
Distributed Computing Evolution
Traditional C/S vs. Web Services
Web Application vs. Web Services
Web servisu attīstība
• Web servisu attīstības fāzes:
   •   Phase 1 (1999-2001)
        • Simple
        • Business-to-Consumer (B2C)
   •   Phase 2 (2002-2004)
        • Enterprise Application Integration (EAI)
        • Private UDDI Registries
   •   Phase 3 (2005-...)
        • Business-to-Business (B2B)
        • Public UDDI Registries

• [W3C] Web Services Activity: History
Web servisu arhitektūra
Web servisu standarti
• Common markup language for communication
   •   XML (eXtensible Markup Language)
• Common message format for exchanging
   •   SOAP (Simple Object Access Protocol)
• Common service specification formats
   •   WSDL (Web Services Description Language)
• Common means for service lookup
   •   UDDI (Universal Description, Discovery, and
Web Services Big Picture

• Service Discovery             Service Discovery
   •   UDDI
• Service Description          Service Description
   •   WSDL
• XML Messaging                  XML Messaging
   •   SOAP and XML-RPC
• Service Transport             Service Transport
   •   HTTP, SMTP, FTP etc.
                              The Protocol Stack
Web servisu mijiedarbība
  Web servisi un Web servisu klienti sadarbojas
  izmantojot SOAP, WSDL, UDDI tehnoloģijas
Pamata specifikācijas
• Pamata specifikācijas ir apvienotas WS-I profilā
• WS-I = Web Services Interoperability
• Svarīgākas WS-I specifikācijas:
   •   WS-I Basic Profile
   •   Simple Soap Binding Profile
   •   Basic Security Profile

• Papildus WS-I piedāvā:
   •   Sample Applications
   •   Testing Tools
Papildus specifikācijas
  Dažas specifikācijas bija izstrādātas, lai
  paplašināt Web servisu spējas un ir apvienotas
  WS-* profilā
  •   WS-Security
  •   WS-Reliability
  •   WS-ReliableMessaging
  •   WS-Addressing
  •   WS-Transaction
  •   WS-BPEL
  •   vēl daudz citas...
Java EE & Web Services
Java EE & Web Services
• J2EE community has defined overall framework
  for Web Services in J2EE 1.4 (JSR 109)
• Java EE 5 accelerates and radically simplifies
  Enterprise Java development, especially for Web
• The Java EE platform provides a complete
  framework for developing and deploying Web
  Services on the Java platform
Java EE tehnoloģijas
 Primāras Java EE 5 platformas tehnoloģijas:
 •   Java API for Web Services (JAX-WS) 2.0
 •   Java API for XML-Based RPC (JAX-RPC) 1.1
 •   Java Architecture for XML Binding (JAXB) 2.0
 •   SOAP with Attachments API for Java (SAAJ)
 •   Streaming API for XML (StAX)
 •   Web Service Metadata for the Java Platform
Web servisu veidi
Web servisu izmantošanas stili:
•   RPC = Remote procedure calls
    •   A distributed function (or method) call interface

•   SOA = Service-oriented architecture
    •   Basic unit of communication is a message, rather than an

•   RESTful = Representational state transfer
    •   An attempt to emulate HTTP and similar protocols by
        constraining the interface to a set of well-known, standard
        operations (e.g., GET, PUT, DELETE)
 Web servisu mijiedarbības veidi
• Sinhroni web servisi
   •   Klienti sūta pieprasījumu servisam un pārtrauc savu
       darbību kamēr gaida atbildi
   •   RPC-oriented approach
   •   JAX-RPC servlet endpoint

• Asinhroni web servisi
   •   Klienti inicializē servisa pieprasījumu un turpina savu
       darbību negaidot atbildi
   •   Document-oriented approach
   •   JAX-RPC servlet endpoint + JMS + EJB
• “Big Web Services”
   •   Traditional enterprise Web services
   •   SOAP & WSDL

• “Lighter-weight Web Services”
   •   RESTful approach
   •   Web API (feature of Web 2.0)
   •   Mashups
•   REST (Representational State Transfer)
    is a key design idiom that embraces a stateless client-
    server architecture in which the web services are viewed
    as resources and can be identified by their URLs

•   The definition of RESTful web service consists of
     •    The base URI for the web service (
     •    The MIME type of the data supported by the web service
           • e.g. JSON, XML, YAML
     •    The set of operations supported by the web service using HTTP
           • e.g. POST, GET, PUT, DELETE
•   Web APIs are functionalities made available by websites
    to their users or visitors in a programmatically way

•   Developers can use these Web APIs and enrich their
    applications with useful functions from third parties

•   Web API is a new direction to follow by W3C in a new
    working group: Web APIs Working Group

•   Some of the most well-known web APIs are
    •   Google Maps or Google Search
    •   Yahoo Maps or Yahoo Search
    •   eBay API
    •   Amazon API
    •   Paypal API
    •   Skype API
    •   and many more

•   Some links:
• Mashup is a web page or application that
  combines data or functionality from two or more
  external sources to create a new service
• Easy, fast integration, frequently using open APIs
  and data sources
• Types of mashups:
   •   consumer mashups
   •   data mashups
   •   enterprise mashup
   Spring Web Services
   • Spring Web Services (Spring-WS)
     is a product of the Spring community focused on
     creating document-driven Web services

   • Aims to facilitate contract-first SOAP service
     development (as opposed to contract-last approach)
• Web services provides a new paradigm for program
  to program communication

• Web services standards are XML, SOAP, WSDL
  and UDDI

• Comprehensive set of Java APIs for Web services
  is available!

• Java EE is the platform of choice for Web services
• Java Web Services At a Glance

• Book “J2EE Web Services”
  by Richard Monson-Haefel

• Web Service Interaction Architectures
•   JBoss Web Services

•   Spring Web Services

•   Java Web Services Overview Presentation

•   Another Java Web Services Overview Presentation
• Services Mashups: The New Generation of Web