using apis

19
Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Using APIs

Upload: akana

Post on 07-Aug-2015

44 views

Category:

Internet


1 download

TRANSCRIPT

Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.

Using APIs

Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.

Slide 2

A Case Study – SOA Software (My Keynote)

• SOA Software built its first product in 2002• Thriving software product business

– Direct Sales to Enterprise– On premise

• Profitable

April 15, 2023

Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.

Slide 3

What kept us awake

• Should we build an API?• What API should we build?• How do we manage this new channel? • How do we get people to use the API?

April 15, 2023

Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.

Slide 4

Existing Technology Investment

• Java stack, slightly left of center– OSGi– Spring– MVC– SOAP API set

• Why?– Robust– Fits in with Enterprise deployment and operational models, Java is

common– Can run on an App server as well as plain OS– Stable resource pool

April 15, 2023

Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.

Slide 5

Architecture - API First

• An API-first design• Designed with the intent of being open, public• REST-based• Supporting both XML and JSON (on Accept header)• Multi-channel

April 15, 2023

Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.

Slide 6

Architecture - Model

• XML Model, based on formalized schema• Generated Java Model (JAXB) used by JAX-RS for both XML and

JSON– Keeps things consistent and allows us to formalize change

management for a published API

April 15, 2023

Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.

Slide 7

Architecture – Java Integration Layer

• JAX-RS – XML and JSON bindings• Spring

– Wiring– Security Policies– Publication (!)

• OSGI– Container– Platform independence– Modularity– Extensibility– Packaging, Upgrades, etc

April 15, 2023

Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.

Slide 8

Architecture – UI Framework

• Customizable, extensible server-side theme and layout management for multi-tenancy– Themes– Views– Widgets

• Backbone.js model• Handlebars.js view• JQuery *

April 15, 2023

Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.

Slide 9

Architecture – UI Framework

April 15, 2023

{"tenantId": "atmosphere","theme": "default","widgetMetadata": {

"widget.api.addmodifygroup": {"widget": "widget.api.addmodifygroup","styleResources": [ ],"scriptResources": ["widgets/ApiAddModifyGroupWidget/ApiAddModifyGroupWidget.js"]

},"widget.signup": {

"widget": "widget.signup","styleResources": ["widgets/UserWidgets/Signup/signup.css"],"scriptResources": ["widgets/UserWidgets/Signup/SignupWidget.js"]

}},"layoutStructure": [{

"objType": "user",""layout": [

{"widgetInstance": "Main","widget": "widget.horiz.tiling","priority": "100"

},{

"widgetInstance": "Header","widget": "widget.header","parentWidgetInstance": "Main","parent": "widget.horiz.tiling","priority": "1000"

}…..

Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.

Slide 105/24/2012

Platform Architecture

Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.

Slide 11

A digression - Build & Test

• Agile Development Process• Continuous Build - Jenkins• Automated Deploy and Test to the cloud

– ServiceMesh Agility provides the management infrastructure– Jenkins invokes ServiceMesh Agility APIs to spin up VM images in

EC2– Entire installation, configuration, integration process is scripted – Test harnesses are executed– Environment is torn down– Test results posted back via Jenkins as build state– Approx every hour

April 15, 2023

Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.

Slide 12

A digression - Agile Ops

• Multiple datacenters, SaaS and Managed Service, to meet different customer requirements

• EC2 and Terremark • Single point of management via ServiceMesh Agility• Deployment is done from a tag in Jenkins and automated• Once parallel environment is installed, it is switched over

manually• Old environment is torn down after a day

April 15, 2023

Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.

Slide 13

What kept us awake

• Should we build an API? – yes, we could create a new UI and an entire channel strategy without throwing away our existing technology

• What API should we build? – a REST/JSON API to fully support our UI, mobile devices, etc.

• How do we manage/secure/monitor this new channel? • How do we get people to use the API? How do we promote it?

April 15, 2023

Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.

Slide 14

API Management protects your APIs and helps ensure their performance

API Management

Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.

Slide 15

API Management - Capabilities

Security

Monitoring

Provisioning

QoS Management

Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.

Slide 16

What kept us awake

• Should we build an API? – yes, we could create a new UI and an entire channel strategy without throwing away our existing technology

• What API should we build? – a REST/JSON API to fully support our UI, mobile devices, etc.

• How do we manage/secure/monitor this new channel? – use the API Management capabilities within our own product

• How do we get people to use the API? How do we promote it?

April 15, 2023

Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.

Slide 17

Community Capabilities

Social Interaction

Forums

Support

Collaboration

Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.

Slide 18

What kept us awake

• Should we build an API? – yes, we could create a new UI and an entire channel strategy without throwing away our existing technology

• What API should we build? – a REST/JSON API to fully support our UI, mobile devices, etc.

• How do we manage/secure/monitor this new channel? – use the API Management capabilities within our own product

• How do we get people to use the API? How do we promote it? – use the Community Management capabilities within our own product

April 15, 2023

Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.

Slide 19

Thanks

• Alistair Farquharson, CTO, SOA Software• [email protected]• @afarqu• @atmos_phe_re • @SOASoftwareInc

April 15, 2023