Blackboard Building Blocks.ppt
《Blackboard Building Blocks.ppt》由会员分享,可在线阅读,更多相关《Blackboard Building Blocks.ppt(83页珍藏版)》请在麦多课文档分享上搜索。
1、Blackboard Building Blocks,APIs, Framework and Security,Wednesday, October 10, 2018,Bob Alcorn, Director, Platform Architecture,Overview,API Overview High level review of packages, patternsSecurity Authentication and Authorization JVM security,Audience,Knowledge of Java programming People who want a
2、n overview of the entire range of functionality exposed (without resorting to reading the docs) Thinking of building, dont know what to look at first,Design Goals High Level,Decouple persistence from data objects XML and Database Originally targeted for import/export Database abstraction Iterative f
3、unctionality Start with simple objects, mapped to the legacy schema Managed extensibility System extensions and deployment model,A Little History,Import/Export,Building Blocks Architecture,Core Services,Data Objects,Business Layer (JSP, Servlet, Struts),View Layer (JSP, Servlet, Tag Library),Road Ma
4、p,Data objects and packages What data can I see? Persistence objects and packages How do I get to the data? Service objects and packages How do I log it, authenticate it, etc.? Security,Data Objects,blackboard.dataObject view of the schema Typed to wrap legacy database constructs Type-safe enumerati
5、ons for constrained database columns User.EducationLevel.GRADUATE_SCHOOL Faithful adherence to existing schema has some interesting side effects,Data Objects BbObject,Base object for all data objects Common attributes Primary Key (Id), dates, etc. “Smart” attributes Properties stored in an internal
6、map, instead of member variables Smart load, dirty flag Id attribute helps define lifecycle Id.UNSET_ID default id for new objects,Data Objects Content,blackboard.data.contentContent is the root object that can be used in the “content” areas of a course All other objects are simple subclasses of Con
7、tent that over-ride specific values Custom content types should create and manipulate Content objects; not CourseDocument objects. CourseDocument can be used to manipulate the base “Item” type,Data Objects Content,ContentHandler Ties content to URI-based “handlers” This is really the B2 “glue” for c
8、ustom content IsFolder Can the object contain other objects IsLesson Should the contents be displayed sequentially RenderType Render the object like “Item”, “Folder”, or “Link”,Data Object Content,Data Objects Course,blackboard.data.courseCourse and Organization Organization over-rides course for sp
9、ecific attributes Membership Enrollment, Staff Assignment Enumerated roles Course Subgroup and Membership,Data Objects - Gradebook,Blackboard.data.gradebookLineItem Defines the “columns” in a course gradebook Score Wraps the actual outcome for a given line item,Data Objects Misc.,Announcement Wraps,
10、 well, announcements Can be system or course level Calendar Wrap entries in the calendar Course and System level,Persistence Objects,Intended to be decoupled from data objects Interfaces allow replaceable persistence implementations Currently proprietary to Blackboard BbPersistenceManager Ties toget
11、her different aspects of persistence Loader/Persister broker Container,Persistence Objects Id,Used to encapsulate the unique identifier for each data object Primary key, and more Data type Container (database) GUIDs are not used, so keys can collide,Persistence Objects Loaders,Base interface to get
12、at data Roughly one-to-one correspondence to data objects All type-specific loaders are geared towards known predicates loadById() loadByUserIdandType() Performance. Ad hoc queries can kill the system Schema stability.,Persistence Objects Persisters,Perform any action that manipulates data Again, on
13、e-to-one correspondence with data objects “Smart” update Id object state determines insert vs. update,Accessing Persisters and Loaders,Theyre interfaces, not directly instantiated by callers BbPersistenceManager is the broker Most have a Default object for direct access ContentDbLoader loader = Cont
14、entDbLoader.Default.getInstance(),Putting It Together,Content content = new Content(); content.setTitle();/ . . . Etc.ContentDbPersister contentPersister = ContentDbPersister.Default.getInstance();contentPersister.persist();,Services,Infrastructure for common utility functions Exposed as interfaces
15、(mostly) Lookup via BbServiceManager,Services Context,blackboard.platform.contextCritical entry point that all code must call Context wraps information about current request to get the correct database connection Interact via ContextManager.setContext() and ContextManager.releaseContext(),Services S
16、ession,blackboard.platform.sessionState for the current browser-based client Stores authentication status Cookie-based session management Database persistent to share between Perl and Java processes Some assembly required Not all HTTP-clients (e.g., media plugins for browsers) honor the host browser
17、s cookies,Services Filesystem,blackboard.platform.filesystemFileSystemService - Broker different file system locations Course and content E.g., getContentDirectory(),Services Log,blackboard.platform.logSimple write-only log implementation Supports configurable levels Written before log4j and JDK 1.4
18、,Services - Security,Blackboard.platform.securityAuthentication and Authorization AccessManagerService,Package Base,Mix of utility objects BbList List implementation that can enforce type safety Not really useful externally; since it implements List, and you have to cast anyway, thats what you shoul
19、d use BbEnum base class for all type-safe enumerations NestedRuntimeException/NestedException pre-JDK 1.4 facility for chaining exceptions,Package Base,FormattedText encapsulation of text data entered via standard Text boxes Defines enumeration for Smart, Plain, and HTML text GenericComparator Compa
20、rator implementation that can sort based on arbitrary properties Works with String, Boolean, Dates, and Comparable,Administrative APIs,blackboard.admin.*APIs geared towards data integration Formerly called the “Event” APIs Repackaged to be more consistent with B2 APIs Compatibility layer supported B
21、ase classes used in Snapshot,Administrative APIs,Follows IMS Data Model Person, Course (Group), and Membership Additional objects for Blackboard usage Category Data Source Defines logically related entities that can be managed independently via Snapshot,Portal,blackboard.portal.externalCustomData is
22、 all youll need getModuleData() getModulePersonalizationData() Store name/value Value can be string, or binary object,Beyond APIs UI Integration,Tag Libraries Encapsulate re-usable UI components to capture the Blackboard look and feel Tag Library Descriptors Re-use within individual web applications
23、 .tld files,Beyond APIs - Deployment,Not an API, per se Critical aspect of extension development XML manifest used to generate records in the database that define navigation, content brokering,Anatomy of a System Extension,Package (.war/.zip file),Platform Descriptor,Blackboard Manifest,Web Resource
24、s,Libraries,web.xml (Servlets),Servlets, JSP (Java),.class, .jar files (Java),Tying It All Together,Each JSP or servlet will require touching several different APIs Set context Authorize current User Load content object Access Gradebook data Perform custom calculation Log result Render results (brac
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- BLACKBOARDBUILDINGBLOCKSPPT
