Blackboard Building Blocks™: Data Integration and Administration Raymond Peterson, Blackboard, Inc.

Slides:



Advertisements
Similar presentations
Walkthrough of Java APIs Presented By Tracy Engwirda 28 September, 2005.
Advertisements

A Toolbox for Blackboard Tim Roberts
JavaScript FaaDoOEngineers.com FaaDoOEngineers.com.
B2: Storage and Compatibility John Knight Blackboard, Inc.
A Blackboard Building Block™ Crash Course for Web Developers
Lesson 17: Configuring Security Policies
My First Building Block Presented By Tracy Engwirda 28 September, 2005.
Blackboard Building Blocks Authentication Overview Tuesday, June 30, 2015 Tom Joyce, Product Manager, Platform Architecture & Database.
Chapter 7 Managing Data Sources. ASP.NET 2.0, Third Edition2.
Working with SQL and PL/SQL/ Session 1 / 1 of 27 SQL Server Architecture.
MCTS Guide to Microsoft Windows Server 2008 Network Infrastructure Configuration Chapter 7 Configuring File Services in Windows Server 2008.
Enterprise Reporting with Reporting Services SQL Server 2005 Donald Farmer Group Program Manager Microsoft Corporation.
11 REVIEWING MICROSOFT ACTIVE DIRECTORY CONCEPTS Chapter 1.
9.1 © 2004 Pearson Education, Inc. Exam Planning, Implementing, and Maintaining a Microsoft Windows Server 2003 Active Directory Infrastructure.
© Blackboard, Inc. All rights reserved. Developing Blackboard Building Blocks: Getting Started John Knight Senior Engineer Blackboard Inc. July 18 th.
High-Speed, High Volume Document Storage, Retrieval, and Manipulation with Documentum and Snowbound March 8, 2007.
Lecture 3 – Data Storage with XML+AJAX and MySQL+socket.io
Linux Operations and Administration
© Blackboard, Inc. All rights reserved. My First Building Block as a Content Type Heather Natour Senior Lead Engineer Blackboard Inc. July 18 th 1:30pm.
.NET: Blackboard Collaborations with Microsoft Presented By Jan Poston Day Director, Standards and Interoperability Ramsey Chambers Manager, Business Development.
Membership in ASP.Net...if only Presented by: Patrick Hynds President, CriticalSites Microsoft Regional Director.
Session 5: Working with MySQL iNET Academy Open Source Web Development.
Database Security and Auditing: Protecting Data Integrity and Accessibility Chapter 3 Administration of Users.
Denise Luther Senior IT Consultant Practical Technology Enablement with Enterprise Integrator.
IMS 4212: Application Architecture and Intro to Stored Procedures 1 Dr. Lawrence West, Management Dept., University of Central Florida
Database Programming in Java Corresponds with Chapter 32, 33.
EJB. Component Characteristics An enterprise Bean typically contains business logic that operates on the enterprise’s data. An enterprise Bean’s instances.
Oracle Application Express 3.0 Joel R. Kallman Software Development Manager.
Hands-On Microsoft Windows Server 2008
© Blackboard, Inc. All rights reserved. Security and Authentication Security and Authentication Tracy Engwirda Principal Consultant Blackboard Inc. July.
Uniting Cultures, Technology & Applications A Case Study University of New Hampshire.
Keys to Successful Beta Testing Presented by Ron Dinwiddie, Product Director, Blackboard Commerce Suite™ Jessica Finnefrock, Product Director, Blackboard.
Extending Vista The PowerLinks WebServices SDK John Hallett Senior Product Manager WebCT, Inc
Message-Driven Beans and EJB Security Lesson 4B / Slide 1 of 37 J2EE Server Components Objectives In this lesson, you will learn about: Identify features.
© Blackboard, Inc. All rights reserved. Security and Authentication with Blackboard Building Blocks™ David Ashman Senior Software Architect, Product Development.
J2EE Structure & Definitions Catie Welsh CSE 432
20411B 8: Installing, Configuring, and Troubleshooting the Network Policy Server Role Presentation: 60 minutes Lab: 60 minutes After completing this module,
ABC Insurance Co. Paul Barry Steve Randolph Jing Zhou CSC8490 Database Systems & File Management Dr. Goelman Villanova University August 2, 2004.
11 Web Services. 22 Objectives You will be able to Say what a web service is. Write and deploy a simple web service. Test a simple web service. Write.
Module 14 Configuring Security for SQL Server Agent.
Introduction to JavaServer Pages. 2 JSP and Servlet Limitations of servlet  It’s inaccessible to non-programmers JSP is a complement to servlet  focuses.
Chapter 6 Server-side Programming: Java Servlets
Enterprise JavaBeans Understanding EJB Components Version 0.1 Kamal Wickramanayake
Most information comes from Chapter 3, MySQL Tutorial: 1 MySQL: Part.
1 Chapter Overview Performing Configuration Tasks Setting Up Additional Features Performing Maintenance Tasks.
Section 11: Implementing Software Restriction Policies and AppLocker What Is a Software Restriction Policy? Creating a Software Restriction Policy Using.
Siebel 8.0 Module 2: Overview of EIM Processing Integrating Siebel Applications.
Software Documentation Section 5.5 ALBING’s Section JIA’s Appendix B JIA’s.
1 CS 430 Database Theory Winter 2005 Lecture 2: General Concepts.
“This presentation is for informational purposes only and may not be incorporated into a contract or agreement.”
Java server pages. A JSP file basically contains HTML, but with embedded JSP tags with snippets of Java code inside them. A JSP file basically contains.
Presented by Jessica Finnefrock, Product Director, Blackboard Academic Suite™ April 12, 2005.
Blackboard and Content Types John Knight Blackboard Inc.
Server-side Programming The combination of –HTML –JavaScript –DOM is sometimes referred to as Dynamic HTML (DHTML) Web pages that include scripting are.
Core 3: Communication Systems. Network software includes the Network Operating Software (NOS) and also network based applications such as those running.
IBM TSpaces Lab 2 Customizing tuples and fields. Summary Blocking commands Tuple Expiration Extending Tuples (The SubclassableTuple) Reading/writing user.
Picture This: Community Building with Data Snapshots Tony Harris, Eric Sakai and Megan Tucker Community College of Vermont Vermont State Colleges February.
Troubleshooting Basics for the Blackboard Transaction System™ -Windows Edition Presented By Allan Sonkin Scott Ogden April 14, 2005.
Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Introduction to Data Access with Spring.
Module 6: Administering Reporting Services. Overview Server Administration Performance and Reliability Monitoring Database Administration Security Administration.
Java Programming: Advanced Topics 1 Building Web Applications Chapter 13.
IMS 4212: Constraints & Triggers 1 Dr. Lawrence West, Management Dept., University of Central Florida Stored Procedures in SQL Server.
ISC321 Database Systems I Chapter 2: Overview of Database Languages and Architectures Fall 2015 Dr. Abdullah Almutairi.
Enterprise Java Beans. Contents  Understanding EJBs  Practice Section.
Database and Cloud Security
Java Primer 1: Types, Classes and Operators
Principles of report writing
Enterprise Java Beans.
CMPE/SE 131 Software Engineering March 7 Class Meeting
Presentation transcript:

