© 2008 IBM Corporation Presentation URLs from Resource URLs Last updated Sep. 22, 2008.

Slides:



Advertisements
Similar presentations
XPointer and HTTP Range A possible design for a scalable and extensible RDF Data Access protocol. Bryan Thompson draft Presented to the RDF.
Advertisements

Copyright 2004 Monash University IMS5401 Web-based Systems Development Topic 2: Elements of the Web (g) Interactivity.
Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)
1 Chapter 12 Working With Access 2000 on the Internet.
Chapter 12: ADO.NET and ASP.NET Programming with Microsoft Visual Basic.NET, Second Edition.
1 of 4 This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. © 2007 Microsoft Corporation.
Dynamic Web Pages Bert Wachsmuth. Review  Internet, IP addresses, ports, client-server, http, smtp  HTML, XHTML, XML  Style Sheets, external, internal,
1 Introduction to OBIEE: Learning to Access, Navigate, and Find Data in the SWIFT Data Warehouse Lesson 2: Logging in and out of OBIEE This course, Introduction.
HTTP Overview Vijayan Sugumaran School of Business Administration Oakland University.
Hypertext Transport Protocol CS Dick Steflik.
The Internet & The World Wide Web Notes
XP New Perspectives on Microsoft Access 2002 Tutorial 71 Microsoft Access 2002 Tutorial 7 – Integrating Access With the Web and With Other Programs.
Microsoft Office Word 2013 Expert Microsoft Office Word 2013 Expert Courseware # 3251 Lesson 4: Working with Forms.
Processing of structured documents Spring 2003, Part 6 Helena Ahonen-Myka.
Blogs & feeds Jim des Rivieres Oct. 16, Grappling with question of how to present Jazz/OSLC data resources “Pure” data resources are presentation-
TIBCO Designer TIBCO BusinessWorks is a scalable, extensible, and easy to use integration platform that allows you to develop, deploy, and run integration.
Form Handling, Validation and Functions. Form Handling Forms are a graphical user interfaces (GUIs) that enables the interaction between users and servers.
Chapter 16 The World Wide Web. 2 Chapter Goals Compare and contrast the Internet and the World Wide Web Describe general Web processing Write basic HTML.
LAYING OUT THE FOUNDATIONS. OUTLINE Analyze the project from a technical point of view Analyze and choose the architecture for your application Decide.
T U T O R I A L  2009 Pearson Education, Inc. All rights reserved Bookstore Web Application Introducing Visual Web Developer 2008 Express and the.
Chapter 6: Forms JavaScript - Introductory. Previewing the Product Registration Form.
Chapter 33 CGI Technology for Dynamic Web Documents There are two alternative forms of retrieving web documents. Instead of retrieving static HTML documents,
Chapter 16 The World Wide Web Chapter Goals Compare and contrast the Internet and the World Wide Web Describe general Web processing Describe several.
Server-side Scripting Powering the webs favourite services.
Overview of Previous Lesson(s) Over View  ASP.NET Pages  Modular in nature and divided into the core sections  Page directives  Code Section  Page.
Chapter 16 The World Wide Web. 2 The Web An infrastructure of information combined and the network software used to access it Web page A document that.
Chapter 7 Structuring System Process Requirements
REST.  REST is an acronym standing for Representational State Transfer  A software architecture style for building scalable web services  Typically,
© 2008 IBM Corporation Presenting Data Resources Last updated Nov. 14, 2008.
Mobile Topic Maps for e-Learning John McDonald & Darina Dicheva Intelligent Information Systems Group Computer Science Department Winston-Salem State University,
Web HTTP Hypertext Transfer Protocol. Web Terminology ◘Message: The basic unit of HTTP communication, consisting of structured sequence of octets matching.
Web Server Administration Web Services XML SOAP. Overview What are web services and what do they do? What is XML? What is SOAP? How are they all connected?
Dodick Zulaimi Sudirman Lecture 14 Introduction to Web Service Pengantar Teknologi Internet Introduction to Internet Technology.
JAVA SERVER PAGES. 2 SERVLETS The purpose of a servlet is to create a Web page in response to a client request Servlets are written in Java, with a little.
1 Overview of the Application Hosting Environment Stefan Zasada University College London.
© 2012 IBM Corporation Best Practices for Publishing RDF Vocabularies Arthur Ryman,
Chapter 6 Server-side Programming: Java Servlets
REST - Introduction Based on material from InfoQ.com (Stefan Tilkov) And slides from MindTouch.com (Steve Bjorg) 1.
Chris Kuruppu NWS Office of Science and Technology Systems Engineering Center (Skjei Telecom) 10/6/09.
1 Web Service Description Language (WSDL) 大葉大學資工系.
Using the Right Method to Collect Information IW233 Amanda Murphy.
Java server pages. A JSP file basically contains HTML, but with embedded JSP tags with snippets of Java code inside them. A JSP file basically contains.
1 Web Servers (Chapter 21 – Pages( ) Outline 21.1 Introduction 21.2 HTTP Request Types 21.3 System Architecture.
1 WWW. 2 World Wide Web Major application protocol used on the Internet Simple interface Two concepts –Point –Click.
IS-907 Java EE World Wide Web - Overview. World Wide Web - History Tim Berners-Lee, CERN, 1990 Enable researchers to share information: Remote Access.
FF 11 : Hooks A presentation by Robin Upton ( ) ‏ Latest version at Attribution – NonCommercial - ShareAlike
Module: Software Engineering of Web Applications Chapter 2: Technologies 1.
Internet Applications (Cont’d) Basic Internet Applications – World Wide Web (WWW) Browser Architecture Static Documents Dynamic Documents Active Documents.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
Learning Aim A.  Websites are constructed on many different features.  It can be useful to think about these when designing your own websites.
Google Analytics Graham Triggs Head of Repository Systems, Symplectic.
© 2010 IBM Corporation RESTFul Service Modelling in Rational Software Architect April, 2011.
REST API Design. Application API API = Application Programming Interface APIs expose functionality of an application or service that exists independently.
National College of Science & Information Technology.
Advanced HTML Tags:.
Data Virtualization Demoette… ODBC Clients
Creating Oracle Business Intelligence Interactive Dashboards
Sabri Kızanlık Ural Emekçi
WEB SERVICES From Chapter 19 of Distributed Systems Concepts and Design,4th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published by Addison.
REST- Representational State Transfer Enn Õunapuu
Hypertext Transport Protocol
Understand Windows Forms Applications and Console-based Applications
IS333D: MULTI-TIER APPLICATION DEVELOPMENT
WEB API.
Lecture 1: Multi-tier Architecture Overview
Lecture 5: Functions and Parameters
Tutorial 7 – Integrating Access With the Web and With Other Programs
Web API with Angular 2 Front End
WEB SERVICES From Chapter 19, Distributed Systems
SDMX IT Tools SDMX Registry
Presentation transcript:

© 2008 IBM Corporation Presentation URLs from Resource URLs Last updated Sep. 22, 2008

© 2008 IBM Corporation 2 UI Client’s Problem Clients obtain URLs to JTS data resources –Directly –Embedded as links in other data resources Clients know how to work with and present some data resources –E.g., work item GUI editor can read, manipulate, and present work items Clients have little/no knowledge of other data resources –E.g., work item GUI editor does not know anything about test cases Data resources are linked to other data resources –E.g., a work item resource is linked to a test case UI clients need ways to provide users with smooth navigation between presentations of linked resources –Web UI presentations –Desktop presentations –… Most data resources are not directly presentable to users –Represented as XML documents UI clients must be able to discover how to present other data resource –Discover suitable presentation given URL of a data resource Be able to presentation coming from resource’s home tool –Choose from what’s available –Bring up chosen presentation of data resource

© 2008 IBM Corporation 3 Two sides of coin Outside – UI clients interact with JTS to discover and bring up presentations –As long as client gets a good answer, client doesn’t care how answer is computed Inside - How does JTS come up with answers? –What are the internal mechanisms? –Matters might Both are needed Largely separable Outside is more straightforward

© 2008 IBM Corporation 4 Straw man proposal in 2 parts 1.Provider Discovery Service –General service used for various purposes –UI clients use to find presentations for a data resource –Addresses client’s needs - outside 2.Provider Registry –General registry used internally to associate information providers with a data resource –UI presentation providers associate presentations –Addresses implementation concerns – inside

© 2008 IBM Corporation 5 What do UI clients know? UI client has URL in hand UI client is interacting with a particular JTS Presumptively URL is of data resource on that JTS UI clients need not know –Whether data resource actually exists –Whether data resources is actually on a JTS –Whether data resources is actually on that particular JTS –What type of presentation are of interest (although it helps) –Content type of data resource (presumptive or actual) –Process governing the data resource That is to say – NOT MUCH

© 2008 IBM Corporation 6 What do UI clients need? UI client has URL of data resource in hand Wants to show the referenced data resource to their user…somehow Appeals to a particular JTS for recommend presentation(s) of certain type(s) JTS will answer with options –List of available presentations for data resource Which types of presentation are available Presentation provider label for displaying choice to user Information on how to call up that presentation Preferred presentation –Explain in cases where it cannot help Data resource has no known presentations Data resource is on some other JTS Data resource is not on a JTS Temporarily unable to decide (e.g., unable to “sniff” data resource) UI client chooses from available presentations –Present options to user and let them pick UI client calls up the chosen presentation for data resource –Could involve launching desktop app –Could involve directing web browser to different web page –Could involve …

© 2008 IBM Corporation 7 Straw man proposal part 1 – Provider Discovery Service Provider Discovery Service –REST-based API –Part of JFS –Useful for finding presentations (and likely much, much more) Globally available –One per JTS –Assume base URL discoverable via other JFS discovery service UI client –Discovers base URL of Provider Discovery Service –Constructs request URL by filling in URL of data resource in question 1 or more entry type IDs for presentations of interest to client: jazz.webui, jazz.richui –Make GET request –Response is list of recommended (or all available) presentations for data resource Presentation type - e.g., jazz.richui Presentation provider label - e.g., “RTC Client” Preferred: yes Presentation URL - e.g., “rtc:rtc1/u” –Chooses from available presentations –Uses presentation URL to bring up presentation

© 2008 IBM Corporation 8 Client accessing rich UI presentation RRC Client jf1 – JFSrtc1 – RTC server RTC Client GET /find-providers?types=jazz.webui,jazz.richui&url=//rtc1/u i.e., Find all presentations for //rtc1/u GET rtc:rtc1/u ( jazz.webui, “Build Web UI”, N, ) ( jazz.richui, “RTC Client”, Y, rtc:rtc1/u ) Retrieve build result /u 200 OK Build result data ? Shows data in Build Results view 5 Launches desktop app User chooses rich presentation 4

© 2008 IBM Corporation 9 Client accessing web UI presentation RRC Client jf1 – JFSrtc1 – RTC server b1 – Presentation provider GET /find-providers?types=jazz.webui,jazz.richui&url=//rtc1/u i.e., Find all presentations for //rtc1/u GET /show-build?url=//rtc1/u ( jazz.webui, “Build Web UI”, N, ) ( jazz.richui, “RTC Client”, Y, rtc:rtc1/u ) GET /u i.e., computed page presenting build result data i.e., raw build result data ? 3 User chooses web presentation 7 Shows data in browser widget

© 2008 IBM Corporation 10 Straw man proposal part 2 - Provider Registry Assume that data resource and services are fundamental –REST APIs are for ALL clients – not just for ones with UIs Presentations depend on data resources –Not the other way around –Not all data resources will even have presentations –Additional presentations can be added as easily as the first NEEDED: mechanism for associating presentations with data resources Presentations are typically geared for resource with a particular content type –E.g., RRC Client can present requirement resources Presentations are sometime geared for resources with a particular content type living in a particular repository –E.g., DOORS client presents requirement resources in a DOORS repository Express with a set of declarative selection rules –“The DOORS Client can provide a rich UI type presentation for data resources with content type X-application/oslcrequirement+xml The corresponding presentation URL is computed from the data resource URL by …” JTS maintain global set of rules in provider registry

© 2008 IBM Corporation 11 Provider registry Provider registry consists of selection rules, including ones for presentations Entry typeProvider label PrefferedPreffered Content type patternURL transformation function (input pattern -> output template) jazz.webuiJFS Web Client*X-app/oslcuser+xml -> jazz.richuiRTC Client*X-app/oslcworkitem+xml;tool=rtc -> rtc:{host}/{path} jazz.richuiRTC Client*X-app/oslcbuild+xml;tool=rtc -> rtc:{host}/{path} jazz.webuiRTC Web Client*X-app/oslcworkitem+xml;tool=rtc -> jazz.webuiBuildForge Web Client X-app/oslcbuild+xml -> jazz.webuiRQM Web ClientX-app/oslctest+xml {url} -> jazz.richuiDOORS Client*X-app/oslcrequirement+xml;tool=doors doors:{host}/{path} jazz.richuiRRC Client*X-app/oslcrequirement+xml;tool=rrc -> rrc:{host}/{path} jazz.richuiRRC ClientX-app/oslcrequirement+xml -> rrc:{host}/{path}

© 2008 IBM Corporation 12 How Provider Discovery Service is implemented 1.Input from client –Data resource URL –List of entry types of interest –Best vs All 2.Use HEAD to “sniff” data resource URL –http headers reveal Content type of resource JTS server that hosts data resource (i.e., basis of JFS Discovery) 3.Determine all applicable selection rules in provider registry –Match Entry Type :: entry types of interest (input) AND match Content Type Pattern :: data resource content type (step 2) 4.Compute one tuple for each applicable rule –(Entry Type, Provider Label, Preferred, x) where x = f(data resource URL) and f is given by URL Transformation Function 5.Sort results –Within entry type, sort by preferred, more-to-less specific –Choose best result per entry type (unless “all” specified) 6.Return to client –List of tuples

© 2008 IBM Corporation 13 Client accessing web UI presentation RRC Client jf1 – JFSrtc1 – RTC server b1 – Presentation provider GET /find-providers?types=jazz.webui,jazz.richui&url=//rtc1/u i.e., Find all presentations for //rtc1/u GET /show-build?url=//rtc1/u ( jazz.webui, “Build Web UI”, N, ) ( jazz.richui, “RTC Client”,Y, rtc:rtc1/u ) GET /u i.e., computed page presenting build result data i.e., raw build result data 1 6 3,4,5 HEAD //rtc1/u Content-Type: X-app/oslcbuild+xml X-JTS: … Other useful headers? 2 User chooses web presentation Shows data in browser widget

© 2008 IBM Corporation 14 Where does info in registry come from? Registry is exposed though system-defined resource –Discoverable through other JFS discovery services Representation is a single XML-based data resource –Selection rules are XML subelements Selection rules –Largely contributed by JTS extensions at their install time –Tweakable by system administrator Requires high administrative permissions to update

© 2008 IBM Corporation 15 URL transformation functions URL-to-string transformations are described by input pattern and output tempate –E.g., function -> input output Simplest possible things that could possibly work –Simple –Flexible –Declarative – describing novel xmf does not require adding code to server Note: Interesting information in data resource URL must be encoded (somehow) in presentation URL –Presentation provider must be able to reconstruct data resource URL given only presentation resource URL –If it cannot, presentation provider would need more expensive query to locate data resource URL

© 2008 IBM Corporation 16 Design Assumptions and Issues Information on how to call up rich and web presentations can be expressed conveniently as URL –HTTP for standard web presentations E.g., –Non-standard URL schemes for launching desktop applications (like “mailto” scheme) E.g., rtc:rtc1.eg.com/u –Is this reasonable? Tool-specific tagging of resource content type –Assuming that tools will tag their resources’ content type with tool ID –E.g., needed to ensure a requirement in a DOORS repository will be shown with a DOORS presentation Generalization –Clients asks for presentations for particular data resource – not resource type –User chooses from available presentations and indicates “Remember my choice” –Client remembers choice (client side) –Uses remember choices on subsequent occasions –Can client generalize to “similar” data resources?

© 2008 IBM Corporation 17 Mini critique Some shortcomings of straw man Monolithic registry resource –Does not scale to large numbers of rules, frequent edits, or edits by less trusted administrators Inability to select presentation based on anything buried inside representation of resource –Cannot choose a provider based on a requirements resource containing elements in a particular XML namespace Inability to select presentation based on project/process –Cannot choose a provider only for resources in a particular project/process –Potential challenge if we want to allow a customer to dictate a preferred presentation within a particular project/process

© 2008 IBM Corporation 18 Also considered HTTP content negotiation (Accept headers) –Only covers alternative representations of data resource –Cannot handle case where client must launch desktop tool Consult provider (or proxy) to help determine selection rule applicability –Each discovery request requires O(n) roundtrips where n is # of providers –Effort increases as # providers increases –Not scalable Consult provider (or proxy) to help compute URL tranformation function –Each discovery request requires O(k) roundtrips where k is # of applicable providers –Effort increases as # applicable providers increases –Not scalable