350 likes | 501 Views
DFC, BOF and Web Services. Meir Amiel April 25, 2005. Topics. DFC 5.3 Goals and Objectives. DFC 5.3 Functional Highlights. Q&A. Topics. DFC 5.3 Goals and Objectives. DFC 5.3 Functional Highlights. Q&A. Expand BOF infrastructure Management Deployment Provide Web Service infrastructure
E N D
DFC, BOF and Web Services Meir Amiel April 25, 2005
Topics DFC 5.3 Goals and Objectives DFC 5.3 Functional Highlights Q&A
Topics DFC 5.3 Goals and Objectives DFC 5.3 Functional Highlights Q&A
Expand BOF infrastructure Management Deployment Provide Web Service infrastructure Support: .NET Webtop Collaboration Records Management ECI (askOnce) … Continue to remove dependencies on native libraries Continue performance improvements Maintain quality Maintain compatibility Note: DFC 5.3 requires a 1.4.x JVM DFC 5.3 Goals and Objectives
Topics DFC 5.3 Goals and Objectives DFC 5.3 Functional Highlights Q&A
BOF Introduction What is BOF? Business logic that runs as part of DFC. Target users are developers customizing and building applications on top of DFC.
BOF Benefits • Faster development • Abstracts business logic from presentation layer code • Encourages reuse • Portable across applications
BOF 5.1 Issues • Business objects are registered in a properties file (dbor.properties) that is maintained on each client machine. This registry file must be installed and kept up to date on each client computer. • Difficult to administer • Can lead to data corruption • TBOs become global • Business object jars are manually installed to each client machine • Difficult to administer • Difficult to install and patch • Requires restart of application server with each implementation change
BOF 5.3 • Next generation business object framework • Included with DFC release 5.3 • Focus: • Administration • Dynamic\hot deployment • New BOF types • Do methods • Requirement: • Keep with BOF 5.1 programming model • Code fully compatible • Old deployment model still supported
BOF 5.3 Administration (Highlights) • Business objects registered in repository as modules • No longer in client machine properties file (DBOR) • TBOs in repository corresponding to type • SBOs in “Global Registry” repository • TBOs have repository affinity • DAB is used to package modules as DocApps • DAI is used to install DocApps Documentum Repository
Module = ‘one stop shop’ in repository for BOF code, description, dependencies, Javadoc, etc. Modules in Documentum Application Builder (DAB)
Named for service or type name. Contains JARs for Bus. Object. 3rd party JARs can be stored in repository. Interfaces to any used business object. Place to put readme.txt, license, etc. Organization in Repository Repository module (folder) layout mySBO • mySBO.jar • mySBOImpl.jar • javadoc.zip • runtime environment.xml JDOM • JDOM.JAR External Interfaces • myTBO.jar Miscellaneous • license.txt
Administration - Global Registry • All SBOs are downloaded from a designated global registry repository. • Global registry is relative to a DFC installation. • Registry repository name and user credentials used to access the registry are maintained in dfc.properties • The DFC installer initially encrypts the password.
Administration – Global Registry • Global registry user • During server installation the user is presented with the choice of creating a new user used by DFC to log into the global registry. This is an “inline user” with limited read privileges on System/Modules. We strongly recommend using this user. • Global registry failover • A local cache is always used when the global registry repository is unavailable.
BOF 2.0 Dynamic Deployment (summary) • BOF objects are dynamically provisioned to DFC • New versions of implementation (or patches) are automatically detected and hot deployed to DFC • Supports 3rd party Java libraries • Supports sandboxing. • Sandboxing is the ability to isolate a module implementation and supporting libraries from other modules. Documentum Repository Dynamic Deployment
Java Libraries • 3rd party software stored in the repository and used by modules • All jar objects linked to the module (folder) are downloaded as one unit. • An administrator can choose to sandbox a java library in order to isolate different library versions used by different modules. • Libraries can be shared by multiple modules but they only get downloaded once.
New BOF Types (Aspect) An Aspect is an extension of a persistent object instance. A client attaches one or more aspects to an object instance. Persistent Object Instance = TBO + [Aspects] Where TBO and Aspect are: TBO = Object Type attributes + [behavior] Aspect = [attributes] + [behavior] (In 5.3 Aspect= behavior) In 5.3, aspect support is an internal feature and it is used by Documentum products such as Collaboration and BPM.
User Defined Modules • Developers may introduce new module types. By doing so, they can take advantage of the BOF administration and deployment capabilities. • User defined modules are light weight modules. There is no need to implement complex interfaces. • User defined modules are always bound to a repository. • The lifecycles and validation frameworks utilize modules • In 5.3 SP1 a method server method can be implemented as a module.
Do Methods • When extending DfSysObject user should override the domethods • All other overrides are deprecated, including those specifically recommended in earlier versions of DFC. Old overrides are still supported for backward compatibility • Do method signatures are guaranteed not to change in the future e.g.instead of overriding checkin and\or checkinEx override doCheckin
Web Services Framework • Documentum Platform Release 5.3 • DFC includes web services framework • Leverages BOF SBOs • Authoring • Deployment Web SBO Programming Model Development Tools Web Service Runtime (Axis 1.2) Unified Content Framework (UCF) .NET friendly WSDL
Web Services Framework Introduction • The framework supports the development of web services by customers. • 5.3 delivers a framework not Documentum-authored web services relating to basic content functionality. • The framework leverages the BOF framework for service-based business objects (SBO) by projecting SBOs as web services • The framework offers a uniform development model for components within Documentum. • Not all BOF services are suitable for projection as web services.
Web Services Framework Deliverable • WSDL is primary deliverable. In order to accommodate arbitrary client-side web service frameworks we deliver WSDL rather than concrete proxy generation.
Functionality Overview • The product comprises four components: • code generator – included in DAB • Packager – the same packager used to package BOF modules • deployment pre-processor (later in presentation) • runtime support classes and environment
Web Service Development – SBO • Develop a BOF service based object (SBO). Not all SBOs are suitable for projection as web services. The following guidelines apply: • Follow JAX-RPC requirements • Do not use interfaces in signatures • Except IDfId, IDfTime are supported • JavaBeans (Value Types) and primitive types work best in a web services environment. • Pass IDfIds representing object IDs rather than passing the objects themselves. • Do not overload methods • Do not use Java collections • Avoid chatty interactions
Web Service Development – Code Generation • Use DAB to generate the web services code • We take a service-based business object and reflect upon it. • We construct an aggregate interface comprising the methods from all implemented interfaces, explicitly excluding IDfService and its superclasses. • We then generate a concrete wrapper class implementing the contrived interface. • This generated class is presented to the Axis infrastructure for skeleton/WSDL generation.
Credentials service • Docbase credentials service • Initial use • Create a new session manager instance, set the repository credentials passed by the client. • Generate a unique token to act as a key to the session manager instance. This key will be returned to the caller. • Subsequent use • Existing token is presented along with new or amended credentials. • The existing session manager instance will be recovered and updated with the new credentials. • Supports passing token to other web services • Finds session manger based on token and passes to SBO. • Token is passed in the SOAP Header
Runtime environment – Apache Axis • Apache Axis is used as the underlying web services engine. • Axis is an open source implementation of a SOAP engine (for hosting web services) • Axis version used is Axis 1.2 RC3 (latest)
Client environment • We should support most, if not all, web service client environments that can take WSDL for client side stub generation. • Examples for possible client environments • MS Studio • BEA Workshop • WebSphere Studio • Axis client stubs
Content Transfer Supported • Base 64 encoding • Pros: • Client software is not needed • Cons • Not scalable • Initial UCF integration • Pros: • Highly scalable content transfer facility • Cons • UCF client must be present on client machine
Web Service Buildout • Documentum Platform Release post 5.3 • Standard Web Service Based Objects included with platform • Great opportunity to provide feedback via Developer Program Library Operations Services Administration Services Query/Search Services VDM Services Many More… Web SBO Programming Model Development Tools Web Service Runtime (Axis 1.2) Content Transfer (UCF) .NET friendly WSDL Web Services Framework
Validation in Java instead of Docbasic • Summary: Ability to compile existing Docbasic expressions into java classes and use them to evaluate validation expressions • Improve performance • Several times better than previously • In particular, when thousands of objects need to be validated as in an XML application • Reduce DFC’s reliance on native code • Necessary for eliminating global (shared) DFC installation on application server
New login tickets capabilities Security model enhancements Access control features Enables MACL as a solution Changed way ACL evaluated Restricted access, inherited access (lets you define a ‘ceiling’ in security) Dynamic groups DQL execution Faster full text query Supports content-less objects Single-box search Customization model for indexes (public post 5.3) New copy behavior for dm_relation Supports ‘deep copy’ of related object Enhanced Diagnostics Errors related to mismanaged sessions Non-released sessions (session leaks) Attempts to use objects after session release Miscellaneous 5.3 features
More information • In depth knowledge transfers are available in myLearn • 5.3 DFC - BOF, Web Services, Aspect [14738], Presenter Meir Amiel • 5.3 DFC - Misc [14704], Presenter Alex Treyger
Topics DFC 5.3 Goals and Objectives DFC 5.3 Functional Highlights Q&A