P4WSP: The Perforce WebServices PlatformHamish ReidSoftware Engineer
A MANIFESTO   •  Perforce As A Platform:      •    Extensible – P4D is only the beginning…      •    Open – standards-base...
A MOTIVATING PROBLEM   Your business needs to implement workflow and     standards support across the enterprise:   •    S...
A MOTIVATING PROBLEM   •  Do you use:      •    Perforce triggers (with Python or shell scripts, etc.)?      •    The brok...
THE SOLUTION   P4WSP: The Perforce Web Services Platform:   •  URI access to Perforce resources, objects, and      service...
P4WSP: HTTP URL ACCESS TO PERFORCE   •  Resources:        •  Full RESTful CRUD access        •  HTTP GET / PUT / POST / DE...
P4WSP: THE EXTENSIBLE PERFORCE PLATFORM   •  Standard Java JEE container:      •  P4WSP proxy container mediates access to...
P4WSP: USAGE MODELS – REST & URLS    •  Web browsers:       •  Simple depot browsers (a la p4web)       •  Complex full-fe...
P4WSP: USAGE MODELS – EXTENSIONS   •  Interceptors:      •  Form type field validators      •  Form rewrites (e.g. new / c...
A P4WSP APP EXAMPLE: “THE COMMONS”    •  “Versioning for the rest of us…”:       •    Hides Perforce (Perforce? What’s Per...
SUMMING UP   •  P4WSP presents Perforce as a platform:      ü  Standard      ü  Accessible      ü  Extensible      ü  ...
Upcoming SlideShare
Loading in …5
×

Perforce Web Services

1,063 views

Published on

Get an in-depth look at the new Perforce Web Services framework. Learn about the architecture, extension points, use cases, and underlying technology, as well as how it supports third-party integrations with the Perforce Server. This session will also demonstrate Perforce Web Services support for HTTP REST access to Perforce resources and services using JSON and/or XML.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,063
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
60
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Perforce Web Services

  1. 1. P4WSP: The Perforce WebServices PlatformHamish ReidSoftware Engineer
  2. 2. A MANIFESTO •  Perforce As A Platform: •  Extensible – P4D is only the beginning… •  Open – standards-based access and extensions •  Seamless integration – Perforce? What’s Perforce? •  Smart – do the right things in the right place •  (Uniform) Access Everywhere: •  HTTP / HTTPS access to objects and services •  URLs are the common currency for everything
  3. 3. A MOTIVATING PROBLEM Your business needs to implement workflow and standards support across the enterprise: •  Standard technologies / standard developers •  Drag-and-drop “grab and share” for non-techies •  Policy-based – e.g. “no Open Source code submits” •  Browser-based tools where possible •  Open / flexible / extensible implementation
  4. 4. A MOTIVATING PROBLEM •  Do you use: •  Perforce triggers (with Python or shell scripts, etc.)? •  The broker? •  A custom standalone solution based on a P4 API? •  Something else, perhaps involving bits of baling wire and string? •  Or do you use a hosted middleware app that’s: •  Based on an industry-standard platform (JEE) •  Flexible, policy-driven, configurable / updateable on the fly… using standard patterns and technologies •  Integrated into the Perforce world •  Integrated into the Enterprise universe •  Accessible using URLs only (no special APIs)?
  5. 5. THE SOLUTION P4WSP: The Perforce Web Services Platform: •  URI access to Perforce resources, objects, and services; •  Extensible JEE platform: •  Extensible Perforce services and resources •  App hosting with integrated Perforce support
  6. 6. P4WSP: HTTP URL ACCESS TO PERFORCE •  Resources: •  Full RESTful CRUD access •  HTTP GET / PUT / POST / DELETE usage •  Services – non-REST URI access •  Command parameters as URI query parameters •  Request and result payloads as XML, JSON, HTML •  Examples: http://localhost:8080/p4/resources/clients?user=“hreid” http://localhost:8080/p4/resources/clients/hreid-test-111 http://localhost:8080/p4/services/list?files="//depot/dev/jteam/..."
  7. 7. P4WSP: THE EXTENSIBLE PERFORCE PLATFORM •  Standard Java JEE container: •  P4WSP proxy container mediates access to P4D •  Multiple P4D servers possible •  Eclipse Virgo with OSGI and Spring plumbing / support •  Defined extension points: •  OSGI bundles, Java packages •  Custom agents implement actions / operations •  Interceptors implement data transforms / filters •  Authentication •  Extension support: •  P4D command / result canonicalization •  OSGI lifecycles
  8. 8. P4WSP: USAGE MODELS – REST & URLS •  Web browsers: •  Simple depot browsers (a la p4web) •  Complex full-feature browser-based apps •  Javascript / JSON, HTML 5, XML support •  Other JEE apps: •  XML, etc. •  Standalone apps (e.g. P4Eclipse)
  9. 9. P4WSP: USAGE MODELS – EXTENSIONS •  Interceptors: •  Form type field validators •  Form rewrites (e.g. new / changed fields in jobs) •  P4D command augmentation, aggregation, or replacement, e.g.: •  Check for Open Source usage on submits (Black Duck) •  Single-step complex integrate / resolve •  Tie-ins with jobs / issues systems •  Cross-server commands •  Caching, events •  New services: •  P4D-related … or not.
  10. 10. A P4WSP APP EXAMPLE: “THE COMMONS” •  “Versioning for the rest of us…”: •  Hides Perforce (Perforce? What’s Perforce?!...) •  Drag and drop grab and share (edit / submit) •  Submit to common icon •  No concept of “depot”, “server”, “client”, etc. Policy- based resolves, integrates, etc. •  URL-based access everywhere: •  All resources and services accessed as URLs or icons. •  URLs passed around via email, SMS, web browsers. •  Heavily reliant on P4WSP: •  Listing / browsing / client editing •  App hosting
  11. 11. SUMMING UP •  P4WSP presents Perforce as a platform: ü  Standard ü  Accessible ü  Extensible ü  Open •  P4WSP enables: •  Browser-based apps •  Middleware apps and logic •  Smart functionality factoring •  A seamless user experience.

×