SOAP is a protocol for exchanging structured information in a decentralized, distributed environment using XML. It uses RPC and HTTP. REST focuses on accessing named resources through a consistent interface and represents resource state. SOAP is better for enterprise security and transactions while REST is lighter weight and less complex, using standard HTTP and supporting JSON. The choice depends on needs - SOAP for banking apps, REST for simpler web services.
- REST (Representational State Transfer) uses HTTP requests to transfer representations of resources between clients and servers. The format of the representation is determined by the content-type header and the interaction with the resource is determined by the HTTP verb used.
- The four main HTTP verbs are GET, PUT, DELETE, and POST. GET retrieves a representation of the resource and is safe, while PUT, DELETE, and POST can modify the resource's state in atomic operations.
- Resources are abstract concepts acted upon by HTTP requests, while representations are the actual data transmitted in responses. The representation may or may not accurately reflect the resource's current state.
The document discusses Representational State Transfer (REST), a software architectural style for building web services. It uses an example of an airline reservation system to illustrate the REST design pattern versus a non-REST approach. Specifically, it shows that using multiple unique URLs, each identifying a distinct resource, aligned with the REST principles of having resources identified by URIs and a uniform interface, rather than a centralized system routing requests.
This document provides an overview of HTTP and REST APIs. It describes how HTTP allows sending documents over the web using URLs to identify resources and HTTP verbs like GET, PUT, DELETE and POST. It defines common response codes. It explains that REST stands for Representational State Transfer and relies on a stateless, client-server architecture using the HTTP protocol. The key design constraints of REST include having a uniform interface, being resource-based and using representations to manipulate resources with self-descriptive messages. Benefits include statelessness for scalability, cacheability to improve performance, separating clients from servers, and using a layered system with intermediary servers.
An introduction to REST and RESTful web services.
You can take the course below to learn about REST & RESTful web services.
https://www.udemy.com/building-php-restful-web-services/
Express is a web framework for Node.js that allows routing, middleware, templating and more. It is inspired by Sinatra and uses Connect as its middleware framework. Key features include routing, middleware support, template rendering with engines like Jade, and session handling with storage options. Errors can be handled via the app.error() method. Express provides a full-featured and easy to use web development framework for Node.js.
A REST API uses HTTP requests with verbs like GET, POST, PUT, and DELETE to perform CRUD (Create, Read, Update, Delete) operations on resources identified by URLs. It provides a lightweight alternative to SOAP that returns data in JSON format and HTTP response codes. Well-known codes include 200 for OK, 201 for Created, 400 for Bad Request, and 404 for Not Found. REST enables building applications and platforms that can easily integrate new interfaces over time.
Understanding REST APIs in 5 Simple StepsTessa Mero
This document summarizes the 5 steps to understanding REST APIs: 1) Understanding the purpose of APIs and their importance and growth, 2) Learning that REST defines functions to communicate via HTTP verbs and nouns, 3) Knowing that APIs use requests and responses, 4) Relying on documentation as the reference, and 5) Using debugging and testing tools to prevent issues. It provides examples of requests, responses, API documentation, and tools like Postman for working with REST APIs.
What is REST API? REST API Concepts and Examples | EdurekaEdureka!
YouTube Link: https://youtu.be/rtWH70_MMHM
** Node.js Certification Training: https://www.edureka.co/nodejs-certification-training **
This Edureka PPT on 'What is REST API?' will help you understand the concept of RESTful APIs and show you the implementation of REST APIs'. Following topics are covered in this REST API tutorial for beginners:
Need for REST API
What is REST API?
Features of REST API
Principles of REST API
Methods of REST API
How to implement REST API?
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Castbox: https://castbox.fm/networks/505?country=in
Simple REST-API overview for developers. An newer version is here: https://www.slideshare.net/patricksavalle/super-simple-introduction-to-restapis-2nd-version-127968966
The document provides an overview of a seminar on RESTful web services. It discusses what REST is, its characteristics and principles, and compares RESTful architectures to SOAP. Key points covered include how REST focuses on a system's resources and how they are addressed and transferred over HTTP, the client-server interaction style of REST, and advantages of REST like scalability and loose coupling between components.
This document provides an overview of REST basics and how to implement REST with Spring. It discusses:
1. The differences between SOAP and REST web services standards and how REST uses HTTP methods to perform CRUD operations on nouns instead of defining complex operations.
2. Key aspects of REST including the REST triangle of nouns, verbs, and content types. It also covers common REST frameworks and HTTP methods, headers, and status codes.
3. How Spring supports REST with annotations like @RequestMapping and @ResponseBody to build RESTful web services, and uses the DispatcherServlet to route HTTP requests to controller methods.
4. An example of a basic RESTful web service implemented with
This is a presentation which describe the big picture of the Rest API. In this presentation I simply describe the theories with practical examples. Hope this presentation will cover the overall Rest API domain.
This document provides an overview of ExpressJS, a web application framework for Node.js. It discusses using Connect as a middleware framework to build HTTP servers, and how Express builds on Connect by adding functionality like routing, views, and content negotiation. It then covers basic Express app architecture, creating routes, using views with different template engines like Jade, passing data to views, and some advanced topics like cookies, sessions, and authentication.
The document discusses Representational State Transfer (REST) and RESTful web services. It provides an overview of REST principles including treating everything as a resource with a uniform interface, using standard HTTP methods, supporting multiple representations, communicating statelessly through hypermedia, and linking resources together. It then provides examples of how to design a RESTful API for a bookmark management application, mapping operations to resources, URIs, and HTTP methods.
Express.js is a web application framework for Node.js that provides a flexible set of features for building web and mobile apps. Express apps use middleware functions that have access to the request and response objects and allow for intermediate processing in the request-response cycle. Middleware functions can execute code, modify requests/responses, and call the next middleware function. Express supports application-level middleware, router-level middleware, error handling middleware, built-in middleware like static file serving, and third-party middleware.
This document provides an overview of integrating microservices with Apache Camel and JBoss Fuse. It introduces Apache Camel as a lightweight integration library that uses enterprise integration patterns and domain-specific languages to define integration "flows" and "routes". It describes how Camel supports features like dynamic routing, REST APIs, backpressure, load balancing, and circuit breakers that are useful for building microservices. The document also introduces JBoss Fuse as a development and runtime platform for microservices that provides tooling, frameworks, management capabilities and container support using technologies like Apache Camel, CXF, ActiveMQ and Karaf.
The document provides an introduction to web APIs and REST. It defines APIs as methods to access data and workflows from an application without using the application itself. It describes REST as an architectural style for APIs that uses a client-server model with stateless operations and a uniform interface. The document outlines best practices for REST APIs, including using HTTP verbs like GET, POST, PUT and DELETE to perform CRUD operations on resources identified by URIs. It also discusses authentication, authorization, security concerns and gives examples of popular REST APIs from Facebook, Twitter and other services.
This document provides an introduction and overview of REST APIs. It defines REST as an architectural style based on web standards like HTTP that defines resources that are accessed via common operations like GET, PUT, POST, and DELETE. It outlines best practices for REST API design, including using nouns in URIs, plural resource names, GET for retrieval only, HTTP status codes, and versioning. It also covers concepts like filtering, sorting, paging, and common queries.
The document discusses REST (REpresentational State Transfer), an architectural style for building distributed systems. It covers REST concepts like resources, representations, URIs, HTTP methods, caching, and versioning. It provides guidance on designing RESTful APIs, including determining resources, supported methods, and return codes. Content negotiation and tools for testing REST APIs are also mentioned.
Postman is an API development tool that allows users to design, manage, run, test, document, and share APIs. It provides features like request building, documentation, environments, test automation, and collaboration. Alternatives include Paw, Insomnia, command line tools like cURL, and services from Apigee and Apiary. The document recommends using any tool that helps share APIs, especially for complex projects and team collaboration.
- SOAP and RESTful web services are two common approaches for building web services. SOAP uses XML and web-related standards like HTTP, SMTP, and SOAP. RESTful services are based on REST architectural principles and use HTTP and common data formats like JSON and XML.
- The document outlines the specifications, implementations, and differences between SOAP and RESTful web services. It discusses topics like SOAP vs REST characteristics, WSDL and SOAP message structure, JAX-WS and JAX-RS annotations for building web services, and considerations for when to use each approach.
HTTP is the protocol that powers the web. It uses a request-response model where clients make requests that servers respond to. Common request methods include GET, POST, HEAD, PUT, DELETE, and OPTIONS. Responses include status codes like 200 for OK and content types. HTTP 1.1 added features like persistent connections and chunked encoding. Cookies are used to maintain statelessness. HTTPS uses SSL/TLS to secure HTTP connections with encryption, server authentication, and integrity.
This document provides an overview of Java servlets technology, including:
1. What Java servlets are and their main purposes and advantages such as portability, power, and integration with server APIs.
2. Key aspects of servlet architecture like the servlet lifecycle, the HttpServletRequest and HttpServletResponse objects, and how different HTTP methods map to servlet methods.
3. Examples of simple servlets that process parameters, maintain a session counter, and examples of deploying servlets in Eclipse IDE.
This document provides an introduction to REST APIs. It defines an API as a set of tools and protocols for building software. A REST API is an architectural style for web services that uses HTTP requests to GET, POST, PUT, and DELETE data. REST APIs have features like being simpler than SOAP, having documentation, and providing error messages. The core principles of REST are that it is stateless, uses a uniform interface, is layered, cacheable, and has code-on-demand. Common HTTP methods map to CRUD operations on resources. REST APIs offer advantages like scalability, flexibility, and independence.
The document provides an overview of middleware in Node.js and Express. It defines middleware as functions that have access to the request and response objects and can run code and make changes to these objects before the next middleware in the chain. It discusses common uses of middleware like logging, authentication, parsing request bodies. It also covers Connect middleware and how Express builds on Connect by adding features like routing and views. Key aspects covered include the middleware pipeline concept, error handling with middleware, and common middleware modules.
1. Introduction to Web Services
2. Web Service Architecture
3. What are Web Services?
4. Why are Web Services?
5. The base of WS
6. What is SOAP?
7. What is WSDL?
8. How to test a web service?
9. Examples
This document provides an introduction to SOAP, WSDL, and UDDI, which together define the architecture for big web services. It discusses what a web service is, the roles of SOAP, WSDL, and UDDI in the web service architecture, how web services differ from conventional middleware like CORBA, an overview of SOAP including its message exchange mechanism and use of RPC, how WSDL is used to describe a web service's interface, and how UDDI allows for service discovery.
What is REST API? REST API Concepts and Examples | EdurekaEdureka!
YouTube Link: https://youtu.be/rtWH70_MMHM
** Node.js Certification Training: https://www.edureka.co/nodejs-certification-training **
This Edureka PPT on 'What is REST API?' will help you understand the concept of RESTful APIs and show you the implementation of REST APIs'. Following topics are covered in this REST API tutorial for beginners:
Need for REST API
What is REST API?
Features of REST API
Principles of REST API
Methods of REST API
How to implement REST API?
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Castbox: https://castbox.fm/networks/505?country=in
Simple REST-API overview for developers. An newer version is here: https://www.slideshare.net/patricksavalle/super-simple-introduction-to-restapis-2nd-version-127968966
The document provides an overview of a seminar on RESTful web services. It discusses what REST is, its characteristics and principles, and compares RESTful architectures to SOAP. Key points covered include how REST focuses on a system's resources and how they are addressed and transferred over HTTP, the client-server interaction style of REST, and advantages of REST like scalability and loose coupling between components.
This document provides an overview of REST basics and how to implement REST with Spring. It discusses:
1. The differences between SOAP and REST web services standards and how REST uses HTTP methods to perform CRUD operations on nouns instead of defining complex operations.
2. Key aspects of REST including the REST triangle of nouns, verbs, and content types. It also covers common REST frameworks and HTTP methods, headers, and status codes.
3. How Spring supports REST with annotations like @RequestMapping and @ResponseBody to build RESTful web services, and uses the DispatcherServlet to route HTTP requests to controller methods.
4. An example of a basic RESTful web service implemented with
This is a presentation which describe the big picture of the Rest API. In this presentation I simply describe the theories with practical examples. Hope this presentation will cover the overall Rest API domain.
This document provides an overview of ExpressJS, a web application framework for Node.js. It discusses using Connect as a middleware framework to build HTTP servers, and how Express builds on Connect by adding functionality like routing, views, and content negotiation. It then covers basic Express app architecture, creating routes, using views with different template engines like Jade, passing data to views, and some advanced topics like cookies, sessions, and authentication.
The document discusses Representational State Transfer (REST) and RESTful web services. It provides an overview of REST principles including treating everything as a resource with a uniform interface, using standard HTTP methods, supporting multiple representations, communicating statelessly through hypermedia, and linking resources together. It then provides examples of how to design a RESTful API for a bookmark management application, mapping operations to resources, URIs, and HTTP methods.
Express.js is a web application framework for Node.js that provides a flexible set of features for building web and mobile apps. Express apps use middleware functions that have access to the request and response objects and allow for intermediate processing in the request-response cycle. Middleware functions can execute code, modify requests/responses, and call the next middleware function. Express supports application-level middleware, router-level middleware, error handling middleware, built-in middleware like static file serving, and third-party middleware.
This document provides an overview of integrating microservices with Apache Camel and JBoss Fuse. It introduces Apache Camel as a lightweight integration library that uses enterprise integration patterns and domain-specific languages to define integration "flows" and "routes". It describes how Camel supports features like dynamic routing, REST APIs, backpressure, load balancing, and circuit breakers that are useful for building microservices. The document also introduces JBoss Fuse as a development and runtime platform for microservices that provides tooling, frameworks, management capabilities and container support using technologies like Apache Camel, CXF, ActiveMQ and Karaf.
The document provides an introduction to web APIs and REST. It defines APIs as methods to access data and workflows from an application without using the application itself. It describes REST as an architectural style for APIs that uses a client-server model with stateless operations and a uniform interface. The document outlines best practices for REST APIs, including using HTTP verbs like GET, POST, PUT and DELETE to perform CRUD operations on resources identified by URIs. It also discusses authentication, authorization, security concerns and gives examples of popular REST APIs from Facebook, Twitter and other services.
This document provides an introduction and overview of REST APIs. It defines REST as an architectural style based on web standards like HTTP that defines resources that are accessed via common operations like GET, PUT, POST, and DELETE. It outlines best practices for REST API design, including using nouns in URIs, plural resource names, GET for retrieval only, HTTP status codes, and versioning. It also covers concepts like filtering, sorting, paging, and common queries.
The document discusses REST (REpresentational State Transfer), an architectural style for building distributed systems. It covers REST concepts like resources, representations, URIs, HTTP methods, caching, and versioning. It provides guidance on designing RESTful APIs, including determining resources, supported methods, and return codes. Content negotiation and tools for testing REST APIs are also mentioned.
Postman is an API development tool that allows users to design, manage, run, test, document, and share APIs. It provides features like request building, documentation, environments, test automation, and collaboration. Alternatives include Paw, Insomnia, command line tools like cURL, and services from Apigee and Apiary. The document recommends using any tool that helps share APIs, especially for complex projects and team collaboration.
- SOAP and RESTful web services are two common approaches for building web services. SOAP uses XML and web-related standards like HTTP, SMTP, and SOAP. RESTful services are based on REST architectural principles and use HTTP and common data formats like JSON and XML.
- The document outlines the specifications, implementations, and differences between SOAP and RESTful web services. It discusses topics like SOAP vs REST characteristics, WSDL and SOAP message structure, JAX-WS and JAX-RS annotations for building web services, and considerations for when to use each approach.
HTTP is the protocol that powers the web. It uses a request-response model where clients make requests that servers respond to. Common request methods include GET, POST, HEAD, PUT, DELETE, and OPTIONS. Responses include status codes like 200 for OK and content types. HTTP 1.1 added features like persistent connections and chunked encoding. Cookies are used to maintain statelessness. HTTPS uses SSL/TLS to secure HTTP connections with encryption, server authentication, and integrity.
This document provides an overview of Java servlets technology, including:
1. What Java servlets are and their main purposes and advantages such as portability, power, and integration with server APIs.
2. Key aspects of servlet architecture like the servlet lifecycle, the HttpServletRequest and HttpServletResponse objects, and how different HTTP methods map to servlet methods.
3. Examples of simple servlets that process parameters, maintain a session counter, and examples of deploying servlets in Eclipse IDE.
This document provides an introduction to REST APIs. It defines an API as a set of tools and protocols for building software. A REST API is an architectural style for web services that uses HTTP requests to GET, POST, PUT, and DELETE data. REST APIs have features like being simpler than SOAP, having documentation, and providing error messages. The core principles of REST are that it is stateless, uses a uniform interface, is layered, cacheable, and has code-on-demand. Common HTTP methods map to CRUD operations on resources. REST APIs offer advantages like scalability, flexibility, and independence.
The document provides an overview of middleware in Node.js and Express. It defines middleware as functions that have access to the request and response objects and can run code and make changes to these objects before the next middleware in the chain. It discusses common uses of middleware like logging, authentication, parsing request bodies. It also covers Connect middleware and how Express builds on Connect by adding features like routing and views. Key aspects covered include the middleware pipeline concept, error handling with middleware, and common middleware modules.
1. Introduction to Web Services
2. Web Service Architecture
3. What are Web Services?
4. Why are Web Services?
5. The base of WS
6. What is SOAP?
7. What is WSDL?
8. How to test a web service?
9. Examples
This document provides an introduction to SOAP, WSDL, and UDDI, which together define the architecture for big web services. It discusses what a web service is, the roles of SOAP, WSDL, and UDDI in the web service architecture, how web services differ from conventional middleware like CORBA, an overview of SOAP including its message exchange mechanism and use of RPC, how WSDL is used to describe a web service's interface, and how UDDI allows for service discovery.
Web services tutorial slides from my session at DPC 2012 in Amsterdam. In this 3-hour session we built the simplest possible service, and then extended it, looking at RPC, REST and SOAP along the way.
Testing web services is very important part of integration testing on web projects.
In this presentation you can learn the best approaches, tools and features of Web Services testing. Soon I'll share url with a video from my presentation.
It will describes SOAP/REST differences and SOAP web services in detail with practical approach. it shows usage of SOAP, XML, JAVA, WSDL, XSD and RPC with examples.
The document provides an introduction and overview of building and consuming web services. It begins with defining what a web service is and discussing common web service architectures and types, including RESTful and RPC services. It then covers topics like HTTP, data formats like JSON and XML, and how to build a simple PHP-based web service that returns data in various formats depending on the Accept header. The document also discusses consuming web services using PHP libraries like cURL and Pecl_HTTP. It includes examples of building and consuming a SOAP web service in PHP. Finally, it discusses building RESTful web services and routing requests in PHP.
This document provides guidance on designing RESTful APIs. It recommends using nouns instead of verbs, keeping URLs simple with only two endpoints per resource, and following conventions from leading APIs. Complex variations and optional parameters should be "swept behind the '?'." The document emphasizes designing for application developers by making APIs intuitive, consistent and complete while also accommodating exceptional clients. It suggests adding an API virtualization layer to handle complexity.
The document discusses RESTful web services and Resource Oriented Architecture (ROA). It defines REST and its constraints including client-server architecture, statelessness, cacheability, uniform interface and layered system. It then explains ROA and how resources are addressed and represented in a RESTful system. Key concepts like addressability, statelessness, representations, links and connectedness, uniform interface and safety are covered in relation to ROA. The document provides examples and discusses designing a RESTful API for a content management system.
Hacking Web 2.0 - Defending Ajax and Web Services [HITB 2007 Dubai]Shreeraj Shah
This document summarizes a presentation about assessing the security of Web 2.0 technologies like Ajax and web services. It discusses the Web 2.0 industry trends, technologies like Ajax, potential security impacts, and methodologies for fingerprinting, enumerating, crawling, and scanning Ajax applications and web services to identify vulnerabilities. It also provides an overview of attacking Ajax and defending applications.
The document discusses Java web services and related technologies. It provides an overview of service-oriented architecture (SOA) and web services standards like XML, SOAP, WSDL and UDDI. It also covers Java tools for working with XML and implementing RESTful web services in Java, as well as the business needs and technical challenges that web services address.
Java Web Services [4/5]: Java API for XML Web ServicesIMC Institute
This document provides an overview of Java APIs for XML web services, including JAX-RPC and JAX-WS. It discusses the Java Web Services Development Pack (JWSDP) and its components like JAXP, JAXB, SAAJ. It then describes specific APIs like JAX-RPC, JAX-WS, JAXR. It also discusses the server-side and client-side programming models in JAX-WS including using annotations and generating code from WSDL.
SOAP Web Services have a well established role in the enterprise, but aside from the many benefits of the WS-* standards, SOAP and XML also carry additional baggage for developers. Consequently, REST Web Services are gaining tremendous popularity within the developer community. This session will begin by comparing and contrasting the basic concepts of both SOAP and REST Web Services. Building on that foundation, Sam Brannen will show attendees how to implement SOAP-based applications using Spring-WS 2.0. He will then demonstrate how to build a similar REST-ful application using Spring MVC 3.0. The session will conclude with an in-depth look at both server-side and client-side development as well as efficient integration testing of Web Services using the Spring Framework.
JAX-WS is the replacement and next generation to JAX-RPC and makes web services development much easier using annotations and much less configuration. JAX-WS is useful for people building webservices/SOA based infrastructure as JAX-WS makes the web service development much easier and is a big gain for developer productivity.
The session uses a web service for temperature conversion example to build both the client side and Server side artifacts. Also on the server side both Servlet based and EJB3.0 based web service development will be demonstrated. JAXB concepts will be used to demonstrate the examples.
The session uses Eclipse Ganymede and Jboss 5.0. However JAX-WS being the standard, the code will smoothly work on any JavaEE based compliant servers.
Web services use SOAP, WSDL, and UDDI. SOAP defines an envelope structure for messages. WSDL describes a service's operations, messages, and location. UDDI allows services to publish themselves so they can be discovered. The document discusses these technologies and how they enable interoperable machine-to-machine communication over the web.
Web services allow applications to communicate over the web through standard protocols like HTTP and XML. There are two main types of web services: REST services which rely on HTTP verbs to manipulate resources identified by URIs, and SOAP services which use XML and HTTP to define structured messages to access services described in a WSDL file. SOAP services require more overhead for message formatting and processing compared to the lighter-weight REST approach.
The document discusses REST (REpresentational State Transfer), a style of architecture for building web services. It defines REST and RESTful web services, describes the key REST principles of using resources and uniform interfaces. It explains why REST is preferable to SOAP in many cases due to being lightweight, supporting multiple data formats and better performance. The document also provides guidance on when each approach is better suited and compares SOAP vs REST. It introduces JAX-RS as a Java API for building RESTful web services and some common implementations like Jersey.
What is REST?
What is RESTful Webservices
HTTP-REST Request Basics
HTTP-REST Vocabulary
Authentication (OAuth)
OAuth 2.0 Web Server Flow
REST APIs using Apex REST
Resources
This document provides an overview of internet engineering and web servers. It begins with an introduction to why companies need web services like hosting applications and websites. It then discusses the history and development of the World Wide Web and how it has grown. The document defines web servers and common features like handling HTTP requests. It covers specifics of HTTP 1.1 servers and the first web server. It also discusses the most popular web servers today like Apache and provides statistics on their usage. Finally, it provides a detailed overview of Apache web server features and functions such as caching, access control, and virtual hosting.
A web server is software that responds to requests from web browsers to serve web pages. It is part of a multi-tier architecture with an information tier (database), middle tier (application logic), and client tier (user interface). The most common protocol for communication between clients and servers is HTTP, with the server responding to GET and POST requests with web pages or other responses. Popular web server software includes Apache, IIS, and Tomcat.
The document discusses the need for web servers to provide various web services for a company. It provides an overview of the history and development of the World Wide Web and web servers. It then describes key features and functions of the Apache web server, including caching, logging, mapping URLs to files, access control, server-side includes, and virtual hosting.
This document discusses web servers. It begins by defining a web server as hardware or software that helps deliver internet content. It then discusses the history of web servers, including the first web server created by Tim Berners-Lee at CERN in 1990. The document outlines common uses of web servers like hosting websites, data storage, and content delivery. It also describes how web servers work, including how they handle requests and responses using HTTP. Finally, it covers topics like installing and hosting a web server, load limits, overload causes and symptoms, and techniques to prevent overload.
Web pages are made up of HTML files and other files like images, CSS, and JavaScript. These files are stored on a web server and accessed by users via URLs. When a page is requested, the server retrieves the files and sends them to the client browser, where they are rendered. Dynamic content can be generated on the server using programming languages like PHP that interface with databases. Client-side code like JavaScript runs locally in the browser.
The document discusses different types of web servers, including Microsoft Internet Information Services (IIS) and the Apache web server. It provides an overview of how web servers work, describing things like HTTP requests and responses, client-server architecture, and differences between client-side and server-side scripting. The document also covers topics like installing and hosting a web server, as well as how to request documents like XHTML and PHP files from servers like IIS and Apache.
The document provides an overview of RESTful web services compared to SOAP web services. It discusses how REST is based on the architectural constraints of the web and uses HTTP methods to perform CRUD operations on resources. It also covers the core concepts of REST including resources, representations, and the REST constraints of being stateless, cacheable, etc. Examples are given of how RESTful services can use HTTP features like conditional GET requests and security mechanisms. Frameworks for building RESTful services and comparisons with SOAP are also summarized.
Alex Russell Software Engineer, Google at Fastly Altitude 2016
New browser technologies are arriving that are poised to change user and developer expectations of what’s possible on the web; particularly on slow mobile devices with flaky connections. This talk discusses how these new technologies – Service Workers, Progressive Web Apps, HTTP/2, Push, Notifications, and Web Components are being combined, e.g. in the new PRPL pattern, to transform user experiences while improving business results.
The Evolving Security Environment For Web ServicesQanita Ahmad
The document discusses the evolving security landscape for web services, comparing the REST and SOAP approaches. REST has become popular due to its simplicity, using HTTP methods like GET in URLs, but this can pose security risks as sensitive data is exposed in URLs and requests. The document recommends using tools that can secure both REST and SOAP interfaces, as XML firewalls alone may not filter REST traffic invoked through HTTP instead of XML. Developers must validate all input for both approaches.
The document discusses identity management in the cloud and APIs. It notes that provisioning is essentially the same across cloud services, so the APIs should be similar as well. It introduces the Simple Cloud Identity Management specification, which aims to standardize user and group provisioning across cloud providers using a common RESTful API. The document also discusses the growth of APIs and how developers are driving adoption by building applications and mashups that integrate multiple services. It contrasts SOAP and REST approaches, noting that REST and JSON are now more common as they map better to typical programming models. OAuth is mentioned as the preferred approach for authentication in APIs.
The document discusses web servers and their architecture. It begins by defining a web server as specialized software that responds to client requests from web browsers. It then describes the common three-tier architecture of web applications with tiers for the client interface, middle application logic, and database information. The document focuses on how web servers use HTTP to communicate with clients through a request-response protocol and provides examples of GET and POST requests. It also discusses leading web servers like Apache, IIS, and others as well as factors to consider when selecting a web server.
Web services allow applications to communicate over the World Wide Web by exposing functions to other devices or applications. There are two main types of web services: REST services which rely on HTTP verbs like GET and POST to manipulate resources identified by URIs, and SOAP services which use XML and HTTP to define interfaces and exchange structured information. SOAP services require a WSDL file to specify how the service can be called and what it expects and returns, while REST services use the same HTTP verbs as the Web and have a simpler structure.
This document provides an overview of web services, including definitions, standards, and architectural concepts. It defines web services as software systems designed to support interoperable machine-to-machine interactions over a network using standards like SOAP, WSDL, and UDDI. It describes the basic web services platform of XML and HTTP, and how standards like WSDL are used to describe and locate web services, while SOAP is the communication protocol.
The document provides an introduction to web spider web weaving and discusses key concepts related to HTTP requests and responses between clients and servers. It explains common web technologies like web servers, browsers, spiders, and scripting languages. It also discusses database servers, web models like LAMP and WAMP, HTTP sessions, and introducing a uniform server.
This document provides an overview of ASP.NET MVC 4 Web API. It discusses what an API is and why Web API is used. It covers key concepts like HTTP, REST, JSON. It describes features of Web API like routing, error handling, model validation, OData support, media formatters, and security. It also discusses using the HttpClient class and future plans.
The document discusses the history and principles of web GIS using Esri products. It describes how Esri has evolved its web GIS capabilities from early desktop-based systems to modern web services-based approaches using REST and SOAP. Key aspects covered include Esri's ArcGIS Server for publishing map, geodata, and other services; the REST and SOAP APIs for accessing these services; and examples of web and mobile applications built with Esri's JavaScript, Flex, Silverlight, and mobile SDKs.
This document outlines an advanced ASP.NET Web API course agenda. The course will cover topics like model binding and custom formatters, OData, asynchronous operations, and performance improvement techniques. The first part of the course will introduce web technologies like HTTP, JSON, XML, and provide an overview of ASP.NET Web API. Later sections will demonstrate how to work with model binding, custom formatters, OData queries, and async logic. The course will also cover security implementations like basic authentication and token validation, as well as performance techniques such as message compression and high-performance JavaScript serialization.
The document discusses various topics relating to web and AJAX performance including browser and server performance, HTTP protocols, browser connections, state handling, caching, HTTP headers, and common antipatterns that can negatively impact performance. It also provides examples of live demonstrations and recommends testing in the browser to avoid unexpected performance issues.
The document provides an overview of HTTP, CGI, servlets, JSPs, and AJAX. It describes how HTTP works for client-server communication. It explains how CGI was used for web server and application integration but had performance and manageability issues. It introduces the servlet/JSP model and web application container as an improved approach. It also gives a brief introduction to using AJAX.
Comparison of Java Web Application FrameworksAngelin R
The document compares several popular Java web application frameworks across various criteria. It finds that Grails and Vaadin are generally the easiest to use due to their conventions and drag-and-drop design modes. Play and Grails best support rapid prototyping with features like scaffolding. Play and Vaadin excel at scalability thanks to technologies like Akka and GWT. All frameworks have strong documentation except Spring MVC and Vaadin, and Grails and Vaadin have particularly vibrant communities.
[DOC] Java - Code Analysis using SonarQubeAngelin R
This document discusses how to set up and use SonarQube to analyze code quality for both Maven and non-Maven projects. It describes installing the SonarQube server and runner, configuring the server, and setting up projects for analysis by adding a sonar-project.properties file. The document then explains how to generate a SonarQube report by running the sonar-runner on a project and view results on the SonarQube server dashboard.
Java Source Code Analysis using SonarQubeAngelin R
This document discusses how to set up and use SonarQube to analyze code quality for both Maven and non-Maven projects. It describes installing the SonarQube server and runner, configuring the server, and setting up projects for analysis by adding a sonar-project.properties file. It then explains how to generate a SonarQube report by running the sonar-runner on a project and view results on the SonarQube server dashboard.
The document outlines principles of good programming including DRY (Don't Repeat Yourself), KISS (Keep It Simple Stupid), YAGNI (You Aren't Gonna Need It), writing code for maintainability, single responsibility, separation of concerns, and embracing change. The principles emphasize writing simple, readable code with clear abstraction and minimal complexity.
Exception handling & logging in Java - Best Practices (Updated)Angelin R
This document discusses best practices for logging and exception handling in Java. For logging, it recommends using Log4j and following practices like declaring loggers as static and final, only logging method entries and exits, and avoiding redundant logs. For exception handling, it recommends handling exceptions close to their origin, logging exceptions only once, not catching the base Exception class, handling exceptions before responding to clients, and documenting exceptions in Javadoc. It provides examples and exceptions to these rules for specific cases.
The document provides an overview of an individual's career and interests. It summarizes their education as a Bachelor of Engineering in Information Technology in 2004. It then lists their various roles and responsibilities in areas like analysis, design, programming, and project management. Additionally, it outlines their skills, achievements, hobbies like food styling and photography, and encourages connecting with others.
The document lists 26 essential traits of an effective team leader: 1) Be open, honest, and fair; 2) Make decisions; 3) Act consistently; 4) Set goals and emphasize them; 5) Focus on targets through follow-up; 6) Show loyalty to the organization and team members; 7) Create an atmosphere of growth and set high standards; 8) Have a vision and wide visibility; 9) Critically address problems constructively; 10) Revisit plans regularly; 11) Display tolerance and flexibility; 12) Demonstrate assertiveness; 13) Guide the team to adapt to change willingly; 14) Promote individual skills; 15) Make yourself available; 16) Set guidelines for team treatment; 17
This document provides an overview of ActionScript, including:
- It is an object-oriented programming language that supports encapsulation, abstraction, inheritance, and polymorphism.
- ActionScript code is defined in files with a .as extension or embedded in MXML files.
- It has basic data types like int, Number, Boolean, String, and others.
- Classes must define a public constructor.
- Functions are defined with access modifiers, arguments, return types.
- Events and event handling are used for user interactions.
- Runtime type checking uses the "is" operator and casting uses "as".
- Exceptions use try/catch/finally blocks.
Scrum is an agile project management framework that uses iterative sprints, daily stand-ups, and regular planning and review meetings. The key aspects of scrum include sprint planning meetings to select work, daily scrums to track progress, a sprint review to demonstrate completed work, and a retrospective to improve processes. Scrum focuses on empirical process control, self-organizing teams, and iterative delivery of working software.
Exception handling and logging best practicesAngelin R
This document discusses best practices for logging and exception handling in Java. It recommends:
1. Logging method entries, exits, and root cause messages of handled exceptions.
2. Avoiding redundant intermediate logging and only logging at the exception origin.
3. Handling exceptions close to their origin by throwing a new exception relevant to that layer while maintaining the cause.
4. Logging exceptions only once close to the origin to avoid confusion from duplicated stack traces.
5. Not catching the base Exception class to avoid accidentally swallowing unchecked exceptions.
This document provides an overview of Flex MXML programming. It discusses that MXML is a declarative XML-based language used to lay out user interface components, define their appearance and behaviors, and define non-visual aspects like data bindings. It provides examples of creating basic components like buttons and labels using both MXML and ActionScript. It also discusses key MXML concepts like namespaces, properties, events and data bindings.
Flex is a software development kit used to create rich internet applications that can run on browsers, desktops, and mobile devices. It uses MXML and ActionScript languages. Flex applications are compiled into SWF files and require the Flash Player or Adobe AIR runtime to execute. The Flex SDK contains libraries, compilers and optional tools like Flash Builder IDE.
The document discusses different software development life cycle (SDLC) models including waterfall, spiral/iterative, and agile. It provides an overview of each model's phases and when they are best applied. The waterfall model follows sequential phases from requirements to maintenance. The spiral model is risk-driven and iterative. The agile model emphasizes speed, reduced documentation, and frequent customer feedback through shorter development cycles. SDLC models provide structure, standard processes and deliverables to software development projects.
This presentation explains a team work model that can be applied to development projects to facilitate smooth functioning of the project even during sudden non-availability of a developer or in cases where a developer departs from the team.
This presentation explains how to play some team building activities that are important to the effective management and growth of teams and their objectives.
This is a presentation about XStream, the lightweight and easy-to-use open source Java™ library, used for serializing java objects into XML and de-serializing XML back into java objects.
How Can I use the AI Hype in my Business Context?Daniel Lehner
𝙄𝙨 𝘼𝙄 𝙟𝙪𝙨𝙩 𝙝𝙮𝙥𝙚? 𝙊𝙧 𝙞𝙨 𝙞𝙩 𝙩𝙝𝙚 𝙜𝙖𝙢𝙚 𝙘𝙝𝙖𝙣𝙜𝙚𝙧 𝙮𝙤𝙪𝙧 𝙗𝙪𝙨𝙞𝙣𝙚𝙨𝙨 𝙣𝙚𝙚𝙙𝙨?
Everyone’s talking about AI but is anyone really using it to create real value?
Most companies want to leverage AI. Few know 𝗵𝗼𝘄.
✅ What exactly should you ask to find real AI opportunities?
✅ Which AI techniques actually fit your business?
✅ Is your data even ready for AI?
If you’re not sure, you’re not alone. This is a condensed version of the slides I presented at a Linkedin webinar for Tecnovy on 28.04.2025.
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungenpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-nomad-web-best-practices-und-verwaltung-von-multiuser-umgebungen/
HCL Nomad Web wird als die nächste Generation des HCL Notes-Clients gefeiert und bietet zahlreiche Vorteile, wie die Beseitigung des Bedarfs an Paketierung, Verteilung und Installation. Nomad Web-Client-Updates werden “automatisch” im Hintergrund installiert, was den administrativen Aufwand im Vergleich zu traditionellen HCL Notes-Clients erheblich reduziert. Allerdings stellt die Fehlerbehebung in Nomad Web im Vergleich zum Notes-Client einzigartige Herausforderungen dar.
Begleiten Sie Christoph und Marc, während sie demonstrieren, wie der Fehlerbehebungsprozess in HCL Nomad Web vereinfacht werden kann, um eine reibungslose und effiziente Benutzererfahrung zu gewährleisten.
In diesem Webinar werden wir effektive Strategien zur Diagnose und Lösung häufiger Probleme in HCL Nomad Web untersuchen, einschließlich
- Zugriff auf die Konsole
- Auffinden und Interpretieren von Protokolldateien
- Zugriff auf den Datenordner im Cache des Browsers (unter Verwendung von OPFS)
- Verständnis der Unterschiede zwischen Einzel- und Mehrbenutzerszenarien
- Nutzung der Client Clocking-Funktion
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul
Artificial intelligence is changing how businesses operate. Companies are using AI agents to automate tasks, reduce time spent on repetitive work, and focus more on high-value activities. Noah Loul, an AI strategist and entrepreneur, has helped dozens of companies streamline their operations using smart automation. He believes AI agents aren't just tools—they're workers that take on repeatable tasks so your human team can focus on what matters. If you want to reduce time waste and increase output, AI agents are the next move.
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfAbi john
Analyze the growth of meme coins from mere online jokes to potential assets in the digital economy. Explore the community, culture, and utility as they elevate themselves to a new era in cryptocurrency.
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell
With expertise in data architecture, performance tracking, and revenue forecasting, Andrew Marnell plays a vital role in aligning business strategies with data insights. Andrew Marnell’s ability to lead cross-functional teams ensures businesses achieve sustainable growth and operational excellence.
Artificial Intelligence is providing benefits in many areas of work within the heritage sector, from image analysis, to ideas generation, and new research tools. However, it is more critical than ever for people, with analogue intelligence, to ensure the integrity and ethical use of AI. Including real people can improve the use of AI by identifying potential biases, cross-checking results, refining workflows, and providing contextual relevance to AI-driven results.
News about the impact of AI often paints a rosy picture. In practice, there are many potential pitfalls. This presentation discusses these issues and looks at the role of analogue intelligence and analogue interfaces in providing the best results to our audiences. How do we deal with factually incorrect results? How do we get content generated that better reflects the diversity of our communities? What roles are there for physical, in-person experiences in the digital world?
AI and Data Privacy in 2025: Global TrendsInData Labs
In this infographic, we explore how businesses can implement effective governance frameworks to address AI data privacy. Understanding it is crucial for developing effective strategies that ensure compliance, safeguard customer trust, and leverage AI responsibly. Equip yourself with insights that can drive informed decision-making and position your organization for success in the future of data privacy.
This infographic contains:
-AI and data privacy: Key findings
-Statistics on AI data privacy in the today’s world
-Tips on how to overcome data privacy challenges
-Benefits of AI data security investments.
Keep up-to-date on how AI is reshaping privacy standards and what this entails for both individuals and organizations.
HCL Nomad Web – Best Practices and Managing Multiuser Environmentspanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-nomad-web-best-practices-and-managing-multiuser-environments/
HCL Nomad Web is heralded as the next generation of the HCL Notes client, offering numerous advantages such as eliminating the need for packaging, distribution, and installation. Nomad Web client upgrades will be installed “automatically” in the background. This significantly reduces the administrative footprint compared to traditional HCL Notes clients. However, troubleshooting issues in Nomad Web present unique challenges compared to the Notes client.
Join Christoph and Marc as they demonstrate how to simplify the troubleshooting process in HCL Nomad Web, ensuring a smoother and more efficient user experience.
In this webinar, we will explore effective strategies for diagnosing and resolving common problems in HCL Nomad Web, including
- Accessing the console
- Locating and interpreting log files
- Accessing the data folder within the browser’s cache (using OPFS)
- Understand the difference between single- and multi-user scenarios
- Utilizing Client Clocking
Semantic Cultivators : The Critical Future Role to Enable AIartmondano
By 2026, AI agents will consume 10x more enterprise data than humans, but with none of the contextual understanding that prevents catastrophic misinterpretations.
Spark is a powerhouse for large datasets, but when it comes to smaller data workloads, its overhead can sometimes slow things down. What if you could achieve high performance and efficiency without the need for Spark?
At S&P Global Commodity Insights, having a complete view of global energy and commodities markets enables customers to make data-driven decisions with confidence and create long-term, sustainable value. 🌍
Explore delta-rs + CDC and how these open-source innovations power lightweight, high-performance data applications beyond Spark! 🚀
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveScyllaDB
Want to learn practical tips for designing systems that can scale efficiently without compromising speed?
Join us for a workshop where we’ll address these challenges head-on and explore how to architect low-latency systems using Rust. During this free interactive workshop oriented for developers, engineers, and architects, we’ll cover how Rust’s unique language features and the Tokio async runtime enable high-performance application development.
As you explore key principles of designing low-latency systems with Rust, you will learn how to:
- Create and compile a real-world app with Rust
- Connect the application to ScyllaDB (NoSQL data store)
- Negotiate tradeoffs related to data modeling and querying
- Manage and monitor the database for consistently low latencies
What is Model Context Protocol(MCP) - The new technology for communication bw...Vishnu Singh Chundawat
The MCP (Model Context Protocol) is a framework designed to manage context and interaction within complex systems. This SlideShare presentation will provide a detailed overview of the MCP Model, its applications, and how it plays a crucial role in improving communication and decision-making in distributed systems. We will explore the key concepts behind the protocol, including the importance of context, data management, and how this model enhances system adaptability and responsiveness. Ideal for software developers, system architects, and IT professionals, this presentation will offer valuable insights into how the MCP Model can streamline workflows, improve efficiency, and create more intuitive systems for a wide range of use cases.
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025BookNet Canada
Book industry standards are evolving rapidly. In the first part of this session, we’ll share an overview of key developments from 2024 and the early months of 2025. Then, BookNet’s resident standards expert, Tom Richardson, and CEO, Lauren Stewart, have a forward-looking conversation about what’s next.
Link to recording, transcript, and accompanying resource: https://bnctechforum.ca/sessions/standardsgoals-for-2025-standards-certification-roundup/
Presented by BookNet Canada on May 6, 2025 with support from the Department of Canadian Heritage.
Technology Trends in 2025: AI and Big Data AnalyticsInData Labs
At InData Labs, we have been keeping an ear to the ground, looking out for AI-enabled digital transformation trends coming our way in 2025. Our report will provide a look into the technology landscape of the future, including:
-Artificial Intelligence Market Overview
-Strategies for AI Adoption in 2025
-Anticipated drivers of AI adoption and transformative technologies
-Benefits of AI and Big data for your business
-Tips on how to prepare your business for innovation
-AI and data privacy: Strategies for securing data privacy in AI models, etc.
Download your free copy nowand implement the key findings to improve your business.
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersToradex
Toradex brings robust Linux support to SMARC (Smart Mobility Architecture), ensuring high performance and long-term reliability for embedded applications. Here’s how:
• Optimized Torizon OS & Yocto Support – Toradex provides Torizon OS, a Debian-based easy-to-use platform, and Yocto BSPs for customized Linux images on SMARC modules.
• Seamless Integration with i.MX 8M Plus and i.MX 95 – Toradex SMARC solutions leverage NXP’s i.MX 8 M Plus and i.MX 95 SoCs, delivering power efficiency and AI-ready performance.
• Secure and Reliable – With Secure Boot, over-the-air (OTA) updates, and LTS kernel support, Toradex ensures industrial-grade security and longevity.
• Containerized Workflows for AI & IoT – Support for Docker, ROS, and real-time Linux enables scalable AI, ML, and IoT applications.
• Strong Ecosystem & Developer Support – Toradex offers comprehensive documentation, developer tools, and dedicated support, accelerating time-to-market.
With Toradex’s Linux support for SMARC, developers get a scalable, secure, and high-performance solution for industrial, medical, and AI-driven applications.
Do you have a specific project or application in mind where you're considering SMARC? We can help with Free Compatibility Check and help you with quick time-to-market
For more information: https://www.toradex.com/computer-on-modules/smarc-arm-family
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfSoftware Company
Explore the benefits and features of advanced logistics management software for businesses in Riyadh. This guide delves into the latest technologies, from real-time tracking and route optimization to warehouse management and inventory control, helping businesses streamline their logistics operations and reduce costs. Learn how implementing the right software solution can enhance efficiency, improve customer satisfaction, and provide a competitive edge in the growing logistics sector of Riyadh.
This is the keynote of the Into the Box conference, highlighting the release of the BoxLang JVM language, its key enhancements, and its vision for the future.
2. Widely Well-known “Words”
Internet
Massive network of networks, connecting millions of computers
together globally.
Information communication using protocols like HTTP, SMTP,
FTP etc
World Wide Web, or simply Web
A way of accessing information over the Internet using HTTP.
3. World Wide Web
The Web as defined by Tim Berners-Lee consists of three elements:
URI (Uniform Resource Identifier) - The way of uniquely
identifying resources on the network.
HTML (HyperText Markup Language) - The content format of
resources to be returned.
HTTP (HyperText Transfer Protocol) - The protocol used to
request a resource from the network and respond to requests.
HTTP methods
All client server communication on the World Wide Web are
done using the following simple HTTP methods:
GET = "give me some info" (Retrieve)
POST = "here's some info to update” (Update)
PUT = "here's some new info" (Create)
DELETE = "delete some info" (Delete)
4. Retrieving Information using HTTP GET
Client Request
HTTP GET / HTTP/1.1
Header Host: http://www.amazon.com
Amazon
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.1
Web
Content-Type: text/html; charset=utf-8 Server
Content-Length: 8307
<html>
<head>
...
Server Response
The user types http://www.amazon.com in his browser.
The browser software creates and sends a HTTP request with a
header that holds:
The desired action: GET ("get me resource")
The target machine (www.amazon.com)
The server responds with the requested resource which is rendered
on the browser
5. Updating Information using HTTP POST
Client Request
HTTP POST / HTTP/1.1
Header Host: http://www.amazon.com
Payload Book: Da Vince Code
(Form Data) Credit Card: Visa
Number: 123-45-6789
Expiry: 12-04-06 Amazon
HTTP/1.1 200 OK
Web
Server: Microsoft-IIS/5.1 Server
Content-Type: text/html; charset=utf-8
Content-Length: 8307
<html>
<body>Your order has been placed successfully!</body>
</html>
Server Response
The user fills in a form on the Web page and submits it.
The browser software creates and send a HTTP request with a header and a
payload comprising of the form data.
The HTTP header identifies:
• The desired action: POST
• The target machine (amazon.com)
The payload contains:
• The data being POSTed (the form data)
The server responds with the requested resource which is rendered on the
browser
6. Widely Well-known “Words” (Contd..)
Web Application
Usually a collection of dynamic web pages
Usually restricted to the intranet
Can be implemented as desktop application
Information accessible using front end user interfaces
Accessed by authorised users only
Web Site
Collection of static and dynamic web pages
Available on the internet, or an organization's intranet
Cannot be implemented as desktop application
Information accessible using front end user interfaces
Accessed by anybody
7. Widely Well-known “Words” (Contd..)
Web Service
Application run by a web server, performing tasks and
returning structured data to a calling program, rather
than html for a browser.
Only “provides” information; does not “present”
information
Publicly available and standardized for use by all
programmers
Web Server
Software designed to serve web pages/web sites/web
services. Examples are IIS, Apache, etc.
8. Web Services
Services (usually some combination of program and data) that
are made available from a Web server for access by Web users
or other Web-connected programs.
Specific business functionality exposed by a company, usually
through an Internet connection, for the purpose of providing a
way for another company or software program to use the
service.
Types of Web Services:
9. Types of Web services
Service-Oriented Web Services
Based on “services”
One service offers multiple functionalities
“Big” Web Services
JAX-WS = JAVA-API for XML-based Web Services, mainly using
WSDL/SOAP
Resource-Oriented Web Services
Based on “resources”
Resource - any directly accessible and distinguishable distributed
component available on the network.
RESTful Web Services
JAX-RS = JAVA-API for RESTful Web Services, using only HTTP
10. Service Oriented Web Services - Architecture
SOAP (Simple Object Access Protocol)
WSDL (Web Services Definition Language)
UDDI (Universal Discovery, Description and Integration)
11. Resource Oriented Web Services - Architecture
Videos
Images
Text
Resources
Every distinguishable entity is a resource.
A resource may be a Web site, an HTML page, an XML document, a
Web service, an image, a video etc.
CRUD HTTP Method
URIs - Every resource is uniquely identified by a Create PUT or POST
URI. Read GET, HEAD or OPTIONS
Update PUT
Resource lifecycle management using HTTP
methods Delete DELETE
12. SOAP Web Service Vs RESTful Web Service
SOAP
IBM
1234.5
SOAP Request SOAP Response
<?xml version="1.0"?> <?xml version="1.0"?>
<soap:Envelope <soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap- xmlns:soap="http://www.w3.org/2001/12/soap-
envelope" envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap soap:encodingStyle="http://www.w3.org/2001/12/soap
-encoding"> -encoding">
<soap:Body <soap:Body
xmlns:m="http://www.example.org/stock"> xmlns:m="http://www.example.org/stock">
<m:GetStockPrice> <m:GetStockPriceResponse>
<m:StockName>IBM</m:StockName> <m:Price>1234.5</m:Price>
</m:GetStockPrice> </m:GetStockPriceResponse>
</soap:Body> </soap:Body>
</soap:Envelope> </soap:Envelope>
13. SOAP Web Service Vs RESTful Web Service
REST
IBM
http://www.example.org/stock?name=IBM
<?xml version="1.0"?> 1234.5
<stock>
<name>IBM</name>
<price>1234.5</price>
</stock>
REST – HTTP Request REST – XML Response
http://www.example.org/stock?name=IBM <?xml version="1.0"?> <stock>
<name>IBM</name>
<price>1234.5</price>
</stock>
14. SOAP Vs REST
Vs
SOAP based web services
Verbose => heavy payload
Suitable for enterprise web services where you need
interoperability, transactions, message delivery and reliability.
RESTful web services
Not verbose => needs less bandwidth
Good to use for the mobile applications.
15. REST
REST = REpresentational State Transfer
Architectural style in which clients and servers
exchange representations of resources by using a
standardized interface and protocol.
Principles of REST:
Addressability (URI)
Interface Uniformity (HTTP)
Statelessness (HTTP)
Connectedness (Hypermedia)
16. Why is it called "Representational State Transfer?"
http://www.boeing.com/aircraft/747
<?xml version="1.0"?>
<aircraft>
<model>747</model>
<mfgYr>2000</mfgYr>
</aircraft>
17. Why is it called "Representational State Transfer?"
http://www.boeing.com/aircraft/747/maintenanceSchedule
<?xml version="1.0"?>
<aircraft>
<model>747</model>
<mfgYr>2000</mfgYr>
<lastMntc>02-02-02<lastMntc>
<nextMntc>12-12-12<nextMntc>
</aircraft>
18. Why is it called "Representational State Transfer?"
1. The Client references a Web resource using a URL.
2. A representation of the resource is returned.
3. The representation (e.g., Boeing747.html) places the client in a new
state.
4. When the client selects a hyperlink in Boeing747.html, it accesses
another resource.
5. The new representation places the client application into yet
another state.
6. Thus, the client application transfers state with each resource
representation.
Roy T. Fielding http://roy.gbiv.com
20. Building a Web Service
Building blocks of a web service:
Input(s)
Data retrieval and processing function
Output(s)
Access path
Access method
21. RESTful Web Services
Web Services (data, functionality on server side) implemented using
HTTP + REST principles
Key elements of RESTful Web service are:
The URI (path) of the Web Service
The HTTP method supported by the web service.
The MIME type of the request and response data supported by it.
22. JAX-RS
Java API for RESTful Web Services
Maintained through Java Specification Request –
JSR311
Has a set of annotations and associated classes and
interfaces which simplify development of RESTful Web
Services.
Supports multiple data formats (JSON / XML / HTML /
TEXT)
24. Important JAX-RS Annotations
Aspect Annotation Scope Description
Sets the path to base URL + /resource_path.
@PATH
Class, The base URL is based on your application name,
URI (resource_pa
Method the servlet and the URL pattern from the
th)
web.xml" configuration file.
Resource Method Indicates that the method annotated with it will
@POST Method
Designators answer to a HTTP POST request
Indicates that the method annotated with it will
Rules: @GET Method
answer to a HTTP GET request
1) Only one JAX-RS Indicates that the method annotated with it will
method designation @PUT Method
answer to a HTTP PUT request
annotation is allowed
per method in a Java
class resource. Indicates that the method annotated with it will
2) Only public methods @DELETE Method
answer to a HTTP DELETE request
may be exposed as
resource methods
@Produces(
Class, @Produces defines which MIME type is returned
MediaType [,
Method by the resource.
more-types ])
MIME type
@Consumes(
Class, @Consumes defines which MIME type is
MediaType [,
Method consumed by this resource.
more-types ])
25. Configuring Jersey
1. Include the following Jar files in the web project's library:
jersey-core.jar, jersey-server.jar, jsr311-api.jar, asm.jar and jersey-
client.jar
2. Register Jersey as the servlet dispatcher for REST requests in the project’s
web.xml.
<servlet>
<servlet-name>ServletAdaptor</servlet-name>
<servlet-class> com.sun.jersey.spi.container.servlet.ServletContainer
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ServletAdaptor</servlet-name>
<url-pattern>/rs/*</url-pattern>
</servlet-mapping>
26. RESTful - Resources
With JAX-RS,
Annotated POJOs = RESTful Web Services a.k.a
Resources.
Root Resource = POJO (Plain Old Java Object)
annotated with @Path.
Sub Resources = Methods within the Root POJO
Resource
27. Sample RESTful Web Service
package com.example;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.POST;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MultivaluedMap;
@Path("/customers")
public class Customers {
Client Request
// Get all customer details
GET / HTTP/1.1
@GET Host:
public String getAllCustomers() { http://localhost:8081/TestRestfulService/rs/
return "list of customers"; customers
}
// Manage customer details
@POST
public void manageCustomers(@QueryParam("method") String method, MultivaluedMap<String,
String> formParams) {
if (method.equals("create")) { Client Request
//create new customer
POST / HTTP/1.1
} else if (method.equals("update")) { Host:
// update an existing customer http://localhost:8081/TestRestfulService/rs/
} else if (method.equals("delete")) { customers?method=create
// delete a customer
} Id: 12345
Name: John
}
}
28. Accessing resources using @Path
Root Resource
import javax.ws.rs.Path;
@Path("/employeeinfo")
public class EmployeeInfo {
…….
}
Root Resource Path
Syntax:
http://your_domain:port/display-name/url-
pattern/path_from_rest_class
Example:
http://localhost:8081/TestRestfulService/rs/employeeInfo
29. Accessing resources using @Path
An @Path value is not required to have leading or trailing slashes (/)
@Path(”/product/") = @Path(”/product”) = @Path("product”) =
@Path(”product/”)
Automatic encoding
@Path("product list") = @Path("product%20list”)
URL Pattern and path template
@Path("users/{username: [a-zA-Z][a-zA-Z_0-9]*}")
30. RESTful – Resources (Optional @Path sample)
package com.example;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.POST;
import javax.ws.rs.FormParam;
@Path("/customers")
public class Customers {
Client Request
// Get all customer details GET / HTTP/1.1
@GET Host:
public String getAllCustomers() { http://localhost:8081/TestRestfulService/rs/
return "list of customers"; customers
}
// Create a customer Client Request
@POST POST / HTTP/1.1
public void createCustomer( Host:
@FormParam("Id") int id, http://localhost:8081/TestRestfulService/rs/
@FormParam("Name") String name) { customers
//create new customer Id: 12345
} Name: John
}
31. RESTful–Resources(Mandatory @Path sample)
package com.example;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.POST;
import javax.ws.rs.PathParam;
@Path("/customers")
public class Customers { Client Request
GET / HTTP/1.1
// Get all customer details Host:
@GET http://localhost:8081/TestRestfulService/rs/
public String getAllCustomers() { customers
return "list of customers";
}
Client Request
// Get specific customer details GET / HTTP/1.1
@GET Host:
@Path("{id}") http://localhost:8081/TestRestfulService/rs/
public String getCustomer(@PathParam("id”) customers/1234
String id) {
return "particular customer";
}
}
32. Hierarchical matching using @Path
package com.example;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import com.thoughtworks.xstream.XStream;
@Path("/customers")
public class Customers{ Client Request
GET / HTTP/1.1
@GET Host:
public String getAllCustomers() { http://localhost:8081/TestRestfulService/rs/
return "list of customers"; customers
}
@GET
Client Request
@Path("/{id}")
public String getCustomer(@PathParam("id") int id) { GET / HTTP/1.1
Host:
XStream xstream = new XStream();
http://localhost:8081/TestRestfulService/rs/
Customer customer = new Customer(id);
customers/1234
return xstream.toXml(customer);
}
@GET Client Request
@Path("/{id}/address") GET / HTTP/1.1
public String getAddress(@PathParam("id") int id) { Host:
Customer customer = new Customer(id); http://localhost:8081/TestRestfulService/rs/
return customer.getAddress(); customers/1234/address
}
}
33. RESTful – Sub Resources
Sub Resource Methods
POJO Methods annotated with a “resource method designator”
annotation and with @Path annotation.
Handles the HTTP request directly.
@Path is optional for a sub resource method under the following
conditions:
If no. of methods per HTTP action = 1, then @Path is optional
If no. of methods per HTTP action > 1, then all methods or all but
one method should have @Path
Sub Resource Locators
POJO Methods annotated ONLY with @Path but NOT with any
“resource method designator” annotation.
Returns an object of the Sub Resource Class that will handle the
HTTP request.
34. Examples of Sub Resources
package com.example;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
@Path("/employeeinfo")
public class EmployeeInfo {
// Subresource locator: obtains the subresource Employee from
// the path /employeeinfo/employees/{fullName}
@Path("/employees /{fullName}")
public Employee getEmployee(@PathParam("fullName") String fullName) {
Employee emp = new Employee(fullName);
return emp;
}
// Subresource Method
@GET
@Path("/employees")
public String getAllEmployees() {
return "List of employees from sub resource method";
}
}
35. Examples of Sub Resources (contd..)
package com.example;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
// Subresource class
public class Employee {
private String fullName;
public Employee(String fullName){
this.fullName = fullName;
}
// Subresource method: returns the employee's first name
@GET
@Path("/firstname")
public String getEmployeeFirstName() {
return fullName.substring(0, fullName.indexOf(" ")==-1? fullName.length(): fullName.indexOf(" "));
}
// Subresource method: returns the employee's last name
@GET
@Path("/lastname")
public String getEmployeeLastName() {
if(fullName.indexOf(" ")==-1){
return "No Last Name found";
} else {
return fullName.substring(fullName.indexOf(" ")+1);
}
}
}
36. Examples of Sub Resources (contd..)
Request URL:
http://localhost:8080/TestRestfulService/rs/employeeinfo/employees
Output:
List of employees from sub resource method
Request URL:
http://localhost:8080/TestRestfulService/rs/employeeinfo/employees/John/firstname
Output:
John
Request URL:
http://localhost:8080/TestRestfulService/rs/employeeinfo/employees/John Doe/lastname
Output:
Doe
Request URL:
http://localhost:8080/TestRestfulService/rs/employeeinfo/employees/John/lastname
Output:
No Last Name found
37. Extracting Request Parameters
Client Request Path Param:
POST / HTTP/1.1 http://localhost:8080/TestRestfulService/rs/customer/12345
HTTP Host: http://www.amazon.com
Cookie: x=56
Header Query Param:
User-Agent: Mozilla
http://localhost:8080/TestRestfulService/rs/employees?id=543
Book: Da Vince Code
Payload Credit Card: Visa
(Form Data) Number: 123-45-6789 Matrix Param:
http://localhost:8080/TestRestfulService/rs/employees;role=ITA
Supported HTTP
Annotation Description Data Source
Method
@QueryParam Extracts the value of a URI query parameter. URI GET, POST, PUT, or
DELETE
@PathParam Extracts the value of a URI template parameter. URI GET, POST, PUT, or
DELETE
@MatrixParam Extracts the value of a URI matrix parameter. URI GET, POST, PUT, or
DELETE
@HeaderParam Extracts the value of a HTTP header. Header of HTTP GET, POST, PUT, or
Request DELETE
@CookieParam Extracts information from cookies declared in the Header of HTTP GET, POST, PUT, or
cookie request header. Request DELETE
@FormParam Extracts information from a request representation Payload of HTTP Limited only to HTTP
whose content type is application/x-www-form- Request POST
urlencoded.
38. Extracting Request Parameters - Example
Annotation HTTP Request & URL Sample JAX-RS sample
@QueryParam URL with query params: public void foo(@QueryParam("x") int
http://<host_name>:<port>/<context_root>/<servlet_path>/ numberX)
MyService/URL?x=56
GET /MyService/URL?x=56 HTTP/1.1
@PathParam http://<host_name>:<port>/<context_root>/<servlet_path>/ @Path("URLPattern/{x}")
MyService/URLPattern/56 public void foo(@PathParam("x") int
numberX)
GET /MyService/URLPattern/56 HTTP/1.1
@MatrixParam URL with matrix params: public void foo(@MatrixParam("x") int
http://<host_name>:<port>/<context_root>/<servlet_path>/ numberX)
MyService/URL;x=56
GET /MyService/URL;x=56 HTTP/1.1
@HeaderParam GET /MyService/URL HTTP/1.1 public void foo(@HeaderParam("x") int
x: 56 numberX)
@CookieParam GET /MyService/URL HTTP/1.1 public void foo(@CookieParam("x") int
Cookie: x=56 numberX)
39. Extracting Request Parameters - Example
Annotation HTTP Request JAX-RS sample
Sample
@FormParam The form parameters and @POST
values are encoded in the
request message body @Consumes("application/x-www-form-urlencoded")
like the following:
public void post(@FormParam(“x") int numberX) {
POST /MyService/URL
HTTP/1.1 }
x=56
OR
@POST
@Consumes("application/x-www-form-urlencoded")
public void post(MultivaluedMap<String, String> formParams) {
}
40. Extracting Context Information - @Context
To extract ServletConfig, ServletContext, HttpServletRequest and
HttpServletResponse from a Web application context
Examples:
@GET
public String get(@Context UriInfo ui) {
MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
MultivaluedMap<String, String> pathParams = ui.getPathParameters();
}
@GET
public String get(@Context HttpHeaders hh) {
MultivaluedMap<String, String> headerParams = hh.getRequestHeaders();
Map<String, Cookie> pathParams = hh.getCookies();
}
41. @DefaultValue
Any failure to parse an input will result in the parameter being given whatever is
the default value for its type: false for boolean, zero for numbers, etc.
This can be overridden by using @DefaultValue annotation and setting preferred
default value.
This default value will be used whenever the expected input is missing – or when
it is present but parsing fails.
The default value should be given as a String. It will be parsed to the appropriate
type of the method parameter.
Example:
public void foo(@DefaultValue(“123”) @QueryParam(“id") int id)
http://localhost:8081/TestRestfulService/rs/customer?id=56
id = 56
http://localhost:8081/TestRestfulService/rs/customer
id = 123
http://localhost:8081/TestRestfulService/rs/customer?id=ABC
id = 123
42. Request Parameter – Data Types
Both @QueryParam and @PathParam can be used only on the following
Java types:
All primitive types except char
All wrapper classes of primitive types except Character
Any class with a constructor that accepts a single String argument
Any class with the static method named valueOf(String) that accepts
a single String argument
List<T>, Set<T>, or SortedSet<T>, where T matches the already
listed criteria.
If @DefaultValue is not used in conjunction with @QueryParam, and the
query parameter is not present in the request, the value will be an empty
collection for List, Set, or SortedSet; null for other object types; and the
default for primitive types.
43. Entity Parameters
A JAX-RS service method can define any number of parameters.
All, or all but one, of those parameters must be annotated to inform
JAX-RS as to how to provide a value for it.
The one not annotated, if present, is known as an entity, and is
implicitly bound to the request body. In other words, a non-annotated
parameter extracted from the request body is known as an entity.
The JAX-RS specification does not permit more than one entity
parameter per method.
44. Entity Provider
JAX-RS maps Java types to and from resource representations using entity
providers.
JAX-RS entity providers help in the mapping between entities and
associated Java types.
The two types of entity providers supported by JAX-RS are:
MessageBodyReader: a class that is used to map an HTTP request
entity body to method parameters
MessageBodyWriter: a class that is used to map the return value to
the HTTP response entity body.
If a String value is used as the request entity parameter, the
MessageBodyReader entity provider deserializes the request body into a new
String.
If a JAXB type is used as the return type on a resource method, the
MessageBodyWriter serializes the Java Architecture for XML Binding
(JAXB) object into the response body.
45. Entity Provider - Example
For a resource method to return XML content, return an instance of a
JAXB class directly or return a javax.ws.rs.core.Response object with a JAXB
object as the response entity.
Suppose that BookList is a JAXB class; for example:
@GET
@Produces("application/xml", "text/xml")
public BookList getBookList() {
BookList list = /* get a book list */
return list;
}
Or
@GET
@Produces("application/xml", "text/xml")
public javax.ws.rs.core.Response getBookList() {
BookList list = /* get a book list */
return Response.ok(list).build();
}
46. JAX-RS Method Return Types
void, resulting in an HTTP 204 (no content) response
String
Response, a JAX-RS class that allows the programmer to provide response
content and other metadata, including HTTP headers
GenericEntity, another JAX-RS type whose job it is to represent type-
parameter information for a generic entity type (think List<MyClass>) at
runtime
A valid entity type – that is to say, any other Java class will be perceived as
an entity by JAX-RS and converted by the same mechanism used for entity
parameters
A sub-resource method may return any of the following types – these then
have entity providers pre-registered for them:
byte[]
java.io.InputStream
java.io.Reader
java.io.File
javax.ws.rs.ext.StreamingOutput
javax.activation.DataSource
47. Summary
Web Services
Web Service types
REST
JAX-RS
JAX-RS annotations
Jersey
Restful Web Services
Root Resource
Sub Resources
Accessing resources
HTTP methods
Extracting request (input) parameters
Response types (output)
48. Quiz
1. REST in RESTful Web Services stands for
a. Repetitive State Transfer
b. Representational State Transfer
c. Representational State Transformation
d. Representational Scope Transfer
2. Which of the following annotation indicates a method’s return data type?
a. @Accept
b. @Produces
c. @Consumes
d. @POST
3. Which of the following is true about the annotation @FormParam?
a. It can be used only for a POST Method’s
b. It can be used only for GET Method’s
c. It is used to retrieve the Query String in the URL of the HTTP
Service
d. Both B & C
49. Quiz
4. How do you specify a default value for a Query Param?
a. It is not possible to specify a default value for a Query param. It’s
always null.
b. @QueryParam("version") String version = “1”
c. @QueryParam("version") int version @DefaultValue("1")
d. @DefaultValue("1") @QueryParam("version") String version
5.
@XXX
@Path("/update")
@Produces("application/xml")
public String updateCustomer(@FormParam("data") String data)
{
...
}
Which method call will be replaced with XXX in the above code?
a. GET
b. POST
c. Both
d. None
50. Quiz
6.
@Path("/customers")
public class Customers {
@GET
@Path("{id}")
public String getCustomer(@PathParam("id”) String id) { …… }
@POST
@Path("{id}")
public void deleteCustomer(@PathParam("id”) String id) { ….. }
}
Is this code correct? Will it compile and run?
51. Quiz - Answers
1. a
2. b
3. a
4. d
5. b
6. The code is correct and will compile. Though the paths of the sub
resource methods are same, their HTTP method differ and hence this
is a valid code.