Blackboard Building Blocks™: Data Integration and Administration Raymond Peterson, Blackboard, Inc.

Now a word from our lawyers… Any statements in this presentation about future expectations, plans and prospects for Blackboard and other statements containing the words "believes," "anticipates," "plans," "expects," "will," and similar expressions, constitute forward-looking statements within the meaning of The Private Securities Litigation Reform Act of Actual results may differ materially from those indicated by such forward-looking statements as a result of various important factors, including the factors discussed in the "Risk Factors" section of our most recent 10-K filed with the SEC. In addition, the forward-looking statements included in this press release represent the Company's views as of April 11, The Company anticipates that subsequent events and developments will cause the Company's views to change. However, while the Company may elect to update these forward-looking statements at some point in the future, the Company specifically disclaims any obligation to do so. These forward- looking statements should not be relied upon as representing the Company's views as of any date subsequent to April 11, Blackboard, in its sole discretion, may delay or cancel the release of any product or functionality described in this presentation.

Overview –Background –APIs –Security and Context –Calling the Event APIs –Demonstration –Summary

Background –Event API is the oldest public API in Blackboard Learning System™ –First released with Blackboard5™ version 5.5 –Same data model as the Snapshot data integration - IMS 1.2 Enterprise Specification –Don’t confuse this with Event Triggers/Callbacks This is a Java API only –New API packages in Release 6, brought into line with Blackboard Building Blocks API –Integration password new in Release 6 for remote client capability

Which API is that? blackboard.*Building Block API blackboard.admin.* Release 6 Event API com.blackboard.event.*Bb 5.5 Event API (deprecated)

Event API in a Nutshell –Similar data model as Building Block™ API –Two main types of objects in the API: entities (objects) persisters (actions) –Entities include the objects that represent data in the system, such as users. –Persisters are behind-the-scenes methods that handle the storage of the entities into a persistent store or transient data format.

Event API Entities –IMS specification – five entities Person (User) Course / Organization Enrollment / Staff assignment / Organization membership Course / organization category Course / organization category membership –Additional Blackboard-specific entities Data Source Portal Role Membership

Building Block vs Event API Event API entities are sub-classes of the Building Block API entities. All entities include rowStatus attribute (e.g., getRowStatus(), setRowStatus()) not found on core data entities java.lang.Object | +-blackboard.data.BbObject | +-blackboard.data.user.UserInfo | +-blackboard.data.user.User | +-blackboard.admin.data.user.Person

Building Block vs Event API Event API persisters are NOT sub-classes of the Building Block API persisters. blackboard.persist.user Interface UserDbLoader All Superinterfaces: –blackboard.persist.Loader blackboard.admin.persist.user Interface PersonLoader All Superinterfaces: –blackboard.persist.Loader

Event API Packages Packages contained in cms-admin.jar

