open knowledge initiative n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Open Knowledge Initiative PowerPoint Presentation
Download Presentation
Open Knowledge Initiative

Loading in 2 Seconds...

play fullscreen
1 / 64

Open Knowledge Initiative - PowerPoint PPT Presentation


  • 108 Views
  • Uploaded on

Open Knowledge Initiative. Scott Thorne (thorne@mit.edu) Jeff Kahn (jeffkahn@mit.edu). Topics. Architectural Overview Assumptions Goals Design Benefits Applying O.K.I.™. Assumptions. Things Change New Services & Functions Method of Accessing Services More Central Software Services

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Open Knowledge Initiative' - chione


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
open knowledge initiative

Open Knowledge Initiative

Scott Thorne (thorne@mit.edu)

Jeff Kahn (jeffkahn@mit.edu)

topics
Topics
  • Architectural Overview
    • Assumptions
    • Goals
    • Design
    • Benefits
  • Applying O.K.I.™
assumptions
Assumptions
  • Things Change
    • New Services & Functions
    • Method of Accessing Services
    • More Central Software Services
      • Authorization, Calendaring, etc.
    • Evolving Systems
      • Definition
more assumptions
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
goals
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
possible integration goals
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
data and functional specification
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!
systems exchanging data
Systems Exchanging Data

System A

System B

1

2

osids

Example

OSIDs
  • Definitions

OSID

osids1

Example

OSIDs
  • Definitions
  • Implementations

OSID

public class Factory

implements

org.okip.service.APIName.api.Factory {

private static final blah blah bhal

private static final yada yada yada

} …

Service

Implementation

Infrastructure

service based architecture

Example

Service-Based Architecture

…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

OSID

public class Factory

implements

org.okip.service.Example.api.Factory {

private static final blah blah bhal

private static final yada yada yada

} …

Service

Implementation

Infrastructure

the osid approach
The OSID Approach
  • OSID are Interfaces only, not Implementations
  • Code Reuse
  • Could Achieve Real-time Integration
  • Clean Separation or Boundaries
  • Minimizes Impacts of Changes
a client side osid and a remote service
A client-side OSID and a remote service

Remote Machine

Group

Data Store

common service level osids
Common Service Level OSIDs
  • Allows Integration with Enterprise Services
  • Adapts to Multiple Standards
  • Allows Several Sites to Share Services
  • Independence from Changing Technology
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

The OSIDs
group integration

Group Function

Group Function

Group Integration

System A

System B

Group Service

implementation supporting multiple protocols

OSID X

OSID X

Implementation Supporting Multiple Protocols

SRMI

SOAP

Infrastructure Service

Supporting both SRMI

And SOAP

same application using different implementations

Service 1

Service 2

Service 1

Service 2

Same Application Using Different Implementations

Application A

Application A

independent or tightly coupled implementations

AuthN

AuthZ

AuthN

AuthZ

Independent or Tightly Coupled Implementations

Application A

Application A

varying granularity of service exposure

Application Z

Assess

AuthN

AuthZ

C.M.

Etc.

AuthZ

Assess

C.M.

Etc.

Varying Granularity of Service Exposure

Application Y

“LMS”

overall benefits
Overall Benefits
  • Stable and Well-Known Integration Points
  • Common Factoring of Domain
  • Code Reuse
  • Reduced Risk
  • Matched Expectations
  • Shorter Development Cycle / Lower Cost
benefits of osids for enterprise it
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
benefits of osids for the developer and development manager
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?
benefits of osids for the vendor
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
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

Topics Covered
slide36

User-Facing

Application

Single

Team

Back-End Systems

Integration

slide37

User-Facing

Application

Applications

Team

OSID

Back-End Systems

Integration

Implementations

Team

course management system single purpose communication
Course Management System(Single Purpose Communication)

Authenticate

Course

Management

End User

Application

Authorize

SQL

Course

Catalog

Authorization

Authentication

communication through osids
Communication Through OSIDs

CourseMgmt

Course

Management

End User

Application

Authenticate

Authorize

SQL

Course

Catalog

Authorization

Authentication

stand alone osid implementations
Stand-Alone OSID Implementations

CourseMgmt

Course

Management

Course

Management

End User

Application

Authenticate

Authorize

SQL

Course

Catalog

Authorization

Authentication

system migration
System Migration

Course

Management

CourseMgmt

End User

Application

Authenticate

Authorize

New Course

Management

SQL

Course

Catalog

Authorization

Authentication

series a infrastructure
Series (A) Infrastructure

CourseMgmt (A)

Course

Management

End User

Application

Authentication (A)

Authorization (A)

SQL (A)

Course

Catalog

Authorization

Authentication

series a and b
Series (A) and (B)

CourseMgmt (A)

Course

Management

End User

Application

Authentication (B)

Authorization (A)

SQL (B)

Course

Catalog

Authorization

Authentication

testing
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
debugging
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
performance and scalability
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
configuration
Configuration
  • Selection of implementation to use
  • Implementation configuration
  • Sharable context
  • Adapters
configuration mechanisms
Configuration Mechanisms

User-Facing Application

Xxx OSID

Implementation

Yyy OSID

Implementation

XxxManager.properties

YyyManager.properties

Owner

Context

configuration using adapters
Configuration Using Adapters

User-Facing Application

OSID “A” Implementation

Adapter

OSID “A” Implementation

OSID “B” Implementation

Back-End Services

software development training
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
new versions are supersets
New Versions are Supersets

Version 1.1

OSID “A”

Version 1.0

typical layered solution
Typical Layered Solution

User-Facing Application

Assessment OSID v1.0

(Implementation “A”)

Repository OSID v1.0

(Implementation “A”)

Back-End Services

substituting implementations of the same osid version
Substituting Implementations of the Same OSID Version

User-Facing Application

Assessment OSID v1.0

(Implementation “A”)

Repository OSID v1.0

(Implementation “B”)

Back-End Services

impact of an implementation of a newer osid version on a low layer
Impact of an Implementation of a Newer OSID Version on a Low Layer

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 at a high layer
Impact of an Implementation of a Newer OSID Version at a High Layer

User-Facing Application

Assessment OSID v1.1

(Implementation “A”)

Repository OSID v1.0

(Implementation “A”)

Back-End Services

combination of a new osid version implementations and an adapter
Combination of a New OSID Version Implementations and an Adapter

User-Facing Application

Assessment OSID v1.1

(Implementation “A”)

Adapter

Repository OSID v1.0

(Implementation “A”)

Back-End Services

build vs reuse
Build vs Reuse
  • Inventory of reusable applications and implementations
  • Institutional context
  • Team’s skills and priorities
  • Architectural design issues
development team and context
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
design questions
Design Questions
  • Which OSIDs and other interfaces
  • Which methods
  • Which Types
  • What Ids
  • Which language
  • Local implementation?
  • Layering
technical topics
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
support resources
Support Resources
  • http://web.mit.edu/oki
  • https://sourceforge.net/projects/okiproject
    • OSIDs
    • Documentation
    • Implementations
    • Discussion
  • oki-info@mit.edu