67
@windley The University API Phillip J. Windley, Ph.D. Brigham Young University h>p://www.windley.com

WSO2 Guest Webinar: Designing and Developing a University API

Embed Size (px)

Citation preview

Page 1: WSO2 Guest Webinar: Designing and Developing a University API

@windley

The University API PhillipJ.Windley,Ph.D.BrighamYoungUniversityh>p://www.windley.com

Page 2: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Designing and Developing a University API

Nuwan Bandara Solutions Architect WSO2 inc. @nuwanbando

Phil Windley Enterprise Architect Brigham Young University @windley

Page 3: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Page 4: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Page 5: WSO2 Guest Webinar: Designing and Developing a University API

@windley 5

SoCwareisEaEngtheWorld!More and more major businesses and industries are being run on so;ware and delivered as online services—from movies to agriculture to naAonal defense. Many of the winners are Silicon Valley-style entrepreneurial technology companies that are invading and overturning established industry structures. Over the next 10 years, I expect many more industries to be disrupted by so;ware, with new world-beaAng Silicon Valley companies doing the disrupAon in more cases than not. - Marc Andreessen

Page 6: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Page 7: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Page 8: WSO2 Guest Webinar: Designing and Developing a University API

@windley

{“answer”: “University API”}

Page 9: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Page 10: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Googlehttp://facebook.com

Web Page Title

1.Lorem ipsum dolor sit amet consectateur nonummy lorenzino.

2.Interdum volgus videt, est ubi peccat. 3.Si veteres ita miratur laudatque poetas4.Ut nihil anteferat, nihil illis comparet, errat. 5.Si quaedam nimis antique

• Alpha• Bravo• Charlie• Delta• Echo• Foxtrot• Golf• Hotel• India• Juliet• Kilo• Lima• Mike• November• Oscar• Papa• Quebec• Romeo• Sierra• Tango• Uniform• Victor• Whiskey• X-Ray• Yankee• Zulu

Page 11: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Googlehttp://facebook.com

Web Page Title

1.Lorem ipsum dolor sit amet consectateur nonummy lorenzino.

2.Interdum volgus videt, est ubi peccat. 3.Si veteres ita miratur laudatque poetas4.Ut nihil anteferat, nihil illis comparet, errat. 5.Si quaedam nimis antique

• Alpha• Bravo• Charlie• Delta• Echo• Foxtrot• Golf• Hotel• India• Juliet• Kilo• Lima• Mike• November• Oscar• Papa• Quebec• Romeo• Sierra• Tango• Uniform• Victor• Whiskey• X-Ray• Yankee• Zulu

Carrier 12:00 PM

1. Lorem ipsum dolor sit amet consectateur nonummy lorenzino.

2. Interdum volgus videt, est ubi peccat.

3. Si veteres ita miratur laudatque poetas

4. Ut nihil anteferat, nihil illis comparet, errat.

5. Si quaedam nimis antique

API

Page 12: WSO2 Guest Webinar: Designing and Developing a University API

@windley

API

Googlehttp://facebook.com

Web Page Title

1.Lorem ipsum dolor sit amet consectateur nonummy lorenzino.

2.Interdum volgus videt, est ubi peccat. 3.Si veteres ita miratur laudatque poetas4.Ut nihil anteferat, nihil illis comparet, errat. 5.Si quaedam nimis antique

• Alpha• Bravo• Charlie• Delta• Echo• Foxtrot• Golf• Hotel• India• Juliet• Kilo• Lima• Mike• November• Oscar• Papa• Quebec• Romeo• Sierra• Tango• Uniform• Victor• Whiskey• X-Ray• Yankee• Zulu

Carrier 12:00 PM

1. Lorem ipsum dolor sit amet consectateur nonummy lorenzino.

2. Interdum volgus videt, est ubi peccat.

3. Si veteres ita miratur laudatque poetas

4. Ut nihil anteferat, nihil illis comparet, errat.

5. Si quaedam nimis antique

API

Carrier 12:00 PM

1. Lorem ipsum dolor sit amet consectateur nonummy lorenzino.

2. Interdum volgus videt, est ubi peccat.

3. Si veteres ita miratur laudatque poetas

4. Ut nihil anteferat, nihil illis comparet, errat.

5. Si quaedam nimis antique

Page 13: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Page 14: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Page 15: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Page 16: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Page 17: WSO2 Guest Webinar: Designing and Developing a University API

@windley 17

BakeyourbusinessmodelintoyourAPI-JohnMusserFounder,ProgrammableWeb

“ ”

Principle #1: Design Business-Oriented APIs

Page 18: WSO2 Guest Webinar: Designing and Developing a University API

@windley

collection

resourceresourceresource

A Collection with Resources

collection

A Sub-collection with Sub-resources

resource

sub-collectionresource

Page 19: WSO2 Guest Webinar: Designing and Developing a University API

@windley

/students/instructors/courses/classes/locations/programs/colleges/departments

Page 20: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Page 21: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Principle #2: Ensure interfaces are open, extensible, and published

Page 22: WSO2 Guest Webinar: Designing and Developing a University API

@windley

GET /studentsGET /students?major=CS

GET /students/:idGET /students/:id?fieldset=transcripts

Page 23: WSO2 Guest Webinar: Designing and Developing a University API

@windley

POST /students

{id: ... first_name: ... last_name: ... ...

}

Page 24: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Page 25: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Principle #3: Support student and faculty choice.

