© 2010 IBM Corporation RESTFul Service Modelling in Rational Software Architect April, 2011.

Slides:



Advertisements
Similar presentations
Pierre-Johan CHARTRE Java EE - JAX-RS - Pierre-Johan CHARTRE
Advertisements

Profiles Construction Eclipse ECESIS Project Construction of Complex UML Profiles UPM ETSI Telecomunicación Ciudad Universitaria s/n Madrid 28040,
REST - Representational State Transfer
Introduction to Web Services
Server Access The REST of the Story David Cleary
OASIS OData Technical Committee. AGENDA Introduction OASIS OData Technical Committee OData Overview Work of the Technical Committee Q&A.
General introduction to Web services and an implementation example
SOAP.
SOAP Quang Vinh Pham Simon De Baets Université Libre de Bruxelles1.
.NET Framework V3.5+ & RESTful web services Mike Taulty Developer & Platform Group Microsoft Ltd
Web Service Architecture Part I- Overview and Models (based on W3C Working Group Note Frank.
IBM Software Group © 2005 IBM Corporation University of Nantes Eclipse dayMarch 2005 The Eclipse Modeling Framework and the IBM Model Transformation Framework.
CS 415 N-Tier Application Development By Umair Ashraf July 6,2013 National University of Computer and Emerging Sciences Lecture # 9 Introduction to Web.
© 2011 IBM Corporation Overview on Modeling RESTful Services August, 2011 Manoj Paul, Software Developer, Rational,
Deriving AO Software Architectures using the AO-ADL Tool Suite Luis Fernández, Lidia Fuentes, Mónica Pinto, Juan A. Valenzuela Universidad de Málaga
A Scalable Application Architecture for composing News Portals on the Internet Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta Famagusta.
Aurora: A Conceptual Model for Web-content Adaptation to Support the Universal Accessibility of Web-based Services Anita W. Huang, Neel Sundaresan Presented.
SEG4110 – Advanced Software Design and Reengineering
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
Web Architecture & Services (2) Representational State Transfer (REST)
REST.  REST is an acronym standing for Representational State Transfer  A software architecture style for building scalable web services  Typically,
Oracle Application Express 4.0. © 2009 Oracle Corporation The following is intended to outline our general product direction. It is intended for information.
Prepared By : Monika Darji Web Services using REST & JAX-WS.
Web Services XML-RPC, SOAP, REST Advanced Web-based Systems | Misbhauddin.
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Quick Tutorial – Part 2 Open Data Web Services for Oracle BPM August, 2013 Forms.
Open Data Protocol * Han Wang 11/30/2012 *
Or, Hey can’t we just do it using HTTP for the envelope?
IBM Software Group ® Jazz Storage Service Thomas.
Nadir Saghar, Tony Pan, Ashish Sharma REST for Data Services.
© 2011 IBM Corporation MDD Support for Struts in RSA  Helps accelerate Struts Application development  Architects can communicate Struts application.
Introduction to the SharePoint 2013 REST API. 2 About Me SharePoint Solutions Architect at Sparkhound in Baton Rouge
Chapter 10 Intro to SOAP and WSDL. Objectives By study in the chapter, you will be able to: Describe what is SOAP Exam the rules for creating a SOAP document.
RESTful Web Service 2014 년 12 월 한연희
Hypermedia Design for Machine APIs Web Scale Architecture for the Web of Things Michael J Koster 14 September 2015.
Copyright © 2002 ProsoftTraining. All rights reserved. JavaServer Pages.
1 Seminar on Service Oriented Architecture Principles of REST.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
RESTful Web Services.
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
Kemal Baykal Rasim Ismayilov
® IBM Software Group © 2004 IBM Corporation Developing an SOA with RUP and UML 2.0 Giles Davies.
1 ADO.NET Data Services Mike Taulty Developer & Platform Group Microsoft Ltd
Representational State Transfer (REST). What is REST? Network Architectural style Overview: –Resources are defined and addressed –Transmits domain-specific.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Module: Software Engineering of Web Applications Chapter 2: Technologies 1.
CS562 Advanced Java and Internet Application Introduction to the Computer Warehouse Web Application. Java Server Pages (JSP) Technology. By Team Alpha.
Click to add text © 2012 IBM Corporation 1 InfoSphere Streams Streams Console Applications InfoSphere Streams Version 3.0 Warren Acker InfoSphere Streams.
RESTful Web Services What is RESTful?
GEO PLACES EXPLORER PRESENTED BY KHUSHBOO BAGHADIYA SUMANA VENKATESH.
® IBM Software Group © 2007 IBM Corporation Module 1: Getting Started with Rational Software Architect Essentials of Modeling with IBM Rational Software.
REST By: Vishwanath Vineet.
Web Technologies Lecture 10 Web services. From W3C – A software system designed to support interoperable machine-to-machine interaction over a network.
UML Profile BY RAEF MOUSHEIMISH. Background Model is a description of system or part of a system using well- defined language. Model is a description.
1 G52IWS: Web Services Description Language (WSDL) Chris Greenhalgh
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
® IBM Software Group © 2009 IBM Corporation Viewpoints and Views in SysML Dr Graham Bleakley
Programming for RESTful-SOA An introduction to building a SOA System with light-weighted RESTful Web Services (Web Services without SOAP or WSDL) Xiong.
Software Architecture Patterns (3) Service Oriented & Web Oriented Architecture source: microsoft.
Using Retrofit framework in implementation of Android REST client David Ante Macan*, Zlatko Stapić, Milan Pavlović* University of Zagreb Faculty of Organization.
National College of Science & Information Technology.
David Hatten Developer, UrbanCode 17 October 2013
WEB SERVICES.
REST- Representational State Transfer Enn Õunapuu
Node.js Express Web Services
An introduction to REST for SharePoint 2013
Build a Web App with Oracle REST Data Services &
WEB API.
Week 05 Node.js Week 05
Chengyu Sun California State University, Los Angeles
SDMX IT Tools SDMX Registry
Presentation transcript:

© 2010 IBM Corporation RESTFul Service Modelling in Rational Software Architect April, 2011

© 2010 IBM Corporation Disclaimer  The information on products is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on products is for informational purposes only and may not be incorporated into any contract. The information on the products is not a commitment, promise, or legal obligation to deliver any material, code or functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion.  Plans are based on best information available and may change in future.

© 2010 IBM Corporation REST Service Modelling  What is REST? –REST Concepts  Modelling Support for REST in RSA –RSA Profile Authoring –Sample REST Profile  JAX-RS Support –JAXRS Modelling –RSA Transformation Extensibility –Code Generation & Reverse Engineering

© 2010 IBM Corporation REST : Representational State Transfer (REST)  REST defines a set of architectural principles by which you can design Web services –focuses on a system's resources, including how resource states are addressed and transferred over HTTP.  First introduced in 2000 by Roy Fielding at the University of California, Irvine, in his academic dissertation, "Architectural Styles and the Design of Network-based Software Architectures,"  A simpler alternative to SOAP- and Web Services Description Language (WSDL)-based Web services  Has gained widespread acceptance across the Web –Adoption of REST by mainstream Web 2.0 service providers—including Yahoo, Google, and Facebook  REST Web service follows four basic design principles: –Use HTTP methods explicitly. –Be stateless. –Expose directory structure-like URIs. –Representation of resource state

© 2010 IBM Corporation REST Concepts  REST design principle establishes a one-to-one mapping between create, read, update, and delete (CRUD) operations –To create a resource on the server, use POST. –To retrieve a resource, use GET. –To change the state of a resource or to update it, use PUT. –To remove or delete a resource, use DELETE.  REST suggests the design of web services be stateless –Doesn't require the server, while processing the request, to retrieve any kind of application context or state –A client includes within the HTTP headers and body of a request all of the parameters, context, and data needed by the server-side component to generate a response  Expose directory structure-like URIs –hierarchical, rooted at a single path, and branching from it are subpaths – –

© 2010 IBM Corporation Resource URIs

© 2010 IBM Corporation Resource Representation  A resource representation typically reflects the current state of a resource  Has to do with the format of the data that the application and service exchange in the request/response payload or in the HTTP body {comment}

© 2010 IBM Corporation Modelling REST Domain  The key abstraction of information in REST is a RESOURCE –Any information that can be named can be a resource: a document, a home page of a weblog, or a search result –A conceptual mapping to Data Entity (or actual resource)  A Resource Path is a URI that identifies a particular resource  Uses the concepts HTTP and URIs to retrieve or modify the state of a resource –Resource can have methods to handle HTTP request GET, PUT, POST, DELETE etc  A RESOURCE can define Input/Output types –Produces/Consumes types can be specified at the individual method level as well  Path between resource specifies the navigation path form a resource to a sub-resource

© 2010 IBM Corporation How to extend RSA to support Modeling REST Services?

© 2010 IBM Corporation 10 MDD enabled in RSA – UML Profiles  UML in itself is not broad/detailed for all domains / platforms –UML profiles allow you to customize the language for a particular domain or method  UML Profiles allow UML to be extended using –Stereotypes a type that you may apply as a property value to UML element to extend its properties and slightly alter its semantics –Tagged Values Additional properties which can be supplied E.g. Name of the Business Analyst that created that use case –Constraints Specify rules and restrictions on model elements

© 2010 IBM Corporation 11 MDD enabled in RSA – UML Profiles Profile composition palette Diagrammatic Profile composition Profile tooling generation

© 2010 IBM Corporation MDD enabled in RSA – Deploying Custom Profile  Profile must be deployed before it can be applied to model.  Two way to deploy a profile: –File system based deployment –Plugin based deployment  In either case, it is highly recommended to have a path-map pointing to the location of the profile.

© 2010 IBM Corporation REST Profile Design

© 2010 IBM Corporation REST Domain Model

© 2010 IBM Corporation REST Modeling Tooling Support  Palette support for creating domain elements  Properties support for customized view

© 2010 IBM Corporation JAX-RS Support

© 2010 IBM Corporation JAX-RS Support  JAX-RS: Java API for RESTful Web Services provides Java API for creating REST Services  JAX-RS uses annotations to simplify the development and deployment of web services specifies the relative path for a resource specifies the HTTP request type of a resource method. specifies the returned MIME media types public class public WidgetList getDiscounted() { public WidgetResource String id) { return new WidgetResource(id); } public class WidgetResource { public WidgetResource(String id) public Widget getDetails() {} }

© 2010 IBM Corporation JAX-RS Profile  REST Profile can be modified to include JAX-RS specific things –Include JAX-RS elements in REST profile if it is meant to be used in JAX-RS domain only –Create a separate profile for JAX-RS to keep REST and JAX-RS separate  Additional Concepts in JAX-RS –Sub-Resource Method –Sub-Resource Locator public class public public public void modify(){…} …….. } public class public SubResource getSubResource(){…} } public class public void Operation1(){…} }

© 2010 IBM Corporation How do we generate Implementation code?

© 2010 IBM Corporation Extending Transformations  A Transformation Extension allows you to tap into and contribute to an existing Transform element in a transformation  For example, the UML-to-Java Transformation is composed of the following Transforms –Model Transform –Package Transform –Class Transform –Interface Transform –Generalization Transform –Property Transform –Operation Transform –… –You can extend any of these to customize the generated code

© 2010 IBM Corporation Extending Transformations  Although the functionality of RSA’s built-in code transformations is complete, you may want to extend them to include generation of custom elements or conventions or to support domain specific constructs  As with most features in Rational Software Architect, to extend existing transformations you use the normal Eclipse extension mechanisms, creating a plug-in and implementing specific extension points  Such an extension is called a Transformation Extension

© 2010 IBM Corporation Extending Transformations - Example  This extension looks for any UML keywords defined for this class in the Model and use them to add a new Javadoc tag associated with the class in the source code UML-to-Java Transformation Class Transform Extension

© 2010 IBM Corporation JAX-RS Annotation Support

© 2010 IBM Corporation Questions

© 2010 IBM Corporation Thank You!