REST services in Domino - Domino Access Services



Similar documents
White Paper. Advantages of IBM Notes and Domino 9 Social Edition for Midsize Businesses. 89 Fifth Avenue, 7th Floor. New York, NY 10003

02267: Software Development of Web Services

02267: Software Development of Web Services

Introduction to Oracle Mobile Application Framework Raghu Srinivasan, Director Development Mobile and Cloud Development Tools Oracle

Server-side OSGi with Apache Sling. Felix Meschberger Day Management AG 124

Session 6 Patterns and best practices in SOA/REST

Integrating Complementary Tools with PopMedNet TM

Internet Calendaring and Scheduling Core Object Specification (icalendar) Compatible Collaborative Calendar-Server (CCS) Web Services

A "Day in the Life" Exceptional Work Experience Joe Baxter IBM Collaboration Solutions. Twitter: joebaxter

Budget Event Management Design Document

Cross-domain Identity Management System for Cloud Environment

How to consume a Domino Web Services from Visual Studio under Security

Distribution and Integration Technologies

SAP Mobile Platform Intro

ITG Software Engineering

General principles and architecture of Adlib and Adlib API. Petra Otten Manager Customer Support

Take full advantage of IBM s IDEs for end- to- end mobile development

A Comparison of Open Source Application Development Frameworks for the Enterprise

Developing Exceptional Mobile and Multi-Channel Applications using IBM Web Experience Factory

Cloud Elements! Marketing Hub Provisioning and Usage Guide!

Implementing Mobile Thin client Architecture For Enterprise Application

Release Notes. DocuSign Spring 15 Release Notes. Contents

Introduction to IBM Worklight Mobile Platform

Building HTML5 and hybrid mobile apps using cloud services. Andrei Glazunov

REST API Development. B. Mason Netapp E-Series

Introduction to Web services for RPG developers

WebSphere Product Family Overview

REST web services. Representational State Transfer Author: Nemanja Kojic

Beyond The Web Drupal Meets The Desktop (And Mobile) Justin Miller Code Sorcery Workshop, LLC

Eclipse Open Healthcare Framework

RESTful web applications with Apache Sling

Introducing Apache Pivot. Greg Brown, Todd Volkert 6/10/2010

IBM Cloud Manager with OpenStack. REST API Reference, version 4.1

Welcome The webinar will begin shortly

Domain Name System (DNS)

Clearing the Fog: Understanding z Systems Cloud Technology Options

White Paper Converting Lotus Notes Applications to the Cloud Using the CIMtrek converter Product

Beyond the SOA/BPM frontiers Towards a complete open cooperative environment

Progress OpenEdge REST

Developing Exceptional Mobile and Multi-Channel Applications using IBM Web Experience Factory IBM Corporation 1

Take Your Rocket U2 Apps Mobile with Rocket LegaSuite. Greg Mummah, Product Manager Rocket Software

Sun Cloud API: A RESTful Open API for Cloud Computing

Designing RESTful Web Applications

Integrating IBM Lotus Quickr 8.5 for Domino with IBM Enterprise Content Management: Configuration and best practices

Internet Engineering: Web Application Architecture. Ali Kamandi Sharif University of Technology Fall 2007

ECG-1615A. How to Integrate IBM Enterprise Content Management Solutions With Microsoft SharePoint and IBM Connections. elinar.com

WEB SERVICES. Revised 9/29/2015

Solution Showcase Session. Enterprise 2.0 Computing Services

New Single Sign-on Options for IBM Lotus Notes & Domino IBM Corporation

Integrating SharePoint with Lotus Notes and WebSphere Portal

OpenText Information Hub (ihub) 3.1 and 3.1.1

Safe Harbor Statement

Web Development with the Eclipse Platform

Federated single sign-on (SSO) and identity management. Secure mobile access. Social identity integration. Automated user provisioning.

Kony Mobile Application Management (MAM)

What s New in IBM Web Experience Factory IBM Corporation

