The document is a presentation on REST and SOA given by Stefan Tilkov at QCon London 2008. It begins by introducing the presenter and topic, then provides definitions of SOA from various sources to establish common understanding. It notes that defining SOA is difficult due to various interpretations. The presentation next asks what REST is, and says it will provide 3 definitions as it did for SOA. It previews that the first definition of REST will view it as an architectural style described by Roy Fielding in his dissertation.
This document summarizes a presentation about JRuby, an implementation of the Ruby programming language that runs on the Java Virtual Machine. It discusses what JRuby is, how to get started with it, details of its implementation including compilation and threading, and how it addresses various issues with Ruby like performance, memory management, and integration with Java. It also covers some JRuby projects and potential future directions.
This document summarizes Subbu Allamaraju's presentation on building RESTful web APIs. The presentation covers REST architecture constraints including identifying resources with URIs, manipulating resources through representations, self-descriptive messages, and hypermedia as the engine of application state. It also discusses building RESTful HTTP APIs by using the HTTP methods like GET, POST, PUT, DELETE according to their definitions and designing resources around domain nouns. The presentation provides examples of RESTful and non-RESTful API designs.
This document discusses the evolution of service-oriented architecture (SOA) and application programming interfaces (APIs). It notes that while SOA was initially driven by IT concerns around integration, APIs are now business-driven and focused on revenue generation. The document also examines differences between SOA and APIs, how APIs can be managed, and emerging trends like the rise of microservices and APIs for IoT.
This presentation gives a high level concepts and more of code to take a stab at developing a simple Restful server. I targeted people who would like to build a simple RESTFul server from scratch and experiment.
The document discusses how Actionable.co, a distributed company, uses the REST API to manage their various websites and third party integrations. Some key uses of the REST API include retrieving content from WordPress to populate their learning platform, linking blogs between three websites, automating tasks like notifying managers when employees complete onboarding courses, and managing users across multiple sites without using multisite. The REST API allows them to optimize caching, avoid custom coding, and automate workflows between their sites and third party services.
The document provides an overview of the REST (Representational State Transfer) architectural style. It defines REST, describes its constraints including client-server architecture, stateless, cacheable, uniform interface, and layered system. It also gives examples of how to design a RESTful web API, including defining resources and their representations, using HTTP methods and status codes, and considerations for caching, encodings and security.
Tech Talk: CA Live API Creator: Modern Integration Strategies—API Integration...CA Technologies
Val Huber of CA Technologies gave a presentation on modern integration strategies using APIs and webhooks. The presentation discussed how past integration approaches copied large amounts of data between systems, which is slow and can create outdated data. Modern approaches use API integration to consolidate multiple on-premises systems without data copying, and webhooks to integrate with partners via RESTful web services. The talk illustrated these approaches and how CA Live API Creator enables faster API, logic, and integration development compared to traditional approaches through features like reactive logic, automatic object modeling, and database integration.
This document summarizes a presentation about JRuby, an implementation of the Ruby programming language that runs on the Java Virtual Machine. It discusses what JRuby is, how to get started with it, details of its implementation including compilation and threading, and how it addresses various issues with Ruby like performance, memory management, and integration with Java. It also covers some JRuby projects and potential future directions.
This document summarizes Subbu Allamaraju's presentation on building RESTful web APIs. The presentation covers REST architecture constraints including identifying resources with URIs, manipulating resources through representations, self-descriptive messages, and hypermedia as the engine of application state. It also discusses building RESTful HTTP APIs by using the HTTP methods like GET, POST, PUT, DELETE according to their definitions and designing resources around domain nouns. The presentation provides examples of RESTful and non-RESTful API designs.
This document discusses the evolution of service-oriented architecture (SOA) and application programming interfaces (APIs). It notes that while SOA was initially driven by IT concerns around integration, APIs are now business-driven and focused on revenue generation. The document also examines differences between SOA and APIs, how APIs can be managed, and emerging trends like the rise of microservices and APIs for IoT.
This presentation gives a high level concepts and more of code to take a stab at developing a simple Restful server. I targeted people who would like to build a simple RESTFul server from scratch and experiment.
The document discusses how Actionable.co, a distributed company, uses the REST API to manage their various websites and third party integrations. Some key uses of the REST API include retrieving content from WordPress to populate their learning platform, linking blogs between three websites, automating tasks like notifying managers when employees complete onboarding courses, and managing users across multiple sites without using multisite. The REST API allows them to optimize caching, avoid custom coding, and automate workflows between their sites and third party services.
The document provides an overview of the REST (Representational State Transfer) architectural style. It defines REST, describes its constraints including client-server architecture, stateless, cacheable, uniform interface, and layered system. It also gives examples of how to design a RESTful web API, including defining resources and their representations, using HTTP methods and status codes, and considerations for caching, encodings and security.
Tech Talk: CA Live API Creator: Modern Integration Strategies—API Integration...CA Technologies
Val Huber of CA Technologies gave a presentation on modern integration strategies using APIs and webhooks. The presentation discussed how past integration approaches copied large amounts of data between systems, which is slow and can create outdated data. Modern approaches use API integration to consolidate multiple on-premises systems without data copying, and webhooks to integrate with partners via RESTful web services. The talk illustrated these approaches and how CA Live API Creator enables faster API, logic, and integration development compared to traditional approaches through features like reactive logic, automatic object modeling, and database integration.
this is an old version. new version here: http://blog.apigee.com/detail/slides_for_restful_api_design_second_edition_webinar/
It's been 10 years since Fielding first defined REST. So, where are all the elegant REST APIs? While many claim REST has arrived, many APIs in the wild exhibit arbitrary, productivity-killing deviations from true REST. We'll start with a typical poorly-designed API and iterate it into a well-behaved RESTful API.
REST 101: An Overview To Representational State Transfer.Omar Fernando Zafe
REST APIs offer an easy way of communication between applications. Big companies like Amazon, Twitter, Facebook and MercadoLibre implement Restful APIs to provide their services. This talk is an introduction to understand how this technology works and how can be consumed by our apps.
This talk introduces Spring's REST stack - Spring MVC, Spring HATEOAS, Spring Data REST, Spring Security OAuth and Spring Social - while refining an API to move higher up the Richardson maturity model
This document provides an overview of APIs, API management, integration, and API security. It discusses why organizations adopt APIs to accelerate mobile app development, foster reuse, and allow external developers to innovate. The document outlines components of API management like the API gateway and developer portal. It also discusses how SOA, ESB, and APIs can converge in the API facade pattern to provide simple interfaces to complex systems. The presentation demonstrates this pattern using WSO2 API Manager and ESB and discusses API security techniques like OAuth for identity delegation.
6 Reasons Why APIs Are Reshaping Your BusinessFabernovel
A study on APIs to demonstrate the advantages of APIs for businesses in terms of scalability, flexibility, business development, product development, supply chain management...
ReST (Representational State Transfer) ExplainedDhananjay Nene
The document provides an overview of Representational State Transfer (REST), which is an architectural style for building distributed systems. It describes REST as a set of constraints or rules for designing web services, rather than a standard or framework. The key constraints outlined in the document include using a client-server model, being stateless, cacheable responses, a uniform interface, layered system, and code on demand. The document focuses on explaining the uniform interface constraint and its requirements around resource identification, manipulation through representations, self-descriptive messages, and hypermedia as the engine of application state.
Sachin Agarwal, SOA Software VP of Product Marketing, explains the frenzy around the mass development and adoption of APIs. In this presentation, he describes the business and technology implications of developing an API stratgy.
NRG Software provides shipping software solutions built on the FileMaker platform. They have over 10 years of experience developing shipping solutions for UPS and FedEx, and currently have over 300 business customers. Their solutions allow customers to obtain rates, print labels, track shipments, and access shipment history for UPS and FedEx shipping. They also offer custom integrations that allow shipping from other existing systems and across multiple carriers.
La Unión Europea ha propuesto un nuevo paquete de sanciones contra Rusia que incluye un embargo al petróleo ruso. El embargo se aplicaría gradualmente durante seis meses para el petróleo crudo y ocho meses para los productos refinados. Los líderes de la UE debatirán el paquete de sanciones propuesto esta semana, pero se espera que haya desacuerdos entre los países miembros sobre las medidas.
This document summarizes a clinical assessment of chronic pelvic pain. It presents demographic data on pain intensity levels and comparisons of presenting complaints between public and private patients. Results include analysis of vaginal discharge characteristics like color, consistency, amount as well as associated symptoms. The conclusion compares abortion rates between public and private patients.
This document discusses Clocker, an open source application management platform that allows users to deploy, manage, and monitor blueprints. It can provision and customize applications and provide management functions like auto-scaling. Clocker interacts with Docker, Apache Mesos, and Apache Brooklyn. Docker provides containers for isolation and performance. Mesos is a distributed systems kernel for cluster management and resource sharing. Brooklyn deploys applications. In the future, Clocker aims to integrate more deeply with Docker Swarm and provide storage integration, as well as allow Brooklyn to deploy applications to Mesos infrastructures.
"Media Temporalities: Genre, Queer Space, and Digital Archives in Transition"
Media in Transition 6 - MIT
April 25, 2009
A part of the above panel. I moderated; this is not my own presentation!
Transmedia Noir: Genre Continuity and Transformation Across Media
Louisa Stein
Louisa Stein is Assistant Professor of Film, Television, and New Media at San Diego State University. She has published essays on genre and on audience use of digital media. She is coeditor of the collection Teen Television: Essays on Programming and Fandom. Her current book project is entitled Millennial Noir.
The document discusses search analytics and provides a 5 step checkup for analyzing key metrics including phrases, pageviews, time on site, bounce rate, and conversion. It notes the importance of using analytics to identify missed opportunities and optimize onsite search, and provides a case study example of selecting the right phrase but wrong offer.
Adobe unveiled Flash Player 10.1, bringing Flash capabilities to smartphones, smartbooks, netbooks and other internet-connected devices. This allows content created with Flash to reach users across various platforms. Close to 50 companies are supporting this through the Open Screen Project. Flash Player 10.1 will provide rich browsing of applications, content and videos across different devices through a consistent runtime environment. It is expected to be available through public betas for Windows Mobile, Palm webOS and desktop platforms later in 2009, with betas for Android and Symbian in early 2010.
This document discusses HTML5 and web technologies. It provides an agenda and overview of key topics including what HTML5 is, how it evolves HTML incrementally, and new APIs like drag and drop, forms, canvas, and web sockets. It also discusses cross-browser support, uses of technologies like CSS3, SVG and WebGL across devices, and references for further information.
This document provides an introduction to performance testing with IBM Rational Integration Tester. It discusses key concepts such as:
- Performance tests require an infrastructure of engines to run test actions distributed across multiple machines, probes to monitor systems under test, and agents to manage engines and probes.
- Engines execute test iterations and can be distributed across machines to generate sufficient load. Probes gather statistics from systems under test. Agents host engines and probes, handling communications with the test controller.
- The document provides an overview of setting up this infrastructure and discusses how it differs from a traditional functional test setup. It aims to familiarize the reader with fundamental aspects of performance testing before demonstrating specific capabilities.
this is an old version. new version here: http://blog.apigee.com/detail/slides_for_restful_api_design_second_edition_webinar/
It's been 10 years since Fielding first defined REST. So, where are all the elegant REST APIs? While many claim REST has arrived, many APIs in the wild exhibit arbitrary, productivity-killing deviations from true REST. We'll start with a typical poorly-designed API and iterate it into a well-behaved RESTful API.
REST 101: An Overview To Representational State Transfer.Omar Fernando Zafe
REST APIs offer an easy way of communication between applications. Big companies like Amazon, Twitter, Facebook and MercadoLibre implement Restful APIs to provide their services. This talk is an introduction to understand how this technology works and how can be consumed by our apps.
This talk introduces Spring's REST stack - Spring MVC, Spring HATEOAS, Spring Data REST, Spring Security OAuth and Spring Social - while refining an API to move higher up the Richardson maturity model
This document provides an overview of APIs, API management, integration, and API security. It discusses why organizations adopt APIs to accelerate mobile app development, foster reuse, and allow external developers to innovate. The document outlines components of API management like the API gateway and developer portal. It also discusses how SOA, ESB, and APIs can converge in the API facade pattern to provide simple interfaces to complex systems. The presentation demonstrates this pattern using WSO2 API Manager and ESB and discusses API security techniques like OAuth for identity delegation.
6 Reasons Why APIs Are Reshaping Your BusinessFabernovel
A study on APIs to demonstrate the advantages of APIs for businesses in terms of scalability, flexibility, business development, product development, supply chain management...
ReST (Representational State Transfer) ExplainedDhananjay Nene
The document provides an overview of Representational State Transfer (REST), which is an architectural style for building distributed systems. It describes REST as a set of constraints or rules for designing web services, rather than a standard or framework. The key constraints outlined in the document include using a client-server model, being stateless, cacheable responses, a uniform interface, layered system, and code on demand. The document focuses on explaining the uniform interface constraint and its requirements around resource identification, manipulation through representations, self-descriptive messages, and hypermedia as the engine of application state.
Sachin Agarwal, SOA Software VP of Product Marketing, explains the frenzy around the mass development and adoption of APIs. In this presentation, he describes the business and technology implications of developing an API stratgy.
NRG Software provides shipping software solutions built on the FileMaker platform. They have over 10 years of experience developing shipping solutions for UPS and FedEx, and currently have over 300 business customers. Their solutions allow customers to obtain rates, print labels, track shipments, and access shipment history for UPS and FedEx shipping. They also offer custom integrations that allow shipping from other existing systems and across multiple carriers.
La Unión Europea ha propuesto un nuevo paquete de sanciones contra Rusia que incluye un embargo al petróleo ruso. El embargo se aplicaría gradualmente durante seis meses para el petróleo crudo y ocho meses para los productos refinados. Los líderes de la UE debatirán el paquete de sanciones propuesto esta semana, pero se espera que haya desacuerdos entre los países miembros sobre las medidas.
This document summarizes a clinical assessment of chronic pelvic pain. It presents demographic data on pain intensity levels and comparisons of presenting complaints between public and private patients. Results include analysis of vaginal discharge characteristics like color, consistency, amount as well as associated symptoms. The conclusion compares abortion rates between public and private patients.
This document discusses Clocker, an open source application management platform that allows users to deploy, manage, and monitor blueprints. It can provision and customize applications and provide management functions like auto-scaling. Clocker interacts with Docker, Apache Mesos, and Apache Brooklyn. Docker provides containers for isolation and performance. Mesos is a distributed systems kernel for cluster management and resource sharing. Brooklyn deploys applications. In the future, Clocker aims to integrate more deeply with Docker Swarm and provide storage integration, as well as allow Brooklyn to deploy applications to Mesos infrastructures.
"Media Temporalities: Genre, Queer Space, and Digital Archives in Transition"
Media in Transition 6 - MIT
April 25, 2009
A part of the above panel. I moderated; this is not my own presentation!
Transmedia Noir: Genre Continuity and Transformation Across Media
Louisa Stein
Louisa Stein is Assistant Professor of Film, Television, and New Media at San Diego State University. She has published essays on genre and on audience use of digital media. She is coeditor of the collection Teen Television: Essays on Programming and Fandom. Her current book project is entitled Millennial Noir.
The document discusses search analytics and provides a 5 step checkup for analyzing key metrics including phrases, pageviews, time on site, bounce rate, and conversion. It notes the importance of using analytics to identify missed opportunities and optimize onsite search, and provides a case study example of selecting the right phrase but wrong offer.
Adobe unveiled Flash Player 10.1, bringing Flash capabilities to smartphones, smartbooks, netbooks and other internet-connected devices. This allows content created with Flash to reach users across various platforms. Close to 50 companies are supporting this through the Open Screen Project. Flash Player 10.1 will provide rich browsing of applications, content and videos across different devices through a consistent runtime environment. It is expected to be available through public betas for Windows Mobile, Palm webOS and desktop platforms later in 2009, with betas for Android and Symbian in early 2010.
This document discusses HTML5 and web technologies. It provides an agenda and overview of key topics including what HTML5 is, how it evolves HTML incrementally, and new APIs like drag and drop, forms, canvas, and web sockets. It also discusses cross-browser support, uses of technologies like CSS3, SVG and WebGL across devices, and references for further information.
This document provides an introduction to performance testing with IBM Rational Integration Tester. It discusses key concepts such as:
- Performance tests require an infrastructure of engines to run test actions distributed across multiple machines, probes to monitor systems under test, and agents to manage engines and probes.
- Engines execute test iterations and can be distributed across machines to generate sufficient load. Probes gather statistics from systems under test. Agents host engines and probes, handling communications with the test controller.
- The document provides an overview of setting up this infrastructure and discusses how it differs from a traditional functional test setup. It aims to familiarize the reader with fundamental aspects of performance testing before demonstrating specific capabilities.
Mr Sahel Skype Net Neutrality DigiWorld Summit 2011IDATE DigiWorld
The document discusses net neutrality in Europe. Three main points:
1) There is consensus on the importance of preserving an open internet. Mobile operators struggle to justify investments in new networks without net neutrality.
2) Restricting internet access and prioritizing certain applications like Skype is considered anti-competitive. Transparency alone is not enough to ensure net neutrality.
3) An open internet allows users to access all content and run any applications, within reasonable traffic management. Not supporting net neutrality could prevent Europe from meeting its digital agenda targets and limit growth of the telecom industry.
Choose a tool for business intelligence in share point 2010Ard van Someren
Business intelligence provides accurate and useful information to decision makers to support effective decision making. Microsoft SQL Server and SharePoint Server provide tools for storing, managing, analyzing, and accessing business data to help make better business decisions. There are three main areas of business intelligence: personal, team, and organizational. Personal business intelligence provides self-service information to individuals. Team business intelligence delivers information for collaboration. Organizational business intelligence helps align objectives with company goals using tools like scorecards and strategy maps.
The document discusses different profit models for the iPhone/iPod Touch market. It proposes a content subscription model where users subscribe to in-app content like magazines, comics, or games through recurring payments. This model addresses Apple's requirements for in-app purchases and allows developers to avoid single large payments. Examples of potential subscription applications described include magazines, comic books, and virtual goods in games.
This document discusses various options for developing mobile applications including native apps, web apps, and hybrid apps. It focuses on hybrid frameworks like PhoneGap, Titanium, and Appspresso which allow developing apps using web technologies that are then wrapped into native containers. These hybrid frameworks provide access to device features while developing using HTML, CSS, and JavaScript instead of native languages. Demo code examples are provided for building hybrid mobile apps with jQuery Mobile and Sencha Touch using the Appspresso framework.
This document provides an overview of web development and hosting services. It discusses creating effective websites that engage, develop, and retain customers. Reasons for working with this company include that they are a small business themselves so they understand challenges, grow with their clients, and work with best-in-breed open source software and partners. The company develops template solutions, customized solutions, and integrated solutions to fit within clients' budgets and timelines. They also provide ongoing support through system monitoring, help desk assistance, crisis handling, and daily backups.
1) Mextal is a small Dutch company that designs, manufactures, and provides services for ICT monitoring and communication systems used in healthcare.
2) Mextal has over 20 years of experience developing the VieDome platform, an open system that allows devices from multiple suppliers to connect.
3) The VieDome system provides a range of solutions for professional care, assisted living, and informal care through communication, monitoring, and assistance functions.
The document outlines an assignment for a student to create a viral video to promote a new film production company and their upcoming film competition submission. The assignment involves researching digital video technology, generating ideas for the viral video, planning and producing digital video assets, and creating the final viral video sequence following industry practices. The student must provide evidence of completing each stage of the process and have their work reviewed and graded according to established assessment criteria.
The IXL Center is a global leader in building innovation capabilities. It offers various programs to teach individuals and organizations how to manage and engage in innovation. This includes core competency frameworks, tools, and certification protocols. The IXL Center has a unique heritage dating back to 1964 and experience working with over 100 organizations. It aims to teach the skills needed to "do" innovation through sustained practice and immersion, rather than just knowing techniques.
Using Node.js to improve the performance of Mobile apps and Mobile webTom Croucher
The document is a presentation about using Node.js to improve mobile app and mobile web performance. It discusses how Node.js can help address issues like high latency on mobile networks by allowing for event-driven and asynchronous server-side code. It also covers how Node.js helps optimize resource usage on mobile devices.
"Thousands of organizations around the world, including AT&T, Sears, Ford, Verizon, The Guardian, Elsevier, Cisco, Macy’s and more have found their solution: Lucene/Solr open source, the world’s most popular search technology. Our new white paper “A Manager’s Guide to Real World Open Source Search Applications” provides numerous case studies across various industries and business models to show how real-world businesses have turned Lucene/Solr open source search into competitive advantage.http://www.lucidimagination.com/files/file/whitepaper/LIWP_LuceneSolrRealWorldSearch.pdf
"
If 76.8 million people recall seeing a mobile advertisement in the last month and 51% of mobile data subscribers respond to mobile advertising, then why is there so little mobile marketing (63% see mobile ads once a month or less frequently)?
A mystery? Yes. Solvable? Definitely. This presentation gives an overview of the Mobile Marketing Industry, including compelling statistics and projections about the present and future. The deck was prepared for and given at the Mobile Marketing Roundtable on behalf of Pongr.
marcus Evans data quality conference Paul Ormonde-james key speaker on data quality and solving the applications issues. A practical guide from his time at MBF Australia.
EduGeek.Net Open Source Schools UnConference Nottingham Green ITRussell Dyas
This document discusses green computing and how schools can reduce their carbon footprint through various IT strategies. It addresses both technical challenges such as virtualization, power management and environmentally friendly hardware as well as cultural challenges like changing behaviors around paper usage and recycling. Specific recommendations include scheduling automatic shutdowns, deploying thin clients, and properly disposing of old equipment according to WEEE regulations. The overall message is that green computing requires both technical solutions and cultural change.
This document discusses using virtualized applications for testing with IBM Rational Integration Tester. It describes the architecture and setup of Virtualized Integration Environments (VIE) which allow modeling systems under test without having to access live systems. It provides exercises for creating a test project, modeling the logical and physical views of a sample system, recording messages from transports to build the system model, and creating and executing a basic stub test. The goal is to demonstrate how Rational Integration Tester can be used to test virtualized applications.
This document discusses how faceted navigation and Apache Solr/Lucene can help e-commerce sites improve search capabilities. It outlines key factors for an effective e-commerce search strategy, including relevance, keywords, faceting, language support, updates, best bets, and assistance tools. Solr offers features that enhance relevance, enable refinement through facets, support multiple languages, and provide hints to guide buyers to the right products. With Solr's open source approach, e-commerce sites can customize search solutions to deliver relevant results and a compelling shopping experience for customers.
Similar to Stefan Tilkov Pragmatic Intro To Rest (20)
The document is a presentation on aspect-oriented programming (AOP) in Ruby given by Matthew Ford. It introduces AOP as a new way of thinking about software design that aims to achieve a one-to-one mapping between design concepts and code. It discusses using AOP to modularize cross-cutting concerns like profiling, persistence, transactions, and exception handling that are currently scattered throughout code. The presentation includes a demonstration of AOP in Ruby and leaves time for questions.
This document discusses eBay's architectural principles for scaling its large ecommerce site. It outlines four main strategies: (1) Partition everything by data, load, or usage to split problems into manageable chunks and allow independent scalability. (2) Use asynchronous processing wherever possible to improve scalability, availability, and latency. (3) Favor automated and adaptive systems over manual processes to reduce costs and improve functionality. (4) Design all systems to be failure-tolerant by assuming failure, rapidly detecting and recovering from failures, and degrading gracefully when necessary. Specific patterns for implementing each strategy across databases, applications, search, and other areas are also discussed.
The document discusses jQuery, a JavaScript library that makes DOM scripting and event handling easier. It provides functions to select elements, handle events, perform animations and AJAX requests. Some key features include CSS selector syntax to select elements, chaining of methods, cross-browser compatibility, and a simple plugin API. Popular uses of jQuery include DOM manipulation, event handling, and animating effects.
The document discusses Comet and DWR (Direct Web Remoting). It provides an overview of Comet, which allows for long-lived HTTP connections to enable low-latency data delivery. It discusses various Comet techniques like forever frames, long polling, and HTMLFile. It also covers challenges of implementing Comet and how frameworks like DWR and protocols like Bayeux help address these. DWR allows for easily calling Java objects from JavaScript and updating pages in real-time.
Aslak Hellesoy Executable User Stories R Spec Bdddeimos
Behaviour-Driven Development (BDD) is an agile software development process that encourages collaboration between developers, quality assurance teams, and customers. It involves writing user stories to define desired functionality and writing automated tests to validate stories. BDD tests are written in a language that business stakeholders can understand. It works in an "outside-in" approach where tests are written before code to ensure business needs are met. BDD aims to deliver working, tested software frequently in short iterations to provide business value.
This presentation discusses building domain-specific languages (DSLs) in Groovy. It defines DSLs as languages targeted at particular problems with syntax focused on the domain. The presentation provides examples of DSLs implemented in Groovy, including Gant which is an Ant build tool without XML. It discusses Groovy features like closures, delegates, dynamic methods, and ExpandoMetaClass that are useful for building DSLs. The speaker advocates that Groovy is well-suited for implementing DSLs on the JVM due to its dynamic and meta-programming capabilities.
Venkat Subramaniam Blending Java With Dynamic Languagesdeimos
The document discusses blending Java with dynamic languages. It describes how dynamic languages can improve productivity through metaprogramming and domain-specific languages (DSLs). It explores calling between Java and dynamic languages like JavaScript and Groovy through APIs and interfaces. Examples show building Swing applications and defining small DSLs across the languages.
The document discusses making roles explicit in software design to achieve flexibility and extensibility. It provides examples of using interfaces to define roles like IMakeCustomerPreferred and IAddOrdersToCustomer. These roles can then have strategies defined, like a fetching strategy, to extend their behavior. By making roles explicit with interfaces, application code specifies roles clearly while infrastructure code like persistence can be extended through new strategies around the roles. This achieves both object-oriented and extensible design.
This document summarizes Tim Mackinnon's presentation on agile practices and how teams can aspire for more beyond basic techniques. It discusses how eXtreme Programming was originally misunderstood as being dictatorial rather than aspirational. The presentation provides examples of techniques pioneered by Mackinnon like mock objects, gold cards, and heartbeat retrospectives. It also discusses applying appreciative inquiry to achieve higher outcomes and how agile is about more than just processes - it's a belief in achievement. The document encourages teams to look beyond what they have learned and to continue aspiring to improve.
Steve Vinoski Rest And Reuse And Serendipitydeimos
REST, Reuse, and Serendipity by Steve Vinoski
[1] RPC-based integration approaches are proprietary and expensive, focus on programming languages rather than distributed systems, and inhibit reuse through tight coupling of interfaces and data. [2] REST is designed for distributed systems through separating concerns like resources and representations, a uniform interface, and hypermedia as the engine of applications. [3] This enhanced reuse and independence of parts, encouraging serendipitous combinations like UNIX pipes.
The document discusses the debate between SOAP/WS-* and REST approaches to building web services and service-oriented architectures. It provides several quotes from experts that are both critical of WS-* for being too complex and opaque, as well as supportive of REST for its simplicity. However, one quote concludes that the "war" between the approaches is over, and that both have value and will continue to be used going forward. The document then lists talks at a conference that discuss both REST and WS-* topics.
This document discusses the evolution of innovation in enterprise Java. It describes three key sources of innovation: the Cathedral model of closed, centralized development; the Bazaar model of open source development with many contributors; and the Commissar model of more controlled, guided development. No single model is sufficient by itself. The document traces the history of enterprise Java, from the early fragmented days before J2EE, to the rise of J2EE standards, to the decline of traditional application servers and rise of open source projects like Spring and Eclipse that now shape the field. Experimentation, competition, and economic motivation are also discussed as drivers of innovation.
The document discusses the need for a single data and events platform to handle high volumes of data and events. It describes GemStone Systems, which provides a distributed main-memory data management platform using a data fabric/grid. The platform allows applications to process and distribute large amounts of data and events at high speeds and scales linearly. It provides an example of using the platform for electronic trade order management to normalize, validate, aggregate and distribute trading data and events in real-time across clustered applications.
The document discusses Betfair's transition from a traditional betting exchange to offering additional gaming products and a new trading exchange called Tradefair. It outlines several challenges in scaling Betfair's betting exchange to handle higher transaction volumes, including the serial nature of matching bets due to its business rules. A new 100X program was initiated to achieve 100 times more transactions per second through an actor-based distributed architecture using message passing between isolated execution units to achieve concurrency while maintaining weak consistency. Atomicity and reliability is provided through durable messaging and state journaling to handle failures. This represents a major redesign from the previous single-instance Oracle database implementation.
Pete Goodliffe compares two software systems - Design Town and The Messy Metropolis - to illustrate the impact of design on software quality. Design Town was developed with an emphasis on design from the start, which led to consistent, maintainable code. The Messy Metropolis lacked coherent design and grew organically over time, resulting in complex, fragile code that was ultimately rewritten. The document emphasizes that design must be considered intentionally and that both good individual designs and architecture are important for software success.
Using REST to aid WS-* proposes building a RESTful SOA registry using Atom and AtomPub protocols to publish, retrieve, and manage SOA metadata and artifacts like WSDLs, schemas, and policies. The registry treats everything as resources accessible through URIs, supports standard CRUD operations, and shows dependencies between services, schemas, and other artifacts. Content handlers can intercept operations to perform validation and manage lifecycles. The approach aims to unify human and machine interfaces for the registry.
This document discusses evolving the Java platform to better support dynamic languages running on the Java Virtual Machine (JVM). It describes several languages like Clojure, Groovy and Scala that already run on the JVM. It then outlines features missing from the JVM that would help these languages, such as dynamic invocation, lightweight method handles, and continuations. The document proposes an experimental "DaVinci Machine" to evolve the JVM by implementing these missing features. It uses the example of Ruby implementation JRuby to show current compiler pain points that could be addressed.
This document discusses the challenges of evolving mature programming languages like Java. It outlines design principles like encouraging desirable practices, isolating the language from specific APIs, and preferring readability over conciseness. Short-term goals include regularizing the existing language through improvements to generics, type inference, string switches, and catch clauses. Long-term goals include further language features like reification, control abstraction, and concurrency support.
The document provides an overview of Eclipse Modeling and Xtext. Eclipse Modeling is the umbrella project for all modeling technologies on the Eclipse platform, including the Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF). Xtext makes it easier to create textual domain-specific languages (DSLs) by generating a parser, metamodel, and Eclipse editor from an EBNF grammar. It discusses how Xtext grammars map to EMF metamodels and the different types of grammar rules like types, references, strings, enums, and natives.
The document describes six cultural patterns that can exist in software organizations: Routine, Variable, Steering, Oblivious, Anticipating, and Congruent. It provides brief explanations of each pattern and how they relate to one another. The cultural patterns can help understand organizational cultures, predict conflicts, and inform situational change strategies.
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyScyllaDB
Freshworks creates AI-boosted business software that helps employees work more efficiently and effectively. Managing data across multiple RDBMS and NoSQL databases was already a challenge at their current scale. To prepare for 10X growth, they knew it was time to rethink their database strategy. Learn how they architected a solution that would simplify scaling while keeping costs under control.
AppSec PNW: Android and iOS Application Security with MobSFAjin Abraham
Mobile Security Framework - MobSF is a free and open source automated mobile application security testing environment designed to help security engineers, researchers, developers, and penetration testers to identify security vulnerabilities, malicious behaviours and privacy concerns in mobile applications using static and dynamic analysis. It supports all the popular mobile application binaries and source code formats built for Android and iOS devices. In addition to automated security assessment, it also offers an interactive testing environment to build and execute scenario based test/fuzz cases against the application.
This talk covers:
Using MobSF for static analysis of mobile applications.
Interactive dynamic security assessment of Android and iOS applications.
Solving Mobile app CTF challenges.
Reverse engineering and runtime analysis of Mobile malware.
How to shift left and integrate MobSF/mobsfscan SAST and DAST in your build pipeline.
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-und-domino-lizenzkostenreduzierung-in-der-welt-von-dlau/
DLAU und die Lizenzen nach dem CCB- und CCX-Modell sind für viele in der HCL-Community seit letztem Jahr ein heißes Thema. Als Notes- oder Domino-Kunde haben Sie vielleicht mit unerwartet hohen Benutzerzahlen und Lizenzgebühren zu kämpfen. Sie fragen sich vielleicht, wie diese neue Art der Lizenzierung funktioniert und welchen Nutzen sie Ihnen bringt. Vor allem wollen Sie sicherlich Ihr Budget einhalten und Kosten sparen, wo immer möglich. Das verstehen wir und wir möchten Ihnen dabei helfen!
Wir erklären Ihnen, wie Sie häufige Konfigurationsprobleme lösen können, die dazu führen können, dass mehr Benutzer gezählt werden als nötig, und wie Sie überflüssige oder ungenutzte Konten identifizieren und entfernen können, um Geld zu sparen. Es gibt auch einige Ansätze, die zu unnötigen Ausgaben führen können, z. B. wenn ein Personendokument anstelle eines Mail-Ins für geteilte Mailboxen verwendet wird. Wir zeigen Ihnen solche Fälle und deren Lösungen. Und natürlich erklären wir Ihnen das neue Lizenzmodell.
Nehmen Sie an diesem Webinar teil, bei dem HCL-Ambassador Marc Thomas und Gastredner Franz Walder Ihnen diese neue Welt näherbringen. Es vermittelt Ihnen die Tools und das Know-how, um den Überblick zu bewahren. Sie werden in der Lage sein, Ihre Kosten durch eine optimierte Domino-Konfiguration zu reduzieren und auch in Zukunft gering zu halten.
Diese Themen werden behandelt
- Reduzierung der Lizenzkosten durch Auffinden und Beheben von Fehlkonfigurationen und überflüssigen Konten
- Wie funktionieren CCB- und CCX-Lizenzen wirklich?
- Verstehen des DLAU-Tools und wie man es am besten nutzt
- Tipps für häufige Problembereiche, wie z. B. Team-Postfächer, Funktions-/Testbenutzer usw.
- Praxisbeispiele und Best Practices zum sofortigen Umsetzen
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfChart Kalyan
A Mix Chart displays historical data of numbers in a graphical or tabular form. The Kalyan Rajdhani Mix Chart specifically shows the results of a sequence of numbers over different periods.
Monitoring and Managing Anomaly Detection on OpenShift.pdfTosin Akinosho
Monitoring and Managing Anomaly Detection on OpenShift
Overview
Dive into the world of anomaly detection on edge devices with our comprehensive hands-on tutorial. This SlideShare presentation will guide you through the entire process, from data collection and model training to edge deployment and real-time monitoring. Perfect for those looking to implement robust anomaly detection systems on resource-constrained IoT/edge devices.
Key Topics Covered
1. Introduction to Anomaly Detection
- Understand the fundamentals of anomaly detection and its importance in identifying unusual behavior or failures in systems.
2. Understanding Edge (IoT)
- Learn about edge computing and IoT, and how they enable real-time data processing and decision-making at the source.
3. What is ArgoCD?
- Discover ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes, and its role in deploying applications on edge devices.
4. Deployment Using ArgoCD for Edge Devices
- Step-by-step guide on deploying anomaly detection models on edge devices using ArgoCD.
5. Introduction to Apache Kafka and S3
- Explore Apache Kafka for real-time data streaming and Amazon S3 for scalable storage solutions.
6. Viewing Kafka Messages in the Data Lake
- Learn how to view and analyze Kafka messages stored in a data lake for better insights.
7. What is Prometheus?
- Get to know Prometheus, an open-source monitoring and alerting toolkit, and its application in monitoring edge devices.
8. Monitoring Application Metrics with Prometheus
- Detailed instructions on setting up Prometheus to monitor the performance and health of your anomaly detection system.
9. What is Camel K?
- Introduction to Camel K, a lightweight integration framework built on Apache Camel, designed for Kubernetes.
10. Configuring Camel K Integrations for Data Pipelines
- Learn how to configure Camel K for seamless data pipeline integrations in your anomaly detection workflow.
11. What is a Jupyter Notebook?
- Overview of Jupyter Notebooks, an open-source web application for creating and sharing documents with live code, equations, visualizations, and narrative text.
12. Jupyter Notebooks with Code Examples
- Hands-on examples and code snippets in Jupyter Notebooks to help you implement and test anomaly detection models.
Dandelion Hashtable: beyond billion requests per second on a commodity serverAntonios Katsarakis
This slide deck presents DLHT, a concurrent in-memory hashtable. Despite efforts to optimize hashtables, that go as far as sacrificing core functionality, state-of-the-art designs still incur multiple memory accesses per request and block request processing in three cases. First, most hashtables block while waiting for data to be retrieved from memory. Second, open-addressing designs, which represent the current state-of-the-art, either cannot free index slots on deletes or must block all requests to do so. Third, index resizes block every request until all objects are copied to the new index. Defying folklore wisdom, DLHT forgoes open-addressing and adopts a fully-featured and memory-aware closed-addressing design based on bounded cache-line-chaining. This design offers lock-free index operations and deletes that free slots instantly, (2) completes most requests with a single memory access, (3) utilizes software prefetching to hide memory latencies, and (4) employs a novel non-blocking and parallel resizing. In a commodity server and a memory-resident workload, DLHT surpasses 1.6B requests per second and provides 3.5x (12x) the throughput of the state-of-the-art closed-addressing (open-addressing) resizable hashtable on Gets (Deletes).
What is an RPA CoE? Session 1 – CoE VisionDianaGray10
In the first session, we will review the organization's vision and how this has an impact on the COE Structure.
Topics covered:
• The role of a steering committee
• How do the organization’s priorities determine CoE Structure?
Speaker:
Chris Bolin, Senior Intelligent Automation Architect Anika Systems
Essentials of Automations: Exploring Attributes & Automation ParametersSafe Software
Building automations in FME Flow can save time, money, and help businesses scale by eliminating data silos and providing data to stakeholders in real-time. One essential component to orchestrating complex automations is the use of attributes & automation parameters (both formerly known as “keys”). In fact, it’s unlikely you’ll ever build an Automation without using these components, but what exactly are they?
Attributes & automation parameters enable the automation author to pass data values from one automation component to the next. During this webinar, our FME Flow Specialists will cover leveraging the three types of these output attributes & parameters in FME Flow: Event, Custom, and Automation. As a bonus, they’ll also be making use of the Split-Merge Block functionality.
You’ll leave this webinar with a better understanding of how to maximize the potential of automations by making use of attributes & automation parameters, with the ultimate goal of setting your enterprise integration workflows up on autopilot.
How information systems are built or acquired puts information, which is what they should be about, in a secondary place. Our language adapted accordingly, and we no longer talk about information systems but applications. Applications evolved in a way to break data into diverse fragments, tightly coupled with applications and expensive to integrate. The result is technical debt, which is re-paid by taking even bigger "loans", resulting in an ever-increasing technical debt. Software engineering and procurement practices work in sync with market forces to maintain this trend. This talk demonstrates how natural this situation is. The question is: can something be done to reverse the trend?
5th LF Energy Power Grid Model Meet-up SlidesDanBrown980551
5th Power Grid Model Meet-up
It is with great pleasure that we extend to you an invitation to the 5th Power Grid Model Meet-up, scheduled for 6th June 2024. This event will adopt a hybrid format, allowing participants to join us either through an online Mircosoft Teams session or in person at TU/e located at Den Dolech 2, Eindhoven, Netherlands. The meet-up will be hosted by Eindhoven University of Technology (TU/e), a research university specializing in engineering science & technology.
Power Grid Model
The global energy transition is placing new and unprecedented demands on Distribution System Operators (DSOs). Alongside upgrades to grid capacity, processes such as digitization, capacity optimization, and congestion management are becoming vital for delivering reliable services.
Power Grid Model is an open source project from Linux Foundation Energy and provides a calculation engine that is increasingly essential for DSOs. It offers a standards-based foundation enabling real-time power systems analysis, simulations of electrical power grids, and sophisticated what-if analysis. In addition, it enables in-depth studies and analysis of the electrical power grid’s behavior and performance. This comprehensive model incorporates essential factors such as power generation capacity, electrical losses, voltage levels, power flows, and system stability.
Power Grid Model is currently being applied in a wide variety of use cases, including grid planning, expansion, reliability, and congestion studies. It can also help in analyzing the impact of renewable energy integration, assessing the effects of disturbances or faults, and developing strategies for grid control and optimization.
What to expect
For the upcoming meetup we are organizing, we have an exciting lineup of activities planned:
-Insightful presentations covering two practical applications of the Power Grid Model.
-An update on the latest advancements in Power Grid -Model technology during the first and second quarters of 2024.
-An interactive brainstorming session to discuss and propose new feature requests.
-An opportunity to connect with fellow Power Grid Model enthusiasts and users.
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor IvaniukFwdays
At this talk we will discuss DDoS protection tools and best practices, discuss network architectures and what AWS has to offer. Also, we will look into one of the largest DDoS attacks on Ukrainian infrastructure that happened in February 2022. We'll see, what techniques helped to keep the web resources available for Ukrainians and how AWS improved DDoS protection for all customers based on Ukraine experience
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...Alex Pruden
Folding is a recent technique for building efficient recursive SNARKs. Several elegant folding protocols have been proposed, such as Nova, Supernova, Hypernova, Protostar, and others. However, all of them rely on an additively homomorphic commitment scheme based on discrete log, and are therefore not post-quantum secure. In this work we present LatticeFold, the first lattice-based folding protocol based on the Module SIS problem. This folding protocol naturally leads to an efficient recursive lattice-based SNARK and an efficient PCD scheme. LatticeFold supports folding low-degree relations, such as R1CS, as well as high-degree relations, such as CCS. The key challenge is to construct a secure folding protocol that works with the Ajtai commitment scheme. The difficulty, is ensuring that extracted witnesses are low norm through many rounds of folding. We present a novel technique using the sumcheck protocol to ensure that extracted witnesses are always low norm no matter how many rounds of folding are used. Our evaluation of the final proof system suggests that it is as performant as Hypernova, while providing post-quantum security.
Paper Link: https://eprint.iacr.org/2024/257
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsDianaGray10
Join us to learn how UiPath Apps can directly and easily interact with prebuilt connectors via Integration Service--including Salesforce, ServiceNow, Open GenAI, and more.
The best part is you can achieve this without building a custom workflow! Say goodbye to the hassle of using separate automations to call APIs. By seamlessly integrating within App Studio, you can now easily streamline your workflow, while gaining direct access to our Connector Catalog of popular applications.
We’ll discuss and demo the benefits of UiPath Apps and connectors including:
Creating a compelling user experience for any software, without the limitations of APIs.
Accelerating the app creation process, saving time and effort
Enjoying high-performance CRUD (create, read, update, delete) operations, for
seamless data management.
Speakers:
Russell Alfeche, Technology Leader, RPA at qBotic and UiPath MVP
Charlie Greenberg, host
Taking AI to the Next Level in Manufacturing.pdfssuserfac0301
Read Taking AI to the Next Level in Manufacturing to gain insights on AI adoption in the manufacturing industry, such as:
1. How quickly AI is being implemented in manufacturing.
2. Which barriers stand in the way of AI adoption.
3. How data quality and governance form the backbone of AI.
4. Organizational processes and structures that may inhibit effective AI adoption.
6. Ideas and approaches to help build your organization's AI strategy.
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
Stefan Tilkov Pragmatic Intro To Rest
1. A Pragmatic
Introduction to REST
QCon London 2008
Stefan Tilkov, stefan.tilkov@innoq.com
Copyright innoQ 2008. All rights reserved.
1
2. Stefan Tilkov
http://www.innoQ.com
stefan.tilkov@innoq.com
http://www.innoq.com/blog/st/
http://www.InfoQ.com
Copyright innoQ 2008. All rights reserved.
2
3. REST vs. ... ?
Copyright innoQ 2008. All rights reserved.
3
4. REST vs. SOAP?
REST vs. SOA?
REST vs. WS-*?
Copyright innoQ 2008. All rights reserved.
4
12. SOA: An Approach to
Business/IT Alignment
A different approach to an enterprise’s IT
architecture ...
... driven by business, not technology
... focusing on shared and re-used functionality
... aligning business and IT
... relying on strong governance
Copyright innoQ 2008. All rights reserved.
12
13. SOA: An Approach to
Business/IT Alignment
... can be implemented using any architecture,
technology, or set of products
Copyright innoQ 2008. All rights reserved.
13
15. SOA: A Technical
Architecture
Services with clearly defined interfaces
... autonomous and with explicit boundaries
... relying on shared schema, not shared code
... programming language-independent
... separating interface and implementation
... containing multiple specific operations
Copyright innoQ 2008. All rights reserved.
15
16. SOA: A Technical
Architecture
… somewhat technology-independent – can be
built with e.g. CORBA, DCE RPC, DCOM, RMI,
or Web services.
Copyright innoQ 2008. All rights reserved.
16
18. SOA = Web Services
Business data as XML messages
... sent in a SOAP body
... enriched with metadata in SOA headers
... described with WSDL and XML Schema
... configured through WS-Policy
... registered in a UDDI registry
Copyright innoQ 2008. All rights reserved.
18
19. SOA = Web Services
... implemented using technologies and products
from the WS-* universe
Copyright innoQ 2008. All rights reserved.
19
21. Why is SOA so
hard to define?
Copyright innoQ 2008. All rights reserved.
21
22. A Web service is a software system designed to
support interoperable machine-to-machine interaction
over a network. It has an interface described in a
machine-processable format (specifically WSDL). Other
systems interact with the Web service in a manner
prescribed by its description using SOAP messages,
typically conveyed using HTTP with an XML
serialization in conjunction with other Web-related
standards.
W3C Web Services Architecture WG
http://www.w3.org/TR/2004/NOTE-ws-arch-20040211/
Copyright innoQ 2008. All rights reserved.
22
23. “Service Oriented Architecture is a paradigm
for organizing and utilizing distributed capabilities that
may be under the control of different ownership
domains. It provides a uniform means to offer, discover,
interact with and use capabilities to produce desired
effects consistent with measurable preconditions and
expectations.”
OASIS SOA Reference Model
http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=soa-rm
Copyright innoQ 2008. All rights reserved.
23
24. “An Economy is a paradigm
for organizing and utilizing distributed capabilities that
may be under the control of different ownership
domains. It provides a uniform means to offer, discover,
interact with and use capabilities to produce desired
effects consistent with measurable preconditions and
expectations.”
Nick Gall, VP, Gartner
http://tech.groups.yahoo.com/group/service-orientated-architecture/message/9065
Copyright innoQ 2008. All rights reserved.
24
25. What is REST?
Copyright innoQ 2008. All rights reserved.
25
28. REST: An Architectural Style
One of a number of “architectural styles”
... described by Roy Fielding in his dissertation
... defined via a set of constraints that have to
be met
... architectural principles underlying HTTP,
defined a posteriori
... with the Web as one particular instance
See: http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
Copyright innoQ 2008. All rights reserved.
28
30. REST: The Web Used Correctly
A system or application architecture
... that uses HTTP, URI and other Web
standards “correctly”
... is “on” the Web, not tunneled through it
... also called “WOA”, “ROA”, “RESTful HTTP”
Copyright innoQ 2008. All rights reserved.
30
32. REST: XML without SOAP
Send plain XML (w/o a SOAP Envelope) via
HTTP
... violating the Web as much as WS-*
... preferably use GET to invoke methods
... or tunnel everything through POST
... commonly called “POX”
Copyright innoQ 2008. All rights reserved.
32
33. Only option 1 is the right one
(because Roy said so)
Copyright innoQ 2008. All rights reserved.
33
34. But we’ll go with option 2
(and equate “REST” with
“RESTful HTTP usage”)
Copyright innoQ 2008. All rights reserved.
34
35. and avoid option 3 like
the plague
Copyright innoQ 2008. All rights reserved.
35
36. REST Explained
in 5 Easy Steps
Copyright innoQ 2008. All rights reserved.
36
37. 1. Give Every “Thing” an ID
http://example.com/customers/1234
http://example.com/orders/2007/10/776654
http://example.com/products/4554
http://example.com/processes/sal-increase-234
Copyright innoQ 2008. All rights reserved.
37
38. 2. Link Things To Each Other
<order self=’http://example.com/orders/1234’>
<amount>23</amount>
<product ref=’http://example.com/products/4554’ />
<customer ref=’http://example.com/customers/1234’ />
</order>
Copyright innoQ 2008. All rights reserved.
38
39. 3. Use Standard Methods
GET retrieve information, possibly cached
PUT Update or create with known ID
POST Create or append sub-resource
DELETE (Logically) remove
Copyright innoQ 2008. All rights reserved.
39
40. 4. Allow for Multiple
“Representations”
GET /customers/1234
Host: example.com
Accept: application/vnd.mycompany.customer+xml
<customer>...</customer>
GET /customers/1234
Host: example.com
Accept: text/x-vcard
begin:vcard
...
end:vcard
Copyright innoQ 2008. All rights reserved.
40
41. 5. Communicate Statelessly
GET /customers/1234
Host: example.com
Accept: application/vnd.mycompany.customer+xml
<customer><order ref=’./orders/46’</customer>
shutdown
update software
replace hardware
startup
GET /customers/1234/orders/46
Host: example.com
Accept: application/vnd.mycompany.order+xml
<order>...</order>
time Copyright innoQ 2008. All rights reserved.
41
46. many
many very few
(one per service)
Copyright innoQ 2008. All rights reserved.
46
47. many
very few many
(fixed)
Copyright innoQ 2008. All rights reserved.
47
48. Designing a RESTful Application
Identify resources & design URIs
Select formats (or create new ones)
Identify method semantics
Select response codes
See: http://bitworking.org/news/How_to_create_a_REST_Protocol
Copyright innoQ 2008. All rights reserved.
48
49. What’s cool about
REST?
Copyright innoQ 2008. All rights reserved.
49
50. A very rough analogy
(in pseudocode)
Copyright innoQ 2008. All rights reserved.
50
51. generic
interface Resource {
Resource(URI u) Any HTTP client
Response get() (Firefox, IE, curl, wget)
Response post(Request r)
Response put(Request r) Any HTTP server
Response delete()
} Caches
Proxies
Google,Yahoo!, MSN
class CustomerCollection : Resource { Anything that knows
... your app
Response post(Request r) {
id = createCustomer(r)
return new Response(201, r)
}
...
}
specific
Copyright innoQ 2008. All rights reserved.
51
52. generic
Anything that
interface Resource { understands HTTP
...
}
class AtomFeed : Resource {
AtomFeed get()
Any feed reader
post(Entry e)
...
Any AtomPub client
} Yahoo! Pipes
class CustomerCollection : AtomFeed { Anything that knows
... your app
}
specific
Copyright innoQ 2008. All rights reserved.
52
53. Some HTTP Features
Verbs (in order of popularity):
GET, POST
PUT, DELETE
HEAD, OPTIONS, TRACE
Standardized (& meaningful) response codes
Content negotiation
Redirection
Caching (incl. validation/expiry)
Compression
Chunking
Copyright innoQ 2008. All rights reserved.
53
54. RESTful HTTP Advantages
Universal support (programming languages, operating
systems, servers, ...)
Proven scalability
Real web integration for machine-2-machine
communication
Support for XML, but also other formats
Copyright innoQ 2008. All rights reserved.
54
55. REST and Web Services
Copyright innoQ 2008. All rights reserved.
55
56. Web Services Issues
Web Services are “Web” in name only
WS-* tends to ignore the web
Abstractions leak, anyway
Protocol independence is a bug, not a feature
Copyright innoQ 2008. All rights reserved.
56
57. Web Services
OrderManagementService
+ getOrders()
A separate interface (façade)
+ submitOrder() for each purpose
+ getOrderDetails()
+ getOrdersForCustomers()
+ updateOrder() As known CORBA, DCOM,
+ addOrderItem()
+ cancelOrder() RMI/EJB
+ cancelAllOrders()
Often used for SOA
(“CORBA w/ angle
CustomerManagementService
brackets)
+ getCustomers()
+ addCustomer()
+ getCustomerDetails() Application-specific protocol
+ updateCustomer()
+ deleteCustomer()
+ deleteAllCustomers()
Copyright innoQ 2008. All rights reserved.
57
58. Contribution to the Net’s Value
2 URLs
http://example.com/customerservice
http://example.com/orderservice
1 method
POST
Copyright innoQ 2008. All rights reserved.
58
59. REST Approach
A single generic (uniform)
/orders
GET - list all orders
PUT - unused
POST - add a new order
DELETE - cancel all orders interface for everything
/orders/{id}
GET - get order details
PUT - update order
POST - add item
Generic verbs mapped to
DELETE - cancel order
resource semantics
«interface» /customers
Resource
GET
PUT
GET - list all customers
PUT - unused
POST - add new customer
A standard application
protocol (e.g. HTTP)
POST
DELETE - delete all customers
DELETE
/customers/{id}
GET - get customer details
PUT - update customer
POST - unused
DELETE - delete customer
/customers/{id}/orders
GET - get all orders for customer
PUT - unused
POST - add order
DELETE - cancel all customer orders
Copyright innoQ 2008. All rights reserved.
59
60. Contribution to the Net’s Value
Millions of URLs
every customer
every order
4-6 supported methods per resource
GET, PUT, POST, DELETE, OPTIONS, HEAD
Cacheable, addressable, linkable, ...
Copyright innoQ 2008. All rights reserved.
60
61. REST for SOA
vs.
Business SOA as an approach to business/IT alignment
Architecture Technical SOA REST
Technology SOAP, WSDL, WS-* (RESTful) HTTP, URI, ...
Copyright innoQ 2008. All rights reserved.
61
62. REST as an
alternative way to
achieve SOA goals
Copyright innoQ 2008. All rights reserved.
62
63. Why You Should Care
Copyright innoQ 2008. All rights reserved.
63
64. WS-* Roots
The Enterprise
RPC, COM, CORBA, RMI, EJB
Transaction Systems
Controlled Environment
Top-down Approach
Copyright innoQ 2008. All rights reserved.
64
65. REST Roots
The Internet
Text formats
Wire Standards
FTP, POP, SMTP
Bottom-up Approach
Copyright innoQ 2008. All rights reserved.
65
68. Internet vs. Enterprise
One is a gigantic, uncontrollable anarchy of
heterogeneous systems with varying quality
that evolve independently and constantly get
connected in new and unexpected ways.
The other is a worldwide, publicly accessible
series of interconnected computer networks
that transmit data by packet switching using
the standard Internet Protocol (IP).
Copyright innoQ 2008. All rights reserved.
68
69. REST Support
Copyright innoQ 2008. All rights reserved.
69
70. Everybody HTTP Servers, Clients, Proxies, Libraries, ...
DHH & The Rails Community Ruby on Rails
Google Base
GData
Calendar
Document Lists
Blogger
Notebook
Picasa
Amazon Simple Storage Service (S3)
Queue Service
Flexible Payment
Search
Sun JSR 311
Jersey
IBM Abdera
Project Zero
Microsoft Astoria
WCF
Copyright innoQ 2008. All rights reserved.
70
71. Advanced Stuff
Copyright innoQ 2008. All rights reserved.
71
73. There is none ...
XSD (95% of WSDL) is available to you, anyway
Of the remaining 5%, 90% is just silly
Why would you want to describe the uniform
interface over and over again?
Copyright innoQ 2008. All rights reserved.
73
74. ... unless you insist
WADL (Web Application Description Language)
https://wadl.dev.java.net/
Use URI Templates to define resource behavior
Copyright innoQ 2008. All rights reserved.
74