blackboard.admin.data.user Person –Inherits from blackboard.data.user.User –Batch UID (Unique Identifier) is the external system’s primary key blackboard.admin.data. user

blackboard.admin.data.course CourseSite, Organization –Inherits from blackboard.data.course.Course StaffAssignment, Organization Membership –Inherits from blackboard.data.course.CourseMembership Enrollment –Role is Student only blackboard.admin.data. course

blackboard.admin.data.category CourseCategory, OrganizationCategory –Represents a category in a Course or Organization catalog CourseCategoryMembership, OrganizationCategoryMembership –Ties courses and organizations together with Categories blackboard.admin.data. category

Data Source Programmatic equivalent of same entity in Snapshot Explicit instance of the “sourcedid” attribute from the IMS specification Used to “group” logically related entities For example… –Group users by term –Group courses by term –Group by college –… or whatever Always a default “SYSTEM” data source

blackboard.admin.persist.user PersonLoader –Load by BatchUID, Template PersonPersister –changeKey, insert, remove, save, update blackboard.admin.persist. user

blackboard.admin.persist.course CourseSiteLoader, Organization Loader –Load by BatchUID –Load by Template EnrollmentLoader, OrganizationMembershipLoader, StaffAssignmentLoader CourseSitePersister, Organization Persister blackboard.admin.persist. course

blackboard.admin.persist.course In addition to typical persister operations, CourseSitePersister can perform a clone operation (Course Copy): public void clone( java.lang.String srcCrsBatchUid, java.lang.String tgtCrsBatchUid, CloneConfigCloneConfig cfg) Tip: The CloneConfig object controls what areas of a course are copied.

Other Packages blackboard.admin.persist.category blackboard.admin.persist.role blackboard.admin.persist.datasource

Persistence Operations Persistence operations (load and store) are what differentiate the Admin APIs from the Blackboard Building Block APIs More flexible than the Blackboard Building Block APIs, which just do persist() (insert vs. update) “Smart” update –Update only those attributes that are explicitly set “Change Key” – update the batchUID for a new value from the external system (User only) –Derived from snapshot operation

Persistence Operations Template loads –Create a data object that “looks like” the data you want to return –Can use SQL wildcards, closest thing to ad hoc queries we have –Use with care… PersonLoader pLoader; pLoader = (PersonLoader) bbPm.getLoader(PersonLoader.TYPE); Person template = new Person(); template.setFamilyName( “B%” ); List list = pLoader.load( template );

Security and Context –No security manager or permissions manifest –Initialize the BbServiceManager from system properties –String configFile = "c:/blackboard/config/service-config-standalone.properties"; BbServiceManager.init( configFile ); –BbServiceManager then allows access to the other services, such as Persistence to create loaders and persisters. –BbPersistenceManager bbPm = BbServiceManager.getPersistenceService(). getDbPersistenceManager(); –Should explicitly close the BbServiceManager –BbServiceManager.shutdown();

Security and Context –If installed remotely, also need to supply Integration password and VI to initialize BbServiceManager (same as required to run the Snapshot Client remotely) String configFile = "c:/blackboard/config/service-config-standalone.properties"; Properties bbProps = new Properties(); bbProps.setProperty("remote.access.password", bbProps.setProperty("remote.access.domain","server.dc.blackboard.co m"); BbServiceManager.init( configFile, bbProps );... BbServiceManager.shutdown();

Security and Context –Initialise context from the VI with BbServiceManager ContextManagerServerImpl cMgr VirtualInstallationManager vMgr = null; VirtualHost vHost = null; try { cMgr = (ContextManagerServerImpl)BbServiceManager. lookupService( ContextManager.class ); vMgr = (VirtualInstallationManager)BbServiceManager. lookupService( VirtualInstallationManager.class ); vHost = vMgr.getVirtualHost("server.dc.blackboard.com"); cMgr.setContext(vHost); } catch (Exception e) { throw e; }... cMgr.releaseContext();

Security and Context –The Event APIs can also be called from within a Building Block. In this case, the Building Block API contains taglibs to initialize the BbServiceManager and Context. <% // BbServiceManager is available to create other services BbPersistenceManager bbPm = BbServiceManager.getPersistenceService().getDbPersistence Manager();... %> –Use extreme care if including Event API calls in Building Blocks! Include checks on who can access the pages, confirmation pages on deletes, etc.

Calling the Event APIs –Write a Java app that runs on the Blackboard® app server, invoked via the command line –Write a Java app that runs on another server, which has the Blackboard Snapshot client called –Write a JSP page deployed as part of a Building Block (Note: can mix and match calls to both APIs) –Write a web-service that accepts data via HTTP –Write RPC wrappers for an external system to invoke –… and the possibilities are endless!!!

Demonstration

Summary –Blackboard Event APIs allow access to perform data integration tasks, via a Java API –The Event API contains a number of interfaces to control Bb entities –The Event API can be called from any Java environment, including a Blackboard Building Block –For further information, see: Advanced Integration and Data Management Manual Administrative API Specifications Download from