ORACLE APPLICATION EXPRESS 5.0

An introduction to creating Web 2.0 applications in Rational Application Developer Version 8.0

Enabling REST Services with SAP PI. Michael Le Peter Ha

San Jose State University

BlackBerry Enterprise Server for Microsoft Exchange Version: 5.0 Service Pack: 2. Feature and Technical Overview

Consuming and Producing Web Services with WST and JST. Christopher M. Judd. President/Consultant Judd Solutions, LLC

Integrating Fax Sending Services

Integrating Mobile apps with your Enterprise

Traitware Authentication Service Integration Document

Google Web Toolkit (GWT) Architectural Impact on Enterprise Web Application

Cloud Powered Mobile Apps with Microsoft Azure

EVALUATION ONLY. WA2088 WebSphere Application Server 8.5 Administration on Windows. Student Labs. Web Age Solutions Inc.

Cloud Elements! Events Management BETA! API Version 2.0

Property & Casualty Insurance Solutions from CCS Technology Solutions

Understanding Evolution's Architecture A Technical Overview

Outlook Data File navigate to the PST file that you want to open, select it and choose OK. The file will now appear as a folder in Outlook.

SCA & SDO Implementations Open Source and Vendor Products

Contents. 2 Alfresco API Version 1.0

Apache Sentry. Prasad Mujumdar

Google Web Toolkit. Introduction to GWT Development. Ilkka Rinne & Sampo Savolainen / Spatineo Oy

Portals, Portlets & Liferay Platform

How To Develop A Mobile App With Phonegap

2015, André Melancia (Andy.PT) 1

Installation and Administration Guide

The full setup includes the server itself, the server control panel, Firebird Database Server, and three sample applications with source code.

IBM Digital Experience. Using Modern Web Development Tools and Technology with IBM Digital Experience

Develop a Native App (ios and Android) for a Drupal Website without Learning Objective-C or Java. Drupaldelphia 2014 By Joe Roberts

Mobile Application Development Connecting with PHP REST Servers from Android

LOTUS to SharePoint Migration Services

CMT for Notes. Installation Guide

DevOps Best Practices for Mobile Apps. Sanjeev Sharma IBM Software Group

Product Information. Sugar vs Zoho. Features Comparison

Putting the power of Web 2.0 into practice.

1 Building, Deploying and Testing DPES application

Cloud Elements ecommerce Hub Provisioning Guide API Version 2.0 BETA

CA SiteMinder. Implementation Guide. r12.0 SP2

Saving Space in Your Notes Database

IBM. Implementing SMTP and POP3 Scenarios with WebSphere Business Integration Connect. Author: Ronan Dalton

Transcription:

REST services in Domino - Domino Access Services Domino Programmability Team 2012 IBM Corporation

Agenda Why REST? REST Basics RESTful Domino Domino Access Services Overview Domino Access Services Domino data service Calendar service Mail service Other services we are discussing Enable Domino Access Services Build customized service Some user stories API by release Reference 2 2013 IBM Corporation

Why REST REST Basics What is REST? Representational State Transfer (REST) Resource-oriented: Documents, views, messages, & calendar entries are all just resources Each resource has a unique URL Multiple representations of a resource (JSON, XML, MIME, icalendar, etc.) Uses HTTP uniform interface (GET, POST, PUT & DELETE) REST in the marketplace Google, Facebook, Twitter all depend on REST to build market share Benefits of REST Secure lightweight web service based on HTTP Great for web applications, native mobile applications and server-to-server access 3 2011 IBM Corporation 2013 IBM Corporation