Page 26: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Page 27: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Page 28: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Principle #4: Access Control Happens at the API

Page 29: WSO2 Guest Webinar: Designing and Developing a University API

@windley

User

Policy Administrator

PEP

PDP

PAP

EnforcePolicy Enforcement Point

DecidePolicy Decision Point

ManagePolicy Administration Point

Page 30: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Page 31: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Page 32: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Authorization Server

Owner

Client

5. code

TOKEN

4. code

2. redirect

1. use 3. authorize

6.

data

request TOKEN

Resource Server

Client

Page 33: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Page 34: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Principle #5: Keep workflow below the API

Page 35: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Page 36: WSO2 Guest Webinar: Designing and Developing a University API

@windley

ProceedCancel ProceedCancel

MWF Alexa Smith02:30pM-03:20PMMATH-105-150 Calculus I

MWFMATH-105-150 Dean Brown12:30PM-01:20PMCalculus I

Alexa SmithMATH-105-150 09:30AM-10:20AMCalculus I MWF

Alexa Smith

TIMEDAY

MATH-105-150 08:30AM-09:20AMCalculus I MWF

TITLE InstructorCOURSE

MWF Alexa Smith02:30pM-03:20PMMATH-105-150 Calculus I

MWFMATH-105-150 Dean Brown12:30PM-01:20PMCalculus I

Alexa SmithMATH-105-150 09:30AM-10:20AMCalculus I MWF

Alexa Smith

TIMEDAY

MATH-105-150 08:30AM-09:20AMCalculus I MWF

TITLE InstructorCOURSE

Missing Prerequisite

Sorry, we can’t add Math 106 to your schedule.

You’re missing a prerequisite: Math 105.

We can automatically make the change for you if you like by removing Math 106 and adding Math 105. Please select from one of the options below:

Page 37: WSO2 Guest Webinar: Designing and Developing a University API

@windley

HATEOAS Hypertext as the Engine of ApplicaAon State

Page 38: WSO2 Guest Webinar: Designing and Developing a University API

@windley

An ever expanding range of compuAng plaZorms are needed

to reach students

Page 39: WSO2 Guest Webinar: Designing and Developing a University API

@windleySource:MorganStanleyMobileInternetReport(12/09)

Page 40: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Hundreds, even thousands of developers who don’t work for you must be convinced to adapt your product to the dynamic environment of various apps

Page 41: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Page 42: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Page 43: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Principle #7: Cloud First

Page 44: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Page 45: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Principle #8: Security is Too Important to Not Outsource

Page 46: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Page 47: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Page 48: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Principle #9: Focus on What’s Core

Page 49: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Page 50: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Principle #10: APIs First

Page 51: WSO2 Guest Webinar: Designing and Developing a University API

@windley

API Client

API Manager / ESB / etc.

Service CompositionThrottlingAttribute Based Access Control

AuthenticationAuthorizationAddress AbstractionMonitoringPolicy EnforcementData TransformationProtocol Transformation

C Framework

PeopleSoft

Alfresco

Business Objects

Service Now

Custom Services

Java, PHP, etc.

Other Cam

pus Contributors (Library, Bookstore, etc)

Domain APIs

SOAPXMLRPC

SOAPSOAPXML RPC

REST REST

Domains

University API (REST)

Page 52: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Page 53: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Principle #11: Start Where You Are

Page 54: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Page 55: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Principles for StarAng an API IniAaAve 1.  Designbusiness-orientedAPIs2.  Ensureinterfacesareopen,extensible,andpublished3.  Supportstudentandfacultychoice.4.  ControlaccessattheAPI5.  KeepworkflowbelowtheAPI6.  Makedevelopersthecustomer7.  Becloudfirst8.  Securityistooimportanttonotoutsource9.  Focusonwhat’score10. BuyandbuildAPIfirst11. Startwhereyouare

Page 56: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Resources

• MashupCorporaEons’•  ThePhoenixProject•  ImplemenEngDomainDrivenDesign• KinLaneonUniversityAPIs• windley.com

Page 57: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Join us on this journey •  @UniversityAPI• UniversityAPIWorkshops

•  Utah,February2017•  ChicagoSummer2017

Page 58: WSO2 Guest Webinar: Designing and Developing a University API

@windley

The enterprise integration ecosystem ❏ Connecting with research data clusters via different

protocols

❏ Exposing student data through APIs for different schools

within the university

❏ Providing computation as a service

❏ Providing storage services for academic staff

❏ Gov. cloud integration for research data

❏ Partner integration

Page 59: WSO2 Guest Webinar: Designing and Developing a University API

@windley

The reference architecture

Page 60: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Operationalize the platform ❏ Automation

❏ Environment separation

❏ Production deployment

❏ Scalability & high availability

Page 61: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Automation

Page 62: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Environment separation

Page 63: WSO2 Guest Webinar: Designing and Developing a University API

@windley

SDLC and API LC

Page 64: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Multi-DC deployment

Page 65: WSO2 Guest Webinar: Designing and Developing a University API

@windley

The University API PhillipJ.Windley,Ph.D.BrighamYoungUniversityh>p://www.windley.com

Page 66: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Other issues

• OtheruniversityAPIs:serviceslikelockers,vendingmachines,health,payments,HR,calendars,assets,library,collecEons

Page 67: WSO2 Guest Webinar: Designing and Developing a University API

@windley

Phillip J. Windley, Ph.D. Brigham Young University [email protected] 801.362.5611