Top Banner
Open Knowledge Initiative Scott Thorne ([email protected]) Jeff Kahn ([email protected])
64

Open Knowledge Initiative Scott Thorne ([email protected]) Jeff Kahn ([email protected])

Dec 21, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Open Knowledge Initiative

Scott Thorne ([email protected])

Jeff Kahn ([email protected])

Page 2: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Topics

Architectural Overview Assumptions Goals Design Benefits

Applying O.K.I.™

Page 3: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Assumptions

Things Change New Services & Functions Method of Accessing Services More Central Software Services

Authorization, Calendaring, etc.

Evolving Systems Definition

Page 4: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

More Assumptions

All Enterprises won’t have the same Technologies

All Enterprise Systems won’t use the same Technology

The need for sharing will grow Differing “connectedness” Not Web only

Page 5: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Goals

Better Integration Allow data to be exchanged Allow software to be integrated

Predictable Evolution Allow for changing functionality Minimize the negative impacts

Expanding Market Possibilities

Page 6: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Possible Integration Goals

Allow enterprise systems to exchange & synchronize information

Allow different organizations to exchange & synchronize information

Allow systems to use enterprise services Allow for modular software which plugs

into a known framework Single system responsible for information

Page 7: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Data and Functional Specification

Data standards serve two goals Data exchange inter/intra enterprise

Both Data & Function needed for all Goals Data duplication and propagation

data specifications can’t address all issues Both Needed for Interoperability

And more!

Page 8: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Systems Exchanging Data

System A System B

1 2

Page 9: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Systems Integrated Functionally

System A System B

2

Page 10: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

OSIDs

Definitions

ExampleOSID

Page 11: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

OSIDs

Definitions Implementations

Service

OSID

Implementation

Infrastructure

public class Factory implements org.okip.service.APIName.api.Factory { private static final blah blah bhal

private static final yada yada yada } …

Example

Page 12: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Service-Based Architecture

public class Factory implements org.okip.service.Example.api.Factory { private static final blah blah bhal

private static final yada yada yada } …

ExampleOSID

…org.okip.service.shared.api.Thing things = myFactory.getSomething();

if (null != thingss) { for (int i = 0; things.length != i; i++) { out.println(things[i]); System.err.println(types[i]); } } …

Application

Implementation

Infrastructure

Service

Page 13: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

The OSID Approach

OSID are Interfaces only, not Implementations

Code Reuse Could Achieve Real-time Integration Clean Separation or Boundaries Minimizes Impacts of Changes

Page 14: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

A single application with a module of functionality

Group

Page 15: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

An application using an OSID internally, but with no real benefit

Group

Page 16: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

The module is outside the application, but still local

Group

Page 17: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

A client-side OSID and a remote service

Group

Remote Machine

Data Store

Page 18: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Integration of two applications with a single service

Group

App 1 App 2

Page 19: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Introduction of a common tool for Group management

Group

App 1 App 2GroupMgmtTool

Page 20: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Group maintenance can be removed from applications

Group

App 1 App 2GroupMgmtTool

Page 21: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Common Service Level OSIDs

Allows Integration with Enterprise Services Adapts to Multiple Standards Allows Several Sites to Share Services Independence from Changing Technology

Page 22: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

The OSIDs“Common Services”

Agent Authentication Authorization Id Scheduling User Messaging Workflow Dictionary Filing Hierarchy Logging SQL

“Educational Services”

Course Management Digital Repository Assessment Grading

Page 23: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Kerb5

One Application Using Multiple Implementations of One API

X509

AuthN

App

Page 24: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Two Back End Systems –Single Access Method

CourseMgmt

EnrollmentApp.

SIS System HR System

Page 25: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Group Integration

Group Function Group Function

Group Service

System A System B

Page 26: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Implementation Supporting Multiple Protocols

OSID X OSID X

SRMI SOAP

Infrastructure ServiceSupporting both SRMI

And SOAP

Page 27: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Same Application Using Different Implementations

Service 1 Service 2

Application A

Service 1 Service 2

Application A

Page 28: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Independent or Tightly Coupled Implementations

AuthN AuthZ AuthN AuthZ

Application A Application A

Page 29: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

“LMS”

Varying Granularity of Service Exposure

Assess

Application Y

AuthN AuthZ

C.M. Etc.

AuthZ

Assess

Application Z

C.M. Etc.

Page 30: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Overall Benefits

Stable and Well-Known Integration Points Common Factoring of Domain Code Reuse Reduced Risk Matched Expectations Shorter Development Cycle / Lower Cost

Page 31: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Benefits of OSIDs for Enterprise IT

Provides enterprise integration strategy Define responsibilities between application developers

and enterprise infrastructure Centralize a function or service

Enforce uniform business logic

Predictable technology migration Costs, resources, process

Structures vendor delivrables (RFP) Integrate two applications with overlapping functions

Page 32: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Benefits of OSIDs for the Developer and Development Manager

Allows tracking of progress Does the application call the xyz OSID? Who is working on the xyz implementation? Is the xyz OSID implementation done?

Provides a context for project metrics How’s the performance of the xyz implementation? How many OSIDs / implementations are done?

Page 33: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Benefits of OSIDs for the Vendor

Create a product that can adapt to many customers’ environments

