310 likes | 404 Views
Web Services. “ A software system designed to support interoperable Machine to Machine interaction over a network“. “ Web based application that use s open, XML-based standards and transport protocols to exchange data with clients ”. Kas ir Web servisi?. Eksistē daudz dažādas definīcijas ….
E N D
“A software system designed to support interoperable Machineto Machineinteraction over a network“ “Web based application that uses open, XML-based standards and transport protocols to exchange data with clients” Kas ir Web servisi? Eksistē daudz dažādas definīcijas…
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” 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
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 http://www.w3.org/2002/ws/history.html
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)
Service Discovery Service Description XML Messaging Service Transport Web Services Big Picture • Service Discovery • UDDI • Service Description • WSDL • XML Messaging • SOAP and XML-RPC • 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 & WebServices • 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 Glancehttp://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 Services http://labs.jboss.com/jbossws/ • Spring Web Services http://static.springframework.org/spring-ws/site/index.html • Java Web Services Overview Presentationhttp://www.javapassion.com/webservices/WebServicesOverview.pdf • Another Java Web Services Overview Presentationhttp://www.dma.unina.it/~murli/GridSummerSchool2004/presentations/Fox/background/WebServicesOverview.pdf
References • Services Mashups: The New Generation of Web Applications http://dsonline.computer.org/portal/site/dsonline/menuitem.9ed3d9924aeb0dcd82ccc6716bbe36ec/index.jsp?&pName=dso_level1&path=dsonline/2008/09&file=w5gei.xml&xsl=article.xsl