A quick overview on REST : what it is and what it is not. REST has strict contraints and many internet Apis are not so REST. It’s also very popular today because RESTfull services can be consumed easily by any client or device. Soap is also still valid in a few circomstaces. It has never been so easy to create Rest-like services in .net since asp.net Web Api.
Since the introduction of C#, async/await concepts are still misunderstood by many developers.
Async programming tries to solve three problems (Offloading, Concurrency, Scalability) in a mean abstraction.
This presentation is a good starting point to asynchronous programming in .net. There are many links and references, so do not hesitate to go deeper.
The Reactive Extensions (Rx) is a library for composing asynchronous and event-based programs using observable sequences and LINQ-style query operators. Here is an overview of Rx with examples at the end.
Performance doesn’t have the same definition between system administrators, developpers and business teams. What is Performance ? High CPU usage, not scalable web site, low business transaction rate per sec, slow response time, … This presentation is about maths, code performance, load testing, web performance, best practices, … Working on performance optimizaton is a very broad topic. It’s important to really understand main concepts and to have a clean and strong methodology because it could be a very time consumming activity. Happy reading !
Reactive Micro Services with Java seminarGal Marder
Abstract –
Micro services is the current architectural trend. In this seminar, we'll go over the concepts behind a good micro-service implementation and see how to implement it with available Java frameworks.
Target Audience
Java developers, team leaders, project managers.
Prerequisites
Java knowledge
Contents:
Overview of Micro-service architecture principles.
- Technical stacks:
- The Spring Stack (Spring Boot & Cloud)
- Lagom
- Akka and Play
- Vertx
- Complementaries
- Discovery
- Configuration
- Monitoring
An introduction to reactive programming concepts and basics. I aim here to show what's reactive programming, why it's used and show some frameworks and benchmarks that support it.
Reactive programming is gaining momentum for a while now using RxJava, Vert.x and other frameworks. By a short delay, spring finally adopts reactive programming to its core. During this presentation, we will briefly explore the changes in Spring 5 and will dedicate most of the time to discuss and demonstrate reactive programming using Spring 5.
Since the introduction of C#, async/await concepts are still misunderstood by many developers.
Async programming tries to solve three problems (Offloading, Concurrency, Scalability) in a mean abstraction.
This presentation is a good starting point to asynchronous programming in .net. There are many links and references, so do not hesitate to go deeper.
The Reactive Extensions (Rx) is a library for composing asynchronous and event-based programs using observable sequences and LINQ-style query operators. Here is an overview of Rx with examples at the end.
Performance doesn’t have the same definition between system administrators, developpers and business teams. What is Performance ? High CPU usage, not scalable web site, low business transaction rate per sec, slow response time, … This presentation is about maths, code performance, load testing, web performance, best practices, … Working on performance optimizaton is a very broad topic. It’s important to really understand main concepts and to have a clean and strong methodology because it could be a very time consumming activity. Happy reading !
Reactive Micro Services with Java seminarGal Marder
Abstract –
Micro services is the current architectural trend. In this seminar, we'll go over the concepts behind a good micro-service implementation and see how to implement it with available Java frameworks.
Target Audience
Java developers, team leaders, project managers.
Prerequisites
Java knowledge
Contents:
Overview of Micro-service architecture principles.
- Technical stacks:
- The Spring Stack (Spring Boot & Cloud)
- Lagom
- Akka and Play
- Vertx
- Complementaries
- Discovery
- Configuration
- Monitoring
An introduction to reactive programming concepts and basics. I aim here to show what's reactive programming, why it's used and show some frameworks and benchmarks that support it.
Reactive programming is gaining momentum for a while now using RxJava, Vert.x and other frameworks. By a short delay, spring finally adopts reactive programming to its core. During this presentation, we will briefly explore the changes in Spring 5 and will dedicate most of the time to discuss and demonstrate reactive programming using Spring 5.
Reactive programming is quite a popular topic these days. For a long time, reactive programming was constrained to interactive user interface designs. With the advancement of hardware (multi-core CPU’s) and the internet, the scale, complexity, and responsiveness of software began to rise which led to reactive programming being regarded as a major programming paradigm.
Read more from here: https://blog.lftechnology.com/introduction-to-reactive-programming-part-1-5b7c63685586
By: Subash Poudel (Software Engineer @ Leapfrog Technology, Inc.)
Promise of a better future by Rahul Goma Phulore and Pooja Akshantal, Thought...Thoughtworks
With the recent, vivid trend towards multicore hardware and the ever growing application requirements, concurrency is no more a niche area it used to be, and is slowly becoming a norm. In this talk, we will talk about promises/futures, one of the concurrency models that has risen to the occasion. We will look at what they are, how they're implemented and used in Java and Javascript. We will see how Scala, with its functional paradigm and greater abstraction capabilities, avoids "callback hell" typically associated with the model, allows writing of concurrent code in "direct style", and thereby greatly reduces the cognitive burden, allowing you to focus on application logic better.
Coordinating Micro-Services with Spring Cloud ContractOmri Spector
Spring Cloud Contract is an integration testing framework that promotes TDD for micro-services and allows "Consumer Driven Contracts". Delivered at Jammin' Java 2017, this presentation is accompanied with source code on GitHub
Reactive programming is a general programming term focused on reacting to changes, such as data values or events. It can and often is done imperatively. A callback, delegate is an approach to reactive programming done imperatively.
Multi-threading in the modern era: Vertx Akka and QuasarGal Marder
Everybody wants scalable systems. However, writing non-blocking applications in Java is not an easy task. In this session, we'll go over 3 different frameworks for managing multi-treading and concurrency support (Akka, Vertx and Quasar).
My Stackato presentation given to the CopenhagenJS user group. Basic examples were implemented in Node.
More information available at: https://logiclab.jira.com/wiki/display/OPEN/Stackato
Modern web development is split into two diverging areas: frontend and backend. Gone are the days in which the server side code could manage the UI, and the growt of rich web interfaces and mobile applications poses new challenge in the way we approach web development.
In this talk, we will show how the paradigms of server side development have been radically changed by this trend, and how emerging client side technologies such as Websockets are radically altering the landscape of web development, and how we can address such technologies using Python.
We will also highlight the challenges that such new paradigms arise in the area of security, performance, and system architecture.
Software analysts around the world anticipate a concept of "Reactive Programming" to have a great future in solving the problems of big data, high load and mobile applications. TypeSafe, the developers of Scala language, created a promising "reactive" framework Akka, written in Scala and yet Java-friendly. How could it be interesting for Java developers? Can Akka+Java compete with Akka+Scala? How Java8 can help with that? This presentations provides answers to these questions.
This presentation by Dmytro Mantula (Lead Software Engineer, GlobalLogic) was delivered at GlobalLogic Java Conference #2 in Krakow on April 23, 2016.
This presentation is also available in Russian: http://www.slideshare.net/GlobalLogicUkraine/take-a-look-at-akka-java
Devops and Immutable infrastructure - Cloud Expo 2015 NYCJohn Willis
You often hear the two titles of "DevOps" and "Immutable Infrastructure" used independently.
In his session at DevOps Summit, John Willis, Technical Evangelist for Docker, will cover the union between the two topics and why this is important. He will cover an overview of Immutable Infrastructure then show how an Immutable Continuous Delivery pipeline can be applied as a best practice for "DevOps." He will end the session with some interesting case study examples.
Reactive programming is quite a popular topic these days. For a long time, reactive programming was constrained to interactive user interface designs. With the advancement of hardware (multi-core CPU’s) and the internet, the scale, complexity, and responsiveness of software began to rise which led to reactive programming being regarded as a major programming paradigm.
Read more from here: https://blog.lftechnology.com/introduction-to-reactive-programming-part-1-5b7c63685586
By: Subash Poudel (Software Engineer @ Leapfrog Technology, Inc.)
Promise of a better future by Rahul Goma Phulore and Pooja Akshantal, Thought...Thoughtworks
With the recent, vivid trend towards multicore hardware and the ever growing application requirements, concurrency is no more a niche area it used to be, and is slowly becoming a norm. In this talk, we will talk about promises/futures, one of the concurrency models that has risen to the occasion. We will look at what they are, how they're implemented and used in Java and Javascript. We will see how Scala, with its functional paradigm and greater abstraction capabilities, avoids "callback hell" typically associated with the model, allows writing of concurrent code in "direct style", and thereby greatly reduces the cognitive burden, allowing you to focus on application logic better.
Coordinating Micro-Services with Spring Cloud ContractOmri Spector
Spring Cloud Contract is an integration testing framework that promotes TDD for micro-services and allows "Consumer Driven Contracts". Delivered at Jammin' Java 2017, this presentation is accompanied with source code on GitHub
Reactive programming is a general programming term focused on reacting to changes, such as data values or events. It can and often is done imperatively. A callback, delegate is an approach to reactive programming done imperatively.
Multi-threading in the modern era: Vertx Akka and QuasarGal Marder
Everybody wants scalable systems. However, writing non-blocking applications in Java is not an easy task. In this session, we'll go over 3 different frameworks for managing multi-treading and concurrency support (Akka, Vertx and Quasar).
My Stackato presentation given to the CopenhagenJS user group. Basic examples were implemented in Node.
More information available at: https://logiclab.jira.com/wiki/display/OPEN/Stackato
Modern web development is split into two diverging areas: frontend and backend. Gone are the days in which the server side code could manage the UI, and the growt of rich web interfaces and mobile applications poses new challenge in the way we approach web development.
In this talk, we will show how the paradigms of server side development have been radically changed by this trend, and how emerging client side technologies such as Websockets are radically altering the landscape of web development, and how we can address such technologies using Python.
We will also highlight the challenges that such new paradigms arise in the area of security, performance, and system architecture.
Software analysts around the world anticipate a concept of "Reactive Programming" to have a great future in solving the problems of big data, high load and mobile applications. TypeSafe, the developers of Scala language, created a promising "reactive" framework Akka, written in Scala and yet Java-friendly. How could it be interesting for Java developers? Can Akka+Java compete with Akka+Scala? How Java8 can help with that? This presentations provides answers to these questions.
This presentation by Dmytro Mantula (Lead Software Engineer, GlobalLogic) was delivered at GlobalLogic Java Conference #2 in Krakow on April 23, 2016.
This presentation is also available in Russian: http://www.slideshare.net/GlobalLogicUkraine/take-a-look-at-akka-java
Devops and Immutable infrastructure - Cloud Expo 2015 NYCJohn Willis
You often hear the two titles of "DevOps" and "Immutable Infrastructure" used independently.
In his session at DevOps Summit, John Willis, Technical Evangelist for Docker, will cover the union between the two topics and why this is important. He will cover an overview of Immutable Infrastructure then show how an Immutable Continuous Delivery pipeline can be applied as a best practice for "DevOps." He will end the session with some interesting case study examples.
Seeing how online search has changed our lives, Google Philippines worked together with internet sensations and formed a campaign that aimed to encourage Filipinos to maximize the full potential of online search. Ready? Check this one out! https://www.google.com.ph/campaigns/googlemolang/
Spectral Consultants is one of the leading professionally managed talent acquisition, talent Search and Human Resource firm established in 2001, based in Delhi (NCR).
We are a leading provider of recruitment, executive search & selections solutions to multiple industries including IT, ITES, BFSI, FMCG, Healthcare, Retail, Infrastructure, Travel & Hospitality across India. Over these years we have attained excellence in Financial Services space – both for ITES and India Market.
We are in the last days of this age. Year 2013 is the turning point.
After Buddha Sakyamuni and Jesus Christ,Xuefeng (Deiform Buddha) ,the messenger of the Greatest Creator,followed Revelation founding Lifechanyuan to give the last course for human beings to learn and follow since year 2003 and before 2013:
The pyramid is the “womb” for the birth of mankind, filled with unlimited mysteries, which once discovered by man, will have a direct bearing on the question of whether man should continue to exist on earth. Just like the modern “cloning technology”, the mass reproduction of man will pose a direct threat to the balance of various space life-forms and destroy the “transmigration order” of life. Man should be kept from taking such risks.
Then what punishment will be met out for those daring to break into the pyramid?By the pharaoh’s curse, all those interlopers would be killed so that no secrets could be leaked.
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/
You know you have to have a great experience when you develop your Windows Phone 8 applications right? The greatest experience you can give your users is around their data. There are ways to improve your Windows Phone 8 application and Chris Woodruff will teach you how to get data quickly, save it with validation, save it locally and many, many more tricks. Come see why you should know the tricks of the trade before developing that killer Windows Phone 8 app. You will be a Data Experience expert when you leave the room after this session.
Why another test framework in dotnet ? In this presentation, I will try to convince you to switch to xUnit. Main concepts & extensibility points are covered here. Happy testing !
A really quick introduction to Microsoft Azure Storage and all of its services. It's one of the core components of Azure and it's really important to understand it if you want to "move to the cloud".
'Scenario Driven Design' allow programmers to make more usable APIs and avoid performance issues. REST principles are often misunderstood and programmers expose their raw data model without any logic. Think about your scenarios first !
Because we are not only shipping code and we are no longer Microsoft developers but .NET developers, it's time to open your mind and to see what is offering the OSS world.
Docker is an amazing tool.
Docker did popularize container and brought a way to manage it.
Ok, seems to be cool, but why do developers care?
- Static application environment: we know exactly what we are running
- Repeatable, runnable artifact: we can deploy everywhere, anytime
- Loosely coupled: we can manage, isolate, and compose at environment level easily
Please have a look to this Betclic presentation and remember that .NET CLR are coming in GNU/linux world!
Flyway is a light database migration tools:
- Migrate the database from a list of sql migration scripts (schemas and data).
- Each script is prefixed by a version number that determine the version of the database.
- The execution trace of the scripts is saved in a "schemas_version" table.
- Automatically find which scripts to execute to upgrate a database to a specific version.
NDepend is a static analysis tool for .NET managed code. This tool supports a large number of code metrics, allows for visualization of dependencies using directed graphs and dependency matrix. The tools also performs code base snapshots comparison, and validation of architectural and quality rules.
A mixed introduction of Lean and Agile concepts targeted at business audience, presenting 3 key lean concepts (MVP, short feedback loop, cost of delay).
asp.net vNext is the next major version on .net on the server. It’s a completely new way to work with awesome possibilities ; It contains a new flexible and cross-platform runtime, new modular HTTP request pipeline, Cloud-ready CLR, an unified programming model that combines MVC, Web API, and Web Pages, a no-compilation dev experience, ability to self-host or host on IIS, …
Best of all : it’s Open source in GitHub (https://github.com/aspnet/Home)
The Model View ViewModel (MVVM) is an architectural pattern originated by Microsoft as a specialization of the Presentation Model (Martin Fowler). Similar to MVC, MVVM is suitable for client applications (Xaml-based, Xamarin, SPA, ...) because it facilitates a clear separation between the UI and the Business Logic. Examples with WPF, MvvmCross, AngularJs. It also contains solutions for common use cases.
Recommendations are everywhere : music, movies, books, social medias, e-commerce web sites… The Web is leaving the era of search and entering one of discovery. This quick introduction will help you to understand this vast topic and why you should use it.
In one of our weekly training, we’ve talked about Git. Here is a quick overview of the main concepts, basic commands and branching strategy, how to work with Git, how to contribute to an OSS project, …
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
I have heard many times that architecture is not important for the front-end. Also, many times I have seen how developers implement features on the front-end just following the standard rules for a framework and think that this is enough to successfully launch the project, and then the project fails. How to prevent this and what approach to choose? I have launched dozens of complex projects and during the talk we will analyze which approaches have worked for me and which have not.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
The field of Information retrieval (IR) is currently undergoing a transformative shift, at least partly due to the emerging applications of generative AI to information access. In this talk, we will deliberate on the sociotechnical implications of generative AI for information access. We will argue that there is both a critical necessity and an exciting opportunity for the IR community to re-center our research agendas on societal needs while dismantling the artificial separation between the work on fairness, accountability, transparency, and ethics in IR and the rest of IR research. Instead of adopting a reactionary strategy of trying to mitigate potential social harms from emerging technologies, the community should aim to proactively set the research agenda for the kinds of systems we should build inspired by diverse explicitly stated sociotechnical imaginaries. The sociotechnical imaginaries that underpin the design and development of information access technologies needs to be explicitly articulated, and we need to develop theories of change in context of these diverse perspectives. Our guiding future imaginaries must be informed by other academic fields, such as democratic theory and critical theory, and should be co-developed with social science scholars, legal scholars, civil rights and social justice activists, and artists, among others.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
3. REST
a vastly misunderstood term
• REpresentational State Transfer is not a
– Philosophy essay
– Language
– Protocol
– Standard, RFC
– Framework of MS, Google, Facebook, …
– Technology
–…
4. REST
what REST is
• Introduced in 2000 by Roy Fielding
– principal author of HTTP and creator of Apache Web Server
•
REST is an architecture style
– a coordinated set of architectural constraints that restricts the roles and
features of architectural elements, and the allowed relationships between
those elements
• Client–server
• Stateless
• Cacheable
• Layered system
• Uniform interface
• Code on demand (optional)
Conforming to these constraints is referred to as being RESTful
5. REST
Constraints
Client – Server
Stateless
“No restrictions on the nature of the
client, on the number of the clients
and on communication medium /
protocol”
“... each request from client to server
must contain all of the information
necessary to understand the
request, and cannot take advantage
of any stored context on the
server, independent of any requests
that may have preceded it »
•
•
•
•
Separate data storage concerns
Improve user interface portability
across multiple platforms
Improve scalability by simplifying
server components
Components evolve independently
•
•
•
•
Session state is kept on client
Improved visibility because every
exchange is self descriptive
Easier recoverability from partial
failures
Improved scalability on server
6. REST
Constraints
Cacheability
“... the data within a response to a
request must be implicitly or
explicitly labeled as cacheable or
non-cacheable. If a response is
cacheable, then a client cache is
given the right to reuse that response
data for later, equivalent requests.”
•
•
Reduces client to server interactions
Improves efficiency, scalability and
user perceived performance
Layered System
“The layered system style or also
popularly referred to as n-layer
system allows an architecture to be
composed of hierarchical layers by
constraining component behavior
such that each component cannot
"see" beyond the immediate layer
with which they are interacting.”
7. REST
Constraint : Uniform Interface
Information is transferred in a standardized form
•
Considered fundamental to the design of any REST app
Identification of resources
Each resource has a URI and is access through a defined set of HTTP methods
(GET, PUT, POST, DELETE)
•
Manipulation of resources through representations
Each resource can have one or more representations. Such as
application/xml, application/json, text/html, etc. Clients and servers negotiate to select
representation.
•
Self-descriptive messages
Requests and responses contain not only data but additional headers describing how the
content should be handled. Such as if it should be cached, authentication requirements, etc.
•
Hypermedia as the engine of application state (aka HATEOAS)
Clients make state transitions only through actions that are dynamically identified within
hypermedia by the server (e.g., by hyperlinks within hypertext). Except for simple fixed
entry points to the application, a client does not assume that any particular action is
available for any particular resources beyond those described in representations previously
received from the server.
9. RESTful Web Service
REST for the web
•
A RESTful web API (also called a RESTful web service) is a web API implemented
using HTTP and the principles of REST
–
–
–
–
–
•
•
URI (Clean ?)
Internet media types
HTTP Headers
HTTP Response Codes
HTTP Methods
• GET
• POST
• PUT
• DELETE
…
RESTful Web Service uses the existing features of the HTTP protocol.
Layered proxy and gateway components perform additional functions on the
network, such as HTTP caching and security enforcement.
10. REST
in the web industry
• Definition of REST lost its way when popular services emerged
calling themselves REST which were not
– Having an HTTP server accept GET requests or POST and responding
with XML, JSON or some other data format
is not automatically RESTful
• Not so many RESTful services, but many REST-like services
and web Api ( loose adherence)
– Client scripts
– Exposed Operations
11. REST
what makes REST-style web services so popular today ?
• Because it’s based on the same constraints that make the
Web successful
– Web was not designed as an Xml Bus with RPC
• Since it uses standard HTTP features, it is much more
simpler, easier, faster and scalable than any other web
technology
• REST-styles permits many different data formats (json, xml, …)
• REST-styles web services can be consumed easily by any
client or device
– Do you know a better way to touch
desktop browsers, mobile, tablets
for any OS or technology ?
12. REST vs SOAP
SOAP web service
REST-style web service
Support multiple transport protocols (HTTP, TCP, UDP, and HTTP only and more suitable for access from various
custom transports)
browsers, mobile devices etc enabling wide reach.
Enables building services that support multiple encodings
(Text, MTOM, and Binary) of the same message type and
allows switching between them.
Enables building Web APIs that support wide variety of
media types including XML, JSON etc.
Supports building services with WS-* standards like
Reliable Messaging, Transactions, Message Security.
Uses basic protocol and formats such as HTTP,
WebSockets, SSL, JQuery, JSON, and XML. There is no
support for higher level protocols such as Reliable
Messaging or Transactions.
Supports Request-Reply, One Way, and Duplex message
exchange patterns.
HTTP is request/response but additional patterns can be
supported through SignalRand WebSockets integration.
WCF SOAP services can be described in WSDL allowing
automated tools to generate client proxies even for
services with complex schemas.
There is a variety of ways to describe a Web API ranging
from auto-generated HTML help page describing snippets
to structured metadata for OData integrated APIs.
13. REST
How to build a REST-style Service in .NET ?
•
Using WCF (deprecated)
– Using WebHttpBinding & WebHttpBehavior
•
Using Asp.net Web Api
–
–
–
–
–
–
–
–
–
–
–
Not part of .NET, open-source as MVC
Strong Support URL Routing to produce clean URLs using familiar MVC style semantics
Content Negotiation based on Accept headers for request and response serialization
Support for a host of supported output formats including JSON, XML, ATOM
Strong default support for REST semantics but they are optional
Easily extensible Formatter support to add new input/output types
Convention based design that drives you into doing the right thing for HTTP Services
Very extensible, based on MVC like extensibility model of Formatters and Filters
Self-hostable in non-Web applications
Testable using testing concepts similar to MVC
…
15. Conclusion
• REST is a vastly misunderstood term
• REST-styles web services are very popular today because they
are simple, easy to use, performant , scalable and can be
consumed by any client
• REST-style Vs SOAP ? Both the REST-style and SOAP have
advantages and disadvantages when it comes to building
services. It’s more related to an architectural Decision.
to rest ...
18. About Betclic
•
•
•
Betclic Everest Group, one of the world leaders in online gaming, has a unique portfolio
comprising various complementary international brands: Betclic, Everest Gaming, bet-athome.com, Expekt…
Active in 100 countries with more than 12 million customers worldwide, the Group is
committed to promoting secure and responsible gaming and is a member of several
international professional associations including the EGBA (European Gaming and Betting
Association) and the ESSA (European Sports Security Association).
Through our brands, Betclic Everest Group places expertise, technological know-how and
security at the heart of our strategy to deliver an on-line gaming offer attuned to the passion
of our players.