Separate application issues from enterprise infrastructure

Create an integration point Create means for integration with other vendor’s

products

Page 34: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Applying O.K.I.™

Page 35: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Topics Covered

Organizing for Applications and Implementations

Legacy Migration Testing Debugging Performance and

Scalability

Configuration Software Development

Training Release Management -

When OSIDs Change Build vs Reuse Technical Issues Support Resources

Page 36: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

User-FacingApplication

Back-End SystemsIntegration

Single

Team

Page 37: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

User-FacingApplication

Back-End SystemsIntegration

Applications

Team

Implementations

Team

OSID

Page 38: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Legacy Migration

Page 39: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Course Management System(Single Purpose Communication)

CourseCatalog

AuthorizationAuthentication

SQL

Authenticate

Authorize

CourseManagement End User

Application

Page 40: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Communication Through OSIDs

CourseCatalog

AuthorizationAuthentication

SQL

Authenticate

Authorize

CourseManagement End User

Application

CourseMgmt

Page 41: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Stand-Alone OSID Implementations

CourseCatalog

AuthorizationAuthentication

SQL

Authenticate

Authorize

CourseManagement End User

Application

CourseMgmtCourse

Management

Page 42: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

System Migration

CourseCatalog

AuthorizationAuthentication

SQL

Authenticate

Authorize

CourseManagement End User

Application

New CourseManagement

CourseMgmt

Page 43: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Series (A) Infrastructure

CourseCatalog

AuthorizationAuthentication

SQL (A)

Authentication (A)

Authorization (A)

CourseManagement End User

Application

CourseMgmt (A)

Page 44: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Series (A) and (B)

CourseCatalog

AuthorizationAuthentication

SQL (B)

Authentication (B)

Authorization (A)

CourseManagement End User

Application

CourseMgmt (A)

Page 45: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Testing

Reuse tests since OSIDs are stable Complete test plan before development is complete

no interface feature creep

Tests with sample values can help developers Reuse tests within and across institutions Good tests lower risks in reusing implementation

Page 46: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Debugging

Problem determination can be a significant challenge in complex systems

New code is a source of bugs Reuse of validate components reduces

supply of bugs OSIDs compartmentalized functionality and

limit scope in search for bugs

Page 47: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Performance and Scalability

Architecture envisions relatively few implementations and relatively many applications

Reuse spreads investment in well performing, scalable implementations across more deployments

All dependant applications benefit from enhancements

Page 48: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Configuration

Selection of implementation to use Implementation configuration Sharable context Adapters

Page 49: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

User-Facing Application

XxxManager.properties YyyManager.properties

Xxx OSIDImplementation

Yyy OSIDImplementation

OwnerContext

Configuration Mechanisms

Page 50: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

User-Facing Application

OSID “A” Implementation Adapter

Back-End Services

OSID “B” ImplementationOSID “A” Implementation

Configuration Using Adapters

Page 51: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Software Development Training

Keeping current is a continuing challenge Stable abstractions and factoring across technology cycles OSID implementations deal with back-end systems;

generally the longest shelf-life Consistent approach across OSIDs results in higher reuse of

skills

Page 52: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Release ManagementWhen OSIDs Change

Page 53: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Version 1.0

Version 1.1

OSID “A”

New Versions are Supersets

Page 54: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

User-Facing Application

Assessment OSID v1.0(Implementation “A”)

Repository OSID v1.0(Implementation “A”)

Back-End Services

Typical Layered Solution

Page 55: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

User-Facing Application

Assessment OSID v1.0(Implementation “A”)

Repository OSID v1.0(Implementation “B”)

Back-End Services

Substituting Implementations of the Same OSID Version

Page 56: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

User-Facing Application

Assessment OSID v1.0(Implementation “A”)

Repository OSID v1.1(Implementation “A”)

Back-End Services

Impact of an Implementation of a Newer OSID Version on a Low Layer

Page 57: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

User-Facing Application

Repository OSID v1.0(Implementation “A”)

Assessment OSID v1.1(Implementation “A”)

Back-End Services

Impact of an Implementation of a Newer OSID Version at a High Layer

Page 58: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

User-Facing Application

Assessment OSID v1.1(Implementation “A”)

AdapterRepository OSID v1.0(Implementation “A”)

Back-End Services

Combination of a New OSID Version Implementations and an Adapter

Page 59: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Build vs Reuse

Inventory of reusable applications and implementations

Institutional context Team’s skills and priorities Architectural design issues

Page 60: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Development Team and Context

Requisite expertise Best use of limited resources Will reuse foster adoption Is reuse mandated Is reuse faster Can new implementation be tested and

supported

Page 61: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Design Questions

Which OSIDs and other interfaces Which methods Which Types What Ids Which language Local implementation? Layering

Page 62: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Technical Topics

Object Lifecycle OsidManager, Persistence, Managing Objects, Static and Dynamic

Binding Integrating Objects and Approaches

Ids, Types, Properties, Owner Context, Out-of-Band Agreements Iterators Exceptions Solution Organization and Configuration Transactions Serialization

Page 63: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Support Resources

http://web.mit.edu/oki https://sourceforge.net/projects/okiproject

OSIDs Documentation Implementations Discussion

[email protected]

Page 64: Open Knowledge Initiative Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu)

Questions