Why REST RESTful Domino Domino works as service provider Client and server are more decoupled Very low barrier to use Easy to integrated in web/mobile applications Two ways to access REST service of Domino From XPages using the REST Service control (won't cover in this slide) As built-in service called Domino Access Services (DAS) REST API vs Traditional API REST vs SOAP REST vs NRPC/DIIOP 2013 IBM Corporation

REST vs SOAP Both are web services, but... It's easier to build a REST client No need for special libraries or generated code REST clients are lighter Easy to access a REST service by http client REST vs NRPC/DIIOP Client doesn't need Notes/Domino libraries or Notes ID Great for web and native mobile applications 5 2013 IBM Corporation

What is Domino Access Services (DAS)? Growing family of REST services including:... Domino data service Mail service Calendar service Access Domino data from any HTTP client Strategically important for integrating with other IBM products 6 2013 IBM Corporation

Domino Access Services (DAS) is also a framework One framework for adding REST services to Domino Extensible framework built on Apache Wink (see http://incubator.apache.org/wink) and OSGi 7 2013 IBM Corporation

DAS in API Framework Customer solutions using SSJS Customer solutions using REST Customer solutions using Notes Java API Customer solutions using LotusScript JS Wrappers REST Service Java Wrappers LotusScript Wrappers Customer solutions using C / C++ Back-end Classes C SDK Core function 8 2013 IBM Corporation

Domino Access Services Architecture Data Service Plug-in Domino Server Calendar Service Plug-in... Traveler Admin Plug-in All components in blue are OSGi plugins (Java code). DAS Servlet Apache Wink Runtime Domino Web Engine (native code) Client can be a browser, native mobile app, etc anything that can send an HTTP request. 2011 IBM Corporation 9 2013 IBM Corporation

Domino Access Services (DAS) Domino data service Calendar service Mail service Other services we are discussing 2013 IBM Corporation

Domino Data Service Overview Released in 8.5.3 Upgrade Pack 1; also planned for 9.0 Access to databases, views, folders & documents JSON representation for easy access from JavaScript and other languages Create, Read, Update & Delete (CRUD) operations for documents 11 2013 IBM Corporation

Domino Data Service Functionality Reading database collection Reading/updating view/folder entry collection Creating new documents Reading/updating/deleting existing documents 12 2013 IBM Corporation

Domino Data Service Sample GET Method: Resource: URI: GET View Entries http:{host}/{database}/api/data/collections/unid/{unid} [ { }, { }, "@entryid":"1-0f7e8f76cacc9648852578110047d0c5", "@unid":"0f7e8f76cacc9648852578110047d0c5", "@noteid":"2c7a", "@position":"1", "Key":"AL", "Name":"ALABAMA" "@entryid":"2-df127ef6e034afe4852578110047d0c6", "@unid":"df127ef6e034afe4852578110047d0c6", "@noteid":"2c7e", "@position":"2", "Key":"AK", "Name":"ALASKA" 13 2013 IBM Corporation

Calendar Service - Overview Planned for 9.x Higher level of abstraction for access to calendar data JSON and icalendar representations CRUD operations with implicit scheduling 14 2013 IBM Corporation

Calendar Service Functionality Create, read, update and delete calendar entries Read a range of entries from a calendar Get a list of invitations or unapplied notices Simple actions for calendar entries and notices Controls for implicit scheduling 15 2013 IBM Corporation

Calendar service example Read a range of events GET http://{host}/{db}/api/calendar/events JSON response { } "events": [ { "id": "8A3941390301436885257AD700661DAE", "summary": "Super Bowl XLVII", "location": "New Orleans", "start": { "date": "2013-02-03", "time": "23:30:00", "utc": true }, "end": { "date": "2013-02-04", "time": "03:00:00", "utc": true } }, { "id": "09C4206D7BD743D685257AB0007BA513", "summary": "Repeating Appointment", "location": "test", "start": {...}, "end": {...} },... ] 16 2013 IBM Corporation

Calendar service example Read a range of events GET http://{host}/{db}/api/calendar/events?format=icalendar icalendar response BEGIN:VCALENDAR X-LOTUS-CHARSET:UTF-8 VERSION:2.0 BEGIN:VEVENT DTSTART:20130203T233000Z DTEND:20130204T030000Z SUMMARY:Super Bowl XLVII LOCATION:New Orleans UID:8A3941390301436885257AD700661DAE X-LOTUS-SUMMARYDATAONLY:TRUE END:VEVENT BEGIN:VEVENT DTSTART:20130205T140000Z DTEND:20130205T150000Z SUMMARY:Repeating Appointment LOCATION:test UID:09C4206D7BD743D685257AB0007BA513 X-LOTUS-SUMMARYDATAONLY:TRUE END:VEVENT... END:VCALENDAR 17 2013 IBM Corporation

Calendar service example Create a new event POST http://{host}/{db}/api/calendar/events Content-Type: application/json JSON request { } "events": [ { "summary": "2013 Boston Marathon", "location": "Hopkinton to Boston", "start": { "date": "2013-04-15", "time": "13:00:00", "utc": true }, "end": { "date": "2013-04-15", "time": "19:00:00", "utc": true } } ] 18 2013 IBM Corporation

Calendar service example Create a new event POST http://{host}/{db}/api/calendar/events Content-Type: text/calendar icalendar request BEGIN:VCALENDAR VERSION:2.0 PRODID:-//Some Company//NONSGML Some Product//EN BEGIN:VEVENT DTSTART:20130415T130000Z DTEND:20130415T190000Z SUMMARY:2013 Boston Marathon LOCATION:Hopkinton to Boston END:VEVENT END:VCALENDAR 19 2013 IBM Corporation

Mail Service Overview and Functionality On OpenNTF now; no firm plans for product release JSON and MIME representations Read views, folders & messages; Send messages; Draft messages 20 2013 IBM Corporation

Mail service example Get messages Method: Resource: URI: GET Inbox http:{host}/{database}/api/mail/inbox [ { "from":"dan Misawa", "subject":"test sending mail...", "date":"2011-10-13t17:52:09z", "href":"http:\/\/ibm.com\/mail\/dmisawa.nsf\/api\/mail\/messages\/969862cc4ff167b18525792..." }, { "from":"frank Adams", "subject":"email with Mime", "date":"2011-10-17t17:16:55z", "href":"http:\/\/ibm.com\/mail\/dmisawa.nsf\/api\/mail\/messages\/d6bac6ee639e5c278525792..." }, { "from":"betty Zechman", "subject":"message with rich text conent and attachment.", "date":"2011-12-09t18:35:43z", "href":"http:\/\/ibm.com\/mail\/dmisawa.nsf\/api\/mail\/messages\/d02d492e423dbf5f85257961..." } ] 21 2013 IBM Corporation

Calendar service example Get a message in JSON Method: Resource: URI: GET Messages http:{host}/{database}/api/mail/messages/{unid} { "from":"cn=fadams\/o=renovations", "to": ["CN=Dan Misawa \/O=Renovations"], "subject":"message with rich text conent and attachment.", "date":"2011-12-09t19:42:49z", "href":"http:\/\ibm.com\/mail\/dlawson.nsf\/api\/mail\/messages\/d02d492e423dbf5f85257961006c242c", "content": [ { "contenttype":"multipart\/mixed; boundary=\"=_mixed 006C4A7C85257961_=\"" }, { "contenttype":"text\/html; charset=\"us-ascii\"", "data":"<font size=2 color=red face=\"sans-serif\"><b>this text is bold and red.<\/b><\/font>\r\n<br>\r\n<br>", "boundary":"--=_mixed 006C4A7C85257961_=" }, { "contenttype":"text\/plain; name=\"text Document.txt\"", "contenttransferencoding":"quoted-printable", "data":"this is a simple text file with some text.=\r\n=", "boundary":"--=_mixed 006C4A7C85257961_=", "contentdisposition":"attachment; filename=\"text Document.txt\"" } ] } 22 2013 IBM Corporation

Calendar service example Get a message in MIME Method: Resource: URI: GET Messages http:{host}/{database}/api/mail/messages/{unid}?format=mime MIME-Version: 1.0 To: Dan Misawa@notesdev.ibm.com Subject: Message with rich text conent and attachment. Message-ID: <OFD02D492E.423DBF5F-ON85257961.006C242C-85257961.006C4A7F@LocalDomain> Date: Fri, 9 Dec 2011 14:42:49-0500 Sender: fadams@explorer.swg.usma.ibm.com From: fadams@notesdev.ibm.com Content-Type: multipart/mixed; boundary="=_mixed 006C4A7C85257961_=" MIME-Version: 1.0 --=_mixed 006C4A7C85257961_= Content-Type: text/html; charset="us-ascii" <font size=2 color=red face="sans-serif"><b>this text is bold and red.</b></font> <br> --=_mixed 006C4A7C85257961_= Content-Type: text/plain; name="text Document.txt" Content-Disposition: attachment; filename="text Document.txt" Content-Transfer-Encoding: quoted-printable This is a simple text file with some text.= = --=_mixed 006C4A7C85257961_=-- 23 2013 IBM Corporation

Other services we're discussing FreeBusy Rooms & Resources Traveler admin Looking for customer feedback on other ideas and priorities 24 2013 IBM Corporation

Enabling service on server is required DAS is disabled by default. Can be enabled for Server, Database (View and Document), and View { } "code":403, "text":"forbidden", "message":"database not allowed for Web Access" Administrator controls which servers run the data service: Internet Site or Server Document 25 2013 IBM Corporation

Enabling service for a database Application developer controls Database access: Database Advanced Properties Application developer controls View access: View Advanced Properties 26 2013 IBM Corporation

Custom REST Services Tools to build your own services using OSGi and Apache Wink Java, OSGi, Wink skills required Apache Wink is an open source project Easy to build a service in a Java servlet container Uses Java annotations Most of the code is contributed to Apache by the WebSphere team See http://incubator.apache.org/wink Enforces consistency across services for example Common URL path (/api/data, /api/mail, /api/calendar) Common JSON error object Administrator uses one UI to choose what services run on a server 27 2013 IBM Corporation

User story (1 of 3) Data service : Document Repository User story User want to read/write document in domino server on mobile or web browser Pro-art and limitation Xpages,Help documents on Lotus wiki are implemented by xpage, Xpages is developed and binding with db. Quickr,product of document repository based on domino Solution After we public RESTful service, any vendor or partner can develop client application product or integrate this service into their product 2013 IBM Corporation

User story (2 of 3) Mail service : Social mail/connection mail User story User want to read his mail on mobile or web browser Pro-art and limitation inotes, use internal domino api instead of consume REST mail service. Additional library needed on server. Solution REST API is standard and general service, independent of client/server, after we provide mail service api, all kinds of web-based mail client can consume it, integrate it, including next generation notes client- Social mail 2013 IBM Corporation

User story (3 of 3) Calendar service : General calendar User story User want to check his calendar on mobile, this calendar is collection for all his calendar events, including google calendar, notes calendar, icalendar on mac Pro-art and limitation N/A Solution After we public RESTful service, any vendor or partner can develop client application product or integrate this service into their product 2013 IBM Corporation

APIs by Release API Name 8.5.3 Upgrade Pack 1 Extension Library (OpenNTF) 9.0 Social Edition Domino data service Yes Yes In Plan In Plan 9.x Calendar service No No No In Plan Mail service No Yes No Not in Plan 31 2013 IBM Corporation

Documentation and other references Topic Source Link Domino data service App Dev Wiki http://www-10.lotus.com/ldd/ddwiki.nsf/xpviewcategories.xsp? lookupname=domino%20data%20service Mail service OpenNTF http://www.openntf.org/projects/pmt.nsf/e1b347b6a993144186257 AC6005577F2/%24file/Domino%20Mail%20Service.pdf Calendar service Planned for an extlib release coming soon (http://extlib.openntf.org/) Domino application development in general App Dev Wiki http://www-10.lotus.com/ldd/ddwiki.nsf Extension library in general OpenNTF http://extlib.openntf.org/ 32 2013 IBM Corporation