web services. kas ir web servisi? eksistē daudz dažādas definīcijas… “a software system...
TRANSCRIPT
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 applicationidentified by a URI,
whose interfaces and binding are
capable of being defined, described and
discovered by XML artifacts andsupports direct interactions with other
software applicationsusing 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” http://www.bptrends.com/resources_glossary.cfm?letterFilter=W&displayMode=all
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: Historyhttp://www.w3.org/2002/ws/history.html
Web servisu arhitektūra
Web servisu standarti
• Common markup language for communication• XML (eXtensible Markup Language)
• Common message format for exchanging information• SOAP (Simple Object Access Protocol)
• Common service specification formats• WSDL (Web Services Description Language)
• Common means for service lookup• UDDI (Universal Description, Discovery, and
Integration)
Web Services Big Picture
• Service Discovery• UDDI
• Service Description• WSDL
• XML Messaging• SOAP and XML-RPC
• Service Transport• HTTP, SMTP, FTP etc.
XML Messaging
Service Transport
Service Discovery
Service Description
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 Services
• 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
operation
• 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
Classification
• “Big Web Services”• Traditional enterprise Web services
• SOAP & WSDL
• “Lighter-weight Web Services”• RESTful approach
• Web API (feature of Web 2.0)
• Mashups
RESTful
• 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 (http://example.com/resources/)
• 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 methods
• e.g. POST, GET, PUT, DELETE
http://java.sun.com/developer/technicalArticles/WebServices/restful/
Web API
• 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
http://www.w3.org/2006/webapi/
Web API
• 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:• http://www.programmableweb.com/apis • http://www.webapi.org • http://www.w3.org/2006/webapi/
Mashups
• 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)
http://static.springsource.org/spring-ws/sites/1.5/reference/html/index.html
Summary
• 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
References
• Java Web Services At a Glance http://java.sun.com/webservices/index.jsp
• Book “J2EE Web Services” by Richard Monson-Haefel
http://www.amazon.ca/J2EE-Web-Services-Richard-Monson-Haefel/dp/0321146182
• Web Service Interaction Architectures http://java.sun.com/blueprints/webservices/using/webservbp3.html
References
• JBoss Web Serviceshttp://labs.jboss.com/jbossws/
• Spring Web Services http://static.springframework.org/spring-ws
/site/index.html
• Java Web Services Overview Presentation http://www.javapassion.com/webservices/WebServicesOverview.pdf
• Another Java Web Services Overview Presentation http://www.dma.unina.it/~murli/GridSummerSchool2004/presentations/Fox/background/WebServicesOverview.pdf
References
• Services Mashups: The New Generation of Web Applicationshttp://dsonline.computer.org/portal/site/dsonline/menuitem.9ed3d9924aeb0dcd82ccc6716bbe36ec/index.jsp?&pName=dso_level1&path=dsonline/
2008/09&file=w5gei.xml&xsl=article.xsl